|
楕円曲線ディフィー・ヘルマン鍵共有(, ECDH)は、楕円曲線暗号の公開鍵・秘密鍵ペアを用いて、安全でない通信経路で匿名鍵共有を行うアルゴリズムである〔NIST, Special Publication 800-56A, Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography , March, 2006.〕〔Certicom Research, Standards for efficient cryptography, SEC 1: Elliptic Curve Cryptography , Version 1.0, September 20, 2000.〕〔NSA Suite B Cryptography, Suite B Implementers' Guide to NIST SP 800-56A , July 28, 2009.〕。両者で共有した秘密の値はそのまま、あるいは何かしらの変換をかけて、共通鍵暗号の鍵として用いることができる。この方式は、以前から存在したディフィー・ヘルマン鍵共有について、楕円曲線暗号を使うようにした変種である。 == プロトコルの内容 == アリスがボブとの間に秘密鍵を構築したいが、2人の通信には第三者に盗聴される危険がある回線しかないものとする。まず、2人の間でどんな楕円曲線を使うか決めておく必要がある。そして、両者はこの楕円曲線上で、秘密鍵の (からランダムに選んだ整数)と公開鍵の(、つまり楕円曲線上での掛け算を行う)からなる鍵対を生成しておく。ここで、アリスの鍵対を、ボブのものをとする。それから、公開鍵を互いに交換する。 アリスはという計算を、ボブはという計算を行い、両者とも(楕円曲線上の''x''座標)が得られるので、これを共有する秘密とする。ECDHを元にしたほとんどのプロトコルでは、この秘密を元にして、ハッシュ関数などに通して共通鍵を生成する手順までが標準化されている。であるので、アリスもボブも同じを得ることができる。 鍵交換の過程で通信路上にアリスが流す情報は自身の公開鍵のみなので、(楕円曲線上の離散対数問題を解けない限り)本人以外がアリスの秘密鍵を知ることはできない。ボブについても同じく秘密鍵が第三者に知れることはない。この状況下では、が解けない限り、アリスとボブ以外の第三者には共有したを計算することはできない。 公開鍵は(何かしらの証明を付けた)静的なものであっても、一時的なもの(ephemeral、この場合特にECDHEと略記される)であってもかまわない。一時的な鍵を使用した場合、鍵そのものには認証がないため、別な方法で認証を行うこととなる。もし認証がなければ、通常のディフィー・ヘルマン鍵共有と同様、中間者攻撃に対して脆弱となる(ディフィー・ヘルマン鍵共有#中間者攻撃)。どちらか一方の鍵が静的なものであった場合、中間者攻撃を受けることはなくなるが、Forward secrecyのような、その他の高度なセキュリティに与ることはできなくなる。静的な鍵を持つ側では、自身の秘密鍵漏洩を防ぐため、相手の公開鍵を確認して、安全な共通鍵生成関数を利用する必要がある。 共有した秘密をそのまま鍵として使うこともできなくはないが、ディフィー・ヘルマン鍵共有で生成したことによってできる弱いビットの影響を除去するため、秘密をハッシュに通すことが推奨される。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「楕円曲線ディフィー・ヘルマン鍵共有」の詳細全文を読む スポンサード リンク
|