Diffie-Hellman密碼交換是如何運作的?
01-15
學校開了個public lecture, 不是很懂,但是感覺蠻有意思的。求大神來深入淺出
類似問題如何在公開情況下進行私密通訊? - 密碼學
使用對稱加密演算法時,密鑰交換是個大難題,所以Diffie和Hellman提出了著名的Diffie-Hellman密鑰交換演算法。
Diffie-Hellman密鑰交換演算法原理:
對於Bob,收到Alice送來的Ka後,計算出密鑰為:key = Ka ^ b mod p = g^(a*b) mod p mod p。
攻擊者知道p和g,並且截獲了Ka和Kb,但是當它們都是非常大的數的時候,依靠這四個數來計算a和b非常困難,這就是離散對數數學難題。(1)Alice與Bob確定兩個大素數n和g,這兩個數不用保密
(2)Alice選擇另一個大隨機數x,並計算A如下:A=gxmod n
(3)Alice將A發給Bob
(4)Bob 選擇另一個大隨機數y,並計算B如下:B=gymod n
(5)Bob將B發給Alice
(6)計算秘密密鑰K1如下:K1=Bxmod n
(7)計算秘密密鑰K2如下:K2=Aymod n
K1=K2,因此Alice和Bob可以用其進行加解密
以前看到的,雖然不太正式,但是非常易於理解。圖片來源於網路,侵刪。
問題還沒有關閉啊,我來個更容易理解的。1.Alice想給Bob傳信,為了防止快遞員中途偷看,於是她把信裝在了一個盒子里,並給盒子上了第一把鎖鎖A。2.Bob收到來自Alice的箱子後,給箱子加了第二把鎖鎖B,然後讓快遞員把加了兩把鎖的箱子送回去。3.Alice收到加了鎖A和鎖B的箱子後,用自己的鑰匙將鎖A打開,然後讓快遞員把只加了鎖B的箱子送還給Bob。4.Bob得到箱子後,用自己的鑰匙打開了鎖B,得到了信件。全劇終。
推薦閱讀:
※RSA 1024和AES 256,這兩種加密演算法理論上哪種更安全?
※能否設計出「可以杜絕主辦方作弊的」匿名投票系統?
※誰能最簡單的詳解橢圓曲線演算法,secp256k1 是如何生成公鑰和私鑰的?
※疑似被新浪微博官方盜號,如何收集證據起訴?
※將大於2的正整數分解成2個因數(不是質因數),並求其各結果間兩因數最小非負數差,這樣的數有研究的意義嗎?
TAG:數學 | 編程 | 信息安全 | 密碼學 | Diffie-Hellman密鑰交換演算法 |