[发明专利]基于Cat映射与超混沌Lorenz系统的数字图像加密方法无效
申请号: | 201310048834.5 | 申请日: | 2013-02-07 |
公开(公告)号: | CN103167213A | 公开(公告)日: | 2013-06-19 |
发明(设计)人: | 付冲;陈俊鑫 | 申请(专利权)人: | 东北大学 |
主分类号: | H04N1/32 | 分类号: | H04N1/32;H04L9/00 |
代理公司: | 沈阳东大专利代理有限公司 21109 | 代理人: | 梁焱 |
地址: | 110819 辽宁*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明一种基于Cat映射与超混沌Lorenz系统的数字图像加密方法,属于图像加密领域,本发明提出的图像加密系统,其密钥长度为247位,高于经典密码学算法DES(56位),AES(基础标准为128位)及IDEA(128位);本发明通过引入与明文相关的密钥流生成机制,使密钥流不仅与密钥相关,而且与明文相关;即使使用相同的扩散密钥,在加密不同的明文图像时,所生成的密钥流也是不同的;因此,加密系统的抗已知/选择明文攻击的能力得到了显著提高。 | ||
搜索关键词: | 基于 cat 映射 混沌 lorenz 系统 数字图像 加密 方法 | ||
【主权项】:
1.一种基于Cat映射与超混沌Lorenz系统的数字图像加密方法,其特征在于:包括以下步骤:步骤1:采用广义离散Cat映射对明文图像进行置乱处理,即改变图像中每一像素点的位置;步骤1-1:设待加密明文图像的大小为M×N;若M=N,即待加密图像为正方形图像,则执行步骤1-3;否则执行步骤1-2;步骤1-2:将非正方形图像按从上到下、从左到右的顺序,转换为边长为L s = ceil ( M × N ) - - - ( 1 ) ]]> 的正方形图像,其中,函数ceil(x)表示函数的返回值为距离x最近的大于或等于x的整数;转换后不足的像素点个数R如下:R = L s 2 - M × N - - - ( 2 ) ]]> 不足的像素点用取值范围为[0~255]的随机整数填充;所述的该随机整数采用Logistic混沌映射量化产生;解密时,将填充的像素点删除,即可恢复大小为M×N的明文图像;步骤1-3:采用广义离散Cat映射对图像进行置乱,消除相邻像素间的相关性;公式如下:x ' y ' = 1 p q pq + 1 x y mod L s - - - ( 3 ) ]]> 其中,x、y分别为变换前的横坐标、纵坐标,x′、y′分别为变换后新的横坐标、纵坐标,(p,q)∈[1,Ls]为控制置乱过程的系统参数,即由加密者设置的置乱密钥;用于解密的逆Cat映射的定义为x ' y ' = pq + 1 - p - q 1 x y mod L s - - - ( 4 ) ]]> 步骤1-4:返回执行步骤1-3执行2~3次后执行步骤2;步骤2:采用超混沌Lorenz系统对置乱后的图像进行扩散处理,改变图像中每一点的像素值;超混沌Lorenz系统公式如下:x · = a ( y - x ) y · = cx + y - xz - w z · = xy - bz w · = kyz - - - ( 5 ) ]]> 其中,a,b,c为系统参数,k为决定系统状态的控制参数,x,y,z,w为系统变量;![]()
分别表示x、y、z、w对时间t进行微分;步骤2-1:按照从左至右,从上至下的顺序将置乱图像的像素排为一个序列pp = { p 1 , ]]>p 2 , . . . , p L S × L S } ; ]]> 步骤2-2:设置扩散密钥(x0,y0,z0,w0),采用四阶龙格库塔法求解超混沌Lorenz方程;其中,x0,y0,z0,w0为超混沌Lorenz系统的系统变量初始值;公式如下:x n + 1 = x n ( h / 6 ) ( K 1 + 2 K 2 + 2 K 3 + K 4 ) y n + 1 = y n + ( h / 6 ) ( L 1 + 2 L 2 + 2 L 3 + L 4 ) z n + 1 = z n + ( h / 6 ) ( M 1 + 2 M 2 + 2 M 3 + M 4 ) w n + 1 = w n + ( h / 6 ) ( N 1 + 2 N 2 + 2 N 3 + N 4 ) - - - ( 6 ) ]]> 其中,K j = a ( y n - x n ) L j = cx n + y n - x n z n - w n M j = x n y n - bz n N j = ky n z n - - - ( 7 ) ]]> (j=1),K j = a [ ( y n + hL j - 1 / 2 ) - ( x n + hK j - 1 / 2 ) ] L j = c ( x n + hK j - 1 / 2 ) + ( y n + hL j - 1 / 2 ) - ( x n + hK j - 1 / 2 ) ( z n + hM j - 1 / 2 ) - ( w n + hN j - 1 / 2 ) M j = ( x n + hK j - 1 / 2 ) ( y n + hL j - 1 / 2 ) - b ( z n + hM j - 1 / 2 ) N j = k ( y n + hL j - 1 / 2 ) ( z n + hM j - 1 / 2 ) - - - ( 8 ) ]]> (j=2,3),K j = a [ ( y n + hL j - 1 ) - ( x n + hK j - 1 ) ] L j = c ( x n + hK j - 1 ) + ( y n + hL j - 1 ) - ( x n + hK j - 1 ) ( z n + hM j - 1 ) - ( w n + hN j - 1 ) M j = ( x n + hK j - 1 ) ( y n + hL j - 1 ) - b ( z n + hM j - 1 ) N j = k ( y n + hL j - 1 ) ( z n + hM j - 1 ) - - - ( 9 ) ]]> (j=4),其中,xn,yn,zn,wn表示第n次迭代的系统变量值,h为步长;基于以上方法代入公式(5)N0次,N0≥200,使系统充分进入混沌状态;步骤2-3:继续代入公式(5),利用公式(10)对超混沌Lorenz系统的4个系统变量的当前值φn进行量化,得到4个密钥流元素![]()
k φ n = mod [ round ( ( abs ( φ n ) - floor ( abs ( φ n ) ) ) × 10 14 ) , L ] , ( φ n ∈ { x n , y n , z n , w n } ) - - - ( 10 ) ]]> 其中,abs(x)函数为返回x的绝对值,round(x)函数为返回x的四舍五入值,floor(x)函数表示返回距离x最近的小于或等于x的整数;mod(x,y)表示返回x除以y的余数;L为图像的灰度级别;步骤2-4:采用集合Ω表示
所有的排列情况;由于
包含4个元素,因而其共有4!=24种排列情况;根据当前待加密的4个明文像素点的前一个点的明文值p',选取集合中的第X个排列情况,其中1≤X≤24;X由以下公式确定:X=p'%24+1 (11)其中,p'的初始值可设为一取值在[0,255]间的整型常量;步骤2-5:采用步骤2-4选取的密钥流元素
对4个明文像素实施加密;加密公式为:c 4 × ( n - 1 ) + 1 = k x n ' ⊕ { [ p 4 × ( n - 1 ) + 1 + k x n ' ] mod L } ⊕ c 4 × ( n - 1 ) c 4 × ( n - 1 ) + 2 = k y n ' ⊕ { [ p 4 × ( n - 1 ) + 2 + k y n ' ] mod L } ⊕ c 4 × ( n - 1 ) + 1 c 4 × ( n - 1 ) + 3 = k z n ' ⊕ { [ p 4 × ( n - 1 ) + 3 + k z n ' ] mod L } ⊕ c 4 × ( n - 1 ) + 2 c 4 × ( n - 1 ) + 4 = k w n ' ⊕ { [ p 4 × ( n - 1 ) + 4 + k w n ' ] mod L } ⊕ c 4 × ( n - 1 ) + 3 - - - ( 12 ) ]]> 其中,n=1,2,...表示对超混沌Lorenz系统的第n次迭代,p4×(n-1)+m,c4×(n1)+m分别为当前操作的4个明文像素值和输出的4个密文像素值,m=1,2,3,4;c4×(n-1)+m-1为当前操作的像素点对应的前一个已加密点的密文像素值,其初始值c0为一取值在[0,255]间的整型常量,
代表按位异或操作;若剩余待加密像素点不足4个,则只加密剩余的像素点即可;用于解密的反变换为p 4 × ( n - 1 ) + 1 = [ k x n ' ⊕ c 4 × ( n - 1 ) + 1 ⊕ c 4 × ( n - 1 ) + L - k x n ' ] mod L p 4 × ( n - 1 ) + 2 = [ k y n ' ⊕ c 4 × ( n - 1 ) + 2 ⊕ c 4 × ( n - 1 ) + 1 + L - k y n ' ] mod L p 4 × ( n - 1 ) + 2 = [ k y n ' ⊕ c 4 × ( n - 1 ) + 2 ⊕ c 4 × ( n - 1 ) + 1 + L - k y n ' ] mod L p 4 × ( n - 1 ) + 4 = [ k w n ' ⊕ c 4 × ( n - 1 ) + 4 ⊕ c 4 × ( n - 1 ) + 3 + L - k w n ' ] mod L - - - ( 13 ) ]]> 步骤2-6:返回执行步骤2-3,直到序列p中的所有像素点按照从左至右的顺序完全加密;步骤2-7:将加密完的密文像素序列
按照从左至右的顺序重新排为Ls×Ls的矩阵形式,从而得到密文图像;步骤3:根据加密强度要求,进行多轮加密,即反复执行步骤1~步骤2;所述加密强度是指抗统计攻击能力、抗已知明文攻击、抗选择明文攻击能力以及抗差分攻击能力。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东北大学,未经东北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310048834.5/,转载请声明来源钻瓜专利网。