Edwards-curve Digital Signature Algorithm
ネットであちこち眺めていて気がついたのだが SP 800-57 第一部の Rev.5 最終版が2020年5月にリリースされていた。
私はセキュリティや暗号技術の専門家ではないし Rev.5 の変更点が(軽微なものも合わせて)67項目もあって全部は紹介しきれないので,ひとつだけ
について関連情報を覚え書きの形で記しておく。
RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA)
EdDSA のオリジナルは2011年に公開された “High-speed high-security signatures ” らしい。 その後も改良版が出たり色々あって,2017年に RFC 8032 として標準化された。
EdDSA は以下の特徴を持っている。
特に2番目が重要。
これまでの NIST 標準の(ECDSA を含む) DSA は署名の度にランダムな値をひとつ決めないといけないのだが,ここの実装をサボると,最悪の場合,秘密鍵の漏洩に繋がる。 更に言うと,かつて SP 800-90A に載っていた疑似乱数生成器 Dual_EC_DRBG に NSA の関与が疑われる欠陥が発覚し SP 800-90A を改訂する騒ぎにまで発展したこともある。
このように DSA の具体的な実装について常に懸念が付きまとっているため,より安全性が高いとされる EdDSA が注目されることとなった1。
EdDSA で使える楕円曲線にはかなりのバリエーションがある のだが, RFC 8032 に記載されているのは以下の2つである2。
楕円曲線名 | 鍵長(bytes) | 強度(bits) |
---|---|---|
edwards25519 | 32 | 128 |
edwards448 | 57 | 224 |
生成した ECC 鍵を2031年以降も使い続けるにはセキュリティ強度にして128ビット以上必要だが,この2つの楕円曲線であれば十分であることが分かる。
NIST 標準としての EdDSA
EdDSA の RFC 化に伴い,以下の NIST 標準文書にも EdDSA が追加されることになった。 ただし今のところはまだドラフト版である。
- FIPS 186-5 (Draft), Digital Signature Standard (DSS) | CSRC
- SP 800-186 (Draft), Discrete Logarithm-Based Crypto: Elliptic Curve Parameters | CSRC
ちなみに両方共パブリックコメントは2020年初に締め切られている。
FIPS 186-5 および SP 800-186 が正式リリースされれば,政府調達でもなんでも,大手を振って EdDSA を使えるようになる(笑)
EdDSA の実装
OpenPGP と GnuPG
OpenPGP は RFC 6637 で正式に ECC を組み込んだが,この中に EdDSA は含まれていない。 ただし,次期 OpenPGP となる RFC 4880bis では EdDSA を組み込み済みで GnuPG の最新版では既に EdDSA 鍵を生成し使用することができる。
なお,最新の GnuPG では edwards25519 のみサポートしているようだ。
OpenSSH
OpenSSH では EdDSA/edwards25519 鍵を生成・使用できる。 鍵生成は
$ ssh-keygen -t ed25519
で可能。
OpenSSL
現在の OpenSSL は EdDSA をサポートしている。 edwards25519 および edwards448 を指定可能。
【おまけ】 量子コンピュータ耐性
現在,公開鍵暗号の主流である IFC (Integer Factorization Cryptosystems) および FFC (Finite Field Cryptosystems) の各アルゴリズムは量子コンピュータによる攻略法が既にあり,十分な性能を獲得すれば短時間で攻略可能になると考えられている。 ECC も FFC のバリエーションであり,これに含まれる。
しかし,2020年時点の性能では128ビット以上のセキュリティ強度であれば現実的な脅威には至っていないようだ。
ただし,量子コンピュータ開発は成長が著しい分野でもあり,今後も成り行きを注視していく必要がある。
- CRYPTREC Report 2018: 暗号技術評価委員会報告
- 耐量子計算機暗号の研究動向調査報告書
- 「CRYPTREC Report 2019 暗号技術評価委員会報告」 (Revision 1)
- CRYPTREC Report 2020 暗号技術評価委員会報告
【おまけ2】 CRYPTREC による EdDSA の評価
2021年に公開された「CRYPTREC Report 2020」に EdDSA に対する評価が載っていたので紹介する。
難しい話はすっ飛ばして総評だけつまみ食いすると
とのこと。 ノンスの評価やサイドチャネル攻撃耐性など具体的な話は本文を参照のこと。
ブックマーク
参考図書
- 暗号技術入門 第3版 秘密の国のアリス
- 結城 浩 (著)
- SBクリエイティブ 2015-08-25 (Release 2015-09-17)
- Kindle版
- B015643CPE (ASIN)
- 評価
SHA-3 や Bitcoin/Blockchain など新しい知見や技術要素を大幅追加。暗号技術を使うだけならこれ1冊でとりあえず無問題。
-
DSA に対する懸念は,実装に必要な技術要素が多すぎる点にあるかもしれない。如何にシンプルな設計で要件を満たすかってのは安全性を考える上でも重要であるというよい事例になっていると思う。 ↩︎
-
edwards25519 は Curve25519 と双有理同値である。ちなみに Curve25519 は ECDH 用の楕円曲線およびそのライブラリで,公有(public domain)のソフトウェアとして公開されている。 ↩︎