Criptografia lattice este o abordare pentru construirea de algoritmi de criptare asimetrică folosind probleme de teoria rețelei , adică probleme de optimizare pe subgrupuri aditive discrete definite pe o mulțime .
Alături de alte metode de criptografie post-cuantică , este considerată promițătoare datorită capacității unui computer cuantic de a sparge sistemele de criptare asimetrică utilizate pe scară largă, bazate pe două tipuri de probleme de teoria numerelor: probleme de factorizare a întregilor și probleme de logaritm discret. Complexitatea algoritmilor de cracare construiti pe retele este extrem de mare, cei mai buni algoritmi pot rezolva cu dificultate aceasta problema in timp exponential. De la mijlocul anilor 2010, nu se cunoaște niciun algoritm cuantic care să depășească un computer convențional.
În 1995, Peter Shor a demonstrat un algoritm polinom pentru spargerea sistemelor criptografice cu cheie publică folosind un computer cuantic, determinând astfel perioada de existență a acestor sisteme înainte de apariția computerelor cuantice de dimensiune suficientă.
În 1996, Lov Grover a demonstrat o metodă generală de căutare a bazelor de date care ar putea decripta algoritmi de criptare simetrică, echivalent cu înjumătățirea cheii de cifrare.
În 2001, o echipă IBM a demonstrat execuția algoritmului de factorizare al lui Shor pentru numărul 15. Numărul a fost factorizat cu 3 și 5 folosind un computer cuantic cu 7 qubiți , construit din 18 10 molecule, constând din cinci atomi de fluor și doi atomi de carbon, cu informații înregistrate cu ajutorul semnalelor radio și citire prin metode de rezonanță magnetică nucleară [1] .
Începând din a doua jumătate a anilor 1990, a devenit necesară căutarea unor probleme criptorezistente pentru calculatoarele cuantice pentru era post-cuantică a criptării , ca una dintre abordările a fost propusă utilizarea rețelelor în - subgrupuri discrete ale vectorului real. spațiu, ale cărui intervale liniare coincid cu el:
Sarcina de a găsi cel mai scurt vector ( SVP , ing. Shortest Vector Problem ) este de a găsi un vector diferit de zero într-o bază de rețea dată în raport cu o anumită normală [2] .
Problema găsirii unei probleme a vectorului cel mai scurt ideal (aproximativ) ( ISVP , în engleză (aproximativ) problema vectorului cel mai scurt ideal ) nu este considerată NP-hard. Cu toate acestea, nu există rețele cunoscute bazate pe metoda reducerii care să fie semnificativ mai eficiente pe structurile ideale decât pe cele generale [3] .
O altă problemă este găsirea celei mai scurte probleme de vectori independenți ( SIVP , în engleză (aproximate) shortest independent vectors problem ), în care este dată baza rețelei și este necesar să se găsească vectori liniar independenți [4] .
Problema găsirii celui mai apropiat vector ( CVP , ing. Closest Vector Problem ) este găsirea unui vector într-o rețea în conformitate cu o bază dată și a unui vector care nu aparține rețelei, având în același timp cât mai asemănător ca lungime cu un anumit vector. vector.
Toate aceste probleme sunt rezolvabile în timp polinomial folosind binecunoscutul algoritm LLL inventat în 1982 de Arjen Lenstra , Hendrik Lenstra și Laszlo Lovas [5] .
Într-o bază dată , cu coordonate întregi n -dimensionale, într-o rețea de , unde , algoritmul LLL găsește o mai scurtă (măsurând[ clarifica ] ) bază ortogonală în timp:
,unde este lungimea maximă a vectorului în acest spațiu.
GGH - un criptosistem bazat pe CVP, și anume pe o funcție unidirecțională cu intrare secretă bazată pe complexitatea reducerii rețelei. A fost publicată în 1997. Cunoscând baza, putem genera un vector apropiat de punctul dat, dar cunoscând acest vector, avem nevoie de baza originală pentru a găsi punctul de plecare. Algoritmul a fost testat în 1999.
Implementarea GGHGGH constă dintr-o cheie publică și o cheie privată.
Cheia secretă este baza rețelei și a matricei unimodulare .
Cheia publică este o bază în zăbrele în forma .
Pentru unii , spațiul mesajului este format dintr - un vector , unde .
CriptareMesajul dat , distorsiunea , cheia publică :
Sub formă de matrice:
.constă din valori întregi, un punct de rețea și v este, de asemenea, un punct de rețea. Apoi textul cifrat:
DecriptarePentru a decripta este necesar să se calculeze:
Partea este eliminată, din motive de aproximare. Mesaj:
ExempluAlegem o zăbrele cu bază :
șiUnde
șiCa urmare:
Fie mesajul și vectorul de eroare . Apoi textul cifrat:
.Pentru a decripta, trebuie să calculați:
.Rotunjirea dă , restabiliți mesajul:
.NTRUEncrypt este un criptosistem bazat pe SVP, care este o alternativă la RSA și ECC. Calculul folosește un inel polinomial .
Schema de semnătură GGH, propusă pentru prima dată în 1995 și publicată în 1997 de Goldrich, se bazează pe dificultatea de a găsi cel mai apropiat vector. Ideea a fost să se folosească rețele pentru care baza „rele”, vectorii sunt lungi și aproape paraleli, este deschisă și baza „bună”, cu vectori scurti și aproape ortogonali, este închisă. Conform metodei lor, mesajul trebuie să fie indexat într-un spațiu acoperit de o rețea, iar semnătura pentru un anumit hash în acest spațiu este cel mai apropiat nod al rețelei. Schema nu avea nicio dovadă formală de securitate, iar versiunea sa de bază a fost spartă în 1999 de Nguyen . În 2006, versiunea modificată a fost spartă din nou de Nguyen și Regev .
NTRUSign este o versiune specială, mai eficientă a semnăturii GGH, cu o cheie și o dimensiune mai mică a semnăturii. Folosește numai rețelele unui submult al mulțimii tuturor rețelelor asociate cu unele inele polinomiale. NTRUSign a fost propus ca standard IEEE P1363.1.