Schema de criptare GGH

Schema de criptare GGH ( ing.  Goldreich–Goldwasser–Halevi ) este un sistem criptografic asimetric bazat pe rețele . Există, de asemenea, o schemă de semnătură GGH .

Criptosistemul se bazează pe soluții la problema găsirii celui mai scurt vector și a problemei găsirii celui mai apropiat vector . Schema de criptare GGH, publicată în 1997 de oamenii de știință Oded Goldreich , Shafi Goldwasser și Shai Halevi , folosește o funcție de intrare secretă unidirecțională , deoarece având în vedere orice bază de rețea, este ușor să generați un vector aproape de un punct de rețea. De exemplu, luând un punct de rețea și adăugând un mic vector de eroare. Pentru a reveni de la vectorul de eroare la punctul inițial al rețelei, este nevoie de o bază specială. În 1999, Phong Q. Nguyen [1] a făcut o rafinare a schemei de criptare GGH inițială, ceea ce a făcut posibilă rezolvarea a patru din cele cinci probleme GGH și obținerea de informații parțiale despre acestea din urmă. În timp ce GGH poate fi sigur cu anumite alegeri de parametri, eficiența sa față de criptosistemele tradiționale cu cheie publică rămâne discutabilă [2] . Adesea, criptarea necesită o dimensiune mare a rețelei, în timp ce dimensiunea cheii crește aproximativ pătratic în raport cu dimensiunea rețelei [2] .

Singura schemă de zăbrele care poate gestiona dimensiuni mari este NTRU [3] .

Algoritm

GGH include o cheie publică și o cheie privată [4] . Cheia privată este baza rețelei cu o matrice unimodulară .

Cheia publică este o altă bază a rețelei formei .

Fie spațiul mesajului M format din vectori aparținând intervalului .

Criptare

Având un mesaj , o eroare și o cheie publică :

În notație matriceală:

Trebuie reținut că este format din valori întregi, este un punct de rețea și, prin urmare, este și un punct de rețea. Atunci textul cifrat este:

Transcriere

Pentru a decripta textul cifrat se calculează:

Pentru a elimina , dacă este suficient de mic, se folosește metoda de rotunjire a lui Babai [5] .

Apoi pentru a obține textul:

Analiza de securitate

Această secțiune discută mai multe modalități de a ataca un criptosistem [6] .

Atacul prin rotunjire

Atacul de rotunjire este cel mai evident atac al acestui sistem criptografic, cu excepția atacului de forță brută - căutarea vectorului de eroare .. Esența sa este de a folosi cheia publică B pentru a inversa funcția în același mod ca atunci când se folosește cheia privată R. Și anume, știind , puteți calcula . Astfel, puteți găsi un vector . La dimensiuni sub 80 LLL , algoritmul este capabil să determine corect baza, cu toate acestea, pornind de la dimensiunile 100 și mai mari, acest atac este mai rău decât o enumerare trivială a vectorului de eroare.


Atacul de furtună

Acest algoritm este o rafinare evidentă a atacului de rotunjire. Aici folosim cel mai bun algoritm de aproximare pentru cea mai scurtă problemă vectorială. În special, se folosește algoritmul cel mai apropiat plan în locul algoritmului de rotunjire Babai. Funcționează așa. Dat un punct și o bază redusă c = { } pentru LLL . Toate spațiile afine = { + } : } sunt luate în considerare. Pentru toate există un hiperplan cel mai aproape de punct . În plus , un punct este proiectat pe spațiul (n - 1)-dimensional, care este acoperit de = { } . Acest lucru dă un nou punct și o nouă bază = { }. Algoritmul procedează acum recursiv pentru a găsi un punct în această rețea (n - 1)-dimensională aproape de . În cele din urmă, algoritmul stabilește . Această metodă funcționează mult mai rapid decât cea anterioară. Cu toate acestea, volumul său de lucru crește, de asemenea, exponențial odată cu dimensiunea rețelei. Experimentele arată că atunci când se utilizează LLL ca algoritm de reducere a rețelei, este necesar un anumit timp de căutare, începând de la dimensiunile 110-120. Atacul devine nerealizabil începând cu mărimea 140-150.

Atacul prin injecție

O altă modalitate care este adesea folosită pentru a aproxima problema găsirii celui mai apropiat vector este de a încorpora n vectori de bază și un punct pentru care este necesar să se găsească un punct al rețelei apropiate într-o rețea (n + 1)-dimensională.

Algoritmul de reducere a rețelei este apoi folosit pentru a găsi cel mai scurt vector diferit de zero în , în speranța că primele n elemente din acest vector vor fi cele mai apropiate puncte de . Experimentele efectuate pe acest atac (folosind LLL ca instrument pentru găsirea celor mai scurti vectori) indică faptul că funcționează până la dimensiuni în jurul valorii de 110-120, ceea ce este mai bun decât atacul de rotunjire, care devine mai rău decât căutarea trivială după dimensiunea 100.

Estimarea eficacității atacurilor [7]

Atacul estimat prin rotunjire

Să fie create cinci baze închise în fiecare dimensiune. Fiecare bază este aleasă ca = + rand , unde I este matricea de identitate și rand este o matrice pătrată ai cărei membri sunt aleși uniform din interval . Pentru fiecare bază se calculează valoarea = , unde este norma euclidiană a celui mai mare rând și . Pentru fiecare bază închisă sunt generate cinci baze deschise

= , unde este defectul de ortogonalitate dublă: unde denotă rândul matricei .

Scorul de atac

Pentru a evalua atacul de asalt, au fost folosite aceleași baze deschise și închise ca și în atacul prin rotunjire.

Evaluarea atacului de injecție

Întrucât nu se poate vorbi de „sarcina de lucru” a unui atac de injecție, s-a măsurat valoarea maximă (legată de vectorul de eroare) pentru care funcționează acest atac. Pentru aceste experimente, au fost folosite aceleași baze închise și baze deschise ca și pentru cele două atacuri anterioare. Apoi, fiecare bază deschisă a fost folosită pentru a evalua funcția în mai multe puncte folosind mai multe valori diferite și a verificat dacă atacul de injecție recuperează mesajul criptat.

Exemplu

Fie rețeaua cu bază și reciproca sa :

și

Cu o matrice unimodulară:

și

Primim:

Fie mesajul și vectorul erorilor Apoi textul cifrat:

Pentru a decripta aveți nevoie de:

Aceasta se rotunjește la

Și mesajul este restabilit cu:

Surse și lecturi suplimentare

  • Oded Goldreich, Shafi Goldwasser și Shai Halevi. Criptosisteme cu cheie publică din probleme de reducere a rețelei. În CRYPTO '97: Proceedings of the 17th Annual International Cryptology Conference on Advances in Cryptology, paginile 112-131, Londra, Marea Britanie, 1997. Springer-Verlag.
  • Phong Q. Nguyen. Criptoanaliza Criptosistemului Goldreich-Goldwasser-Halevi de la Crypto '97. În CRYPTO '99: Proceedings of the 19th Annual International Cryptology Conference on Advances in Cryptology, paginile 288-304, Londra, Marea Britanie, 1999. Springer-Verlag.

Note

  1. Phong Q. Nguyen. Criptoanaliza Criptosistemului Goldreich-Goldwasser-Halevi de la Crypto '97. . - S. 1-17 . Arhivat din original pe 16 iulie 2018.
  2. ↑ 1 2 Phong Q. Nguyen. Criptoanaliza Criptosistemului Goldreich-Goldwasser-Halevi de la Crypto '97. S. - 1-2. . Arhivat din original pe 16 iulie 2018.
  3. Phong Q. Nguyen. Criptoanaliza Criptosistemului Goldreich-Goldwasser-Halevi de la Crypto '97. S. - 1. . Arhivat din original pe 16 iulie 2018.
  4. Oded Goldreich, Shafi Goldwasser și Shai Halevi. [ https://link.springer.com/content/pdf/10.1007%2FBFb0052231.pdf Public-Key Cryptosystems from Lattice Reduction Problems]. - S. 112-114 . Arhivat 4 mai 2019.
  5. Phong Q. Nguyen. Criptoanaliza Criptosistemului Goldreich-Goldwasser-Halevi de la Crypto '97. . - S. 4 . Arhivat din original pe 16 iulie 2018.
  6. Oded Goldreich, Shafi Goldwasser și Shai Halevi. [ https://link.springer.com/content/pdf/10.1007%2FBFb0052231.pdf Public-Key Cryptosystems from Lattice Reduction Problems]. — S. 122-124 . Arhivat 4 mai 2019.
  7. Oded Goldreich, Shafi Goldwasser și Shai Halevi. [ https://link.springer.com/content/pdf/10.1007%2FBFb0052231.pdf Public-Key Cryptosystems from Lattice Reduction Problems]. - S. 127-130 . Arhivat 4 mai 2019.