为了研究网络数据传输可靠性和安全性问题,我们根据仿真网络中数据存储和传输的安全要求,设计并实现了一个数据加密系统。该数据加密系统将私钥密码体制与公钥密码体制相结合,以解决仿真网络中数据量大、实时性高的数据安全传输问题。
一、仿真网络中的数据类型及安全要求
仿真的过程是以实体间的数据交互为基础,仿真网络中的数据主要有以下两类:
1)实时交互数据
包括仿真实体发出的命令、设置的参数等操作型的数据;仿真实体之间传输的状态更新、交互操作等数据;记录仿真实体状态的参数数据。
2)非实时数据
包括用于控制仿真系统行为的控制信息(如启动、暂停、停止)以及仿真网络中的各种重要文件。
实时交互数据一般传输频率较高,对仿真结果起着决定性的作用,不仅要保证数据的安全性,更要保证数据的实时性;而非实时数据传输频率较低,但对可靠性要求较高,不允许数据包的丢失。因此对仿真网络中的数据传输具有如下安全要求:
1)保密性
指信息不泄露给非授权的个人或实体的特性。在仿真网络中,保密性尤为重要,如仿真数据库中的敏感数据、仿真结果中的保密数据一旦被泄露,将导致整个仿真过程和结果失去意义。本文采用对数据加密的方法来实现保密性。
2)完整性
指信息在存储或传输过程中保持不被修改、破坏、插入、延迟、乱序和丢失的特性。对于仿真数据来说,完整性的破坏将导致错误的仿真结果,进而导致错误的决策方案。本文采用报文摘要的方法来保证数据的完整性。
3)发送方的真实性和不可抵赖性
指接收方可以鉴别发送方的真伪,同时发送方对已发送的行为也不可抵赖。本文采用数字签名的方法来实现这一特性。
二、仿真网络中的数据加密原理
1、非实时数据的加密方案
仿真网络中非实时数据的特点数据量大,安全性、完整性和真实性要求高,但实时性要求不高,因此采用私钥密码体制和公钥密码体制相结合的混合加密方案来提供安全性、发送方鉴别和报文的完整性。 发送方A用对称密钥Ks和加密算法Ks(*)(可以是DES、3DES或AES加密算)对明文m和数字签名ka-(H(m))进行加密,用RSA加密算法和接收方B的公钥PB+对加密密钥玛进行加密,形成密文n发出,在接收方B首先用接收方B的私钥P解出对称加密密钥Ks,再用玛解出明文m和数字签名ka-(H(m)),最后用发送方A的公钥PA对发送方的身份进行鉴别,同时得到H(m),将其与根据明文m实际计算出的H(m)进行比较,实现对所传送的报文m的完整性检验。
2、实时交互数据的加密方案
对于分布式仿真网络中实时交互数据采用基于混沌理论的序列密码加密算法。
首先根据所选混沌方程,将其初始状态和参数值作为种 子密钥,由混沌密钥生成系统生成混沌序列,作为密钥序列, 然后将明文序列与密钥序列进行异或,得到密文序列。在解密端用同样的密钥序列即可将密文恢复为明文。本系统中的混沌方程可以选Logistic映射方程“列、Lo renz方程”以及基于复合离散混沌的动力学系统方程。下面给出基于复合离散混沌动力学系统方程的加密算法原理。首先,根据复合离散混沌动力系统的定义,在[0,1]上构造一对严格互补的非线性复合离散混沌动力系统:
其次,根据两个离散混沌系统的自同步定义,将所表示的复合离散混沌系统作为驱动系统,构造一个可逆变换:
再求得其响应系统。
至此所建立的复合离散混沌系统(1)和(2)关于可逆变换H混沌自同步,因此可以使用由驱动系统和响应系统产生的x(k)序列和y(k)的逆序列来加密原文和解密密文。算法设计方案如下:复合离散动力系统(1)的初值xo作为加密种子密钥,相应地,解密种子密钥是复合离散动力系统(2)的初始值Yo,且加密种子密钥和解密种子密钥之间存在映射关系H。加密时,对明文的每一个比特位m。进行判断来决定混沌迭代映射函数fo或fi的选择,若mi=o,下一次混沌迭代选择fo映射?若mi=1,下一次混沌迭代选择fi映射,将产生的混沌变量进行量化,然后与原文异或得到密文ci。
三、仿真网络数据加密系统的设计与实现
1、仿真网络数据加密系统的体系结构
本加密系统基于目前比较成熟的仿真网络体系结构HLA,由CA服务器端和客户端两部分组成。将加密客户端嵌入到联邦成员中,实现对各联邦成员之间仿真交互数据的加密,CA服务器则实现密钥的生成、分发和管理,各联邦成员之间以及联邦成员与CA服务器之间通过HLA—RTI接口进行通讯。
2、仿真网络数据加密系统的功能模块
加密系统的功能模块主要有CA服务器端和加密客户端两部分组成。
CA服务器端主要完成客户端的身份认证,RSA密钥的生成、存储以及分发功能。密钥的生成基于用户口令字和大数分解理论,每次产生一对密钥(从钥和私钥),用于数字签名和加密会话密钥,即对称加密算法DES、3DES或AES算法的密钥;密钥的存储是将生成的密钥对与申请者用户名关联起来,生成一个关联目录,以供客户端查找;密钥的分发是根据客户端的请求信息,在关联目录中查找与之匹配的信息,若找到则将密钥发送给请求的客户端。
加密客户端主要完成对文件的加密和解密、对实时数据的加密和解密、密文的传输,对称加密算法的密钥管理和传输,以及与CA服务器的交互。其中密钥生成模块用于生成对称加密算法DES、3DES、AES、混沌序列加密算法的密钥;密钥的加密传输模块主要是用于保证会话密钥的安全,即用公钥密码算法RAS的公钥来加密会话密钥,将加密后的密钥与密文一起传输,在解密端用RAS的私钥解密以得到会话密钥;实时数据的加解密模块基于混沌特性,采用混沌序列密码算法对实时数据进行加密和解密。
四、仿真网络数据加密系统的实现
依据上述原理,在Windows平台下,使用基于MFC的多线程程序开发技术和Socket编程技术实现了该系统。系统实现了如下功能:
①对文件的加密存储和传输;
②对实时仿真数据的加密传输。
1、文件的加密存储和传输
采用对非实时数据的加密方案,其功能实现。在本地加密标签中首先选择待加密的文件,然后选择一种加密算法,如DES +RSA、3DES +RSA或AES +RSA,点击开始加密,即完成加密过程;在本地解密标签中采用相应的算法进行解密;在文件传输中对加密后的文件进行安全传输。
当选择DES +RSA加密算法加密文件时,加密和解密结果,即加解密正确。对其他算法和功能进行同样测试,结果均正确。
2、实时数据的加密传输
采用对实时数据的加密方案,实现了图3所示的基于HLA的武器对抗仿真系统。系统有歼击机、目标机和数据收集舰察器三个联邦成员组成,为测试加密、解密效果,在数据收集舰察器中获取了歼击机和目标机发出的位置和速度实时信息,选择一种混沌加密算法,点击加密或解密按钮,即可实现对所采数据的加密或解密,并将结果显示在界面上,实验结果表明,加密解密结果正确。
实验结果表明,该系统具有良好的加密效果,可满足仿真网络中数据安全的要求。
小知识之仿真网络是指通过采用先进的计算机网络技术,构建面向企业特定需求的基于网络的仿真系统,并在系统的支持下,突破空间对企业研发的约束,开展覆盖产品全生命周期全部的研发活动。