EdDSA

Last updated
EdDSA
General
Designers Daniel J. Bernstein, Niels Duif, Tanja Lange, Peter Schwabe, Bo-Yin Yang, et al.
First published26 September 2011(13 years ago) (2011-09-26)
Detail
Structure Elliptic-curve cryptography

In public-key cryptography, Edwards-curve Digital Signature Algorithm (EdDSA) is a digital signature scheme using a variant of Schnorr signature based on twisted Edwards curves. [1] It is designed to be faster than existing digital signature schemes without sacrificing security. It was developed by a team including Daniel J. Bernstein, Niels Duif, Tanja Lange, Peter Schwabe, and Bo-Yin Yang. [2] The reference implementation is public-domain software. [3]

Contents

Summary

The following is a simplified description of EdDSA, ignoring details of encoding integers and curve points as bit strings; the full details are in the papers and RFC. [4] [2] [1]

An EdDSA signature scheme is a choice: [4] :1–2 [2] :5–6 [1] :5–7

These parameters are common to all users of the EdDSA signature scheme. The security of the EdDSA signature scheme depends critically on the choices of parameters, except for the arbitrary choice of base point—for example, Pollard's rho algorithm for logarithms is expected to take approximately curve additions before it can compute a discrete logarithm, [5] so must be large enough for this to be infeasible, and is typically taken to exceed 2200. [6] The choice of is limited by the choice of , since by Hasse's theorem, cannot differ from by more than . The hash function is normally modelled as a random oracle in formal analyses of EdDSA's security.

Within an EdDSA signature scheme,

Public key
An EdDSA public key is a curve point , encoded in bits.
Signature verification
An EdDSA signature on a message by public key is the pair , encoded in bits, of a curve point and an integer satisfying the following verification equation, where denotes concatenation:

Private key
An EdDSA private key is a -bit string which should be chosen uniformly at random. The corresponding public key is , where is the least significant bits of interpreted as an integer in little-endian.
Signing
The signature on a message is deterministically computed as where for , and This satisfies the verification equation

Ed25519

Ed25519 is the EdDSA signature scheme using SHA-512 (SHA-2) and an elliptic curve related to Curve25519 [2] where

The twisted Edwards curve is known as edwards25519, [7] [1] and is birationally equivalent to the Montgomery curve known as Curve25519. The equivalence is [2] [7] [8]

Performance

The original team has optimized Ed25519 for the x86-64 Nehalem/Westmere processor family. Verification can be performed in batches of 64 signatures for even greater throughput. Ed25519 is intended to provide attack resistance comparable to quality 128-bit symmetric ciphers. [9]

Public keys are 256 bits long and signatures are 512 bits long. [10]

Secure coding

Ed25519 is designed to avoid implementations that use branch conditions or array indices that depend on secret data, [2] :2 [1] :40 in order to mitigate side-channel attacks.

As with other discrete-log-based signature schemes, EdDSA uses a secret value called a nonce unique to each signature. In the signature schemes DSA and ECDSA, this nonce is traditionally generated randomly for each signature—and if the random number generator is ever broken and predictable when making a signature, the signature can leak the private key, as happened with the Sony PlayStation 3 firmware update signing key. [11] [12] [13] [14]

In contrast, EdDSA chooses the nonce deterministically as the hash of a part of the private key and the message. Thus, once a private key is generated, EdDSA has no further need for a random number generator in order to make signatures, and there is no danger that a broken random number generator used to make a signature will reveal the private key. [2] :8

Standardization and implementation inconsistencies

Note that there are two standardization efforts for EdDSA, one from IETF, an informational RFC   8032 and one from NIST as part of FIPS 186-5. [15] The differences between the standards have been analyzed, [16] [17] and test vectors are available. [18]

Software

Notable uses of Ed25519 include OpenSSH, [19] GnuPG [20] and various alternatives, and the signify tool by OpenBSD. [21] Usage of Ed25519 (and Ed448) in the SSH protocol has been standardized. [22] In 2023 the final version of the FIPS 186-5 standard included deterministic Ed25519 as an approved signature scheme. [15]

Ed448

Ed448 is the EdDSA signature scheme defined in RFC   8032 using the hash function SHAKE256 and the elliptic curve edwards448, an (untwisted) Edwards curve related to Curve448 in RFC   7748. Ed448 has also been approved in the final version of the FIPS 186-5 standard. [15]

Related Research Articles

Elliptic-curve cryptography (ECC) is an approach to public-key cryptography based on the algebraic structure of elliptic curves over finite fields. ECC allows smaller keys to provide equivalent security, compared to cryptosystems based on modular exponentiation in Galois fields, such as the RSA cryptosystem and ElGamal cryptosystem.

The Digital Signature Algorithm (DSA) is a public-key cryptosystem and Federal Information Processing Standard for digital signatures, based on the mathematical concept of modular exponentiation and the discrete logarithm problem. In a public-key cryptosystem, two keys are generated: data can only be encrypted with the public key and encrypted data can only be decrypted with the private key. DSA is a variant of the Schnorr and ElGamal signature schemes.

<span class="mw-page-title-main">Daniel J. Bernstein</span> American mathematician, cryptologist and computer scientist (born 1971)

Daniel Julius Bernstein is an American mathematician, cryptologist, and computer scientist. He is a visiting professor at CASA at Ruhr University Bochum, as well as a research professor of Computer Science at the University of Illinois at Chicago. Before this, he was a visiting professor in the department of mathematics and computer science at the Eindhoven University of Technology.

A commitment scheme is a cryptographic primitive that allows one to commit to a chosen value while keeping it hidden to others, with the ability to reveal the committed value later. Commitment schemes are designed so that a party cannot change the value or statement after they have committed to it: that is, commitment schemes are binding. Commitment schemes have important applications in a number of cryptographic protocols including secure coin flipping, zero-knowledge proofs, and secure computation.

In cryptography, the Elliptic Curve Digital Signature Algorithm (ECDSA) offers a variant of the Digital Signature Algorithm (DSA) which uses elliptic-curve cryptography.

In cryptography, a Schnorr signature is a digital signature produced by the Schnorr signature algorithm that was described by Claus Schnorr. It is a digital signature scheme known for its simplicity, among the first whose security is based on the intractability of certain discrete logarithm problems. It is efficient and generates short signatures. It was covered by U.S. patent 4,995,082 which expired in February 2010.

Poly1305 is a universal hash family designed by Daniel J. Bernstein in 2002 for use in cryptography.

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. 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.

<span class="mw-page-title-main">Key encapsulation mechanism</span> Public-key cryptosystem

In cryptography, a key encapsulation mechanism, or KEM, is a public-key cryptosystem that allows a sender to generate a short secret key and transmit it to a receiver securely, in spite of eavesdropping and intercepting adversaries.

Dual_EC_DRBG is an algorithm that was presented as a cryptographically secure pseudorandom number generator (CSPRNG) using methods in elliptic curve cryptography. Despite wide public criticism, including the public identification of the possibility that the National Security Agency put a backdoor into a recommended implementation, it was, for seven years, one of four CSPRNGs standardized in NIST SP 800-90A as originally published circa June 2006, until it was withdrawn in 2014.

In 1998 Gerhard Frey firstly proposed using trace zero varieties for cryptographic purpose. These varieties are subgroups of the divisor class group on a low genus hyperelliptic curve defined over a finite field. These groups can be used to establish asymmetric cryptography using the discrete logarithm problem as cryptographic primitive.

In cryptography, Curve25519 is an elliptic curve used in elliptic-curve cryptography (ECC) offering 128 bits of security and designed for use with the Elliptic-curve Diffie–Hellman (ECDH) key agreement scheme. It is one of the fastest curves in ECC, and is not covered by any known patents. The reference implementation is public domain software.

A BLS digital signature, also known as Boneh–Lynn–Shacham (BLS), is a cryptographic signature scheme which allows a user to verify that a signer is authentic.

An important aspect in the study of elliptic curves is devising effective ways of counting points on the curve. There have been several approaches to do so, and the algorithms devised have proved to be useful tools in the study of various fields such as number theory, and more recently in cryptography and Digital Signature Authentication. While in number theory they have important consequences in the solving of Diophantine equations, with respect to cryptography, they enable us to make effective use of the difficulty of the discrete logarithm problem (DLP) for the group , of elliptic curves over a finite field , where q = pk and p is a prime. The DLP, as it has come to be known, is a widely used approach to public key cryptography, and the difficulty in solving this problem determines the level of security of the cryptosystem. This article covers algorithms to count points on elliptic curves over fields of large characteristic, in particular p > 3. For curves over fields of small characteristic more efficient algorithms based on p-adic methods exist.

<span class="mw-page-title-main">Twisted Edwards curve</span>

In algebraic geometry, the twisted Edwards curves are plane models of elliptic curves, a generalisation of Edwards curves introduced by Bernstein, Birkner, Joye, Lange and Peters in 2008. The curve set is named after mathematician Harold M. Edwards. Elliptic curves are important in public key cryptography and twisted Edwards curves are at the heart of an electronic signature scheme called EdDSA that offers high performance while avoiding security problems that have surfaced in other digital signature schemes.

Post-quantum cryptography (PQC), sometimes referred to as quantum-proof, quantum-safe, or quantum-resistant, is the development of cryptographic algorithms that are currently thought to be secure against a cryptanalytic attack by a quantum computer. Most widely-used public-key algorithms rely on the difficulty of one of three mathematical problems: the integer factorization problem, the discrete logarithm problem or the elliptic-curve discrete logarithm problem. All of these problems could be easily solved on a sufficiently powerful quantum computer running Shor's algorithm or even faster and less demanding alternatives.

In discrete mathematics, ideal lattices are a special class of lattices and a generalization of cyclic lattices. Ideal lattices naturally occur in many parts of number theory, but also in other areas. In particular, they have a significant place in cryptography. Micciancio defined a generalization of cyclic lattices as ideal lattices. They can be used in cryptosystems to decrease by a square root the number of parameters necessary to describe a lattice, making them more efficient. Ideal lattices are a new concept, but similar lattice classes have been used for a long time. For example, cyclic lattices, a special case of ideal lattices, are used in NTRUEncrypt and NTRUSign.

Network coding has been shown to optimally use bandwidth in a network, maximizing information flow but the scheme is very inherently vulnerable to pollution attacks by malicious nodes in the network. A node injecting garbage can quickly affect many receivers. The pollution of network packets spreads quickly since the output of honest node is corrupted if at least one of the incoming packets is corrupted.

The Sakai–Kasahara scheme, also known as the Sakai–Kasahara key encryption algorithm (SAKKE), is an identity-based encryption (IBE) system proposed by Ryuichi Sakai and Masao Kasahara in 2003. Alongside the Boneh–Franklin scheme, this is one of a small number of commercially implemented identity-based encryption schemes. It is an application of pairings over elliptic curves and finite fields. A security proof for the algorithm was produced in 2005 by Chen and Cheng. SAKKE is described in Internet Engineering Task Force (IETF) RFC 6508.

Supersingular isogeny Diffie–Hellman key exchange is an insecure proposal for a post-quantum cryptographic algorithm to establish a secret key between two parties over an untrusted communications channel. It is analogous to the Diffie–Hellman key exchange, but is based on walks in a supersingular isogeny graph and was designed to resist cryptanalytic attack by an adversary in possession of a quantum computer. Before it was broken, SIDH boasted one of the smallest key sizes of all post-quantum key exchanges; with compression, SIDH used 2688-bit public keys at a 128-bit quantum security level. SIDH also distinguishes itself from similar systems such as NTRU and Ring-LWE by supporting perfect forward secrecy, a property that prevents compromised long-term keys from compromising the confidentiality of old communication sessions. These properties seemed to make SIDH a natural candidate to replace Diffie–Hellman (DHE) and elliptic curve Diffie–Hellman (ECDHE), which are widely used in Internet communication. However, SIDH is vulnerable to a devastating key-recovery attack published in July 2022 and is therefore insecure. The attack does not require a quantum computer.

References

  1. 1 2 3 4 5 Josefsson, S.; Liusvaara, I. (January 2017). Edwards-Curve Digital Signature Algorithm (EdDSA). IRTF. doi: 10.17487/RFC8032 . ISSN   2070-1721. RFC 8032 . Retrieved 2022-07-11.
  2. 1 2 3 4 5 6 7 Bernstein, Daniel J.; Duif, Niels; Lange, Tanja; Schwabe, Peter; Bo-Yin Yang (2012). "High-speed high-security signatures" (PDF). Journal of Cryptographic Engineering. 2 (2): 77–89. doi: 10.1007/s13389-012-0027-1 . S2CID   945254.
  3. "Software". 2015-06-11. Retrieved 2016-10-07. The Ed25519 software is in the public domain.
  4. 1 2 Daniel J. Bernstein; Simon Josefsson; Tanja Lange; Peter Schwabe; Bo-Yin Yang (2015-07-04). EdDSA for more curves (PDF) (Technical report). Retrieved 2016-11-14.
  5. Daniel J. Bernstein; Tanja Lange; Peter Schwabe (2011-01-01). On the correct use of the negation map in the Pollard rho method (Technical report). IACR Cryptology ePrint Archive. 2011/003. Retrieved 2016-11-14.
  6. Bernstein, Daniel J.; Lange, Tanja. "ECDLP Security: Rho". SafeCurves: choosing safe curves for elliptic-curve cryptography. Retrieved 2016-11-16.
  7. 1 2 Langley, A.; Hamburg, M.; Turner, S. (January 2016). Elliptic Curves for Security. IETF. doi: 10.17487/RFC7748 . ISSN   2070-1721. RFC 7748 . Retrieved 2024-11-12.
  8. Bernstein, Daniel J.; Lange, Tanja (2007). Kurosawa, Kaoru (ed.). Faster addition and doubling on elliptic curves. Advances in cryptology—ASIACRYPT. Lecture Notes in Computer Science. Vol. 4833. Berlin: Springer. pp. 29–50. doi: 10.1007/978-3-540-76900-2_3 . ISBN   978-3-540-76899-9. MR   2565722.
  9. Bernstein, Daniel J. (2017-01-22). "Ed25519: high-speed high-security signatures" . Retrieved 2019-09-27. This system has a 2^128 security target; breaking it has similar difficulty to breaking NIST P-256, RSA with ~3000-bit keys, strong 128-bit block ciphers, etc.
  10. Bernstein, Daniel J. (2017-01-22). "Ed25519: high-speed high-security signatures" . Retrieved 2020-06-01. Signatures fit into 64 bytes. […] Public keys consume only 32 bytes.
  11. Johnston, Casey (2010-12-30). "PS3 hacked through poor cryptography implementation". Ars Technica. Retrieved 2016-11-15.
  12. fail0verflow (2010-12-29). Console Hacking 2010: PS3 Epic Fail (PDF). Chaos Communication Congress. Archived from the original (PDF) on 2018-10-26. Retrieved 2016-11-15.
  13. "27th Chaos Communication Congress: Console Hacking 2010: PS3 Epic Fail" (PDF). Retrieved 2019-08-04.
  14. Buchanan, Bill (2018-11-12). "Not Playing Randomly: The Sony PS3 and Bitcoin Crypto Hacks. Watch those random number generators". Medium . Archived from the original on 2018-11-30. Retrieved 2024-03-11.
  15. 1 2 3 Moody, Dustin (2023-02-03). FIPS 186-5: Digital Signature Standard (DSS). NIST. doi: 10.6028/NIST.FIPS.186-5 . S2CID   256480883 . Retrieved 2023-03-04.
  16. Chalkias, Konstantinos; Garillot, Francois; Nikolaenko, Valeria (2020-10-01). Taming the many EdDSAs. Security Standardisation Research Conference (SSR 2020). Retrieved 2021-02-15.
  17. Brendel, Jacqueline; Cremers, Cas; Jackson, Dennis; Zhao, Mang (2020-07-03). The provable security of ed25519: Theory and practice. IEEE Symposium on Security and Privacy (S&P 2021). Retrieved 2021-02-15.
  18. "ed25519-speccheck". GitHub . Retrieved 2021-02-15.
  19. "Changes since OpenSSH 6.4". 2014-01-03. Retrieved 2016-10-07.
  20. "What's new in GnuPG 2.1". 2016-07-14. Retrieved 2016-10-07.
  21. "Things that use Ed25519". 2016-10-06. Retrieved 2016-10-07.
  22. Harris, B.; Velvindron, L. (February 2020). Ed25519 and Ed448 Public Key Algorithms for the Secure Shell (SSH) Protocol. IETF. doi: 10.17487/RFC8709 . ISSN   2070-1721. RFC 8709 . Retrieved 2022-07-11.
  23. "System security for watchOS" . Retrieved 2021-06-07.
  24. Matt Johnston (2013-11-14). "DROPBEAR_2013.61test". Archived from the original on 2019-08-05. Retrieved 2019-08-05.
  25. "Heuristic Algorithms and Distributed Computing" (PDF). Èvrističeskie Algoritmy I Raspredelennye Vyčisleniâ (in Russian): 55–56. 2015. ISSN   2311-8563. Archived from the original (PDF) on 2016-10-20. Retrieved 2016-10-07.
  26. Frank Denis. "Minisign: A dead simple tool to sign files and verify signatures" . Retrieved 2016-10-07.
  27. minisign-misc on GitHub
  28. Frank Denis (2016-06-29). "libsodium/ChangeLog". GitHub . Retrieved 2016-10-07.
  29. "OpenSSL CHANGES". July 31, 2019. Archived from the original on May 18, 2018. Retrieved August 5, 2019.
  30. "python/ed25519.py: the main subroutines". 2011-07-06. Retrieved 2016-10-07.
  31. "Software: Alternate implementations". 2015-06-11. Retrieved 2016-10-07.
  32. "eBACS: ECRYPT Benchmarking of Cryptographic Systems: SUPERCOP". 2016-09-10. Retrieved 2016-10-07.
  33. "Virgil Security Crypto Library for C: Library: Foundation". GitHub . Retrieved 2019-08-04.
  34. "wolfSSL Embedded SSL Library (formerly CyaSSL)" . Retrieved 2016-10-07.