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 - długość w bitach modułu RSA
k0 i k1 - ustalone liczby całkowite
m - wiadomość długości (n - k0 - k1) bitów
G i H - ustalone funkcje haszujące
Algorytm szyfrowania:
- konkatenujemy wiadomość m z ciągiem k1 zer otrzymując ciąg m00...0 długości (n - k0) bitów
- generujemy losowy ciąg r długości k0 bitów
- wykonujemy G(r) otrzymując ciąg długości (n - k0) bitów
- X = m00...0 ⊕ G(r)
- Y = H(X) ⊕ r
- wynikiem jest konkatenacja X || Y
Algorytm deszyfrowania:
- r = Y ⊕ H(X)
- m00...0 = X ⊕ G(r)