跳至內容

迪菲-赫爾曼金鎖交換

出自Taiwan Tongues 台語維基
這是此頁批准,以及是最近的修訂。

迪菲-赫爾曼密鎖交換(英語:Diffie–Hellman key exchange,縮寫為 D-H)是一種安全協定。伊會當予雙方佇完全無對方任何預先資訊的條件下通過無安全信道建立起一个金鎖。這个金鎖會當佇後續的通訊中作為對稱金鎖來加密通訊內容。公鎖交換的概念上早是由瑞夫 ・ 墨克(Ralph C . Merkle)提出,這个密鎖交換方法,由惠特菲爾德 ・ 迪菲(Bailey Whitfield Diffie)佮馬丁 ・ 赫爾曼(Martin Edward Hellman)佇咧一九七六年頭一改發表。馬丁 ・ 赫爾曼曾主張這个密鎖交換方法,應該予人叫做迪菲-赫爾曼-墨克密鎖交換(英語:Diffie–Hellman–Merkle key exchange)。

迪菲-赫爾曼金鎖交換的同義詞包括 :

  • 迪菲-赫爾曼金鎖協商
  • 迪菲-赫爾曼金鎖建立
  • 指數金鎖交換
  • 迪菲-赫爾曼協定

雖然迪菲-赫爾曼金鎖交換本身是一个無頭路(沒認證)的金鎖交換協定,伊煞是足濟認證協定的基礎。

該協定的歷史

迪菲-赫爾曼金鎖交換是佇美國密碼學家惠特菲爾德 ・ 迪菲佮馬丁 ・ 赫爾曼的合作下發明的,發表佇一九七六年。伊是第一个實用的佇非保護信道中建立共享金鎖方法。伊受著矣瑞夫 ・ 墨克的關於公鎖分配工作的影響。約翰 ・ 吉爾(John Gill)提出了離散對數問題的應用。這个方案代先予英國 GCHQ 的馬爾科姆 ・ J ・ 威廉森(Malcolm J . Williamson)佇咧古早幾冬前發明,猶毋過 GCHQ 一直到一九九七年才決定欲共其公開,這陣佇學術界已經無矣研究這个演算法的風潮矣。

這个方法予人發明無偌久出現矣 RSA,另外一个進行公鎖交換的演算法。伊使用非對稱加密演算法。

二空空二年,馬丁 ・ 赫爾曼寫著彼:

> 咱這个系統 . . . 從此予人叫做「迪菲-赫爾曼金鎖交換」。 雖然這个系統首先是佇我佮迪菲的一篇論文中描述的,但是這煞是一个公鎖交換系統,是墨克提出的概念,因此若加上伊的名,這个系統實際上應該稱為「Diffie–Hellman–Merkle 金鎖交換」。 我希望這个小小的講壇會當幫助阮熟似著墨克對公鎖密碼學的同等重要的貢獻。 > >

> The system . . . has since become known as Diffie–Hellman key exchange . While that system was first described in a paper by Diffie and me , it is a public key distribution system , a concept developed by Merkle , and hence should be called'Diffie–Hellman–Merkle key exchange'if names are to be associated with it . I hope this small pulpit might help in that endeavor to recognize Merkle's equal contribution to the invention of public key cryptography . [一] > >

來講這个欸演算法的美國專利第四乎 , 兩百 , 七百七十號,已經佇一九九七年四月二九了後過期,專利檔案表明矣 Hellman、Diffie 和 Merkle 是演算法的發明者。

是咧講

迪菲-赫爾曼通過公共信道交換一个資訊,就會當建立一个會當用佇咧公共信道頂懸安全通信的共享秘密。

以下解說伊的過程(包括演算法的數學的部份):

上簡單,上早提出這協定使用一个質數 _ p _ 的整數模 n 乘法群和其原根 _ g _。下跤展示這个演算法,綠色表示非秘密的資訊,紅色粗體表示秘密資訊:

愛麗絲佮鮑伯終其尾攏得著仝款的值,因為咧模乎 _ p _ 落 $ g ^ { ab } $ 和 $ g ^ { ba } $ 相仝。注意 _ a _ , _ b _ 和 _ gab=gba _ mod _ p _ 是祕密的。其他所有的價值–_ p _ , _ g _ , _ ga mod p _ , 以及 _ gb mod p _–攏會當佇公共信道上傳達。一旦愛麗絲佮鮑伯提出公共秘密,𪜶就會當共用做對稱金鎖,以行雙方的加密通訊,因為這个金鎖干焦𪜶才會當得著。 當然喔,為著欲予這个例變了安全,著愛使用非常大的 _ a _ , _ b _ 以及 _ p _,若無會當實驗所有的 $ g ^ { ab } { \ bmod { 二十三 } } $ 的可能取值 ( 攏總上濟二十二个這款的值,就算講 _ a _ 和 _ b _ 真大嘛無代誌通好做 )。若是 _ p _ 是一个至少三百位的質數,並且 _ a _ 和 _ b _ 至少有一百位長,即使用全人類所有的計算資源佮現此時上好的演算法嘛無可能自 _ g _ , _ p _ 和 _ ga _ mod _ p _ 中計算出 _ a _。這个問題就是出名的離散著數問題。注意 _ g _ 著無需要足大的,並且佇一般的實踐中通常是二抑是五。IETF RFC 三千五百二十六文件內底有幾定用的大質數可供使用。

以下是一个閣較為一般的來講 :

一 . 愛麗絲佮鮑伯協商一个有限迴圈群 _ G _ 佮伊的一个生成元 _ g _。(這通常咧協定開始真久進前就已經規定好;_ g _ 是公開的,會當去予所有的攻擊者看著。) 二 . 愛麗絲選擇隨機隨機 _ a _ 而且將 $ g ^ { a } { \ bmod { p } } $ 傳送予鮑伯。 三 . 鮑伯選擇一个隨機自然數 _ b _ 而且將 $ g ^ { b } { \ bmod { p } } $ 傳送予愛麗絲。 四 . 愛麗絲計算 $ \ left ( g ^ { b } \ right ) ^ { a } { \ bmod { p } } $。 五 . 鮑伯計算 $ \ left ( g ^ { a } \ right ) ^ { b } { \ bmod { p } } $。

愛麗絲和鮑伯就同時協商出群元素 $ g ^ { ab } $,伊會當用做予享秘密。$ \ left ( g ^ { b } \ right ) ^ { a } $ 和 $ \ left ( g ^ { a } \ right ) ^ { b } $ 因為群是乘法交換的。( 見冪 . )

圖示

下跤的圖樣會當方便你理解逐个資訊攏干焦啥人知影。(他芙是一個竊聽者—— 伊會當看著愛麗絲佮鮑伯的通訊內容,但是對無法度改變𪜶)

  • Let s=共享金鎖。s=二
  • Let a=愛麗絲的私鎖。如 a=六
  • Let A=愛麗絲的公鎖。如 A=ga mod p=八
  • Let b=鮑伯的私鎖。如 b=十五
  • Let B=鮑伯的公鎖。如 B=gb mod p=十九
  • Let g=公共原根。如 g=五
  • Let p=公共質數。如 p=二十三注意:對愛麗絲來講放鮑伯的私鎖抑是鮑伯欲敨開愛麗絲的私鎖應該攏真困難。若對愛麗絲來講放鮑伯的私鎖不難的話(反之亦然), 伊芙會當輕易地替換掉伊家己的私鎖 / 公鎖著,共鮑伯的公鎖插著伊家己的私鎖,產生出一个假的共享密鎖,並且解開鮑伯的私鎖(然後用這个敨放共享私鎖。伊芙可以試擇一个會當予伊輕鬆解開鮑伯的私鎖的公鎖 / 私鎖著)。

安全性

佇咧選擇矣會合的 _ G _ 和 _ g _ 時,這个協定予人認為是竊聽安全的。偷聽者(" Eve ")可能著愛通過求解迪菲-赫爾曼問題來得著 _ g _ ab。佇咧當前,這予人認為是一个困難問題。若出現了一个高效的解決離散對數問題的演算法,遐爾仔會使用伊來簡化 _ a _ 抑是講 _ b _ 的計算,遐爾仔也就會當用來解決迪菲-赫爾曼問題,予包括本系統在內的足濟公鎖密碼學系統變甲無安全。

_ G _ 的階應當是一个素數,抑是講伊有一个有夠大的素因子以防止使用 Pohlig–Hellman 演算法來得著 _ a _ 抑是講 _ b _。因為這个原因,一个索菲熱爾曼素數 _ q _ 會當用來計算素數 _ p=二 q + 一 _,按怎 _ p _ 講號做安全素數,因為使用伊了後 _ G _ 的階干焦會當被二和 _ q _ 整除。_ g _ 有時去予人選擇做 _ G _ 的 _ q _ 階子群的生成元,毋是 _ G _ 本身的生成元,按呢乎 _ ga _ 的咧予德符號將袂顯示出來 _ a _ 的低位。

若是 Alice 和 Bob 使用的亂數生成器袂當做到完全隨機並且對某一種程度上講是會當預測的,遐爾 Eve 的工課共遮的簡單的濟。

臨時 DH(D-H Ephemeral,DHE)會當提供前向的安全性。

身份驗證

佇咧上早的描述,迪菲-赫爾曼金鎖交換這个本身並無提供通訊雙方的身分驗證服務,所以伊真容易受著中央人攻擊。一个中央人咧信道的中央進行兩改迪菲-赫爾曼金鎖交換,一改和 Alice 另外一改佮 Bob,就會當成功的向 Alice 假影家己是 Bob,反之亦然。攻擊者會當解密(讀佮儲存)任何一个人的資訊閣重新加密資訊,才閣傳予另外一个人。因此通常攏需要一个會當驗證通訊雙方身份的機制來防止這類攻擊。

有真濟種的安全身份驗證解決方案使用著矣迪菲-赫爾曼金鎖交換。當 Alice 和 Bob 共有一个公鎖基礎設施的時陣,𪜶會當將𪜶的倒轉去金鎖進行簽章,嘛會使像 MQV 彼號簽章 _ g _ a 和 _ g _ b;STS 以及 IPsec 協定的 IKE 組件已經成做矣 Internet 協定的一部份;當 Alice 和 Bob 共享一个口令的時陣,𪜶閣會使對迪菲-赫爾曼演算法使用口令認證金鎖協商,類似 ITU-T 的建議 X . 一千空三十五。這已經予人用作矣 G . hn 的家庭網路標準。

參見

  • 密碼學頭頁
  • 模算術
  • 雞卵行曲線迪菲-赫爾曼
  • 公鎖密碼學
  • ElGamal 加密演算法
  • 迪菲-赫爾曼問題
  • MQV
  • 口令認證金鎖協商
  • 前向安全性

參照

  • Dieter Gollmann ( 二千空六 ) . _ Computer Security Second Edition _ West Sussex , England : John Wiley & Sons , Ltd .
  • Non-Secret Encryption Using a Finite Field MJ Williamson , January 二十一 , 一千九百七十四 .
  • Thoughts on Cheaper Non-Secret Encryption MJ Williamson , August 十 , 一千九百七十六 .
  • New Directions in Cryptography W . Diffie and M . E . Hellman , IEEE Transactions on Information Theory , vol . IT 鋪二十二 , Nov . 一千九百七十六 , pp : 六百四十四–六仔五十四 .
  • Cryptographic apparatus and method Martin E . Hellman , Bailey W . Diffie , and Ralph C . Merkle , U . S . Patent # 四 , 兩百 , 七仔七仔 , 二十九 April 一千九百八十
  • The History of Non-Secret Encryption JH Ellis 一千九百八十七 ( 二十八 K PDF file ) ( HTML version )
  • The First Ten Years of Public-Key Cryptography Whitfield Diffie , Proceedings of the IEEE , vol . 七十六 , no . 五 , May 一千九百八十八 , pp : 五百六十–五百七十七 ( 一孵九 MB PDF file )
  • Menezes , Alfred ; van Oorschot , Paul ; Vanstone , Scott ( 一千九百九十七 ) . _ Handbook of Applied Cryptography _ Boca Raton , Florida : CRC Press . ISBN 空九八千四百九十三分八五百二十三鋪七 . ( Available online )
  • Singh , Simon ( 一千九百九十九 ) _ The Code Book : the evolution of secrecy from Mary Queen of Scots to quantum cryptography _ New York : Doubleday ISBN 空九三百八十五五鋪四九千五百三十一鋪五
  • An Overview of Public Key Cryptography Martin E . Hellman , IEEE Communications Magazine , May 兩千空二 , pp : 四十二–四十九 . ( 一百二三 kB PDF file )

外部連結

  • Oral history interview with Martin Hellman , Charles Babbage Institute , University of Minnesota . Leading cryptography scholar Martin Hellman discusses the circumstances and fundamental insights of his invention of public key cryptography with collaborators Whitfield Diffie and Ralph Merkle at Stanford University in the mid 被一千九百七十 s .
  • RFC 兩千六百三十一–_ Diffie–Hellman Key Agreement Method _ E . Rescorla June 一千九百九十九 .
  • _ Summary of ANSI X 九九尺四二 : Agreement of Symmetric Keys Using Discrete Logarithm Cryptography _ ( 六十四 K PDF file ) ( Description of ANSI 九 Standards )
  • Diffie–Hellman explained visually
  • Diffie–Hellman Key Exchange–A Non-Mathematician’s Explanation by Keith Palmgren
  • Crypt : : DH Perl module from CPAN
  • Hands-on Diffie–Hellman demonstration
  • C implementation using GNU Multiple Precision Arithmetic Library
  • Diffie Hellman in 二 lines of Perl ( using dc )
  • Smart Account Management ( SAcct ) ( using DH key exchange to derive session key )