10. 密碼學(xué)專題 - 密鑰交換算法

密碼學(xué)專題 - 密鑰交換算法

10. 密鑰交換算法

10.1 Diffie-Hellman 算法

Diffie-Hellman 算法是第一個(gè)公開密鑰算法,早在 1976 年就發(fā)明了。其安全性源于在有限域上計(jì)算離散對(duì)數(shù)比計(jì)算指數(shù)更為困難。Diffie-Hellman 算法能夠用于密鑰分配 (Alice 和 Bob 能用它產(chǎn)生秘密密鑰),但是它不能用于加密或解密消息。

數(shù)學(xué)原理很簡單。首先,Alice 和 Bob 協(xié)商一個(gè)大的素?cái)?shù) ng,g 是模 n 的本原元。這兩個(gè)整數(shù)不必是秘密的,故 Alice 和 Bob 可以通過即使是不安全的途徑協(xié)商它們。它們可在一組用戶中公用。

協(xié)議如下:

  1. Alice 選取一個(gè)大的隨機(jī)整數(shù) x,并發(fā)送給 Bob:X=g^x \ mod \ n。
  2. Bob 選取一個(gè)大的隨機(jī)整數(shù) y,并發(fā)送給 Alice:Y=g^y \ mod \ n。
  3. Alice 計(jì)算 k = Y^x \ mod \ n
  4. Bob計(jì)算 k' = X^y \ mod \ n。

kk' 都等于 g^{xy} \ mod \ n。即使線路上的竊聽者也不可能計(jì)算出這個(gè)值,他們只知道 n、g、X、Y。除非他們計(jì)算離散對(duì)數(shù),恢復(fù) xy,否則無濟(jì)于事。因此 k 是 Alice 和 Bob 獨(dú)立計(jì)算的秘密密鑰。

gn 的選取對(duì)系統(tǒng)的安全性有很大的影響。(n-1)/2 也應(yīng)該是一個(gè)素?cái)?shù)。最重要的是 n 應(yīng)該很大:因?yàn)橄到y(tǒng)的安全性取決于與 n 同樣長度的數(shù)的因子分解的難度??梢赃x擇任何滿足模 n 的本原元 g,沒有理由不選擇所能選擇的最小 g —— 通常只是個(gè) 1 位數(shù) (實(shí)際上 g 不必是素?cái)?shù),但它必須能產(chǎn)生一個(gè)大的模 n 的乘法組子群)。

10.2 三方或多方 Diffie-Hellman

Diffie-Hellman 密鑰交換協(xié)議很容易擴(kuò)展到三人或更多的人。在下例中,Alice、Bob 和 Carol 一起產(chǎn)生秘密密鑰。

  1. Alice 選取一個(gè)大的隨機(jī)整數(shù) x,并發(fā)送給 Bob:X=g^x \ mod \ n
  2. Bob 選取一個(gè)大的隨機(jī)整數(shù) y,并發(fā)送給 Carol:Y=g^y \ mod \ n
  3. Carol 選擇一個(gè)大的隨機(jī)整數(shù) z,并發(fā)送給 Alice:Z=g^z \ mod \ n。
  4. Alice 發(fā)送給 Bob:Z' = Z^x \ mod \ n
  5. Bob 發(fā)送給 Carol:X' = X^y \ mod \ n。
  6. Carol 發(fā)送給 Alice:'Y' = Y^z \ mod \ n'。
  7. Alice 計(jì)算 k = Y'^x \ mod \ n
  8. Bob 計(jì)算 k = Z'^y \ mod \ n。
  9. Carol 計(jì)算 k = X'^z \ mod \ n

秘密密鑰 k = g^{xyz} \ mod \ n,沒有其他人能計(jì)算出 k 值,這個(gè)協(xié)議很容易擴(kuò)展到四人或更多的人中,只是增加更多的人和增加計(jì)算的輪數(shù)。

項(xiàng)目源代碼

項(xiàng)目源代碼會(huì)逐步上傳到 Github,地址為 https://github.com/windstamp。

Contributor

  1. Windstamp, https://github.com/windstamp
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容