DH 金鑰交換原理

2021-08-21 17:07:03 字數 825 閱讀 6349

假設 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

= a^(xy) mod p

由於 xy = yx 所以公式可以變形為:

(a^x mod p)^y mod p = (a^y mod p)^x mod p = password
我們把 a^x mod p 記作 ka,把 a^y mod p 記做 kb

此時如果 alice 和 bob 在公網中,對 ka,kb,a,和 p 達成一致。alice 持有 x 作為私有的,bob 持有 y 作為私有的。雙方都能計算出 password ,而無法知道對方實際持有的 x 和 y。只要 x,y 足夠大,公網中傳輸的資料,也很難計算出 password

加密強度保證:(有限群的離散對數問題) 對於 a^x mod p = ka , p很大時,由 ka 和 p、a 很難計算出 x

如圖:

dh 無法防止中間人攻擊

可能導致的現象: 攻擊者假冒身份,和兩邊分別建立 dh,就可以實現中間人攻擊了。

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金鑰交換 dh金鑰交換是1976年由diffie和hellman共同發明的一種演算法。使用這種演算法,通訊雙方僅通過交換一些可以公開的資訊就能夠生成出共享的密碼數字,而這一密碼數字就可以被用作對稱密碼的金鑰。ipsec中就使用了經過改良的dh金鑰交換。雖然這種方法的名字叫 金鑰交換 但...

DH金鑰交換

淺淺學習了下dh金鑰交換原理,方法很簡單,就是雙方各自用自己的秘密數 隨機產生 和對方的公開數 根據質數和秘密數計算而來 計算出相同的金鑰 感概 最終還是個數學問題。而且還是那個大質數的運用,數學,繞不開的 惡魔 g的a次方 mod p 的b次方 g的a b次方 mod p,好神奇。困惑 這個計算量...