摘 要:本文從對(duì)稱密碼算法與非對(duì)稱密碼算法的體制思想入手,從兩種算法的工作原理、加密方案及各自優(yōu)缺點(diǎn)等多個(gè)方面展開論述,進(jìn)一步解析對(duì)稱密碼算法與非對(duì)稱密碼算法的異同。
關(guān)鍵詞:對(duì)稱;非對(duì)稱;密碼算法
中圖分類號(hào):TP212.9;TN918.82
根據(jù)加密算法與解密算法所使用的密鑰是否相同,可將密碼算法分為對(duì)稱密碼算法與非對(duì)稱密碼算法。接下來(lái),就從體制思想,工作原理和加密方案等幾個(gè)方面來(lái)簡(jiǎn)要地分析對(duì)稱密碼算法和非對(duì)稱密碼算法。
1 體制思想的異同
1.1 含義。所謂的對(duì)稱密碼算法(Symmetric Cipher),也叫傳統(tǒng)密碼算法,其含義就是加密密鑰能夠通過(guò)解密密鑰推導(dǎo)出來(lái),反之用解密密鑰也可以推導(dǎo)出加密密鑰。在大多數(shù)的對(duì)稱密碼算法中,加密密鑰和解密密鑰其實(shí)是一致的,就是同一個(gè)密鑰。因此也將此算法稱為單密鑰算法或秘密密鑰算法,此密碼算法要求發(fā)送者和接收者在進(jìn)行安全通信交互以前,先要商定一個(gè)安全保密的密鑰,以便在通信過(guò)程中使用。
所謂的非對(duì)稱密碼算法(Asymmetric Cipher),也稱為雙密鑰算法,是指一個(gè)加密算法的加密密鑰和解密密鑰是不相同的,是兩把密鑰,或者說(shuō)不能通過(guò)其中一個(gè)密鑰推導(dǎo)出另一個(gè)密鑰。非對(duì)稱密鑰也常常稱為公鑰密碼算法,因?yàn)樗怯脙蓚€(gè)數(shù)學(xué)相關(guān)的密鑰對(duì)信息進(jìn)行編碼,一個(gè)叫做公開密鑰,一個(gè)叫做私有密鑰,公開密鑰主要用于對(duì)信息的加密,可隨意發(fā)給期望同密鑰持有者進(jìn)行安全通信的人,私有密鑰主要用于對(duì)信息的解密,屬于密鑰持有者,保存好私有密鑰至關(guān)重要。
1.2 核心思想。對(duì)稱密碼算法的核心思想是加密和解密采用相同的密鑰;非對(duì)稱密碼算法的核心思想是加密和解密采用不同的密鑰。
1.3 密文安全性。對(duì)于對(duì)稱密碼算法而言,密文的安全性完全依賴于密鑰的保密性,一旦密鑰泄露,將毫無(wú)保密性而言;對(duì)于非對(duì)稱密碼算法而言,公鑰是公開的,只有私鑰是需要保密的,知道公鑰和密碼算法要推測(cè)出私鑰在計(jì)算上是不可行的,只要私鑰是安全的,那么加密就是可信的。
2 工作原理的異同
2.1 對(duì)稱加密算法的工作原理。假設(shè)兩個(gè)用戶需要使用對(duì)稱加密方法加密后交換數(shù)據(jù),則用戶最少需要2個(gè)密鑰并交換使用,如果企業(yè)內(nèi)用戶有n個(gè),則整個(gè)企業(yè)共需要n×(n-1)個(gè)密鑰,密鑰的生成和分發(fā)將成為企業(yè)信息部門的惡夢(mèng)。對(duì)稱加密算法的安全性取決于加密密鑰的保存情況,但要求企業(yè)中每一個(gè)持有密鑰的人都保守秘密是不可能的,他們通常會(huì)有意無(wú)意的把密鑰泄漏出去——如果一個(gè)用戶使用的密鑰被入侵者所獲得,入侵者便可以讀取該用戶密鑰加密的所有文檔,如果整個(gè)企業(yè)共用一個(gè)加密密鑰,那整個(gè)企業(yè)文檔的保密性便無(wú)從談起。
2.2 非對(duì)稱加密算法的工作原理。如果兩個(gè)用戶需要采用非對(duì)稱加密算法加密數(shù)據(jù),則兩個(gè)用戶之間的工作原理如下:首先用戶A要向用戶B發(fā)送交互信息,用戶A和用戶B同時(shí)都要產(chǎn)生一對(duì)用于加密和解密的公鑰和私鑰,用戶A的私鑰保密,公鑰告訴B;用戶B的私鑰保密,公鑰告訴A。當(dāng)用戶A要給用戶B發(fā)送信息時(shí),則需先使用用戶B的公鑰加密信息,然后將這個(gè)消息發(fā)給用戶B,用戶B收到這個(gè)消息后,用自己的私鑰解密A發(fā)送過(guò)來(lái)的消息。而其他所有收到這個(gè)報(bào)文的人由于沒(méi)有用戶B的私鑰而都無(wú)法解密。同理,如果用戶B向用戶A發(fā)送消息也需要先使用用戶A的公鑰加密發(fā)送,然后再由用戶A用其私鑰解密即可。
3 加密方案的異同
3.1 對(duì)稱密鑰加密方案。對(duì)稱密鑰的加密方案是概率多項(xiàng)式時(shí)間算法(Gen,Enc,Dec)的三元組:(1)密鑰生成算法Gen的輸入安全參數(shù)1n,輸出密鑰k;記為k←Gen(1n)(要強(qiáng)調(diào)Gen是一個(gè)隨機(jī)算法)。不失一般性,假設(shè)任何由Gen(1n)輸出的密鑰k,都滿足|k|≥n。(2)加密算法Enc將密鑰k和明文消息m∈{0,1}*作為輸入,并且輸出一個(gè)密文c。因?yàn)镋nc可能是隨機(jī)化的,記為c←Enck(m)。(3)解密算法Dec將密鑰k和密文c作為輸入,輸出一份消息m。假設(shè)Dec是確定性的,所以記為m:=Deck(c)。需要滿足的是:對(duì)每個(gè)n、每個(gè)由Gen(1n)輸出的密鑰k,每個(gè)m∈{0,1}*,都滿足Deck(Enck(m))=m。如果(Gen,Enc,Dec)滿足:對(duì)每個(gè)由Gen(1n)輸出的密鑰k,算法Enck只對(duì)消息m∈{0,1}l(n)有定義,則假設(shè)(Gen,Enc,Dec)是一個(gè)消息長(zhǎng)度為定長(zhǎng)l(n)的對(duì)稱密鑰加密方案。
3.2 非對(duì)稱密鑰的加密方案
非對(duì)稱密鑰的加密方案是一個(gè)概率多項(xiàng)式時(shí)間算法(Gen,Enc,Dec)的元組。(1)生成密鑰算法Gen用安全參數(shù)作為輸入,輸出一對(duì)密鑰(pk,sk)。把pk稱為公鑰,把sk稱為私鑰。為了方便,假設(shè)pk和sk的各自長(zhǎng)度至少為n,而且n可由pk和sk確定。(2)加密算法Enc將公鑰pk和來(lái)自某個(gè)明文空間的一個(gè)消息m作為輸入,輸出密文c,記為c←Encpk(m)。(3)解密算法Dec把私鑰sk和密文c作為輸入,輸出一個(gè)消息m或一個(gè)定義為失敗的特殊符號(hào)⊥。不失一般性,假設(shè)Dec是確定的,記為m:=Decsk(c)。需要滿足的是:Pr[Decsk(Encpk(m))=m]。概率的計(jì)算來(lái)源于Gen(1n)輸出的(pk,sk)和Enc使用的任何隨機(jī)性。顯而意見,對(duì)稱加密算法與非對(duì)稱加密算法雖然都是概率多項(xiàng)式的元組,都包括生成密鑰算法Gen,加密算法Enc,解密算法Dec,但是還是有重要區(qū)別的,對(duì)稱密鑰算法生成密鑰算法Gen是一個(gè)k,需要絕對(duì)保密,而非對(duì)稱密鑰算法生成密鑰算法Gen是兩個(gè)密鑰,一個(gè)為公鑰pk,一個(gè)為私鑰sk,其中pk還是公開的,不需要保密。
4 優(yōu)缺點(diǎn)的異同
4.1 對(duì)稱加密算法的優(yōu)缺點(diǎn)。對(duì)稱加密算法的優(yōu)點(diǎn)是:(1)算法公開;(2)計(jì)算量??;(3)加密速度快;(4)加密效率高;(5)密鑰較短;(6)發(fā)展歷史悠久。對(duì)稱加密算法的缺點(diǎn)是:(1)通信雙方都使用相同的密鑰,安全性得不到應(yīng)有的保證;(2)由于每對(duì)用戶每次使用對(duì)稱加密算法時(shí),都需要使用其他人不知道的惟一密鑰,從而使得收發(fā)信雙方所擁有的密鑰數(shù)量呈幾何級(jí)數(shù)增長(zhǎng),密鑰管理成為用戶的嚴(yán)重負(fù)擔(dān),使用成本也相對(duì)過(guò)高;(3)缺乏了簽名功能,使得使用范圍有所縮小。
4.2 非對(duì)稱加密算法的優(yōu)缺點(diǎn)。非對(duì)稱加密算法的優(yōu)點(diǎn)是:(1)在多人之間進(jìn)行保密信息傳輸所需的密鑰組和數(shù)量很??;(2)密鑰的發(fā)布不成問(wèn)題;(3)公開密鑰系統(tǒng)可實(shí)現(xiàn)數(shù)字簽名。非對(duì)稱加密算法的缺點(diǎn)是:(1)加減密速度慢;(2)密鑰尺寸大;(3)計(jì)算量較大;(4)發(fā)展歷史較短。
通過(guò)上述的對(duì)比,讓我們較清楚地從體制思想,工作原理和加密方案等多方面了解了對(duì)稱加密算法和非對(duì)稱加密算法的異同,同時(shí)對(duì)對(duì)稱加密算法和非對(duì)稱加密算法的優(yōu)缺點(diǎn)做了鮮明的對(duì)比,這可以幫助我們初步了解對(duì)稱加密算法和非對(duì)稱加密算法,同時(shí)對(duì)以后了解基于“對(duì)稱密鑰”的經(jīng)典加密算法DES、TripleDES,基于“非對(duì)稱密鑰”的經(jīng)典加密算法RSA、Elgamal都打下了良好的基礎(chǔ),對(duì)稱加密算法與非對(duì)稱加密算法還有很多的“密鑰”,等待我們進(jìn)一步開啟。
參考文獻(xiàn):
[1]宋秀麗.現(xiàn)代密碼學(xué)原理與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2012.
[2]喬納森·卡茨.現(xiàn)代密碼學(xué)——原理與協(xié)議[M].北京:國(guó)防工業(yè)出版社,2011.
[3]李順東,王道順.現(xiàn)代密碼學(xué):理論、方法與研究前沿[M].北京:科學(xué)出版社,2009.
作者簡(jiǎn)介:胡燏(1978-),男,重慶忠縣人,副教授,碩士研究生,研究方向:計(jì)算機(jī)網(wǎng)絡(luò)及計(jì)算機(jī)編程。
作者單位:四川建筑職業(yè)技術(shù)學(xué)院信息工程系,四川德陽(yáng) 618000