Criptosistem Cramer–Shoup

Sistemul Cramer – Shoup este un  algoritm de criptare cu cheie publică . Primul algoritm care s-a dovedit rezistent la atacuri bazat pe text cifrat ales adaptativ . Proiectat de Ronald Kramer și Victor Shoup în 1998. Securitatea algoritmului se bazează pe ipoteza discriminării Diffie-Hellman . Este o extensie a schemei ElGamal , dar spre deosebire de schema ElGamal, acest algoritm este insolubil(Un hacker nu poate înlocui textul cifrat cu un alt text cifrat care ar fi decriptat într-un text legat de original, adică fiind o funcție a acestuia). Această robustețe este obținută prin utilizarea unei funcții hash universale unidirecționale și calcule suplimentare, rezultând un text cifrat care este de două ori mai mare decât schema ElGamal.

Atacul cu text cifrat ales

Un atac criptografic în care un criptoanalist adună informații despre un cifru ghicind textul cifrat și decriptându-l cu o cheie necunoscută. Criptanalistul poate folosi decriptorul de mai multe ori pentru a obține textul cifrat decriptat. Folosind datele primite, el poate încerca să recupereze cheia secretă pentru decriptare. Un atac cu text cifrat poate fi adaptiv sau neadaptativ.

Era bine cunoscut faptul că multe criptosisteme utilizate pe scară largă erau vulnerabile la un astfel de atac și timp de mulți ani s-a crezut că atacul nu era practic și nu prezenta decât interes teoretic. Lucrurile au început să se schimbe la sfârșitul anilor 1990, mai ales când Daniel Bleichenbacher a demonstrat un atac practic bazat pe text cifrat asupra serverelor SSL folosind o formă de criptare RSA .

Atac neadaptativ

Într-un atac neadaptativ, criptoanalistul nu folosește rezultatele decriptărilor anterioare, adică textele cifrate sunt selectate în avans. Astfel de atacuri sunt numite atacuri la ora prânzului (ora prânzului sau CCA1).

Adaptive Attack

În cazul unui atac adaptiv, criptoanalistul selectează adaptiv un text cifrat care depinde de rezultatele decriptărilor anterioare (CCA2).

Reziliența la atacul adaptiv poate fi văzută pe exemplul jocului:

Problema discriminării Diffie-Hellman

Există mai multe formulări echivalente ale problemei discriminării Diffie-Hellman. Cel pe care îl vom folosi arată așa.

Fie un grup de ordin , unde este un număr prim mare. De asemenea  - . Și există două distribuții:

Un algoritm care rezolvă problema Diffie-Hellman este un algoritm probabilistic care poate distinge efectiv între cele două distribuții enumerate. Adică, un algoritm care ia una dintre cele două distribuții ca intrare ar trebui să returneze 0 sau 1 și, de asemenea, tinde spre 0.

Problema discriminării Diffie-Hellman este grea dacă nu există un astfel de algoritm probabilistic polinomial.

Schema de bază

Să avem un grup de ordin , unde este un număr prim mare. Mesajele sunt elemente . De asemenea, folosim o familie generică de funcții hash unidirecționale care mapează șiruri lungi de biți la elemente , unde  — .

Generare cheie

Algoritmul de generare a cheilor funcționează după cum urmează:

Criptare

Mesaj dat . Algoritmul de criptare funcționează după cum urmează

Decriptare

După primirea textului cifrat și utilizarea cheii private :

Corectitudinea protocolului

Să verificăm corectitudinea schemei de criptare (decriptarea mesajului criptat dă același mesaj). Având în vedere că și , avem . De asemenea și . Prin urmare, verificarea decriptării reușește și este afișat mesajul original .

Diagrama simplificată

Diferențele față de schema de bază

Pentru a obține securitatea împotriva atacurilor neadaptative (și numai a acestora), puteți simplifica semnificativ protocolul fără a utiliza . Când criptăm, folosim , iar când decriptăm, verificăm că .

Un exemplu de circuit simplificat

Să presupunem că avem un grup de ordine . În consecință  - .

Generare cheie

Algoritmul de generare a cheilor funcționează după cum urmează:

  • Alice generează elemente aleatorii și aleatorii
  • calculează Alice .
  • Cheia publică este , cheia privată este .
Criptare

Mesaj dat . Algoritmul de criptare funcționează după cum urmează

  • Bob alege la întâmplare .
  • Bob calculează următoarele valori:
    • ;
    • ;
    • ;
  • Bob îi trimite textul cifrat Alicei.
Decriptare

După primirea textului cifrat și utilizarea cheii private :

  • Alice verifică starea .
  • Condiția este îndeplinită, așa că este afișat mesajul criptat de Bob .

Dovada de securitate

Teorema

Criptosistemul Cramer-Shope este rezistent la atacuri bazate pe text cifrat ales adaptativ în următoarele condiții:

  • Funcția hash este selectată din familia universală de funcții hash unidirecționale.
  • Problema discriminării Diffie-Hellman este grea pentru grup .

Demonstrație : Pentru a demonstra teorema, vom presupune că există un adversar care poate rupe protocolul și vom arăta că dacă este îndeplinită condiția de pe funcția hash, obținem o contradicție cu condiția din problema Diffie-Hellman. Intrarea în algoritmul nostru probabilist este dată din distribuția sau . La nivel superficial, construcția va arăta astfel: vom construi un simulator care va produce o distribuție comună constând din viziunea crackerului asupra criptosistemului după o serie de atacuri și bitul ascuns b generat de oracolul generației (neinclus în viziunea crackerului, ascunsă de el). Ideea dovezii: vom arăta că dacă intrarea este o distribuție a , atunci simularea va reuși, iar adversarul va avea un avantaj nebanal în a ghici bitul aleator b. Vom mai arăta că dacă intrarea este o distribuție din , atunci viziunea inamicului nu depinde de și , și, prin urmare, superioritatea inamicului va fi neglijabilă (mai mică decât polinomul invers). De aici, putem construi distincția de distribuție și : rulăm simulatorul de criptosistem (prints ) și cracker (prints ) în același timp și imprimăm dacă și altfel.

Construirea unui simulator

Schema de simulare a generării cheilor este următoarea:

  • Intrarea în simulator este .
  • Simulatorul folosește .
  • Simulatorul selectează variabile aleatorii .
  • Simulatorul calculează .
  • Simulatorul alege o funcție hash aleatorie și generează o cheie publică . Tasta ascunsă a simulatorului: .

Se poate observa că generarea cheii simulatorului este diferită de generarea cheii în protocol (acolo ).

Simulare de decriptare . Se procedează la fel ca în protocol, cu diferența că

Simulare de criptare . Având în vedere o intrare , simulatorul selectează o valoare aleatorie , calculează și emite . Acum, demonstrarea teoremei va decurge din următoarele două leme.

Leme

Lema 1. Dacă simulatorului i se dă o distribuție de la , atunci distribuția comună a viziunii atacatorului asupra criptosistemului și a bitului ascuns nu se distinge statistic de un atac real asupra criptosistemului.

Lema 2. Dacă simulatorului i se dă o distribuție din , atunci distribuția bitului ascuns nu depinde de distribuția viziunii crackerului.

Link -uri