Integrated Encryption Scheme

Integrated Encryption Scheme (IES) is a hybrid encryption scheme which provides semantic security against an adversary who is allowed to use chosen-plaintext and chosen-ciphertext attacks. The security of the scheme is based on the computational Diffie–Hellman problem. Two incarnations of the IES are standardized: Discrete Logarithm Integrated Encryption Scheme (DLIES) and Elliptic Curve Integrated Encryption Scheme (ECIES), which is also known as the Elliptic Curve Augmented Encryption Scheme or simply the Elliptic Curve Encryption Scheme. These two incarnations are identical up to the change of an underlying group and so to be concrete we concentrate on the latter.

Informal description
As a brief and informal description and overview of how IES works, we use a Discrete Logarithm Integrated Encryption Scheme (DLIES) based example, focusing on illuminating the reader's understanding, rather than precise technical details.

 Alice learns Bob's public key,  through a public key infrastructure or other pre-distributed method. We assume Bob knows his own private key .
 Alice generates a fresh, ephemeral value , and its associated public value, .
 Alice then computes a symmetric key  using this information and a key derivation function KDF as follows: .
 Alice computes her ciphertext  from her actual message , i.e. the symmetric encryption of , encrypted under key  (using an authenticated encryption scheme) as follows: .
 Alice transmits (in a single message) both the public ephemeral , and the ciphertext .
 Bob, knowing  and , can now compute  and decrypt  from .
Note that the scheme does not provide Bob with any assurance as to who really sent the message: the scheme does nothing to stop anyone from pretending to be Alice.

Formal description

Information required
To send an encrypted message to Bob using ECIES, Alice needs the following information:
 cryptographic suite to be used, including a key derivation function (e.g., ANSI-X9.63-KDF with SHA-1 option), a message authentication code (e.g., HMAC-SHA-1-160 with 160-bit keys or HMAC-SHA-1-80 with 80-bit keys) and a symmetric encryption scheme (e.g., TDEA in CBC mode or XOR encryption scheme)—noted ;
 elliptic curve domain parameters:  for a curve over a prime field or  for a curve over a binary field;
 Bob's public key:  (Bob generates it as follows: , where  is the private key he chooses at random: );
 optional shared information:  and .
  denotes the point at infinity

Encryption
To encrypt a message  Alice does the following:
 generates a random number  and calculates ;
 derives a shared secret: , where  (and );
 uses a KDF to derive symmetric encryption keys and MAC keys: ;
 encrypts the message: ;
 computes the tag of encrypted message and : ;
 outputs .

Decryption
To decrypt the ciphertext  Bob does the following:
 derives the shared secret: , where  (it is the same as the one Alice derived because ), or outputs failed if ;
 derives keys the same way as Alice did: ;
 uses MAC to check the tag and outputs failed if ;
 uses symmetric encryption scheme to decrypt the message .

References
 Victor Shoup, A proposal for an ISO standard for public key encryption, Version 2.1, December 20, 2001.
 Certicom Research, Standards for efficient cryptography, SEC 1: Elliptic Curve Cryptography, Version 2.0, May 21, 2009.
 Gayoso Martínez, Hernández Encinas, Sánchez Ávila: A Survey of the Elliptic Curve Integrated Encryption Scheme, Journal of Computer Science and Engineering, 2, 2 (2010), 7–13.
 Ladar Levison: Code for using ECIES to protect data (ECC + AES + SHA), openssl-devel mailing list, August 6, 2010.
 Abdalla, Michel and Bellare, Mihir and Rogaway, Phillip: DHIES: An Encryption Scheme Based on the Diffie–Hellman Problem, IACR Cryptology ePrint Archive, 1999.

Category:Cryptographic protocols