Criptare asimetrică optimă cu umplutură

OAEP ( în engleză  Optimal A symmetric Encryption P adding , Optimal asymmetric encryption with addition) este o schemă de adăugare , utilizată de obicei împreună cu o funcție unidirecțională cu o intrare secretă (de exemplu , funcții RSA sau Rabin ) pentru a crește puterea criptografică a acestuia din urmă. OAEP a fost propus de Mihir Bellare și Phillip Rogaway [1] , iar aplicarea sa la RSA a fost ulterior standardizată în PKCS#1 și RFC 2437 .

Istorie

Versiunea originală a OAEP, propusă de Bellare și Rogaway în 1994, s-a susținut a fi rezistentă la atacuri bazate pe textul cifrat ales în combinație cu orice funcție de intrare secretă unidirecțională [1] . Studii ulterioare au arătat că o astfel de schemă este rezistentă doar la atacuri bazate pe un text cifru ales neadaptativ [2] . În ciuda acestui fapt, s-a dovedit că în modelul de oracol aleatoriu , atunci când se utilizează RSA standard cu exponent de cifră , schema este, de asemenea, rezistentă la atacuri bazate pe text cifru ales adaptiv [3] . Lucrări mai recente au arătat că în modelul standard (atunci când funcțiile hash nu sunt modelate ca oracole aleatoare) nu este posibil să se dovedească rezistența la atacurile de text cifrat adaptiv atunci când se utilizează RSA [4] .

Algoritmul OAEP

Schema clasică OAEP este o rețea Feistel cu două celule , în care în fiecare celulă datele sunt transformate folosind o funcție hash criptografică . Ca intrare, rețeaua primește un mesaj cu zerouri de verificare adăugate și o cheie - un șir aleator [5] .

Diagrama folosește următoarea notație:

Criptare

  1. Mesajul este adăugat cu zerouri, datorită cărora ajunge la biți în lungime.
  2. Este generat un șir de biți aleatori .
  3. extinde un pic de șir în biți.
  4. .
  5. comprimă bit la bit.
  6. .
  7. text criptat .

Decriptare

  1. Șirul aleatoriu este restaurat
  2. Mesajul original este restaurat ca
  3. Ultimele caractere ale mesajului decriptat sunt verificate pentru zero. Dacă există caractere diferite de zero, atunci mesajul a fost falsificat de către un atacator.

Aplicație

Algoritmul OAEP este utilizat pentru a preprocesa mesajul înainte de a utiliza RSA . Mesajul este mai întâi completat la o lungime fixă ​​folosind OAEP, apoi criptat folosind RSA. În mod colectiv, această schemă de criptare se numește RSA-OAEP și face parte din standardul actual de criptare a cheii publice ( RFC 3447 ). De asemenea, Viktor Boyko a demonstrat că funcția de vedere în modelul oracolelor aleatoare este o transformare de tip all-or-nothing[4] .

Modificări

Datorită unor neajunsuri precum imposibilitatea de a demonstra rezistența criptografică la atacuri pe baza textului cifru ales , precum și viteza redusă a schemei [6] , au fost propuse ulterior modificări bazate pe OAEP care elimină aceste neajunsuri.

Algoritmul OAEP+

Victor Shoup a care este rezistentă la atacurile de text cifrat adaptiv atunci când este combinată cu orice funcție backdoor unidirecțională [2] .

Criptare
  1. Este generat un șir de biți aleatori .
  2. se convertește într-un șir de lungime .
  3. se convertește într-un șir de lungime .
  4. Partea stângă a mesajului este compusă .
  5. se convertește într-un șir de lungime .
  6. Partea dreaptă a mesajului este în curs de redactare .
  7. text criptat .
Decriptare
  1. Șirul aleatoriu este restaurat .
  2. este împărțit în două părți și , cu dimensiuni și , respectiv, biți.
  3. Mesajul original este restaurat ca .
  4. Dacă nu este îndeplinită , atunci mesajul este falsificat.

Algoritm SAEP/SAEP+

Dan Bonet a propus două implementări simplificate ale OAEP, denumite SAEP și respectiv SAEP+. Ideea principală a simplificării criptării este absența ultimului pas - mesajul a fost „lipit” cu șirul aleator generat inițial . Astfel, circuitele constau dintr-o singură celulă Feistel , datorită căreia se realizează o creștere a vitezei de funcționare [7] . Diferența dintre algoritmi unul față de celălalt este exprimată în înregistrarea biților de verificare. În cazul SAEP, acestea sunt zerouri, în timp ce pentru SAEP+, acesta este un hash de la (respectiv, ca în OAEP și OAEP+) [5] . Dezavantajul algoritmilor este o reducere puternică a lungimii mesajului. Fiabilitatea schemelor în cazul utilizării funcției Rabin și RSA a fost dovedită numai cu următoarea restricție privind lungimea textului transmis: pentru SAEP + și suplimentar pentru SAEP [8] . Este de remarcat faptul că la aproximativ aceeași viteză, SAEP+ are mai puține restricții privind lungimea mesajului decât SAEP [8] , datorită căruia este recunoscut ca fiind mai preferabil [8] .

Diagrama folosește următoarea notație:

Criptare SAEP+
  1. Este generat un șir de biți aleatori .
  2. se convertește într-un șir de lungime .
  3. se convertește într-un șir de lungime .
  4. Calculat .
  5. text criptat .
Decriptare SAEP+
  1. Calculat , unde și  sunt șiruri de dimensiune și, respectiv.
  2. Egalitatea este verificată . Dacă egalitatea este adevărată, atunci mesajul original , dacă nu, atunci mesajul este falsificat de către un atacator.

Vezi și

Note

  1. 1 2 Criptare asimetrică optimă Cum se criptează cu RSA, 1995 , p. unu.
  2. 1 2 OAEP Reconsiderat, 2001 , p. unu.
  3. RSA–OAEP este Securizat în conformitate cu ipoteza RSA, 2001 , p. unu.
  4. 1 2 Tranzacționarea unidirecțională împotriva securității textului criptat ales în criptarea bazată pe factoring, 2006 , p. unu.
  5. 1 2 OAEP simplificat pentru funcțiile RSA și Rabin, 2001 , p. 277.
  6. O alternativă low-cost pentru OAEP, 2001 , p. unu.
  7. OAEP simplificat pentru funcțiile RSA și Rabin, 2001 , p. 275.
  8. 1 2 3 OAEP simplificat pentru funcțiile RSA și Rabin, 2001 , p. 290.

Literatură