DH算法實質是一個通信雙方進行密鑰協定的協議,它的安全性基於有限域上計算離散對數的困難性。
Diffie-Hellman密鑰交換協議如下:
首先,Alice和Bob雙方約定2個大整數n和g,其中1<g<n,這兩個整數無需保密,然後,執行下面的過程
1) Alice隨機選擇一個大整數x(保密),並計算X=gx mod n
2) Bob隨機選擇一個大整數y(保密),並計算Y=gy mod n
3) Alice把X發送給B,B把Y發送給ALICE
4) Alice計算K=Yx mod n
5) Bob計算K=Xy mod n
K即是共享的密鑰。
監聽者Oscar在網絡上只能監聽到X和Y,但無法通過X,Y計算出x和y,因此,Oscar無法計算出K= gxymod n。
分析:
由於對稱加解密具有速度快的優勢,所以大家都想用對稱加密方法完成信息的加密傳輸。前面講的https的密鑰交換方法是通過非對稱加密來完成對稱密鑰的傳遞的。但是存在着對稱密鑰無法動態生成,密鑰有一方決定,而DH算就解決了該問題。首先能夠完成密鑰的協商即Alice, Bob都提供參數參與到對稱密鑰的生成。同時監聽者Oscar在網絡上只能監聽到X和Y,但無法通過X,Y計算出x和y。