非對(duì)稱加密和混合密碼系統(tǒng)

簡(jiǎn)介

非對(duì)稱加密算法的特點(diǎn)是,密鑰分為加密密鑰和解密密鑰,并且這兩個(gè)密鑰是不一樣的(非對(duì)稱)。發(fā)送者用加密密鑰對(duì)消息進(jìn)行加密,接受者用解密密鑰對(duì)密文進(jìn)行解密。

一般情況下:

  • 加密密鑰是公開(kāi)的,稱為公鑰
  • 解密密鑰是私有的,稱為私鑰。

一次使用非對(duì)稱加密通信的流程

假設(shè)A是發(fā)送者,B是接收者。

  1. B生成一個(gè)密鑰對(duì)(公鑰+私鑰)。私鑰由B自行妥善保管。
  2. B將自己的公鑰發(fā)送給A。公鑰是公開(kāi)的,無(wú)需保密。
  3. A用B的公鑰對(duì)消息進(jìn)行加密。加密后的消息只有B的私鑰能解密。
  4. A將密文發(fā)送給B。
  5. B用自己的私鑰對(duì)密文進(jìn)行解密。

RSA

  • RSA是目前最常用的非對(duì)稱加密算法。在RSA中,明文、密鑰和密文都是數(shù)字(很大的數(shù)字)。下面對(duì)RSA進(jìn)行簡(jiǎn)單介紹,跟多原理和細(xì)節(jié)請(qǐng)自行網(wǎng)上搜索參考。
  • RSA的密文是對(duì)代表明文的數(shù)字的E次方求mod N的結(jié)果:密文=明文^E mod N。
  • RSA解密就是密文的數(shù)字D次方求mod N就可以得到明文:明文=密文^D mode N。
  • E和N是RSA加密的密鑰,E和N的組合就是公鑰
  • D和N是RSA解密的密鑰,D和N的組合就是密鑰。
  • 生成RSA算法的密鑰對(duì)(E、D、N):
  1. 求N
    • 準(zhǔn)備兩個(gè)很大(比如512比特)的質(zhì)數(shù)p和q
    • N = p * q
  2. 求L(L是個(gè)中間數(shù)值)
    • L是p-1和q-1的最小公倍數(shù)
  3. 求E
    • 1 < E < L
    • E與L的最大公約數(shù)為1
  4. 求D
    • 1 < D < L
    • E * D mod L = 1

非對(duì)稱加密存在的問(wèn)題

  • 中間人攻擊,公鑰是公開(kāi)的,怎么確定密文來(lái)自所期望的對(duì)象。
  • 計(jì)算速度慢,只有對(duì)稱加密算法的幾百分之一。

下面介紹混合加密系統(tǒng),用于解決計(jì)算速度慢的問(wèn)題。

混合密碼系統(tǒng)

混合密碼系統(tǒng)結(jié)合了非對(duì)稱加密算法和對(duì)稱加密算法的優(yōu)勢(shì):

  • 利用非對(duì)稱加密算法的“非對(duì)稱性”,解決對(duì)稱密鑰的傳遞問(wèn)題。
  • 利用對(duì)稱加密算法的加解密速度,解決非對(duì)稱加解密的速度問(wèn)題。

混合密碼系統(tǒng)的加密

混合加密
  1. 發(fā)送者利用一個(gè)隨機(jī)數(shù)生成器生成一個(gè)對(duì)稱加密算法的會(huì)話密鑰。
  2. 使用會(huì)話密鑰加密會(huì)話消息,得到會(huì)話消息密文(對(duì)稱加密)。
  3. 使用接受者的公鑰加密會(huì)話密鑰,得到會(huì)話密鑰密文(非對(duì)稱加密)。
    4.組合會(huì)話密鑰密文和會(huì)話消息密文。

混合密碼系統(tǒng)的解密

混合解密
  1. 分離密文,等到會(huì)話密鑰密文和會(huì)話消息密文。
  2. 用私鑰解密會(huì)話密鑰密文,得到會(huì)話密鑰(非對(duì)稱加密)。
  3. 用會(huì)話密鑰解密會(huì)話消息密文,得到會(huì)話消息(對(duì)稱加密)。

參考

  • 維基百科
  • 《圖解密碼學(xué)》
最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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