然而,由于用计算机实现混沌系统时的动力学特性退化问题,用单一混沌系统实现的加密算法是不够安全的。因此,用传统加密和混沌加密级联、高维混沌系统或多混沌系统实现加密算法是提高加密系统安全性的有效措施。为此我们提出一种基于分段非线性混沌映射的流密码加密方案。
一、基于分段非线性混沌映射的流密码加密方案设计
1、分段非线性混沌映射
分段非线性混沌映射方程为:
其中,α为控制参数,分段参数p∈[0,1]。相应的不变测度为:
当p=0.1时,分段非线性混沌映射的分形图见图1。
2、流密码加密算法
流密码加密方案如图2所示。
设明文长度为h。由Log is tiC映射:Yn+1=μyn(1-yn),μ=4给定初值y(0),迭代得Yi∈[0,1](i=1, 2…,h),以此作为分段非线性混沌映射的参数pi,显然,pi为一混沌序列;再由Henon映射:zn=1+ bzn-2-1.4z2n-1, b=0.3给定初值z(0),得z(i)∈[0,1](i=1, 2…,h)。通过式(3)得到分段非线性混沌映射的迭代次数:
给定控制参数α和初值x( O),对每一个分段参数pi,迭代分段非线性混沌映射mi次,得到混沌密钥流ki(i=1, 2…,h)。
加密函数定义为:
解密过程类似于加密过程。在得到和加密过程同样的密钥流后,解密函数定义为:
该流密码加密和解密方案中应用了3个混沌映射。通过分段参数和迭代次数的混沌变化,增强了由分段非线性混沌映射迭代得到的密钥流的安全性,同时一次一密的特点也增加了攻击的难度。
二、加密算法仿真
对分辨率为512×512像素的Peppers tif度图像进行算法仿真实验。仿真环境为:PC机的CPU为P424GH写512MB内存,80GB硬盘空间,软件用M adab71实现。混沌系统的初值分别取x(0)=0.1,y(0)=0. 2,z(0)=0.3控制参数α=0.4,如仿真结果见图3。
用本文加密算法与传统加密算法进行加密和解密速度比较,实验结果如表1所示。仿真时也可采用离线生成密钥流的方法进一步提高加密和解密速度,说明该方案有较好的实时性。
三、安全性分析
1、密钥空间分析
加密方案的安全性依赖于密钥的安全。本文研究的流密码加密方案的可能密钥为:混沌系统的初值x(0)、y(0)和z(0)混沌系统的参数α、μ和b,分段非线性混沌映射的迭代,次数m。仿真实验表明,仅改变上述任何密钥的一位,都会导致解密图像的完全不可辨识。如将Logistic映射的初值由0.2变为0.200000000001,相应的解密结果如图3(d)所示。可见,该流密码文件加密方案的密钥空间足够大且对密钥敏感,可抵御可能的穷举攻击。
2、抗统计攻击分析
建议通过加强扩散和混淆抵抗基于统计分析的攻击,统计分析表明,扩散与混淆特性对统计分析具有较强的抵抗力。从原始图像与加密图像的直方图(见图4)可看出,加密图像的直方图具有较好的均匀特性,攻击者难以利用像素灰度值的统计特性恢复原始图像,说明该流密码加密方案具有抗统计攻击的能力。
3、抗差分攻击分析
攻击者可能通过对明文图像做微小修改来观察解密结果的变化,并可能由此发现原始图像和解密图像的联系来得到正确解密结果。但若加密过程中明文图像的微小变化即导致密文图像的较大变化,则这种差分攻击的效果就会大大降低。
通常用两个参数来描述这种变化,即像素数目改变率(N umber ofP icels ChangeR atq NPCR)和归一化平均改变强度(UnifiedAverage Changing Intensity UACI) 。设原始图像的相应加密图像为C1,改变原始图像的一个像素灰度值后得到的加密图像为C2令C1和C2在像素点(i, J)处的灰度值分别为C1(i, J)和C2(i, J),有:
NPCR和UACI定义为:
其中m和n分别为图像的水平像素数目和垂直像素数目。可见NPCR反映两图像间不同像素的多少,UACI反映两图像间灰度差值的情况。对两幅完全随机的图像,NPCR和以CI的理论值分别为99.6093750%和33.463540%。设原始图像的结果表明本文算法只需要很小的位图,甚至不需要位图;即使需要位图,相对于负载来说它的大小也可以忽略不计。
第一个像素的灰度值为P1,改变其值为p'1,,即p'1,=(p1+100) mod 256其他像素的灰度值保持不变。得到两幅相应的加密图像计算其NPCR和UACI分别为99.51%和33.38%,非常接近其理论值,说明该加密方案有较强的抵御差分攻击的能力。
小知识之流密码
流密码也称为序列面膜(Stream Cipher),它是对称加密算法的一种。序列密码具有实现简单、便于硬件实施、加解密处理速度快、没有或只有有限的错误传播等特点,因此在实际应用中,特别是专用或机密机构中保持着优势,典型的应用领域包括无线通信、外交通信。