一 什麼是dh金鑰交換
dh金鑰交換是2023年由diffie和hellman共同發明的一種演算法。使用這種演算法,通訊雙方僅通過交換一些可以公開的資訊就能夠生成出共享的密碼數字,而這一密碼數字就可以被用作對稱密碼的金鑰。ipsec中就使用了經過改良的dh金鑰交換。
雖然這種方法的名字叫「金鑰交換」,但實際上雙方並沒有真正交換金鑰,而是通過計算生成出乙個相同的共享金鑰。因此,這種方法也稱dh金鑰協商。
二 dh金鑰交換的步驟
現在假設alice和bob需要共享乙個對稱密碼的金鑰,然而雙方之間的通訊線路已經被竊聽者竊聽。這時,alice和bob可以通過下面的方法進行dh金鑰交換,從而生成共享金鑰。
1 alice向bob傳送兩個質數p和g
p必須是乙個非常大的質數,而g則是乙個和p相關的數,稱為生成元。g可以是乙個較小的數字。
p和g不需要保密,被竊聽者獲取了也沒關係。
此外,p和g可以由alice和bob中的任意一方生成。
2 alice生成乙個隨機數a
a是乙個1~p-2之間的整數。這個數是乙個只有alice知道的秘密數字,沒有必要告訴bob,也不能讓竊聽者知道。
3 bob生成乙個隨機數b
b是乙個1~p-2之間的整數。這個數是乙個只有bob知道的秘密數字,沒有必要高數alice,也不能讓竊聽者知道。
4 alice將 g的a次方 mod p 這個數傳送給bob
這個數讓竊聽者知道也沒關係。
5 bob 將 g的b次方 mod p 這個數傳送給alice
這個數讓竊聽者知道也沒關係。
6 alice用bob發過來的數計算a次方並求 mod p
這個數就是共享金鑰。
上面將mod p的「g的b次方的a次方」 改寫成了「g的a*b次方」
7 bob用alice發過來的數計算b次方並求 mod p
上面將mod p的「g的a次方的b次方」改寫成了「g的a*b次方」
於是alice和bob就計算出相等的共享金鑰了。
DH金鑰交換
不安全通道金鑰交換 滿足兩個特性 單向性和交換律 選定乙個基底g a給b傳遞金鑰 ga b給a傳遞 gb a得到gb後進行加密,得gba b得到ga後進行加密,得gab 選取模冪運算作為模型 ga g a mod p gb g b mod p gba g b mod p a mod p gab g ...
DH金鑰交換
淺淺學習了下dh金鑰交換原理,方法很簡單,就是雙方各自用自己的秘密數 隨機產生 和對方的公開數 根據質數和秘密數計算而來 計算出相同的金鑰 感概 最終還是個數學問題。而且還是那個大質數的運用,數學,繞不開的 惡魔 g的a次方 mod p 的b次方 g的a b次方 mod p,好神奇。困惑 這個計算量...
DH 金鑰交換原理
假設 q 為素數,對於正整數 a,x,y,有 a x mod p y mod p a xy mod p證明如下 令 a x mp n,其中 m,n 為自然數,0 n p,則有 c a x mod p y mod p mp n mod p y mod p n y mod p mp n y mod p ...