<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Integrated_Encryption_Scheme</id>
	<title>Integrated Encryption Scheme - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Integrated_Encryption_Scheme"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Integrated_Encryption_Scheme&amp;action=history"/>
	<updated>2026-05-05T18:53:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Integrated_Encryption_Scheme&amp;diff=2312928&amp;oldid=prev</id>
		<title>imported&gt;LR.127: Adding local short description: &quot;Hybrid encryption in cryptography&quot;, overriding Wikidata description &quot;in cryptography, a public key cryptosystem&quot;</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Integrated_Encryption_Scheme&amp;diff=2312928&amp;oldid=prev"/>
		<updated>2024-11-28T17:32:30Z</updated>

		<summary type="html">&lt;p&gt;Adding local &lt;a href=&quot;https://en.wikipedia.org/wiki/Short_description&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Short description&quot;&gt;short description&lt;/a&gt;: &amp;quot;Hybrid encryption in cryptography&amp;quot;, overriding Wikidata description &amp;quot;in cryptography, a public key cryptosystem&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|Hybrid encryption in cryptography}}&lt;br /&gt;
{{Multiple issues|&lt;br /&gt;
{{Citation style|date=October 2017}}&lt;br /&gt;
{{No footnotes|date=October 2017}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Integrated Encryption Scheme&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;IES&amp;#039;&amp;#039;&amp;#039;) is a [[hybrid encryption]] scheme which provides [[semantic security]] against an [[Adversary (cryptography)|adversary]] who is able to use [[Chosen-plaintext attack|chosen-plaintext]] or [[Chosen-ciphertext attack|chosen-ciphertext]] attacks. The security of the scheme is based on the computational [[Diffie–Hellman problem]].&amp;lt;br/&amp;gt;&lt;br /&gt;
Two variants of IES are specified: [[Discrete logarithm|Discrete Logarithm]] Integrated Encryption Scheme (DLIES) and [[Elliptic curve|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 variants are identical up to the change of an underlying group{{clarify|date=August 2021}}.&lt;br /&gt;
&lt;br /&gt;
==Informal description of DLIES==&lt;br /&gt;
As a &amp;#039;&amp;#039;brief and informal&amp;#039;&amp;#039; description and overview of how IES works, a Discrete Logarithm Integrated Encryption Scheme (DLIES) is used, focusing on illuminating the reader&amp;#039;s understanding, rather than precise technical details.&lt;br /&gt;
&lt;br /&gt;
# [[Alice and Bob|Alice]] learns [[Alice and Bob|Bob&amp;#039;s]] public key &amp;lt;math&amp;gt;g^x&amp;lt;/math&amp;gt; through a public key infrastructure or some other distribution method.&amp;lt;br/&amp;gt;Bob knows his own private key &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Alice generates a fresh, ephemeral value &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;, and its associated public value &amp;lt;math&amp;gt;g^y&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Alice then computes a symmetric key &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; using this information and a [[key derivation function]] (KDF) as follows: &amp;lt;math&amp;gt;k = \textrm{KDF}(g^{xy})&amp;lt;/math&amp;gt;&lt;br /&gt;
# Alice computes her ciphertext &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; from her actual message &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; (by symmetric encryption of &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;) encrypted with the key &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; (using an [[Authenticated_encryption|authenticated encryption scheme]]) as follows: &amp;lt;math&amp;gt;c = E(k; m)&amp;lt;/math&amp;gt;&lt;br /&gt;
# Alice transmits (in a single message) both the public ephemeral &amp;lt;math&amp;gt;g^y&amp;lt;/math&amp;gt; and the ciphertext &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Bob, knowing &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;g^y&amp;lt;/math&amp;gt;, can now compute &amp;lt;math&amp;gt;k = \textrm{KDF}(g^{xy})&amp;lt;/math&amp;gt; and decrypt &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; from &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Note that the scheme does not provide Bob with any assurance as to who really sent the message: This scheme does nothing to stop anyone from pretending to be Alice.&lt;br /&gt;
&lt;br /&gt;
==Formal description of ECIES==&lt;br /&gt;
===Required information===&lt;br /&gt;
To send an encrypted message to Bob using ECIES, Alice needs the following information:&lt;br /&gt;
* The cryptography suite to be used, including a [[key derivation function]] (e.g., &amp;#039;&amp;#039;ANSI-X9.63-KDF with SHA-1 option&amp;#039;&amp;#039;), a [[message authentication code|message authentication code system]] (e.g., &amp;#039;&amp;#039;HMAC-SHA-1-160 with 160-bit keys&amp;#039;&amp;#039; or &amp;#039;&amp;#039;HMAC-SHA-1-80 with 80-bit keys&amp;#039;&amp;#039;) and a [[symmetric-key algorithm|symmetric encryption scheme]] (e.g., &amp;#039;&amp;#039;[[TDEA]] in [[cipher block chaining|CBC]] mode&amp;#039;&amp;#039; or &amp;#039;&amp;#039;XOR encryption scheme&amp;#039;&amp;#039;) — noted &amp;lt;math&amp;gt;E&amp;lt;/math&amp;gt;.&lt;br /&gt;
* The elliptic curve domain parameters: &amp;lt;math&amp;gt;(p,a,b,G,n,h)&amp;lt;/math&amp;gt; for a curve over a prime field or &amp;lt;math&amp;gt;(m,f(x),a,b,G,n,h)&amp;lt;/math&amp;gt; for a curve over a binary field.&lt;br /&gt;
* Bob&amp;#039;s public key &amp;lt;math&amp;gt;K_B&amp;lt;/math&amp;gt;, which Bob generates it as follows: &amp;lt;math&amp;gt;K_B = k_B G&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;k_B \in [1, n-1]&amp;lt;/math&amp;gt; is the private key he chooses at random.&lt;br /&gt;
* Some optional shared information: &amp;lt;math&amp;gt;S_1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;S_2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;O&amp;lt;/math&amp;gt; which denotes the [[Elliptic curve#The group law|point at infinity]].&lt;br /&gt;
&lt;br /&gt;
===Encryption===&lt;br /&gt;
To encrypt a message &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; Alice does the following:&lt;br /&gt;
# generates a random number &amp;lt;math&amp;gt;r \in [1, n-1]&amp;lt;/math&amp;gt; and calculates &amp;lt;math&amp;gt;R = r G&amp;lt;/math&amp;gt;&lt;br /&gt;
# derives a shared secret: &amp;lt;math&amp;gt;S = P_x&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;P = (P_x, P_y) = r K_B&amp;lt;/math&amp;gt; (and &amp;lt;math&amp;gt;P \ne O&amp;lt;/math&amp;gt;)&lt;br /&gt;
# uses a [[Key derivation function|KDF]] to derive symmetric encryption keys and [[Message authentication code|MAC]] keys: &amp;lt;math&amp;gt;k_E \| k_M = \textrm{KDF}(S\|S_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
# encrypts the message: &amp;lt;math&amp;gt;c = E(k_E; m)&amp;lt;/math&amp;gt;&lt;br /&gt;
# computes the tag of encrypted message and &amp;lt;math&amp;gt;S_2&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;d = \textrm{MAC}(k_M; c \| S_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
# outputs &amp;lt;math&amp;gt;R \| c \| d&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Decryption===&lt;br /&gt;
To decrypt the ciphertext &amp;lt;math&amp;gt;R \| c \| d&amp;lt;/math&amp;gt; Bob does the following:&lt;br /&gt;
# derives the shared secret: &amp;lt;math&amp;gt;S = P_x&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;P = (P_x, P_y) = k_B R&amp;lt;/math&amp;gt; (it is the same as the one Alice derived because &amp;lt;math&amp;gt;P = k_B R = k_B r G = r k_B G = r K_B&amp;lt;/math&amp;gt;), or outputs &amp;#039;&amp;#039;failed&amp;#039;&amp;#039; if &amp;lt;math&amp;gt;P=O&amp;lt;/math&amp;gt;&lt;br /&gt;
# derives keys the same way as Alice did: &amp;lt;math&amp;gt;k_E \| k_M = \textrm{KDF}(S\|S_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
# uses [[Message authentication code|MAC]] to check the tag and outputs &amp;#039;&amp;#039;failed&amp;#039;&amp;#039; if &amp;lt;math&amp;gt;d \ne \textrm{MAC}(k_M; c \| S_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
# uses symmetric encryption scheme to decrypt the message &amp;lt;math&amp;gt;m = E^{-1}(k_E; c)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [[SECG]], [http://www.secg.org/sec1-v2.pdf Standards for efficient cryptography, SEC 1: Elliptic Curve Cryptography], Version 2.0, May 21, 2009.&lt;br /&gt;
* Gayoso Martínez, Hernández Encinas, Sánchez Ávila: &amp;#039;&amp;#039;[https://www.researchgate.net/publication/255970113_A_Survey_of_the_Elliptic_Curve_Integrated_Encryption_Scheme A Survey of the Elliptic Curve Integrated Encryption Scheme]&amp;#039;&amp;#039;, Journal of Computer Science and Engineering, 2, 2 (2010), 7–13.&lt;br /&gt;
* Ladar Levison: [http://article.gmane.org/gmane.comp.encryption.openssl.devel/17997/ Code for using ECIES to protect data (ECC + AES + SHA)], openssl-devel mailing list, August 6, 2010.&lt;br /&gt;
* [[IEEE_P1363#Traditional_public-key_cryptography_(IEEE_Std_1363-2000_and_1363a-2004)|IEEE 1363a]] (non-public standard) specifies DLIES and ECIES&lt;br /&gt;
* ANSI X9.63 (non-public standard)&lt;br /&gt;
* ISO/IEC 18033-2 (non-public standard)&lt;br /&gt;
* Victor Shoup, [http://www.shoup.net/papers/iso-2_1.pdf A proposal for an ISO standard for public key encryption], Version 2.1, December 20, 2001.&lt;br /&gt;
* Abdalla, Michel and Bellare, Mihir and Rogaway, Phillip: [http://web.cs.ucdavis.edu/~rogaway/papers/dhies.pdf DHIES: An Encryption Scheme Based on the Diffie–Hellman Problem], IACR Cryptology ePrint Archive, 1999.&lt;br /&gt;
&lt;br /&gt;
{{Cryptography navbox|public-key}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Cryptographic protocols]]&lt;/div&gt;</summary>
		<author><name>imported&gt;LR.127</name></author>
	</entry>
</feed>