Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

EdDSA

From Wikipedia, the free encyclopedia
Digital signature scheme
Not to be confused withECDSA.
EdDSA
General
DesignersDaniel J. Bernstein, Niels Duif,Tanja Lange, Peter Schwabe,Bo-Yin Yang, et al.
First published26 September 2011 (14 years ago) (2011-09-26)
Detail
StructureElliptic-curve cryptography

Inpublic-key cryptography,Edwards-curve Digital Signature Algorithm (EdDSA) is adigital signature scheme using a variant ofSchnorr signature based ontwisted Edwards curves.[1]It is designed to be faster than existing digital signature schemes without sacrificing security. It was developed by a team includingDaniel J. Bernstein, Niels Duif,Tanja Lange, Peter Schwabe, andBo-Yin Yang.[2]Thereference implementation ispublic-domain software.[3]

Summary

[edit]

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]

AnEdDSA 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π/4{\displaystyle {\sqrt {\ell \pi /4}}} curve additions before it can compute a discrete logarithm,[5] so{\displaystyle \ell } must be large enough for this to be infeasible, and is typically taken to exceed2200.[6]The choice of{\displaystyle \ell } is limited by the choice ofq{\displaystyle q}, since byHasse's theorem,#E(Fq)=2c{\displaystyle \#E(\mathbb {F} _{q})=2^{c}\ell } cannot differ fromq+1{\displaystyle q+1} by more than2q{\displaystyle 2{\sqrt {q}}}. The hash functionH{\displaystyle H} is normally modelled as arandom oracle in formal analyses of EdDSA's security.

Within an EdDSA signature scheme,

Public key
An EdDSA public key is a curve pointAE(Fq){\displaystyle A\in E(\mathbb {F} _{q})}, encoded inb{\displaystyle b} bits.
Signature verification
An EdDSA signature on a messageM{\displaystyle M} by public keyA{\displaystyle A} is the pair(R,S){\displaystyle (R,S)}, encoded in2b{\displaystyle 2b} bits, of a curve pointRE(Fq){\displaystyle R\in E(\mathbb {F} _{q})} and an integer0<S<{\displaystyle 0<S<\ell } satisfying the following verification equation, where{\displaystyle \parallel } denotesconcatenation:

2cSB=2cR+2cH(RAM)A.{\displaystyle 2^{c}SB=2^{c}R+2^{c}H(R\parallel A\parallel M)A.}

Private key
An EdDSA private key is ab{\displaystyle b}-bit stringk{\displaystyle k} which should be chosen uniformly at random. The corresponding public key isA=sB{\displaystyle A=sB}, wheres=H0,,b1(k){\displaystyle s=H_{0,\dots ,b-1}(k)} is the least significantb{\displaystyle b} bits ofH(k){\displaystyle H(k)} interpreted as an integer inlittle-endian.
Signing
The signature on a messageM{\displaystyle M} is deterministically computed as(R,S),{\displaystyle (R,S),} whereR=rB{\displaystyle R=rB} forr=H(Hb,,2b1(k)M){\displaystyle r=H(H_{b,\dots ,2b-1}(k)\parallel M)}, andSr+H(RAM)s(mod).{\displaystyle S\equiv r+H(R\parallel A\parallel M)s{\pmod {\ell }}.} This satisfies the verification equation

2cSB=2c(r+H(RAM)s)B=2crB+2cH(RAM)sB=2cR+2cH(RAM)A.{\displaystyle {\begin{aligned}2^{c}SB&=2^{c}(r+H(R\parallel A\parallel M)s)B\\&=2^{c}rB+2^{c}H(R\parallel A\parallel M)sB\\&=2^{c}R+2^{c}H(R\parallel A\parallel M)A.\end{aligned}}}

Ed25519

[edit]

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

x2+y2=1121665121666x2y2,{\displaystyle -x^{2}+y^{2}=1-{\frac {121665}{121666}}x^{2}y^{2},}

Thetwisted Edwards curveE/Fq{\displaystyle E/\mathbb {F} _{q}} is known asedwards25519,[7][1] and isbirationally equivalent to theMontgomery curve known asCurve25519.The equivalence is[2][7][8]x=uv486664,y=u1u+1.{\displaystyle x={\frac {u}{v}}{\sqrt {-486664}},\quad y={\frac {u-1}{u+1}}.}

Performance

[edit]

The original team has optimized Ed25519 for thex86-64Nehalem/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-bitsymmetric ciphers.[9]

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

Secure coding

[edit]

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 mitigateside-channel attacks.

As with other discrete-log-based signature schemes, EdDSA uses a secret value called anonce unique to each signature. In the signature schemesDSA andECDSA, 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 theSony 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

[edit]

Note that there are two standardization efforts for EdDSA, one from IETF, an informationalRFC 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

[edit]

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

Ed448

[edit]

Ed448 is the EdDSA signature scheme defined inRFC 8032 using the hash functionSHAKE256 and the elliptic curveedwards448, an (untwisted)Edwards curve related toCurve448 inRFC 7748.Ed448 has also been approved in the final version of the FIPS 186-5 standard.[15]

References

[edit]
  1. ^abcdeJosefsson, S.; Liusvaara, I. (January 2017).Edwards-Curve Digital Signature Algorithm (EdDSA).IRTF.doi:10.17487/RFC8032.ISSN 2070-1721.RFC8032. Retrieved2022-07-11.
  2. ^abcdefgBernstein, 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. Retrieved2016-10-07.The Ed25519 software is in the public domain.
  4. ^abDaniel J. Bernstein; Simon Josefsson;Tanja Lange; Peter Schwabe;Bo-Yin Yang (2015-07-04).EdDSA for more curves(PDF) (Technical report). Retrieved2016-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. Retrieved2016-11-14.
  6. ^Bernstein, Daniel J.;Lange, Tanja."ECDLP Security: Rho". SafeCurves: choosing safe curves for elliptic-curve cryptography. Retrieved2016-11-16.
  7. ^abLangley, A.; Hamburg, M.; Turner, S. (January 2016).Elliptic Curves for Security.IETF.doi:10.17487/RFC7748.ISSN 2070-1721.RFC7748. Retrieved2024-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". Retrieved2019-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". Retrieved2020-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. Retrieved2016-11-15.
  12. ^fail0verflow (2010-12-29).Console Hacking 2010: PS3 Epic Fail(PDF).Chaos Communication Congress. Archived fromthe original(PDF) on 2018-10-26. Retrieved2016-11-15.
  13. ^"27th Chaos Communication Congress: Console Hacking 2010: PS3 Epic Fail"(PDF). Retrieved2019-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 fromthe original on 2018-11-30. Retrieved2024-03-11.
  15. ^abcMoody, Dustin (2023-02-03).FIPS 186-5: Digital Signature Standard (DSS).NIST.doi:10.6028/NIST.FIPS.186-5.S2CID 256480883. Retrieved2023-03-04.
  16. ^Chalkias, Konstantinos; Garillot, Francois; Nikolaenko, Valeria (2020-10-01).Taming the many EdDSAs. Security Standardisation Research Conference (SSR 2020). Retrieved2021-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). Retrieved2021-02-15.
  18. ^"ed25519-speccheck".GitHub. Retrieved2021-02-15.
  19. ^"Changes since OpenSSH 6.4". 2014-01-03. Retrieved2016-10-07.
  20. ^"What's new in GnuPG 2.1". 2016-07-14. Retrieved2016-10-07.
  21. ^"Things that use Ed25519". 2016-10-06. Retrieved2016-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.RFC8709. Retrieved2022-07-11.
  23. ^"System security for watchOS". Retrieved2021-06-07.
  24. ^Matt Johnston (2013-11-14)."DROPBEAR_2013.61test". Archived fromthe original on 2019-08-05. Retrieved2019-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 fromthe original(PDF) on 2016-10-20. Retrieved2016-10-07.
  26. ^Frank Denis."Minisign: A dead simple tool to sign files and verify signatures". Retrieved2016-10-07.
  27. ^minisign-misc onGitHub
  28. ^Frank Denis (2016-06-29)."libsodium/ChangeLog".GitHub. Retrieved2016-10-07.
  29. ^"OpenSSL CHANGES". July 31, 2019. Archived fromthe original on May 18, 2018. RetrievedAugust 5, 2019.
  30. ^"python/ed25519.py: the main subroutines". 2011-07-06. Retrieved2016-10-07.
  31. ^"Software: Alternate implementations". 2015-06-11. Retrieved2016-10-07.
  32. ^"eBACS: ECRYPT Benchmarking of Cryptographic Systems: SUPERCOP". 2016-09-10. Retrieved2016-10-07.
  33. ^"Virgil Security Crypto Library for C: Library: Foundation".GitHub. Retrieved2019-08-04.
  34. ^"wolfSSL Embedded SSL Library (formerly CyaSSL)". Retrieved2016-10-07.

External links

[edit]
Algorithms
Integer factorization
Discrete logarithm
Lattice/SVP/CVP/LWE/SIS
Others
Theory
Standardization
Topics
Retrieved from "https://en.wikipedia.org/w/index.php?title=EdDSA&oldid=1304068429"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp