(Translated by https://www.hiragana.jp/)
ディフィー・ヘルマン鍵共有 - Wikipedia コンテンツにスキップ

ディフィー・ヘルマンかぎ共有きょうゆう

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』
Diffie–Hellmanかぎ交換こうかんのスキームでは、かくパーティが公開こうかいかぎ秘密ひみつかぎのペアを生成せいせいし、ペアのうち公開こうかいかぎ配布はいふする。たがいの公開こうかいかぎ本物ほんものの(このてん非常ひじょう重要じゅうようである)コピーを取得しゅとくすれば、AliceとBobはオフラインで共有きょうゆうかぎ計算けいさんできる。共有きょうゆうかぎは、たとえば、基本きほんてきにすべての場合ばあいにはるかに高速こうそく対称たいしょう暗号あんごうかぎとして利用りようできる。

ディフィー・ヘルマンかぎ共有きょうゆう(ディフィー・ヘルマンかぎきょうゆう、Diffie–Hellman key exchangeDH)、あるいはディフィー・ヘルマンかぎ交換こうかん(かぎこうかん)とは、事前じぜん秘密ひみつ共有きょうゆうしに、盗聴とうちょう可能かのうせいのある通信つうしん使つかって、暗号あんごうかぎ共有きょうゆう可能かのうにする、公開こうかいかぎ暗号あんごう方式ほうしき暗号あんごうプロトコルである。このかぎは、共通きょうつうかぎ暗号あんごうかぎとして使用しよう可能かのうである。

概要がいよう

[編集へんしゅう]

1976ねんにスタンフォード大学だいがくの2めい研究けんきゅういんホイットフィールド・ディフィーマーティン・ヘルマンは、公開こうかいかぎ暗号あんごう概念がいねん提案ていあんし、その具体ぐたいてき方式ほうしきひとつとして、ディフィー・ヘルマンかぎ共有きょうゆう(DHかぎ共有きょうゆう)プロトコルを提案ていあんした。このかぎ共有きょうゆう方式ほうしき共通きょうつうかぎ暗号あんごう方式ほうしきにおけるかぎわたしを安全あんぜんおこなうために提案ていあんされた方式ほうしきである。

このプロトコルは、通信つうしんおこないたい2しゃ各々おのおの公開こうかいかぎ秘密ひみつかぎ私有しゆうかぎともいう)を用意よういし、公開こうかいかぎのみを相手あいて送信そうしんし、各自かくじ自分じぶん秘密ひみつかぎ受信じゅしんした公開こうかいかぎから共通きょうつうかぎ作成さくせいできる方法ほうほうである。たとえ送受信そうじゅしんされるデータ(すなわち、二人ふたり公開こうかいかぎ)を第三者だいさんしゃがすべて盗聴とうちょうしていてもそれからでは(計算けいさん量的りょうてきに)私有しゆうかぎ共通きょうつうかぎ生成せいせいすることができないところ特徴とくちょうがある。

アメリカ合衆国あめりかがっしゅうこくカナダ特許とっきょ取得しゅとくされた。両国りょうこくでのアルゴリズムの特許とっきょ期限きげんすで1997ねん4がつ29にちれたので、現在げんざいではだれでも自由じゆう利用りようができる。

プロトコルの内容ないよう

[編集へんしゅう]

この方式ほうしき以下いかのようにおこなわれる。まずおおきな素数そすう と、 おおきな素数そすう 用意よういする。また、 もとであり、すう であるとする。この 公開こうかいされているものとする[1]

いまアリスとボブが通信つうしんおこなうとする。このときアリスとボブはおたが自分じぶんだけの秘密ひみつ a, b選択せんたくする、このは 0 以上いじょう q−1 以下いかなかからランダムえらぶ。(ここで、ゼロやちいさなga < p となる a ひとし)を選択せんたくすると安全あんぜんせいそこなわれるが、そのようなかくりつ無視むしできるほどちいさい。)

アリスは以下いか A計算けいさんしてそれをボブに送信そうしんする。

ボブも同様どうよう以下いか B計算けいさんしてそれをアリスに送信そうしんする。

アリスは自分じぶんだけの秘密ひみつ a とボブからおくられてきて受信じゅしんした B から以下いか計算けいさんする。

ボブも自分じぶんだけの秘密ひみつ b とアリスからおくられてきて受信じゅしんした A から以下いか計算けいさんする。

このときアリスとボブが計算けいさんした

となっていて一致いっちするので、以後いごこの共通きょうつうかぎ暗号あんごう方式ほうしきかぎとして使用しようする。

ここで第三者だいさんしゃイブがこの二人ふたり通信つうしん傍受ぼうじゅしていて AB入手にゅうしゅできたとしても、 から 多項式たこうしき時間じかん計算けいさんできる方法ほうほうはいまのところられていないので、第三者だいさんしゃイブが秘密ひみつ共通きょうつうかぎ生成せいせいすることは困難こんなんである。このためアリスとボブが安全あんぜん通信つうしんおこなうことが可能かのうになる。

しかしながらたとえば、イブがボブになりすましをしていて、そうとはらずに上記じょうき手順てじゅんでアリスが(相手あいてがボブだとおもってだまされて)相互そうご通信つうしんをして共通きょうつうかぎつくったとすると、それ以降いこうのアリスからボブを相手あいてとして想定そうていしておくった共通きょうつうかぎとして暗号あんごうされた通信つうしん内容ないようすべては,イブによって容易ようい内容ないよう解読かいどくされてしまうことに注意ちゅうい必要ひつようである。


なお、ディフィーとヘルマンによる最初さいしょ論文ろんぶんにおいては、 として生成せいせいもともちいることが提案ていあんされているが、この場合ばあい、アリスがおくった ルジャンドル記号きごう計算けいさんすることによって、アリスの秘密ひみつ情報じょうほう 最下位さいかいビットが漏洩ろうえいしてしまう[2]

ちゅうあいだしゃ攻撃こうげき

[編集へんしゅう]

ディフィー・ヘルマンかぎ共有きょうゆう自体じたい認証にんしょう手段しゅだん提供ていきょうするものではないため、単独たんどくではちゅうあいだしゃ攻撃こうげきたいして脆弱ぜいじゃくである。

ここではディフィー・ヘルマンかぎ共有きょうゆうにおけるちゅうあいだしゃ攻撃こうげき具体ぐたいてき手順てじゅんについてしめす。

DNS偽装ぎそうARPスプーフィング・その手段しゅだんにより攻撃こうげきしゃイブがこの二人ふたり通信つうしん中継ちゅうけいして ABを(本来ほんらい宛先あてさきにはおくらずに)ぬすったとする。

このとき攻撃こうげきしゃイブはそれらにたいして秘密ひみつ cd選択せんたくする。このabおな基準きじゅん選択せんたくされる。

攻撃こうげきしゃイブは cもちいてつぎ計算けいさんして(アリスになりすまして)ボブに送信そうしんする。

また dもちいてつぎ計算けいさんして(ボブになりすまして)アリスに送信そうしんする。

ボブは自身じしん秘密ひみつ b と(アリスからだとおもって,実際じっさいには攻撃こうげきしゃイブから)受信じゅしんしたから以下いか計算けいさんする。

アリスは自身じしん秘密ひみつ a と(ボブからだとおもって,実際じっさいには攻撃こうげきしゃイブから)受信じゅしんしたから以下いか計算けいさんする。

攻撃こうげきしゃイブは自身じしん秘密ひみつ cd と(中継ちゅうけいせずにった)アリスからの A とボブからの Bから以下いかをそれぞれ計算けいさんする。

このときアリスと(ボブになりすました)攻撃こうげきしゃイブの計算けいさんした,およびボブと(アリスになりすました)攻撃こうげきしゃイブの計算けいさんした

になってそれぞれが一致いっちする。

そうしてそれ以降いこう通信つうしんにおいて攻撃こうげきしゃイブは,これら2つのをそれぞれアリスおよびボブにたいする共通きょうつうかぎ暗号あんごう方式ほうしきかぎとして使用しようしてアリスとボブの通信つうしん中継ちゅうけいつづけて、盗聴とうちょうかいざんをおこなうことができる。

公開こうかいかぎ選択せんたく

[編集へんしゅう]

公開こうかいかぎは(なにかしらの証明しょうめいけた)静的せいてきなものであっても、一時いちじてきなもの(ephemeral、この場合ばあいとくDHE略記りゃっきされる)であってもかまわない。一時いちじてきかぎ使用しようした場合ばあいかぎそのものには認証にんしょうがないため、べつ方法ほうほう認証にんしょうおこなうこととなる。もし認証にんしょうがなければ、上述じょうじゅつとおちゅうあいだしゃ攻撃こうげきたいして脆弱ぜいじゃくとなる。どちらか一方いっぽうかぎ静的せいてきなものであった場合ばあい中間なかましゃ攻撃こうげきけることはなくなるが、forward secrecyのような、その高度こうどなセキュリティにあずかることはできなくなる。静的せいてきかぎがわでは、自身じしん秘密ひみつかぎ漏洩ろうえいふせぐため、相手あいて公開こうかいかぎ確認かくにんして、安全あんぜん共通きょうつうかぎ生成せいせい関数かんすう利用りようする必要ひつようがある。

共有きょうゆうした秘密ひみつをそのままかぎとして使つかうこともできなくはないが、ディフィー・ヘルマンかぎ共有きょうゆう生成せいせいしたことによってできるよわいビットの影響えいきょう除去じょきょするため、秘密ひみつをハッシュにとおすことが推奨すいしょうされる[3]

問題もんだいてん

[編集へんしゅう]

処理しょり負荷ふか

[編集へんしゅう]

ディフィー・ヘルマンかぎ共有きょうゆう負荷ふかのかかる処理しょりであり、SSL/TLS適用てきようした場合ばあいでは、通常つうじょうRSA暗号あんごうによるかぎ交換こうかん場合ばあい比較ひかくして、サーバのスループットが6ぶんの1程度ていどまでむという実験じっけん結果けっか存在そんざいする[4]

パラメータの設定せっていミス

[編集へんしゅう]

これはディフィー・ヘルマンかぎ共有きょうゆうのシステム自体じたい存在そんざいする問題もんだいではないが、2013ねん調査ちょうさでは、SSL/TLSでディフィー・ヘルマンかぎ共有きょうゆう有効ゆうこうとしているサーバのうち、電子でんし署名しょめいのビットすうよりDHのビットすうのほうがちいさく、そうたり攻撃こうげきたいしてよわくなってしまっているサーバが、じつに80%以上いじょう割合わりあい存在そんざいしていた[5]

じゃくかぎ存在そんざいと Logjam 攻撃こうげき

[編集へんしゅう]

原理げんりじょう解読かいどくがきわめて困難こんなんではあるが、実装じっそうじょう問題もんだい存在そんざいする場合ばあいには解読かいどく可能かのうとなる場合ばあいがある。

また原理げんりじょう使つかわれている素数そすうたいして十分じゅうぶんりょう事前じぜん計算けいさんおこなえば、その素数そすうたいしては比較的ひかくてきみじか時間じかんかぎ解読かいどくすることができる (いいかえれば、その素数そすうじゃくかぎにすることができる)[6]2015ねん、このことをもとにした論文ろんぶん発表はっぴょうされた[7]

この論文ろんぶんにおいて、Alexaによるトップ100まんHTTPSドメインのなかで512ビット輸出ゆしゅつばんDHEを許可きょかしている 8.4% のうち 82% が、1024ビット輸出ゆしゅつばんDHEでもトップドメイン全体ぜんたいの 17.9% がそれぞれ単一たんいつ素数そすう使つかまわしており、これらの素数そすうたいして事前じぜん計算けいさん (あるしゅ線形せんけい代数だいすう計算けいさんふくむ) をおこなうことでおおくのサーバーの通信つうしんたいして解読かいどくおこなえることを指摘してきした。とくに512ビットの素数そすうたいして解読かいどく実証じっしょうし、すうせんコアとやく8にち事前じぜん計算けいさんにより、およそ70びょう解読かいどくができることをしめした[7]

さらに、サーバーがもちいる素数そすうについての離散りさん対数たいすう問題もんだいリアルタイムでける攻撃こうげきしゃ存在そんざいした場合ばあいには、たとえクライアントがわよわいDHEを許可きょかしていなくてもにせのサーバーに接続せつぞくさせるちゅうあいだしゃ攻撃こうげき成立せいりつし、たとえばサーバーがわが512ビットの輸出ゆしゅつばんDHEをゆるしている場合ばあいには、輸出ゆしゅつばんDHEを許可きょかしていないあたらしいクライアントであっても通信つうしんをダウングレードさせることが可能かのうであることをしめした (Logjam 攻撃こうげき)[7]

どう論文ろんぶんは1024ビットの輸出ゆしゅつばんDHEについても、すうおくドルのコストをかけて専用せんようハードウェアを構築こうちくした場合ばあいには、1つの素数そすうたいして十分じゅうぶん線形せんけい代数だいすう計算けいさんを1年間ねんかん実行じっこうできる可能かのうせいがあることを示唆しさしている[7]

脚注きゃくちゅう

[編集へんしゅう]
  1. ^ RFC 5114(Additional Diffie-Hellman Groups for Use with IETF Standards、2008ねん8がつ)や RFC 7919(Negotiated Finite Field Diffie-Hellman Ephemeral Parameters for Transport Layer Security (TLS)、2016ねん8がつ)のように、ひろ公開こうかいされてもちいられる (p,q,g)くみ存在そんざいする。
  2. ^ Dan, Boneh (1998), “The Decision Diflie-Hellman Problem”, Algorithmic Number Theory. ANTS 1998, LNCS 1423, https://doi.org/10.1007/BFb0054851 2021ねん12月24にち閲覧えつらん 
  3. ^ Law, Laurie; Menezes, Alfred; Qu, Minghua; Solinas, Jerry; Vanstone, Scott (August 28, 1998). An Efficient Protocol for Authenticated Key Agreement. Certicom. http://download.certicom.com/pdfs/corr98-05.pdf 2012ねん1がつ19にち閲覧えつらん. 
  4. ^ Symantec (2013)、pp.13-14。
  5. ^ Symantec (2013)、p.9。
  6. ^ Diffie, Whitfield; Oorschot, Paul C. Van; Wiener, Michael J. (1992-03-06), “Authentication and Authenticated Key Exchanges”, Designs, Codes and Cryptography, http://people.scs.carleton.ca/~paulv/papers/sts-final.pdf 2017ねん12月24にち閲覧えつらん 
  7. ^ a b c d Adrian, David; Bhargavan, Karthikeyan; Durumeric, Zakir; Gaudry, Pierrick; Green, Matthew; Halderman, J. Alex; Heninger, Nadia; Springall, Drew et al. (2015-10), Imperfect Forward Secrecy:How Diffie-Hellman Fails in Practice, https://weakdh.org/imperfect-forward-secrecy-ccs15.pdf 2017ねん12月24にち閲覧えつらん 

参考さんこう文献ぶんけん

[編集へんしゅう]

関連かんれん項目こうもく

[編集へんしゅう]

外部がいぶリンク

[編集へんしゅう]