Indistinguirea textului cifrat este o proprietate a multor sisteme de criptare . Intuitiv, dacă un sistem are proprietatea de indistingere, atunci un atacator nu va putea distinge perechile de texte cifrate pe baza textelor clare pe care le criptează. Proprietatea de indistinguire pentru atacurile bazate pe textul simplu ales este considerată o cerință de bază pentru cele mai sigure criptosisteme cu cheie publică , deși unele sisteme de criptare au, de asemenea, o proprietate de indistinguire pentru atacurile bazate pe textul simplu ales și pentru atacurile adaptive bazate pe textul cifru ales. Indistinguirea pentru atacurile cu text simplu este echivalentul pentru securitatea semantică a unui sistem, astfel încât aceste definiții sunt considerate interschimbabile în multe dovezi criptografice.
Un criptosistem este considerat sigur din punct de vedere al indistinguirii [1] dacă niciun atacator, după ce a primit un text cifrat selectat aleatoriu dintr-un spațiu de mesaj cu două elemente definit de adversar, nu poate identifica textul simplu corespunzător acestui text cifrat cu o probabilitate semnificativ mai bună . decât cu ghicirea aleatorie (1⁄2 ). Dacă orice atacator poate reuși să discerne textul cifrat ales cu o probabilitate semnificativ mai mare de 1⁄2, atunci se spune că acel atacator are un „avantaj” în discernerea textului cifrat, iar sistemul nu este considerat sigur din punct de vedere al indistinguirii. . Această definiție include ideea că, într-un sistem securizat, un atacator nu ar trebui să obțină nicio informație prin vizualizarea textului cifrat . Prin urmare, un atacator ar trebui să poată distinge textele cifrate nu mai bine decât dacă ar ghici aleatoriu.
Securitatea în ceea ce privește indistingubilitatea are multe definiții, în funcție de ipotezele despre capacitățile atacatorului. Următoarea analogie este de obicei folosită. Un criptosistem este un fel de joc . Mai mult, un criptosistem este considerat sigur dacă niciun participant nu poate câștiga jocul cu o probabilitate semnificativ mai mare decât un participant care va acționa aleatoriu. Cele mai frecvente concepte utilizate în criptografie sunt indistingubilitatea pentru atacurile cu text simplu ales (abreviat ca IND-CPA), indistingubilitatea pentru atacurile cu text cifr ales (neadaptativ) (IND-CCA1) și indistingubilitatea pentru atacurile cu text cifrat ales adaptiv (IND-). CPA). CCA2). Securitatea în sensul fiecăreia dintre definițiile de mai sus implică securitate în sensul fiecărei definiții anterioare: un criptosistem care este securizat IND-CCA1 este, de asemenea, securizat IND-CPA și, în consecință, un sistem care este securizat IND-CCA2 este atât IND-CCA1. și IND-CPA securizat. Astfel, securitatea în sensul IND-CCA2 este cea mai puternică dintre cele trei definiții.
Pentru un algoritm probabilistic pentru criptarea cheii asimetrice, indistingubilitatea în sensul IND-CPA [2] este determinată de următorul joc între atacator și tester. Pentru sistemele bazate pe securitate computațională, atacatorul este modelat de o mașină Turing polinomială probabilistică , ceea ce înseamnă că trebuie să finalizeze jocul și să dea o ghicire într-un număr polinom de pași de timp. În această definiție, E(PK, M ) reprezintă textul cifrat al mesajului M , obținut folosind cheia PK :
Un criptosistem este sigur în sensul IND-CPA dacă orice atacator credibil în timp polinomial are doar un mic „avantaj” în a distinge textele cifrate față de ghicitul aleatoriu. Atacatorul are un „avantaj” neglijabil dacă câștigă jocul de mai sus cu probabilitate , unde este o funcție neglijabilă pentru parametrul de securitate k , adică pentru orice funcție polinomială (diferită de zero) , care are , astfel încât pentru toate .
Chiar dacă atacatorul știe și PK , natura probabilistică a lui E înseamnă că textul cifrat va fi doar unul dintre multele texte cifrate valide și, prin urmare , criptarea și compararea textelor cifrate primite cu textul cifrat al testerului nu oferă atacatorului niciun avantaj semnificativ.
Deși definiția de mai sus este specifică criptosistemelor cu cheie asimetrică , ea poate fi adaptată la cazul simetric prin înlocuirea funcției de criptare a cheii publice cu criptare Oracle , care stochează cheia secretă de criptare și criptează textele arbitrare la cererea atacatorului.
Securitatea în sensul IND-CCA1 și IND-CCA2 [1] este definită similar fiabilității sistemului în sensul IND-CPA. Cu toate acestea, în plus față de cheia publică (sau criptarea oracle , în cazul simetric ), atacatorului i se oferă acces la decriptarea oracle , care decriptează texte cifrate arbitrare la cererea atacatorului, returnând textul simplu . În definiția IND-CCA1, unui atacator îi este permis să interogheze oracolul până când a primit textul cifrat testat. În definiția IND-CCA2, atacatorul poate continua să interogheze oracolul după ce primește textul cifrat testat, cu avertismentul că nu îl poate trimite pentru decriptare (altfel definiția ar fi banală).
Un criptosistem este sigur în sensul IND-CCA1 sau IND-CCA2 dacă niciun adversar nu are un avantaj semnificativ în jocul dat.
Uneori sunt necesare sisteme de criptare în care un șir de text cifrat nu poate fi distins pentru un atacator de un șir aleatoriu. [3]
Dacă atacatorul nici măcar nu poate spune dacă mesajul există, acest lucru oferă persoanei care a scris mesajul o negație plauzibilă .
Unii oameni care creează canale de comunicare criptate preferă să facă conținutul fiecărui text cifrat să nu se distingă de datele aleatorii, pentru a face analiza traficului mai dificilă. [patru]
Unii oameni care construiesc sisteme pentru stocarea datelor criptate preferă ca datele să nu fie distinse de datele aleatorii pentru a le facilita ascunderea . De exemplu, unele tipuri de criptare de disc , cum ar fi TrueCrypt , încearcă să ascundă datele din datele aleatorii rămase de la anumite tipuri de distrugere a datelor . Ca un alt exemplu, unele tipuri de steganografie încearcă să ascundă datele făcându-le să se potrivească cu caracteristicile statistice ale zgomotului „aleatoriu” al imaginii din fotografiile digitale .
În prezent, există algoritmi criptografici special concepuți pentru sistemele de criptare refuzată , în care textele cifrate nu se pot distinge de șirurile de biți aleatorii. [5] [6] [7]
Dacă algoritmul de criptare E poate fi construit în așa fel încât un atacator (definit în general ca un observator în timp polinomial) care cunoaște textul simplu al mesajului m nu poate face distincția între E(m) și un șir de biți aleatoriu proaspăt generat de aceeași lungime, ca și E(m), atunci rezultă că, dacă E(m1) are aceeași lungime cu E(m2), aceste două texte cifrate nu vor fi distinse unul de celălalt pentru un atacator, chiar dacă el cunoaște textul simplu m1 și m2. (IND -CPA). [opt]
Majoritatea aplicațiilor nu necesită un algoritm de criptare pentru a crea texte cifrate care nu pot fi distinse de biții aleatori. Cu toate acestea, unii autori consideră că astfel de algoritmi de criptare sunt conceptual mai simpli și mai ușor de lucrat și mai versatili în practică - și majoritatea algoritmilor de criptare IND-CPA par să producă mesaje criptate care nu se pot distinge de biții aleatori. [9]
Indiscernibilitatea este o proprietate importantă pentru menținerea confidențialității mesajelor criptate. Cu toate acestea, s-a constatat că, în unele cazuri, proprietatea de indistinguire implică alte proprietăți care nu au legătură în mod explicit cu securitatea. Uneori, astfel de definiții echivalente au semnificații complet diferite. De exemplu, proprietatea de indistinguire în sensul IND-CPA este cunoscută a fi echivalentă cu proprietatea de inflexibilitate pentru atacuri de scenarii similare (NM-CCA2). Această echivalență nu este imediat evidentă, deoarece inflexibilitatea este o proprietate legată de integritatea mesajului, nu de confidențialitate. De asemenea, s-a demonstrat că indistingebilitatea poate rezulta dintr-o altă definiție sau invers. Următoarea listă enumeră câteva consecințe cunoscute, deși sunt departe de a fi complete: