Nel capitolo 10 di HAC (10.4.2) , vediamo il noto protocollo di identificazione Feige-Fiat-Shamir basato su una prova a conoscenza zero che utilizza la (presunta) difficoltà di estrarre radici quadrate da un modulo che è difficile da considerare. Darò lo schema con le mie stesse parole (e spero di farlo bene).
Cominciamo con uno schema più semplice: sia un numero intero di Blum (quindi e ognuno di e è 3 mod 4) di dimensioni sufficientemente grandi da rendere intrattabile il factoring. Poiché è un numero intero di Blum, metà degli elementi di ha il simbolo Jacobi +1 e l'altra metà ha -1. Per gli elementi +1, la metà di questi ha radici quadrate e ogni elemento che ha una radice quadrata ne ha quattro, esattamente uno dei quali è un quadrato.
Ora Peggy seleziona un elemento casuale da e imposta . Quindi invia a Victor. Il prossimo è il protocollo: Victor desidera verificare che Peggy conosca una radice quadrata di e Peggy desidera dimostrarglielo senza divulgare nulla su al di là del fatto che conosce tali .
- Peggy sceglie una casuale in e invia a Victor.
- Victor invia in modo equiparabile oppure a Peggy.
- Peggy manda a Victor.
Victor può verificare che Peggy abbia inviato la risposta corretta quadrando ciò che riceve e confrontandolo con il risultato corretto. Naturalmente, ripetiamo questa interazione per ridurre la possibilità che Peggy sia solo un indovino fortunato. Questo protocollo è considerato ZK; una prova può essere trovata in vari luoghi (ad esempio, gli appunti di Boaz Barak ).
- Peggy sceglie una r casuale in Z ∗ n e invia r 2
Non riesco a trovare un attacco che estrae qualcosa da Peggy se omette i segni.