Digital Envelope
   HOME

TheInfoList



OR:

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 key encapsulation mechanism (KEM) is a
public-key cryptosystem Public-key cryptography, or asymmetric cryptography, is the field of cryptographic systems that use pairs of related keys. Each key pair consists of a public key and a corresponding private key. Key pairs are generated with cryptographic a ...
that allows a sender to generate a short secret key and transmit it to a receiver securely, in spite of
eavesdropping Eavesdropping is the act of secretly or stealthily listening to the private conversation or communications of others without their consent in order to gather information. Etymology The verb ''eavesdrop'' is a back-formation from the noun ''eave ...
and
intercepting In ball-playing competitive team sports, an interception or pick is a move by a player involving a pass of the ball—whether by foot or hand, depending on the rules of the sport—in which the ball is intended for a player of the same team bu ...
adversaries. Modern standards for
public-key encryption Public-key cryptography, or asymmetric cryptography, is the field of cryptographic systems that use pairs of related keys. Each key pair consists of a public key and a corresponding private key. Key pairs are generated with cryptographic alg ...
of arbitrary messages are usually based on KEMs. A KEM allows a sender who knows a public key to simultaneously generate a short random secret key and an encapsulation or ciphertext of the secret key by the KEM's encapsulation algorithm. The receiver who knows the private key corresponding to the public key can recover the same random secret key from the encapsulation by the KEM's decapsulation algorithm. The security goal of a KEM is to prevent anyone who ''does not'' know the private key from recovering any information about the encapsulated secret keys, even after eavesdropping or submitting other encapsulations to the receiver to study how the receiver reacts.


Difference from public-key encryption

The difference between a
public-key encryption Public-key cryptography, or asymmetric cryptography, is the field of cryptographic systems that use pairs of related keys. Each key pair consists of a public key and a corresponding private key. Key pairs are generated with cryptographic alg ...
scheme and a KEM is that a public-key encryption scheme allows a sender to choose an arbitrary message from some space of possible messages, while a KEM chooses a short secret key at random for the sender. The sender may take the random secret key produced by a KEM and use it as a
symmetric key Symmetric-key algorithms are algorithms for cryptography that use the same Key (cryptography), cryptographic keys for both the encryption of plaintext and the decryption of ciphertext. The keys may be identical, or there may be a simple transforma ...
for an
authenticated cipher Authenticated Encryption (AE) is an encryption scheme which simultaneously assures the data confidentiality (also known as privacy: the encrypted message is impossible to understand without the knowledge of a secret key) and authenticity (in othe ...
whose ciphertext is sent alongside the encapsulation to the receiver. This serves to compose a public-key encryption scheme out of a KEM and a symmetric-key authenticated cipher in a
hybrid cryptosystem Hybrid may refer to: Science * Hybrid (biology), an offspring resulting from cross-breeding ** Hybrid grape, grape varieties produced by cross-breeding two ''Vitis'' species ** Hybridity, the property of a hybrid plant which is a union of two diff ...
. Most public-key encryption schemes such as RSAES-PKCS1-v1_5, RSAES-OAEP, and
Elgamal encryption In cryptography, the ElGamal encryption system is an asymmetric key encryption algorithm for public-key cryptography which is based on the Diffie–Hellman key exchange. It was described by Taher Elgamal in 1985. ElGamal encryption is used in th ...
are limited to small messages and are almost always used to encrypt a short random secret key in a hybrid cryptosystem anyway. And although a public-key encryption scheme can conversely be converted to a KEM by choosing a random secret key and encrypting it as a message, it is easier to design and analyze a secure KEM than to design a secure public-key encryption scheme as a basis. So most modern public-key encryption schemes are based on KEMs rather than the other way around.


Definition


Syntax

A KEM consists of three algorithms: # Key generation, (\mathit, \mathit) := \operatorname(), takes no inputs and returns a pair of a public key \mathit and a private key \mathit. # Encapsulation, (k, c) := \operatorname(\mathit), takes a public key \mathit, randomly chooses a secret key k, and returns k along with its encapsulation c. # Decapsulation, k' := \operatorname(\mathit, c'), takes a private key \mathit and an encapsulation c', and either returns an encapsulated secret key k' or fails, sometimes denoted by returning \bot (called ‘ bottom’).


Correctness

A KEM is correct if, for any key pair (\mathit, \mathit) generated by \operatorname, decapsulating an encapsulation c returned by (k, c) := \operatorname(\mathit) with high probability yields the same key k, that is, \operatorname(\mathit, c) = k.


Security: IND-CCA

Security of a KEM is quantified by its indistinguishability against chosen-ciphertext attack, IND-CCA, which is loosely how much better an adversary can do than a coin toss to tell whether, given a random key and an encapsulation, the key is encapsulated by that encapsulation or is an independent random key. Specifically, in the IND-CCA game: # The key generation algorithm is run to generate (\mathit, \mathit) := \operatorname(). # \mathit is revealed to the adversary. # The adversary can query \operatorname(\mathit, c') for arbitrary encapsulations c' of the adversary's choice. # The encapsulation algorithm is run to randomly generate a secret key and encapsulation (k_0, c) := \operatorname(\mathit), and another secret key k_1 is generated independently at random. # A fair coin is tossed, giving an outcome b \in \. # The pair (k_b, c) is revealed to the adversary. # The adversary can again query \operatorname(\mathit, c') for arbitrary encapsulations c' of the adversary's choice, ''except'' for c. # The adversary returns a guess b' \in \, and wins the game if b = b'. The IND-CCA advantage of the adversary is \left, \Pr ' = b- 1/2\, that is, the probability beyond a fair coin toss at correctly distinguishing an encapsulated key from an independently randomly chosen key.


Examples and motivation


RSA

Traditional
RSA encryption The RSA (Rivest–Shamir–Adleman) cryptosystem is a public-key cryptosystem, one of the oldest widely used for secure data transmission. The initialism "RSA" comes from the surnames of Ron Rivest, Adi Shamir and Leonard Adleman, who publicly ...
, with t-bit moduli and exponent e, is defined as follows: * Key generation, (\mathit, \mathit) := \operatorname(): # Generate a t-bit semiprime n with 2^ < n < 2^t at random satisfying \gcd(e, \lambda(n)) = 1, where \lambda(n) is the
Carmichael function In number theory, a branch of mathematics, the Carmichael function of a positive integer is the smallest positive integer such that :a^m \equiv 1 \pmod holds for every integer coprime to . In algebraic terms, is the exponent of a group, expone ...
. # Compute d := e^ \bmod \lambda(n). # Return \mathit := n as the public key and \mathit := (n, d) as the private key. (Many variations on key generation algorithms and private key formats are available.) * Encryption of (t - 1)-bit message m to public key \mathit = n, giving c := \operatorname(\mathit, m): # Encode the bit string m as an integer r with 0 \leq r < n. # Return c := r^e \bmod n. * Decryption of ciphertext c' with private key \mathit = (n, d), giving m' := \operatorname(\mathit, c'): # Compute r' := (c')^d \bmod n. # Decode the integer r' as a bit string m'. This naive approach is totally insecure. For example, since it is nonrandomized, it cannot be secure against even
known-plaintext attack The known-plaintext attack (KPA) is an attack model for cryptanalysis where the attacker has access to both the plaintext (called a crib) and its encrypted version (ciphertext). These can be used to reveal secret keys and code books. The term " ...
—an adversary can tell whether the sender is sending the message ATTACK AT DAWN versus the message ATTACK AT DUSK simply by encrypting those messages and comparing the ciphertext. Even if m is always a random secret key, such as a 256-bit AES key, when e is chosen to optimize efficiency as e = 3, the message m can be computed from the ciphertext c simply by taking real number cube roots, and there are many other attacks against plain RSA. Various randomized padding schemes have been devised in attempts—sometimes failed, like RSAES-PKCS1-v1_5—to make it secure for arbitrary short messages m. Since the message m is almost always a short secret key for a
symmetric-key Symmetric-key algorithms are algorithms for cryptography that use the same cryptographic keys for both the encryption of plaintext and the decryption of ciphertext. The keys may be identical, or there may be a simple transformation to go between t ...
authenticated cipher Authenticated Encryption (AE) is an encryption scheme which simultaneously assures the data confidentiality (also known as privacy: the encrypted message is impossible to understand without the knowledge of a secret key) and authenticity (in othe ...
used to encrypt an arbitrary bit string message, a simpler approach called RSA-KEM is to choose an element of \mathbb Z/n\mathbb Z at random and use that to ''derive'' a secret key using a
key derivation function In cryptography, a key derivation function (KDF) is a cryptographic algorithm that derives one or more secret keys from a secret value such as a master key, a password, or a passphrase using a pseudorandom function (which typically uses a cr ...
H, roughly as follows: * Key generation: As above. * Encapsulation for a public key \mathit = n, giving (k, c) := \operatorname(\mathit): # Choose an integer r with 0 \leq r < n uniformly at random. # Return k := H(r) and c := r^e \bmod n as its encapsulation. * Decapsulation of c' with private key \mathit = (n, d), giving k' := \operatorname(\mathit, c'): # Compute r' := (c')^d \bmod n. # Return k' := H(r'). This approach is simpler to implement, and provides a tighter reduction to the
RSA problem In cryptography, the RSA problem summarizes the task of performing an RSA private-key operation given only the public key. The RSA algorithm raises a ''message'' to an '' exponent'', modulo a composite number ''N'' whose factors are not known. ...
, than padding schemes like RSAES-OAEP.


Elgamal

Traditional
Elgamal encryption In cryptography, the ElGamal encryption system is an asymmetric key encryption algorithm for public-key cryptography which is based on the Diffie–Hellman key exchange. It was described by Taher Elgamal in 1985. ElGamal encryption is used in th ...
is defined over a multiplicative subgroup of the finite field \mathbb Z/p\mathbb Z with generator g of order q as follows: * Key generation, (pk, sk) := \operatorname(): # Choose x \in \mathbb Z/q\mathbb Z uniformly at random. # Compute y := g^x \bmod p. # Return \mathit := x as the private key and \mathit := y as the public key. * Encryption of a message m \in \mathbb Z/p\mathbb Z to public key \mathit = y, giving c := \operatorname(\mathit, m): # Choose r \in \mathbb Z/q\mathbb Z uniformly at random. # Compute: \begin t &:= y^r \bmod p \\ c_1 &:= g^r \bmod p \\ c_2 &:= (t \cdot m) \bmod p\end # Return the ciphertext c := (c_1, c_2). * Decryption of a ciphertext c' = (c'_1, c'_2) for a private key \mathit = x, giving m' := \operatorname(\mathit, c'): # Fail and return \bot if (c'_1)^ \not\equiv 1 \pmod p or if (c'_2)^ \not\equiv 1 \pmod p, i.e., if c'_1 or c'_2 is not in the subgroup generated by g. # Compute t' := (c'_1)^x \bmod p. # Return m' := t^ c'_2 \bmod p. This meets the syntax of a public-key encryption scheme, restricted to messages in the space \mathbb Z/p\mathbb Z (which limits it to message of a few hundred bytes for typical values of p). By validating ciphertexts in decryption, it avoids leaking bits of the private key x through maliciously chosen ciphertexts outside the group generated by g. However, this fails to achieve indistinguishability against chosen ciphertext attack. For example, an adversary having a ciphertext c = (c_1, c_2) for an unknown message m can trivially decrypt it by querying the decryption oracle for the distinct ciphertext c' := (c_1, c_2 g), yielding the related plaintext m' := m g \bmod p, from which m can be recovered by m = m' g^ \bmod p. Traditional Elgamal encryption can be adapted to the elliptic-curve setting, but it requires some way to reversibly encode messages as points on the curve, which is less trivial than encoding messages as integers mod p. Since the message m is almost always a short secret key for a
symmetric-key Symmetric-key algorithms are algorithms for cryptography that use the same cryptographic keys for both the encryption of plaintext and the decryption of ciphertext. The keys may be identical, or there may be a simple transformation to go between t ...
authenticated cipher Authenticated Encryption (AE) is an encryption scheme which simultaneously assures the data confidentiality (also known as privacy: the encrypted message is impossible to understand without the knowledge of a secret key) and authenticity (in othe ...
used to encrypt an arbitrary bit string message, a simpler approach is to ''derive'' the secret key from t and dispense with m and c_2 altogether, as a KEM, using a
key derivation function In cryptography, a key derivation function (KDF) is a cryptographic algorithm that derives one or more secret keys from a secret value such as a master key, a password, or a passphrase using a pseudorandom function (which typically uses a cr ...
H: * Key generation: As above. * Encapsulation for a public key \mathit = y, giving (k, c) := \operatorname(\mathit): # Choose r \in \mathbb Z/q\mathbb Z uniformly at random. # Compute t := y^r \bmod p. # Return k := H(t) and c := g^r \bmod p as its encapsulation. * Decapsulation of c' with private key \mathit = x, giving k' := \operatorname(\mathit, c'): # Fail and return \bot if (c')^ \not\equiv 1 \pmod p, i.e., if c' is not in the subgroup generated by g. # Compute t' := (c')^x \bmod p. # Return k' := H(t'). When combined with an authenticated cipher to encrypt arbitrary bit string messages, the combination is essentially the
Integrated Encryption Scheme Integrated Encryption Scheme (IES) is a hybrid encryption scheme which provides semantic security against an adversary who is able to use chosen-plaintext or chosen-ciphertext attacks. The security of the scheme is based on the computational Di ...
. Since this KEM only requires a one-way key derivation function to hash random elements of the group it is defined over, \mathbb Z/p\mathbb Z in this case, and not a reversible encoding of messages, it is easy to extend to more compact and efficient elliptic curve groups for the same security, as in the ECIES, Elliptic Curve Integrated Encryption Scheme.


See also

*
Key Wrap In cryptography, key wrap constructions are a class of symmetric encryption algorithms designed to encapsulate (encrypt) cryptographic key material. The Key Wrap algorithms are intended for applications such as protecting keys while in untrusted ...
* Optimal Asymmetric Encryption Padding *
Hybrid Cryptosystem Hybrid may refer to: Science * Hybrid (biology), an offspring resulting from cross-breeding ** Hybrid grape, grape varieties produced by cross-breeding two ''Vitis'' species ** Hybridity, the property of a hybrid plant which is a union of two diff ...


References

{{DEFAULTSORT:Key encapsulation Public-key encryption schemes Key management