基于超混沌系统的密钥动态选取的图像加密算法

文档序号:8905646阅读:499来源:国知局
基于超混沌系统的密钥动态选取的图像加密算法
【技术领域】
[0001] 本发明设及一种图像加密方法,特别是设及一种基于超混浊系统的密钥动态选取 的图像加密算法。
【背景技术】
[0002] 当今,伴随着智能设备、物联网、高清多媒体W及网络技术的飞速发展,我们生活 中的绝大多数信息,如文档、音频、视频,特别是图像信息的传输更是离不开网络的支持。网 络一方面给人们的生活带来了便捷,但另一方面,一些不法分子会利用网络来窃取信息,该 就给人们的信息安全带来很大隐患,所W信息在网络传输过程中的安全和保密问题也越来 越受到人们的关注和重视。通常来说图像信息都有相同的特点,它们都存在着数据量大、相 邻像素相关性强、冗余度高等特点。过去常用的加密方法,是W-维数据流为设计目标的, 像DES、3-DES、AES和RSA等,主要用于文本信息的加密,没有考虑到数字图像的特点,所W 加密的效果令人很不满意。混浊系统是一种非线性系统,能够表现出复杂的伪随机性,具有 非常好的混淆规则。它对初始条件和控制参数极其敏感,任何微小的初始偏差都会被指数 式放大,符合扩散规则。与此同时,它又可W通过非线性系统方程、参数和初始条件来确定。 正因为混浊系统具有随机性、确定性、遍历性和对初值的高度敏感性等特点,我们可W设计 出密钥空间大、加密流随机性强的加密算法,使它特别适合于图像的加密。目前,采用混浊 系统对图像进行加密已经成为了信息安全研究的一个热点,具有巨大的应用潜力。
[0003] 美国学者化i化ich于1998年提出了经典的图像加密模式,它包括两个阶段,置乱 阶段和扩散阶段。在置乱阶段,通常只是对图像中的每个像素位置做处理,通过改变每个像 素的位置来破坏图像中原有的空间有序性和局部相关性,使得图像达到杂乱无章、无法识 别并呈现一种类似噪声的目的。在扩散阶段,一般是对图像中的像素值做处理,通过混浊 系统产生的伪随机序列来对明文像素进行掩盖,W达到窃密者无法辨认的目的,从而实现 图像的加密。但是必须指出的是,该两个阶段必须是一个可逆的过程,既然能对图像进行加 密,那么也必定能够对图像进行解密。绝大多数图像加密算法都是依照先置乱后扩散该样 一个思路,最终达到了良好的加密效果。但是目前所采用的图像加密算法存在W下几个问 题;第一,在置乱阶段,绝大多数加密算法缺乏与明文的联系,虽然部分加密算法考虑了与 明文的联系,但是当其中某个像素发生改变时,其置乱的效果依旧不能扩散至整幅图像,置 乱的效果仅影响像素发生改变的后面像素,该样窃密者可W通过简单的比对就可W发现其 中的置乱规律,该使得图像的安全性存在巨大的漏洞;第二,数字图像都是由一个一个像素 组成的离散有限点集,在置乱变换多次后会回到原来的状态,因此只要窃密者知道了加密 的算法,就可W对其进行暴力解密,通过多次迭代,就会在有限步内得到明文图像;第=,无 论是在置乱阶段还是在扩散阶段,对于不同的图像,只要初始值和控制参数一样,加密用到 的密钥也就一样,其密钥不能根据明文像素的不同做到动态选取,并且在置乱和扩散阶段 都必须有对应的混浊系统产生密钥,该不但加大了系统的开销,而且降低了图像加密算法 的安全性;第四,W往一般都采用低维混浊系统对图像进行加密,低维混浊系统产生的混浊 序列只是经过简单的反复迭代形成的,安全性不够好,并且计算机的计算精度也可能导致 低维混浊系统的混浊序列周期性比较短,随机性也较差,该都对图像的破解提供了突破口。 专利申请号为201310412691. 1的中国专利公开了一种基于混浊序列和超混浊系统的彩色 图像加密方法,该方法在图像加密的置乱阶段使用一维混浊系统产生的混浊序列对图像像 素进行置乱,置乱过程缺乏与明文的联系,扩散阶段利用超混浊系统来产生扩散所用的密 钥,加大了系统的开销,增加了硬件的复杂性,其安全性有待提高。

【发明内容】

[0004] 为克服W上现有技术的不足,本发明要解决的技术问题是提供一种基于超混浊系 统的密钥动态选取的图像加密方法,使其针对不同的明文,其加密密钥也能做到动态选取, 并且与W往的置乱方法相比,其像素的置乱位置也会随明文像素的不同而发生改变,一些 已经存在的置乱方法虽然与明文也存在联系,但是当图像中某个像素发生改变时,其置乱 的效果依旧不能扩散至整幅图像,置乱的效果仅影响像素发生改变的后面像素,而本文通 过对图像的反向置乱和反向扩散操作,使得置乱的效果能够扩散至整幅图像,最终使得加 密的效果、安全性和抗攻击能力更强,并且更易于硬件实现。
[0005] 本发明的技术方案是:
[0006] 一种基于超混浊系统的密钥动态选取的图像加密算法,包括W下步骤:
[0007] 步骤1.输入图像大小为MXN的灰度图像,并将灰度图像像素按照从左到右,从上 到下的顺序排列成一维图像数组P;
[0008] 步骤2.利用超混浊系统生成混浊序列,对混浊序列进行分组,得到分组向量 A。iG[0, 5];
[0009] 步骤3.结合依赖明文的KSSG动态选取机制,根据变量indexl=T1 % 6,i=indexl,动态选取用于生成置乱密钥的Ai,T1为根据明文像素计算公式
T1=mod(floor(y〇Xl〇8),MXN)计算得到的 非负整数,其中表示原始图像数组P的第i个元素,max(ai)表示取数组P中的最大值,floor(X)表示小于或等于X的最大整数,mod(a, b)表示a对b的取模运算;并结合KS动态 选取机制,根据变量index2 =T2%化1,动态选取Ai中的元素Ai(index2,巧生成置乱密钥 Ki(j),其中,SG[1,MX闲,jG[1,MX闲,T2为根据明文像素得到的非负整数,Ai(index2, 巧表示Ai中第index2行向量的第S个元素,依据置乱密钥K1(j)对图像数组P进行正向 置乱加密,得到正向置乱加密图像数组P1 ;
[0010] 步骤4.利用依赖明文的KSSG动态选取机制读取图像数组P中第一个元素P(l), 即T1 =P(l),根据indexl=T1% 6,i=indexl,选取生成扩散密钥的Ai;结合KS动态选 取机制,根据变量index2 =T2%化1,生成扩散密钥K2(j),依据扩散密钥K2(j)对正向置 乱加密图像数组P1进行正向扩散加密,得到正向扩散加密图像数组P2 ;
[0011] 步骤5.利用依赖明文的KSSG动态选取机制,根据变量indexl=T1 % 6,i=indexl,动态选取用于生成置乱密钥的Ai,T1为根据明文像素依据公式 T1 =mod(floor(y〇'Xl〇8),MX脚计算得 到的非负整数,其中,a/表示正向扩散图像数组P2的第i个元素,max(a/ )表示取图像数 组P2中的最大值,floor(X)表示小于或等于X的最大整数,mod(a,b)表示a对b的取模运 算;并结合KS动态选取机制,根据变量index2 =T2%化1,生成反向置乱密钥KsU),依据 反向置乱密钥Ks(j)对正向扩散加密图像数组P2进行反向置乱加密,得到反向置乱加密图 像数组P3;
[0012] 步骤6.利用依赖明文的KSSG动态选取机制,读取正向扩散加密图像数组P2最后 一个元素P2 (MXN),T1 =P2 (MXN),依据indexl=T1 % 6,i=indexl,动态选取用于生 成反向扩散密钥的Ai;结合KS动态选取机制,根据变量index2 =T2% 2+1,选取Ai中的元 素生成扩散密钥K4(j),根据扩散密钥K4(j)对反向置乱加密图像数组P3进行反向扩散加 密,得到反向扩散加密图像数组P4,并将反向扩散加密图像数组P4重组为大小为MXN的数 组密文。
[0013] 上述的,所述步骤2中利用超混浊系统生成混浊序列对混浊序列进行分组包含如 下步骤:
[0014] 步骤2. 1采用陈氏超混浊系统,根据表达式
.将初始值和系统参 数带入超混浊系统中迭代m+MXN次,为了避免有害影响,舍去前m(m乂00)个值,得到X、Y、Z、W四个向量序列,其中,a、b、c、d和k是超混浊系统的控制参数,X= [X。X2,. . .,XmxJ、 Y= [y。72, . . .,yMXN]、Z= [Z。Z2, . . .,Zmxn]、W=[讯1,讯2, . ? .,Wmxn];
[00巧]步骤2. 2对向量序列X、Y、Z、W进行分组,得到分组向量Ai,iG[0,5],其中,
[0016] 上述的,所述步骤3中结合KS动态选取机制,动态选取Ai中的元素Ai(index2,S) 生成置乱密钥Ki(j),并对P进行正向置乱,还包含如下步骤:
[0017]步骤3.1初始化循环变量1〇、12、口1(0),1 = 0,^' = 1^2 = &,口1(0)=&;
[0018] 步骤3. 2利用KS动态选取机制生成置乱密钥Ki(j);
[0019]步骤3. 3对得到的置乱密钥Ki(j),根据修正公式
[0020] Ki(j) =mod (floor(abs化1(j)X1〇8)),MXN),进行修正;
[0021]步骤3. 4根据正向置乱公式,
进行置乱 操作,j表示原始明文图像数组的第j个位置,j'表示图像数组第j'个位置,Ki(j)表示用 于置乱的第j个密钥元素,P1(j)表示置乱图像数组P1第j个位置的元素,P1(j-1)表示置 乱图像数组第j-1个位置的元素,其中jG[1,MX闲,j'G[1,MX闲,exchange(a,b)表示 将a与b的值相互交换;
[0022] 步骤3. 5判断是否所有的元素已经完成置乱,如果没有完成,则i=i+1,j=j+1, 将PI(i)的值赋给T2,跳转到步骤3. 2执行,直到i〉MXN-l,结束循环,保存得到的正向置 乱加密图像数组P1。
[0023] 上述的,所述步骤4中结合KS动态选取机制,动态选取A冲的元素Ai(index2,S) 生成扩散密钥K2(j),并对P1进行正向扩散,还包含如下步骤:
[0024]步骤 4. 1 初始化循环变量i、j、T2、P2 (0),i= 0,j= 1,T2 = &,P2 (0) = &;
[00巧]步骤4.2利用KS动态选取机制生成扩散密钥馬(j);
[002引步骤4. 3根据修正公式K2(j) = mod(floor (油S 0(2(j) X 108)), 256),对得到的扩 散密钥K2(j)进行修正;
[0027]步骤4. 4根据正向扩散公式P2(j) =P2(j-1)货PlCi)货1<2〇'),进行扩散操作,其中, P2(j)表示进行扩散操作后的第j位置的像素值,P2 (j-1)表示第j-1个位置扩散的像素 值,P1U)表示P1的第j位置的像素值,K,U)表示用于扩散的第j个密钥;
[0028] 步骤4. 5判断是否所有的元素已经完成扩散,如果没有完成,则i=i+1,j=j+1, 将P2a)的值赋给T2,固龄到步骤4. 2执行,直到i〉MXN-l,结束循环,保存得到的正向扩 散加密图像数组P2。
[0029]上述的,所述步骤5中结合KS动态选取机制,动态选取A冲的元素Ai(index2,S) 生成反向置乱密钥K3(j),并对P2进行反向置乱,还包含如下步骤:
[0030]步骤5. 1 初始化循环变量i、j、T2、P3(MX化 1),i=MX化 1,j=MXN,T2 =Us, P3(MX化 1) =Ue;
[0031] 步骤5. 2利用KS动态选取机制生成反向置乱密钥K3(j);
[00础步骤5. 3根据修正公式K3(j) = mod(floor (油S 0(3(j) X 108)), MXN),对得到的反 向置乱密钥Ks(j)进行修正;
[0033] 步骤5. 4根据反向置乱公式
进行置乱操 作,得到反向置乱加密图像数组P3,其中,j表示正向扩散图像数组的第j位置,j'表示图 像数组第j'位置,Ks(j)表示用于置乱的第j个密钥元素,P3(j)表示P3的第j位置的元 素,P3(j+1)表示P3第j+1位置的元素,加上jG[1,MX闲,j'G[1,MX闲;
[0034] 步骤5. 5判断是否所有的元素已经完成置乱,如果没有完成,则i=i-1,j=j-1, 并将P3 (i)的值赋给T2,跳转到步骤5. 2执行,直到i< = 1时结束循环,保存得到
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1