Schema Schnorr este una dintre cele mai eficiente și bazate teoretic scheme de autentificare . Securitatea circuitului se bazează pe dificultatea calculării logaritmilor discreti . Schema propusă de Klaus Schnorr este o modificare a schemelor ElGamal (1985) și Fiat-Shamir (1986) , dar are o dimensiune mai mică a semnăturii. Schema Schnorr stă la baza standardului Republicii Belarus STB 1176.2-99 și standardelor sud-coreene KCDSA și EC-KCDSA. A fost acoperit de brevetul american 4.999.082 , care a expirat în februarie 2008.
Schemele de autentificare și semnătură electronică sunt unul dintre cele mai importante și comune tipuri de protocoale criptografice care asigură integritatea informațiilor.
Scopul protocoalelor de autentificare poate fi ușor de înțeles prin următorul exemplu. Să presupunem că avem un sistem informațional în care este necesar să diferențiem accesul la diverse date. Tot în acest sistem există un administrator care stochează toți identificatorii de utilizator cu un set de drepturi asociat, cu ajutorul căruia se diferențiază accesul la resurse. Un utilizator i se poate permite simultan să citească un fișier, să schimbe al doilea și, în același timp, să i se interzică accesul la al treilea. În acest exemplu, asigurarea integrității informațiilor înseamnă împiedicarea accesului la sistem de către persoane care nu sunt utilizatorii acestuia, precum și împiedicarea utilizatorilor să acceseze acele resurse pentru care nu au autoritate. Cea mai comună metodă de control al accesului, protecția prin parolă , are o mulțime de dezavantaje, așa că să trecem la formularea criptografică a problemei.
Există doi participanți la protocol - Alice, care vrea să-și confirme identitatea și Bob, care trebuie să verifice această confirmare. Alice are două chei , o cheie publică (publică) și o cheie privată (privată) cunoscută doar de Alice. De fapt, Bob trebuie să verifice că Alice își cunoaște cheia privată folosind doar .
Schema Schnorr este una dintre cele mai eficiente dintre protocoalele practice de autentificare care implementează această sarcină. Minimizează dependența de calcul necesar pentru a crea o semnătură pe mesaj. În această schemă, principalele calcule pot fi făcute în timp ce procesorul este inactiv, ceea ce vă permite să creșteți viteza de semnare. La fel ca DSA , schema lui Schnorr folosește un subgrup de ordine în . Această metodă folosește și o funcție hash .
Generarea cheilor pentru schema de semnătură Schnorr este aceeași cu generarea cheilor pentru DSA , cu excepția faptului că nu există restricții de dimensiune. De asemenea, rețineți că modulul poate fi calculat autonom.
Securitatea algoritmului depinde de parametrul t . Complexitatea deschiderii algoritmului este aproximativ egală cu . Schnorr recomandă utilizarea t în jur de 72 de biți, pentru și . Pentru a rezolva problema logaritmului discret, în acest caz, sunt necesari cel puțin pașii algoritmilor cunoscuți.
Generare cheie:
Autentificare:
Dacă presupunem în schema lui Schnorr că Alice este un adversar, atunci la pasul 1 ea poate alege într-un mod aleatoriu, dar eficient. Fie numărul trecut de Alice. Să presupunem că este posibil să găsim două numere aleatorii și astfel încât pentru fiecare dintre ele Alice să găsească cel corespunzător și pentru care confirmarea va da un rezultat pozitiv. Primim:
.De aici sau . Deoarece , atunci există și, prin urmare, , adică logaritmul discret al lui . Astfel, fie așa încât Alice să poată răspunde în mod corespunzător la ambele (având în vedere același ) la pasul 3 al protocolului este rar, ceea ce înseamnă că atacul lui Alice are succes doar cu o probabilitate neglijabilă. Sau astfel de valori se întâlnesc des, iar apoi algoritmul pe care îl folosește Alice poate fi folosit pentru a calcula logaritmi discreti.
Cu alte cuvinte, se demonstrează că, în ipoteza că problema logaritmului discret este dificilă, schema de autentificare Schnorr este rezistentă împotriva unui adversar pasiv, adică corectă.
Inamic activUn adversar activ poate desfășura un număr de sesiuni de execuție a protocolului ca verificator cu un probator onest (sau să asculte cu urechea la astfel de execuții) și apoi să încerce să atace schema de autentificare. Pentru rezistența împotriva unui adversar activ, este suficient ca protocolul de autentificare să fie o dovadă a cunoștințelor zero . Cu toate acestea, nimeni nu a reușit încă să demonstreze proprietatea zero-cunoștințe pentru schema Schnorr.
Algoritmul Schnorr poate fi folosit și ca protocol pentru semnarea digitală a unui mesaj . Perechea de chei este aceeași, dar este adăugată o funcție hash unidirecțională .
Principalele calcule pentru generarea unei semnături sunt efectuate în etapa de preprocesare și în etapa de calcul , unde numerele și au ordinea biților, iar parametrul este un bit. Ultima multiplicare este neglijabilă în comparație cu înmulțirea modulară din schema RSA .
Verificarea semnăturii constă în principal într-un calcul care se poate face pe media calculelor modulo unde există o lungime în biți.
O semnătură mai scurtă reduce numărul de operațiuni pentru generarea și verificarea semnăturii: în schema Schnorr și în schema ElGamal .
Generare cheie:
Semnătura mesajului:
Schema Schnorr are brevete în mai multe țări. De exemplu, US #4.995.082 din 19 februarie 1991 (a expirat la 19 februarie 2008). În 1993, Public Key Partners (PKP) din Sunnyvale a achiziționat drepturile la nivel mondial asupra acestui brevet. Pe lângă Statele Unite, această schemă este brevetată și în alte câteva țări.
O modificare a circuitului de către Ernie Brickell și Kevin McCurley în 1992 a îmbunătățit considerabil securitatea circuitului. Metoda lor folosește numărul , care, la fel ca , este greu de descompus, un simplu divizor al numărului și un element exponent în , care sunt ulterior utilizate în semnătură. Spre deosebire de schema Schnorr, semnătura din metoda lor este calculată prin ecuație
.În timp ce modificarea lui Brickell și McCarley este mai puțin eficientă din punct de vedere computațional decât schema Schnorr, această metodă are avantajul că se bazează pe dificultatea a două probleme complexe: