非對稱dh

非對稱DH,是安全性基於在有限域中計算離散對數的難度的一種加密算法。可用於密鑰分發,但不能用於加/解密報文。DH即Diffie-Hellman算法的簡寫,也縮寫為D-H算法。D-H加密算法的核心思想是求有限域上離散對數。

基本原理

取一個大素數P,較小數r(r是P的一個原根),數字A(A介於1到P之間),則獲得公鑰K:

K=r^A/P

(公鑰K為r的A次方結果對P取模)

由於,較小數r(r是P的一個原根),

則r^1、r^2、r^3、r^4、......r^(P-1)分別模P都不相同,

則當我們知道P、r、r^A,則很難用數學方法推到出A的方法。

類似定理

同餘定理

中國餘數定理源出三國或晉朝的"孫子算經",其中有一題:今有物不知其數,三三數之剩2,五五數之剩3,七七數之剩2,問物幾何?

以同餘式表之,即 解,孫子算經中給出答案 x=23

一元一次聯立同餘式,後世稱為"大衍",其解法稱為"大衍求一術",到宋代秦九韶(1202~1261年)集大成同餘中的一些定理。

DH比對

我們再來看看DH是怎么計算出共享密鑰的:

以下各試“=”均讀作同餘,且假定A和B生成的g和p均相同,至於為什麼這裡就不做討論了

首先A先計算X = g^a mod p

B 計算Y= g^b mod p

然後A和B交換X和Y

這樣A就得到了Y,通過通余定理:

因為Y= g^b mod p

所以Y^a=(g^b)^a mod p

=g^(ba) mod p

同理 B計算出: X^b=g^(ab) mod p

顯然,這裡Y^a =X^b

也就是說A和B計算出一個只有他們知道的相同的共享密鑰了。

當然如果有個第三者他只知道X、Y,他在有限的時間內是算不出a和b的,至於為什麼,因為我不是數學家所以我也不知道(上面的公式也是我想了n久才想通的)。

以上就是我對DH算法的一些總結,希望這些東西對大家理解IPsec VPN有所幫助。

註:通余定理的公式符號表示的不完整,大家容易產生誤解,改後:

如果Y= g^b mod p(就是Y mod p = g^b mod p)

那么Y^a= (g^b)^a mod p (就是Y^a mod p = (g^b)^a mod p)

這樣就沒問題了。

相關詞條

相關搜尋

熱門詞條

聯絡我們