橢圓曲線迪菲-赫爾曼金鑰交換

橢圓曲線迪菲-赫爾曼金鑰交換(Diffie–Hellman key exchange)是一種通過公共信道安全地交換密碼密鑰的方法,並且是最初由Ralph Merkle概念化並以Whitfield Diffie和Martin Hellman命名的公鑰協定之一。 1] [2] DH是在密碼學領域內實施的最早的公鑰交換的實例之一。

基本介紹

  • 中文名:橢圓曲線迪菲-赫爾曼金鑰交換
  • 外文名:Diffie–Hellman key exchange
介紹,名稱,安全,其他用途,

介紹

傳統上,雙方之間的安全加密通信要求它們首先通過某些安全的物理信道交換密鑰,例如由可信賴的快遞員傳送的紙質密鑰列表。 Diffie-Hellman密鑰交換方法允許彼此不具有先驗知識的兩方在不安全信道上共同建立共享密鑰。然後,該密鑰可用於使用對稱密鑰密碼加密後續通信。
Diffie-Hellman用於保護各種Internet服務。然而,2015年10月發布的研究表明,當時許多DH網際網路應用程式使用的參數不足以防止資金充足的攻擊者(例如大型政府的安全服務機構)妥協。
該計畫最初由Whitfield Diffie和Martin Hellman於1976年出版,但在1997年,據透露,James H. Ellis, Clifford Cocks和英國信號情治單位GCHQ的Malcolm J. Williamson ,在1969年,顯示了如何實現公鑰加密。
儘管Diffie-Hellman密鑰協定本身是一種非認證的密鑰協商協定,但它為各種經過身份驗證的協定提供了基礎,並用於在傳輸層安全性的短暫模式中提供前向保密(稱為EDH或DHE,具體取決於密碼套件)。
不久之後,RSA採用了該方法,這是一種使用非對稱算法的公鑰加密技術。1977年的美國專利4,200,770現已過期,並描述了公共域算法。它將Hellman,Diffie和Merkle視為發明者。

名稱

2002年,Hellman建議將該算法稱為Diffie-Hellman-Merkle密鑰交換,以表彰Ralph Merkle對公鑰密碼學發明的貢獻(Hellman,2002)。
該系統後來被稱為Diffie-Hellman密鑰交換。 雖然該系統最初是由Diffie和我在一篇論文中描述的,但它是一個公鑰分配系統,由Merkle開發的概念,因此如果要與名稱相關聯,則稱為“Diffie-Hellman-Merkle密鑰交換”。

安全

如果正確選擇G和g,則認為該協定對於竊聽者是安全的。特別是,組G的順序必須很大,特別是如果相同的組用於大量的流量。竊聽者(“夏娃”)必須解決Diffie-Hellman問題以獲得瞎扯。對於訂單足夠大的組,認為這很困難。解決離散對數問題的有效算法可以很容易地計算a或b並解決Diffie-Hellman問題,使得這個和許多其他公鑰密碼系統不安全。小特徵的領域可能不太安全。
G的順序應該具有大的素因子以防止使用Pohlig-Hellman算法來獲得a或b。由於這個原因,索菲日耳曼素數q有時被用來計算p = 2q + 1,稱為安全素數,因為G的階數只能被2和q整除。然後有時選擇g來生成G的階q子群而不是G,以便ga的勒讓德符號從不顯示a的低階位。使用這種選擇的協定例如是IKEv2。
g通常是小整數,例如2.由於離散對數問題的隨機自還原性,小g與同一組的任何其他發生器同樣安全。
如果Alice和Bob使用隨機數生成器,其輸出不是完全隨機的並且可以在某種程度上預測,那么Eve的任務就容易多了。
在最初的描述中,Diffie-Hellman交換本身不提供通信方的認證,因此容易受到中間人攻擊。 Mallory(執行中間人攻擊的主動攻擊者)可以建立兩個不同的密鑰交換,一個與Alice,另一個與Bob,有效地偽裝成Alice到Bob,反之亦然,允許她解密,然後重新-encrypt,它們之間傳遞的訊息。請注意,Mallory必須繼續處於中間位置,每次Alice和Bob通信時都會傳輸訊息。如果她一直缺席,那么她以前的存在就會透露給Alice和Bob。他們會知道他們所有的私人談話都被頻道中的某人攔截和解碼。
通常需要一種對彼此通信方進行認證的方法來防止這種類型的攻擊。可以使用諸如STS協定的Diffie-Hellman的變體來避免這些類型的攻擊。

其他用途

加密
已經提出了基於Diffie-Hellman密鑰交換的公鑰加密方案。第一個這樣的方案是ElGamal加密。更現代的變體是集成加密方案。
前衛保密
實現前向保密的協定會為每個會話生成新的密鑰對,並在會話結束時將其丟棄。 Diffie-Hellman密鑰交換是這種協定的常用選擇,因為它可以快速生成密鑰。
密碼驗證密鑰協定
當Alice和Bob共享密碼時,他們可以使用Diffie-Hellman的密碼驗證密鑰協定(PK)形式來防止中間人攻擊。一個簡單的方案是將串聯的散列值與在通道兩端獨立計算的密碼進行比較。這些方案的一個特點是攻擊者只能在每次疊代時與另一方測試一個特定密碼,因此系統通過相對較弱的密碼提供良好的安全性。這種方法在ITU-T X.1035建議書中描述,該建議由G.hn家庭網路標準使用。這種協定的一個例子是安全遠程密碼協定。
公鑰
也可以使用Diffie-Hellman作為公鑰基礎結構的一部分,允許Bob對訊息進行加密,以便只有Alice能夠對其進行解密,除了擁有Alice的公鑰的Bob之外,Bob之間沒有先前的通信。Alice的公鑰是(
mod
)。為了向她傳送訊息,Bob選擇隨機b,然後將Alice
mod
(未加密)與用對稱密鑰(
mod
加密的訊息一起傳送。只有Alice可以確定對稱密鑰並因此解密訊息,因為只有她有(私鑰)。預共享公鑰還可以防止中間人攻擊。
在實踐中,Diffie-Hellman不是以這種方式使用的,RSA是主要的公鑰算法。這主要是出於歷史和商業原因,即RSA Security創建了一個成為Verisign的密鑰簽名的證書頒發機構。Diffie-Hellman不能用於簽署證書。然而, ElGamal和DSA簽名算法在數學上與其相關,以及用於保護網際網路協定通信的IPsec協定套件的MQV,STS和IKE組件。

相關詞條

熱門詞條

聯絡我們