Diffie-Hellman學習筆記

ss
2 min readSep 23, 2018

--

今天我們要來探討的是在交換資訊中,我們常常用的兩種Public Key Algorithm,其中一種就是大家最常聽見的RSA,這邊網路上有超多資訊大家可以看,另一種就是我想要記錄下來的Diffie-Hellman Key Exchange(DH),這也是很有名的演算法,只是我就比較不熟XD

這個演算法能夠幫助我們交換鑰匙,但一定安全嗎?我們之後會探討到

這個我覺得配著一張圖在解說會比較容易,

(圖片來源:維基百科,維基講的很詳細,各位朋友也可以去看看)

今天Alice與Bob選定好一個質數p與base g(可能是他們口頭說好),這時Alice選定一個數a並算出A,A=g^a mod p ,傳送給Bob,

Bob也挑一個數b 並計算B,B = g^b mod p, 並送給Alice

這時神奇的事情要發生了,Alice計算s, s =B^a mod p, Bob計算s , s A^b mod p

結果會發現,兩者的s值竟然一樣

原理是因為在modulus p 下 g^a*b與g^b*a相同的(這邊不懂得可以往上看Bob的B以及,Alice之後對這B做了什麼事,反之亦然)

所以我們可以利用s去當作我們的對稱金鑰,當然a,b必須是一個很大的數字才不會輕易被暴力破解出來

計算的例子網路上很多,我只是方便筆記一下,這邊就先不附上例子了~

但真的就這麼安心地用這個交換金鑰嗎?

接下來我們探討一種可能性

這概念不難,所謂中間人攻擊就是說可能會有一個人在你們之間監聽,當alice傳送他的A時,被Mallory攔截,然後Mallory送一個他自己的Z給Bob,讓Bob以為這是Alice送出來的,Bob也送出B給Alice,但也被攔截,同樣的mallory送一個假的給Alice,他們在互相以為很安全的情況下加密資訊傳送,殊不知中間人把所有資訊都看光光,再送到另外一頭裝的神不知鬼不覺

至於要怎麼防範可以多參考身分認證的議題,這邊筆者就不多著墨了

--

--

ss
ss

No responses yet