Schema Schnorr

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 2 septembrie 2021; verificările necesită 3 modificări .

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.

Introducere

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 .

Generare cheie

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.

  1. Se alege un număr prim , care este de obicei egal cu lungimea biților.
  2. Un alt număr prim este ales astfel încât să fie un divizor al lui . Sau, cu alte cuvinte, ar trebui făcut . Este obișnuit să alegeți dimensiunea pentru un număr egal cu biți.
  3. Alegeți un număr diferit de , astfel încât .
  4. Peggy alege un număr întreg aleatoriu mai mic decât .
  5. Peggy calculează .
  6. Cheia publică a lui Peggy este , cheia privată a lui Peggy este .

Protocol de autentificare

Algoritm de operare a protocolului

  1. Preprocesare . Alice alege un număr aleatoriu mai mic decât și calculează . Aceste calcule sunt preliminare și pot fi făcute cu mult înainte de sosirea lui Bob.
  2. Iniţiere. Alice îi trimite lui Bob.
  3. Bob alege un număr aleatoriu de la până și îl trimite lui Alice.
  4. Alice calculează și îi trimite lui Bob.
  5. Confirmare. Bob verifică asta

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.

Exemplu

Generare cheie:

Autentificare:

Atacurile la Schematic

Inamic pasiv

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 activ

Un 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.

Protocol de semnătură digitală

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ă .

Generarea semnăturii

  1. Prelucrare preliminară. Peggy alege un număr aleatoriu mai mic decât și calculează . Aceasta este etapa de precalculare. Este de remarcat faptul că aceleași chei publice și private pot fi folosite pentru a semna mesaje diferite, în timp ce numărul este ales din nou pentru fiecare mesaj.
  2. Peggy concatenează mesajul și șterge rezultatul pentru a obține prima semnătură:
  3. Peggy calculează a doua semnătură. Trebuie remarcat faptul că a doua semnătură este calculată modulo . .
  4. Peggy îi trimite lui Victor un mesaj și legende , .

Verificarea semnăturii

  1. Victor calculează (sau , dacă este calculat ca ).
  2. Victor verifică asta . Dacă da, consideră că semnătura este valabilă.

Eficiență

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 .

Exemplu

Generare cheie:

  1. și . Și .
  2. Este selectat , care este elementul din câmp . Apoi și
  3. Peggy alege cheia atunci
  4. Cheia privată a lui Peggy este , cheia publică este .

Semnătura mesajului:

  1. Peggy trebuie să semneze mesajul .
  2. Peggy alege și calculează .
  3. Să presupunem că mesajul este , iar conexiunea în serie înseamnă . De asemenea, să presupunem că prin hashing această valoare se obține un rezumat . Aceasta înseamnă .
  4. Peggy calculează .
  5. Peggy îl trimite pe Victor și .

Brevete

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.

Modificări schematice

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

.

Beneficii

Î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:

  • calculul logaritmului în subgrupul ciclic de ordin în ;
  • factorizarea .

Vezi și

Note

Literatură

  • Generare eficientă de semnături Schnorr CP prin carduri inteligente. - J. Criptologie, 1991. - S. 161-174.
  • Identificare și semnături eficiente Schnorr CP pentru carduri inteligente. Avansuri în criptologie - CRYPTO'89. Note de curs în Informatică 435. - 1990. - S. 239 - 252.
  • A. Menezes, P. van Oorschot, S. Vanstone. Manual de Criptografie Aplicată. - CRC Press, 1996. - 816 p. - ISBN 0-8493-8523-7 .
  • Schneier B. Criptografia aplicată. Protocoale, algoritmi, cod sursă în limbaj C = Criptografie aplicată. Protocoale, algoritmi și cod sursă în C. - M. : Triumph, 2002. - 816 p. - 3000 de exemplare.  - ISBN 5-89392-055-4 .
  • Varnovsky N. P. Protocoale criptografice // Introducere în criptografie / Editat de V. V. Yashchenko. - Petru, 2001. - 288 p. - ISBN 5-318-00443-1 . Arhivat pe 25 februarie 2008 la Wayback Machine

Link -uri