資源描述:
《公鑰密碼原理》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、公鑰密碼體制原理簡介及補(bǔ)遺-1-公鑰密碼體制原理簡介及補(bǔ)遺(陳云川ybc2084@163.comUESTC,CD2007年6月26日)核心思想公鑰密碼體制的核心思想是:加密和解密采用不同的密鑰。這是公鑰密碼體制和傳統(tǒng)的對(duì)稱密碼體制最大的區(qū)別。對(duì)于傳統(tǒng)對(duì)稱密碼而言,密文的安全性完全依賴于密鑰的保密性,一旦密鑰泄漏,將毫無保密性可言。但是公鑰密碼體制徹底改變了這一狀況。在公鑰密碼體制中,公鑰是公開的,只有私鑰是需要保密的。知道公鑰和密碼算法要推測(cè)出私鑰在計(jì)算上是不可行的。這樣,只要私鑰是安全的,那么加密就是可信的。顯然,對(duì)稱密碼和公鑰密碼都需要保證密鑰的安全,不同之處
2、在于密鑰的管理和分發(fā)上面。在對(duì)稱密碼中,必須要有一種可靠的手段將加密密鑰(同時(shí)也是解密密鑰)告訴給解密方;而在公鑰密碼體制中,這是不需要的。解密方只需要保證自己的私鑰的保密性即可,對(duì)于公鑰,無論是對(duì)加密方而言還是對(duì)密碼分析者而言都是公開的,故無需考慮采用可靠的通道進(jìn)行密碼分發(fā)。這使得密鑰管理和密鑰分發(fā)的難度大大降低了。兩種密碼體制的特征對(duì)比表1將對(duì)稱密碼和公鑰密碼的特征進(jìn)行了對(duì)比。如前所述,公鑰密碼體制使用兩個(gè)密鑰,習(xí)慣上,為了將其與對(duì)稱密碼體制中的密鑰相區(qū)分,把公鑰密碼體制中使用的兩個(gè)密鑰分別稱為公鑰和私鑰。公鑰是可公開的,而私鑰則是要保密的。表1對(duì)稱密碼和公鑰
3、密碼的對(duì)比對(duì)稱密碼公鑰密碼加解密使用相同的密鑰和相同的算同一算法用于加解密,但加密和解密使法用不同的密鑰一般要求收發(fā)雙方必須共享密鑰收發(fā)雙方共享公鑰,但各自的私鑰是保密的密鑰必須是保密的私鑰必須是保密的若沒有其它信息,則解密消息是不若沒有其它信息,則解密消息是不可能安全性要求可能的或至少是不可行的的或至少是不可行的知道算法和若干密文不足以確定密知道算法和其中一個(gè)密鑰以及若干密鑰文不足以確定另一密鑰公鑰密碼的兩種基本用途公鑰密碼的兩種基本用途是用來進(jìn)行加密和認(rèn)證。為了便于說明,不妨假設(shè)消息的發(fā)送公鑰密碼體制原理簡介及補(bǔ)遺-2-方為A,相應(yīng)的公鑰對(duì)為(PUA,PRA)
4、。這里,PUA表示A的公鑰,PRA表示A的私鑰。同理,假設(shè)消息的接收方為B,相應(yīng)的公鑰對(duì)為(PUB,PRB)。其中,PUB表示B的公鑰,PRB表示B的私鑰。對(duì)于A而言,既知道自己的公鑰PUA,也知道B的公鑰PUB。通常,就將A所知道的公鑰集合稱為公鑰環(huán)。當(dāng)需要對(duì)消息進(jìn)行加密時(shí),A從自己的公鑰環(huán)中取出接收方的公鑰,對(duì)消息進(jìn)行加密,然后將消息發(fā)送給接收方。接收方收到加密消息后,用自己的私鑰對(duì)密文進(jìn)行解密。這個(gè)過程如圖1所示。圖1公鑰密碼用于加密由于A是用B的公鑰PUB對(duì)消息進(jìn)行加密,因此只有用B的私鑰PRB才能解密密文C,而B的私鑰PRB是由B秘密保存的。由于攻擊者沒
5、有B的私鑰PRB,因此攻擊者要想僅根據(jù)密文C和B的公鑰PUB解密消息是不可能的。由此,就實(shí)現(xiàn)了保密性的功能。除了用于實(shí)現(xiàn)保密性之外,公鑰密碼還可以用來實(shí)現(xiàn)認(rèn)證功能。過程如圖2所示。圖2公鑰密碼用于認(rèn)證對(duì)比圖1,可以看到用公鑰密碼實(shí)現(xiàn)認(rèn)證和用于保密的區(qū)別。最主要的不同在于加解密密鑰的使用上,當(dāng)用公鑰密碼實(shí)現(xiàn)保密功能時(shí),是用接收方的公鑰對(duì)消息進(jìn)行加密,接收方用自己的私鑰對(duì)消息進(jìn)行解密;而當(dāng)用公鑰密碼實(shí)現(xiàn)認(rèn)證功能時(shí),是用發(fā)送方的私鑰對(duì)消息進(jìn)行加密,接收方收到之后,用發(fā)送方的公鑰恢復(fù)出明文消息M。由于只有發(fā)送方A擁有私鑰PRA,因此只要接收方B能夠正確解密出密文C,就可以
6、認(rèn)為消息的確是由發(fā)送方A發(fā)出的。這樣就實(shí)現(xiàn)了對(duì)發(fā)送方的身份的認(rèn)證。不過,這種簡單的公鑰認(rèn)證模型的問題是:第一,這種方式只能對(duì)發(fā)送端進(jìn)行認(rèn)證;第二,由于攻擊者也可以知道A的公鑰,因此攻擊者也可以公鑰密碼體制原理簡介及補(bǔ)遺-3-解密出密文消息C,也就是說,這里只能實(shí)現(xiàn)認(rèn)證能力,而無法實(shí)現(xiàn)保密能力。如果要同時(shí)實(shí)現(xiàn)保密和認(rèn)證功能,需要對(duì)消息進(jìn)行兩次加密。應(yīng)滿足的條件公鑰密碼應(yīng)滿足的5個(gè)基本條件是由Diffie和Hellman給出的,這里,假設(shè)消息的發(fā)送方為A,消息的接收方為B:ò產(chǎn)生密鑰對(duì)(公鑰PU,私鑰PR)在計(jì)算上是容易的;ò已知B的公鑰PUb和要發(fā)送給B的消息M,A
7、產(chǎn)生相應(yīng)的密文在計(jì)算上是容易的:C=E(PUb,M)ò接收方B用自己的私鑰PRb解密所接收的密文以恢復(fù)明文消息在計(jì)算上是容易實(shí)現(xiàn)的:M=D(PRb,C)=D[PRb,E(PUb,M)]ò假設(shè)攻擊者已知公鑰PUb,要確定出對(duì)應(yīng)的私鑰PRb在計(jì)算上是不可行的;ò假設(shè)攻擊者已知公鑰PUb和密文C,要恢復(fù)明文M在計(jì)算上是不可行的;以上5個(gè)條件就是公鑰密碼的基本要求。通常,現(xiàn)代公鑰密碼還滿足以下條件:ò既可以用公鑰作為加密密鑰,也可以用私鑰作為加密密鑰。如果用公鑰作為加密密鑰,那么私鑰就是解密密鑰;如果用私鑰作為加密密鑰,那么公鑰就是解密密鑰。比如,著名的RSA密碼就滿足上
8、述附加條件