Schema probabilistică a semnăturii Rabin

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 6 februarie 2019; verificările necesită 8 modificări .

Schema de semnătură probabilistică a lui Rabin este o  metodă de semnătură digitală propusă inițial de Michael O. Rabin în 1979 [1] . Schema de semnătură a lui Rabin a fost una dintre primele scheme de semnătură digitală propuse și este singura care leagă direct complexitatea falsificării semnăturii cu problema factorizării întregi . Algoritmul de semnătură al lui Rabin este nepotrivit într-un model de calcul aleator aleator care presupune că problema factorizării întregi este indecidabilă. Schema de semnătură Rabin este, de asemenea, strâns legată de criptosistemul Rabin .

Algoritmul original

Algoritmul original nu folosește funcții hash și este considerat nesigur. [2]

Algoritm sigur și simplificat

Algoritmul sigur și securizat [3] se bazează pe o funcție hash rezistentă la coliziuni .

În majoritatea vizualizărilor, algoritmul este simplificat prin alegerea . Se presupune că funcția hash cu numărul de biți de ieșire este un oracol aleatoriu și algoritmul funcționează după cum urmează:

Generarea cheilor
  1. Sunt alese numere prime , fiecare cu dimensiunea unui bit, iar modul 4 este egal cu 3. Apoi, produsul este calculat .
  2. Cheia publică în acest caz este .
  3. Cheia privată va fi perechea .
Semnătură
  1. Pentru a semna un mesaj , este selectat și calculat un număr aleatoriu .
  2. Dacă nu este un pătrat modulo , se alege o nouă valoare .
  3. După aceea, se găsește o valoare x, care este soluția ecuației .
  4. Semnătura mesajului va fi un cuplu .
Examinare
  1. Având în vedere mesajul și semnătura, verificatorul efectuează calcule și apoi verifică dacă sunt egale.

Note

În unele implementări ale algoritmului, valoarea nu este utilizată. În schimb, este posibil să înmulțim valoarea hash cu două numere a sau b cu proprietăți și , unde denotă simbolul Legendre . Apoi, pentru orice modulo, doar unul dintre cele patru numere va fi un modulo pătrat , iar acest număr este ales pentru a semna digital mesajul.

Pentru a simplifica și mai mult algoritmul, trebuie să schimbați mesajul până când semnătura trece de verificare.

\\ Funcția de schimbare a mesajului pentru verificarea semnăturii def root ( m : str , p , q ): while True : x = h ( m ) sig = pow ( p , q - 2 , q ) * p * pow ( x , ( q ) + 1 ) / 4 , q ) sig = ( pow ( q , p - 2 , p ) * q * pow ( x , ( p + 1 ) / 4 , p ) + sig ) % ( nrabin ) dacă ( sig * sig ) ) % nrabin == x : print ( „Scrieți mesajul extins în fișierul m.txt” ) f = deschis ( 'm.txt' , 'w' ) f . scrie ( m ) f . close () break m = m + ' ' return sig

Securitate

Dacă funcția hash este un oracol aleatoriu, adică ieșirea sa este cu adevărat aleatorie la , atunci falsificarea unei semnături pentru orice mesaj este la fel de dificilă precum calcularea rădăcinii pătrate a unui element aleatoriu din .

Pentru a demonstra [4] că obținerea unei rădăcini pătrate aleatoare este la fel de dificilă ca și factorizarea, trebuie remarcat că în majoritatea cazurilor există patru rădăcini pătrate diferite, deoarece are două rădăcini pătrate modulo și două rădăcini pătrate modulo , iar fiecare pereche dă un rădăcină pătrată modulo după teorema chineză a restului . Unele dintre rădăcini pot avea aceeași valoare, dar probabilitatea ca aceasta este extrem de mică.

Dacă este posibil să găsim două rădăcini pătrate diferite astfel încât dar , atunci aceasta duce imediat la o factorizare a lui , deoarece factorii primi sunt divizibili cu , dar nu divizibili. Deci, calculul va avea ca rezultat o factorizare non-trivială .

Acum se presupune că există un algoritm eficient pentru găsirea a cel puțin o rădăcină pătrată. Apoi se alege un modulo aleator și se pune la pătrat , după folosirea algoritmului, se ia rădăcina pătrată a modulo și se obține o nouă rădăcină , care cu o probabilitate de 50% .

Vezi și

Note

  1. Semnături digitalizate și funcții de cheie publică la fel de insolubile ca factorizarea  (link nu este disponibil)
  2. | Michele Elia, Davide Schipani, Despre semnătura Rabin c.1-3 . Preluat la 13 decembrie 2019. Arhivat din original la 22 septembrie 2019.
  3. | Michele Elia, Davide Schipani, Despre semnătura Rabin c.5-9 . Preluat la 13 decembrie 2019. Arhivat din original la 22 septembrie 2019.
  4. Semnături digitalizate și funcții de cheie publică la fel de insolubile ca factorizarea c.15-19  (link nu este disponibil)

Literatură

  • Michele Elia, Davide Schipani, Despre semnătura Rabin , 2011 PDF
  • Buchmann, Johannes. Einführung in die Kryptographie . a doua editie. Berlin: Springer, 2001. ISBN 3-540-41283-2
  • Menezes, Alfred; van Oorschot, Paul C.; și Vanstone, Scott A. Handbook of Applied Cryptography . CRC Press, octombrie 1996. ISBN 0-8493-8523-7
  • Rabin, Michael. Semnături digitalizate și funcții cu cheie publică la fel de insolubile precum factorizarea (în PDF). MIT Laboratory for Computer Science, ianuarie 1979.
  • Scott Lindhurst, O analiză a algoritmului lui Shank pentru calcularea rădăcinilor pătrate în câmpuri finite. în R Gupta și KS Williams, Proc 5th Conf Can Nr Theo Assoc, 1999, vol 19 CRM Proc & Lec Notes, AMS, Aug 1999.
  • R Kumanduri și C Romero, Teoria numerelor cu aplicații computerizate, Alg 9.2.9, Prentice Hall, 1997. O probabilitate pentru rădăcina pătrată a unui rest patratic modulo un prim.

Link -uri


Sursa

Smart N. Criptografie. - M .: Technosfera, 2005. S. 525.