Semnătura Merkle

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 27 noiembrie 2016; verificările necesită 46 de modificări .

Semnătura Merkle este un  algoritm de semnătură digitală post-cuantică și reutilizabil , bazat pe utilizarea unui arbore Merkle și a unui fel de semnătură digitală unică. [unu]

Istorie

Semnătura a fost publicată pentru prima dată de Ralph Merkle în 1979 în articolul său „Secrecy, authentication, and public key systems” [2] ca semnătură digitală reutilizabilă folosind semnătura unică a lui Lamport . [3]

Descrierea algoritmului

Pregătire

Semnătura Merkle se bazează pe o semnătură digitală unică deja existentă, a cărei putere criptografică trebuie să se bazeze pe o funcție hash sigură criptografic . Exemple de astfel de semnături ar fi Schema de semnătură unică Winternitz sau semnătura lui Lamport . [4] O semnătură digitală unică ar trebui să conțină trei operațiuni principale: [5]

De asemenea, este necesar să se decidă asupra unei funcții hash rezistente la cripto , care va fi folosită ulterior pentru a calcula cheia publică. [patru]

Generare cheie

Sunt generate matrice de chei și lungimi . Lungimea este aleasă să fie o putere de doi, deoarece este necesar să construiți un arbore Merkle. Fiecare pereche este folosită ca o pereche de chei private-publice pentru o semnătură unică de bază. Array  - este cheia privată a semnăturii Merkle, un arbore Merkle este construit pentru a genera cheia publică:

Rădăcina arborelui Merkle construit este luată ca cheie publică: . [6]

Generarea semnăturii

Pentru a genera o semnătură din matrice și , este selectată a treia pereche de chei .Se calculează o semnătură digitală unică pentru mesaj folosind cheia privată . Apoi, luați în considerare calea de la rădăcina arborelui Merkle până la frunza corespunzătoare cheii . Să notăm vârfurile prin care trece această cale ca o matrice de lungime , unde  este rădăcina arborelui și  este . Valoarea fiecărui vârf , cu excepția , este calculată ca , unde și sunt copii imediati ai . Astfel, pentru a calcula calea de la rădăcina arborelui, este suficient să cunoaștem șirul de vârfuri , pe care îl vom numi cale de autentificare. Astfel, semnătura mesajului include: o cheie de verificare , o semnătură unică și o cale de autentificare pentru calcularea căii către rădăcina arborelui. [7]

Verificarea semnăturii

În primul rând, destinatarul verifică semnătura unică cu mesajul . Dacă verificarea a avut succes, începe să construiască calea de la rădăcina arborelui. Mai întâi, apoi, și așa mai departe. Dacă , atunci verificarea semnăturii a avut succes. [opt]

Beneficii

Post-cuantic

Algoritmii de semnătură digitală folosiți în mod obișnuit, cum ar fi RSA și DSA , profită de complexitatea factorizării numerelor și de complexitatea calculării logaritmului discret . Cu toate acestea, folosind algoritmul lui Shor și un computer cuantic , aceste semnături pot fi sparte în timp polinomial. În schimb, semnătura Merkle este post-cuantică, deoarece puterea sa criptografică se bazează pe puterea funcției hash criptografice și pe puterea semnăturii digitale unice. [unu]

Reutilizabilitate

Una dintre principalele probleme ale semnăturilor digitale bazate pe funcții hash puternice este că acestea sunt utilizate de obicei în contextul semnăturilor digitale unice, adică semnături în care o pereche de chei este folosită pentru a semna un singur mesaj. Cu toate acestea, există modalități de a extinde astfel de semnături pentru a fi reutilizabile. O astfel de metodă este de a construi un arbore Merkle, care este folosit pentru a autentifica diferite semnături unice. [9]

Dezavantaje

Problema traversării arborelui

Această problemă este legată de găsirea unui algoritm eficient pentru calcularea datelor de autentificare. Soluția banală - de a păstra toate datele în memorie - necesită prea multă memorie. Pe de altă parte, abordarea calculării căii de autentificare în zona în care este nevoie va fi prea costisitoare pentru unele noduri arbore. [10] Dacă lungimea matricelor X și Y este mai mare de 2^25, utilizarea semnăturii Merkle devine nepractică. [opt]

Criptanaliză

Este dovedit că algoritmul de semnătură digitală Merkle este puternic din punct de vedere criptografic împotriva unui atac de selecție adaptivă a mesajelor dacă folosește o funcție hash care este rezistentă la coliziunile de tip 2 . [11] [12] Cu toate acestea, pentru a sparge semnătura Merkle, criptoanalistul trebuie fie să reconstruiască imaginea prealabilă a funcției hash, fie să calculeze o coliziune de tip I. Aceasta înseamnă că, din punct de vedere practic, puterea criptografică a unei semnături Merkle se bazează pe ireversibilitatea funcției hash utilizate și pe rezistența acesteia la coliziuni de primă clasă. [12]



Note

  1. 12 CMSS , 2006 , p. 349-350.
  2. Merkle, 1979 .
  3. Securitate, 2005 , p. unu.
  4. 12 CMSS , 2006 , p. 352.
  5. CMSS, 2006 , p. 351.
  6. Securitate, 2005 , p. 3.
  7. CMSS, 2006 , p. 352-353.
  8. 12 CMSS , 2006 , p. 353.
  9. dods2005hash, 2005 , p. 96.
  10. szydlo2004merkle, 2004 , p. 541.
  11. Securitate, 2005 , p. patru.
  12. 1 2 rohde2008fast, 2008 , p. 109.

Literatură