分布式仿真系统通过网络将不同地区的模拟器,计算机,及其他一些设备互联在一起,构建成一个协作虚拟环境以实现复杂仿真过程,常被用于国防领域,其数据往往具有很高的机密性。因此,需要进行加密处理来维护其安全。同时随着分布仿真系统的应用越来越广泛,规模越来越大,使得为其制定出一套完整的数据加密等级标准日趋重要。
一、分布仿真系统概述
1、HLA概述
在分布式仿真系统中,通常,需考虑的仿真实体较多,各仿真实体之间以及仿真实体与仿真环境之间的信息交互量大,传统的集中式仿真系统难以满足仿真实时性和交互性要求。HLA是高层体系结构(High Level Architecture)的简称,是一种开放的、面向对象的体系结构。它支持仿真应用间的互操作性及仿真部件的可重用性。由于采用运行时间框架(RT1:Runtime Infrastructure)软件支撑系统将应用层和支撑环境功能分离开来,使得仿真开发可以独立进行。
一个完整的分布仿真系统称为一个联邦,由若干个相互作用的联邦成员构成,各联邦成员间的互操作通过RTI进行。在网络环境中,仿真系统的各联邦成员通过本地的RTI代理进程与运行在远端服务器上的RTI进程进行交互。
2、HLA存在的安全漏洞
由于国防领域仿真应用的特殊性,某些联邦成员通过RTI与其他成员交互的数据不希望被计划之外的联邦成员捕捉到,尤其不希望被该仿真系统之外的主机得到,但是HLA规范却没有对安全性做出任何要求,故实际上HLA/RTI体系存在着很大的安全隐患。
因此需要对分布仿真系统中的敏感数据进行加密,使得数据在不同的联邦成员之间传输的过程中,是以密文的形式进行的,即便被非目标联邦成员截获,由于没有相应的解密密钥,信息也无法被获取,这样,便保证了分布仿真系统之中数据传输的安全。
二、分布仿真系统加密技术研究
1、分布仿真系统加密概述
对于一个分布仿真系统进行加密,首先应该考虑到数据的加密粒度,其加密粒度通常可分为文件级和数据级。文件级加密单位大,实现较容易,但适用范围相对较窄,灵活性较差。数据级加密单位小,相应灵活性就较强,应用范围广,但实现的难度较大,由于需区别对待仿真系统不同敏感度数据,因此采用数据级加密。
其次,要对仿真数据的加密层次进行选择。其加密层汝主要有:通信支持系统层、RTI层、联邦成员层。在通信支持系统层进行加密,由于无法辨认仿真系统中的数据类型及敏感程度,因此无法针对具体需要进行区别加密,只能进行统一的文件加密,这对于大型的分布仿真系统来说没有实际意义。在分布仿真系统的RTI层进行加密,需要将相应的加密、解密代码嵌入到时间支撑框架中,需要进行大量的修改工作,代价较大,且与联邦规则中的规定“每个对象的表现应限于邦员内,不应在RTI中”不符,因此也不可行。在联邦成员层进行加密,可以将源代码直接嵌入联邦成员与RTI的接口模块中,既不影响RTI功能,又能根据联邦成员势据的不同敏感度级别区别加密,是一种切实可行的加密方法。
图1显示了嵌入加解密功能的HLA分布仿真系统的数据通信结构。
最后,在对仿真系统数据进行加密之后,其数据量不应明显增加,数据长度应该维持在原有水平,以保证传输速度,使数据响应能够满足实时性要求。根据IEEE1278.1-3标准,对于实时仿真网络,紧耦合实体间数据交互延迟应不超过lOOms,松耦合实体间数据交互延迟不超过300ms。
2、分布仿真系统加密流程及解密流程
(1)加密流程
在进行加密过程之前,应该先将仿真系统的各种数据,如文本数据,图片数据,语音数据等转化为二进制数据再进行加密,然后将明文转化为密文数据用于存储或进行数据交互。加密流程图如图2所示。
(2)解密流程
数据解密是数据加密的逆过程,即将密文数据变成明文数据。在需求提取数据信息或者交互数据的接收方接收到密文信息时,需要将密文数据解密得到明文数据,并再通过一个逆二进制转换得到原始数据,便于系统成员的处理。解密流程如下图3所示。
3、相关加密算法
数据加密是保障分布仿真系统数据安全的最基本、最核心的技术支持和理论基础。数据加密过程由各种加密算法具体实现,以较小的代价提供极大的安全保护。
(1)DES加密算法
DES加密算法又被称为数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法,是一种理论及技术上都很成熟的加密算法。具有较高的安全性。
DES加密算法密钥长度为56位(去除校验位),明文按64位进行分组,将分组后的明文组和64位的密钥按位替代或交换的方法形成密文组。
DES在对明文进行初始置换IP之后,执行16轮的迭代变换,每轮都是一个Feistel网络结构。最后经IP的逆变换得到密文:其中,Lo是明文的左32位,R0是明文的右32位。给定一个初始密钥k,由它生成16个子密钥k1,k2,…,k16。通过下面加密过程得到密文R16L16。
图4是DES的加密流程图,其加密和解密过程相同,只是解密子密钥与加密子密钥的使用顺序刚好相反。
DES中使用的最重要的密码技术是混淆和扩展,两种技术的历史都比DES要长,但是在DES中它们得到完美的结合,从而能抵抗密码学家们长达20多年的分析。由于DES的整个算法结构都是公开的,其安全性由密钥保证。
DES也有其固有缺点,即抗差分攻击性能不够强。其原因就在于E盒扩展部分的规律性明显,从而造成其非线性太弱。对此,提出改进的DES算法。
(2)改进DES加密算法
改进的DES算法的整体流程与原有的DES算法相同,改进部分在于Feistel算法中的E盒,即32位明文扩展到48位的部分。原DES算法只有在16轮迭代的情况下才能达到较好的抗差分攻击性能,其原因就在于E盒扩展部分的规律性明显,从而造成其非线性太弱。而改进后,可以弥补这点不足。
为了满足改进算法的需要,需将原有的56位密钥扩展到72位,将前10位应用于改进E盒扩展部分,将后56位作为普通的DES加密密钥,剩余6位丢弃。
改进过程如下:以分组的明文Li,Ri(32位)为基础,取密钥ki的前10位,2位为一组,共分为5组,分别转化为十进制,即为5个可取O,1,2,3的数字,将其分别看做1,2,3,4,以此决定前5组明文数据块的实际位数。假设分组后前5组的实际位数为Si(5≤S1≤20),设S2=32-S1,(12≤S2≤27),设a1=[S2/7],a2=S2%7,然后,承接已分好的5组再进行后续分组,还需7组,划分为a2个长度为ai+l的组和7-a2个长度为ai的组。由于:
可知此时已经覆盖了整个的32位明文,此时所分组数为12,再将每个长度不足4位的组以O补足到4位,则达到了同E盒一样从32位到48位的扩展效果,同时,由于扩展过程不再具有原DES的E盒扩展的重复性,且与密钥相关,故增强了抗差分分析性能。
(3)AES加密算法
由于计算机技术的飞速发展,对于DES的破解不再特别困难,故需求一个更加安全的加密算法进行安全保证,改进加密标准AES (Advanced Encryption Standard)算法便应运而生,经过长期验证,证明了这种算法的差分均匀性以及线性偏差都达到了最佳,安全性显著高于DES加密算法。
在AES加密算法中,明文以128位分组,分为4个字,其中,一个字占4个字节,即32比特位。密钥中字的个数可以为4,6或8,由明文字数和密钥字数共同决定加密轮数Nr。将明文与轮密钥分别进行Nr轮加密变换即可得到密文数据。
AES加密算法能够有效地对抗目前已知的攻击方法的攻击,如部分差分攻击,相关密钥攻击,差值攻击等。对于AES线性偏差都达到了最佳,安全性显著高于DES加密算法。
在AES加密算法中,明文以128位分组,分为4个字,其中,一个字占4个字节,即32比特位。密钥中字的个数可以为4,6或8,由明文字数和密钥字数共同决定加密轮数Nr。将明文与轮密钥分别进行Nr轮加密变换即可得到密文数据。
AES加密算法能够有效地对抗目前已知的攻击方法的攻击,如部分差分攻击,相关密钥攻击,差值攻击等。对于AES加密算法,最有效地攻击只是穷尽密钥搜索攻击。
(4)RSA加密算法
RSA系统是公钥系统的最具有典型意义的方法,是第一个既能用于数据加密也能用于数字签名的算法,为公用网络上信息的加密和鉴别提供了一种基本方法,其安全性基于大整数素因数分解的困难性。
RSA加密算法先生成一对RSA密钥,其中一个是加密钥(公钥),可对外公开发布,另一个是解密钥(私钥),由接收端秘密保存。
RSA加密算法描述如下:
1)密钥产程过程:取两个不相等的大素数p和g,计算n=pq;随机选择整数8,满足1<e<(p-1)(q-1),gcd[e,(p-1)(q-1)]=1;计算d,使其满足ed=1 mod(p-1)(q-1)。
公有密钥为n,e;私有密钥为d。
2)加密算法:对于待加密的消息m,l<m<n,其对应密文为c=E(m)=me mod n。
3)解密算法:D(c)=cd mod n。
RSA加密算法为迄今为止公认的最为安全有效地加密算法之一,其攻击难度非常高。
4、各加密算法性能测试比较
在VC6.0中对DES算法,改进DES算法,AES算法,RSA算法分别进行实现,其中,所采用计算机的操作系统为Windows XP Professional 2002,CPU为Pentium(R) Dual 2.40GHz,内存为1.96G。对于同一组二进制型“00001111110001100111110101011110000”,其平均加解密时间比较如表1所示。
在算法实现过程中,AES算法采用密钥字数为4,即128位。加密轮数Nr为10轮。
RSA加密算法采用的大素数p,q都为125位左右的十进制数,加密密钥采用随机生成的满足条件的100位左右的大型数,解密密钥达到200位。能够充分保证算法的安全性,但由结果可以看出,若用于实时仿真系统,其加密速度略慢。
对于一个仿真系统而言,联邦成员间在互相传输数据时,为了保证数据的实时性,往往采用少量的数据进行传输,而增加传输次数。因此根据测试结果,前三种算法都能基本满足系统实时性要求,且数据量不会明显增加。当然,如果对于强实时性分布仿真系统,其实时性要求可能会非常高,为了充分满足系统的实时性要求,也可以采用更高性能的计算机、硬件加密、算法优化等方法进行改进。
5、密钥管理
由于上述DES,改进DES,以及AES算法的安全性依赖于密钥的保密性,故密钥管理方案的选择成为系统是否安全的一大关键因素。首先,对于大型的仿真系统而言,一个可靠的大量密钥产生机制是必不可少的。一个好的密钥源,要求其具有随机性或者伪随机性。这里,利用混沌算法产生一个伪随机序列,二进制化后进而得到任意长的密钥流。
混沌算法公式如下:
当公式(2)满足条件3.57<μ≤4.0且O<xo<l时,输出结果序列为混乱状态的(0,1)范围之内的高随机性数据。可以任取限定范围内不同的μ和初值xo,得到任意的密钥流序列。只要参与数据收发的联邦成员之间约定相同的参数值以及采用序列的规则,即可成功的实现大量密钥的生成,同时又可免去密钥分发的麻烦。
由于RSA算法的加密速度较慢。故不将其直接应用于仿真系统的明文加密,而是将其用于密钥加密,相当于实施了数据加密的二级密钥管理。极大地提高了分布仿真系统的安全性。
三、分布仿真系统加密等级划分
不同的分布仿真系统,对于实时性的要求是不同的。虽然总体来说,仿真系统对于实时性的要求较高,但是也存在相对实时和相对非实时的区别。
对于一个具体的分布仿真系统,可分为平台级仿真及聚合级仿真两种类型。其中,平台级仿真是指在仿真推进过程中,按照一定的时间间隔按时更新仿真实体的位置、状态等相关信息,一般来说,经常采用的时间间隔为lOms,30ms,50ms等。聚合级仿真则不以时间作为信息更新的依据,而是根据某一事件来进行推进,例如一个军事对抗演习仿真,可能需要根据军队的行进位置进行检测,此时,时间仅为事件的一个具体参数。相比较而言,平台级仿真系统对于加解密的实时性要求严格,而聚合级仿真系统则相对较弱。
下面,针对平台级和聚合级分布仿真系统分别进行考虑,假定各联邦成员的仿真数据按照重要性不同划分可为4个等级,从低到高依次为1,2,3,4级,则相应加密等级划分如表2所示:
其中,所采用的密钥流均为经RSA加密后的工作密钥流。用于第1级与二进制明文直接异或加密的密钥流根据其ASCII值进行二进制化即可得到。
小知识之系统仿真
所谓系统仿真(system simulation),就是根据系统分析的目的,在分析系统各要素性质及其相互关系的基础上,建立能描述系统结构或行为过程的、且具有一定逻辑关系或数量关系的仿真模型,据此进行试验或定量分析,以获得正确决策所需的各种信息。