劉帥,,王平,邢建春,,張孝鵬
(解放軍理工大學(xué) 國(guó)防工程學(xué)院,江蘇 南京 210007)
摘要:分析了對(duì)稱加密算法AES和非對(duì)稱加密算法ECC的加密過程和特點(diǎn),,并結(jié)合兩種算法的特點(diǎn)設(shè)計(jì)了一種混合的加密體制,在避免了對(duì)稱加密算法復(fù)雜的密鑰分配體制的同時(shí)保證了加密的效率和強(qiáng)度,。同時(shí)引入了改進(jìn)的數(shù)字簽名算法,,在對(duì)信息來源的真實(shí)性和完整性進(jìn)行驗(yàn)證的同時(shí),避免了復(fù)雜的模逆運(yùn)算,,提高了運(yùn)算效率,。
關(guān)鍵詞:混合加密;高級(jí)加密標(biāo)準(zhǔn),;橢圓曲線密碼,;數(shù)字簽名
0引言
隨著計(jì)算機(jī)運(yùn)算能力的不斷增強(qiáng),各種破解密碼技術(shù)層出不窮,,傳統(tǒng)的加密技術(shù)不斷遭到挑戰(zhàn),。此外,對(duì)信息來源的真實(shí)性以及完整性的驗(yàn)證也越來越受到重視,。當(dāng)今應(yīng)用最廣泛的兩種密碼體制有著各自不同的優(yōu)點(diǎn)和缺陷,;對(duì)稱密碼體制加解密速度快,但是密鑰分配與管理比較復(fù)雜,;非對(duì)稱密碼體制可以進(jìn)行數(shù)字簽名且密鑰管理比較方便,,但是加解密速度比較慢,運(yùn)算量比較大,。如何利用兩者優(yōu)點(diǎn)的同時(shí)盡可能地避免各自的缺陷,,以達(dá)到更好的加密效果,是近年來的研究熱點(diǎn),。本文結(jié)合對(duì)稱加密中的高級(jí)加密標(biāo)準(zhǔn)[1](AES)和非對(duì)稱加密中的橢圓曲線密碼體制[2](ECC)兩者的特點(diǎn),,在對(duì)傳統(tǒng)簽名算法改進(jìn)的基礎(chǔ)上設(shè)計(jì)了一種混合加密方案,具有安全性高,、加解密速度快等優(yōu)點(diǎn),。
1AES加密算法
AES算法是一種數(shù)據(jù)分組長(zhǎng)度為128 bit的迭代分組加密算法,根據(jù)加密級(jí)別的不同,,其密鑰長(zhǎng)度有128 bit,、192 bit和256 bit 3種選擇,,對(duì)應(yīng)的迭代循環(huán)次數(shù)分別為10輪、12輪和14輪,。每一輪變換由4個(gè)部分組成,,分別是字節(jié)替換(SubBytes)、行位移(ShiftRows),、列混合(MixColumns)和輪密鑰加(AddRoundKey)[3],,其中最后一輪沒有列混合的操作。以密鑰長(zhǎng)度128 bit為例,,AES算法的加密過程如圖1所示,。
因?yàn)锳ES算法加密屬于對(duì)稱加密體制,加密和解密的過程中通信雙方使用相同的密鑰,,所以解密過程與加密過程基本相同,,只是密鑰的使用順序正好相反,所以對(duì)于解密過程在此不再贅述,。
對(duì)稱加密算法AES具有速度快,、強(qiáng)度高,、安全性好,、便于實(shí)現(xiàn)等優(yōu)點(diǎn)[4]。但是對(duì)稱性的加密體制也為其帶來了一些缺陷,,主要包括以下兩個(gè)方面:首先是系統(tǒng)中任意兩個(gè)節(jié)點(diǎn)之間的通信都需要一對(duì)獨(dú)立的密鑰,,所以在系統(tǒng)內(nèi)每增加一個(gè)通信節(jié)點(diǎn)密鑰量便會(huì)成倍增加,由此帶來的密鑰產(chǎn)生,、存放和分配的問題無疑是極其繁重的,;其次是密鑰的傳輸問題,在對(duì)稱密碼體制中由于通信雙方使用的是相同的密鑰,,加密的安全性也完全依賴于對(duì)密鑰的保護(hù),,一旦密鑰在傳輸過程中被竊取,加密便變得沒有意義,。為了解決這一問題,,必須使用一些特殊的安全信道來分發(fā)密鑰,譬如用專門信使來傳送密鑰,,而這一做法的代價(jià)是相當(dāng)大的,,甚至可以說是不現(xiàn)實(shí)的。
2ECC加密算法
2.1ECC算法的描述
ECC算法是KOBLITZ N和MILLER在1985年提出的一種非對(duì)稱加密算法,,它對(duì)數(shù)據(jù)加密的安全性是基于橢圓曲線離散對(duì)數(shù)問題求解的困難性,。這里所講的橢圓曲線指的是韋爾斯特拉斯(Weierstrass)方程所確定的平面曲線,即:
y2+a1xy+a3y=x3+a2x2+a4x+a6
其中,系數(shù)ai(i=1,2,…,6)定義在某個(gè)域上,,可以是有理數(shù)域,、實(shí)數(shù)域,、復(fù)數(shù)域,也可以是有限域GF(pr),,橢圓曲線密碼體制中用到的橢圓曲線都是定義在有限域上的,。橢圓曲線上所有的點(diǎn),外加一個(gè)叫做無窮遠(yuǎn)點(diǎn)的特殊點(diǎn)構(gòu)成的集合,,連同一個(gè)定義的加法運(yùn)算構(gòu)成一個(gè)Abel群[5],。在等式P+P+…+P=dP=T中,已知d和點(diǎn)P求點(diǎn)T比較容易,,反之已知點(diǎn)T和點(diǎn)P求d卻是相當(dāng)困難的,,這個(gè)問題稱為橢圓曲線上點(diǎn)群的離散對(duì)數(shù)問題[6]。從表1不難看出,,ECC算法用較小的密鑰長(zhǎng)度即可達(dá)到與RSA算法相同的加密強(qiáng)度,,與其他非對(duì)稱加密算法相比ECC算法具有安全性更高、密鑰短,、需要存儲(chǔ)空間比較小等優(yōu)勢(shì)[7],。至今人們尚未找到有限域上橢圓曲線有理點(diǎn)群的離散對(duì)數(shù)問題的亞指數(shù)算法,而且目前的研究結(jié)果表明構(gòu)造出這樣的亞指數(shù)算法的可能性不大[8],。
2.2數(shù)字簽名
傳統(tǒng)的數(shù)字簽名算法在簽名過程中要進(jìn)行模逆運(yùn)算,,求逆運(yùn)算的復(fù)雜性是造成簽名速度慢的主要原因。因此構(gòu)造一個(gè)新的簽名方程,,使得改進(jìn)后的簽名算法不用進(jìn)行模的逆運(yùn)算,,以達(dá)到提高效率的目的[9]。
2.2.1改進(jìn)后的簽名及驗(yàn)證過程
(1)發(fā)送方選擇隨機(jī)數(shù)k,,使得k∈[1,n+1],;
(2)發(fā)送方用SHA1函數(shù)處理將要發(fā)送的明文m,生成摘要,;
(3)發(fā)送方向接收方傳送選擇好的函數(shù)和確定的相關(guān)參數(shù),;
(4)發(fā)送方選擇密鑰x,并用公開基點(diǎn)g計(jì)算y=xg,,得到公鑰y,;
(5)計(jì)算r=kg,若r=0則轉(zhuǎn)到步驟(1);
(6)計(jì)算s=k-mrx,得到(s,r)作為簽名,;
(7)將簽名(s,r)連同明文m發(fā)送給接收方,;
(8)接收方計(jì)算r′=sg+mry;
(9)接收方判定r=r′是否成立,,若成立則簽名成立,,若不成立則簽名無效。
2.2.2無需模逆運(yùn)算的證明
簽名過程的計(jì)算公式:
s=k-mrx
驗(yàn)證過程的計(jì)算公式:
r′=sg+mry
證明:
將y=xg和s=k-mrx帶入驗(yàn)證公式:
r′=sg+mry=(k-mrx)g+mr(xg)=kg-mrxg+mrxg=kg=r
此方案不需要進(jìn)行模擬操作,,減輕了運(yùn)算的負(fù)擔(dān),,提高了運(yùn)算速度,,對(duì)系統(tǒng)的效能要求更低, 更具有實(shí)用意義[9],。
公鑰加密算法在加解密過程中使用的密鑰是不同的,,加密過程的密鑰是對(duì)外公開的,稱為公鑰,;但解密過程的密鑰只有接收信息的一方知道,,稱為私鑰。兩個(gè)密鑰是相對(duì)獨(dú)立的,。這一特點(diǎn)避免了對(duì)稱加密算法繁雜的密鑰分配體制,,所以非對(duì)稱密碼體制的優(yōu)點(diǎn)在于密鑰的分配和管理相對(duì)簡(jiǎn)單。此外,,公鑰加密算法可以通過對(duì)要傳送的信息進(jìn)行數(shù)字簽名的方式,,對(duì)信息來源的真實(shí)性以及完整性進(jìn)行驗(yàn)證。雖然已對(duì)簽名算法進(jìn)行了相應(yīng)改進(jìn),,但是較對(duì)稱密碼體制而言其算法依舊非常復(fù)雜,、加解密的效率低,使得對(duì)實(shí)時(shí)性要求比較高,、信息量比較大的系統(tǒng)實(shí)現(xiàn)起來比較困難,。
3混合加密體制的設(shè)計(jì)與實(shí)現(xiàn)方案
3.1發(fā)送端的設(shè)計(jì)
發(fā)送端的設(shè)計(jì)主要分為以下3個(gè)部分:
(1)密鑰加密模塊:在加密開始前會(huì)隨機(jī)產(chǎn)生AES的加密密鑰,為避免AES算法繁重的密鑰分配和管理工作,,接收方以掌握的接收方分享的公鑰用ECC算法來對(duì)AES的密鑰進(jìn)行加密,,生成“密鑰加密模塊”,。
(2)密文模塊:AES算法對(duì)明文進(jìn)行加密,,生成“密文模塊”。
(3)數(shù)字簽名模塊:用Hash函數(shù)對(duì)需要發(fā)送的明文進(jìn)行處理生成摘要結(jié)果,,發(fā)送方用自己的私鑰對(duì)摘要結(jié)果進(jìn)行加密生成“數(shù)字簽名模塊”,。
將生成的3個(gè)模塊組合發(fā)送給接收方,發(fā)送端任務(wù)完畢,。圖2為混合加密算法的加密過程圖,。
3.2接收端的設(shè)計(jì)
接收端在接收到組合的加密信息后,對(duì)3個(gè)模塊分別進(jìn)行處理:
(1)密鑰加密模塊:接收方以自己掌握的私鑰對(duì)ECC加密的密鑰加密模塊進(jìn)行解密,,得到AES算法的加密密鑰,。
(2)密文模塊:用解密后AES算法的密鑰對(duì)密文模塊進(jìn)行解密,得到明文,。對(duì)解密后的明文進(jìn)行Hash函數(shù)處理得到摘要結(jié)果,。
(3)數(shù)字簽名模塊:接收方用發(fā)送方分享的公鑰對(duì)數(shù)字簽名模塊進(jìn)行解密,解密后得到發(fā)送方發(fā)過來的摘要結(jié)果,。將解密得到的密文處理后的正確的摘要結(jié)果與發(fā)送方生成的摘要結(jié)果進(jìn)行對(duì)比,,以此來進(jìn)行身份驗(yàn)證,。如果相同則身份驗(yàn)證成功,不相同則身份驗(yàn)證失敗,。
若身份驗(yàn)證成功則解密得到的明文可用,,若身份驗(yàn)證失敗則說明信息很有可能已被篡改,需重新發(fā)送,。圖3為混合加密算法的解密過程圖,。
4結(jié)論
改進(jìn)的混合加密算法對(duì)相對(duì)大量的明文主體數(shù)據(jù)采用了安全性非常高、速度非??斓腁ES算法[10],,對(duì)于AES算法的密鑰則使用ECC算法進(jìn)行加密,在保證密鑰安全的同時(shí)有效避免了對(duì)稱加密算法密鑰的單獨(dú)發(fā)送,,極大地提高了加密的效率,,保證了密鑰的安全。此外,,數(shù)字簽名功能的引入,,可以對(duì)信息的來源和信息的完整性進(jìn)行驗(yàn)證,從而進(jìn)一步保證了通信安全,。在對(duì)簽名算法進(jìn)行改進(jìn)和優(yōu)化之后,,避免了模逆運(yùn)算,節(jié)省了數(shù)字簽名的時(shí)間,,進(jìn)一步提升了加密效率,。
該方案加密等級(jí)高、速度快,,特別是對(duì)通信實(shí)時(shí)性,、安全性要求比較高的領(lǐng)域,該方案的實(shí)用性較強(qiáng),。
參考文獻(xiàn)
?。?] PETHE H B, PANDE S R. A survey on different secret key cryptographic algorithms[J]. Ibmrds Journal of Management & Research, 2014, 3(1):142150.
[2] Zhang Haibin, Ji Xiaoping, Wu Boying, et al. Fast elliptic curve point multiplication algorithm optimization[J]. Applied Mechanics and Materials, 2014, 441: 10441048.
?。?] 張慧霞,趙建平,李曉麗,等. AES密碼算法的FPGA實(shí)現(xiàn)與仿真 [J]. 通信技術(shù),2013,46(9):8385.
?。?] 馬擎宇,張東. 基于AES和ECC的遙測(cè)數(shù)據(jù)加密技術(shù)研究與實(shí)現(xiàn) [J]. 艦船電子工程,2015,35(4):7881.
[5] 江志祥,藺志青. 橢圓曲線密碼體制[EB/OL]. (20080102)[20151210].//www.paper.edu.cn/html/releasepaper/2008/01/21.
?。?] PAAR C, PELZL J. Understanding cryptography: a textbook for students and practitioners [M]. Berlin: SpringerVerlag,200912.
?。?] CRYPTOGRAPHY E C. The advantages of elliptic curve cryptography for wireless security[J]. IEEE Wireless Communications,2004,2:6267.
[8] 寧國(guó)強(qiáng),李謝華,尹張飛.一種安全的即時(shí)通信解決方案[J].計(jì)算機(jī)工程與應(yīng)用,2011,,47(3):8283.
?。?] 劉軍,賈松浩,楊彩.改進(jìn)的ECC算法在數(shù)字認(rèn)證中心系統(tǒng)應(yīng)用[J].實(shí)驗(yàn)室研究與探索,2014,33(2):108111.
?。?0] 劉楠,,陳迅,,李軍偉.面向CBC模式的AES高速芯片設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子技術(shù)應(yīng)用,2014,40(1):6467.