8 密鑰交換

8.1 概述

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

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

這個(gè)協(xié)議被稱(chēng)為Diffie-Hellman(DH)拾酝,Diffie-Hellman協(xié)議的實(shí)際實(shí)現(xiàn)依賴(lài)于復(fù)雜的數(shù)學(xué)問(wèn)題,從正確的方向計(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)聽(tīng)者該協(xié)議依然安全罐氨,我們把整個(gè)過(guò)程的中間都假定有監(jiān)聽(tīng)者Eve臀规,Eve監(jiān)聽(tīng)到網(wǎng)絡(luò)中的所有消息,記錄她所知道的一些栅隐,和她可以計(jì)算的一切塔嬉,然后最后我們可以看到Eve依然沒(méi)有辦法知道Alice和Bob共享的秘密是什么。

  • Alice和Bob必須要先擁有一個(gè)基礎(chǔ)顏色租悄。這個(gè)顏色他們可以在網(wǎng)絡(luò)上直接溝通谨究,盡管Eve看到這條消息,知道了基礎(chǔ)顏色是什么也沒(méi)有關(guān)系泣棋。通常情況下基礎(chǔ)顏色就是協(xié)議固定的一部分胶哲。Alice和Bob可以不用為此溝通。這一步之后潭辈,Aclie鸯屿,Bob和Eve都有了相同的信息澈吨,這個(gè)基礎(chǔ)的顏色。
image-20210319103754767.png
  • Alice和Bob各自挑選一個(gè)隨機(jī)的顏色寄摆,然后將其和基礎(chǔ)顏色混合谅辣。
image-20210319103855781.png
  • 現(xiàn)在A(yíng)lice和Bob知道他們各自的私密顏色,混合后的顏色冰肴,和基礎(chǔ)顏色屈藐。任何人包括Eve在內(nèi)都知道基礎(chǔ)顏色。
image-20210319104453696.png
  • Alice和Bob將自己的混合后的顏色在網(wǎng)絡(luò)中發(fā)送給對(duì)方熙尉。Eve也可以看到這些混合后的顏色联逻,但是她不知道Alice和Bob各自的私密顏色是什么。盡管知道基礎(chǔ)顏色检痰,她也沒(méi)有辦法還原出之前的顏色包归。(這里只是為了講明白這個(gè)過(guò)程的假設(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ì)算在沒(méi)有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是很難的。這被稱(chēng)為離散對(duì)數(shù)問(wèn)題茫多。
y=g^x(mod p)
這個(gè)與8.2節(jié)的顏色是類(lèi)似的祈匙,大素?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)

通過(guò)網(wǎng)絡(luò)發(fā)送這兩個(gè)數(shù)字些阅,Eve當(dāng)然也可以看到這兩個(gè)數(shù)字,但是由于離散對(duì)數(shù)的問(wèn)題斑唬,已知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沒(méi)有rA或者rB,并不能計(jì)算出s褐着。

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

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

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

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 遺留問(wèn)題

Diffie-Hellman算法使得可以在不安全的互聯(lián)網(wǎng)環(huán)境馅扣,在可能有監(jiān)聽(tīng)者的情況下斟赚,協(xié)商出一個(gè)共用的密鑰。攻擊者可能是無(wú)法簡(jiǎn)單通過(guò)劫持獲取到密鑰差油,但是攻擊者仍有可能破壞系統(tǒng)拗军。通常該類(lèi)型攻擊者被稱(chēng)為Mallory,在A(yíng)lice和Bob之間厌殉,她可以執(zhí)行兩次DH算法食绿,一次和Alice,一次和Bob公罕。在A(yíng)lice面前假裝自己是Bob器紧,在Bob面前假裝自己是Alice。

image-20210319141557737.png

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

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

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

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末萌壳,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子日月,更是在濱河造成了極大的恐慌袱瓮,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爱咬,死亡現(xiàn)場(chǎng)離奇詭異尺借,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)精拟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)燎斩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人蜂绎,你說(shuō)我怎么就攤上這事鼎姐“疲” “怎么了岭佳?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵歪今,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我践美,道長(zhǎng)洗贰,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任陨倡,我火速辦了婚禮敛滋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘兴革。我一直安慰自己绎晃,他們只是感情好蜜唾,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著庶艾,像睡著了一般灵妨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上落竹,一...
    開(kāi)封第一講書(shū)人閱讀 51,541評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音货抄,去河邊找鬼述召。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蟹地,可吹牛的內(nèi)容都是我干的积暖。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼怪与,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼夺刑!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起分别,我...
    開(kāi)封第一講書(shū)人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤遍愿,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后耘斩,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體沼填,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年括授,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了坞笙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡荚虚,死狀恐怖薛夜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情版述,我是刑警寧澤梯澜,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站渴析,受9級(jí)特大地震影響腊徙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜檬某,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一撬腾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧恢恼,春花似錦民傻、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)牵署。三九已至,卻和暖如春喧半,著一層夾襖步出監(jiān)牢的瞬間奴迅,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工挺据, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留取具,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓扁耐,卻偏偏與公主長(zhǎng)得像暇检,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子婉称,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容