Diffie-Hellman算法是一個用于密鑰交換的算法。僅僅是用于密鑰交換而已哦。加密就不行啦.
要了解Diffie-Hellman,首先要了解素數(shù)的原本根。素數(shù)p的原本根是一個整數(shù),其冪可以產(chǎn)生1到p-1之間的所有整數(shù)。對任意整數(shù)b和素數(shù)p的原本根a,我們可以找到惟一的指數(shù)i,使得:b=ai mod p (0<= i <=(p-1))
假如用戶甲和乙希望交換密鑰,那么用戶甲選擇一個隨機(jī)整數(shù)x1 < q,并計算y1 = a x1 mod q.
同樣的,用戶乙也獨立地選擇一個隨機(jī)整數(shù)x2 < q,并計算y2 = a x2 mod q。甲和乙保持其x是私有的,但對另一方而言,y是公開可訪問的。用戶甲就計算k = y2 x1 mod q,乙計算k = y1x2 mod q。當(dāng)然計算出來的這兩個密鑰k是相同的,神奇吧。