In
cryptography
Cryptography, or cryptology (from "hidden, secret"; and ''graphein'', "to write", or ''-logy, -logia'', "study", respectively), is the practice and study of techniques for secure communication in the presence of Adversary (cryptography), ...
, a semantically secure
cryptosystem
In cryptography, a cryptosystem is a suite of cryptographic algorithms needed to implement a particular security service, such as confidentiality (encryption).
Typically, a cryptosystem consists of three algorithms: one for key generation, one ...
is one where only negligible information about the
plaintext can be feasibly extracted from the
ciphertext
In cryptography, ciphertext or cyphertext is the result of encryption performed on plaintext using an algorithm, called a cipher. Ciphertext is also known as encrypted or encoded information because it contains a form of the original plaintext ...
. Specifically, any
probabilistic, polynomial-time algorithm (PPTA) that is given the ciphertext of a certain message
(taken from any distribution of messages), and the message's length, cannot determine any partial information on the message with probability non-negligibly higher than all other PPTA's that only have access to the message length (and not the ciphertext).
[ S. Goldwasser and S. Micali]
Probabilistic encryption & how to play mental poker keeping secret all partial information
Annual ACM Symposium on Theory of Computing, 1982. This concept is the computational complexity analogue to
Shannon's concept of
perfect secrecy. Perfect secrecy means that the ciphertext reveals no information at all about the plaintext, whereas semantic security implies that any information revealed cannot be feasibly extracted.
[ Goldreich, Oded. Foundations of Cryptography: Volume 2, Basic Applications. Vol. 2. Cambridge university press, 2004.]
History
The notion of semantic security was first put forward by
Goldwasser and
Micali in 1982.
However, the definition they initially proposed offered no straightforward means to prove the security of practical cryptosystems. Goldwasser/Micali subsequently demonstrated that semantic security is equivalent to another definition of security called
ciphertext indistinguishability under chosen-plaintext attack.
[ S. Goldwasser and S. Micali]
Probabilistic encryption
Journal of Computer and System Sciences, 28:270-299, 1984. This latter definition is more common than the original definition of semantic security because it better facilitates proving the security of practical cryptosystems.
Symmetric-key cryptography
In the case of
symmetric-key algorithm cryptosystems, an adversary must not be able to compute any information about a plaintext from its ciphertext. This may be posited as an adversary, given two plaintexts of equal length and their two respective ciphertexts, cannot determine which ciphertext belongs to which plaintext.
Public-key cryptography
For an
asymmetric key encryption algorithm cryptosystem to be semantically secure, it must be infeasible for a
computationally bounded adversary to derive significant information about a message (plaintext) when given only its
ciphertext
In cryptography, ciphertext or cyphertext is the result of encryption performed on plaintext using an algorithm, called a cipher. Ciphertext is also known as encrypted or encoded information because it contains a form of the original plaintext ...
and the corresponding public encryption key. Semantic security considers only the case of a "passive" attacker, i.e., one who generates and observes ciphertexts using the public key and plaintexts of their choice. Unlike other security definitions, semantic security does not consider the case of
chosen ciphertext attack (CCA), where an attacker is able to request the decryption of chosen ciphertexts, and many semantically secure encryption schemes are demonstrably insecure against chosen ciphertext attack. Consequently, semantic security is now considered an insufficient condition for securing a general-purpose encryption scheme.
Indistinguishability under
Chosen Plaintext Attack (
IND-CPA) is commonly defined by the following experiment:
# A random pair
is generated by running
.
# A probabilistic polynomial time-bounded adversary is given the public key
, which it may use to generate any number of ciphertexts (within polynomial bounds).
# The adversary generates two equal-length messages
and
, and transmits them to a challenge oracle along with the public key.
# The challenge oracle selects one of the messages by flipping a fair coin (selecting a random bit
), encrypts the message
under the public key, and returns the resulting ''challenging ciphertext''
to the adversary.
The underlying
cryptosystem
In cryptography, a cryptosystem is a suite of cryptographic algorithms needed to implement a particular security service, such as confidentiality (encryption).
Typically, a cryptosystem consists of three algorithms: one for key generation, one ...
is IND-CPA (and thus semantically secure under chosen plaintext attack) if the adversary cannot determine which of the two messages was chosen by the oracle, with probability significantly greater than
(the success rate of random guessing). Variants of this definition define indistinguishability under
chosen ciphertext attack and
adaptive chosen ciphertext attack (
IND-CCA,
IND-CCA2).
Because the adversary possesses the public encryption key in the above game, a semantically secure encryption scheme must by definition be
probabilistic, possessing a component of
randomness; if this were not the case, the adversary could simply compute the deterministic encryption of
and
and compare these encryptions with the returned ciphertext
to successfully guess the oracle's choice.
The Role of Randomness in Semantic Security
Randomness plays a key role in
cryptography
Cryptography, or cryptology (from "hidden, secret"; and ''graphein'', "to write", or ''-logy, -logia'', "study", respectively), is the practice and study of techniques for secure communication in the presence of Adversary (cryptography), ...
by preventing attackers from detecting patterns in ciphertexts. In a semantically secure cryptosystem, encrypting the same plaintext multiple times should produce different ciphertexts.
If encryption relies on predictable or weak randomness, it becomes easier to break.
Poor randomness can lead to patterns that attackers can analyze, potentially allowing them to recover secret
keys or decrypt messages. Because of this, cryptographic systems must use strong and unpredictable random values to maintain security.
Why Randomness Is Important
Strong randomness is critical in:
*
Key generation – Ensures cryptographic keys are unpredictable.
* Nonce Selection – Reusing a nonce in
AES-GCM or
ElGamal can break security.
*
Probabilistic encryption – Some schemes, like
Goldwasser–Micali, rely on randomness to ensure ciphertexts are indistinguishable.
Failures of Randomness in the Past
Several cryptographic failures have resulted from weak randomness, allowing attackers to break encryption.
Debian OpenSSL Vulnerability (2008)
An error in Debian’s
OpenSSL removed entropy collection, producing a small set of predictable keys. Attackers could guess
SSH and
TLS keys, allowing unauthorized access.
Sony PlayStation 3 ECDSA Failure (2011)
Sony’s
PlayStation 3 misused the
Elliptic Curve Digital Signature Algorithm (ECDSA) by reusing the same
nonce - a random number used once in cryptographic signing - in multiple signatures. Since ECDSA relies on unique nonces for security, attackers recovered Sony’s private signing key, allowing them to sign unauthorized software.
ROCA Vulnerability (2017)
A flaw in
Infineon's RSA key generation created weak keys that attackers could efficiently factor. This vulnerability affected smart cards and
Trusted Platform Modules (TPMs), requiring widespread key replacements.
How to Ensure Strong Randomness
To prevent such failures, cryptographic systems must generate unpredictable and high-quality random values.
Use of Cryptographically Secure Pseudorandom Number Generators (CSPRNGs)
CSPRNGs provide secure random numbers resistant to attacks. Common examples include:
* /dev/random and /dev/urandom (Unix)
* Windows CryptGenRandom
* NIST-approved DRBGs (Deterministic Random Bit Generators)
Entropy Collection
Secure randomness requires high entropy sources, such as:
* Hardware-based generators (e.g., Intel
RDRAND)
* Physical sources, like keystroke timing
* Dedicated security hardware, including
HSMs and
TPMs
Avoiding Deterministic Encryption Without Randomness
Some encryption schemes require added randomness to maintain security:
*
RSA with
OAEP padding introduces randomness to prevent deterministic encryption.
* Unique nonces in
AES-GCM and
ElGamal ensure encrypting the same message multiple times produces different ciphertexts.
Testing and Auditing Randomness
To verify randomness quality, cryptographic implementations should undergo:
*
NIST SP 800-90B randomness tests
*
Diehard tests
*
FIPS 140-2 compliance checks
[{{cite web , date=2002-05-25 , title=Security Requirements for Cryptographic Modules , url=https://csrc.nist.gov/publications/detail/fips/140/2/final , access-date= , publisher=National Institute of Standards and Technology (NIST)]
Semantically secure encryption algorithms include
Goldwasser-Micali,
ElGamal and
Paillier. These schemes are considered
provably secure, as their semantic security can be reduced to solving some hard mathematical problem (e.g.,
Decisional Diffie-Hellman or the
Quadratic Residuosity Problem
The quadratic residuosity problem (QRP) in computational number theory is to decide, given integers a and N, whether a is a quadratic residue modulo N or not.
Here N = p_1 p_2 for two unknown primes p_1 and p_2, and a is among the numbers which a ...
). Other, semantically insecure algorithms such as
RSA, can be made semantically secure (under stronger assumptions) through the use of random encryption padding schemes such as
Optimal Asymmetric Encryption Padding (OAEP).
References
Theory of cryptography