Curve25519

暗号学において、Curve25519とは128ビットのを提供する楕円曲線であり、楕円曲線ディフィー・ヘルマン鍵共有 (ECDH) で使用するために設計されている。最も処理の速い楕円曲線暗号 (ECC) の楕円曲線での1つであり、これをカバーする特許は知られていない。リファレンス実装はパブリックドメインである。

オリジナルの論文では、Curve25519という名前はディフィー・ヘルマン鍵共有 (DH) 関数のものとして定義していた。ダニエル・バーンスタインがCurve25519という名前を基本となる楕円曲線で使用することを提案して以来、DH関数についてはX25519と呼ばれている。

数学的性質 
この曲線は素数 におけるモンゴメリ曲線 を使用している。また、基点 も使用している。この基点は位数 を持つ。

このプロトコルは圧縮された楕円上の点 (X座標のみ) を使用しているので、XZ座標のみを使用して、ECDH用のを効率的に使用することができる。

Curve25519は実装時における潜在的な欠陥の可能性を回避するように構築されている。設計上、タイミング攻撃の影響を受けず、有効な公開鍵として32バイトの文字列を受け入れる。検証は不要である。

この曲線は、Ed25519で使用されていると双有理同値である。

歴史 
Curve25519はダニエル・バーンスタインによって2005年にリリースされたが、にアメリカ国家安全保障局 (NSA) が使用するバックドアが存在する可能性があることが判明した2013年以降にこの曲線への関心が高まった。直接関係はないが、アメリカ国立標準技術研究所 (NIST) のP楕円曲線のシード値に、NSAが公開鍵の因数分解をする上で有利となる値を選択したという疑惑が持たれた。

それ以来、Curve25519はP-256の事実上の代替手段となり、幅広い用途で使用されている。2014年以降、OpenSSHのデフォルトはCurve25519ベースのECDHである。

2017年、NISTはCurve25519とCurve448がSP 800-186に追加されることを発表した。これによって合衆国政府によって使用される承認された楕円曲線として指定されることになる。どちらの楕円曲線もRFC 7748で説明されている。2019年、FIPS 186-5の2019年の草稿ではデジタル署名としてEd25519の利用が、SP 800-186の草稿ではCurve25519の利用がそれぞれ追加されている。

2018年、ドメインキー・アイデンティファイド・メール (DKIM) の使用はこのアルゴリズムによる署名ができるように修正された。

2018年に公開されたTransport Layer Security (TLS) 1.3では、X25519、Ed25519、X448、Ed448の利用が推奨されている。

ライブラリ 

   
 libssh
 NaCl
 GnuTLS
  (formerly PolarSSL)
 wolfSSL
 Botan
 SChannel
 libsodium
 OpenSSL since version 1.1.0
 LibreSSL
 NaCl for Tcl — a port to the Tcl language.
 NSS since version 3.28

プロトコル 
  - XMPP (Jabber)のために提案された拡張
 Secure Shell
 Signalプロトコル
 Tox
 Zcash
 Transport Layer Security

アプリケーション 

 
 
 DNSCrypt
 DNSCurve
 Dropbear
 Facebook Messenger 
 プラグイン経由の
 GNUnet
 GnuPG
 
 I2P
 IPFS
 iOS
 Monero
 OpenBSD
 OpenSSH
 
 PuTTY
 Signal
 Silent Phone
 SmartFTP
 SSHJ
 
 TinySSH
 TinyTERM
 Tor
 Viber
 WhatsApp
 Wire
 WireGuard

脚注

注釈

出典

関連項目 
 Curve448
 Ed25519

外部リンク 
 

楕円曲線暗号
7748