- Optimal Asymmetric Encryption Padding
: "This article is about the padding scheme used in public-key cryptography. For the division of the Thailand Ministry of Science Technology and Environment entitled Office of Atomic Energy for Peace, see [http://www.oaep.go.th/english/index.html] ."
In
cryptography , Optimal Asymmetric Encryption Padding (OAEP) is a padding scheme often used together with RSA encryption. OAEP was introduced by Bellare and Rogaway. [
M. Bellare, P. Rogaway. "Optimal Asymmetric Encryption -- How to encrypt with RSA". Extended abstract in Advances in Cryptology -Eurocrypt '94 Proceedings, Lecture Notes in Computer Science Vol. 950, A. De Santis ed,Springer-Verlag , 1995. [http://www-cse.ucsd.edu/users/mihir/papers/oae.pdf full version (pdf)] ]The OAEP algorithm is a form of
Feistel network which uses a pair ofrandom oracle s G and H to process the plaintext prior toasymmetric encryption . When combined with any secure trapdoor one-way permutation , this processing is proved in therandom oracle model to result in a combined scheme which is semantically secure underchosen plaintext attack (IND-CPA). When implemented with certain trapdoor permutations (e.g., RSA), OAEP is also proved secure againstchosen ciphertext attack .OAEP satisfies the following two goals:
#Add an element of randomness which can be used to convert a
deterministic encryption scheme (e.g., traditionalRSA ) into a probabilistic scheme.
#Prevent partial decryption of ciphertexts (or other information leakage) by ensuring that an adversary cannot recover any portion of the plaintext without being able to invert the trapdoor one-way permutation .The original version of OAEP (Bellare/Rogaway, 1994) claimed a form of "plaintext awareness" (that implies security against
chosen ciphertext attack ) in the random oracle model when OAEP is used with any trapdoor permutation. Subsequent results contradicted this result, showing the OAEP was only IND-CPA2 secure. However, the original scheme was proved in therandom oracle model to be secure when OAEP is used with the RSA permutation using standard encryption exponents, as in the case of RSA-OAEP. [Eiichiro Fujisaki, Tatsuaki Okamoto, David Pointcheval, andJacques Stern . "RSA-- OAEP is secure under the RSA assumption". In J. Kilian, ed., Advances in Cryptology --CRYPTO 2001, vol. 2139 of Lecture Notes in Computer Science, SpringerVerlag, 2001. [http://eprint.iacr.org/2000/061.pdf full version (pdf)] ] An improved scheme (called OAEP+) that works with any trapdoor one-way permutation was offered byVictor Shoup to solve this problem. [Victor Shoup. "OAEP Reconsidered". IBM Zurich Research Lab, Saumerstr. 4, 8803 Ruschlikon, Switzerland. September 18, 2001. [http://www.shoup.net/papers/oaep.pdf full version (pdf)] ] More recent work has shown that in the standard model (that is, when hash functions are not modelled as random oracles), that it is impossible to prove the IND-CCA2 security of RSA-OAEP under the assumed hardness of theRSA problem . [ P. Paillier and J. Villar, "Trading One-Wayness against Chosen-Ciphertext Security in Factoring-Based Encryption", Advances in Cryptology --Asiacrypt 2006.] [D. Brown, [http://eprint.iacr.org/2006/223 "What Hashes Make RSA-OAEP Secure?"] , IACR ePrint 2006/233. ]Diagram of OAEP
In the diagram,
* n is the number of bits in the RSA modulus.
* k0 and k1 are integers fixed by the protocol.
* m is the plaintext message, a n - k0 - k1 bit string
* G and H are typically somecryptographic hash function s fixed by the protocol.To encode,
# messages are padded with k1 zeros to be n - k0 bits in length.
# r is a random k0 bit string
# G expands the k0 bits of r to n - k0 bits.
# X = m00..0 ⊕ G(r)
# H reduces the n - k0 bits of X to k0 bits.
# Y = r ⊕ H(X)
# The output is X || Y where X is shown in the diagram as the leftmost block and Y as the rightmost block.To decode,
# recover the random string as r = Y ⊕ H(X)
# recover the message as m00..0 = X ⊕ G(r)References
Wikimedia Foundation. 2010.