Diffie-Hellman 協議是一種方法,允許兩個計算機使用者生成一個共享私鑰,然後他們可以使用該金鑰透過不安全的通道交換資訊。假設使用者名稱為 Alice 和 Bob。首先,他們約定兩個質數 和
,其中
很大(通常至少 512 位),而
是模
的原根。(在實踐中,最好選擇
,使得
也是質數。)數字
和
不需要對其他使用者保密。現在 Alice 選擇一個大的隨機數
作為她的私鑰,Bob 類似地選擇一個大數
。然後 Alice 計算
,她將其傳送給 Bob,Bob 計算
,他將其傳送給 Alice。
現在 Alice 和 Bob 都計算他們的共享金鑰 ,Alice 計算為
Bob 計算為
Alice 和 Bob 現在可以使用他們的共享金鑰 交換資訊,而無需擔心其他使用者獲取此資訊。為了讓潛在的竊聽者 (Eve) 這樣做,她首先需要獲得
,僅知道
、
、
和
。
這可以透過從 計算
或從
計算
來完成。這是離散對數問題,對於大的
來說,在計算上是不可行的。計算模
的數的離散對數所花費的時間大致與分解與
大小相同的兩個質數的乘積的時間相同,而 RSA 密碼系統的安全性就依賴於此。因此,Diffie-Hellman 協議的安全性大致與 RSA 相當。