萬(wàn)紅坡,朱 麗
(解放軍91336部隊(duì),秦皇島 066001)
?
混合加密算法在分布式模擬訓(xùn)練中的應(yīng)用
萬(wàn)紅坡,朱麗
(解放軍91336部隊(duì),秦皇島 066001)
摘要:為了提高分布式模擬訓(xùn)練數(shù)據(jù)的安全保密性,提出了一種混合加密的算法,通過(guò)對(duì)稱加密算法對(duì)模擬訓(xùn)練數(shù)據(jù)進(jìn)行加密,通過(guò)非對(duì)稱算法對(duì)對(duì)稱加密密鑰進(jìn)行加密,實(shí)現(xiàn)了分布式模擬訓(xùn)練的高可靠性和高保密性,并通過(guò)某分布式模擬訓(xùn)練系統(tǒng)的實(shí)際使用進(jìn)行驗(yàn)證。結(jié)果表明此算法大大提高了訓(xùn)練數(shù)據(jù)的安全性,為模擬訓(xùn)練數(shù)據(jù)的安全使用奠定了堅(jiān)實(shí)基礎(chǔ)。
關(guān)鍵詞:混合加密算法;分布式模擬訓(xùn)練;訓(xùn)練數(shù)據(jù)
0引言
分布式模擬訓(xùn)練能夠?qū)⒉煌赜虻亩鄠€(gè)用戶通過(guò)網(wǎng)絡(luò)集成在一起進(jìn)行模擬練習(xí),提高用戶的技能水平,因此分布式模擬訓(xùn)練模式越來(lái)越常態(tài)化,訓(xùn)練需求也在不斷增多。但是,模擬訓(xùn)練數(shù)據(jù)具有信息量大、保密要求高的特點(diǎn),不能隨意傳播和擴(kuò)散。因此,對(duì)模擬訓(xùn)練數(shù)據(jù)的安全傳播和管理問題非常重要。文獻(xiàn)[1]采用高級(jí)加密標(biāo)準(zhǔn)(AES)與Morii-Kasahara算法實(shí)現(xiàn)混合加密,適合于移動(dòng)終端的小數(shù)據(jù)使用,對(duì)占用大量?jī)?nèi)存的大數(shù)據(jù)加解密很難適應(yīng);文獻(xiàn)[2]采用SHA1和RSA發(fā)展了一種改進(jìn)型的加解密策略,但是安全性不高。
為了解決這個(gè)難題,本文提出了一種混合加密的算法,通過(guò)對(duì)稱算法(AES加密)對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行加密,通過(guò)非對(duì)稱算法(橢圓曲線加密算法(ECC)加密)對(duì)對(duì)稱算法密鑰進(jìn)行加密,并將加密后的數(shù)據(jù)通過(guò)訓(xùn)練網(wǎng)絡(luò)傳輸至用戶端進(jìn)行解密和使用。此方法能夠保證訓(xùn)練數(shù)據(jù)只有唯一的用戶端可以解密和使用,大大減少了訓(xùn)練資源傳播和擴(kuò)散的幾率,為分布式的模擬訓(xùn)練安全提供了保障。
1混合加密技術(shù)
對(duì)稱加密算法,又叫單鑰加密算法、密鑰加密算法、經(jīng)典密碼算法或傳統(tǒng)密碼算法。對(duì)稱加密算法中明文的加密和相應(yīng)密文的解密使用相同或相互容易導(dǎo)出的密鑰。此種加密算法的優(yōu)點(diǎn)是算法實(shí)現(xiàn)效率高、速度快,缺點(diǎn)是多用戶的密鑰管理過(guò)于復(fù)雜。
現(xiàn)有的對(duì)稱加密算法有數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)、國(guó)際數(shù)據(jù)加密算法(IDEA)、AES加密算法等,其中AES加密法作為新一代的數(shù)據(jù)加密標(biāo)準(zhǔn)匯聚了強(qiáng)安全性、高性能、高效率、易用和靈活等優(yōu)點(diǎn),在無(wú)線網(wǎng)絡(luò)、航空航天航海等領(lǐng)域得到了廣泛應(yīng)用。AES有3種密鑰長(zhǎng)度:128 bit、192 bit和256 bit。和上一代加密算法DES相比,AES的128 bit密鑰比DES的64 bit密鑰強(qiáng)1 000多倍。AES加密算法是循環(huán)加密方法,即在給定密鑰A(Nk位)和加密輪數(shù)(Nr輪)的情況下,通過(guò)“密鑰擴(kuò)展”方法將密鑰位數(shù)擴(kuò)展為Nb(Nr+1)位(其中Nb為加密區(qū)塊大小),并按照Nr輪對(duì)加密區(qū)塊進(jìn)行循環(huán)加密。其加密過(guò)程如圖1所示。
圖1 AES加密和解密示意圖
非對(duì)稱加密算法,又叫雙鑰加密算法、公鑰加密算法或現(xiàn)代加密算法。此算法的加密和解密密鑰不相同,并且互不依賴,保證了密鑰的更高安全性。此種加密算法的優(yōu)點(diǎn)是不必管理大量的用戶密鑰,僅僅在通信時(shí)臨時(shí)商定即可;缺點(diǎn)是算法實(shí)現(xiàn)效率低、速度慢以及對(duì)于某些復(fù)雜的數(shù)學(xué)難題過(guò)分依賴。
現(xiàn)有的非對(duì)稱加密算法有RSA、數(shù)字簽名算法(DSA)和ECC等,其中ECC加密算法[3-5]基于橢圓曲線上的離散對(duì)數(shù)問題的求解,即給定素?cái)?shù)P和橢圓曲線Q,計(jì)算:
Q=kP
(1)
式中:k為已知P、Q的情況下求出小于P的正整數(shù)。
其加/解密流程如圖2所示。
圖2 ECC加密和解密示意圖
2混合加密算法設(shè)計(jì)
為滿足模擬訓(xùn)練數(shù)據(jù)發(fā)送量大、實(shí)時(shí)性高等要求,本文采用AES加密訓(xùn)練數(shù)據(jù)、ECC公鑰對(duì)AES密碼進(jìn)行加密的方式實(shí)現(xiàn),同時(shí)將加密密碼和加密訓(xùn)練數(shù)據(jù)通過(guò)訓(xùn)練網(wǎng)發(fā)送至訓(xùn)練端;解密過(guò)程正好相反,通過(guò)ECC私鑰解密得到AES密碼,并通過(guò)AES解密獲得最終訓(xùn)練數(shù)據(jù)。
2.1.1實(shí)時(shí)性分析
由于AES加密采用循環(huán)加密的方式,因此,加/解密與每一輪運(yùn)算和輪數(shù)有關(guān)。在本文設(shè)計(jì)時(shí),采用256bit密鑰,分別對(duì)10MB、1MB、100kB數(shù)據(jù)進(jìn)行加/解密,得到的結(jié)果如表1所示。
對(duì)于ECC加密,其時(shí)間耗費(fèi)比較長(zhǎng)的方面,例如計(jì)算橢圓曲線參數(shù),以及生成隨機(jī)素?cái)?shù)、基點(diǎn)、階、公鑰,私鑰都是在模擬訓(xùn)練前完成的。其加密和解密用時(shí)是非常短的。對(duì)于100kB、10kB、1kB的數(shù)據(jù),通過(guò)ECC加密和解密,得到的結(jié)果如表2所示。
表1 256 bit密碼下的加/解密用時(shí)比對(duì)
表2 ECC加/解密用時(shí)比對(duì)
通過(guò)時(shí)間比對(duì),可以看出通過(guò)混合加密方法對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行處理,滿足實(shí)時(shí)性要求。
2.1.2可靠性分析
由于混合加密算法是在分布式模擬訓(xùn)練中使用,因此要保證訓(xùn)練數(shù)據(jù)能夠可靠加密。本文分別采用10 MB數(shù)據(jù)、1 MB數(shù)據(jù)、100 kB數(shù)據(jù),AES密鑰256 bit,進(jìn)行20次混合加/解密,得到的結(jié)果如表3所示。
表3 多次加/解密比對(duì)
在訓(xùn)練前,首先客戶端要向服務(wù)器進(jìn)行注冊(cè),注冊(cè)的內(nèi)容包含客戶端身份認(rèn)證信息,以及ECC加密的各項(xiàng)信息(橢圓方程Ep(a,b)和公鑰K,基點(diǎn)G),通過(guò)認(rèn)證后服務(wù)器對(duì)注冊(cè)內(nèi)容進(jìn)行保存。用戶注冊(cè)流程圖如圖3所示。
圖3 用戶注冊(cè)流程圖
訓(xùn)練開始后,服務(wù)器隨機(jī)產(chǎn)生一組AES密鑰,在獲取一條訓(xùn)練信息后,通過(guò)AES加密訓(xùn)練信息,然后通過(guò)ECC加密AES密鑰,完成后通過(guò)網(wǎng)絡(luò)實(shí)時(shí)發(fā)送到客戶端,供客戶端進(jìn)行訓(xùn)練使用。訓(xùn)練數(shù)據(jù)加密流程圖如圖4所示。
圖4 訓(xùn)練數(shù)據(jù)加密流程圖
客戶端在獲取數(shù)據(jù)后,通過(guò)ECC解密獲得AES密鑰,然后對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行解密,獲得訓(xùn)練數(shù)據(jù)。訓(xùn)練數(shù)據(jù)解密流程圖如圖5所示。
圖5 訓(xùn)練數(shù)據(jù)解密流程圖
3混合加密算法實(shí)現(xiàn)
下面給出基于AES和ECC加/解密的算法實(shí)現(xiàn)。首先,定義一些主要的變量,包含ECC算法的橢圓方程參數(shù)a,b、隨機(jī)素?cái)?shù)p、基點(diǎn)G、階m、公鑰K,私鑰k,以及AES加密的密鑰AESKey,并建立ECC算法類ECCCode和AES算法類AESCode。下面主要給出基于AES和ECC混合加密的代碼(用戶注冊(cè)、訓(xùn)練數(shù)據(jù)網(wǎng)絡(luò)發(fā)送和接收的代碼從略):
inta,b;// 橢圓方程參數(shù)
intp;// 素?cái)?shù)
CPointG;// 基點(diǎn)
intm;// 階
PointK;// 公鑰
intk;// 私鑰
char*AESkey// AES隨機(jī)密鑰
BOOL Encode(char *chtext, int count)
{
//第一步,創(chuàng)建橢圓函數(shù)
ECCCode ecc;
ecc.Elliptic_Curve(a,b,p,2);//其中2為素?cái)?shù)p的位數(shù)。
//第二步,計(jì)算基點(diǎn)和階
ecc.BasePoint(a, b, p, G, m);
//第三步,計(jì)算公鑰和私鑰
ecc.SetKey(a,b,p,G,m,k,K);
//第四步,產(chǎn)生AES隨機(jī)密鑰
AESCode aes;
aes.CreateCode(AESkey);
//第五步,產(chǎn)生AES隨機(jī)密鑰
aes.CreateCode(AESkey);
//第六步,AES加密數(shù)據(jù)
aes.EnCrypt(AESkey,chtext,count);
//第七步,加密AES密鑰
ecc.Sign( a, b, p, AESkey, m, K)
}
BOOL Decode(char *chtext, int count)
{
//第一步,解密AES密鑰
ECCCode ecc;
ecc.Unsign( a, b, p, AESkey, m, k)
//第二步,解密數(shù)據(jù)
AESCode aes;
aes.DeCrypt(AESkey,chtext,count);
}
4系統(tǒng)驗(yàn)證
在某批模擬訓(xùn)練中,通過(guò)本文的混合加密算法將訓(xùn)練數(shù)據(jù)進(jìn)行整合,首先客戶端進(jìn)行注冊(cè),獲得ECC加密所需的各項(xiàng)信息。用戶注冊(cè)示意圖如圖6所示。
圖6 用戶注冊(cè)示意圖
注冊(cè)完成后,選擇一個(gè)用戶,并按照訓(xùn)練的進(jìn)度,將訓(xùn)練數(shù)據(jù)發(fā)送給此客戶,數(shù)據(jù)加密結(jié)果如圖7所示。
圖7 數(shù)據(jù)加密示意圖
如果客戶端接收正常,并能夠解密,則得到的結(jié)果如圖8所示。
圖8 客戶端正確解密示意圖
若其他客戶接收后,解密不能進(jìn)行,得到的結(jié)果如圖9所示。
圖9 客戶端非正常解密示意圖
通過(guò)使用驗(yàn)證表明,本系統(tǒng)整合的數(shù)據(jù)僅能支持唯一的客戶端使用,保證了數(shù)據(jù)使用的唯一性。
5結(jié)束語(yǔ)
本文通過(guò)設(shè)計(jì)混合加密算法,對(duì)模擬訓(xùn)練中使用的訓(xùn)練資源進(jìn)行了整合,并通過(guò)實(shí)際的使用對(duì)算法進(jìn)行了驗(yàn)證。驗(yàn)證結(jié)果表明,通過(guò)與訓(xùn)練支撐系統(tǒng)配合使用的方式,強(qiáng)化了訓(xùn)練數(shù)據(jù)的安全性,在保證部隊(duì)訓(xùn)練的同時(shí),大大減少了訓(xùn)練資源傳播和擴(kuò)散的幾率,為復(fù)雜電磁環(huán)境下的仿真訓(xùn)練安全提供了保障。
參考文獻(xiàn)
[1]孫國(guó)軍,閆茂德,王葳,等.基于C/S結(jié)構(gòu)的公安綜合移動(dòng)警務(wù)系統(tǒng)的混合加密方案[J].計(jì)算機(jī)測(cè)量與控制,2007(12):1817-1819.
[2]江兵,辛元雪,孫前慶.空間信息傳輸?shù)母倪M(jìn)式混合加密策略[J].計(jì)算機(jī)工程與設(shè)計(jì),2012(9):3313- 3318.
[3]劉洋.基于AES算法和橢圓曲線簽名的混合加密方案的研究和實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2012.
[4]楊超,高海燕.橢圓曲線密碼體制理論與其安全性研究[J].電腦知識(shí)與技術(shù),2006(17):183-185.
[5]孫躍剛.橢圓曲線密碼體制中若干問題的研究[D].長(zhǎng)春:吉林大學(xué),2009.
Application of Hybrid Encryption Algorithm to
Distributed Simulation Training
WAN Hong-po,ZHU Li
(Unit 91336 of PLA,Qinhuangdao 066001,China)
Abstract:In order to improve the security of distributed simulation training data,this paper puts forward a hybrid encryption algorithm,which performs encryption to the simulation training data by using symmetric encryption algorithm,performs encryption to the symmetrical encrypted key by using asymmetric encryption algorithm,realizes the high reliability and security of distributed simulation training,validates the actual operation through a certain distributed simulation training system.Results show that the algorithm can greatly improve the security of training data,and lay a solid foundation for the safe application of simulative training data.
Key words:hybrid encryption algorithm;distributed simulation training;training data
收稿日期:2015-07-21
DOI:10.16426/j.cnki.jcdzdk.2015.05.016
中圖分類號(hào):TP391.9
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):CN32-1413(2015)05-0073-04