圖解密碼技術(shù)學(xué)習(xí)-第五章 公鑰密碼

密鑰配送問題

問題緣由

之前講的分組密碼算法是使用的對稱密鑰,也就是說加密和解密用的同一個(gè)密鑰。如果兩個(gè)人通信。其中一個(gè)是發(fā)送者,一個(gè)是接收者,這兩者之間要正常通信,就必須同時(shí)知道這個(gè)密鑰。這就是密鑰配送問題的由來。

配送問題解決辦法

  • 事先共享密鑰。這個(gè)很容易理解,例如先用人把密鑰告訴對方。問題也很明顯,每次通話都需要不同的密鑰,那么密鑰數(shù)量是海量的。這會導(dǎo)致人力根本無法晚成。
  • 通過密鑰中心分配。簡單的說是通過一個(gè)中心服務(wù)器進(jìn)行分配密鑰。這個(gè)解決辦法帶出會話密鑰的概念。具體的方式如下:
    1、中心服務(wù)器為每一個(gè)人分配唯一一個(gè)私有的密鑰
    2、A和B需要通信,就向中心服務(wù)器申請一個(gè)臨時(shí)的會話密鑰
    3、中心服務(wù)器把會話密鑰分別用A和B的私有密鑰進(jìn)行加密,然后發(fā)送給A和B
    4、A和B接收到會話密鑰的密文后,用自己的私有密鑰進(jìn)行解密獲得會話密鑰,再用會話密鑰進(jìn)行通信。
    問題。全部人員所有通信密鑰都產(chǎn)生于一個(gè)地方,這個(gè)地方的壓力就相當(dāng)大,而且一旦此服務(wù)器壞掉,則所有人員無法通信。
  • Diffie-Hellman密鑰交換解決辦法。這個(gè)的特點(diǎn)是通信雙方通過交換一些信息,分別計(jì)算出通信密鑰。而這些信息哪怕被竊聽者知道,竊聽者也無法計(jì)算出密鑰。SSL通信使用的就是這種技術(shù)。
  • 公鑰密碼解決辦法。這個(gè)就是本章要介紹的解決辦法。

公鑰密碼

  • 所謂公鑰密碼,其實(shí)就是參與加密和解密的是兩套密鑰。
    加密用接收者的公鑰,接收者用私鑰進(jìn)行解密,公鑰和私鑰是成對的。
    由于加密的是公鑰,也就是本身就是公開的,所以即使是竊聽者截獲了公鑰也不能對密文進(jìn)行解密。這就解決了剛才討論的對稱密鑰的密鑰配送問題。
  • 目前RSA是事實(shí)的公鑰密碼算法標(biāo)準(zhǔn)。
  • 問題
    1、公鑰是否是真的接收者發(fā)送的公鑰?這個(gè)涉及到公鑰認(rèn)證問題,也就是可能受到中間人攻擊。
    2、公鑰密碼加密的速度遠(yuǎn)遠(yuǎn)低于對稱密鑰,大概只有對稱密鑰的幾百分之一,這在實(shí)際應(yīng)用中也是一個(gè)明顯的缺陷。

RSA

加解密算法

  • 加密算法。
    1. 密文 = 明文 E mod N ,就是明文自己乘以自己E次(E次冪),再和N取模。
    2. 公鑰 = {E,N}
  • 解密算法。
    1. 明文 = 密文 D mod N ,就是密文自己乘以自己D次(D次冪),再和N取模。
    2. 私鑰 = {D,N}
  • 生成密鑰對。也就是計(jì)算 E、N、D。
    1. 準(zhǔn)備兩個(gè)很大的質(zhì)數(shù) p 和 q。
    2. N = p x q
    3. L = lcm(p-1, q-1) 【L是中間過程的數(shù)值,L為 (p-1) 和 (q-1)的最小公倍數(shù)】
    4. 求解E,滿足如下條件:
      1 < E < L
      gcd(E, L) = 1 【E和L的最大公約數(shù)為1】
    5. 求解D,滿足如下條件:
      1 < D < L
      E x D mod L = 1

針對RSA攻擊

  • 基于密鑰生成原理的攻擊
    從上面的生成原理可以看到,E、N是公開的,D、p、q、L不是公開的。

    1. 通過密文求得明文。
      如果僅僅是"密文 = 明文 E",那么完全可以通過求對數(shù)由密文得到明文。但是由于加上了"mode N",所以問題變成了求離散對數(shù)。
      這個(gè)目前沒有高效的算法,此辦法不通。
    2. 暴力破解D。
      目前p和q基本是512比特,N為1024,E和D基本和N一樣。
      如此長度下,暴力破解幾乎不可能,此辦法不通。
    3. 通過E和N求出D。
      問題在于L不知道,其實(shí)最根本的是不知道p和q。
      p和q是絕對不能讓攻擊者知道的,這等同于知道私鑰。
    4. 對N進(jìn)行質(zhì)因數(shù)分解攻擊。
      N是由p和q相乘得到的,N是公開的,所以如果能進(jìn)行N的質(zhì)因數(shù)分解,就能得到p和q。
      但現(xiàn)在沒有針對打證書進(jìn)行質(zhì)因數(shù)分解的高效算法,所以目前RSA還未破解。
      從中可以得到p和q的長度很重要。
    5. 通過推測p和q進(jìn)行攻擊。
      p和q是偽隨機(jī)數(shù)生成的,如果偽隨機(jī)數(shù)的算法很差,那么密碼是可以被推測破譯的。
  • 中間人攻擊
    下面講解整個(gè)流程,就很清楚如何進(jìn)行攻擊的了。

  1. 發(fā)送者通知接收者傳遞其公鑰,用來加密信息
  2. 攻擊者竊聽到此內(nèi)容
  3. 接收者向發(fā)送者發(fā)送公鑰
  4. 攻擊者截留接收者發(fā)送的公鑰信息,而自己將自己的公鑰發(fā)送給發(fā)送者
  5. 發(fā)送者收到攻擊者的公鑰后,以為是接收者的公鑰,則加密發(fā)送信息給接收者
  6. 攻擊者截留發(fā)送者發(fā)送信息,然后用自己的私鑰解密,獲得明文信息
  7. 攻擊者篡改發(fā)送者信息,然后用第4步截留的接收者的公鑰將篡改后的信息加密,發(fā)送給接收者
  8. 接收者接收到攻擊者篡改的密文后,可以正常的解密此信息,會認(rèn)為此篡改的信息是發(fā)送者發(fā)送的

中間人攻擊成功的根因在于,發(fā)送者和接收者都無法判斷接收到的信息,是否是真正的正確的人發(fā)送的信息。這就涉及到認(rèn)證的問題。此問題后面章節(jié)會解決。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 公鑰密碼系統(tǒng)及RSA公鑰算法 本文簡單介紹了公開密鑰密碼系統(tǒng)的思想和特點(diǎn),并具體介紹了RSA算法的理論基礎(chǔ),工作原...
    火狼o閱讀 4,430評論 2 15
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評論 19 139
  • 這篇文章主要講述在Mobile BI(移動商務(wù)智能)開發(fā)過程中,在網(wǎng)絡(luò)通信、數(shù)據(jù)存儲、登錄驗(yàn)證這幾個(gè)方面涉及的加密...
    雨_樹閱讀 3,039評論 0 6
  • Guide to BluetoothSecurity原文 本出版物可免費(fèi)從以下網(wǎng)址獲得:https://doi.o...
    公子小水閱讀 8,773評論 0 6
  • WJ的清晨 黑夜是清醒著 黑色的夜 藏著粉色花疊 白晝是慵懶著 藍(lán)色的天 飄著白色云朵 我和你 干凈著 讓平滑語調(diào)...
    齊輝6003閱讀 244評論 0 0

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