本文へスキップ
ecdsa.com
推奨ツイストエドワーズ形式

edwards25519

Edwards25519 は Curve25519 のツイストエドワーズ形式で、Ed25519 署名に使われます。

edwards25519 は、255 ビットの素体上のツイストエドワーズ形式の曲線 ax² + y² = 1 + dx²y² で、位数が 253 ビットの素数である部分群とコファクター 8 を持ちます。推定セキュリティレベルは 128 ビットです。ステータス:新しいシステムに推奨。

Edwards25519 は、2^255 − 19 上の曲線 −x² + y² = 1 + dx²y²(d = −121665/121666)です。Curve25519 と双有理同値であるため、両者は位数 8·n の群を共有します。加算公式は完全で例外的なケースがないため、定数時間のコードを書きやすくなります。

Ed25519(RFC 8032 §5.1)の署名は 64 バイト、公開鍵は 32 バイトで、署名は決定的です。nonce は秘密鍵とメッセージから導出されるため、乱数生成器が弱くても鍵が漏洩することはありません。Ed25519 は SSH(ssh-ed25519)、TLS 1.3、DNSSEC(アルゴリズム 15)、JOSE と COSE(Ed25519、RFC 9864)、Solana、Tor のオニオンサービスで使われており、FIPS 186-5 でも承認されています。

群のコファクターが 8 であるため、エッジケースの扱いはライブラリによって異なります。検証時にコファクターを掛けるかどうか、点の正規形でないエンコーディングをどこまで受け入れるかが違うため、同じ署名があるライブラリでは検証に成功し、別のライブラリでは失敗することがあります(Chalkias、Garillot、Nikolaenko『Taming the many EdDSAs』)。

規格での名称

規格名称
RFC 8032edwards25519
RFC 8032 / RFC 8410Ed25519

オブジェクト識別子

ドメインパラメーター

255 ビットの素体 · 約 128 ビットセキュリティ

有限体の素数 p
0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
係数 a
0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec
係数 d
0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3
ベースポイントの x 座標
0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a
ベースポイントの y 座標
0x6666666666666666666666666666666666666666666666666666666666666658
ベースポイントの位数 n
0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed
コファクター h
0x8

採用例

  • SSH (ssh-ed25519)
  • TLS 1.3 (ed25519)
  • DNSSEC (algorithm 15)
  • JOSE (Ed25519, EdDSA)
  • Solana
  • Signify / minisign
  • Tor onion services

レジストリでの識別子

TLS の署名方式
ed25519 0x0807
JOSE アルゴリズム
Ed25519
JWK の曲線
Ed25519
COSE アルゴリズム
Ed25519 -19
COSE の楕円曲線
Ed25519 6
SSH の公開鍵アルゴリズム
ssh-ed25519ssh-mldsa44-ed25519
DNSSEC のアルゴリズム番号
ED25519 15

規格と参考文献

すべての曲線