公開(kāi)密鑰密碼體制的產(chǎn)生主要是因?yàn)閮蓚€(gè)方面的原因,一是由于常規(guī)密鑰密碼體制的密鑰分配問(wèn)題,另一種是由于對(duì)數(shù)字簽名的需求。
傳統(tǒng)的加密方法是加密、解密使用同樣的密鑰,由發(fā)送者和接收者分別保存,在加密和解密時(shí)使用,采用這種方法的主要問(wèn)題是密鑰的生成、注入、存儲(chǔ)、管理、分發(fā)等很復(fù)雜,特別是隨著用戶的增加,密鑰的需求量成倍增加。在網(wǎng)絡(luò)通信中,大量密鑰的分配是一個(gè)難以解決的問(wèn)題。
例如,若系統(tǒng)中有n個(gè)用戶,其中每?jī)蓚€(gè)用戶之間需要建立密碼通信,則系統(tǒng)中每個(gè)用戶須掌握(n-1)個(gè)密鑰,而系統(tǒng)中所需的密鑰總數(shù)為n*(n-1)/2個(gè)。對(duì)10個(gè)用戶的情況,每個(gè)用戶必須有9個(gè)密鑰,系統(tǒng)中密鑰的總數(shù)為45個(gè)。對(duì)100個(gè)用戶來(lái)說(shuō),每個(gè)用戶必須有99個(gè)密鑰,系統(tǒng)中密鑰的總數(shù)為4950個(gè)。這還僅考慮用戶之間的通信只使用一種會(huì)話密鑰的情況。如此龐大數(shù)量的密鑰生成、管理、分發(fā)確實(shí)是一個(gè)難處理的問(wèn)題。得勝的,我要叫他在我神殿中作柱子,他也必不再?gòu)哪抢锍鋈ァ?/p>
1976年美國(guó)斯坦福大學(xué)的兩名學(xué)者迪菲和赫爾曼提出了公開(kāi)密鑰密碼體制的概念。所謂的公開(kāi)密鑰密碼體制就是使用不同的加密密鑰與解密密鑰,是一種“由已知加密密鑰推導(dǎo)出解密密鑰在計(jì)算上是不可行的”密碼體制。
在公開(kāi)密鑰密碼體制中,加密密鑰(即公開(kāi)密鑰)PK是公開(kāi)信息,而解密密鑰(即秘密密鑰)SK是需要保密的。加密算法E和解密算法D也都是公開(kāi)的。雖然秘密密鑰SK是由公開(kāi)密鑰PK決定的,但卻不能根據(jù)PK計(jì)算出SK。
RSA算法簡(jiǎn)介
1978年出現(xiàn)了著名的RSA算法。這種算法為公用網(wǎng)絡(luò)上信息的加密和鑒別提供了一種基本的方法。它通常是先生成一對(duì)RSA密鑰,其中之一是保密密鑰,由用戶保存;另一個(gè)為公開(kāi)密鑰,可對(duì)外公開(kāi),甚至可在網(wǎng)絡(luò)服務(wù)器中注冊(cè)。為提高保密強(qiáng)度,RSA密鑰至少為500位長(zhǎng),一般推薦使用1024位。這就使加密的計(jì)算量很大。為減少計(jì)算量,在傳送信息時(shí),常采用傳統(tǒng)加密方法與公開(kāi)密鑰加密方法相結(jié)合的方式,即信息采用改進(jìn)的DES或IDEA對(duì)話密鑰加密,然后使用RSA密鑰加密對(duì)話密鑰和信息摘要。對(duì)方收到信息后,用不同的密鑰解密并可核對(duì)信息摘要。
RSA的優(yōu)缺點(diǎn)
優(yōu)點(diǎn)
RSA算法的加密密鑰和加密算法分開(kāi),使得密鑰分配更為方便。它特別符合計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境。對(duì)于網(wǎng)上的大量用戶,可以將加密密鑰用電話簿的方式印出。如果某用戶想與另一用戶進(jìn)行保密通信,只需從公鑰簿上查出對(duì)方的加密密鑰,用它對(duì)所傳送的信息加密發(fā)出即可。對(duì)方收到信息后,用僅為自己所知的解密密鑰將信息脫密,了解報(bào)文的內(nèi)容。由此可看出,RSA算法解決了大量網(wǎng)絡(luò)用戶密鑰管理的難題。
缺點(diǎn)
RSA并不能替代DES,它們的優(yōu)缺點(diǎn)正好互補(bǔ)。RSA的密鑰很長(zhǎng),加密速度慢,而采用DES,正好彌補(bǔ)了RSA的缺點(diǎn)。即DES用于明文加密,RSA用于DES密鑰的加密。由于DES加密速度快,適合加密較長(zhǎng)的報(bào)文;而RSA可解決DES密鑰分配的問(wèn)題。美國(guó)的保密增強(qiáng)郵件(PEM)就是采用了RSA和DES結(jié)合的方法,目前已成為E-MAIL保密通信標(biāo)準(zhǔn)。