迪菲.赫爾曼(Diffie–Hellman)金鑰交換演算法

來源:互聯網
上載者:User

標籤:strong   通訊   tls協議   ali   log   display   一個   其他   play   

迪菲.赫爾曼演算法是通訊線路不安全情況下,交換密鑰的一個演算法,應用於TLS協議中

 

首先說一下產生密鑰的流程,我們有這樣一種計算叫做求摸運算 mod, 

比如:27 mod 17 = 10,也就是求餘數的運算。 

 

現在有兩個通訊者A和B,我們使用一種計算 假如我們這裡選用 

3 ^ x mod 17,A和B分別產生一個隨機的整數,這個整數即為x,比如A是2,B是3,那麼A使用2計算:

3^2 mod 17 = 9 ①

B使用3計算:

3^3 mode 17 = 10 ②

然後A將9發送給B,B將10發送給A。當然這裡的9和10是可以被任何人看到。 

A收到B的10之後做這樣的計算:

10^2 mod 17 = 15 ③

B收到A的9後做這樣的計算:

9^3 mod 17 = 15 ④

這樣15就可以作為兩人通訊加密的密鑰了。 

 

突然一看還有點不明白,為什麼這樣的計算就能計算出相同的數字15? 

mod運算的性質 性質如下:

就像普通運算一樣,他是可交換的、可結合的、可分配的,可以表示為

(a+b)mod n=((a mod n)+(b mod n))mod n

(a?b)mod n=((a mod n)?(b mod n))mod n

(a× b)mod n=((a mod n)×(b mod n))mod n

(a× (b+c))mod n=(((a× b)mod n)+((a× c)mod n)))mod n

 

A:在做③計算的時候使用的10是由②計算來的,也就是:

(3^3 mode 17)^2 mod 17 = 15 ⑤

B:做的④計算的時候使用的9是由①計算來的,也就是:

(3^2 mod 17)^3 mod 17 = 15 ⑥

那麼接下來就證明為什麼⑤和⑥會相等

(3^3 mode 17)^2 mod 17 == (3^2 mod 17)^3 mod 17

其實證明只是用到上面mod計算性質的第三條 

 

計算⑤等於以下的分解

=((3 * 3 * 3) mod 17)^2 mod 17

=(((3 mod 17) * (3 mod 17) * (3 mod 17)) mod 17)^2 mod 17

= ((((3 mod 17) * (3 mod 17) * (3 mod 17)) mod 17) * (((3 mod 17) * (3 mod 17) * (3 mod 17)) mod 17)) mod 17

=((3 mod 17) * (3 mod 17) * (3 mod 17) * (3 mod 17) * (3 mod 17) * (3 mod 17)) mod 17

= (3 mod 17)^6 mod 17

 

同理分解⑥ 也可得這個結果

= (3 mod 17)^6 mod 17

⑤⑥是相等的得證。 

在這個通訊過程中可以看到A和B分別產生了一個隨機數2和3,只要2和3不泄露,那麼其他人即使知道3 mod 17、9、10這些資訊也得不出15的這個結果。

 本文轉自:49468187

迪菲.赫爾曼(Diffie–Hellman)金鑰交換演算法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.