如何GGg作為生成器意味著 Diffie-Hellman 的正確性?
在通過不安全通道進行密鑰交換的 Diffie-Hellman 協議中,我們選擇 $ p $ 和 $ g $ , 在哪裡 $ g $ 是一個生成器 $ \mathbf{Z}_p^* $ . 但是我想知道為什麼這個假設使下面的等式成立,假設 Alice 和 Bob 選擇 $ a $ 和 $ b $ 作為密鑰:
$$ (g^b)^a \equiv (g^a)^b \pmod p. $$ 換句話說,如何假設 $ g $ 是生成器 $ \mathbf{Z}_p^* $ 使上述等式成立?
Fkraiem 的回答是正確的:這沒有必要。但是,從您對他的回答的評論看來,您不明白為什麼 Alice 和 Bob 檢索到相同的密鑰。再次,這不依賴於 $ g $ 作為發電機。
回想一下你的高中數學課 $ (g^a)^b = g^{ab} = g^{ba} = (g^b)^a $ . 這基本上是這裡使用的技巧。既然愛麗絲知道 $ a $ 和 $ g^b $ 她可以計算出等式中最右邊的項,因為 Bob 知道 $ b $ 和 $ g^a $ 他可以計算最左邊的項。然後,它們具有可以用作密鑰的相同數字。由於只 $ g^a $ 和 $ g^b $ 但不是 $ a $ 或者 $ b $ 通過不受信任的線路進行通信,沒有竊聽者可以計算出相同的數字。
這裡唯一的區別是我們使用模數 $ p $ . 因此,我們還需要證明 $ (g^a \bmod{p})^b\bmod{p} = (g^a)^b\bmod{p} $ . 我們首先看一下帶模的乘法。
使固定 $ a,b,m\in\mathbb{Z} $ 看看 $ ab\bmod m $ . 我們可以寫 $ a=km+r $ 對於一些 $ k,r\in\mathbb{Z} $ 同樣地 $ b=lm+s $ 對於一些 $ l,s\in\mathbb{Z} $ . 然後我們有
$$ ab\bmod m = (km+r)(lm+s)\bmod m = klm^2+rlm+kms+rs\bmod m = rs. $$ 我們知道從 $ a=km+r $ 那 $ a\bmod m=r $ 同樣地 $ b\bmod m=s $ . 因此, $ rs=(a\bmod m)(b\bmod m) $ 因此也 $ ab\bmod m=(a\bmod m)(b\bmod m) $ .
現在看看 $ (g^a)^b \bmod p $ . 我們可以這樣寫
$$ (g^a)^b \bmod p = (g\cdot g \cdot \dots \cdot g)^b = (g\cdot g \cdot \dots \cdot g) \cdot \dots \cdot (g\cdot g \cdot \dots \cdot g) \bmod p. $$ 現在我們可以將乘法規則與我們剛剛找到的模數相乘,我們得到
$$ \ldots = (g\cdot g \cdot \dots \cdot g \bmod p) \cdot \dots \cdot (g\cdot g \cdot \dots \cdot g \bmod p) \bmod p = (g^a\bmod p)^b \bmod p. $$ 如您所見,我們沒有使用 that $ g $ 是一個生成器 $ \mathbb{Z}_p^* $ ,因此這是一個基本規則,您可以將其應用於使用冪和模的任何公式。您可以閱讀有關它的更多資訊:模組化指數(wiki)。