Fact-checked by Grok 2 weeks ago

Optimal asymmetric encryption padding

Optimal Asymmetric Encryption Padding (OAEP) is a probabilistic padding scheme designed for asymmetric encryption algorithms, such as , that transforms a into a padded block suitable for encryption, ensuring and resistance to chosen-ciphertext attacks under the model. Introduced by Mihir Bellare and Philip Rogaway in their 1994 paper "Optimal Asymmetric Encryption: How to Encrypt with ," OAEP employs a Feistel-like structure with two hash functions, G and H, to randomize the process, allowing efficient encryption of messages nearly as long as the while maintaining strong security guarantees. The scheme operates by generating a random seed r, which is used to mask the through XOR operations with the outputs of G and H, producing a padded value that is then encrypted using the public-key (e.g., ). Decryption reverses this by applying the and unmasking, with built-in checks to detect invalid ciphertexts and prevent leakage. OAEP's "optimal" designation reflects its balance of efficiency—one evaluation for and decryption—and provable properties, including plaintext awareness, which implies non-malleability and against adaptive chosen-ciphertext attacks (CCA2). Standardized in version 2.0 ( 2437) and refined in subsequent versions, including the current v2.2 ( 8017), OAEP is recommended for new RSA-based encryption applications due to vulnerabilities in older padding schemes like v1.5, such as padding oracle attacks. It incorporates a mask generation (MGF1) and a digest (e.g., SHA-256), with support for an optional label to bind the encryption to specific contexts, enhancing its applicability in protocols like TLS and secure messaging. Despite its security proofs relying on idealized assumptions, real-world implementations must address side-channel risks and use appropriate hash functions to maintain robustness.

Background and Motivation

Role of Padding in Asymmetric Encryption

In asymmetric encryption schemes such as , refers to the process of augmenting the message with additional structured data, including random bits, before applying the function, thereby transforming a potentially deterministic operation into a probabilistic one. This addition of randomness and formatting is essential to obscure the underlying message structure and prevent adversaries from exploiting predictable patterns in ciphertexts. Unpadded asymmetric , exemplified by textbook where the is computed as c = m^e \mod n for m, message exponent e, and n, suffers from inherent : identical always produce identical , allowing an attacker to detect repetitions or infer message properties through or other statistical methods. This lack of probabilistic behavior renders such schemes vulnerable to chosen- attacks (), where an adversary can encrypt chosen to compare against observed and deduce information about unknown , as well as chosen- attacks (), where partial decryption oracles enable manipulation of to reveal details. Without , these vulnerabilities compromise the confidentiality of the , as the underlying does not inherently conceal all partial information about the input. Padding addresses these issues by expanding the to the full size (typically just below the length in octets), incorporating random nonces or seeds to ensure each of the same message yields a unique , and embedding redundancy or checksums for verification during decryption. For instance, the padded is formatted to span nearly the entire size, preventing direct embedding of short messages that could leak size information, while the thwarts pattern-based attacks. Upon decryption, the recipient checks the padding structure; invalid padding indicates tampering or errors, enabling rejection of malformed ciphertexts without exposing , thus mitigating CCA risks. A core benefit of padding is its role in achieving , also known as indistinguishability under (IND-CPA), which requires that no efficient adversary can distinguish the of one from another of equal length with non-negligible probability. In public-key systems like , semantic security cannot be realized through the raw alone due to its and lack of , but introduces the necessary randomization to approximate the ideal of perfect secrecy, ensuring that ciphertexts reveal no useful information about the beyond its length. This probabilistic transformation is a prerequisite for secure asymmetric in practice.

Limitations of Earlier Padding Schemes

Earlier padding schemes for RSA encryption, such as PKCS#1 v1.5, introduced structure to handle message formatting but retained vulnerabilities due to their predictable formats and insufficient randomization. In PKCS#1 v1.5, the encryption block consists of a block type byte (02 for encryption), a padding string of random non-zero bytes (PS), a single 00 byte delimiter, and the message data (D), ensuring the total length matches the modulus size. While PS provides some randomness, the rigid format—particularly the fixed block type and delimiter—allows attackers to exploit implementation details, such as error messages revealing whether a ciphertext conforms to the padding rules. A prominent vulnerability in PKCS#1 v1.5 is Bleichenbacher's , which leverages a " " where the decryptor inadvertently leaks information about validity through differing error responses. This attack enables an adversary to iteratively refine a target by submitting a relatively small number (on the order of hundreds of thousands to a few million) of modified ciphertexts and observing the 's responses, allowing practical recovery of the for 1024-bit moduli. In SSL/TLS implementations using key transport, this arose from servers distinguishing between decryption failures due to invalid versus other errors, allowing full message decryption without the private key. Even simpler schemes exacerbated these issues. Raw encryption, without any padding, directly applies the to the , limiting messages to less than the length and rendering the scheme deterministic—identical yield identical , enabling and chosen- attacks. Moreover, raw is malleable: an attacker can multiply a by a factor the to produce a related , facilitating attacks like the method for small exponents. Basic random padding, such as prepending random bytes to the message, fails to ensure consistent message expansion or provide , as it lacks a verifiable structure and remains vulnerable to chosen- manipulations that alter padding without detection. These flaws had significant real-world consequences, particularly in early deployments around 1998, where Bleichenbacher's attack compromised SSL 3.0 implementations, leading to vulnerabilities in major software like Internet Explorer and that allowed unauthorized decryption of encrypted sessions. Such breaches highlighted the inadequacy of these schemes for providing IND-CCA security, prompting the development of more robust alternatives.

History and Development

Origins and Key Publications

Optimal Asymmetric Encryption Padding (OAEP) was introduced by Mihir Bellare and Phillip Rogaway in their seminal 1994 paper presented at Eurocrypt, titled "Optimal Asymmetric Encryption: How to Encrypt with ." This work proposed OAEP as a padding scheme designed to transform any one-way , such as , into a secure public-key encryption method, emphasizing efficiency and provable security properties. The scheme addressed the need for asymmetric encryption that could handle messages of variable length while maintaining strong security guarantees against common attacks. The key contribution of the 1994 paper lies in its proof that OAEP achieves against chosen-plaintext attacks (IND-CPA) from the one-wayness of a , under the model, along with a claim of —a property implying against chosen-ciphertext attacks ()—though the latter proof was later found to have a gap. This analysis established OAEP as a foundational advancement, showing that it provides strong properties while requiring only a single application of the underlying and using functions modeled as ideal . The analysis highlighted OAEP's superiority over earlier deterministic methods by ensuring probabilistic without excessive overhead. OAEP drew influence from prior cryptographic constructions, particularly Feistel network structures, which had been analyzed for provable security in generation since the late 1980s. The scheme's two-round Feistel-like design, using XOR operations with hash-derived values, built on these foundations to embed randomness and prevent malleability, adapting symmetric cipher techniques to the asymmetric setting. Developments in the 1990s, such as hybrid encryption transforms, further contextualized OAEP's role in achieving strong security from weaker primitives, though OAEP predated specific proposals like the Fujisaki-Okamoto transform. Subsequent refinements addressed limitations in the original proof, particularly regarding exact security bounds and instantiations of the . In 2001, Shoup's paper "OAEP Reconsidered," building directly on Bellare and Rogaway's framework, provided a tighter security analysis, confirming OAEP's IND-CCA security under the assumption while clarifying the implications of the model. This work resolved earlier concerns about proof tightness and influenced further adoptions by establishing more precise reductions to underlying hardness assumptions.

Standardization Efforts

Optimal Asymmetric Encryption Padding (OAEP) was formalized in version 2.0, published in October 1998 by RSA Laboratories, as the RSAES-OAEP encryption scheme, with parameters specifying as the underlying and the mask generation function MGF1 based on . Subsequent updates in version 2.1 (2002) extended support to stronger , including members of the family (, , ), to address evolving security requirements while maintaining compatibility; version 2.2 (RFC 8017, November 2016) provided editorial updates and reference revisions without adding new . The scheme gained broader adoption through inclusion in the IEEE Standard for (IEEE P1363-2000), which specified OAEP for RSA-based in public-key protocols, emphasizing its role in secure key establishment. Similarly, OAEP was integrated into key establishment mechanisms in NIST Special Publication 800-56B (initially published in 2006 and revised in 2009 and 2014), recommending RSA-OAEP as an approved method for pairwise key transport in federal systems. In modern protocols, OAEP plays a key role in secure messaging via the (CMS), standardized in 5652 (2009) as an update to , where 3560 (2003) explicitly defines the use of RSAES-OAEP for key transport in enveloped data structures to ensure . Although TLS 1.3 (2018) eliminated static RSA key exchange in favor of ephemeral Diffie-Hellman methods, OAEP remains relevant for legacy RSA in contexts within extended TLS deployments. Amid transitions, NIST's 2024 standards (FIPS 203, 204, and 205) focus on quantum-resistant algorithms like ML-KEM for key establishment, but ongoing discussions in NIST IR 8547 (2024 draft) and related literature explore hybrid variants combining classical schemes such as RSA-OAEP with post-quantum primitives to facilitate gradual migration, with no substantive modifications to the core OAEP mechanism as of 2025.

Algorithm Description

Encoding Procedure

The Optimal Asymmetric Encryption Padding (OAEP) encoding procedure transforms a short into a full-length string suitable for under a trapdoor such as , incorporating randomness to enhance . The process assumes a k representing the bit length of the N, with the message block length n = k - k_0, where k_0 is the output length of the H (typically 160 or 256 bits in practice). The input x must be at most n bits long; if shorter, it is padded by appending zero bits to reach exactly n bits. The public key (N, e) is used only in the final step after padding, while a r of exactly k_0 bits is generated for each encoding. Two cryptographic functions are required: an expanding generator G: \{0,1\}^{k_0} \to \{0,1\}^n and a compressing hash H: \{0,1\}^n \to \{0,1\}^{k_0}, modeled as random oracles in the original design. The encoding proceeds in the following steps to produce a k-bit padded message w:
  1. Generate a random seed r \in \{0,1\}^{k_0} uniformly at random.
  2. Compute the masked data block s = x \oplus G(r), where \oplus denotes bitwise XOR and x is the (padded) message.
  3. Compute the masked seed t = r \oplus H(s).
  4. Concatenate to form the padded message w = s \| t, which has length n + k_0 = k bits.
The output w is then encrypted using the RSA public key as y = w^e \mod N, yielding the ciphertext. This procedure ensures the padded message is exactly k bits long, with randomness introduced via the seed r to prevent deterministic attacks on the underlying permutation. In widely adopted implementations, such as PKCS#1, the procedure is adapted to handle variable-length messages up to k - 2hLen - 2 octets (where hLen is the hash output length in octets) by incorporating a label hash, padding string of zeros, and a delimiter byte in the data block before masking, using a mask-generation function (MGF) derived from a hash like SHA-256 for both G and H. In this version, the encoded message EM is formed as \text{EM} = 0^{00} \| \text{maskedSeed} \| \text{maskedDB}, where maskedDB includes the label hash || PS (zeros) || 0x01 || M, maskedSeed is hLen octets, and maskedDB is k/8 - hLen - 1 octets.

Decoding Procedure

The decoding procedure for Optimal Asymmetric Encryption Padding (OAEP) inverts the encoding to recover the original from the using the recipient's private key. It begins with the RSA decryption step followed by the removal of the OAEP padding, incorporating checks to ensure the integrity of the recovered data. This relies on the same mask generation function, typically instantiated as MGF1 in standardized implementations (replacing the separate G and H from the original design), and assumes a length of k bits where the seed length is l = hLen * 8 bits (hLen being the hash output length in octets). Given the ciphertext C and the private key (N, d), the first step computes the decrypted value X = C^d \mod N, which yields a k-bit representing the padded message EM. If the resulting X does not fit within k bits or violates basic length constraints (e.g., k < 16 hLen + 16 bits, equivalent to k/8 < 2 hLen + 2 octets), the procedure outputs a decryption failure to prevent information leakage. For the standardized procedure, EM is split into three parts: the first 8 bits form Y (which must be 0x00), the next l bits form maskedSeed (r'), and the remaining k - l - 8 bits form maskedDB (db'). If Y ≠ 0x00, output decryption failure. The unmasking begins by computing the seed candidate seed' = r' \oplus \text{MGF}(db', l), where MGF(db', l) generates an l-bit mask from the input db'. Then, the data block candidate is recovered as db'' = db' \oplus \text{MGF}(seed', k - l - 8), applying the same function MGF to expand seed' into a mask of length k - l - 8 bits. These XOR operations leverage the invertibility of the Feistel-like structure in OAEP to separate the intertwined seed and data components. The final step parses db'' to extract the original message M and verify the label hash lHash = Hash(L). The data block db'' is expected to consist of lHash (first hLen octets), followed by a padding string PS of zero octets, a separator octet (0x01), and then the message M. The procedure indexes after the lHash to find the longest PS of zeros followed by 0x01; if lHash does not match the expected value, no valid 0x01 is found, PS contains non-zero bits, or the first octet of db'' after lHash is non-zero in invalid positions, the ciphertext is rejected as invalid, resulting in a decryption failure. Upon successful validation, the message M is extracted from the portion after the 0x01 and PS. OAEP's all-or-nothing transform property ensures that partial computations on invalid inputs do not reveal any information about the message or padding without completing the full unmasking and parsing steps, enhancing resistance to error oracle attacks during decryption. This property arises from the diffusion provided by the iterative application of the mask generation function across the entire padded block.

Security Properties

Provable Security Model

Optimal Asymmetric Encryption Padding (OAEP) achieves its security guarantees within the random oracle model (ROM), a theoretical framework where hash functions are modeled as ideal, randomly chosen functions that behave like true random oracles. In this model, OAEP transforms a trapdoor permutation that is secure against chosen-plaintext attacks (CPA), such as , into a full-fledged public-key encryption scheme that is secure against adaptive chosen-ciphertext attacks (CCA). This elevation from IND-CPA to IND-CCA security is a key contribution, as it ensures that even if an adversary can query a decryption oracle with chosen ciphertexts (except for the target one), they cannot distinguish encryptions of different messages. The original security analysis for OAEP was provided by Bellare and Rogaway in 1994, who aimed to demonstrate that if the underlying trapdoor permutation is IND-CPA secure, then the OAEP scheme is IND-CCA secure under the ROM. However, this proof was later found to be flawed. In 2001, Victor Shoup's analysis ("OAEP Reconsidered") identified issues in the reduction and provided a correct proof in the ROM, though it was not tight—resulting in security parameters with polynomial losses relative to the underlying permutation's security. A tight security reduction, establishing IND-CCA security directly under the RSA assumption (without full IND-CPA for RSA), was subsequently given by Fujisaki, Okamoto, Pointcheval, and Stern in 2001, with parameters approximately preserving the original security bounds under the ROM. OAEP is considered "optimal" in this context because it attains the strongest notion of CCA security with the minimal computational overhead: specifically, it requires only two evaluations of random oracle hash functions, avoiding the need for more expensive primitives or multiple rounds of interaction. This efficiency makes OAEP particularly suitable for practical asymmetric encryption while preserving provable security in the ROM. Despite these strong theoretical foundations, the ROM has faced significant critiques, notably from Canetti, Goldreich, and Halevi, who showed in 2000 that there exist schemes secure in the ROM whose security fails when random oracles are replaced by any concrete hash function, even programmable ones. Their work highlights that the ROM provides idealized security proofs but does not guarantee instantiability with real-world hash functions, raising concerns about the model's applicability to non-programmable hashes. Nevertheless, OAEP has withstood extensive cryptanalysis over decades and remains secure in practice when instantiated with standard hash functions like SHA-256, as evidenced by its continued adoption without known breaks.

Resistance to Specific Attacks

OAEP provides strong resistance to chosen-ciphertext attacks (CCA), particularly those exploiting padding oracles, such as the Bleichenbacher attack that targeted the PKCS#1 v1.5 padding scheme by allowing adversaries to iteratively refine ciphertexts based on decryption error messages indicating padding validity. In contrast, OAEP's use of feistel-like masking with hash functions and a mask generation function ensures that all invalid decryptions appear indistinguishable from random failures, preventing adversaries from gaining incremental information about the plaintext without constant-time implementations to avoid timing leaks. The scheme achieves indistinguishability under adaptive chosen-ciphertext attack (IND-CCA2) security, where an adversary with access to a decryption oracle cannot distinguish encryptions of two chosen plaintexts, except for the challenge ciphertext, even after adaptively querying the oracle. This property is proven in the random oracle model, assuming the computational difficulty of inverting the underlying trapdoor permutation, such as , with tight security reductions established for practical parameters. OAEP's design inherently mitigates side-channel risks by avoiding structures that leak partial information during decryption, unlike PKCS#1 v1.5 where the initial block-type byte could be extracted via faults or power analysis; proper implementation with constant-time hashing and masking further ensures no timing or error distinctions reveal padding details. As of 2025, no fatal cryptanalytic weaknesses have been discovered in OAEP when paired with secure hash functions like , though implementations using deprecated hashes such as should be avoided due to known collisions and preimage vulnerabilities in the hash itself that could undermine the masking process. Like other RSA-based encryptions, OAEP remains susceptible to quantum computing threats via , prompting recommendations for transition to post-quantum cryptographic schemes.

Implementations and Applications

Pseudocode Examples

The Optimal Asymmetric Encryption Padding (OAEP) scheme, as formalized in the original proposal, employs a Feistel-like structure with random oracles G and H to process the message before applying the RSA trapdoor permutation, ensuring IND-CCA2 security under the random oracle model. In practical implementations, such as those specified in PKCS#1 v2.2, G and H are realized using a hash function (e.g., SHA-256, producing 256 bits of output) combined with a mask generation function (MGF1) for expansion, while the label L is typically an empty string unless specified otherwise. For a 2048-bit RSA modulus (k = 256 octets), the maximum message length is k - 2*hLen - 2 = 190 octets (1520 bits), where hLen = 32 octets for SHA-256, yielding up to 1520 bits for the message after accounting for padding and masks. The following pseudocode illustrates the OAEP encoding procedure, assuming octet-string operations and standard cryptographic primitives; it integrates the EME-OAEP encoding primitive with RSA encryption.
function OAEP_Encode(message M, public_key pk=(n, e), params):
    // params: hash_function Hash (e.g., SHA-256, hLen = Hash.output_length),
    //         mgf MGF1, label L (default empty string)
    k = bit_length(n) / 8  // modulus length in octets
    if |M| > k - 2 * hLen - 2:
        error "message too long"
    if |L| > 2^61 - 1:  // hash input limit example for SHA-256
        error "label too long"
    
    lHash = Hash(L)
    PS = zeros(k - |M| - 2 * hLen - 2)  // padding string of zeros
    DB = lHash || PS || 0x01 || M  // data block
    seed = random_bytes(hLen)  // random seed
    dbMask = MGF(seed, k - hLen - 1)  // mask for DB
    maskedDB = DB XOR dbMask
    seedMask = MGF(maskedDB, hLen)  // mask for seed
    maskedSeed = seed XOR seedMask
    EM = 0x00 || maskedSeed || maskedDB  // encoded message
    m = OS2IP(EM)  // octet string to integer
    c = pow(m, e, n)  // RSA encryption
    C = I2OSP(c, k)  // integer to octet string
    return C  // ciphertext
This encoding generates a , applies masking via MGF to diffuse across the padded message, and prepends a leading zero octet to ensure the result fits the domain. The decoding procedure reverses the process, verifying the structure and recovering the original message or failing on inconsistencies.
function OAEP_Decode([ciphertext](/page/Ciphertext) C, private_key sk=(n, d), params):
    // params: as in encoding
    k = |C|
    if k < 2 * hLen + 2:
        error "decryption error"
    if |L| > 2^61 - 1:
        error "label too long"
    
    c = OS2IP(C)
    m = pow(c, d, n)  // [RSA](/page/RSA) decryption (RSADP)
    if m >= n:
        error "decryption error"
    EM = I2OSP(m, k)
    if EM[0] != 0x00:
        error "decryption error"
    
    Y = EM[0:1]  // should be 0x00
    maskedSeed = EM[1 : 1 + hLen]
    maskedDB = EM[1 + hLen : k]
    seedMask = MGF(maskedDB, hLen)
    seed = maskedSeed XOR seedMask
    dbMask = MGF(seed, k - hLen - 1)
    DB = maskedDB XOR dbMask
    lHash_prime = DB[0 : hLen]
    lHash = [Hash](/page/Hash)(L)
    if lHash_prime != lHash:
        error "decryption error"
    // Parse DB: find 0x01 separator after lHash and zero PS
    i = hLen
    while i < len(DB) and DB[i] == 0x00:
        i += 1
    if i == len(DB) or DB[i] != 0x01:
        error "decryption error"
    PS = DB[hLen : i]  // must be all zeros (implicit check via loop)
    M = DB[i + 1 : ]  // recovered message to end of DB
    return M
Decoding includes integrity checks on the label hash and padding string; failure in any verification (e.g., non-zero PS or mismatched lHash) results in an error to prevent chosen-ciphertext attacks. This structure's use of dual masking provides the security benefits of full-domain enforceability and resistance to adaptive attacks.

Usage in Cryptographic Standards

Optimal Asymmetric Encryption Padding (OAEP) has been integrated into major cryptographic libraries since the early 2000s, providing robust support for RSA-based encryption. In OpenSSL, the functions RSA_padding_add_PKCS1_OAEP_mgf1 and RSA_padding_check_PKCS1_OAEP_mgf1 implement OAEP as specified in PKCS #1 v2.0, with support added in version 0.9.2b released in 2000. The Bouncy Castle library includes OAEPEncoding for RSA encryption, available since version 1.0 in 2000 and compliant with FIPS 140-2 requirements in later releases. Similarly, Crypto++ supports OAEP through classes like RSAES<OAEP>, introduced in version 2.1 around 1998 but fully aligned with PKCS #1 standards by the early 2000s. OAEP is employed in several key protocols for secure data transport. In the Transport Layer Security (TLS) protocol version 1.2, RSA-OAEP serves as an option for key transport, enhancing security over legacy padding in scenarios requiring encryption, though TLS 1.3 shifts away from RSA key exchange entirely in favor of Diffie-Hellman-based methods. The (W3C) XML Encryption standard (2002) mandates RSA-OAEP for key transport, using identifiers like http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p with and MGF1, to protect XML data structures. In the JSON Object Signing and Encryption (JOSE) framework, including (JWE) and (JWS), RSA-OAEP and RSA-OAEP-256 are registered algorithms for key encryption, with RSA-OAEP-256 recommended for its use of SHA-256 to mitigate weaknesses. Best practices for OAEP deployment emphasize enhancements to prevent common vulnerabilities. Cryptographic implementations should employ strong functions such as SHA-256 or higher for both the digest and mask generation function (MGF1), as is deprecated due to collision vulnerabilities. Constant-time operations are essential in OAEP processing to resist timing attacks that could leak information about the or key, with libraries like incorporating such measures in recent versions. For efficiency with large messages, OAEP should be used in hybrid schemes, where RSA-OAEP encrypts a symmetric key (e.g., AES-256), which then secures the bulk data. Regarding deprecations and migrations, NIST Special Publication 800-56B Revision 2 (2019) recommends OAEP-based schemes like for pair-wise key establishment using cryptography, superseding older paddings like v1.5 due to proven vulnerabilities such as Bleichenbacher's . As of 2025, major ecosystems have advanced toward full migration: for instance, the Go programming language deprecated RSA v1.5 encryption in favor of OAEP for FIPS compliance, and AWS CloudHSM ended support for v1.5 padding in FIPS mode RSA operations on January 1, 2024. This shift ensures OAEP's provable security model is standard in production systems. As of 2025, OAEP remains recommended in NIST SP 800-56B Rev. 2 for key establishment.

References

  1. [1]
    [PDF] Optimal Asymmetric Encryption How to Encrypt with RSA - UCSD CSE
    Nov 19, 1995 · 1 The goal of this paper is to (nearly) have it all: to do asymmetric encryption in a way as efficient as any mechanism yet suggested, yet ...
  2. [2]
  3. [3]
    RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2
    This document provides recommendations for the implementation of public-key cryptography based on the RSA algorithm.
  4. [4]
    RFC 2313: PKCS #1: RSA Encryption Version 1.5
    Encryption-block parsing The encryption block EB shall be parsed into a block type BT, a padding string PS, and the data D according to Equation (1). It is ...
  5. [5]
    Chosen ciphertext attacks against protocols based on the RSA ...
    May 28, 2006 · This paper introduces a new adaptive chosen ciphertext attack against certain protocols based on RSA. We show that an RSA private-key ...
  6. [6]
    [PDF] Twenty Years of Attacks on the RSA Cryptosystem 1 Introduction
    For instance, a simple (but insufficient) padding algorithm may pad a plaintext M by appending a few random bits to one of the ends prior to encryption. Adding ...
  7. [7]
    Microsoft Security Bulletin MS98-002 - Critical
    Using complex mathematical analysis and some trial and error, Bleichenbacher discovered that an Internet transaction encrypted with SSL could be decoded.Missing: impact | Show results with:impact
  8. [8]
    OAEP Reconsidered
    The OAEP encryption scheme was introduced by Bellare and Rogaway at Eurocrypt '94. ... 2001-02-13: last of 10 revisions: 2000-11-18: received: See all ...
  9. [9]
    RFC 2437 - PKCS #1: RSA Cryptography Specifications Version 2.0
    1 Syntax for RSAES-OAEP The object identifier id-RSAES-OAEP identifies the RSAES-OAEP encryption scheme. · 2 Syntax for RSAES-PKCS1-v1_5 The object identifier ...
  10. [10]
    RFC 3447 - Public-Key Cryptography Standards (PKCS) #1
    This document provides recommendations for the implementation of public-key cryptography based on the RSA algorithm
  11. [11]
    RFC 3560: Use of the RSAES-OAEP Key Transport Algorithm in ...
    This document specifies the use of RSAES-OAEP key transport algorithm in the CMS. The CMS can be used in either a store-and-forward or an interactive request- ...
  12. [12]
    RFC 5652 - Cryptographic Message Syntax (CMS) - IETF Datatracker
    This document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message ...
  13. [13]
    RFC 8446 - The Transport Layer Security (TLS) Protocol Version 1.3
    This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet.
  14. [14]
    [PDF] NIST IR 8547 initial public draft, Transition to Post-Quantum ...
    Nov 12, 2024 · This report describes NIST's approach to transitioning from quantum-vulnerable to post-quantum cryptography, identifying standards for IT ...Missing: OAEP | Show results with:OAEP
  15. [15]
    [PDF] Post-Quantum Cryptography in Practice: A Literature Review of ...
    Sep 14, 2025 · Hybrid key establishment combines shared secret values from traditional key-establishment algorithms (e.g.,. ECDH, X25519, RSA-OAEP) with NIST ...
  16. [16]
  17. [17]
  18. [18]
    [cs/0010019] The Random Oracle Methodology, Revisited - arXiv
    Oct 11, 2000 · We take a critical look at the relationship between the security of cryptographic schemes in the Random Oracle Model, and the security of the schemes that ...Missing: et critique OAEP
  19. [19]
    [PDF] Toward RSA-OAEP without Random Oracles
    This helps explain why the scheme, which so far has only been shown to have such security in the random oracle (RO) model, has stood up to cryptanalysis despite ...Missing: critiques | Show results with:critiques
  20. [20]
    [PDF] RSA–OAEP is Secure under the RSA Assumption?
    May 28, 2001 · In their paper [3], Bellare and Rogaway provided a security analysis, which proved that the OAEP construction together with any trapdoor one-way ...
  21. [21]
    [PDF] Further Results and Considerations on Side Channel Attacks on RSA
    May 24, 2002 · Manger, J.: A Chosen Ciphertext Attack On RSA Optimal Asymmetric Encryption Padding. (OAEP) as Standardized In PKCS #1, in Proc. of CRYPTO ...
  22. [22]
    oaep.h File Reference - Crypto++ Library 8.9
    Classes for optimal asymmetric encryption padding. Since: Crypto++ 2.1. Definition in file oaep.h. Generated on Thu Feb 6 2025 01:23:14 for Crypto++ by ...Missing: implementation | Show results with:implementation
  23. [23]
    RFC 5246 - The Transport Layer Security (TLS) Protocol Version 1.2
    This document specifies Version 1.2 of the Transport Layer Security (TLS) protocol. The TLS protocol provides communications security over the Internet.
  24. [24]
    RFC 7518 - JSON Web Algorithms (JWA) - IETF Datatracker
    This specification registers cryptographic algorithms and identifiers to be used with the JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key ...
  25. [25]
    SP 800-56B Rev. 2, Recommendation for Pair-Wise Key ...
    Mar 21, 2019 · This Recommendation specifies key-establishment schemes using integer factorization cryptography (in particular, RSA).Missing: OAEP 2020
  26. [26]
    [PDF] Recommendation for Pair-Wise Key Establishment Using Integer ...
    Mar 2, 2019 · NIST is responsible for developing information security standards and guidelines, including minimum requirements for federal information ...
  27. [27]
    proposal: crypto/rsa: deprecate PKCS #1 v1.5 encryption #75302
    Sep 7, 2025 · RSA-OAEP is a better, easy to adopt, FIPS 140 compliant alternative. Let's just deprecate it. // EncryptPKCS1v15 encrypts the given message with ...
  28. [28]
    Deprecation Notifications - AWS CloudHSM
    AWS CloudHSM is deprecating hsm1.medium instance type (end of support Dec 1, 2025) and Triple DES/RSA key wrap/unwrap with PKCS#1 v1.5 padding (end of support ...