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 .
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] .
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:
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] .
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.
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] .
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: