8 密鑰交換

8.1 概述

本章嘗試解決以下問題,Alice和Bob,他們之前從未見過,現(xiàn)在需要商議出一個(gè)私密的信息。他們溝通的信道是不安全的,他們?cè)谛诺乐袀鬏數(shù)娜魏涡畔⒍际怯锌赡鼙唤俪值摹?/p>

這里強(qiáng)調(diào)下,Alice和Bob在不安全的信道上溝通,最終要共享一個(gè)密鑰。盡管中間可能有人看到Alice和Bob發(fā)送給對(duì)方的全部信息,但是他不能知道共享密鑰的任何信息。

這個(gè)協(xié)議被稱為Diffie-Hellman(DH),Diffie-Hellman協(xié)議的實(shí)際實(shí)現(xiàn)依賴于復(fù)雜的數(shù)學(xué)問題,從正確的方向計(jì)算非常容易,但是從逆的方向計(jì)算非常難。

8.2 Diffie-Hellman簡(jiǎn)介

為了介紹Diffie-Hellman,我們使用混合顏色來(lái)做為一個(gè)例子??梢园凑找韵乱?guī)則來(lái)混合顏色:

  • 可以很容易將兩個(gè)顏色進(jìn)行混合,生成第三個(gè)顏色
  • 將兩個(gè)或更多的顏色按不同的順序混合,會(huì)得到相同的顏色
  • 混合顏色是單向的,給定混合后的顏色,即使知道它是混合生成的顏色,甚至知道生成該顏色的部分顏色,也不能猜測(cè)好粗剩下的顏色。

在以上規(guī)則的基礎(chǔ)上,可以制造出只有Alice和Bob知道混合方法的秘密顏色。之后我們會(huì)介紹密鑰交換的具體實(shí)現(xiàn)方法。

為了強(qiáng)調(diào)即使有監(jiān)聽者該協(xié)議依然安全,我們把整個(gè)過程的中間都假定有監(jiān)聽者Eve,Eve監(jiān)聽到網(wǎng)絡(luò)中的所有消息,記錄她所知道的一些,和她可以計(jì)算的一切,然后最后我們可以看到Eve依然沒有辦法知道Alice和Bob共享的秘密是什么。

  • Alice和Bob必須要先擁有一個(gè)基礎(chǔ)顏色。這個(gè)顏色他們可以在網(wǎng)絡(luò)上直接溝通,盡管Eve看到這條消息,知道了基礎(chǔ)顏色是什么也沒有關(guān)系。通常情況下基礎(chǔ)顏色就是協(xié)議固定的一部分。Alice和Bob可以不用為此溝通。這一步之后,Aclie,Bob和Eve都有了相同的信息,這個(gè)基礎(chǔ)的顏色。
image-20210319103754767.png
  • Alice和Bob各自挑選一個(gè)隨機(jī)的顏色,然后將其和基礎(chǔ)顏色混合。
image-20210319103855781.png
  • 現(xiàn)在Alice和Bob知道他們各自的私密顏色,混合后的顏色,和基礎(chǔ)顏色。任何人包括Eve在內(nèi)都知道基礎(chǔ)顏色。
image-20210319104453696.png
  • Alice和Bob將自己的混合后的顏色在網(wǎng)絡(luò)中發(fā)送給對(duì)方。Eve也可以看到這些混合后的顏色,但是她不知道Alice和Bob各自的私密顏色是什么。盡管知道基礎(chǔ)顏色,她也沒有辦法還原出之前的顏色。(這里只是為了講明白這個(gè)過程的假設(shè),顏色混合復(fù)原本身是很簡(jiǎn)單的。這里假設(shè)復(fù)原非常難。)
image-20210319104802397.png
  • 最后Alice和Bob知道基礎(chǔ)顏色,和他們各自的私密顏色,各自的混合顏色,和對(duì)方的混合顏色。Eve知道基礎(chǔ)顏色和全部的混合顏色。
image-20210319105114723.png
  • Alice和Bob講自己接受到的混合顏色和他們自己的私密顏色混合,由于混合的順序是不影響結(jié)果的,此時(shí)他們就擁有了一個(gè)僅兩者知道的混合顏色。
image-20210319110429428.png
  • Eve并不能進(jìn)行相應(yīng)的計(jì)算,這個(gè)計(jì)算在沒有Alice或者Bob的私密顏色的情況下無(wú)法進(jìn)行。她也可能將兩個(gè)混合顏色直接混合,然而由于基礎(chǔ)顏色出現(xiàn)了兩次,得到的是與Alice和Bob不一樣的一個(gè)混合顏色。

8.3 基于離散對(duì)數(shù)的Diffie-Hellman

本節(jié)介紹Diffie-Hellman基于離散對(duì)數(shù)的一種實(shí)現(xiàn)。它需要一定的數(shù)學(xué)背景,需要一點(diǎn)現(xiàn)代數(shù)學(xué)的知識(shí)來(lái)理解。

基于離散對(duì)數(shù)的Diffie-Hellman是基于以下想法的,計(jì)算下面公式的y是簡(jiǎn)單的,然而給定y,g和p計(jì)算x是很難的。這被稱為離散對(duì)數(shù)問題。
y=g^x(mod p)
這個(gè)與8.2節(jié)的顏色是類似的,大素?cái)?shù)p和基g 相當(dāng)于基礎(chǔ)顏色,混合顏色相當(dāng)于上面的公式,其中x是輸入顏色,y是結(jié)果的混合顏色。

當(dāng)Alice和Bob選擇自己的隨機(jī)數(shù)rA和rB,然后將其應(yīng)用后
m_A=g^{r_A}(mod p)

m_B=g^{r_B}(mod p)

通過網(wǎng)絡(luò)發(fā)送這兩個(gè)數(shù)字,Eve當(dāng)然也可以看到這兩個(gè)數(shù)字,但是由于離散對(duì)數(shù)的問題,已知m計(jì)算r是非常難得。

Alice和Bob擁有彼此混合后的數(shù)字,和他們自己的私密數(shù)字,Bob可以這么計(jì)算
s={m_A}^{r_B}(mod p)=(g^{r_A})^{r_B}(mod p)
Alice可以這么計(jì)算
s={m_B}^{r_A}(mod p)=(g^{r_B})^{r_A}(mod p)
即Alice和Bob計(jì)算所得的s完全相同。而Eve沒有rA或者rB,并不能計(jì)算出s。

8.4 基于橢圓曲線的Diffie-Hellman(ECDH)

基于橢圓曲線的Diffie-Hellman的一個(gè)好處是其所需的密鑰長(zhǎng)度要比基于離散對(duì)數(shù)的Diffie-Hellman要小的多。這是因?yàn)槠平怆x散對(duì)數(shù)的算法要比破解橢圓曲線快的多。

對(duì)于目前的算法來(lái)講解決橢圓曲線問題比解決離散對(duì)數(shù)要難的多。要達(dá)到相同的密碼要求,橢圓曲線需要的密鑰大小要小的多。

Security Level in bits Discrete log key bits Elliptic curve key bits
56 512 112
80 1024 160
112 2048 224
128 3072 256
256 15360 512

8.5 遺留問題

Diffie-Hellman算法使得可以在不安全的互聯(lián)網(wǎng)環(huán)境,在可能有監(jiān)聽者的情況下,協(xié)商出一個(gè)共用的密鑰。攻擊者可能是無(wú)法簡(jiǎn)單通過劫持獲取到密鑰,但是攻擊者仍有可能破壞系統(tǒng)。通常該類型攻擊者被稱為Mallory,在Alice和Bob之間,她可以執(zhí)行兩次DH算法,一次和Alice,一次和Bob。在Alice面前假裝自己是Bob,在Bob面前假裝自己是Alice。

image-20210319141557737.png

這里實(shí)際上有兩個(gè)共享的密鑰,一個(gè)是Alice和Mallory之間,一個(gè)是Mallory和Bob之間。攻擊者在中間接受到信息后,用密鑰獲取到明文消息,然后使用另一邊的密鑰加密再發(fā)送給另一邊。

糟糕的是,即便兩個(gè)參與者之一發(fā)現(xiàn)了這一點(diǎn),他們也沒有辦法讓任何人詳細(xì)自己。Mallory執(zhí)行了正確的Diffie-Hellman算法,她擁有正確的密鑰。Bob沒有和Alice共享密鑰,他無(wú)法證明他是實(shí)際的參與者。

類似的攻擊被稱為MITM攻擊,因?yàn)楣粽撸∕allory)是在兩者之間。在互聯(lián)網(wǎng)架構(gòu)下大家都有可能發(fā)送消息,這一類型的攻擊非常的常見,一個(gè)密碼系統(tǒng)需要想辦法識(shí)別出這種攻擊。

雖然Diffie-Hellman可以讓兩個(gè)節(jié)點(diǎn)之間成功的共享一個(gè)私密信息,在真實(shí)的密碼系統(tǒng)中還是有一些其他的阻礙。需要有方法認(rèn)證從Alice到Bob以及反過來(lái),還需要有辦法保證消息的完整性,來(lái)確保接收者可以驗(yàn)證收到的消息是否真實(shí)來(lái)源于發(fā)送者。

?著作權(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),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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