EdDSA

A nyilvános kulcsú kriptográfiai rendszerekben az Edwards-görbe digitális aláírási algoritmus (EdDSA) egy digitális aláírási séma, amely az Edwards elliptikus görbe Schnor -séma egy változatát használja [1] .

Úgy tervezték, hogy gyorsabb legyen, mint a meglévő digitális aláírási séma, anélkül, hogy veszélyeztetné a biztonságát. Daniel J. Bernstein , Nils Duif, Tanya Lange, Peter Schwabe és Bo-Yin Yang tervezte 2011-re.

Tervezés

A következő az EdDSA egyszerűsített leírása, amely nem tartalmazza az egész számok és görbepontok bitkarakterláncként való kódolásának részleteit. A digitális aláírás megvalósításának teljes leírása és részletei megtalálhatók a dokumentációban és a vonatkozó RFC-kben [2] [3] [1] .

Az EdDSA a következő paramétereket használja:

Ezek a minimális beállítások az EdDSA aláírási séma összes felhasználója számára. Az EdDSA aláírás biztonsága nagymértékben függ a paraméterek megválasztásától, kivéve az alappont tetszőleges megválasztását. Például Polard ro-algoritmusa a logaritmushozdurván görbét kell vennie, mielőtt megtehetné[ pontosítás ] számítsa ki a logaritmust, [4] tehát l-nek elég nagynak kell lennie ahhoz, hogy ez ne legyen lehetséges, és általában nagyobbnak kell lennie 2^200-nál. [5] Az l választását q választása korlátozza, mivel a Hasse-tétel szerint nem térhet el q + 1-től többel, mint

Az EdDSA aláírási séma szerint

nyilvános kulcs Az EdDSA sémában a nyilvános kulcs egy b bitben kódolt görbepont. Aláírás Az A nyilvános kulcs által az M üzenetben lévő EdDSA aláírás a 2b bitben, egy görbepontban és egy egész számban kódolt (R,S) pár , amely kielégíti az ellenőrző egyenletet. 2 c S B = 2 c R + 2 c H ( R , A , M ) A . {\displaystyle 2^{c}SB=2^{c}R+2^{c}H(R,A,M)A.} privát kulcs Az EdDSA sémában a privát kulcs egy b-bites k karakterlánc, amelyet egyenletesen véletlenszerűen kell kiválasztani. A megfelelő nyilvános kulcs ebben az esetben , ahol , a H(k) legkisebb jelentőségű b-bitje, egy kisvégű egész számként értelmezve. Az M üzenetaláírás az (R,S) pár, ahol R=rB és és S ≡ r + H ( R , A , M ) s ( mod ℓ ) . {\displaystyle S\equiv r+H(R,A,M)s{\pmod {\ell )).} . Ez kielégíti az igazolási egyenletet

2 c S B = 2 c ( r + H ( R , A , M ) s ) B = 2 c r B + 2 c H ( R , A , M ) s B = 2 c R + 2 c H ( R , A , M ) A . {\displaystyle {\begin{aligned}2^{c}SB&=2^{c}(r+H(R,A,M)s)B\\&=2^{c}rB+2^{c }H(R,A,M)sB\\&=2^{c}R+2^{c}H(R,A,M)A.\end{igazítva}}}

Ed25519

Ed25519 – EdDSA aláírási séma SHA-512 és Curve25519 használatával [2] ahol:

− x 2 + y 2 = egy − 121665 121666 x 2 y 2 , {\displaystyle -x^{2}+y^{2}=1-{\frac {121665}{121666}}x^{2}y^{2},}

A görbe biracionálisan egyenértékű a Curve25519 néven ismert Montgomery-görbével. Egyenértékűség [6] [2]

x = u v − 486664 , y = u − egy u + egy . {\displaystyle x={\frac {u}{v}}{\sqrt {-486664}},\quad y={\frac {u-1}{u+1}}.}

Hatékonyság

Bernstein csapata az Ed25519-et az x86-64 Nehalem /Westmere processzorcsaládhoz optimalizálta. Az ellenőrzés 64 digitális aláírásból álló kötegekben hajtható végre a még nagyobb átvitel érdekében. Az Ed25519-et úgy tervezték, hogy a 128 bites szimmetrikus titkosítások minőségéhez hasonló támadási ellenállást biztosítson . A nyilvános kulcsok 256 bitesek, az aláírás pedig kétszer akkora.

Biztonságos kódolás

Biztonsági szolgáltatásként az Ed25519 nem használ olyan elágazási műveleteket és tömbindexelési lépéseket, amelyek titkoktól függenek az oldalcsatornás támadások megelőzésére .

Más diszkrét logaritmikus aláírási sémákhoz hasonlóan az EdDSA is egy nonce nevű titkos értéket használ , amely minden aláíráshoz egyedi. A DSA és ECDSA aláírási sémákban ezt a nonce-t hagyományosan véletlenszerűen generálják minden aláíráshoz, és ha a véletlenszám-generátor meghibásodik vagy megjósolható az aláírás generálása során, az aláírás kiszivároghat a privát kulcs, ami a Sony PlayStation 3 firmware-ével történt. aláíró kulcs frissítése [ 7] [8] . Hozzájuk képest az EdDSA determinisztikusan választja ki a nonce-okat, például a privát kulcs és az üzenet hash-ét. Így a privát kulcs generálása után az EdDSA-nak már nincs szüksége véletlenszám-generátorra az aláírások készítéséhez, és nem áll fenn annak a veszélye, hogy a digitális aláírás létrehozásához használt véletlenszám-generátor felfedje a titkos kulcsot.

Szoftver

Az Ed25519 figyelemre méltó felhasználási területei közé tartozik az OpenSSH , [9] GnuPG [10] és különféle alternatívák, valamint az OpenBSD értékeszköze . [tizenegy]

Jegyzetek

  1. ↑ 1 2 Josefsson, S.; Liusvaara, I. (2017. január). Edwards-görbe digitális aláírási algoritmus (EdDSA) . Internet Engineering Task Force. doi:10.17487/RFC8032. ISSN 2070-1721. RFC 8032. Letöltve: 2017-07-31.
  2. ↑ 1 2 3 Bernstein, Daniel J.; Duif, Niels; Lange, Tanja; Schwabe, Péter; Bo-Yin Yang (2012). "Nagy sebességű, nagy biztonságú aláírások" (PDF). Journal of Cryptographic Engineering . 2 (2):77-89. doi:10.1007/s13389-012-0027-1.
  3. Daniel J. Bernstein, Simon Josefsson, Tanja Lange, Peter Schwabe és Bo-Yin Yang (2015-07-04). EdDSA további görbékért (PDF) (műszaki jelentés). Letöltve 2016-11-14.
  4. Daniel J. Bernstein, Tanja Lange és Peter Schwabe (2011-01-01). A negációs térkép helyes használatáról a Pollard rho módszerben (Technikai jelentés). IACR Cryptology ePrint archívum. 2011/003. Letöltve 2016-11-14.
  5. Daniel J. Bernstein és Tanja Lange. "ECDLP biztonság: Rho". Biztonságos görbék: biztonságos görbék kiválasztása elliptikus görbületű titkosításhoz. Letöltve 2016-11-16.
  6. Bernstein, Daniel J.; Lange, Tanja (2007). Kurosawa, Kaoru, szerk. Gyorsabb összeadás és megkettőzés az elliptikus görbéken . A kriptológia fejlődése – ASIACRYPT. Előadásjegyzetek számítástechnikából. 4833 . Berlin: Springer. pp. 29-50. doi:10.1007/978-3-540-76900-2_3. ISBN 978-3-540-76899-9. MR 2565722.
  7. Johnston, Casey (2010. 12. 30.). A PS3 feltört a rossz kriptográfiai megvalósítás miatt. Ars Technica . Letöltve: 2016-11-15.
  8. fail0verflow (2010-12-29). Konzolhacking 2010: PS3 Epic Fail (PDF). 27C3: 27. Chaos Communication Conference. Letöltve: 2016-11-15.
  9. "Változások az OpenSSH 6.4 óta". 2014-01-03. Letöltve: 2016-10-07.
  10. A GnuPG 2.1 újdonságai". 2016-07-14. Letöltve: 2016-10-07.
  11. "Az Ed25519-et használó dolgok". 2016-10-06. Letöltve: 2016-10-07.
  12. "eBACS: ECRYPT Benchmarking of Cryptographic Systems: SUPERCOP". 2016-09-10. Letöltve: 2016-10-07.
  13. Frank Denis (2016-06-29). "libsodium/ChangeLog". Letöltve: 2016-10-07.
  14. "wolfSSL Embedded SSL Library (korábban CyaSSL)". Letöltve: 2016-10-07.
  15. "Heurisztikus algoritmusok és elosztott számítástechnika" (PDF) (orosz nyelven). 2015.pp. 55-56. ISSN 2311-8563. Letöltve: 2016-10-07.
  16. minisign-misc a GitHubon

Linkek