《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 混合加密算法的改進(jìn)和設(shè)計(jì)方案
混合加密算法的改進(jìn)和設(shè)計(jì)方案
2016年微型機(jī)與應(yīng)用第08期
劉帥,王平,邢建春,張孝鵬
(解放軍理工大學(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)算效率。
Abstract:
Key words :

  劉帥,王平,邢建春,張孝鵬

  (解放軍理工大學(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所示。

001.jpg

  因?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]。

004.jpg

  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ā)送方用SHA1函數(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為混合加密算法的加密過程圖。

 

002.jpg

  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為混合加密算法的解密過程圖。

 

003.jpg

4結(jié)論

  改進(jìn)的混合加密算法對(duì)相對(duì)大量的明文主體數(shù)據(jù)采用了安全性非常高、速度非常快的AES算法[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 cryptographic algorithms[J]. Ibmrds Journal of Management & Research, 2014, 3(1):142150.

  [2] Zhang Haibin, Ji Xiaoping, Wu Boying, et al. Fast elliptic curve point multiplication algorithm optimization[J]. Applied Mechanics and Materials, 2014, 441: 10441048.

 ?。?] 張慧霞,趙建平,李曉麗,等. AES密碼算法的FPGA實(shí)現(xiàn)與仿真 [J]. 通信技術(shù),2013,46(9):8385.

 ?。?] 馬擎宇,張東. 基于AES和ECC的遙測(cè)數(shù)據(jù)加密技術(shù)研究與實(shí)現(xiàn) [J]. 艦船電子工程,2015,35(4):7881.

  [5] 江志祥,藺志青. 橢圓曲線密碼體制[EB/OL]. (20080102)[20151210].//www.paper.edu.cn/html/releasepaper/2008/01/21.

 ?。?] PAAR C, PELZL J. Understanding cryptography: a textbook for students and practitioners [M]. Berlin: SpringerVerlag,200912.

  [7] CRYPTOGRAPHY E C. The advantages of elliptic curve cryptography for wireless security[J]. IEEE Wireless Communications,2004,2:6267.

 ?。?] 寧國(guó)強(qiáng),李謝華,尹張飛.一種安全的即時(shí)通信解決方案[J].計(jì)算機(jī)工程與應(yīng)用,2011,47(3):8283.

  [9] 劉軍,賈松浩,楊彩.改進(jìn)的ECC算法在數(shù)字認(rèn)證中心系統(tǒng)應(yīng)用[J].實(shí)驗(yàn)室研究與探索,2014,33(2):108111.

  [10] 劉楠,陳迅,李軍偉.面向CBC模式的AES高速芯片設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子技術(shù)應(yīng)用,2014,40(1):6467.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。