Clever Geek Handbook
📜 ⬆️ ⬇️

Diffie-Hellman Protocol on Elliptic Curves

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 ((p,a,b,G,n,h) {\ displaystyle (p, a, b, G, n, h)}   for the general case and(m,f(x),a,b,G,n,h) {\ displaystyle (m, f (x), a, b, G, n, h)}   for the characteristic field2 {\ displaystyle 2}   ) Each side must also have a key pair consisting of a private keyd {\ displaystyle d}   ( randomly selected integer from the interval[one,n-one] {\ displaystyle [1, n-1]}   ) and public keyQ {\ displaystyle Q}   (WhereQ=d⋅G {\ displaystyle Q = d \ cdot G}   Is the result of doingd {\ displaystyle d}   times an item sum operationG {\ displaystyle G}   ) Let then a pair of Alice’s keys be(dA,QA) {\ displaystyle (d_ {A}, Q_ {A})}   and a pair of bob(dB,QB) {\ displaystyle (d_ {B}, Q_ {B})}   . Before executing the protocol, the parties must exchange public keys.

Alice calculates(xk,yk)=dA⋅QB {\ displaystyle (x_ {k}, y_ {k}) = d_ {A} \ cdot Q_ {B}}   . Bob is calculating(xk,yk)=dB⋅QA {\ displaystyle (x_ {k}, y_ {k}) = d_ {B} \ cdot Q_ {A}}   . Shared Secret -xk {\ displaystyle x_ {k}}   (x-coordinate of the resulting point). Most standard ECDH-based protocols use key generation functions to obtain a symmetric key from a valuexk {\ displaystyle x_ {k}}   [4] [5] .

The values ​​calculated by the participants are equal, sincedA⋅QB=dA⋅dB⋅G=dB⋅dA⋅G=dB⋅QA {\ displaystyle d_ {A} \ cdot Q_ {B} = d_ {A} \ cdot d_ {B} \ cdot G = d_ {B} \ cdot d_ {A} \ cdot G = d_ {B} \ cdot Q_ { A}}   . 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 fieldGF(2163) {\ displaystyle GF (2 ^ {163})}   has order2⋅P49 {\ displaystyle 2 \ cdot P49}   where P49 is a prime number consisting of 49 digits in decimal notation.

E:Y2+XY=X3+X2+one{\ displaystyle E: \ quad Y ^ {2} + XY = X ^ {3} + X ^ {2} +1}  

We choose an irreducible polynomial

one+X+X2+Xeight+X163{\ displaystyle 1 + X + X ^ {2} + X ^ {8} + X ^ {163}}  

And take the point of the elliptic curve

P=(d42149e09429df4563ec1816488c92de89f93a9b2,ccd18d6cc3042cfourc17a213506345c80965ac19476)≠0{\ displaystyle P = (d42149e09429df4563ec1816488c92de89f93a9b2, ~ ccd18d6cc3042c4c17a213506345c80965ac19476) \ neq 0}   .

Check that its order is not equal to 2

2P=(ccd18d6cc3042cfourc17a213506345c809bfiveaconed476,835a2f56b88d6a249bfourbd2a7550a4375e531deighta37){\ displaystyle 2P = (ccd18d6cc3042c4c17a213506345c809b5ac1d476, ~ 835a2f56b88d6a249b4bd2a7550a4375e531d8a37)}   .

So its order is equal to the order of the group2⋅P49 {\ displaystyle 2 \ cdot P49}   , namely the numberP49 {\ displaystyle P49}   , and it can be used to build the key. Let bekA=12 {\ displaystyle k_ {A} = 12}   ,kb=123 {\ displaystyle k_ {b} = 123}   . Then the public keys of the protocol participants are calculated as

kA⋅P=12⋅P=(bd9776bbe87aeightb1024be2e415952f527eee928b43,c67a28ed7b137e756c37654f186a71bf64efiveac546){\ displaystyle k_ {A} \ cdot P = 12 \ cdot P = (bd9776bbe87a8b1024be2e415952f527eee928b43, ~ c67a28ed7b137e756c37654f186a71bf64e5ac546)}   .
kB⋅P=123⋅P=(a5684e246044fc126e9832d17513387e474290547,568b4137f09ffivef79aeighta6b0fe44cdf41deighte68ae2c6){\ displaystyle k_ {B} \ cdot P = 123 \ cdot P = (a5684e246044fc126e9832d17513387e474290547, ~ 568b4137f09f5f79a8a6b0fe44cdf41d8e68ae2c6)}   .

A common secret will be equal to:

kB⋅kA⋅P=kA⋅kB⋅P=12⋅123⋅P=(bb7856cece13c71919534878bcb6f3a887d613c92,f661ffdfeonebaeightcboneb2ad17b6550c65aa6dfourf07f41){\ displaystyle k_ {B} \ cdot k_ {A} \ cdot P = k_ {A} \ cdot k_ {B} \ cdot P = 12 \ cdot 123 \ cdot P = (bb7856cece13c71919534878bcb6f3a887d613c92, ~ f661ffbffbdb1651fdbbfad   .

The value (or part of it) is used as the key to the symmetric systemx=bb7856cece13c71919534878bcb6f3a887d613c92 {\ displaystyle x = bb7856cece13c71919534878bcb6f3a887d613c92}   .

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

  1. ↑ An Efficient Protocol for Authenticated Key Agreement, 2003 , p. 119.
  2. ↑ Barker et al., 2013 , p. eleven.
  3. ↑ 1 2 Suite B Implementer's Guide to NIST SP 800-56A, 2009 , p. eight.
  4. ↑ SEC 1: Elliptic Curve Cryptography, 2009 , p. 63.
  5. ↑ Barker et al., 2013 , p. 40.
  6. ↑ Barker et al., 2013 , p. 20.
  7. ↑ 1 2 SEC 1: Elliptic Curve Cryptography, 2009 , p. thirty.
  8. ↑ 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.
Source - https://ru.wikipedia.org/w/index.php?title= Protocol Diffie_— Hellman_ on the Elliptical Curves&oldid = 101866263


More articles:

  • Glacier Express
  • Algolsheim
  • Zyong Chyong Thien Lee
  • Lawyer (film, 2013)
  • Roshpan
  • Stockton, Donald
  • Dorothy Phillips
  • Samuel Rabin
  • Air Force 2nd Shock Army
  • Renodeus

All articles

Clever Geek | 2019