5.1 投幣機(jī)物柜的使用方法
公鑰密碼在現(xiàn)實(shí)生活中的應(yīng)用荞雏。
硬幣是關(guān)閉寄物柜的密鑰虐秦,而鑰匙則是打開(kāi)寄物柜的密鑰。
關(guān)閉寄物柜是加密凤优,使用的是公鑰悦陋;
打開(kāi)寄物柜則是解密,使用的是私鑰筑辨。
公鑰是公開(kāi)的俺驶,任何人都可以獲得;私鑰是保密的棍辕,需要解密的人才能擁有暮现。
解釋對(duì)稱(chēng)加密和分對(duì)稱(chēng)加密
5.2 本章學(xué)習(xí)的內(nèi)容
在密碼學(xué)歷史上有兩種數(shù)據(jù)加密的方式:對(duì)稱(chēng)加密和非對(duì)稱(chēng)加密。
對(duì)稱(chēng)加密也稱(chēng)作共享密鑰楚昭,這里的共享是信息發(fā)送者和接受者兩方共享栖袋,他們使用相同的密鑰進(jìn)行加密和解密,其他人不知道(其他人有可能會(huì)獲雀)塘幅。
這個(gè)可能性就是在密鑰的配送過(guò)程被其他人截獲菇怀。
非對(duì)稱(chēng)加密也稱(chēng)作公開(kāi)密鑰。這里的公開(kāi)是指公鑰的公開(kāi)晌块,每個(gè)人都知道。但是私鑰只有數(shù)據(jù)的接收者擁有帅霜。
私鑰不需要配送匆背,更安全。
?
5.3 密鑰配送問(wèn)題
5.3.1 什么是密鑰配送問(wèn)題
如何理解P104第一句話(huà)“當(dāng)然身冀,如果竊聽(tīng)者 E 無(wú)法推測(cè)出通信中使用的是什么密碼算法钝尸,那么即便得到了密文和密鑰也是無(wú)法解密的”?
例如我們輸入的1搂根,然后通過(guò)1+2=3這個(gè)算法珍促,得到密文就是3,其中這2就是密鑰剩愧,這個(gè)算法就是密碼算法猪叙,當(dāng)密文3傳輸給后臺(tái)后,后臺(tái)就得進(jìn)行解密仁卷,解密算就是3-2=1穴翩,然后得到輸入密碼1。
這里如果我們不知道1+2=3锦积,也不知道3-2=1芒帕,那么就無(wú)法知道明文1。
?
密鑰必須要發(fā)送丰介,但又不能發(fā)送背蟆。
不發(fā)送密鑰,接收者無(wú)法解密哮幢,也就不知道你要傳輸?shù)臄?shù)據(jù)带膀;發(fā)送吧,又怕竊密者截獲密鑰橙垢。
這就是對(duì)稱(chēng)密碼的密鑰配送問(wèn)題本砰。
我們既要溝通,又要防止密鑰傳輸?shù)臅r(shí)候密鑰被截獲钢悲,咋辦点额?只有首先要解決密鑰配送的問(wèn)題,如何配送密鑰能夠不被截獲莺琳。
解決密鑰配送問(wèn)題的方法有以下幾種还棱?
- 通過(guò)事先共享密鑰來(lái)解決;
- 通過(guò)密鑰分配中心來(lái)解決惭等;
- 通過(guò) Diffie-hellman (棣弗-赫爾曼珍手,兩個(gè)人名的組合,他倆共同發(fā)明的一個(gè)算法)密鑰交換來(lái)解決;
- 通過(guò)公鑰密碼來(lái)解決
思考一個(gè)問(wèn)題:這些方法真的解決密鑰配送的問(wèn)題了嗎琳要?如果解決了寡具,為什么還需要非對(duì)稱(chēng)加密算法?
5.3.2 通過(guò)事先共享密鑰來(lái)解決
是先共享密鑰盡管有效稚补,但卻有一定的局限性童叠。
5.3.3通過(guò)密鑰分配中心來(lái)解決
解釋密鑰分配中心工作流程和原理,并解釋小測(cè)驗(yàn)的問(wèn)題课幕。
弊端:
1厦坛、單點(diǎn)故障的風(fēng)險(xiǎn)大大增加。如果密鑰分配中心發(fā)生故障乍惊,則所有人都無(wú)法進(jìn)行加密通信杜秸;
2、攻擊者可能會(huì)攻擊密鑰分配中心下手润绎,一旦得手撬碟,那么所有人的加密通信都會(huì)被破譯。
使用公鑰加密莉撇,通信實(shí)體越多小作,密鑰管理越簡(jiǎn)單。哪怕有一萬(wàn)人之間進(jìn)行通信稼钩,那么每個(gè)人只需要一對(duì)密鑰對(duì)(公鑰和私鑰)就可以了顾稀。不需要關(guān)心其他人密鑰。
小測(cè)驗(yàn)坝撑。静秆。。巡李。抚笔。。侨拦。
5.3.4 通過(guò) diffie-Hellman 密鑰交換來(lái)解決密鑰配送問(wèn)題
自己看第11章
5.3.5 通過(guò)公鑰密碼來(lái)解決密鑰配送問(wèn)題
上面三種方法都是對(duì)稱(chēng)加密殊橙,需要傳遞密鑰。
使用非對(duì)稱(chēng)加密算法(即公鑰密碼)狱从,不需要傳遞密鑰膨蛮。
小測(cè)驗(yàn)2.。季研。敞葛。。
這個(gè)其實(shí)就是5.4節(jié)的內(nèi)容与涡。
5.4 公鑰密碼
5.4.1 什么是公鑰密碼
第一節(jié)已經(jīng)介紹惹谐。此處不在說(shuō)了持偏。
5.4.2 公鑰密碼的歷史
自己了解一下。
5.4.3 公鑰通信的流程
流程在第一節(jié)已經(jīng)說(shuō)了氨肌,文字部分這里不看了鸿秆,直接看圖5-2吧。
5.4.4 各種術(shù)語(yǔ)
對(duì)稱(chēng)加密也叫共享密鑰怎囚;
非對(duì)稱(chēng)加密也叫公開(kāi)密鑰卿叽。
非對(duì)稱(chēng)加密有一對(duì)密鑰:公鑰(public key)和私鑰(private key)
5.4.5 公鑰密碼無(wú)法解決的問(wèn)題
這一節(jié)列舉了兩個(gè)公鑰密碼無(wú)法解決的問(wèn)題:
1、公鑰認(rèn)證問(wèn)題桩了;這個(gè)問(wèn)題是通過(guò)“證書(shū)頒發(fā)機(jī)構(gòu)(CA)”來(lái)解決。
2埠戳、解密效率低的問(wèn)題井誉。
這兩個(gè)問(wèn)題都會(huì)在后面的章節(jié)進(jìn)行介紹,這里先不說(shuō)了整胃,感興趣的先預(yù)習(xí)一下颗圣。
?
5.5 時(shí)鐘運(yùn)算
5.5.1 加法
總結(jié):
- 時(shí)鐘的指針向右旋轉(zhuǎn)相當(dāng)于做加法;
- 不過(guò)屁使,我們做的不是單純的加法在岂,而是“除法求余數(shù)”。
5.5.2 減法
時(shí)鐘只能向右轉(zhuǎn)蛮寂,不能反過(guò)來(lái)向左轉(zhuǎn)蔽午,也就是說(shuō)時(shí)鐘是能做加法,那減法怎么辦呢酬蹋?
我們將減法轉(zhuǎn)換為加法及老。
看例題和表5-1.
5.5.3 乘法
乘法相當(dāng)于加法的多次重復(fù)。
5.5.4 除法
既然減法是加法的逆運(yùn)算范抓,那么除法也就可以看成是乘法的逆運(yùn)算骄恶。
這個(gè)解釋起來(lái)還有點(diǎn)麻煩。
5.5.5 乘方
乘法是加法的多次重復(fù)運(yùn)算匕垫,乘方是乘法的多次重復(fù)運(yùn)算僧鲁。
5.5.6對(duì)數(shù)
乘方的逆運(yùn)算稱(chēng)為對(duì)數(shù)。
5.5.7 從時(shí)鐘指針到 RSA
通過(guò)上面的內(nèi)容如果你能知道“7的4次方 mod 12”的意思就是“求7的4次方除以12的余數(shù)”就可以了象泵。
?
5.6 RSA
5.6.1 什么是 RSA
RSA 是一種公鑰密碼算法寞秃。
RSA 可以被用于公鑰密碼和數(shù)字簽名。
疑問(wèn):是不是所有的非對(duì)稱(chēng)加密算法都可以用于數(shù)字簽名偶惠?
5.6.2 RSA 加密
RSA加密過(guò)程很簡(jiǎn)單蜕该,公式就是方框里面。
公式中出現(xiàn)了兩個(gè)數(shù)字 E 和 N洲鸠,因此任何人知道這兩個(gè)數(shù)字都可以完成加密運(yùn)算堂淡。也就是說(shuō)馋缅,E 和 N 的組合就是公鑰。
E 和 N 的組合才是一個(gè)公鑰绢淀,用來(lái)進(jìn)行數(shù)據(jù)加密萤悴。
5.6.3 RSA 解密
RSA 的解密公式如下:
D 和 N 的組合就是私鑰,用來(lái)數(shù)據(jù)解密皆的。
?
5.6.4 生成密鑰對(duì)
RSA的加密是求“E 次方的 mod N”覆履,解密是求“D 次方的 mod N ”
?
5.7 對(duì) RSA 的攻擊
任何一件新生事物的誕生,都會(huì)遭到質(zhì)疑费薄,這并不一定都是壞事情硝全,就是因?yàn)檫@些質(zhì)疑,新生事物才會(huì)更好更完善楞抡。
RSA 至今還未被證明是安全的伟众,但是也沒(méi)被證明是不安全的。目前公鑰加密算法中使用最廣泛的就是 RSA召廷。
這一節(jié)主要是討論破譯 RSA 的一些可能方法凳厢。
?
5.7.1 通過(guò)密文來(lái)求得明文
本節(jié)最后一句話(huà)表明了這個(gè)方法的不可行性。
?
5.7.2 通過(guò)暴力破解來(lái)找出 D
RSA 算法的安全性基千大素?cái)?shù)分解的困難性竞慢。如果攻擊者可以分解已知的 n, 得到 p 和 q, 然后可得到 z, 最后用 Euclid 算法先紫,由 e 和 z 得到 d。然 而要分解 200 位的數(shù)筹煮,需要 40 億年; 分解 500位的數(shù)遮精,則需要 1025年。
所以說(shuō)败潦,不可能在現(xiàn)實(shí)的時(shí)間內(nèi)通過(guò)暴力破解找出數(shù) D仑鸥。
?
5.7.3 通過(guò) E 和 N 求出 D
本節(jié)最后一句話(huà)說(shuō)明了這個(gè)方法本身的不可行性。
?
5.7.4 中間人攻擊
第一段說(shuō)了:這種方法不能破譯 RSA变屁,但卻是一種針對(duì)機(jī)密性的有效攻擊眼俊。
看圖5-6
?
5.8 其他公鑰密碼
僅做了解,不講了粟关。
?
5.9 關(guān)于公鑰密碼的 Q&A
列舉了一些常見(jiàn)問(wèn)題疮胖,并給出了解答,感興趣的自己看闷板。