トップQs
タイムライン
チャット
視点
Curve25519
ウィキペディアから
Remove ads
暗号学において、Curve25519とは128ビットの暗号強度[注釈 1]を提供する楕円曲線であり、楕円曲線ディフィー・ヘルマン鍵共有 (ECDH) で使用するために設計されている。最も処理の速い楕円曲線暗号 (ECC) の楕円曲線での1つであり、これをカバーする特許は知られていない[1]。リファレンス実装はパブリックドメインである[2]。
オリジナルの論文では、Curve25519はディフィー・ヘルマン鍵共有 (DH) 関数の名前として定義していた。ダニエル・バーンスタインがCurve25519をその基本となる楕円曲線の名前で使用することを提案して以来、DH関数についてはX25519と呼ばれている[3]。
数学的性質
この曲線は素数 2255 − 19におけるモンゴメリ曲線 y2 = x3 + 486662x2 + xを使用している。また、基点 x = 9も使用している。この基点は位数 を持つ[4]。
このプロトコルは圧縮された楕円上の点 (X座標のみ) を使用しているので、XZ座標のみを使用して、ECDH用のモンゴメリラダーを効率的に使用することができる[5]。
Curve25519は実装時における潜在的な欠陥の可能性を回避するように構築されている[6]。設計上、タイミング攻撃の影響を受けず、有効な公開鍵として32バイトの文字列を受け入れる。検証は不要である。
Remove ads
歴史
要約
視点
Curve25519はダニエル・バーンスタインによって2005年にリリースされたが[4]、Dual_EC_DRBGにアメリカ国家安全保障局 (NSA) が使用するバックドアが存在する可能性があることが判明した2013年以降にこの曲線への関心が高まった[8]。直接関係はないが[9]、アメリカ国立標準技術研究所 (NIST) のP楕円曲線[10]のシード値に[11]、NSAが公開鍵の因数分解をする上で有利となる値を選択したという疑惑が持たれた[12][13]。
I no longer trust the constants. I believe the NSA has manipulated them through their relationships with industry.—Bruce Schneier、The NSA Is Breaking Most Encryption on the Internet (2013)
それ以来、Curve25519はP-256の事実上の代替手段となり、幅広い用途で使用されている[14]。2014年以降、OpenSSHのデフォルトはCurve25519ベースのECDHである[15]。
2017年、NISTはCurve25519とCurve448がSP 800-186に追加されることを発表した。これによって合衆国政府によって使用される承認された楕円曲線として指定されることになる[16]。どちらの楕円曲線もRFC 7748で説明されている。2019年、FIPS 186-5の2019年の草稿ではデジタル署名としてEd25519の利用が[17]、SP 800-186の草稿ではCurve25519の利用が[18]それぞれ追加されている。
2018年、ドメインキー・アイデンティファイド・メール (DKIM) の使用はこのアルゴリズムによる署名ができるように修正された[19]。
2018年に公開されたTransport Layer Security (TLS) 1.3では、X25519、Ed25519、X448、Ed448の利用が推奨されている[20]。
ライブラリ
プロトコル
- OMEMO - XMPP (Jabber)のために提案された拡張[34]
- Secure Shell
- Signalプロトコル
- Tox
- Zcash
- Transport Layer Security
アプリケーション
- Conversations[注釈 3]
- Cryptocat[35][注釈 3]
- DNSCrypt[36]
- DNSCurve
- Dropbear[22][37]
- Facebook Messenger [注釈 4][注釈 5]
- プラグイン経由のGajim[38][注釈 3]
- GNUnet[39]
- GnuPG
- Google Allo[注釈 6][注釈 5]
- I2P[40]
- IPFS[41]
- iOS[42]
- Monero[43]
- OpenBSD[注釈 7]
- OpenSSH[22][注釈 8]
- Peerio[48]
- PuTTY[49]
- Signal[注釈 5]
- Silent Phone
- SmartFTP[22]
- SSHJ[22]
- Threema[50]
- TinySSH[22]
- TinyTERM[22]
- Tor[51]
- Viber[52]
- WhatsApp[注釈 5]
- Wire
- WireGuard
Remove ads
脚注
関連項目
外部リンク
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads