混合加密算法在分布式模拟训练中的应用

2016-01-28 06:49万红坡
舰船电子对抗 2015年5期

万红坡,朱 丽

(解放军91336部队,秦皇岛 066001)



混合加密算法在分布式模拟训练中的应用

万红坡,朱丽

(解放军91336部队,秦皇岛 066001)

摘要:为了提高分布式模拟训练数据的安全保密性,提出了一种混合加密的算法,通过对称加密算法对模拟训练数据进行加密,通过非对称算法对对称加密密钥进行加密,实现了分布式模拟训练的高可靠性和高保密性,并通过某分布式模拟训练系统的实际使用进行验证。结果表明此算法大大提高了训练数据的安全性,为模拟训练数据的安全使用奠定了坚实基础。

关键词:混合加密算法;分布式模拟训练;训练数据

0引言

分布式模拟训练能够将不同地域的多个用户通过网络集成在一起进行模拟练习,提高用户的技能水平,因此分布式模拟训练模式越来越常态化,训练需求也在不断增多。但是,模拟训练数据具有信息量大、保密要求高的特点,不能随意传播和扩散。因此,对模拟训练数据的安全传播和管理问题非常重要。文献[1]采用高级加密标准(AES)与Morii-Kasahara算法实现混合加密,适合于移动终端的小数据使用,对占用大量内存的大数据加解密很难适应;文献[2]采用SHA1和RSA发展了一种改进型的加解密策略,但是安全性不高。

为了解决这个难题,本文提出了一种混合加密的算法,通过对称算法(AES加密)对训练数据进行加密,通过非对称算法(椭圆曲线加密算法(ECC)加密)对对称算法密钥进行加密,并将加密后的数据通过训练网络传输至用户端进行解密和使用。此方法能够保证训练数据只有唯一的用户端可以解密和使用,大大减少了训练资源传播和扩散的几率,为分布式的模拟训练安全提供了保障。

1混合加密技术

1.1 对称加密算法

对称加密算法,又叫单钥加密算法、密钥加密算法、经典密码算法或传统密码算法。对称加密算法中明文的加密和相应密文的解密使用相同或相互容易导出的密钥。此种加密算法的优点是算法实现效率高、速度快,缺点是多用户的密钥管理过于复杂。

现有的对称加密算法有数据加密标准(DES)、国际数据加密算法(IDEA)、AES加密算法等,其中AES加密法作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点,在无线网络、航空航天航海等领域得到了广泛应用。AES有3种密钥长度:128 bit、192 bit和256 bit。和上一代加密算法DES相比,AES的128 bit密钥比DES的64 bit密钥强1 000多倍。AES加密算法是循环加密方法,即在给定密钥A(Nk位)和加密轮数(Nr轮)的情况下,通过“密钥扩展”方法将密钥位数扩展为Nb(Nr+1)位(其中Nb为加密区块大小),并按照Nr轮对加密区块进行循环加密。其加密过程如图1所示。

图1 AES加密和解密示意图

1.2 非对称加密算法

非对称加密算法,又叫双钥加密算法、公钥加密算法或现代加密算法。此算法的加密和解密密钥不相同,并且互不依赖,保证了密钥的更高安全性。此种加密算法的优点是不必管理大量的用户密钥,仅仅在通信时临时商定即可;缺点是算法实现效率低、速度慢以及对于某些复杂的数学难题过分依赖。

现有的非对称加密算法有RSA、数字签名算法(DSA)和ECC等,其中ECC加密算法[3-5]基于椭圆曲线上的离散对数问题的求解,即给定素数P和椭圆曲线Q,计算:

Q=kP

(1)

式中:k为已知P、Q的情况下求出小于P的正整数。

其加/解密流程如图2所示。

图2 ECC加密和解密示意图

2混合加密算法设计

为满足模拟训练数据发送量大、实时性高等要求,本文采用AES加密训练数据、ECC公钥对AES密码进行加密的方式实现,同时将加密密码和加密训练数据通过训练网发送至训练端;解密过程正好相反,通过ECC私钥解密得到AES密码,并通过AES解密获得最终训练数据。

2.1 算法分析

2.1.1实时性分析

由于AES加密采用循环加密的方式,因此,加/解密与每一轮运算和轮数有关。在本文设计时,采用256bit密钥,分别对10MB、1MB、100kB数据进行加/解密,得到的结果如表1所示。

对于ECC加密,其时间耗费比较长的方面,例如计算椭圆曲线参数,以及生成随机素数、基点、阶、公钥,私钥都是在模拟训练前完成的。其加密和解密用时是非常短的。对于100kB、10kB、1kB的数据,通过ECC加密和解密,得到的结果如表2所示。

表1 256 bit密码下的加/解密用时比对

表2 ECC加/解密用时比对

通过时间比对,可以看出通过混合加密方法对训练数据进行处理,满足实时性要求。

2.1.2可靠性分析

由于混合加密算法是在分布式模拟训练中使用,因此要保证训练数据能够可靠加密。本文分别采用10 MB数据、1 MB数据、100 kB数据,AES密钥256 bit,进行20次混合加/解密,得到的结果如表3所示。

表3 多次加/解密比对

2.2 混合加密流程设计

在训练前,首先客户端要向服务器进行注册,注册的内容包含客户端身份认证信息,以及ECC加密的各项信息(椭圆方程Ep(a,b)和公钥K,基点G),通过认证后服务器对注册内容进行保存。用户注册流程图如图3所示。

图3 用户注册流程图

训练开始后,服务器随机产生一组AES密钥,在获取一条训练信息后,通过AES加密训练信息,然后通过ECC加密AES密钥,完成后通过网络实时发送到客户端,供客户端进行训练使用。训练数据加密流程图如图4所示。

图4 训练数据加密流程图

客户端在获取数据后,通过ECC解密获得AES密钥,然后对训练数据进行解密,获得训练数据。训练数据解密流程图如图5所示。

图5 训练数据解密流程图

3混合加密算法实现

下面给出基于AES和ECC加/解密的算法实现。首先,定义一些主要的变量,包含ECC算法的椭圆方程参数a,b、随机素数p、基点G、阶m、公钥K,私钥k,以及AES加密的密钥AESKey,并建立ECC算法类ECCCode和AES算法类AESCode。下面主要给出基于AES和ECC混合加密的代码(用户注册、训练数据网络发送和接收的代码从略):

inta,b;// 椭圆方程参数

intp;// 素数

CPointG;// 基点

intm;// 阶

PointK;// 公钥

intk;// 私钥

char*AESkey// AES随机密钥

BOOL Encode(char *chtext, int count)

{

//第一步,创建椭圆函数

ECCCode ecc;

ecc.Elliptic_Curve(a,b,p,2);//其中2为素数p的位数。

//第二步,计算基点和阶

ecc.BasePoint(a, b, p, G, m);

//第三步,计算公钥和私钥

ecc.SetKey(a,b,p,G,m,k,K);

//第四步,产生AES随机密钥

AESCode aes;

aes.CreateCode(AESkey);

//第五步,产生AES随机密钥

aes.CreateCode(AESkey);

//第六步,AES加密数据

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)

//第二步,解密数据

AESCode aes;

aes.DeCrypt(AESkey,chtext,count);

}

4系统验证

在某批模拟训练中,通过本文的混合加密算法将训练数据进行整合,首先客户端进行注册,获得ECC加密所需的各项信息。用户注册示意图如图6所示。

图6 用户注册示意图

注册完成后,选择一个用户,并按照训练的进度,将训练数据发送给此客户,数据加密结果如图7所示。

图7 数据加密示意图

如果客户端接收正常,并能够解密,则得到的结果如图8所示。

图8 客户端正确解密示意图

若其他客户接收后,解密不能进行,得到的结果如图9所示。

图9 客户端非正常解密示意图

通过使用验证表明,本系统整合的数据仅能支持唯一的客户端使用,保证了数据使用的唯一性。

5结束语

本文通过设计混合加密算法,对模拟训练中使用的训练资源进行了整合,并通过实际的使用对算法进行了验证。验证结果表明,通过与训练支撑系统配合使用的方式,强化了训练数据的安全性,在保证部队训练的同时,大大减少了训练资源传播和扩散的几率,为复杂电磁环境下的仿真训练安全提供了保障。

参考文献

[1]孙国军,闫茂德,王葳,等.基于C/S结构的公安综合移动警务系统的混合加密方案[J].计算机测量与控制,2007(12):1817-1819.

[2]江兵,辛元雪,孙前庆.空间信息传输的改进式混合加密策略[J].计算机工程与设计,2012(9):3313- 3318.

[3]刘洋.基于AES算法和椭圆曲线签名的混合加密方案的研究和实现[D].武汉:华中科技大学,2012.

[4]杨超,高海燕.椭圆曲线密码体制理论与其安全性研究[J].电脑知识与技术,2006(17):183-185.

[5]孙跃刚.椭圆曲线密码体制中若干问题的研究[D].长春:吉林大学,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

中图分类号:TP391.9

文献标识码:A

文章编号:CN32-1413(2015)05-0073-04