-
Diffie-Hellman密鑰協議算法
鎖定
- 中文名
- 迪菲-赫爾曼秘鑰交換
- 外文名
- Diffie-Hellman
- 提出者
- Whitefield與Martin Hellman
- 提出時間
- 1976年
- 適用領域
- 安全通信
- 用 途
- 交換密鑰
Diffie-Hellman密鑰協議算法建立方法
Diffie-Hellman是由Whitfield Diffie和Martin Hellman在1976年公佈的一種密鑰一致性算法。Diffie-Hellman是一種建立密鑰的方法,而不是加密方法。然而,它所產生的密鑰可用於加密、進一步的密鑰管理或任何其它的加密方式。Diffie-Hellman密鑰交換算法及其優化首次發表的公開密鑰算法出現在Diffie和Hellman的論文中,這篇影響深遠的論文奠定了公開密鑰的密碼編碼學。
[1]
Diffie-Hellman密鑰協議算法定義
由於Diffie-Hellman算法本身限於密鑰交換的用途,被許多商用產品用作密鑰交換技術,因此該算法通常可以被稱為Diffie-Hellman密鑰交換(簡寫為DH算法,基於DH算法的密鑰交換通常也被稱為DH交換)
[2]
。這種密鑰交換技術的目的在於使得兩個用户安全地交換一個秘密密鑰以便用於以後的報文加密. Diffie-Hellman密鑰交換算法的有效性依賴於計算離散對數的難度.簡言之,可以如下定義離散對數:首先定義一個素數p的原根,為其各次冪產生從1 到p-1的所有整數根,也就是説,如果a是素數p的一個原根,那麼數值 a mod p,a2 mod p,...,ap-1 mod p 是各不相同的整數,並且以某種排列方式組成了從1到p-1的所有整數. 對於一個整數b和素數p的一個原根a,可以找到惟一的指數i,使得 b = a^i mod p 其中0 ≤ i ≤ (p-1)指數i稱為b的以a為基數的模p的離散對數或者指數。
Diffie-Hellman密鑰協議算法算法描述
基於原根的定義及性質,可以定義Diffie-Hellman密鑰交換算法。該算法描述如下:
2,假設用户A和B希望交換一個密鑰,用户A選擇一個作為私有密鑰的隨機數XA(XA<q),並計算公開密鑰YA=a^XA mod q。A對XA的值保密存放而使YA能被B公開獲得。類似地,用户B選擇一個私有的隨機數XB<q,並計算公開密鑰YB=a^XB mod q。B對XB的值保密存放而使YB能被A公開獲得.
3,用户A產生共享秘密密鑰的計算方式是K = (YB)^XA mod q.同樣,用户B產生共享秘密密鑰的計算是K = (YA)^XB mod q。這兩個計算產生相同的結果: K = (YB)^XA mod q = (a^XB mod q)^XA mod q = (a^XB)^XA mod q (根據取模運算規則得到) = a^(XBXA) mod q = (a^XA)^XB mod q = (a^XA mod q)^XB mod q = (YA)^XB mod q 因此相當於雙方已經交換了一個相同的秘密密鑰.
4,因為XA和XB是保密的,一個敵對方可以利用的參數只有q,a,YA和YB.因而敵對方被迫取離散對數來確定密鑰.例如,要獲取用户B的秘密密鑰,敵對方必須先計算 XB = inda,q(YB) 然後再使用用户B採用的同樣方法計算其秘密密鑰K。Diffie-Hellman密鑰交換算法的安全性依賴於這樣一個事實:雖然計算以一個素數為模的指數相對容易,但計算離散對數卻很困難。對於大的素數,計算出離散對數幾乎是不可能的。
[3]
下面給出例子:密鑰交換基於素數q = 97和97的一個原根a = 5.A和B分別選擇私有密鑰XA = 36和XB = 58.每人計算其公開密鑰 YA = 5^36 = 50 mod 97 YB = 5^58 = 44 mod 97 在他們相互獲取了公開密鑰之後,各自通過計算得到雙方共享的秘密密鑰如下: K = (YB)^XA mod 97 = 44^36 = 75 mod 97 K = (YA)^XB mod 97 = 50^58 = 75 mod 97 從|50,44|出發,攻擊者要計算出75很不容易.[1]
Diffie-Hellman密鑰協議算法優點與缺點
Diffie-Hellman密鑰協議算法優點
1、僅當需要時才生成密鑰,減小了將密鑰存儲很長一段時間而致使遭受攻擊的機會。
2、除對全局參數的約定外,密鑰交換不需要事先存在的基礎結構。
Diffie-Hellman密鑰協議算法缺點
1、沒有提供雙方身份的任何信息。
2、它是計算密集性的,因此容易遭受阻塞性攻擊,即對手請求大量的密鑰。受攻擊者花費了相對多的計算資源來求解無用的冪係數而不是在做真正的工作。
3、沒辦法防止重演攻擊。
(1)B在給A的報文中發送他的公開密鑰。
(2)C截獲並解析該報文。C將B的公開密鑰保存下來並給A發送報文,該報文具有B的用户ID但使用C的公開密鑰YC,仍按照好像是來自B的樣子被髮送出去。A收到C的報文後,將YC和B的用户ID存儲在一塊。類似地,C使用YC向B發送好像來自A的報文。
(3)B基於私有密鑰XB和YC計算秘密密鑰K1。A基於私有密鑰XA和YC計算秘密密鑰K2。C使用私有密鑰XC和YB計算K1,並使用XC和YA計算K2。
Diffie-Hellman密鑰協議算法優化方法
Diffie-Hellman密鑰協議算法改進特徵
1、它採用稱為cookie程序的機制來對抗阻塞攻擊。
2、它使得雙方能夠協商一個全局參數集合。
3、它使用了現時來保證抵抗重演攻擊。
4、它能夠交換Diffie-Hellman公開密鑰。
5、它對Diffie-Hellman交換進行鑑別以對抗中間人攻擊。
Diffie-Hellman密鑰協議算法鑑別方法
- 參考資料
-
- 1. 姚曄, 宋詩瑤. Diffie-Hellman密鑰交換算法及其實現[J]. 計算機光盤軟件與應用, 2011(3):43-44.
- 2. 汪志達, 葉偉. Diffie-Hellman密鑰交換的算法實現與應用研究[J]. 計算機應用與軟件, 2008, 25(5):260-261.
- 3. 張悦, 鄭東, 張應輝. 一種基於Diffie—Hellman協議的秘密共享算法[J]. 計算機技術與發展, 2015, 25(12):123-127.
- 4. 方勇, 周安民, 劉嘉勇,等. Oakley密鑰確定協議[J]. 計算機工程與應用, 2003, 39(24):148-149.
- 5. 吳素研, 李瑛, 胡祥義,等. 基於組合對稱密鑰帶加密數字簽名方法的研究[J]. 電子科技大學學報, 2009, 38(s1):75-78.
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:4次歷史版本
- 最近更新: 阿妧云