Hârtia standard folosită ca referință pentru protocolul de identificare Schnorr și schema de semnătură asociată este Claus-Peter Schnorr, Generare eficientă de semnătură prin carduri inteligente (versiune alternativă), în Journal of Criptology, 1991.
Diferențele dintre acesta și protocolul de identificare Schnorr ca într-un manual modern:
Expunerea originală folosește un grup Schnorr de ordin principal mare $q$, adică un subgrup al grupului $\mathbb Z_p^*$ pentru un prim imens $p$ cu $q$ un divizor al $p-1$. Acum este obișnuit să raționăm într-un grup abstract de ordine $q$, care poate fi implementat de ex. ca un grup de curbe eliptice.
Notația grupului este multiplicativă în original și acum este adesea aditivă.
În original, secretul verificatorului $e$ este aleatoriu în $[0,2^t)$ cu $2^t\ll q$, din motive de eficienta. Multe expoziții moderne fac $e$ aleatoriu în $[0,q)$ sau interval la fel de mare.
Originalul nu este clar dacă în protocolul de identificare propriu-zis probatorul A trimite elementul de grup $x$ (text) sau este hash $h(x)$ (figura 1), o optimizare care reduce dimensiunea comunicării. Expunerile moderne tind să nu folosească hash în protocolul de identificare.
Originalul (în ambele text și figura 1) face parte din protocolul de identificare pentru a verifica cheia publică a lui A $v$ și este asocierea cu identitatea lui A $I$ folosind o semnătură $S$:
- în 2.: ââ¦semnătura KACâ $S$ pentru $(I,v)$,â¦â
- în 3.: âB verifică semnătura $S$â¦â
- în 5.: âB verifică $(I,v)$ fie prin verificarea semnăturii $S$ sau prin verificare $(I,v)$ onâlineâ.
Dar expunerile moderne fac adesea din asta un preliminar extern. Unii elimină $I$ și $S$și A care furnizează cheia publică $v$ în primul pas.
În unele părți ale articolului original, A este o cartelă inteligentă, atunci când alte expuneri sunt mame despre modul în care se fac calculele sau asimilează mijloacele de calcul cu proprietarul/operatorul lor.
Expunerea originală subliniază că A desen $r$ și de calcul $x$ (la pasul 2.) poate fi un preliminar offline.
Folosind notația originală și numerotarea pașilor (contrar multor manuale), ar putea merge o expunere modernă minimă
- Lucrăm într-un grup public adecvat de primă ordine $q$ si generator $\alpha$, notat multiplicativ. Al grupului $q$ elementele sunt astfel $\alpha^b$ pentru $b\în[0,q)$.
- Proverul A dorește să demonstreze cunoașterea $s\în[0,q)$ astfel încât $v=\alpha^s$, cu publicul $v$ se presupune că este cunoscut de verificatorul B. Utilizează patru schimburi:
-
- A remize $r\in_R[0,q)$, calculează $x:=\alpha^r$, trimite $x$
-
- B remiză $e\in_R[0,q)$, trimite $e$
-
- A calculează $y:=r+s\,e\bmod q$, trimite $y$
-
- B verifică $x=\alpha^y\,v^e$.
Schema de identificare Schnorr și implementarea Smart Cardului sunt de fapt același lucru identic?
Nu: o schemă nu este o implementare, la fel ca un algoritm nu este același lucru cu un program care utilizează acel algoritm scris pentru un anumit tip de computer. Implementarea face alegeri precum calculul înseamnă a fi un Smart Card; utilizarea unui grup Schnorr cu anumiți parametri de dimensiune; limitând și mai mult numărul de biți în $e$ la parametru $t$. Trimite hash $h(x)$ Decat $x$ în pasul 2, cu pasul de verificare 5 schimbat în mod corespunzător în $h(x)=h(\alpha^y\,v^e)$. Ea definește ce $v$ este în context, iar spre care introduce $I$ și $S$.
Când un text modern se referă la schema de identificare Schnorr, tinde să fie la protocolul abstract redus ca în secțiunea de mai sus, fără Smart Card, $t$, $h$; și adesea fără $I$, $S$.
În lucrările care folosesc schema de identificare Schnorr, aș cita hârtie JoC și declară în mod independent protocolul pe care îl folosesc, astfel încât să nu existe ambiguitate cu privire la ceea ce vreau să spun cu schema de identificare Schnorr.