Da, este posibil chiar și fără interacțiune (nimic nu trebuie să-i trimită Bob lui Alice). Metoda se numește „semnătură de inel”.
Să presupunem că vrea să semneze un mesaj de genul „Sunt Alice, o dovadă a lui Bob că știu una dintre chei”.
Ea o hash pentru a obține $m$.
Alice generează acum o valoare aleatorie $r_i$ pentru fiecare cheie publică $k_i$ și le criptează pentru a obține $y_i$.
Rețineți că toate $y_i$ sunt valori pseudoaleatoare imprevizibile. Singura $y_i$ ea poate alege este cea care aparține cheii ei $k_j$, ea doar alege $y_j$ și semnează-l pentru a obține $r_j$ ($r_j$ arată ca toate celelalte date aleatorii)
Acum ea poate alege $y_j$ incat xorul tuturor $y_i$ egală $m$.
Ea trimite mesajul și toate $r_i$ lui Bob (dacă ordinea nu este clară, adăugați o notă care $r_i$ cărei cheie aparține)
Pentru a verifica, Bob doar criptează fiecare $r_i$ cu cheia publică $k_i$ pentru a obține $y_i$, le xorează pe toate și verifică dacă este egală $m$.
Din moment ce toate $y_i$ sunt ca numere aleatorii, când nu cunoști cheia, nu există nicio modalitate de a falsifica o semnătură fără a cunoaște o cheie privată.
În plus, nu există nicio modalitate de a spune care $y_i$ și $r_i$ nu a fost generată aleatoriu, deoarece toate arată aleatoriu.
EDITARE importantă:
Am uitat pasul de criptare simetrică din semnătura inelului. Între pașii xor ar trebui aplicată criptarea simetrică. Acest lucru îi permite încă lui Allice să recupereze $y_i$ are nevoie, dar face atacurile mai greu.
Pentru mai multe detalii uita-te la Wikipedia