Diffie-Hellman在1976年就由 惠特菲爾德·迪菲和馬丁·赫爾曼 所發表,但它並不是一個加解密的密碼系統,
它的目的是金鑰交換用來輔助對稱式加密演算法,而不是用來保護傳輸的訊息,所以說他是最早的非對稱式公鑰演算法而不會說是最早的非對稱式加密,在現代密碼學中的地位重要,是很多網路生份認證協定的基礎
和RSA等公鑰演算法一樣,DF(Diffie–Hellman)也是建立在一種數學難題上,
不同於RSA使用較為常見的質因數分解,DF使用了離散對數(英語:Discrete logarithm)
離散對數是一種融合了模數運算和原根的對數運算大概如下:
當有模數m和m的原根l時,對l做k次方, mod m 成x,
在只有m、x、l沒有k時非常困難算出k是多少,
今天選用模數p=13,底數g=5
Alice選a=7,Bob選b=3
Alice計算A=5^7 = 8 mod 13
Bob計算B=5^3 = 8 mod 13
共享金鑰key=8^7 = 5 mod 13或8^3 = 5 mod 13
5就是共享金鑰
即便在傳輸的過程中A,B被攔截了
攻擊者很難從A(B)、g、p去算出a(b)當p足夠安全時(通常為1024bits以上)
當然p的選擇不是夠大就好還有很多要考慮
可以參考(https://zh.wikipedia.org/zh-tw/%E5%AE%89%E5%85%A8%E7%B4%A0%E6%95%B0)
只要p安全了,要從A(g^a mod p)上面取下a並沒有已知的非量子快速演算法
只能透過硬暴來找尋目標a,但這樣就要花費超級多的時間和資源了