密码篇——非对称加密
目錄
非對(duì)稱(chēng)密碼介紹
公鑰通信流程:
公鑰密碼無(wú)法解決的問(wèn)題:
公鑰密碼算法:
針對(duì)RSA的攻擊
其他公鑰密碼:
總結(jié):
非對(duì)稱(chēng)密碼介紹
在對(duì)稱(chēng)加密中,加密與解密使用的密鑰是相同的,因此必須向接收者配送密鑰。用于解密的密鑰必須配送給接收者,由此產(chǎn)生了密鑰配送問(wèn)題。
密鑰配送問(wèn)題:對(duì)一份文件進(jìn)行加密后發(fā)送給接收方,接收方需要查看文件就要用密鑰解開(kāi)加密文件才能查看原文件。所以不發(fā)送密鑰,接收方無(wú)法接收文件,發(fā)送密鑰后,又會(huì)被截取,讓第三方知道文件內(nèi)容
解決密鑰配送問(wèn)題可使用公鑰密碼
公鑰密碼中,密鑰可分為加密密鑰和解密密鑰。發(fā)送者使用加密密鑰對(duì)消息進(jìn)行加密,接受者用解密密鑰進(jìn)行解密
由此可得:
1)發(fā)送者只使用加密密鑰
2)接收者只是用解密密鑰
3)解密密鑰不可被第三方獲取
4)加秘密鑰無(wú)所謂
?
公鑰通信流程:
1)接收方生成一個(gè)包含公鑰和私鑰的密鑰對(duì)
2)接收方將私鑰自行保存,并將公鑰發(fā)送給發(fā)送方
3)發(fā)送方使用該公鑰對(duì)消息進(jìn)行加密后發(fā)送(是用公鑰只能對(duì)數(shù)據(jù)進(jìn)行加密,無(wú)法解密)
4)接收方使用私鑰對(duì)密文進(jìn)行解密
?
注:公鑰密碼也稱(chēng)為非對(duì)稱(chēng)加密。在對(duì)稱(chēng)密碼中,加密和解密使用的是同一密鑰,只是進(jìn)行相反運(yùn)算;而非對(duì)稱(chēng)加密中,加密與解密使用的是不同密鑰,并非對(duì)稱(chēng)
兩個(gè)密鑰之間存在著相互依存關(guān)系:即用其中任一個(gè)密鑰加密的信息只能用另一個(gè)密鑰進(jìn)行解密
?
公鑰密碼無(wú)法解決的問(wèn)題:
1)公鑰認(rèn)證問(wèn)題(需要判斷得到的公鑰是否合法)
2)處理速度(處理速度只有對(duì)稱(chēng)密碼的幾百分之一)
公鑰密碼算法:
RSA加密公式:密文 = 明文 E mod N(對(duì)代表明文代表的數(shù)字E次方除于N求余數(shù),E和N的組合就是公鑰)
RSA解密公式:明文 = 密文 D mod N (D和N的組合為私鑰)
?
注:N是公開(kāi)的,所以用于加密和解密的只有E和D
?
為了生成密鑰對(duì):需要求得N、L(僅在生成密鑰對(duì)的過(guò)程中使用的數(shù))、E、D
1)求N
使用偽隨機(jī)數(shù)生成器生成兩個(gè)很大的質(zhì)數(shù)p、q質(zhì)數(shù):在大于1的自然數(shù)中,除了1和它本身不會(huì)有其他因數(shù))N=p*q
2)求L
L只出現(xiàn)在生成密鑰對(duì)的過(guò)程中,不會(huì)出現(xiàn)于加解密中
L=lcm(p-1,q-1)L是p-1和q-1的最小公倍數(shù)
3)求E
1<E<L,gcd(E,L)=1,E與L的最大公約數(shù)為1;使用偽隨機(jī)數(shù)生成器生成E的候選數(shù),再判斷是否滿(mǎn)足最大公約數(shù)為1(使用輾轉(zhuǎn)相除法)
4)求D
D是由E得到
1<D<L,E*DmodL=1
?
針對(duì)RSA的攻擊
中間人攻擊:
?
該方法不止針對(duì)RSA,可以針對(duì)任何公鑰密碼,因此需要認(rèn)證公鑰是否來(lái)自接收方
?
其他公鑰密碼:
1)EIGamal
經(jīng)過(guò)加密的密文會(huì)變成明文的兩倍長(zhǎng);該算法是利用modN下求離散對(duì)數(shù)的難度
2)Rabin
利用modN下求平方根的難度,
3)橢圓曲線密碼
密鑰長(zhǎng)度短于RSA,利用橢圓曲線上的特定點(diǎn)進(jìn)行特定的乘法運(yùn)算
?
總結(jié):
1)密碼的機(jī)密性是通過(guò)密鑰的長(zhǎng)度進(jìn)行比較的,而非公鑰密碼強(qiáng)于對(duì)稱(chēng)密碼
2)公鑰密碼與對(duì)稱(chēng)密碼的密鑰長(zhǎng)度不能直接比較
3)公鑰密碼并不適合對(duì)很長(zhǎng)的密碼進(jìn)行加密,現(xiàn)在一般使用的是混合密碼(公鑰密碼和對(duì)稱(chēng)密碼組合使用:對(duì)稱(chēng)密碼提高處理速度,公鑰密碼解決密鑰配送問(wèn)題)
4)RSA中使用的質(zhì)數(shù)數(shù)量很多不用擔(dān)心使用完,和生成密鑰對(duì)時(shí)撞車(chē);且RSA在生成、加密、解密都不需要質(zhì)因數(shù)分解,但在破譯RSA時(shí)需要使用質(zhì)因數(shù)分解(求p和q)
總結(jié)
以上是生活随笔為你收集整理的密码篇——非对称加密的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 密码篇——对称加密—AES
- 下一篇: 密码篇——混合密码