fbpx
Wikipedia

Elliptic-curve Diffie–Hellman

Elliptic-curve Diffie–Hellman (ECDH) is a key agreement protocol that allows two parties, each having an elliptic-curve public–private key pair, to establish a shared secret over an insecure channel.[1][2][3] This shared secret may be directly used as a key, or to derive another key. The key, or the derived key, can then be used to encrypt subsequent communications using a symmetric-key cipher. It is a variant of the Diffie–Hellman protocol using elliptic-curve cryptography.

Key establishment protocol edit

The following example illustrates how a shared key is established. Suppose Alice wants to establish a shared key with Bob, but the only channel available for them may be eavesdropped by a third party. Initially, the domain parameters (that is,   in the prime case or   in the binary case) must be agreed upon. Also, each party must have a key pair suitable for elliptic curve cryptography, consisting of a private key   (a randomly selected integer in the interval  ) and a public key represented by a point   (where  , that is, the result of adding   to itself   times). Let Alice's key pair be   and Bob's key pair be  . Each party must know the other party's public key prior to execution of the protocol.

Alice computes point  . Bob computes point  . The shared secret is   (the x coordinate of the point). Most standardized protocols based on ECDH derive a symmetric key from   using some hash-based key derivation function.

The shared secret calculated by both parties is equal, because  .

The only information about her key that Alice initially exposes is her public key. So, no party except Alice can determine Alice's private key (Alice of course knows it by having selected it), unless that party can solve the elliptic curve discrete logarithm problem. Bob's private key is similarly secure. No party other than Alice or Bob can compute the shared secret, unless that party can solve the elliptic curve Diffie–Hellman problem.

The public keys are either static (and trusted, say via a certificate) or ephemeral (also known as ECDHE, where final 'E' stands for "ephemeral"). Ephemeral keys are temporary and not necessarily authenticated, so if authentication is desired, authenticity assurances must be obtained by other means. Authentication is necessary to avoid man-in-the-middle attacks. If one of either Alice's or Bob's public keys is static, then man-in-the-middle attacks are thwarted. Static public keys provide neither forward secrecy nor key-compromise impersonation resilience, among other advanced security properties. Holders of static private keys should validate the other public key, and should apply a secure key derivation function to the raw Diffie–Hellman shared secret to avoid leaking information about the static private key. For schemes with other security properties, see MQV.

If Alice maliciously chooses invalid curve points for her key and Bob does not validate that Alice's points are part of the selected group, she can collect enough residues of Bob's key to derive his private key. Several TLS libraries were found to be vulnerable to this attack.[4]

The shared secret is uniformly distributed on a subset of   of size  . For this reason, the secret should not be used directly as a symmetric key, but it can be used as entropy for a key derivation function.

Software edit

See also edit

References edit

  1. ^ NIST, Special Publication 800-56A, Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography, March, 2006.
  2. ^ Certicom Research, Standards for efficient cryptography, SEC 1: Elliptic Curve Cryptography, Version 2.0, May 21, 2009.
  3. ^ NSA Suite B Cryptography, Suite B Implementers' Guide to NIST SP 800-56A 2016-03-06 at the Wayback Machine, July 28, 2009.
  4. ^ Tibor Jager; Jorg Schwenk; Juraj Somorovsky (2015-09-04). "Practical Invalid Curve Attacks on TLS-ECDH" (PDF). European Symposium on Research in Computer Security (ESORICS'15).
  5. ^ JI (13 October 2015). . LINE Engineers' Blog. LINE Corporation. Archived from the original on 1 February 2019. Retrieved 5 February 2018.

elliptic, curve, diffie, hellman, ecdh, agreement, protocol, that, allows, parties, each, having, elliptic, curve, public, private, pair, establish, shared, secret, over, insecure, channel, this, shared, secret, directly, used, derive, another, derived, then, . Elliptic curve Diffie Hellman ECDH is a key agreement protocol that allows two parties each having an elliptic curve public private key pair to establish a shared secret over an insecure channel 1 2 3 This shared secret may be directly used as a key or to derive another key The key or the derived key can then be used to encrypt subsequent communications using a symmetric key cipher It is a variant of the Diffie Hellman protocol using elliptic curve cryptography Contents 1 Key establishment protocol 2 Software 3 See also 4 ReferencesKey establishment protocol editThe following example illustrates how a shared key is established Suppose Alice wants to establish a shared key with Bob but the only channel available for them may be eavesdropped by a third party Initially the domain parameters that is p a b G n h displaystyle p a b G n h nbsp in the prime case or m f x a b G n h displaystyle m f x a b G n h nbsp in the binary case must be agreed upon Also each party must have a key pair suitable for elliptic curve cryptography consisting of a private key d displaystyle d nbsp a randomly selected integer in the interval 1 n 1 displaystyle 1 n 1 nbsp and a public key represented by a point Q displaystyle Q nbsp where Q d G displaystyle Q d cdot G nbsp that is the result of adding G displaystyle G nbsp to itself d displaystyle d nbsp times Let Alice s key pair be dA QA displaystyle d text A Q text A nbsp and Bob s key pair be dB QB displaystyle d text B Q text B nbsp Each party must know the other party s public key prior to execution of the protocol Alice computes point xk yk dA QB displaystyle x k y k d text A cdot Q text B nbsp Bob computes point xk yk dB QA displaystyle x k y k d text B cdot Q text A nbsp The shared secret is xk displaystyle x k nbsp the x coordinate of the point Most standardized protocols based on ECDH derive a symmetric key from xk displaystyle x k nbsp using some hash based key derivation function The shared secret calculated by both parties is equal because dA QB dA dB G dB dA G dB QA displaystyle d text A cdot Q text B d text A cdot d text B cdot G d text B cdot d text A cdot G d text B cdot Q text A nbsp The only information about her key that Alice initially exposes is her public key So no party except Alice can determine Alice s private key Alice of course knows it by having selected it unless that party can solve the elliptic curve discrete logarithm problem Bob s private key is similarly secure No party other than Alice or Bob can compute the shared secret unless that party can solve the elliptic curve Diffie Hellman problem The public keys are either static and trusted say via a certificate or ephemeral also known as ECDHE where final E stands for ephemeral Ephemeral keys are temporary and not necessarily authenticated so if authentication is desired authenticity assurances must be obtained by other means Authentication is necessary to avoid man in the middle attacks If one of either Alice s or Bob s public keys is static then man in the middle attacks are thwarted Static public keys provide neither forward secrecy nor key compromise impersonation resilience among other advanced security properties Holders of static private keys should validate the other public key and should apply a secure key derivation function to the raw Diffie Hellman shared secret to avoid leaking information about the static private key For schemes with other security properties see MQV If Alice maliciously chooses invalid curve points for her key and Bob does not validate that Alice s points are part of the selected group she can collect enough residues of Bob s key to derive his private key Several TLS libraries were found to be vulnerable to this attack 4 The shared secret is uniformly distributed on a subset of 0 p displaystyle 0 p nbsp of size n 1 2 displaystyle n 1 2 nbsp For this reason the secret should not be used directly as a symmetric key but it can be used as entropy for a key derivation function Software editCurve25519 is a popular set of elliptic curve parameters and reference implementation by Daniel J Bernstein in C Bindings and alternative implementations are also available LINE messenger app has used the ECDH protocol for its Letter Sealing end to end encryption of all messages sent through said app since October 2015 5 Signal Protocol uses ECDH to obtain post compromise security Implementations of this protocol are found in Signal WhatsApp Facebook Messenger and Skype See also editDiffie Hellman key exchange Forward secrecyReferences edit NIST Special Publication 800 56A Recommendation for Pair Wise Key Establishment Schemes Using Discrete Logarithm Cryptography March 2006 Certicom Research Standards for efficient cryptography SEC 1 Elliptic Curve Cryptography Version 2 0 May 21 2009 NSA Suite B Cryptography Suite B Implementers Guide to NIST SP 800 56A Archived 2016 03 06 at the Wayback Machine July 28 2009 Tibor Jager Jorg Schwenk Juraj Somorovsky 2015 09 04 Practical Invalid Curve Attacks on TLS ECDH PDF European Symposium on Research in Computer Security ESORICS 15 JI 13 October 2015 New generation of safe messaging Letter Sealing LINE Engineers Blog LINE Corporation Archived from the original on 1 February 2019 Retrieved 5 February 2018 Retrieved from https en wikipedia org w index php title Elliptic curve Diffie Hellman amp oldid 1215158813, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.