Criptarea homomorfă este o formă de criptare care vă permite să efectuați anumite operații matematice asupra textului cifrat și să obțineți un rezultat criptat care se potrivește cu rezultatul operațiunilor efectuate pe textul simplu . De exemplu, o persoană ar putea adăuga două numere criptate fără să cunoască numerele descifrate, iar apoi o altă persoană ar putea descifra suma criptată - obține suma descifrată fără a avea numerele descifrate. Criptarea homomorfă ar permite furnizarea de servicii diferite fără a furniza date publice de utilizator pentru fiecare serviciu.
Există criptosisteme parțial homomorfe și complet homomorfe. Un criptosistem parțial homomorf vă permite să efectuați doar una dintre operații - fie adunare, fie înmulțire . Un criptosistem complet homomorf suportă ambele operații, adică satisface proprietățile homomorfismului atât în ceea ce privește înmulțirea, cât și adunarea.
Conceptul de „criptare homomorfă” a fost format pentru prima dată [1] în 1978 de Ronald Rivest , Leonard Adleman și Michael Dertouzos , autorii algoritmului RSA la un an după dezvoltarea algoritmului. Ei au sugerat posibilitatea de a efectua operațiuni arbitrare asupra datelor criptate fără a le decripta.
În acel moment, încercările de a crea un criptosistem complet homomorf nu au avut succes. De exemplu, în 1982, Shafi Goldwasser și Silvio Micali au propus un sistem de criptare homomorf la multiplicare și capabil să cripteze doar un bit. Un alt criptosistem homomorf în ceea ce privește multiplicarea a fost propus în 1999 de Pascal Peyet .
În 2005, Dan Bone , Yu Jin Guo și Kobi Nissim au propus [2] un criptosistem bazat pe utilizarea perechilor biliniare pe curbe eliptice , permițând un număr nelimitat de operații de adunare și o operație de înmulțire.
Problema creării unui criptosistem homomorf atât în ceea ce privește operațiile de adunare, cât și de înmulțire a rămas nerezolvată de peste 30 de ani.
În 2009, Craig Gentry , student absolvent la Universitatea Stanford și stagiar la IBM , a fundamentat teoretic posibilitatea fundamentală de a crea un criptosistem de criptare complet homomorf și a propus un astfel de sistem . Sistemul propus poate fi utilizat pentru a asigura confidențialitatea datelor în timpul oricărui tip de prelucrare a datelor în medii neîncrezătoare, de exemplu, în cloud sau în calculul distribuit .
În curând au apărut lucrări care sugerează modificări de îmbunătățire a performanței la criptosistemul Gentry .
Criptografii lucrează la modalități alternative de a construi criptosisteme complet homomorfe, cum ar fi utilizarea criptării simetrice în locul criptării cu chei publice, folosind polinoame într-una sau mai multe variabile, folosind polinoame matriceale.
Criptarea homomorfă este o formă de criptare care permite efectuarea unei operații algebrice specifice pe textul simplu prin efectuarea unei operații algebrice pe textul cifrat.
Fie cheia de criptare, textul simplu (mesajul) de criptat și funcția care realizează criptarea.
O funcție se numește omomorfă în raport cu operația „ ” (adunare sau înmulțire) peste texte clare (mesaje) și dacă există un algoritm eficient (care necesită un număr polinom de resurse și rulează în timp polinomial ), care, primind orice pereche de texte cifrate de forma și ca intrare , produce un text criptat (text cifrat, criptogramă) astfel încât atunci când este decriptat , va fi obținut text simplu [3] .
În practică, următorul caz special de criptare homomorfă este mai des luat în considerare.
Lăsați pentru funcția de criptare dată și operația „ ” pe texte simple și există o operație „ ” pe textele cifrate, astfel încât textul simplu să fie extras din textul cifrat atunci când este decriptat . Acest lucru necesită ca dat , , , dar cu o cheie necunoscută , ar fi imposibil să se verifice efectiv dacă textul cifrat a fost obținut de la și .
Orice sistem de criptare standard poate fi descris prin descrierea a trei operațiuni: o operație de generare a cheilor ( keyGen ), o operație de criptare ( encypt ) și o operație de decriptare ( decrypt ) [4] .
Pentru a descrie un sistem de criptare homomorf, pe lângă cele trei operații enumerate mai sus, este necesar să se descrie operația de calcul ( eval ). Utilizarea criptării homomorfe implică utilizarea unei secvențe de patru operații: generarea cheilor, criptarea, calculul, decriptarea:
Fie funcția de criptare; - functie de extindere; și — texte simple; simbolurile „ ” și „ ” denotă operații de înmulțire și adunare pe texte cifrate, corespunzătoare operațiilor de înmulțire și adunare pe texte simple.
Un sistem de criptare este homomorf în raport cu operația de înmulțire (are proprietăți homomorfe multiplicative) dacă
Un sistem de criptare este homomorf în raport cu operația de adăugare (are proprietăți homomorfe aditive) dacă
Un sistem de criptare este homomorf în ceea ce privește operațiile de înmulțire și adunare, adică complet homomorf (are atât proprietăți homomorfe multiplicative cât și aditive) dacă
Dacă un criptosistem cu aceste proprietăți poate cripta doi biți, atunci deoarece operațiunile de adunare și înmulțire formează o bază Turing-completă asupra biților, devine posibil să se calculeze orice funcție booleană și, prin urmare, orice altă funcție calculabilă .
Criptarea omomorfă deschide noi oportunități pentru păstrarea integrității, disponibilității și confidențialității datelor atunci când sunt procesate în sisteme cloud. În cloud computing , unde performanța este o prioritate de top, ar trebui aplicați diferiți algoritmi, fiecare dintre care îndeplinește cel mai bine sarcina în cauză. De exemplu, pentru operațiunile de multiplicare a datelor criptate, este recomandabil să se folosească algoritmul RSA sau algoritmul ElGamal , iar pentru adunare, algoritmul Peye . În cazul utilizării unui sistem de criptare complet homomorf, numărul de operațiuni care pot fi efectuate asupra datelor ar trebui limitat, deoarece în urma calculelor se acumulează unele erori . Dacă valoarea erorii depășește valoarea parametrului secret , este posibil ca datele să nu poată fi decriptate corect.
Votul electronicVotul electronic este un alt domeniu promițător de aplicare pentru criptarea homomorfă. Sistemul va putea cripta voturile alegătorilor și va efectua calcule pe date criptate, păstrând în același timp anonimatul alegătorilor. De exemplu, în schema de vot electronic Benalo, procesul de vot include următorii pași [5] :
Luați în considerare un exemplu despre cum poate fi implementată această abordare.
Să existe un set de candidați din care să se formeze lista inclusă în buletinul de vot. Inițiatorul votului are un criptosistem homomorf în raport cu operațiunea de adăugare, distribuie între participanții la votul secret cheia publică a sistemului de criptare homomorfă și buletinul de vot ca vector unde este numele de familie al celui de-al-lea candidat. Fiecare dintre alegători realizează un vector de preferințe unde După aceea, folosind cheia publică, fiecare dintre alegători criptează vectorul element cu element și îl trimite inițiatorului votului. Pentru a rezuma rezultatele votării, el efectuează calcule pe elementele corespunzătoare ale vectorilor de preferință primiți și decriptează folosind cheia secretă . Deoarece criptosistemul este homomorf în ceea ce privește operația de adunare, indicii celor mai mari elemente ale vectorului rezultat vor fi indicii candidaților câștigători.
Căutare sigură de informațiiCriptarea omomorfă poate oferi utilizatorilor posibilitatea de a extrage informații din motoarele de căutare, păstrând în același timp confidențialitatea: serviciile vor putea primi și procesa cereri, precum și emite rezultate de procesare fără a analiza și remedia conținutul lor real. De exemplu, o metodă de extragere a înregistrărilor dintr-o bază de date prin indecșii acestora poate fi reprezentată după cum urmează.
Fie indexul înregistrării de preluat; ; - toate înregistrările indexate din baza de date.
Apoi, pentru a selecta înregistrarea necesară, este necesar să se calculeze următoarea funcție :
Dacă toate sunt criptate cu un criptosistem homomorf, se poate calcula homomorf prin texte cifrate. Pentru a face acest lucru, este suficient ca clientul să cripteze bit cu bit indexul înregistrării de care are nevoie și să îl trimită la server. Rezultatul unei evaluări homomorfe a unei funcții peste texte cifrate va fi valoarea cifrată dorită a intrării solicitate de client. Evident, un criptosistem trebuie să aibă proprietăți homomorfe atât multiplicative, cât și aditive.
Protecția rețelelor de comunicații descentralizate fără firRețelele wireless descentralizate de auto-organizare ( MANET ) sunt rețele formate din dispozitive mobile. Fiecare astfel de dispozitiv se poate mișca în mod independent în orice direcție și, ca rezultat, adesea întrerupe și stabilește conexiuni cu dispozitivele învecinate. Una dintre principalele probleme în construirea MANET este asigurarea securității datelor transmise. Pentru a rezolva această problemă, poate fi utilizată criptarea homomorfă, care este încorporată în protocoalele de rutare pentru a îmbunătăți securitatea. În acest caz, operațiunile pe texte cifrate pot fi efectuate în siguranță de către noduri intermediare. În special, pentru a găsi calea optimă între două noduri, este necesar să se efectueze operații liniare pe datele criptate fără a le decripta. Prezența criptării homomorfe nu permite unui atacator să găsească o conexiune între mesajele care intră în nod și mesajele care părăsesc nodul. Prin urmare, nu este posibilă urmărirea traseului unui mesaj utilizând analiza traficului [6] .
Servicii de externalizare pentru carduri inteligenteTendința actuală este de a dezvolta carduri universale cu propriul sistem de operare , care poate îndeplini o varietate de funcții și poate interacționa cu mai mulți furnizori de servicii. S-a speculat că unele aplicații pot rula în afara hărții pe date criptate homomorf. Aplicațiile care necesită în special resurse, cum ar fi aplicațiile furnizorilor de servicii, precum și verificările biometrice ( recunoașterea vocii , a amprentei sau a scrisului de mână ), care necesită de obicei o cantitate semnificativă de date și un număr mare de operațiuni relativ simple, pot utiliza dispozitive de stocare externe și procesoare , mai puternice decât procesorul încorporat în card.
Sisteme de feedbackCriptarea homomorfă poate fi utilizată, de exemplu, în așa-numitele sisteme de feedback homomorfe securizate atunci când este necesar să se păstreze anonimatul utilizatorului și să se ascundă rezultatele intermediare ale calculelor . Sistemele ajută la colectarea anonimă a feedback-ului (comentariilor) de la elevi sau profesori despre munca lor. Feedback-ul primit în acest fel este criptat și stocat pentru calculele ulterioare. Sistemele de feedback pot fi utilizate pentru a crește gradul de conștientizare a stării de lucruri și pentru a îmbunătăți performanța. S-a stabilit că feedback-ul de încredere al oricărui sistem sau proces poate fi furnizat numai în cazurile de menținere a anonimatului utilizatorului, de imuabilitate a datelor colectate și de asigurare a securității operațiunilor interne pentru analiza datelor.
Ofucare pentru a proteja produsele softwareScopul principal al ofuscarii este de a face dificilă înțelegerea funcționării programului. Deoarece toate arhitecturile computerizate tradiționale folosesc șiruri binare, prin aplicarea criptării complet homomorfe pe biți, orice funcție poate fi calculată. Prin urmare, este posibilă criptarea homomorfă a întregului program, astfel încât să-și păstreze funcționalitatea.
Criptosistemele parțial homomorfe sunt criptosisteme care sunt homomorfe în raport cu o singură operație, fie operația de adunare, fie operația de înmulțire. În exemplele de mai jos, expresia denotă utilizarea funcției de criptare pentru a cripta textul simplu (mesajul) .
Criptosistemul RSA este o schemă criptografică cu cheie publică care este omomorfă în multiplicare. Să fie modulul RSA, să fie textul simplu și să fie cheia publică (pentru a cripta textul simplu). Funcția de criptare arată ca . Să arătăm homomorfismul prin înmulțire:
Criptosistemul ElGamal este o alternativă la criptosistemul RSA și, cu aceeași valoare a cheii, oferă aceeași securitate criptografică . ElGamal a îmbunătățit algoritmul Diffie-Hellman și a obținut algoritmi pentru criptare și pentru furnizarea de autentificare. Un criptosistem este un criptosistem probabilist de criptare. Funcția sa de criptare este omomorfă în ceea ce privește operația de multiplicare a textului simplu: o criptogramă de produs poate fi calculată ca un produs (în perechi) al criptogramelor de factori. Fie funcția de criptare; și — texte simple. Dacă și atunci pot fi obținute în formularul .
În criptosistemul Goldwasser-Micali , dacă modulul este cheia publică, atunci funcția de criptare a biților este pentru elementul aleatoriu . Atunci acest criptosistem este omomorf pentru operația de înmulțire: unde simbolul „ ” denotă operația de adunare modulo 2 .
În criptosistemul Peye , dacă cheia publică este un modulo și este un număr aleatoriu, atunci funcția de criptare a unui mesaj (text simplu) este reprezentată ca o variabilă aleatorie . Atunci homomorfismul prin adunare se demonstrează astfel:
În criptosistemul Benalo , dacă cheia publică este un modul , atunci funcția de criptare în text simplu este reprezentată ca pentru aleatoriu . Atunci homomorfismul prin adunare se demonstrează astfel:
Criptosistemele parțial homomorfe permit efectuarea de calcule homomorfe pentru o singură operație (fie adunare, fie înmulțire) de texte clare. Un criptosistem care acceptă atât adunarea, cât și multiplicarea (conservând astfel structura inelului de text simplu ) este cunoscut ca criptare complet homomorfă și este mai puternic. Folosind un astfel de sistem, orice schemă poate fi evaluată homomorf, permițând crearea eficientă a programelor care pot fi rulate pe criptare de intrare pentru a produce criptarea de ieșire. Deoarece un astfel de program nu își va decripta niciodată intrarea, poate fi executat de o parte neîncrezătoare fără a-și afișa intrarea și starea internă. Existența unui sistem criptografic eficient și complet homomorf ar avea mari implicații practice în externalizarea calculului privat, de exemplu în contextul cloud computing -ului [7] . Criptarea homomorfă ar permite diferitelor servicii să fie combinate într-unul singur fără a furniza date pentru fiecare serviciu. De exemplu, gruparea serviciilor diferitelor companii ar putea calcula în mod consecvent taxa, aplica cursul de schimb curent, depune o cerere de tranzacție, fără a furniza date reale pentru fiecare dintre aceste servicii [8] . Proprietatea omomorfă a diferitelor sisteme criptografice poate fi utilizată pentru a crea sisteme de vot sigure [9] , funcții hash rezistente la coliziuni, informații proprietare ale motorului de căutare și pentru a permite utilizarea pe scară largă a cloud computingului public prin garantarea confidențialității datelor procesate.
Una dintre problemele semnificative ale criptosistemelor cunoscute complet homomorfe este performanța lor extrem de scăzută. În prezent, există două modalități principale de îmbunătățire a performanței: utilizarea „criptării limitate complet homomorfe ” [10] și utilizarea așa-numitei „metode de ambalare a textului cifrat” [11] . Primul implică un criptosistem care poate efectua operații de adunare și înmulțire, dar într-un număr limitat. Esența celui de-al doilea este că mai multe texte clare sunt scrise într-un text cifrat deodată și, în același timp, în timpul unei singure operații a unui astfel de text cifrat lot, toate textele cifrate incluse în acesta sunt procesate simultan.