Optimal Asymmetric Encryption Padding

Optimal Asymmetric Encryption Padding – schemat szyfrowania przypominający sieć Feistela, wymyślony w 1994 przez Bellare’a i Rogawaya. OAEP jest często stosowany w połączeniu z RSA do wstępnego zaszyfrowania wiadomości. OAEP wykorzystuje dwie funkcje haszujące, a także dodaje element losowości, przez co jest schematem niedeterministycznym. OAEP zapewnia bezpieczeństwo „all-or-nothing”, co oznacza, że adwersarz nie może odszyfrować części kryptogramu niezależnie od jego całości. Wynika to z faktu zastosowania funkcji haszujących. Schemat OAEP n {\displaystyle n} – długość w bitach modułu RSA, k 0 {\displaystyle k_{0}} i k 1 {\displaystyle k_{1}} – ustalone liczby całkowite, m {\displaystyle m} – wiadomość długości ( n − k 0 − k 1 ) {\displaystyle (n-k_{0}-k_{1})} bitów, G {\displaystyle G} i H {\displaystyle H} – ustalone funkcje haszujące. Algorytm szyfrowania: konkatenujemy wiadomość m {\displaystyle m} z ciągiem k 1 {\displaystyle k_{1}} zer, otrzymując ciąg m 00...0 {\displaystyle m00...0} długości ( n − k 0 ) {\displaystyle (n-k_{0})} bitów, generujemy losowy ciąg r {\displaystyle r} długości k 0 {\displaystyle k_{0}} bitów, wykonujemy G ( r ) , {\displaystyle G(r),} otrzymując ciąg długości ( n − k 0 ) {\displaystyle (n-k_{0})} bitów, X = m 00...0 ⊕ G ( r ) , {\displaystyle X=m00...0\oplus G(r),} Y = H ( X ) ⊕ r , {\displaystyle Y=H(X)\oplus r,} wynikiem jest konkatenacja X | | Y . {\displaystyle X||Y.} Algorytm deszyfrowania: r = Y ⊕ H ( X ) , {\displaystyle r=Y\oplus H(X),} m 00...0 = X ⊕ G ( r ) . {\displaystyle m00...0=X\oplus G(r).}
Optimal Asymmetric Encryption Padding – schemat szyfrowania przypominający sieć Feistela, wymyślony w 1994 przez Bellare’a i Rogawaya. OAEP jest często stosowany w połączeniu z RSA do wstępnego zaszyfrowania wiadomości. OAEP wykorzystuje dwie funkcje haszujące, a także dodaje element losowości, przez co jest schematem niedeterministycznym. OAEP zapewnia bezpieczeństwo „all-or-nothing”, co oznacza, że adwersarz nie może odszyfrować części kryptogramu niezależnie od jego całości. Wynika to z faktu zastosowania funkcji haszujących.
Schemat OAEP

- – długość w bitach modułu RSA,
- i – ustalone liczby całkowite,
- – wiadomość długości bitów,
- i – ustalone funkcje haszujące.
Algorytm szyfrowania:
- konkatenujemy wiadomość z ciągiem zer, otrzymując ciąg długości bitów,
- generujemy losowy ciąg długości bitów,
- wykonujemy otrzymując ciąg długości bitów,
- wynikiem jest konkatenacja
Algorytm deszyfrowania: