In crittografia, Optimal Asymmetric Encryption Padding (OAEP) è uno schema di padding spesso utilizzato assieme a RSA. OAEP è stato introdotto da Bellare e Rogaway, e successivamente standardizzato in PKCS #1 v2 e RFC 2437.
L'algoritmo OAEP è una sorta di rete di Feistel che utilizza coppie di oracoli random e per effettuare un preprocessing su un messaggio da cifrare asimmetricamente. Se usato in combinazione con una funzione botola sicura, questo metodo è considerato semanticamente sicuro all'interno del modello a oracolo random contro attacchi di tipo chosen plaintext. In casi particolari (ad esempio, con RSA), OAEP è stato provato essere sicuro anche contro attacchi di tipo chosen ciphertext. OAEP può essere utilizzato per costruire una trasformazione all-or-nothing ("tutto o niente"), come spiegato in seguito.
OAEP soddisfa i due obiettivi seguenti:

Nel diagramma a destra:
Per cifrare:
Per decifrare:
La proprietà all-or-nothing deriva dal fatto che per recuperare il messaggio si ha bisogno delle intere stringhe e . è richiesto per ottenere da , e è richiesta per ottenere da . Dato anche una piccolissima modifica all'input di una funzione crittografica di hash cambia completamente il risultato, e devono essere interamente ottenute. Questo garantisce l'integrità del messaggio.