Învățarea în inel cu semnătură de erori este una dintre clasele de criptosisteme cu chei publice bazate pe problema învățării cu erori în inel [ 1] , care înlocuiește algoritmii de semnătură RSA și ECDSA utilizați . În ultimul deceniu au existat cercetări active pentru a crea algoritmi criptografici care rămân în siguranță chiar dacă un atacator are resursele unui computer cuantic [2] [3] . Semnătura de antrenament de eroare de inel este una dintre semnăturile post-cuantice [2] [3] cu cele mai mici dimensiuni de cheie publică și semnătură. Utilizarea problemei generale de învățare a erorilor în criptografie a fost introdusă de Oded Regev în 2005 și a fost sursa mai multor dezvoltări criptografice [4] . Fondatorii criptografiei ring learning with errors (RLWE) cred că o caracteristică a acestor algoritmi bazați pe învățarea cu erori este reducerea demonstrabilă a problemelor complexe cunoscute [1] [5] . Această semnătură are o reducere dovedibilă la problema găsirii celui mai scurt vector în domeniul criptografiei pe rețele [6] . Aceasta înseamnă că dacă un atac asupra criptosistemului RLWE poate fi detectat, atunci o întreagă clasă de presupuse probleme complexe de calcul va avea o soluție [7] . Prima semnătură bazată pe RLWE a fost dezvoltată de Vadim Lyubashevsky [8] și rafinată în 2011 [9] . Acest articol acoperă fundamentele matematice fundamentale ale RLWE și se bazează pe o schemă numită GLYPH [10] .
O semnătură digitală este un mijloc de protejare a informațiilor și un mijloc de verificare a autenticității sursei de informații. Criptografia cu cheie publică oferă un set bogat de algoritmi criptografici diferiți pentru crearea semnăturilor digitale. Cu toate acestea, semnăturile cheii publice utilizate în prezent vor deveni complet nesigure odată cu apariția computerelor cuantice [2] [11] [12] Deoarece chiar și un computer cuantic relativ mic, capabil să proceseze doar zece mii de biți de informație, poate rupe cu ușurință toate pe scară largă. au folosit algoritmi de criptare cu chei publice utilizate pentru a proteja confidențialitatea și semnătura digitală pe Internet [2] [13] . RSA , ca unul dintre cei mai folosiți algoritmi de cheie publică pentru crearea semnăturilor digitale , devine vulnerabil și datorită calculatoarelor cuantice, deoarece securitatea sa se bazează pe complexitatea clasică a problemelor de factorizare [14] . Iar un computer cuantic cu aproximativ 6n qubiți de memorie și capacitatea de a executa algoritmul lui Shor poate factoriza cu ușurință produsul a două numere prime de n biți, precum și să spargă semnăturile digitale bazate pe logaritmul discret și logaritmul discret al curbei eliptice. probleme [15] într-un timp previzibil [16 ] . Condițiile preliminare pentru apariția unor astfel de computere sunt deja în vigoare. De exemplu, pe 20 septembrie 2019, Financial Times a raportat: „Google susține că a atins superioritatea cuantică pe o matrice de 54 de qubiți, dintre care 53 erau funcționali și folosiți pentru a efectua calcule în 200 de secunde, ceea ce ar dura aproximativ 10.000 de ani pentru un supercalculator convențional.” [17] . Astfel, un computer cuantic relativ mic, folosind algoritmul lui Shor, poate sparge rapid toate semnăturile digitale folosite pentru a asigura confidențialitatea și integritatea informațiilor de pe Internet astăzi [16] .
Primitivele criptografice bazate pe probleme complexe din teoria rețelelor joacă un rol cheie în domeniul cercetării criptografice post-cuantice. În runda 2 a trimiterilor de criptografie post-cuantică, numită NIST [18] , 12 din 26 se bazează pe rețele și majoritatea se bazează pe problema Learning With Errors (LWE) și variantele acesteia. Au fost propuse un număr mare de primitive criptografice bazate pe LWE, cum ar fi criptarea cheii publice, protocoalele de schimb de chei, semnăturile digitale, familiile de funcții pseudo-aleatoare și altele [19] . Protocoalele criptografice bazate pe problema LWE sunt la fel de sigure ca și protocoalele bazate pe probleme de teoria rețelei , care astăzi sunt considerate extrem de complexe. Cu toate acestea, primitivele criptografice bazate pe problema LWE suferă de dimensiuni mari ale cheilor, prin urmare sunt de obicei ineficiente [19] .Acest neajuns i-a încurajat pe oameni să dezvolte variante LWE mai eficiente precum Ring Learning.cu erori, RLWE) [1] . S-a demonstrat că problema RLWE este la fel de dificilă din punct de vedere computațional ca și cele mai grele probleme din teoria rețelelor peste clase speciale de rețele ideale [1] , iar aplicațiile criptografice ale RLWE sunt de obicei mai eficiente decât LWE-urile convenționale, în special într-un inel polinomial ciclotomic redus modulo. un polinom, al cărui grad este puterea lui 2 [19] .
Semnătura RLWE funcționează într-un inel polinomial modulo un polinom de grad cu coeficienți într-un câmp finit pentru un prim impar . Mulțimea de polinoame peste un câmp finit cu operațiile de adunare și înmulțire formează un inel polinom infinit [9] . Înmulțirea și adăugarea polinoamelor vor funcționa ca de obicei cu rezultatul modulo (adică inelul ). Un polinom tipic se exprimă astfel:
Câmpul are elementele sale în set . Dacă este o putere a lui doi, atunci polinomul va fi un polinom circular . Sunt posibile alte alegeri , dar polinoamele circulare corespunzătoare sunt mai eficiente [9] .
Există două formulări diferite ale problemei de învățare cu erori în inel, prima opțiune este „ căutare ”, a doua opțiune este „ soluție ” [1] .
Fie : să fie mulțimea de polinoame aleatoare, dar cunoscute de la cu coeficienți diferiți pentru toate , să fie mulțimea de polinoame mici aleatoare și necunoscute în raport cu granița din inel și să fie un mic polinom necunoscut în raport cu granița din inel , .
Căutare : găsiți un polinom dintr-o listă de perechi de polinoame
Decizie : Această listă de perechi de polinoame determină dacă polinoamele au fost construite ca sau au fost generate aleator din cu coeficienți din toate .
Complexitatea acestei probleme constă în alegerea unui polinom factor de grad , peste câmp și graniță . În mulți algoritmi bazați pe RLWE, cheia privată va fi o pereche de polinoame „mici” și . Atunci cheia publică corespunzătoare acesteia va fi o pereche de polinoame , alese aleatoriu dintre , și un polinom . Datele și polinoamele trebuie să fie indecidabile din punct de vedere computațional pentru problema de recuperare a polinomului [1] [6] .
O clasă ciclotomică peste un câmp generat de un element este mulțimea tuturor elementelor distincte care sunt puterile-leme [20] .
Dacă este un element primitiv [21] (un element ca pentru ) al câmpului , atunci clasa ciclotomică peste câmp va avea exact elemente. Orice element dintr-o clasă ciclotomică poate genera aceasta și numai această clasă și, în consecință, aparține numai acesteia.
Exemplul 1. Fie , și un element primitiv al câmpului , adică , pentru . Având în vedere, de asemenea , că putem obține o descompunere a tuturor elementelor nenule ale câmpului în trei clase ciclotomice pe câmp :
Exemplul 2. În mod similar, puteți construi clase pe câmp peste câmpul , adică . Fie un element primitiv al câmpului , prin urmare .
Semnătura RLWE utilizează polinoame care sunt considerate „mici” în raport cu norma uniformă . Norma uniformă pentru un polinom este pur și simplu cea mai mare valoare absolută a coeficienților polinomului, iar acești coeficienți sunt tratați ca numere întregi în , nu în [6] .Algoritmul de semnătură generează polinoame aleatoare a căror normă uniformă este mică în raport cu un anumit limite. Acest lucru se poate realiza cu ușurință prin generarea aleatorie a tuturor coeficienților polinomului astfel încât să se garanteze, cu o probabilitate mare, o normă mai mică sau egală cu această limită. Există două moduri comune de a face acest lucru [9] :
În semnătura RLWE GLYPH folosită ca exemplu mai jos, pentru coeficienții polinoamelor „mici” se va folosi metoda de distribuție uniformă , iar valoarea va fi mult mai mică decât [6] .
Majoritatea algoritmilor de semnătură RLWE necesită, de asemenea, capacitatea de a hashing criptografic șiruri de biți arbitrare în polinoame mici în conformitate cu o anumită distribuție [6] [10] . Exemplul de mai jos folosește o funcție hash care ia ca intrare un șir de biți și scoate un polinom cu coeficienți astfel încât exact unul dintre acești coeficienți să aibă o valoare absolută mai mare decât zero și mai mică decât un număr întreg [10] .
O caracteristică cheie a algoritmilor de semnătură RLWE este utilizarea unei tehnici cunoscute sub numele de eșantionare a varianței [9] [8] . În această metodă, dacă norma uniformă a polinomului semnăturii depășește o limită fixă , atunci polinomul respectiv va fi eliminat și procesul de generare a semnăturii va începe din nou. Acest proces se va repeta până când norma uniformă a polinomului este mai mică sau egală cu granița. Eșantionarea de respingere asigură că semnătura de ieșire nu poate fi exploatată folosind valorile cheii private ale semnatarului [10] .
În acest exemplu, granița va fi egală cu , unde este intervalul de eșantionare uniformă și este numărul de coeficienți nenuli asociați cu polinomul permis [6] .
Conform GLYPH [10] , gradul maxim de polinoame va fi și, prin urmare, va avea coeficienți [6] . Valorile tipice pentru sunt 512 și 1024 [6] . Coeficienții acestor polinoame vor fi elemente ale câmpului , unde este un prim impar corespunzător lui . Pentru , GLYPH definește și este numărul de coeficienți de ieșire non-zero egal cu [10] .Securitatea schemei de semnătură este strâns legată de dimensiunile relative ale .
După cum sa menționat mai sus, polinomul care definește inelul de polinoame folosit va fi egal cu . În cele din urmă, va fi un polinom ales aleatoriu și fix cu coeficienți din mulțimea . Toți semnatarii și verificatorii vor ști și [10] .
Conform GLYPH [10] , cheia publică pentru semnarea unui mesaj este generată prin următorii pași:
Polinoamele și servesc ca cheie privată și ca cheie publică corespunzătoare. Securitatea acestei scheme de semnătură se bazează pe următoarea problemă: pentru un polinom dat , este necesar să se găsească polinoame mici și , astfel încât: . Dacă această problemă este dificil de rezolvat, atunci schema de semnătură va fi dificil de falsificat.
Conform GLYPH [10] , pentru a semna un mesaj exprimat ca șir de biți, trebuie efectuate următoarele operații:
Conform GLYPH [10] , pentru a verifica un mesaj exprimat ca șir de biți, trebuie să utilizați cheia publică a autorului acestui mesaj și o semnătură digitală ( ):
Nu este dificil să arăți corectitudinea verificării:
În lucrarea lui Luboshevsky [1] , se acordă multă atenție securității algoritmului, totuși, pentru a evidenția aceste proprietăți ale problemei și a dovedi conformitatea lor deplină cu cele declarate, ar trebui să fie o serie de atacuri directe asupra RLWE. efectuate. Atacul este determinat de alegerea unui câmp numeric și a unui număr prim , numit modul, împreună cu distribuția erorilor.
Dukas și Durmus au propus o versiune non-duală a RLWE într-o formulare ciclotomică și au demonstrat că complexitatea versiunii noi și a celei vechi este identică [22] . Această versiune a RLWE generează distribuția erorii ca o funcție Gaussiană discretă în inelul de numere întregi sub încorporare canonică, mai degrabă decât în imaginea ideală duală. Versiunile duale și non-duale sunt echivalente până la distribuția erorilor [23] . Pentru versiunea nonduală a RLWE, autorii lui [24] au propus un atac asupra versiunii „soluție” a RLWE. Atacul folosește un modul de grad de reziduu de 1, care dă un homomorfism inel → . Atacul funcționează atunci când, cu o probabilitate copleșitoare, distribuția erorilor RLWE într-un set de perechi ia valori doar într-un mic subset de . Apoi, autorii lui [24] oferă o întreagă familie de exemple care sunt vulnerabile la atacuri. Cu toate acestea, câmpurile numerice vulnerabile nu sunt câmpuri Galois, așa că teorema reducerii versiunii „căutare” la versiunea „soluție” nu este aplicabilă și atacul nu poate fi utilizat direct pentru varianta „căutare” a problemei RLWE, care a fost de fapt. scopul lucrării prezentate [24] .
Totuși, mai târziu într-o altă lucrare [23] , acest atac a fost generalizat la un număr de câmpuri și module Galois de grad superior. De asemenea, a prezentat implementarea sa pentru anumite instanțe RLWE, inclusiv opțiunea de a reduce „ căutarea ” la „ soluție ”. Principiul său principal a fost că homomorfismul din inel a fost considerat sub forma → (unde, este gradul de ) pentru , și că distribuția erorilor diferă de aleatorie, folosind un test statistic chi-pătrat în loc să se bazeze pe valori a polinomului de eroare. Autorii subliniază, de asemenea, că au efectuat un atac asupra unei variații a RLWE cu inele ciclotomice simple sub anumite ipoteze despre modul și rata de eroare, care este realizat cu succes cu o mare probabilitate. Și anume, ei au arătat un atac asupra versiunii non-duale a RLWE atunci când modulul este unic și prim . În plus, autorii articolului au efectuat un alt atac asupra versiunii duale RLWE a „soluției” în câmpul de ciclotomie --lea cu un modul arbitrar , presupunând că lățimea distribuției erorilor este de aproximativ .