Elliptic curve Diffie – Hellman protocol ( ECDH ) is a cryptographic protocol that allows two parties with public / private key pairs on elliptic curves to obtain a shared secret key using a communication channel that is not protected from listening [1] [2] . This secret key can be used both for encryption of further exchange, and for the formation of a new key , which can then be used for subsequent exchange of information using symmetric encryption algorithms. This is a variation of the Diffie-Hellman protocol using elliptical cryptography [3] .
Content
Algorithm Description
Suppose there are two subscribers: Alice and Bob . Suppose Alice wants to create a shared secret key with Bob, but the only channel available between them can be eavesdropped by a third party. Initially, a set of parameters ( for the general case and for the characteristic field ) Each side must also have a key pair consisting of a private key ( randomly selected integer from the interval ) and public key (Where Is the result of doing times an item sum operation ) Let then a pair of Alice’s keys be and a pair of bob . Before executing the protocol, the parties must exchange public keys.
Alice calculates . Bob is calculating . Shared Secret - (x-coordinate of the resulting point). Most standard ECDH-based protocols use key generation functions to obtain a symmetric key from a value [4] [5] .
The values calculated by the participants are equal, since . Of all the information associated with her private key, Alice reports only her public key. Thus, no one except Alice can determine her private key, except for a participant who can solve the problem of discrete logarithm on an elliptic curve . Bob's private key is likewise protected. No one, except Alice or Bob, can calculate their common secret, except for a participant who can solve the Diffie – Hellman problem [6] .
Public keys are either static (and confirmed by a certificate) or ephemeral (abbreviated ECDHE). Ephemeral keys are used temporarily and do not necessarily authenticate the sender, so if authentication is required, authentication must be obtained in another way [3] . Authentication is necessary to eliminate the possibility of an intermediary attack . If Alice or Bob use a static key, the danger of an intermediary attack is excluded, but neither direct secrecy nor resistance to spoofing when a key is compromised can be ensured, as well as some other attack resistance properties. Users of static private keys are forced to check someone else's public key and use the key generation function for a shared secret to prevent leakage of information about the statically private key [7] . For encryption with other properties, the MQV protocol is often used.
When using a shared secret as a key, it is often desirable to hash a secret in order to get rid of vulnerabilities that arose after applying the protocol [7] .
Example [8]
Elliptic curve E over the field has order where P49 is a prime number consisting of 49 digits in decimal notation.
We choose an irreducible polynomial
And take the point of the elliptic curve
- .
Check that its order is not equal to 2
- .
So its order is equal to the order of the group , namely the number , and it can be used to build the key. Let be , . Then the public keys of the protocol participants are calculated as
- .
- .
A common secret will be equal to:
- .
The value (or part of it) is used as the key to the symmetric system .
Software
- Curve25519 is a set of elliptical parameters and references implemented by Daniel J. Bernstein in C language.
See also
- Mqv
- Elliptical cryptography
- Diffie-Hellman Protocol
Notes
- ↑ An Efficient Protocol for Authenticated Key Agreement, 2003 , p. 119.
- ↑ Barker et al., 2013 , p. eleven.
- ↑ 1 2 Suite B Implementer's Guide to NIST SP 800-56A, 2009 , p. eight.
- ↑ SEC 1: Elliptic Curve Cryptography, 2009 , p. 63.
- ↑ Barker et al., 2013 , p. 40.
- ↑ Barker et al., 2013 , p. 20.
- ↑ 1 2 SEC 1: Elliptic Curve Cryptography, 2009 , p. thirty.
- ↑ An elementary introduction to elliptical cryptography. Elliptic Curve Cryptography Protocols, 2006 , p. 85.
Literature
- Elaine Barker, Lily Chen, Allen Roginsky, Miles Smid. Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography // http://nvlpubs.nist.gov/ . - National Institute of Standards and Technology, 2013. - ISBN 1495447502 .
- Standards for Efficient Cryptography Group (SECG). SEC 1: Elliptic Curve Cryptography : [ eng. ] . - http://www.secg.org . - Certicom Corp, 2009. - P. 15-28, 56-58.
- National Institute of Standards and Technology (NIST). Suite B Implementer's Guide to NIST SP 800-56A : [ eng. ] . - https://www.nsa.gov . - 2009.
- Laurie Law. An Efficient Protocol for Authenticated Key Agreement: [ eng. ] / Laurie Law, Alfred Menezes , Minghua Qu ... [et al. ] . - Designs, Codes and Cryptography. - Kluwer Academic Publishers, 2003. - Vol. 28, no. 2. - P. 119–134. - ISSN 0925-1022 . - DOI : 10.1023 / A: 1022595222606 .
- Bolotov A. A. , Gashkov S. B. , Frolov A. B. Chapter 2. Protocols on elliptic curves // Elementary introduction to elliptic cryptography. Cryptography protocols on elliptic curves. - M .: KomKniga, 2006 .-- S. 83-86. - ISBN 5-484-00444-6 , BBK 32.81, UDC 512.8.