Recent from talks
Nothing was collected or created yet.
Adaptive chosen-ciphertext attack
View on WikipediaThis article includes a list of general references, but it lacks sufficient corresponding inline citations. (January 2011) |
An adaptive chosen-ciphertext attack (abbreviated as CCA2) is an interactive form of chosen-ciphertext attack in which an attacker first sends a number of ciphertexts to be decrypted chosen adaptively, and then uses the results to distinguish a target ciphertext without consulting the oracle on the challenge ciphertext. In an adaptive attack, the attacker is further allowed adaptive queries to be asked after the target is revealed (but the target query is disallowed). It is extending the indifferent (non-adaptive) chosen-ciphertext attack (CCA1) where the second stage of adaptive queries is not allowed. Charles Rackoff and Dan Simon defined CCA2 and suggested a system building on the non-adaptive CCA1 definition and system of Moni Naor and Moti Yung (which was the first treatment of chosen ciphertext attack immunity of public key systems).
In certain practical settings, the goal of this attack is to gradually reveal information about an encrypted message, or about the decryption key itself. For public-key systems, adaptive-chosen-ciphertexts are generally applicable only when they have the property of ciphertext malleability — that is, a ciphertext can be modified in specific ways that will have a predictable effect on the decryption of that message.
Practical attacks
[edit]Adaptive-chosen-ciphertext attacks were perhaps considered to be a theoretical concern, but not to have been be manifested in practice, until 1998, when Daniel Bleichenbacher (then of Bell Laboratories) demonstrated a practical attack against systems using RSA encryption in concert with the PKCS#1 v1.5 encoding function, including a version of the Secure Sockets Layer (SSL) protocol used by thousands of web servers at the time.[1]
The Bleichenbacher attacks, also known as the million message attack, took advantage of flaws within the PKCS #1 v1.5 padding function to gradually reveal the content of an RSA encrypted message. Under this padding function, padded plaintexts have a fixed format that it should follow. If the decryption device (e.g. SSL-equipped web server) somehow reveals whether the padding is valid, it also serves as an "oracle" that reveals information on the secret key. Finding the whole key requires sending several million test ciphertexts to the target.[2] In practical terms, this means that an SSL session key can be exposed in a reasonable amount of time, perhaps a day or less.
With slight variations, this vulnerability was still exploitable in many servers in 2018, under the new name "Return Of Bleichenbacher's Oracle Threat" (ROBOT).[3]
Preventing attacks
[edit]In order to prevent adaptive-chosen-ciphertext attacks, it is necessary to use an encryption or encoding scheme that limits ciphertext malleability and a proof of security of the system. After the theoretical and foundation level development of CCA secure systems, a number of systems have been proposed in the Random Oracle model: the most common standard for RSA encryption is Optimal Asymmetric Encryption Padding (OAEP). Unlike improvised schemes such as the padding used in the early versions of PKCS#1, OAEP has been proven secure in the random oracle model,[4] OAEP was incorporated into PKCS#1 as of version 2.0 published in 1998 as the now-recommended encoding scheme, with the older scheme still supported but not recommended for new applications.[5] However, the golden standard for security is to show the system secure without relying on the Random Oracle idealization.[6]
Mathematical model
[edit]In complexity-theoretic cryptography, security against adaptive chosen-ciphertext attacks is commonly modeled using ciphertext indistinguishability (IND-CCA2).
References
[edit]- ^ Bleichenbacher, Daniel (August 23–27, 1998). Chosen Ciphertext Attacks Against Protocols Based on the RSA Encryption Standard PKCS #1 (PDF). CRYPTO '98. Santa Barbara, California: Springer Berlin Heidelberg. pp. 1–12. doi:10.1007/BFb0055716. ISBN 978-3-540-64892-5.
- ^ Pornin, Thomas (2014). "Can you explain Bleichenbacher's CCA attack on PKCS#1 v1.5?". Cryptography Stack Exchange.
- ^ Hanno Böck; Juraj Somorovsky; Craig Young. "ROBOT attack". Retrieved February 27, 2018.
- ^ Fujisaki, Eiichiro; Okamoto, Tatsuaki; Pointcheval, David; Stern, Jacques (2004). "RSA-OAEP Is Secure under the RSA Assumption" (PDF). Journal of Cryptology. 17 (2): 81–104. CiteSeerX 10.1.1.11.7519. doi:10.1007/s00145-002-0204-y. S2CID 218582909. Retrieved 2009-01-12.
- ^ Kaliski, B.; Staddon, J. (October 1998). PKCS #1: RSA Cryptography Specifications Version 2.0. IETF. doi:10.17487/RFC2437. RFC 2437. Retrieved February 20, 2019.
- ^ Katz, Jonathan; Lindell, Yehuda (2015). Introduction to Modern Cryptography (2 ed.). Boca Raton: Chapman & Hall/CRC. pp. 174–175, 179–181. ISBN 978-1-4665-7027-6.
Adaptive chosen-ciphertext attack
View on GrokipediaIntroduction
Definition and overview
An adaptive chosen-ciphertext attack, often denoted as CCA2, models a scenario where an adversary has access to a decryption oracle and can submit chosen ciphertexts of its choice for decryption, receiving the corresponding plaintexts, with the exception of a specific target challenge ciphertext; crucially, the adversary can adapt its subsequent queries based on the responses obtained from previous decryptions.[6] This interactive access allows the attacker to refine its strategy progressively, simulating realistic threats in cryptographic systems where partial decryption capabilities might be available.[6] The model was first formalized by Rackoff and Simon in their 1991 work on non-interactive zero-knowledge proofs, which strengthened prior notions by permitting post-challenge decryption queries to address limitations like "lunchtime attacks."[6] In comparison to a chosen-plaintext attack (CPA), where the adversary is limited to an encryption oracle for generating ciphertexts from selected plaintexts without any decryption access, the adaptive CCA represents a significantly stronger adversarial capability.[1] CPA security focuses on preventing information leakage from encryptions alone, whereas CCA incorporates decryption oracles to model environments like network protocols or services where an attacker might intercept and query modified messages, such as in compromised decryption endpoints.[1] This distinction underscores CCA's relevance to practical deployments, as evidenced in analyses of public-key encryption schemes.[1] The key threat in an adaptive CCA arises from the potential to exploit inherent weaknesses in encryption schemes, such as ciphertext malleability—where modifications to a ciphertext predictably alter the underlying plaintext—or vulnerabilities in padding mechanisms that leak information through oracle responses.[7] For instance, in a hypothetical malleable scheme like unpadded RSA, an attacker could observe a target ciphertext encrypting an unknown plaintext , then query the oracle with a modified version obtained by multiplying the ciphertext by a chosen factor (where is the public exponent and is known), receiving a plaintext ; by comparing to expected values or repeating with varied , the attacker could infer bits of the original .[7] Security against adaptive CCA is formally captured by the indistinguishability under adaptive chosen-ciphertext attack (IND-CCA2) definition, which requires that no efficient adversary can distinguish encryptions of two chosen plaintexts even with oracle access.[1]Historical context
The concept of adaptive chosen-ciphertext attacks emerged in the late 1980s and early 1990s, coinciding with the rapid development of public-key cryptography following the introduction of systems like RSA in 1978. Early work focused on strengthening encryption against active adversaries who could query decryption oracles, building on notions of semantic security introduced by Goldwasser and Micali in 1982. A pivotal contribution came from Moni Naor and Moti Yung in 1990, who demonstrated a paradigm for constructing public-key cryptosystems provably secure against chosen-ciphertext attacks (CCS-PKC) using probabilistic encryption and non-interactive zero-knowledge proofs, highlighting the implications for achieving semantic security in the presence of such threats.[2] Key milestones in formalizing adaptive chosen-ciphertext security occurred in the early 1990s, building on Rackoff and Simon's 1991 introduction of the model, with Mihir Bellare and Phillip Rogaway's 1994 work on optimal asymmetric encryption, which analyzed and applied strong security notions including indistinguishability under adaptive chosen-ciphertext attack (IND-CCA2) to propose practical constructions like optimal asymmetric encryption padding (OAEP) secure against adaptive chosen-ciphertext attacks, addressing vulnerabilities in practical schemes like RSA.[8] This formalization emphasized the need for encryption to withstand decryption queries even after seeing a target ciphertext, distinguishing it from weaker models. The practical urgency of these notions was underscored in 1998 by Daniel Bleichenbacher's adaptive chosen-ciphertext attack on RSA with PKCS#1 v1.5 padding, which exploited implementation flaws in SSL servers to decrypt messages using as few as a million oracle queries, exposing real-world risks in deployed systems.[9] Following these developments, the post-2000 era saw increased emphasis on chosen-ciphertext security in cryptographic standards, particularly for protocols like TLS, where Bleichenbacher's attack prompted countermeasures such as strict padding validation and countermeasures against timing oracles in RFC 2246 (TLS 1.0, 1999) and subsequent versions. By the 2020s, as quantum computing threats loomed, adaptive CCA resistance became integral to post-quantum cryptography designs; for instance, the CRYSTALS-Kyber key encapsulation mechanism, selected by NIST, achieves IND-CCA2 security via the Fujisaki-Okamoto transform applied to its IND-CPA-secure base. This culminated in NIST's 2024 standardization of ML-KEM (based on Kyber) in FIPS 203, which mandates IND-CCA2 security to ensure robustness against chosen-ciphertext attacks in quantum-resistant settings, alongside FIPS 204 for signatures.[10][11]Attack Models
Non-adaptive chosen-ciphertext attack
In the non-adaptive chosen-ciphertext attack model, also denoted as CCA1 or the "lunchtime" attack, an adversary obtains access to a decryption oracle and can submit chosen ciphertexts adaptively prior to receiving the target challenge ciphertext, refining queries based on previous oracle responses, but without the capability for post-challenge queries or adaptation based on the challenge itself.[12][2] This setup models a scenario of limited, temporary oracle access, where the attacker exploits the decryption mechanism interactively during a brief window like a lunch break when the key owner is unavailable—a term introduced by Naor and Yung to illustrate real-world constraints on attack feasibility.[2] Security in this model ensures that even with such pre-challenge decryption queries, the adversary cannot distinguish between encryptions of two target messages, providing a baseline protection against pre-challenge probes but lacking robustness against more dynamic threats.[12] Compared to stronger models, CCA1 is inherently weaker because it prohibits post-challenge query adaptation, preventing the capture of scenarios where attackers iteratively exploit partial information to escalate their assault.[12] Early public-key encryption constructions, including the original Naor-Yung paradigm based on probabilistic encryption and non-interactive zero-knowledge proofs, achieved provable CCA1 security under standard assumptions but failed against adaptive variants, influencing legacy analyses where full adaptivity was not yet prioritized.[2] Nevertheless, CCA1 falls short in addressing persistent threats in contemporary systems, such as email encryption protocols, where adversaries can feasibly conduct repeated, evolving decryption queries across multiple interactions.[13]Adaptive chosen-ciphertext attack
An adaptive chosen-ciphertext attack (CCA2) models a powerful adversarial scenario in public-key cryptography where the attacker interacts dynamically with a decryption oracle to compromise the confidentiality of an encrypted message. In this model, the adversary aims to distinguish between encryptions of two target messages or recover the plaintext of a challenge ciphertext through iterative queries. Unlike weaker models, CCA2 captures the full interactivity of a persistent attacker who can refine their strategy based on oracle responses, making it a standard benchmark for secure encryption schemes.[12] The attack proceeds in phases, allowing the adversary adaptive access to the decryption oracle before and after receiving a challenge ciphertext. Initially, the adversary obtains the public key and may query the oracle with chosen ciphertexts to receive their corresponding plaintexts, gathering information about the system's behavior. The adversary then selects two equal-length messages and , and a challenger encrypts one of them (chosen randomly) as the target ciphertext , providing it to the adversary. Subsequently, the adversary continues querying the oracle with new ciphertexts , using the returned plaintexts to inform further choices, ultimately attempting to guess which message was encrypted in or decrypt it directly. This process can be formalized in pseudocode as follows:Adversary A on CCA2(pk):
1. For i = 1 to q1: // Pre-challenge phase
Choose c_i
m_i ← Dec(sk, c_i) // [Oracle](/page/Oracle) returns [plaintext](/page/Plaintext)
Use m_i to adapt next choices
2. Choose m0, m1 of equal length
b ← {0,1} randomly
c* ← Enc(pk, m_b) // Challenge
3. For i = q1+1 to q_total: // Post-challenge phase
Choose c_i ≠ c*
m_i ← Dec(sk, c_i)
Use m_i and prior info to adapt
4. Output guess b' for b
Adversary A on CCA2(pk):
1. For i = 1 to q1: // Pre-challenge phase
Choose c_i
m_i ← Dec(sk, c_i) // [Oracle](/page/Oracle) returns [plaintext](/page/Plaintext)
Use m_i to adapt next choices
2. Choose m0, m1 of equal length
b ← {0,1} randomly
c* ← Enc(pk, m_b) // Challenge
3. For i = q1+1 to q_total: // Post-challenge phase
Choose c_i ≠ c*
m_i ← Dec(sk, c_i)
Use m_i and prior info to adapt
4. Output guess b' for b
