密鑰分為兩種:對(duì)稱(chēng)密鑰與非對(duì)稱(chēng)密鑰
對(duì)稱(chēng)密鑰加密,又稱(chēng)私鑰加密,即信息的發(fā)送方和接收方用一個(gè)密鑰去加密和解密數(shù)據(jù)。它的最大優(yōu)勢(shì)是加/解密速度快,適合于對(duì)大數(shù)據(jù)量進(jìn)行加密,但密鑰管理困難。
非對(duì)稱(chēng)密鑰加密系統(tǒng),又稱(chēng)公鑰密鑰加密。它需要使用一對(duì)密鑰來(lái)分別完成加密和解密操作,一個(gè)公開(kāi)發(fā)布,即公開(kāi)密鑰,另一個(gè)由用戶自己秘密保存,即私用密鑰。信息發(fā)送者用公開(kāi)密鑰去加密,而信息接收者則用私用密鑰去解密。公鑰機(jī)制靈活,但加密和解密速度卻比對(duì)稱(chēng)密鑰加密慢得多。
對(duì)于普通的對(duì)稱(chēng)密碼學(xué),加密運(yùn)算與解密運(yùn)算使用同樣的密鑰。通常,使用的對(duì)稱(chēng)加密算法比較簡(jiǎn)便高效,密鑰簡(jiǎn)短,破譯極其困難,由于系統(tǒng)的保密性主要取決于密鑰的安全性,所以,在公開(kāi)的計(jì)算機(jī)網(wǎng)絡(luò)上安全地傳送和保管密鑰是一個(gè)嚴(yán)峻的問(wèn)題。正是由于對(duì)稱(chēng)密碼學(xué)中雙方都使用相同的密鑰,因此無(wú)法實(shí)現(xiàn)數(shù)據(jù)簽名和不可否認(rèn)性等功能。
20 世紀(jì) 70 年代以來(lái),一些學(xué)者提出了公開(kāi)密鑰體制,即運(yùn)用單向函數(shù)的數(shù)學(xué)原理,以實(shí)現(xiàn)加、解密密鑰的分離。加密密鑰是公開(kāi)的,解密密鑰是保密的。這種新的密碼體制,引起了密碼學(xué)界的廣泛注意和探討不像普通的對(duì)稱(chēng)密碼學(xué)中采用相同的密鑰加密、解密數(shù)據(jù),非對(duì)稱(chēng)密鑰加密
技術(shù)采用一對(duì)匹配的密鑰進(jìn)行加密、解密,具有兩個(gè)密鑰,一個(gè)是公鑰一個(gè)是私鑰,它們具有這種性質(zhì):每把密鑰執(zhí)行一種對(duì)數(shù)據(jù)的單向處理,每把的功能恰恰與另一把相反,一把用于加密時(shí),則另一把就用于解密。用公鑰加密的文件只能用私鑰解密,而私鑰加密的文件只能用公鑰解密。 公共密鑰是由其主人加以公開(kāi)的,而私人密鑰必須保密存放。為發(fā)送一份保密報(bào)文,發(fā)送者必須使用接收者的公共密鑰對(duì)數(shù)據(jù)進(jìn)行加密,一旦加密,只有接收方用其私人密鑰才能加以解密。
相反地,用戶也能用自己私人密鑰對(duì)數(shù)據(jù)加以處理。換句話說(shuō),密鑰對(duì)的工作是可以任選方向的。這提供了"數(shù)字簽名"的基礎(chǔ),如果要一個(gè)用戶用自己的私人密鑰對(duì)數(shù)據(jù)進(jìn)行了處理,別人可以用他提供的公共密鑰對(duì)數(shù)據(jù)加以處理。由于僅僅擁有者本人知道私人密鑰,這種被處理過(guò)的報(bào)文就形成了一種電子簽名----一種別人無(wú)法產(chǎn)生的文件。 數(shù)字證書(shū)中包含了公共密鑰信息,從而確認(rèn)了擁有密鑰對(duì)的用戶的身份。
簡(jiǎn)單的公共密鑰例子可以用素?cái)?shù)表示,將素?cái)?shù)相乘的算法作為公鑰,將所得的乘積分解成原來(lái)的素?cái)?shù)的算法就是私鑰,加密就是將想要傳遞的信息在編碼時(shí)加入素?cái)?shù),編碼之后傳送給收信人,任何人收到此信息后,若沒(méi)有此收信人所擁有的私鑰,則解密的過(guò)程中(實(shí)為尋找素?cái)?shù)的過(guò)程),將會(huì)因?yàn)檎宜財(cái)?shù)的過(guò)程(分解質(zhì)因數(shù))過(guò)久而無(wú)法解讀信息。
對(duì)稱(chēng)加密
采用單鑰密碼系統(tǒng)的加密方法,同一個(gè)密鑰可以同時(shí)用作信息的加密和解密,這種加密方法稱(chēng)為對(duì)稱(chēng)加密,也稱(chēng)為單密鑰加密。需要對(duì)加密和解密使用相同密鑰的加密算法。由于其速度,對(duì)稱(chēng)性加密通常在消息發(fā)送方需要加密大量數(shù)據(jù)時(shí)使用。對(duì)稱(chēng)性加密也稱(chēng)為密鑰加密。所謂對(duì)稱(chēng),就是采用這種加密方法的雙方使用方式用同樣的密鑰進(jìn)行加密和解密。密鑰實(shí)際上是一種算法,通信發(fā)送方使用這種算法加密數(shù)據(jù),接收方再以
同樣的算法解密數(shù)據(jù)。因此對(duì)稱(chēng)式加密本身不是安全的。
常用的對(duì)稱(chēng)加密有:
DES、 IDEA、 RC2、 RC4、 SKIPJACK、 RC5、 AES 算法等采用單鑰密碼系統(tǒng)的加密方法,同一個(gè)密鑰可以同時(shí)用作信息的加密和解密,這種加密方法稱(chēng)為對(duì)稱(chēng)加密,也稱(chēng)為單密鑰加密。
非對(duì)稱(chēng)加密
1976 年,美國(guó)學(xué)者 Dime 和 Henman 為解決信息公開(kāi)傳送和密鑰管理問(wèn)題,提出一種新的密鑰交換協(xié)議,允許在不安全的媒體上的通訊雙方交換信息,安全地達(dá)成一致的密鑰,這就是“公開(kāi)密鑰系統(tǒng)”。相對(duì)于“對(duì)稱(chēng)加密算法”這種方法也叫做“非對(duì)稱(chēng)加密算法”。與對(duì)稱(chēng)加密算法不同,非對(duì)稱(chēng)加密算法需要兩個(gè)密鑰:公開(kāi)密鑰( publickey)和私有密鑰( privatekey)。公開(kāi)密鑰與私有密鑰是一對(duì),如果用公開(kāi)密鑰對(duì)數(shù)
據(jù)進(jìn)行加密,只有用對(duì)應(yīng)的私有密鑰才能解密;如果用私有密鑰對(duì)數(shù)據(jù)進(jìn)行加密,那么只有用對(duì)應(yīng)的公開(kāi)密鑰才能解密。因?yàn)榧用芎徒饷苁褂玫氖莾蓚€(gè)不同的密鑰,所以這種算法叫作非對(duì)稱(chēng)加密算法。
非對(duì)稱(chēng)加密算法實(shí)現(xiàn)機(jī)密信息交換的基本過(guò)程是:甲方生成一對(duì)密鑰并將其中的一把作為公用密鑰向其它方公開(kāi);得到該公用密鑰的乙方使用該密鑰對(duì)機(jī)密信息進(jìn)行加密后再發(fā)送給甲方;甲方再用自己保存的另一把專(zhuān)用密鑰對(duì)加密后的信息進(jìn)行解密。甲方只能用其專(zhuān)用密鑰解密由其公用密鑰加密后的任何信息。非對(duì)稱(chēng)加密算法的保密性比較好,它消除了最終用戶交換密鑰的需要,但加密和解密花費(fèi)時(shí)間長(zhǎng)、速度慢,它不適合于對(duì)文件加密而只適用于對(duì)少量數(shù)據(jù)進(jìn)行加密。
經(jīng)典的非對(duì)稱(chēng)加密算法如 RSA 算法等安全性都相當(dāng)高.
非對(duì)稱(chēng)加密的典型應(yīng)用是數(shù)字簽名。
采用雙鑰密碼系統(tǒng)的加密方法,在一個(gè)過(guò)程中使用兩個(gè)密鑰,一個(gè)用于加密,另一個(gè)用于解密,這種加密方法稱(chēng)為非對(duì)稱(chēng)加密,也稱(chēng)為公鑰加密,因?yàn)槠渲幸粋€(gè)密鑰是公開(kāi)的(另一個(gè)則需要保密)。
公鑰
公鑰是與私鑰算法一起使用的密鑰對(duì)的非秘密一半。公鑰通常用于加密會(huì)話密鑰、驗(yàn)證數(shù)字簽名,或加密可以用相應(yīng)的私鑰解密的數(shù)據(jù)。公鑰和私鑰是通過(guò)一種算法得到的一個(gè)密鑰對(duì)(即一個(gè)公鑰和一個(gè)私鑰)其中的一個(gè)向外界公開(kāi),稱(chēng)為公鑰;另一個(gè)自己保留,稱(chēng)為私鑰。通過(guò)這種算法得到的密鑰對(duì)能保證在世界范圍內(nèi)是唯一的。使用這個(gè)密鑰對(duì)的時(shí)候,如果用其中一個(gè)密鑰加密一段數(shù)據(jù),必須用另一個(gè)密鑰解密。比如用公鑰加密數(shù)據(jù)就必須用私鑰解密,如果用私鑰加密也必須用公鑰解密,否則解密將不會(huì)成功。
1976 年。當(dāng)時(shí)在美國(guó)斯坦福大學(xué)的迪菲( Diffie)和赫爾曼(Hellman)兩人提出了公開(kāi)密鑰密碼的新思想(論文"New Direction in Cryptography"),不僅加密算法本身可以公開(kāi),甚至加密用的密鑰也可以公開(kāi)。但這并不意味著保密程度的降低。因?yàn)槿绻用苊荑€和解密密鑰不一樣。而將解密密鑰保密就可以。這就是著名的公鑰密碼體制。也稱(chēng)作非對(duì)稱(chēng)密碼體制。不同于對(duì)稱(chēng)性的 密碼學(xué), 在于其加密鑰匙只適用于單一用戶。
鑰匙的兩部分
一把私有的鑰匙,僅有用戶才擁有。一把公開(kāi)的鑰匙,可公開(kāi)發(fā)行配送,只要有要求即取得。每支鑰匙產(chǎn)生一個(gè)被使用來(lái)改變屬性的功能。私有的鑰匙產(chǎn)生一個(gè)私有改變屬性的功能,而公開(kāi)的鑰匙 產(chǎn)生一個(gè) 公開(kāi)改變屬性的功能。這些功能是反向相關(guān)的,例如,如果一個(gè)功能是用來(lái)加密消息,另外一個(gè)功能則被用來(lái)解密消息。不論此改變屬性功能的次序?yàn)楹谓圆恢匾?。公開(kāi)的鑰匙系統(tǒng)的優(yōu)勢(shì)是兩個(gè)用戶能安全的溝通而不需交換秘密鑰匙。例如,假設(shè)一個(gè)送信者需要傳送一個(gè)信息給一個(gè)收信者,而信息的秘密性是必要的, 送信者以收信者的公開(kāi)的鑰匙來(lái)加密,而僅有收信者的私有的鑰匙能夠?qū)Υ诵畔⒔饷?。公開(kāi)的鑰匙密碼學(xué)是非常適合于提供認(rèn)證,完整和不能否認(rèn)的服務(wù), 所有的這些服務(wù)既是我們所知的數(shù)字簽名。
RSA 公鑰系統(tǒng)
RSA 公鑰系統(tǒng)發(fā)明于新思想提出后一年在麻省理工學(xué)院,里維斯特(RonaldRivest)、沙米爾(Adi Shamir)和阿德勒曼(Len Adleman)提出第一個(gè)較完善的公鑰密碼體制——RSA 體制,由三位發(fā)明人的姓氏首字母命名。這是一種建立在大數(shù)因子分解基礎(chǔ)上的算法。它是第一個(gè)成熟的、迄今為止理論上最成功的公鑰密碼體制。它的安全性是基于數(shù)論中的大整數(shù)因子分解。該問(wèn)題是數(shù)論中的一個(gè)困難問(wèn)題,至今沒(méi)有有效的算法,(即大整數(shù)因子分解不能在多項(xiàng)式時(shí)間內(nèi)完成)這使得該體制具有較高的保密性。并且得到了廣泛應(yīng)用。不為人知的是,早在 1970 年的秘密研究中,英國(guó)情報(bào)機(jī)構(gòu) GCHQ 的數(shù)學(xué)家 James H. Ellis 便已發(fā)明非對(duì)稱(chēng)鑰匙密碼學(xué),而且Diffie-Hellman 與 RSA 都曾被 Malcolm J. Williamson 與 Clifford Cocks 分別發(fā)明于前。這兩個(gè)最早的公鑰系統(tǒng)提供優(yōu)良的加密法基礎(chǔ),因而被大量使用。其他公鑰系統(tǒng)還有 Cramer-Shoup、 Elgamal、以及橢圓曲線密碼學(xué)等等。這些事件直到 1997 年歷史文件解密的時(shí)候才為大眾所知。
私鑰
與公鑰算法一起使用的密鑰對(duì)的秘密一半。
1,公鑰和私鑰成對(duì)出現(xiàn)
2,公開(kāi)的密鑰叫公鑰,只有自己知道的叫私鑰
3,用公鑰加密的數(shù)據(jù)只有對(duì)應(yīng)的私鑰可以解密
4,用私鑰加密的數(shù)據(jù)只有對(duì)應(yīng)的公鑰可以解密
5,如果可以用公鑰解密,則必然是對(duì)應(yīng)的私鑰加的密
6,如果可以用私鑰解密,則必然是對(duì)應(yīng)的公鑰加的密