Can you summarize the following document?
        
  迪菲-赫爾曼金鑰交換是在美國密碼學家惠特菲爾德·迪菲和馬丁·赫爾曼的合作下發明的,發表於1976年。它是第一個實用的在非保護通道中建立共享金鑰方法。它受到了瑞夫·墨克的關於公鑰分配工作的影響。約翰·吉爾(英語:John Gill)提出了離散對數問題的應用。該方案首先被英國GCHQ的馬爾科姆·J·威廉森(Malcolm J. Williamson)在稍早的幾年前發明,但是GCHQ直到1997年才決定將其公開,這時在學術界已經沒有了研究這個演算法的熱潮了。  這個方法被髮明後不久出現了RSA,另一個進行公鑰交換的演算法。它使用了非對稱加密演算法。  2002年,馬丁·赫爾曼寫到: 這個系統...從此被稱為「迪菲-赫爾曼金鑰交換」。 雖然這個系統首先是在我和迪菲的一篇論文中描述的,但是這卻是一個公鑰交換系統,是墨克提出的概念,因此如果加上他的名字,這個系統實際上應該稱為「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.  描述了這個演算法的,已經於1997年4月29日後過期,專利檔案表明了Hellman、Diffie和Merkle是演算法的發明者。

  迪菲-赫爾曼通過公共通道交換一個資訊,就可以建立一個可以用於在公共通道上安全通訊的共享祕密(shared secret)。  以下解釋它的過程(包括演算法的數學部分):  最簡單,最早提出的這個協議使用一個質數"p"的整數模n乘法群以及其原根"g"。下面展示這個演算法,綠色表示非祕密資訊, 紅色粗體表示祕密資訊:  愛麗絲和鮑伯最終都得到了同樣的值,因為在模"p"下formula_1和formula_2 相等。 注意"a", "b" 和 "g = g" mod "p" 是祕密的。 其他所有的值 – "p", "g", "g mod p", 以及 "g mod p" – 都可以在公共通道上傳遞。 一旦愛麗絲和鮑伯得出了公共祕密,他們就可以把它用作對稱金鑰,以進行雙方的加密通訊,因為這個金鑰只有他們才能得到。 當然,為了使這個例子變得安全,必須使用非常大的"a", "b" 以及 "p", 否則可以實驗所有formula_3的可能取值(總共有最多22個這樣的值, 就算"a"和"b"很大也無濟於事)。 如果 "p" 是一個至少 300 位的質數,並且"a"和"b"至少有100位長, 那麼即使使用全人類所有的計算資源和當今最好的演算法也不可能從"g", "p"和"g" mod "p" 中計算出 "a"。這個問題就是著名的離散對數問題。注意"g"則不需要很大, 並且在一般的實踐中通常是2或者5。IETF RFC3526 文件中有幾個常用的大質數可供使用。  以下是一個更為一般的描述:  愛麗絲和鮑伯就同時協商出群元素formula_1,它可以被用作共享祕密。formula_9和formula_10因為群是乘法交換的。 (見冪.)

  下面的圖示可以方便你理解每個資訊都只有誰知道。(伊芙是一個竊聽者——她可以看到愛麗絲和鮑伯的通訊內容,但是無法改變它們)  注意:對愛麗絲來說解開鮑伯的私鑰或鮑伯要解開愛麗絲的私鑰應該都很困難。如果對愛麗絲來說解開鮑伯的私鑰不難的話(反之亦然),伊芙可以輕易地替換掉她自己的私鑰/公鑰對,把鮑伯的公鑰插到她自己的私鑰,產生出一個假的共享金鑰,並解開鮑伯的私鑰(然後用這個解開共享私鑰。伊芙可以試著選擇一個能讓她輕鬆解開鮑伯的私鑰的公鑰/私鑰對)。

  在選擇了合適的"G"和"g"時,這個協議被認為是竊聽安全的。偷聽者("Eve")可能必須通過求解迪菲-赫爾曼問題來得到"g"。在當前,這被認為是一個困難問題。如果出現了一個高效的解決離散對數問題的演算法,那麼可以用它來簡化"a"或者"b"的計算,那麼也就可以用來解決迪菲-赫爾曼問題,使得包括本系統在內的很多公鑰密碼學系統變得不安全。  "G"的階應當是一個素數,或者它有一個足夠大的素因子以防止使用Pohlig–Hellman演算法來得到"a"或者"b"。由於這個原因,一個索菲熱爾曼素數 "q"可以用來計算素數"p=2q+1",這樣的"p"稱為安全素數,因為使用它之後"G"的階只能被2和"q"整除。"g"有時被選擇成"G"的"q"階子群的生成元,而不是"G"本身的生成元,這樣"g"的勒讓德符號將不會顯示出"a"的低位。  如果Alice和Bob使用的隨機數生成器不能做到完全隨機並且從某種程度上講是可預測的,那麼Eve的工作將簡單的多。  臨時DH(D-H Ephemeral,DHE)能夠達到前向安全性。

  在最初的描述中,迪菲-赫爾曼金鑰交換本身並沒有提供通訊雙方的身份驗證服務,因此它很容易受到中間人攻擊。 一箇中間人在通道的中央進行兩次迪菲-赫爾曼金鑰交換,一次和Alice另一次和Bob,就能夠成功的向Alice假裝自己是Bob,反之亦然。而攻擊者可以解密(讀取和儲存)任何一個人的資訊並重新加密資訊,然後傳遞給另一個人。因此通常都需要一個能夠驗證通訊雙方身份的機制來防止這類攻擊。  有很多種安全身份驗證解決方案使用到了迪菲-赫爾曼金鑰交換。當Alice和Bob共有一個公鑰基礎設施時,他們可以將他們的返回金鑰進行簽名,也可以像MQV那樣簽名"g"和"g";STS以及IPsec協議的IKE元件已經成為了Internet協議的一部分;當Alice和Bob共享一個口令時,他們還可以從迪菲-赫爾曼演算法使用口令認證金鑰協商,類似於ITU-T的建議X.1035。這已經被用作了G.hn的家庭網路標準。
迪菲-赫爾曼金鑰交換(英語:Diffie–Hellman key exchange,縮寫為D-H) 是一種安全協議。它可以讓雙方在完全沒有對方任何預先資訊的條件下通過不安全通道建立起一個金鑰。這個金鑰可以在後續的通訊中作為對稱金鑰來加密通訊內容。公鑰交換的概念最早由瑞夫·墨克(英語:Ralph C. Merkle)提出,而這個金鑰交換方法,由惠特菲爾德·迪菲(英語:Bailey Whitfield Diffie)和馬丁·赫爾曼(英語:Martin Edward Hellman)在1976年首次發表。馬丁·赫爾曼曾主張這個金鑰交換方法,應被稱為迪菲-赫爾曼-墨克金鑰交換(英語:Diffie–Hellman–Merkle key exchange)。