一种基于载体的混沌加密方法

文档序号:7953410阅读:340来源:国知局
专利名称:一种基于载体的混沌加密方法
技术领域
本发明属于信息安全领域中的密码技术,是一种利用电子计算机技术、信息隐藏技术和混沌系统实现的数字密码方案。
背景技术
随着计算机速度的不断提高,以及分布处理技术的日益发展,原有的一些加密算法正逐步被破解。目前,国内所采用的加密算法大都是国外将要淘汰的低强度加密算法。由此所带来的不安全因素已成为当前阻碍经济发展和威胁国家安全的一个重要问题。
混沌被认为是一种随机和不可预测的现象,初始条件的微小改变都会使得在一定的迭代后得到两个截然不同的序列。由序列本身也不可能预测将产生的下一个数值,而从序列重构混沌映射也是不可能的;由于序列在值域上均匀等概率地分布,使得它具有白噪声性,混沌呈现出来的这种伪随机性可以用来掩盖明文信息,安全地传输密文信息。因此混沌拓宽了密码设计的思路,为开发新的密码方案提供了丰富的机制和方法。
1998年M.S.Baptista等人在文献“Cryptography with Chaos”[Phys.Lett.A,1998,240(1-2)50-54]中提出了一种基于搜索机制的数字化混沌密码,得到了广泛关注。针对原方案中密文的概率分布不均匀、加密速度慢和密文长度较长(至少为明文长度的2倍)等问题,李树钧等人在文献“Performance Analysis of Jakimoski-KocarevAttack on A Class of Chaotic Crypto-systems”[Phys.Lett.A,2003,307(1)22-28]中通过对输出的密文进一步加密以改善原方案中不均匀的密文概率分布;K.-W.Wong在文献“A FastChaotic Cryptographic Scheme with Dynamic Look-up Table”[Phys.Lett.A,2002,298(4)238-242]中引入了动态更新的查找表技术以获得更快的加密速度和更高的安全性;其后K.-W.Wong等人又将每个明文字符在动态查找表中的索引值作为密文,有效地降低了密文长度。与此同时,也出现了许多对该类密码体制的攻击报告,一些方案已被证明是不够安全的,如文献“A Fast ChaoticCryptographic Scheme with Dynamic Look-up Table”[Phys.Lett.A,2002,298(4)238-242]中提出的基于动态查找表的一种快速加密方案已被证明是不够安全的。目前为止Baptista密码方案及其改进版本仍没有很好地解决密文长度较长、加密速度较慢等问题。

发明内容
本发明的目的在于克服上述诸方案的不足之处,提出了一种基于载体的混沌加密方法(CBCES)。
它借助了信息隐藏思想,使用载体来替换相关文献中的查找表;和后者相比,载体的选择更加灵活,可以是公开的数字化资源如图像,也可以是传输双方商定的私有资源等。混沌映射被用于产生“嵌入位置”,加密过程中把明文视为比特流,每次加密一个比特,每个明文的加密方式由控制函数确定。
控制函数的引入使得该加密方案与其它基于搜索机制的加密方案相比,系统的安全性得到了提高,密文长度有所缩短。该方法有效地解决上述问题,使得加密速度较快,密文长度较短,密文分布更均匀,安全性更高。


图1是第i个明文比特Pi的加密过程示意图;图2是第i个明文比特Pi的解密过程示意图;图3是示例的用于加密的标准baboo图像;图4是标准baboo图像的最低位平面示意图。
具体实施例方式
混沌映射г它负责产生嵌入位置Posk,Xk={x1k,x2k,Λ,xnk}表示n维混沌映射的当前状态。为了提高系统的安全性建议n≥2,这样构造出来的嵌入位置函数和控制函数就可以更复杂,能较少地泄露xk的信息。当然也可以选择多个混沌映射分别负责嵌入位置的生成和控制函数的产生。令A表示混沌映射г的控制参量的集合。
载体ζ本文的载体类似于上述文献中的查找表,不同的是载体中查找的对象是其中的某些比特,而且在选择上有更大的自由,它可以是已有的公开数字资源如图像、文本、音频等,也可以是传输双方商定的私有资源如伪随机序列等。载体的使用进一步增加了密文不确定性,也使得系统的安全强度变得更高。
“嵌入”位置Posk即Pi的待“嵌入”位置,可由公式求得Posk=Θ(Xk,N),Θ(·)将xk通过某种运算映射到区间
表示载体ζ中第Posk个比特。
控制函数T(Xk)决定第i个明文比特Pi的加密方式,TXk→{0,1},T(·)将xk通过某种运算映射到{0,1}上。控制函数降低混沌映射的迭代次数,缩短了密文,提高了系统加密/解密的速度,同时也提高了系统的安全性。定义τk=0OR1为控制标识,代表T(Xk)的值。令B表示控制函数T(Xk)的参数集合。
第i个明文Pi的加密/解密过程可描述如下。
Pi的加密过程使用控制函数T(Xk)加密第i个明文Pi。当T(Xk)=0时①如果Pi=bit[Posk],则置密文Ck为1,第i个明文加密完毕;②如果Pi≠bit[Posk],则置Ck为0,第i个明文加密完毕。如果T(Xk)=1①如果Pi=bit[Posk],则置Ck为1,第i个明文加密完毕;②如果Pi≠bit[Posk],则置Ck为0,混沌映射继续迭代寻找下一个Posk+1并根据T(Xk+1)继续加密Pi,直到第i个明文加密完毕为止。Pi和它对应的密文的形式可表述如下 其中,K表示密钥,E(·)表示加密函数,mi,ni≥0称为明文Pi的命中距离。定义式(1)中密文 中的前ni个0为1类0,而最后一个0为2类0,同理也定义式(1)中密文 中的前mi个0为1类0。
从式(1)中也可以看到,当b[Posk]=Pi时,也就相当于在载体的Posk位置上嵌入了明文Pi。但这不是真正的嵌入而是借用了信息隐藏中“嵌入”的概念。
Pi的解密过程使用控制函数T(Xk)解密第k个密文Ck。当T(Xk)=0时①如果Ck=1,则明文Pi=bit[Posk],第i个明文解密完毕;②如果Ck=0,则明文Pi=~bit[Posk],第i个明文解密完毕。如果T(Xk)=1①如果Ck=1,则明文Pi=bit[Posk],第i个明文解密完毕;②如果Ck=0,则混沌映射继续迭代寻找下一个Posk+1并根据T(Xk+1)和Ck+1继续解密Pi。~a表示对a取反,如~1=0。明文Pi和它的密文的形式如下。
Pi=D(CkCk+1ΛCk+li,K)=bit[Posk+li].T(Xk)=T(Xk+1)=ΛT(Xk+li-1)=1,T(Xk+li)=1ORT(Xk+li)=0,Ck=Ck+1=Λ=Ck+li-1=0,Ck+li=1~bit[Posk+li],T(Xk)=T(Xk+1)=Λ=T(Xk+li-1)=1,T(Xk+li)=0,Ck=Ck+1=Λ=Ck+li-1=Ck+li=0]]>(2)其中,D(·)表示解密函数。
加密/解密算法加密算法密钥K={X0,η,ζ,A,B}1)初始化,混沌映射г以初始条件x0为基础迭代 次,这里λmax表示混沌映射г中最大Lyapunov指数, 表示不小于x的最小整数,η称为预迭代次数;2)对第i个明文Pi,混沌映射г迭代1次,根据控制函数T(Xk),利用式(1)加密它。
3)重复执行第2)步,加密下一个明文Pi+1直到所有的明文都被加密。
解密算法密钥K={X0,η,ζ,A,B}1)初始化,混沌映射г以初始条件x0为基础迭代η次。
2)对第k个密文Ck,混沌映射г迭代1次,判断T(Xk),利用式(2)解密它。
3)重复执行第2)步解密下一个密文直到所有的密文都被解密。
本发明具有以下特点(1)密钥空间大CBCES中的密钥为K={X0,η,ζ,A,B},其中X0={x10,x20,Λ,xn0}是一个n维混沌映射的初始条件,假设xi0(i=1,2,Λ,n)都是L比特,η为m比特的二进制定点数,ζ的大小N比特;A的长度为s,且每一个元素都使用T比特定点数表示;B的长度为e,且每个元素都使用F比特的定点数表示。由于 ,则密钥空间就是 ,若n=2,L=32,m=10,λmax=3.15,N=1024,T=32,F=16,s=2,e=2,则密钥空间即为 一般说来,密钥空间越大则它抵抗穷举攻击的能力也就越强。
(2)密文对密钥非常敏感由于初始条件、预迭代次数,载体以及控制参量和控制函数都影响着Pi=bit[Posk]的判断和命中距离的大小,也就影响着密文。由于混沌系统对初始条件的敏感性,在初始条件改变很小的情况下,经过若干次的迭代后得到完全不同的轨迹,不同的轨迹对应着不同的“嵌入”位置Posk,同时bit[Posk]和控制标识τk也会改变并影响Pi=bit[Posk]的判断和命中距离的大小进而改变密文;而η和控制参量的不同也会改变“嵌入”位置从而改变密文;而由式(1)可知,控制函数的改变也会改变密文;同样,载体的改变影响着Pi=bit[Posk]的判断并改变密文,而由于载体选择的便利性,使得相同的明文在不同的载体下得到完全不同的密文。一个好的密码方案的两个重要特性是扩散和混淆,CBCES中密文对密钥的敏感性保证了这两点。
(3)安全强度高在惟密文攻击方式下,攻击者只能得到密文C,通过统计,可以获取密文中0的个数w;记密文C的长度为v,则明文P的长度u满足v-w≤u≤v的关系。由于攻击者不知道控制标识τk,所以不能确定这w个0中哪些属于1类0,哪些属于2类0;把密文C写为 形式,其中w=w1+w2+Λ+wl,wi≥0,i=1,2,Λl,则攻击者获得正确τk的概率是1/2w1+w2+Λ+wl=1/2w.]]>同样攻击者不知道bit[Posk],则他成功构造出bit[Posk]的概率是1/2v,所以攻击者从密文中正确恢复出明文的概率是1/2w+v。因此攻击者在惟密文攻击方式下获取正确明文的概率很小。而基于二值化查找表的密码方案中,密文中的0都属于1类0,明文的长度等于密文中1的个数,因此攻击者只需要构造出密文中每个1对应的bit[Posk]就可以解密出明文。由此可见,控制函数的引入增加了攻击者的破译难度,提高了加密系统的安全性。在选择明文攻击下,攻击者可以拥有足够多的明文/密文对,并可以选择特定的明文去加密,进而从密文中发现更多关于密钥的信息。同时攻击者也可以推导出一个算法,此算法可以解密出用同一密钥加密得到的任何新的密文。由于攻击者拥有足够多的明文/密文对,则就有可能重构出τk和bit[Posk],并有可能解密出使用相同密钥加密的其它新的密文。为了使选择明文攻击失效,此方案必须对密钥适时更新,和其他加密方案相比,此方案中的密钥更新非常方便,因为载体的选取是灵活、方便、取之不尽的,为此可以通过限制同一载体的重复使用次数达到更换密钥的目的。
(4)数字混沌系统的动力学特性退化对系统的安全性影响小当混沌系统在数字设备上实现时,由于精度有限不可避免地存在着动力学特性的退化,主要表现有不均匀的分布函数,轨道中存在短周期或不动点。因此在实际应用时必须对退化做补偿。目前工程上常用的补偿方法可分为三类提高精度,级联多个混沌系统,扰动系统变量或(和)控制参量;但是这些补偿方法的实际有效性尚不能在理论上定量的描述。所以补偿后的混沌系统也就有可能仍存在着动力学特性上的退化,这样得到的混沌轨道存在着短周期,短周期将导致“嵌入”位置的碰撞(重合)。另一方面,如果明文长度大于载体的长度,显然也会存在着两次“嵌入”位置碰撞的情况,其实这些情况都是允许的,它们不会对方案的安全性有什么太大的影响。这是因为攻击者不知道混沌系统的控制参量集合A就无法分析混沌系统的动力学特性进而无法确定短周期;而密钥的适时更新,特别是载体的适时更新,使得攻击者难以构造bit[Posk]和τk;由密文特性可知,攻击者从密文中难以判断其中的每个0到底属于1类0还是2类0,从而无法得到τk和bit[Posk],也就无法解密出明文。在实际应用中,只要这个轨道中的短周期长度大于载体长度就基本可以保证嵌入位置的均匀分布(由混沌系统轨道的遍历性保证),而这一点并不是很难做到,因为载体长度一般不会太大。当然轨道的周期长度越长系统的安全性越强。
加密解密实例为了证实CBCES的有效性和效率,选择了网上一幅公开的图片baboo并以其最低位平面作为载体(图2,3),加密/解密了一组文件,结果如表1。

表1.CBCES的加密/解密性能为了比较CBCES和基于查找表的加密方案之间的性能差异,我们构造了一个二值化的查找表L({0,1})并将其扩展为一个包含n个L的查找表集L(n),为了简化起见,仍使用图3中的载体作为表集L(n)。在相同条件下做了实验,结果如下。

表2.基于2值查找表集的加密方案的性能从表1,2的对比中可以发现,由于使用了控制函数,同样的条件下,CBCES可以得到较短的密文和较快的加密/解密速度。
上述加密/解密过程是在Fedora Core 4.0(Linux)操作系统和GCC4.0编译环境下编译通过,相关硬件配置为CPU Pentium IV2.4GHZ,RAM 512M。混沌映射选用文献“A novel fast imageencryption scheme based on 3D chaotic baker maps”[Y Mao,GChen,S Lian.International Journal of Bifurcation andChaos,2004,14(10)3613-3624]提出的三维Baker映射,它的一般形式如下B(x,y,z)=(1wi(x-Wi-1),1hj(y-Hj-1),aijz+Lij)---(3)]]>其中1,Λ,k,j=1,Λ,t,Wi=w1+w2+Λ+wi,W0=0,w1+w2+Λ+wk=1,Hj=h1+h2+Λ+hj,H0=0,h1+h2+Λ+ht=1,(x,y,z)∈[Wi-1,Wi)×[Hj-1,Hj)×
]> 说明在(4)中,仅用了分量z作为T(·)的变量,从三维Baker映射的方程(3)中可以看到变量z不仅和自己的初值z0有关,而且还受到变量x,y的共同影响;由命题2可以知道,q=P{τk=1}越大则密文可能就越长,混沌映射г的迭代次数也就可能越多,加密速度也就变慢。在(5)中x表示不大于x的最大整数,mod表示取模操作。
权利要求
1.一种基于载体的混沌加密方法,其特征在于,引入载体和控制函数,混沌映射被用于产生“嵌入位置”,加密过程中把明文视为比特流,每次加密一个比特,每个明文的加密方式由控制函数确定。
2.如权利要求1所述的混沌加密方法,其特征在于,载体为公开的数字化资源或者是传输双方商定的私有资源。
3.如权利要求1或2所述的混沌加密方法,其特征在于,明文Pi的加密过程为使用控制函数T(Xk)加密第i个明文Pi。当T(Xk)=0时①如果Pi=bit[Posk],则置密文Ck为1,第i个明文加密完毕;②如果Pi≠bit[Posk],则置Ck为0,第i个明文加密完毕。如果T(Xk)=1①如果Pi=bit[Posk],则置Ck为1,第i个明文加密完毕;②如果Pi≠bit[Posk],则置Ck为0,混沌映射继续迭代寻找下一个Posk+1并根据T(Xk+1)继续加密Pi,直到第i个明文加密完毕为止。
4.如权利要求1或2所述的混沌加密方法,其特征在于,Pi的解密过程为使用控制函数T(Xk)解密第k个密文Ck,当T(Xk)=0时①如果Ck=1,则明文Pi=bit[Posk],第i个明文解密完毕;②如果Ck=0,则明文Pi=~bit[Posk],第i个明文解密完毕。如果T(Xk)=1①如果Ck=1,则明文Pi=bit[Posk],第i个明文解密完毕;②如果Ck=0,则混沌映射继续迭代寻找下一个Posk+1并根据T(Xk+1)和Ck+1继续解密Pi。
全文摘要
本发明属于信息安全领域中的密码技术,它提出了一种基于载体的混沌密码方法(CBCES)。它借助了信息隐藏思想,使用载体来替换相关文献中的查找表;和后者相比,载体的选择更加灵活,可以是公开的数字化资源如图像,也可以是传输双方商定的私有资源等。混沌映射被用于产生“嵌入位置”,加密过程中把明文视为比特流,每次加密一个比特,每个明文的加密方式由控制函数确定。控制函数的引入使得该加密方案与其它基于搜索机制的加密方案相比,加密速度得到了提高,密文长度有所缩短,密文分布更均匀而系统的安全性也得到了增强。
文档编号H04L9/00GK101022331SQ200610017418
公开日2007年8月22日 申请日期2006年2月16日 优先权日2006年2月16日
发明者刘粉林, 张士杰, 刘镔 申请人:刘粉林, 张士杰, 刘镔
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1