大體組成
與傳統密碼體制加密和解密使用相同密鑰不同,公鑰密碼體制有兩個密鑰:
公鑰密碼體制的數學模型如5-1所示
情景:Alice要發送信息m給Bob
1. Alice用Bob的公鑰PU(b)加密m並發送
2. Bob接受加密后的信息,用只有自己知道的私鑰PR(b)進行解密,得到m
由於算法的嚴謹性,任何不知道Bob的私鑰的人,都無法對加密的信息進行解密,也無法從公鑰PU(b)推導出私鑰PR(b)。
主要用途(局限性)
由於速度比對稱密碼算法要慢幾個數量級,因此公鑰密碼算法至今主要用於數據安全,或用於短數據和密鑰的加密。
實用的公鑰密碼體制應該滿足以下的要求:
(1) 參與方B容易通過計算產生一對密鑰 公開密鑰PU(b)和私有密鑰PR(b)。
(2)發送方A容易通過計算產生密文:c=ePUb(m)
(3)接收方B容易通過計算解密密文:m=dPRb(c)=dPRb(ePUb(m))
(4)他人即使知道公開密鑰PUb,要確定私有密鑰PRb在計算上是不可行的。
(5)他人即使知道公開密鑰PUb和密文c,要想恢復報文m在計算上也是不可行的。
(6)加密和解密函數可以以兩個次序中的任何一個來使用:
m=dPRb(ePUb(m)) m=ePUb(dPRb(m))
本質上是設計一種陷門單向函數。
陷門單向函數是密碼學的核心。
陷門單向函數的定義:
• 正向計算容易。即如果知道x,計算y=f(x)相對容易。
• 反向計算極其困難。即如果知道y =f(x), 反向計算x=f^(−1) (y)非常困難
• 存在陷門δ,已知δ 時,對給定的任何y,若相應的x存在,則計算x使y=f(x)是容易的
至少三種攻擊方式進行破解:
• 強力攻擊(對密鑰)
密鑰窮舉法搜索可能的私鑰。
解決方法:密鑰長度要足夠長(但同時也增加了解密加密的速度)
• 公開密鑰算法本身可能被攻破
從數學上對陷門單向函數尋求突破,從公鑰PU推導出私鑰PR。
目前沒有嚴格證明該方法無效
• 可能報文攻擊(對報文本身的強力攻擊)
因為知道公鑰PU,攻擊者完全可以窮舉所有可能的明文,用公鑰來逐一加密這些明文,必有一個加密加過與截獲的密文相同。
解決方法:明文也要足夠長