虚拟企业中的盟主和盟友的产生都具有任意性,因而,盟主、盟友之间的通信不能采用专线,只能依赖现有的功能强大的因特网作为媒体因特网是一个开放性的网络系统,而盟主、盟友之间传递的信息绝大部分并不希望联盟以外的人知晓,因此,如何在开放的因特网环境下在虚拟企业中进行信息的安全传递成为虚拟企业能否正常运作的又一重要因素本文通过信息的加密传输来保障信息的安全性。

由于加密强度与加密所需的系统资源成正比,与加密速度成反比,综合考虑虚拟企业中信息的具体情况及系统要求,本文设计了快速的对称的混沌加密算法混沌加密具有很高的安全强度,很快的加密速度,没有周期性它能适应多媒体时代信息加密的要求。

一、混沌加密的理论基础

混沌加密算是近几年才发展起来的以混沌模型为基础,根据混沌特性进行加密的算法,混沌是发生在一个确定系统中的伪随机运动系统在某个参数和给定的初始条件下,其运动是确定性的,但是该运动的长期状态对初始条件极其敏感混沌函数具有伸大拉长和折回重叠的性质,所以有不可预测性。

虚拟企业中多媒体信息的混沌加密方法

由初始条件敏感性可知,当初始条件x0稍微出现一些偏差δxo,则经过n次迭代后,结果就会呈指数分离,故n次迭代后的误差为:

虚拟企业中多媒体信息的混沌加密方法

其中:

虚拟企业中多媒体信息的混沌加密方法

即是所谓的Lyapunov特征指数,它表征了相邻两点之间的平均指数幅散率混沌区是一个特殊的区域,当A和XB在混沌区取值时,迭代轨迹将以指数级发散只要初始值有10-6的差异,其迭代轨迹就会大相径庭,加上迭代方程本身的特点,初始值成为得到迭代序列的最关键因素将这些特点应用到加密理论中来,就形成了完善的混沌加密算法。

二、混沌加密算法设计、混沌加密效率及安全性分析

1、混沌加密算法设计

假设{Pn}是明文信息序列,{Kn}是密钥信息序列,{Cn}是密文信息序列。

基于混沌的加密算法设计为:

虚拟企业中多媒体信息的混沌加密方法

基于混沌的解密算法设计为:

虚拟企业中多媒体信息的混沌加密方法

在本系统中采用了非线性迭代方程式(1)这个混合光学双稳模型作为混沌函数,来产生混沌源A和XB是方程的系数4,XB和x0共同构成了密钥。

文件加密算法描述如下:

(1)打开一个文件并过滤头信息;

(2)从文件中以bit为单位读数据P;

(3)根据迭代方程(1)生成混沌序列{xi},并获得一个bit K;

虚拟企业中多媒体信息的混沌加密方法

(4)通过异或计算:C=P Xor K,获得密文bit C;

(5)把C写到一个新文件中;

(6)重复(1)到(5)直到文件结束。

2/3*4是一个经过实际运行总结出来的经验结果通过与这一值比较,生成O/1bit得到的掩码具有较好的加密效果采用光学双稳模型进行混沌加密具有较快的加确翠密速度,它符合在虚拟企业中多媒体信息的传输需要。

2、实验结果

多媒体信息加密结果如图1~图3所示。

虚拟企业中多媒体信息的混沌加密方法

 

虚拟企业中多媒体信息的混沌加密方法

 

虚拟企业中多媒体信息的混沌加密方法

3、混沌加密算法的效率分析

数据加密标准DES是目前公认的比较好的对称加密算法,RSA是公开密钥算法中的杰出代表,下面将混沌加密算法分别与DES和RSA算法的加密效率加以比较。

测试环境:赛扬400CPU、96兆内存、WindowsNT4.O、JDK1.1.5,分别使用混沌加密算法、DES和RSA加密算法对100k、500k、1M、5M、10M的信息进行加密处理,记录了所需要的加密时间(以s为单位),如表1所示。

虚拟企业中多媒体信息的混沌加密方法

由于计算机配置及时间限制,只对小于等于10M的信息加以比较,对于超过10M的信息只计算了混沌加密算法所需要的时间通过以上五组对比测试结果可以看出:

混沌加密、DES和RSA加密算法加密所需要的时间均是根据其加密信息量大小呈线性增长,由此不难推算出加密更大的数据量所需要的时间对相同信息大小而言,混沌、DES和RSA加密算法所需
时间的比例关系基本为1:33:81(其中由于所需时间关系,RSA加密采用100 bit长度密钥),由此可见,混沌加密算法在加密速度方面有极大的优势,因此,它可以也更适合被广泛应用于大量多媒体信息的加密领域图4显示3种加密算法速度比较。

虚拟企业中多媒体信息的混沌加密方法

4、混沌加密的安全性分析

(1)对线性攻击和差分攻击的防范属于对分组加密的攻击法,对混沌加密攻击是无效的。

(2)对统计分析攻击法的防范因为密文O,1的分布概率是0.5:0.5,明文的统计性完全扩散了。

(3)对选择明文/密文攻击法的防范。由于异或运算的特殊性,密钥流的推断是不可能的由于混沌自身的单向性,密钥处理迭代的多重构造,所以密钥流的推断是不可能的。

三、加密具体实现的后处理技术

所设计的上述混沌加密算法均采用Java语言加以实现,Java语言对中文的支持并不理想Java中的流操作不支持中文,所以只能将字符串转化为字节数组Java中的byte类型取值范围在- 128~127之间,它采用两个负数字节表示一个汉字由字符串转化来的字节数组经过加密得到新的字节数组,该数组可能出现一个负数的前后都是正数的情况此时Java不能将此字节数组正常的转换为字符串另外,‘.’在虚拟企业信息集成系统中为保留字,不可以在密文中出现,以上种种限制使得本文不得不进行加密后的后处理。

加密后的后期处理主要针对‘.’和汉字在这里,将字节数组中的负数取反,然后在此字节后加入两个负数字节加以标识,对于126(‘.‘的ASCII值)、- 126(126的相反数)和- 128(取反后不在byte类型范围内)三个特殊值,用其他负数字节对标识,然后将经过后期处理的字节数组转化为字符串,得到最终的密文解密时,先将密文转化为字节数组,然后按预定的标识将字节数组进行转化,再将转化后的字节数组解密,得到明文这么做的代价是当密文字节数组全为负数时,信息量扩大二倍,不过它很好地解决了汉字处理问题加密具体实现的后处理技术算法的形式化描述如下:

(1)获得加密过的串;

(2)把这个加密过的串用byte数组C[]表示;

(3)对于byte数组C[]中的每个byte

If C[i]=0 then C1[j]=-25, CI[j+1]=-25

elseif C[i]=126 then C1[j]=-30, C1[j+I]=-30

elseif C[i]=-126 then C1[j]=-35, C1[j+l]=-35

elseif C[i]=-128 then C1[j]=-40, C1[j+l]=-40

elseif C[i]<0 then Cl[j]= -C[J],C1[j+l]=-45, C1[j +2]=-45

else C1[j]=C[i]

(4)数组Cl构成最终的密文中。

小知识之虚拟企业

虚拟企业(Virtual Enterprise),是指当市场出现新机遇时,具有不同资源与优势的企业为了共同开拓市场,共同对付其他的竞争者而组织的、建立在信息网络基础上的共享技术与信息,分担费用,联合开发的、互利的企业联盟体。虚拟企业的出现常常是参与联盟的企业追求一种完全靠自身能力达不到的超常目标,即这种目标要高于企业运用自身资源可以达到的限度。因此企业自发的要求突破自身的组织界限,必须与其他对此目标有共识的企业实现全方位的战略联盟,共建虚拟企业,才有可能实现这一目标。