ニュースレターNo.60/2015年7月発行
第92回IETF報告 IETFにおける暗号技術に関する動向(楕円曲線)
本稿では、第92回IETFにおけるセキュリティ関連の報告のうち、セキュリティエリアでの技術的な動向に大きく影響すると予想される、IRTF(Internet Research Task Force)にある暗号のグループであるCFRG(Crypto Forum Research Group)で議論された「新しい楕円曲線の動向」について報告したいと思います。
NISTが承認した楕円曲線以外を選定することに 関する動向
第90回IETFで開催されたIRTFにある暗号のグループであるCFRGにおいて、新しい楕円曲線としてNUMS Curves(Nothing Up My Sleeve Curves - バックドアのない楕円曲線)や、高速化が期待できるCurve25519、Curve41417、E-512といった楕円曲線が提案されたことが報告されました。これらの楕円曲線に関する議論について、今回の会合で方向性が決定したことが共有されたので報告します。
1. CFRGで検討した楕円曲線に関する状況について
IETFで検討されているTransport Layer Security(TLS)や、X.509証明書を含む暗号技術を用いたアプリケーション向けに利用されることを想定した、素体上の楕円曲線のための確定的なパラメータ生成アルゴリズムを規定することを目的としたInternet Draft(I-D)の第2版が投稿されたことが報告されました。
なお、このI-Dで規定された楕円曲線の安全性レベルは、等価安全性の観点から128bitセキュリティおよび224bitセキュリティを実現することができます。等価安全性とは、米国商務省国立標準技術研究所(NIST)によって提唱されている、公開鍵暗号や共通鍵暗号のような異なる種類の暗号技術に対しても、同一の評価尺度で安全性を表すようにした基準です。例えば、128bitセキュリティでは共通鍵暗号は128bitの鍵長、RSAのような素因数分解問題に基づく方式であれば3072bitの鍵長、ECDSAのような楕円曲線上の離散対数問題に基づく方式であれば、256bitの鍵長となります。詳細はI-D※1をご確認いただけたらと思います。
ここでは、今回の会合で報告された変更点を示します。
- 追加された楕円曲線
以前から有力視されていたCurve25519に加えて、Goldilocksという楕円曲線が追加されました。この楕円曲線は、224bitセキュリティの安全性を実現することができ、2^448 - 2^224-1で3 mod 4と合同という条件を満たす特徴を持った素数を利用しており、これは広いアーキテクチャでの高いパフォーマンスを期待できます。現状のステータスは、異なるパラメータサイズで動作するようにアルゴリズムを微修正している状況ですが、アルゴリズムの正しさの確認は行われていない状況とのことです。今後、専門家によるレビューで確認されることが予想されます。 - Diffie-Hellman鍵交換のためのu-value
このI-Dで記述されているCurve25519やCurve448を用いた楕円曲線上のDiffie-Hellman鍵交換を実現するために、GF(2^255-19)やGF(2^448-2^224-1) からなる要素であるu-valueを送信することを決定しました。 - ゼロ出力に関するチェック
現在のI-Dに記述されている手順において、間違った位数が入力された場合の確認処理が不十分であることが報告されました。 - パラメータ生成
エドワード曲線を生成し、同型写像や同種を得るために必要となるパラメータ生成を使用します。このI-Dでは、SAGEというPythonベースの数学ライブラリを用いて、Curve25519やCurve448向けのu=5に関するベースポイントを生成したとのことです。
これらのトピックについては、CFRGのメーリングリスト上でIETF 92までの間に活発に議論されていたため、方針に影響を与えるような大きな質問はなく、スムーズな合意形成が行われました。
2. CFRGで検討した楕円曲線の今後について
CFRGのco-chairであるKenny Paterson氏から、CFRGで検討した楕円曲線に関する状況やElliptic Curves for Security(draft-irtf-cfrg-curves-02)を踏まえて、楕円曲線に関する現状の活動と今後について発表がありました。本稿では、発表でのポイントとなる部分を抜粋して報告します。
- Research Group(RG)としての決定事項について
RGは、新しい楕円曲線としてCurve25519(128bitセキュリティ)とGoldilocks曲線(224bitセキュリティ)の二つの曲線を選択しました。これらの曲線は確定的な方法で生成される特性を持っており、Elliptic Curves for Security(draft-irtf-cfrg-curves-02)で規定されているものとなります。 - IETF/IRTF以外での取り組みについて
IETF/IRTFで議論した結果について、2015年6月11日にNIST主催で開催されるWorkshopであるElliptic Curve Cryptography Standardsに対して、IETF/IRTFとしてのインプットとして提案したことが共有されました。また、World Wide Web Consortium(W3C)とも情報交換を実施していることも共有されました。 - 新しい楕円曲線を用いた署名方式に関する検討について
新しい楕円曲線を決定しただけでは、我々が生活の中で利用しているような鍵交換やデジタル署名として利用することができません。次のステップとして、今回選択した新しい楕円曲線を用いたデジタル署名方式を定義することに注力することが報告されました。いくつかの選択肢としてのデジタル署名候補として、下記のような方式が共有されました。[新しい楕円曲線上でのECDSA]
従来、NIST曲線を利用したECDSAは標準化されており、正しい演算が行われたかどうか、正しく実装されているかを確認するためのテストベクタが公開されていますが、今回のように楕円曲線を変更することで得られるデジタル署名の結果が異なる値になるため、新たなテストベクタが必要となります。[脱ランダム化された(De-randomised)ECDSA]
脱ランダム化されたECDSAは、一般的な故障モード攻撃を避ける特徴があり、署名値であるrを署名対象データであるメッセージのハッシュ値と署名鍵による生成か、署名鍵を含まない擬似乱数関数(Pseudo-Random Function; PRF)を用いた生成が可能になるデジタル署名です。[EdDSA]
通常のDSAとは異なり、DSAと同様な離散対数問題に基づいた方式であるシュノア署名の変形版です。この方式は、脱ランダム化に関する仕組みを活用しており、よく利用されているECDSAとは異なる検証方法を利用します。オープンソースコミュニティへの採用実績としては、OpenSSHに実装されています。
これまでの取り組みや方針が共有されるだけではなく、CFRG参加者に対していくつかの質問が投げかけられました。ここで投げかけられた質問は、今後の楕円曲線に関する方針に大きく影響を与えるため、次に示す四つの質問を共有したいと思います。
- ここまでに列挙した三つのデジタル署名方式以外に検討すべき方式はあるか?
- TLSプロトコルに関するNISTの遵守事項をどの程度考慮すべきか?
- 他のアプリケーションに関して遵守事項をどの程度考慮すべきか?
- タイムリーに役立つ結論を得るための議論をどのように構造化すべきか?
上記の質問を受けて会場で行われた議論の抜粋を以下に示します。
- NIST曲線であるP-256やP-384上でのECDSAを取り扱っているのではないため、IETF/IRTFとしてはNISTの遵守事項について考慮すべきではないのでは?
- IETF/IRTFとしてNISTと関わりあうべきであり、考慮しなくて良い存在ではない
- 銀行やそれ以外の高付加価値の組織に受け入れられるかどうかを考慮すべきでは?
- シュノア型のデジタル署名の変形版であるEdDSAでは、既存のECDSAと異なるAPIになることが予想される
今回の第92回IETFにおいて、新しい楕円曲線に関する議論について方向性は示されましたが、これらの楕円曲線の応用として検討されているデジタル署名方式を取り巻く状況は、会合での議論からも予想できるように、まだ方向性の確定までに時間が掛かりそうな状況です。ここでの決定がIETFで検討されているさまざまなエリアのWGへの仕様検討にも影響があることから、今後とも注目することが重要になると思います。
参考:楕円曲線関連の発表資料
- CFRGで検討した楕円曲線に関する状況についての発表資料
http://www.ietf.org/proceedings/92/slides/slides-92-cfrg-0.pdf - Curves - next stepの発表資料
http://www.ietf.org/proceedings/92/slides/slides-92-cfrg-8.pdf
(NTTソフトウェア株式会社 菅野哲)
- ※1 Elliptic Curves for Securit(y draft-irtf-cfrg-curves-02)
- http://tools.ietf.org/html/draft-irtf-cfrg-curves-02