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

xiaoxiao2020-10-23  10

基于超混沌系统的密钥动态选取的图像加密算法
【技术领域】
[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时结束循环,保存得到 反向置乱 加密图像数组P3。
[0035] 上述的,所述步骤6中结合KS动态选取机制,动态选取A冲的元素Ai(index2,S) 生成反向扩散密钥K4(j)并对P3进行反向扩散,还包含如下步骤:
[0036] 步骤6. 1 初始化循环变量i、j、T2、P3(MXN+l),i=MX化 1,j=MXN,T2 =U7, P4(MX化 1) =Us;
[0037] 步骤6. 2利用KS动态选取机制生成反向扩散密钥K4(j);
[00測步骤6. 3根据修正公式K4(j) =mod(floor(油s(K4(j)X108)), 256),对得到的反 向扩散密钥K4(j)进行修正;
[003引步骤6. 4根据反向扩散公式P4(j) =P4(j+1)货阳Ci)货、(j),进行扩散操作,其中, P4(j)表示扩散后的第j个像素,P4(j+1)表示扩散后的第j+1个像素,P3(j)表示反向置 乱数组P3的第j个像素,K4(j)表示用于扩散的第j个密钥;
[0040] 步骤6. 5判断是否所有的元素已经完成扩散,如果没有完成,则i=i-1,j=j-1, 将P4 (i)的值赋给T2,跳转到步骤6. 2执行,直到i< = 1结束循环,循环结束后,保存得到 的反向扩散加密图像数组P4。
[0041] 本发明的有益效果是:
[0042] (1)本发明通过采用一个超混浊系统,来产生加密算法(置乱和扩散)所需的密钥 流元素,克服了W往在置乱阶段和扩散阶段需要分别采用不同的混浊系统来产生密钥的弊 端,降低了硬件的复杂性,同时结合KSSG动态选取机制和KS动态选取机制,大大增加了密 钥的空间,使得密钥的选取更具随机性。最终使得该算法具有密钥数目多、密钥空间大、密 钥随机性更强和密钥敏感性更高的特点,能够有效地抵抗穷举攻击,提高了算法的安全性。
[0043] (2)本发明在置乱阶段对图像像素进行位置置乱时,置乱位置与明文像素紧密相 关,针对不同的图像,即使初始值和控制参数一样,其置乱的位置也不一样。该克服了W往 图像加密算法在置乱阶段置乱位置与明文像素关联甚小的弊端,进一步提高了算法的安全 性;
[0044] (3)本发明在扩散阶段所用到的密钥都依赖于明文,密钥能够根据明文图像像素 值的不同而做到动态选取,针对不同的明文图像,密钥也随之发生变化,从而做到"一文一 密",可W有效抵抗选择明文和选择密文攻击,更进一步提高了算法的安全性。
[0045] (4)本发明在经过一轮加密后,克服了W往置乱阶段置乱效果存在局限性的弊端, 一些已经存在的置乱方法虽然与明文也存在联系,但是当图像中的某一个元素发生改变 时,置乱的效果仅影响像素发生改变的后面像素,而不能将该种效果扩散至整幅图像,而本 文通过对图像的反向操作,使得置乱的效果能够扩散至整幅图像,极大的提高了算法的安 全性。
【附图说明】
[0046] 图1为本发明基于超混浊系统的密钥动态选取的图像加密算法的流程图;
[0047] 图2为本发明的KS动态选取机制示意图表;
[004引图3为本发明的置乱原理示意图表;
[0049] 图4为本发明的正向置乱流程示意图;
[0050] 图5为本发明的正向扩散流程示意图;
[0051] 图6为本发明的反向置乱流程示意图;
[0052] 图7为本发明的反向扩散流程示意图;
[005引图8中;(a)为实施例二所用原始图像,化)为加密后图像,k)为密钥正确时的解 密图像,(d)为参数密钥错误时的解密图像,(e)为图像密钥错误时的解密图像;
[0054] 图9中;(a)为实施例二所用原始图像,化)为加密图像,(C)为原始图像的直方 图,(d)为加密图像的直方图;
[0055] 图10中;(a)为实施例二所用原始图像水平方向上相邻像素的相关性分析图,化) 为加密图像水平方向上相邻像素的相关性分析图;
[0056] 图11中;(a)为实施例S所用原始图像,化)为加密后图像,(C)为密钥正确时的 解密图像,(d)为密钥错误时的解密图像,(e)为密钥错误时的解密图像;
[0057] 图12中;(a)为实施例立所用原始图像,化)为加密图像,(C)为原始图像的直方 图,(d)为加密图像的直方图;
[005引图13中;(a)为实施例S所用原始图像水平方向上相邻像素的相关性分析图,化) 为加密图像水平方向上相邻像素的相关性分析图。
【具体实施方式】
[0059] 依赖明文的KSSG动态选取机制;规定一个变量indexl,indexl=T1% 6,T1表示 根据明文像素计算得到的一个非负整整。如果indexl=Tl% 6的值为0,选取Aa;indexl =T1% 6的值为1,选取Ai;indexl=T1% 6的值为2,选取A2;indexl=T1% 6的值为3, 选取Ag;indexl=T1 % 6的值为4选取A4;indexl=T1 % 6的值为5,选取A5。
[0060]KS动态选取机制;规定一个变量index2,index2 =T2%化1。该里T2表示根据明 文像素计算得到的一个非负整整。如果index2 =T2% 2+1的值为1,选取AJ1,Si],index2 =T2% 2+1 的值为 2,选取Ai[2,S2],其中iG[0, 5],SiG[1,262144],S2G[1,262144]; Ai表示通过依赖明文的KSSG动态选取机制选取的向量组合;Ai[l,Sj表示Ai中第一行向 量的第Si个元素,Ai[2,S2]表示A冲第二行向量的第S2个元素。
[0061] 下面结合附图和技术方案对本发明作进一步详细的说明,并通过优选的实施例详 细说明本发明的实施方式,但本发明的实施方式并不限于此。
[0062] 实施例一,一种基于超混浊系统的密钥动态选取的图像加密算法,包括W下步 骤:
[0063] 步骤1.输入图像大小为MXN的灰度图像,并将灰度图像像素按照从左到右,从上 到下的顺序排列成一维图像数组P;
[0064] 步骤2.利用超混浊系统生成混浊序列,并对混浊序列进行分组,得到分组向量Ai, iG[0, 5];
[006引步骤3.结合依赖明文的KSSG动态选取机制,根据变量indexl=T1 % 6,i=indexl,动态选取用于生成置乱密钥的Ai,T1为根据明文像素计算公式
> ,T1 =mod(floor(y0Xl08),MXN)计算得到的 非负整数,其中,a,表示原始图像数组P的第i个元素,max(a1)表示取数组P中的最大值,floor(X)表示小于或等于X的最大整数,mod(a,b)表示a对b的取模运算;并结合KS动态 选取机制,根据变量index2 =T2%化1,动态选取Ai中的元素Ai(index2,巧生成置乱密钥 Ki(j),T2为根据明文像素得到的非负整数,Ai(index2,巧表示Ai中第index2行向量的第S个元素,依据置乱密钥Ki(j)对图像数组P进行正向置乱加密,得到正向置乱加密图像数 组P1 :
[0066] 步骤4.利用依赖明文的KSSG动态选取机制读取图像数组P中第一个元素P(l), 即T1 =P(l),根据indexl=T1% 6,i=indexl,选取生成扩散密钥的Ai;结合KS动态选 取机制,根据变量index2 =T2%化1,生成扩散密钥K2(j),依据扩散密钥K2(j)对正向置 乱加密图像数组P1进行正向扩散加密,得到正向扩散加密图像数组P2 ;
[0067] 步骤5.利用依赖明文的KSSG动态选取机制,根据变量indexl=T1% 6,i= indexl,动态选取用于生成置乱密钥的Ai,T1为根据明文像素依据公式
[0068]
T1 =mod(floor(y。' Xl〇s),MXN)计算得到的非负整数,其中,a/表示正向扩散图像数组P2的第i个元素,max(a/ )表示取图像数组P2中的最大值,floor(X)表示小于或等于X 的最大整数,mod (a, b)表示a对b的取模运算;并结合KS动态选取机制,根据变量index2 =T2%化1,生成反向置乱密钥K3(j),依据反向置乱密钥K3(j)对正向扩散加密图像数组 P2进行反向置乱加密,得到反向置乱加密图像数组P3 ;
[0069] 步骤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的数组 密文。
[0070] 实施例二;结合具体的图像对本发明技术方案做进一步的介绍,参见图1所示,本 实施例中采用的编程软件为Matl油R2014a,选取附图8中的(a)所示的大小为512X512 的lena灰度图像为实验对象,对lena灰度图像加密的过程如下;
[OCm] 1.输入原始大小为512X512的lena灰度图像,用1。=i皿ead('lena.bmp')读 取图像信息。然后将图像I。按照从左到右、从上到下的顺序排列成一维图像数组,记为P。 [0072] 2.本文采用陈氏超混浊系统来产生用于加密的密钥,其方程表达式如下:
[007引

[0074]该里a、b、C、d和k是超混浊系统的控制参数,当a= 36、b= 3、C= 28、d= -16 并且当k处于区间[-0. 7, 0. 7]时,系统处于超混浊状态。
[007引3.选取初始值又。=l、y0= 2、2。= 3和讯。=4,选择系统参数k= 0. 5,迭代入陈 氏超混浊系统生成四组长度为[1000+512X512] (m乂00)的实值混浊序列,抛弃前m= 1000 个值,从而得到X、Y、Z、W四个向量序列,其中,a、b、c、d和k是超混浊系统的控制参数,X =[X。X2, . . .,Xmxn]、Y= [y。72, . ? .,yMXN]、Z= [Z。Z2, . . .,Zmxn]、W= [W。讯2, . ? .,Wmxn]。 然后将得到的四组混浊序列向量X、Y、Z、和W进行分组。
[0076]记
将a、b、c、d、 X。、y。、Z。、W。、k、m作为密钥。
[0077] 4.根据依赖明文的KSSG动态选取机制选取步骤3中的Ai。
[0078] 依赖明文的KSSG动态选取机制;
[0079] 规定一个变量indexl,indexl=T1% 6,T1表示根据明文像素计算得到的一个非 负整整。如果indexl=T1 %6的值为0,选取Ag;indexl=T1 %6的值为1,选取Ai;indexl =Tl%6的值为2,选取A2;indexl=Tl%6的值为3,选取A3;indexl=Tl%6的值为4 选取A4;indexl=T1 %6的值为5,选取A5。
[0080] 正向置乱阶段Tl的值由下式计算得到:
[0081]
(2)
[0082] T1 = mod (floor (y〇Xl〇8), 512X512) (3)
[008引其中公式似中a康示原始图像数组P的第i个元素,max(ai)表示取数组P中 的最大值,floor(X)表示小于或等于X的最大整数,mod(a,b)表示a对b的取模运算; [0084] 5.根据KS动态选取机制,选取用于正向置乱加密的密钥流元素。
[00财KS动态选取机制;
[0086] 规定一个变量index2,index2=T2%化1。该里T2表示根据明文像素计算得到 的一个非负整数。如果111(16义2 = 12%2+1的值为1,选取41(1,51),111(16义2 = 12%2+1的 值为 2,选取Ai(2,S2),其中iG[0,5],SiG[1,262144],SaG[1,262144]。A康示通过 依赖明文的KSSG动态选取机制选取的向量组合。Ai(l,Si)表示Ai中第一行向量的第Si个 元素,A^2,S2)表示A冲第二行向量的第S2个元素。< br>[0087] 列举案例具体说明如何利用KS动态选取机制来选取密钥流元素。假设通过KSSG 动态选取机制选取A。
那么Au(l,Si)就相当于A。中第一行向量X的第Si个元素, 八。(1,Si)就相当于A。中第二行向量Y的第S2个元素。
[0088] 参考附图中的图2所示,图中第一行Ti,T2,.. .,T2e2i44分别表示对明文数组P进行 第一次,第二次,...,第262144次置乱后的元素。当进行第i次置乱时,T2会获得其前一 次置乱的元素值。第二行就表示每次循环时T2得到的值,T。表示事先给定的初始值。第= 行和第四行表示的是A。中的两个行向量。第五行的index2表示KS动态选取机制中的变 量,根据index2的值可W决定是从X中还是从Y中选取密钥元素。最后一行表示最终选取 的密钥流元素。
[0089]6.参见图4,对原始图像数组P进行正向置乱,得到正向置乱图像数组P1的步骤 如下:
[0090] 此时Ui= 15,U2= 21。流程图中i= 0、j= 1表示的是对循环变量设定初始值, T2 =Ui表示对KS动态选取机制中的变量T2设定的初始值,P1 (0) =U2表示在下面要设 及的置乱公式中设定的初始值,Ki(j)表示通过依赖明文的KS动态选取机制生成的第j个 密钥,P1 (j)表示置乱后的第j个像素,P1表示全部像素置乱完成后的一维置乱数组,其中 iG[0,262143],jG[0,262144]。
[0091] 详细步骤如下:
[009引第一步对相应的变量做初始化设置,令i= 0、j=1、T2=Ui、P1(0) =&。 [009引第二步:利用KS动态选取机制生成密钥Ki(j)。其中,index2=T2%化1,T2的 值在每次循环的时候会更新。
[0094] 第S步:对得到的密钥进行修正,其修正公式如下:
[0095]Ki(j) =mod(floor(abs〇(i(j)Xl〇8)),262144) (4)
[0096] 该里floor(X)表示小于或等于X的最大整数,mod(a,b)表示a对b的取模运算, 油S(a)表示对a取绝对值。
[0097] 第四步:根据下面的正向置乱公式进行置乱操作,并将得到的P1U)保存下来。
[0098]
(5)
[009引该里j表示图像的第j位置,j'表示图像的第j'位置,KiCi)表示用于置乱的第j个密钥元素,P1 (j)表示置乱图像P1的第j位置的元素,P1 (j-1)表示置乱图像P1的第 j-1 个位置的元素,其中jG[1,262144],j'G[1,262144]。exchange(a,b)表示将a与 b的值相互交换,mod(a,b)表示a对b的取模运算。特别的是,该里PI(0)为事先给定一个 初始值,记Pl(〇) = &。
[0100] 其置乱原理可参考附图中的图表3 :
[01(n] 该里n= 512X512,P(fi)表示原始图像数组P第一个位置的像素与第个位置 的像素交换后的像素值,其中fiG[2,n] ;P(f2)表示图像数组P第二个位置的像素与第f, 个位置的像素交换后的像素值,其中fsE巧,n],此时的图像数组P是在第一次像素交换的 基础上得来的;P(f3)表示数组图像P第=个位置的像素与第fs个位置的像素交换后的像 素值,其中fsG[4,n],此时的图像数组P是在第二次像素交换的基础上得来的;也就是说 对于任意的P(fm),mG[1,262144],表示图像数组P第m个位置的像素与第fm个位置的像 素交换后的像素值,其中fmG虹+1,n],此时的图像数组P是在第m-1次像素交换的基础上 得来的;当然该里fm具体是多少,还要根据置乱公式中的j'来决定,fm=j'。从置乱公式 和上表中我们可W看出,在fm位置的元素一旦被交换到第m位置,那么在m位置处的像素 值就被固定了下来,而被交换到第fm个位置的像素在W后的交换中还可W变换位置。
[0102] 第五步;判断是否所有的元素已经完成置乱,如果没有完成,i=i+1,j=j+1,然 后将Pl(i)的值赋给T2,跳转到第二步接着执行,直到i〉262143结束循环,最后将得到的置 乱数组P1保存下来。
[0103] 7.根据依赖明文的KSSG动态选取机制选取步骤(3)中的Ai。
[0104]indexl=Tl% 6,此时的T1是从原始图像数组第一个元素P(l)中获得的,即T1 =P(l),P(l)的值为159,最后根据indexl的值选取Ai。P(l)为本文加密算法的一个密 钥。
[0105] 8.参见图5对正向置乱图像数组P1进行正向扩散,得到正向扩散图像数组P2的 步骤如下:
[0106] 此时化二16,U4= 98。流程图中i= 0、j= 1表示的是对循环变量设定初始值, T2 = &表示对KS动态选取机制中的变量T2设定的初始值,P2 (0) =U4表示在下面的扩 散公式中设定的初始值,K2(j)表示通过KS动态选取机制生成的第j个密钥,P2(j)表示扩 散后的第j个像素,P2表示全部像素扩散完成后的一维扩散数组,其中iG[0, 262143], jG[1,262144]。
[0107] 详细步骤如下:
[010引第一步;对相应的变量做初始化设置,令i= 0、j= 1、T2 = &、P2 (0) = &。
[0109] 第二步:利用KS动态选取机制生成密钥馬〇)。其中,index2 =T2%化1,T2的 值在每次循环的时候会更新。
[0110] 第S步:对得到的密钥进行修正,其修正公式如下:
[0111] K2(j)=mod(floor(油s(K2(j)X108)),256) (6)
[0112] 该里floor(X)表示小于或等于X的最大整数,mod(a,b)表示a对b的取模运算, 油S(a)表示对a取绝对值。
[0113]第四步:根据下面的正向扩散公式进行扩散操作,并将得到的P2(j)保存下来。
[0114] P2(j) = P2(j-1)货 P1识货 0') 巧
[0115] 该里P2(j)表示扩散后的第j个像素,P2(j-1)表示扩散后的第j-1个像素,Pl(j) 表示置乱数组P1的第j个像素,K2(j)表示用于扩散的第j个密钥。
[0116] 第五步;判断是否所有的元素已经完成扩散,如果没有完成,i=i+1,j=j+1,然 后将P2 (i)的值赋给T2,跳转到第二步接着执行,直到i〉262143结束循环,最后将得到的扩 散数组P2保存下来。
[0117] 上面完成了图像的正向置乱加密和正向扩散加密,为了能够使图像的加密效果更 好,下面我们再从反方向对图像进行反向置乱加密和反向扩散加密。反向置乱加密和反向 扩散加密的原理和步骤与正向置乱加密和正向扩散加密的原理和步骤是一样的,只是其中 的部分参数和初始值会发生相应的变化,接下来将对变化的部分作出详细的说明。
[0118] 9.根据依赖明文的KSSG动态选取机制选取步骤(3)中的Ai。
[0119]indexl=T1% 6,此时T1值的选取由下式求得;
[0120]
(8)
[012"T1 =mod(floor(y0'Xl08), 262144) 巧)
[012引其中公式做中a/表示正向扩散图像数组P2的第i个元素,max(a/)表示取图 像数组P2中的最大值。Floor(X)表示小于或等于X的最大整数,mod(a,b)表示a对b的 取模运算。
[0123] 10.参见图6,对正向扩散图像数组P2进行反向置乱,得到反向置乱图像数组P3 的步骤如下:
[0124] 此时Us= 103,Ue= 62,MXN= 262144。流程图中i=MX化1 = 262145,j= MXN= 262144,表示的是对循环变量设定初始值,T2 =咕表示对KS动态选取机制中的变 量T2设定的初始值,P3(MX化1) =Ue表示在下面要设及的置乱公式中设定的初始值,K3(j) 表示通过KS动态选取机制生成的第j个密钥,P3 (j)表示置乱后的第j个像素,P3表示对 数组P2全部像素置乱完成后的一维置乱数组。
[0125] 详细步骤如下:
[012引第一步对相应的变量做初始化设置,令i=262145、T2=Us、P3(26214W=Ue。[0127] 第二步:利用KS动态选取机制生成密钥K3U)。其中,index2=T2%化1,T2的 值在每次循环的时候会更新。
[012引第S步:对得到的密钥进行修正,其修正公式如下:
[0129] KsU) =mod(floor(abs〇(3〇.)Xl〇8)),512X512) (10)
[0130] floor(X)表示小于或等于X的最大整数,mod (a, b)表示a对b的取模运算,油s (a) 表示对a取绝对值。
[0131] 第四步:根据下面的反向置乱公式进行置乱操作,并将得到的P3(j)保存下来。
[0132]
(11)
[0133] 该里j表示图像数组的第j个位置,j'表示图像数组第j'个位置,K3(j)表示用 于置乱的第j个密钥元素,P3(j)表示置乱图像P3的第j个位置的元素,P3(j+1)表示置乱 图像P3 的第j+1 个位置的元素,其中jG[1,262144],j'G[1,262144]。exchange(a,b) 表示将a与b的值相互交换,mod(a,b)表示a对b的取模运算。P3 (262145)为事先给定一 个初始值,记P3 (262145) =Ue。其置乱原理可参考正向置乱时的原理图。
[0134] 第五步;判断是否所有的元素已经完成置乱,如果没有完成,i=i-1,j=j-1,然 后将P3 (i)的值赋给T2,跳转到第二步接着执行,直到i< = 1时结束循环,最后将得到的置 乱数组P3保存下来。
[0135] 11.根据依赖明文的KSSG动态选取机制选取步骤(3)中的Ai。
[0136] indexl=T1% 6,此时的T1是从正向扩散图像数组最后一个元素P2(262144) 中获得的,即T1 =P2(262144),P2(262144)的值为246,最后根据index2的值选取Ai。 P2 (262144)为本文加密算法的一个密钥。
[0137] 12.参见图7对反向置乱图像数组P3进行反向扩散加密,得到反向扩散图像数组 P4步骤如下;
[013引 此时U7= 69,Us= 47,MXN= 262144,流程图中i=MX化1 = 262145,j=MXN =262144表示的是对循环变量设定初始值,T2 =U7表示对KS动态选取机制中的变量T2 设定的初始值,P4(262145) =Us表示在下面要设及的置乱公式中设定的初始值,K4(j)表 示通过KS动态选取机制生成的第j个密钥,P4 (j)表示扩散后的第j个像素,P4表示对数 组P3全部像素扩散完成后的一维扩散数组。
[0139] 详细步骤如下:
[0140] 第一步;对相应的变量做初始化设置,令i= 262145、j= 262144、T2 =U7、 P2 (262145) =Us。
[01川第二步:利用KS动态选取机制生成密钥KaU)。其中,index2 =T2%化1,T2的 值在每次循环的时候会更新。
[0142] 第S步:对得到的密钥进行修正,其修正公式如下:
[014引 K4(j)=mod(floor(油s(K4(j)X108)),256) (12)
[0144] 该里floor(X)表示小于或等于X的最大整数,mod(a,b)表示a对b的取模运算, 油S(a)表示对a取绝对值。
[0145] 第四步:根据下面的反向扩散公式进行扩散操作,并将得到的P4(j)保存下来。
[0146] P4〇')=P4(j+1)货P3(j)货 (j) (13)
[0147] 该里P4(j)表示扩散后的第j个像素,P4(j+1)表示扩散后的第j+1个像素,P3(j) 表示反向置乱数组P3的第j个像素,K4(j)表示用于扩散的第j个密钥。
[0148] 第五步;判断是否所有的元素已经完成扩散,如 果没有完成,i=i-1,j=j-1,然 后将P4 (i)的值赋给T2,跳转到第二步接着执行,直到i< = 1结束循环,最后将得到的扩散 数组P4保存下来。
[0149] 13.最后将反向扩散加密图像数组P4重组为大小为MXN的数组,得到密文。
[0150] 一个好的加密算法应该能够抵抗各种攻击,密钥空间足够大,密钥的敏感性足够 高,下面对本发明的图像加密算法进行安全性分析:
[0151] 1.密钥空间足够大,足W抵抗穷举攻击
[0152] 混浊系统对初始条件和控制参数极其的敏感,任何微小的初始偏差都会被指数式 放大,因此混浊加密算法的安全性与密钥空间有很大关系。一般来说,密钥空间越大,其抵 抗穷举攻击的能力也就越强。本文密钥具体包括;1)超混浊系统的初始值X。、y。、Z。、W。及 系统参数a、b、c、tk。2)舍弃的超混浊序列个数m。3)在正向扩散和反向扩散阶段用于 确定T1值的P(1)、P2(262144)。4)用于正向置乱和反向置乱公式中的初始值&和Ue。5) 用于正向置乱密钥选取和反向置乱密钥选取中的初始值Ui和Ug。6)用于正向扩散公式和 反向扩散公式中的初始值&和U,。7)用于正向扩散密钥选取和反向扩散密钥选取中的初 始值&和U7。若设置精度为1〇44,则密钥空间超过1〇126,可见密钥空间足够大,能够有效的 抵御穷举攻击。
[0153] 2.密钥敏感性高
[0154] 密钥的敏感性就是对密钥进行轻微的改变后,其密文也会发生显著的变化。混浊 加密的安全性,在于它对初始值的敏感性,也就是说,当攻击者用一个跟初始值很相近的数 据进行图像破解时,也不能恢复出原始的图像。
[0155] 附图8中(a)表示的是原始图像,图8中化)表示的是最终的加密图像,图8中 (C)是正确解密后的图像。图8中(d)、8中(e)为初始值敏感性实验,其中初始值Xu= 1, y〇二 2,z〇二 3,w〇二 4,Ui二 15,U2二 21,U3二 16,U4二 98,Us二 103,U6二 62,U7二 69,U8 二 47,P(l)二 159,P(262144)二 246 及系统参数a二 36,b二 3,C二 28,d二-16,k二 0? 5。 图8中(d)是当其余初始值不变,令系统参数k= 0. 50000000001时的解密图像。图8中 (e)是当其余初始值不变,令初始值7。= 2. 00000000001时的解密图像。由此可见,此加密 算法对密钥的敏感性极高,加密安全性也更好。
[0156] 3.密文图像的灰度直方图平滑且均匀,抗统计分析攻击能力强。
[0157] 直方图描述了数字图像中所有灰度级的像素出现的频率。一个好的图像加密算法 在对图像进行加密后,得到的密文图像的灰度直方图应该是平滑且均匀的,该样可W防止 窃密者通过直方图的漏洞来破解图像。附图9中(a)表示原始图像;9中(C)表示原始图 像的直方图;9中化)表示加密图像;9中(d)表示加密图像的直方图。从图中可W看出,加 密前图像的像素值分布极不均匀,而加密后的像素值平滑且均匀的分布在[0,255]中,能 够有效抵御统计分析的攻击。
[015引4.原始图像相邻像素高度相关,加密后图像相邻像素相关系数接近于0,基本不 相关。
[0159] 为了分析明文图像和密文图像相邻像素的相关性,引入相邻像素的相关系数。相 关系数越大,说明相邻像素的相关性越大;反之,相邻像素的相关性越小。从图像中选取 20000对水平方向相邻像素对,20000对垂直方向相邻像素对和20000对对角方向相邻像素 对,用如下公式定量计算相邻像素的相关系数:
[0160]
[ow]式中,X、y分别表示图像中相邻两个像素的像素值,D(x)表示像素值的均方差,E(x)表示像素值的平均值,cov(x,y)表示相关函数,R"表示相邻两个像素的相关系数。 [016引其中点(X,y)处测试结果如附图10所示。图10(a)为原始图像水平方向上相邻 像素的相关性分析图,10(b)为加密图像水平方向上相邻像素的相关性分析图。
[0163] 明文、密文相关性对比见下表;
[0164]
[0165] 可W看出明文图像相邻像素是高度相关的,相关系数接近1。而加密图像的相邻相 关系数接近于0,相邻像素间相关性明显减小,此时明文的统计特性已被扩散到随机的密文 中,可W有效抵御统计攻击。
[0166] 5.NPCR大于99%,UACI大于33%,抗差分攻击能力强。
[0167] 算法对明文的敏感性越强,抵抗差分攻击的能力也就越强,可W用像素数改变 率NPCR(NumberofPixelsChangeRate)和归一化像素值平均改变强度UACI化nified Average化angingIntensity)度量加密算法对明文的敏感性。计算公式如下;
[0170] 式中,M和N表示图像的行数和列数,Cl表示原来的密文图像,C2表示改变明文后 得到的密文图像,Ci(i,j)表示明文图像在坐标(i,j)处的像素值,C2(i,j)表示密文图像 在坐标(i,j)处的像素值。D表示和密文图像大小一样的矩阵,D(i,j)的值由Ci(i,j)和 C2(i,j)决定。若Ci(i,j) =C2(i,j),那么D(i,j) =0;若Ci(i,j)声C2(i,j),那么D(i,j) =1。
[0171] 本发明中,将原始明文图像的第十个像素值改为200后得到一个新的明文图像, 然后将该两个图像用同样的密钥加密形成相应的密文图像Cl和C2。计算密文图像的NPCR 和UACI值如下表所示,可W看到NPCR的值大于99%,UACI的值大于33%。该表明,即使 对原始图像做微小的变化,通过本算法进行加密后,密文图像也会有明显的差异。因此,本 算法可W有效抵抗差分攻击。
[0172] 密文图像的NPCR和UACI值;
[0173]
[0174] 6.密文图像的信息滴非常接近理想值8,加密算法安全性好。
[01巧]信息滴是反映信息随机性的重要度量指标,信息源m的信息滴计算公式如下:
[0176]
[0177] 其中,p(mi)表示符号叫出现的概率,2"是信息源m的总状态数。信息加密之后, 信息滴的期望值为8。如果加密图像信息滴非常接近8,则表明该密文图像接近随机分布。
[0178] 对标准512X5121ena图像用本发明算法进行加密,得到密文图像的信息滴为 7. 9991,非常接近理想值8,该表明本发明提供的加密算法具有很好的安全性。
[0179] 实施例S;在本实施例中,采用的编程软件为Matl油R2014a,选取附图11中(a) 所示的大小为256X205的boats灰度图像为实验对象,对该图像加密的过程如下:
[0180] (1)输入原始大小为256X205的boats灰度图像,用1。=i皿ead('boats.bmp') 读取图像信息。然后将图像I。按照从左到右、从上到下的顺序排列成一维图像数组,记为 P。
[0181] (2)利用超混浊系统生成混浊序列,然后对混浊序列进行分组。
[0182] (3)结合依赖明文的KSSG动态选取机制和KS动态选取机制生成置乱密钥,对原始 明文图像数组p进行正向置乱加密,得到图像数组,记为PI。
[0183] (4)结合依赖明文的KSSG动态选取机制和KS动态选取机制生成扩散密钥,对图像 数组P1进行正向扩散加密,得到图像数组,记为P2。
[0184] (5)结合依赖明文的KSSG动态选取机制和KS动态选取机制生成置乱密钥,对图像 数组P2进行反向置乱加密,得到图像数组,记为P3。
[0185] (6)结合依赖明文的KSSG动态选取机制和KS动态选取机制选取扩散密钥,对图像 数组P3进行反向扩散加密,得到图像数组,记为P4。将P4重组为大小为MXN的数组,即为 密文
[0186] 具体步骤可参考实施例二,下面对本发明的图像加密算法进行安全性分析:
[0187] 1.密钥空间大,足W抵抗穷举攻击
[018引密钥与实施例1的密钥相同。具体包括;1)超混浊系统的初始值X。、y。、Z。、W。及 系统参数a、b、c、tk。2)舍弃的超混浊序列个数m。3)在正向扩散和反向扩散阶段用于 确定T1值的P(1)、P2巧2480)。4)用于正向置乱和反向置乱公式中的初始值&和Ue。5) 用于正向置乱密钥选取和反向置乱密钥选取中的初始值Ui和Ug。6)用于正向扩散公式和 反向扩散公式中的初始值&和Us。7)用于正向扩散密钥选取和反向扩散密钥选取中的初 始值&和U7。若设置精度为1044,密钥空间超过10126,可见密钥空间足够大,能够做到有效 的抵御各种攻击。
[0189] 2.密钥敏感性高
[0190] 密钥的敏感性就是对密钥进行轻微的改变后,其密文也会发生显著的变化。混浊 加密的安全性,在于它对初始值的敏感性,也就是说,当攻击者用一个跟初始值很相近的数 据进行图像破解时,也不能恢复出原始的图像。
[01W] 附图11中(a)表示的是原始图像,图11中(b)表示的是最终的加密图像,图11 中(C)是正确解密后的图像。图11中(d)、图11中(e)为初始值敏感性实验,其中初始值 又〇二1,7〇二2,乙〇二3,师〇二4,1]1二15,1]2二21,1]3二16,1]4二98,1]日二103,1]目二62,1]7 二 69,Ug二 47,P(1)二 15,P巧2480)二 13 及系统参数a二 36,b二 3,C二 28,d二-16,k=0. 5。图11 (d)是当其它初始值不变,令系统参数k= 0. 50000000001时的解密图像。图 11中(e)是当其它初始值不变,令初始值7。= 2.00000000001时的解密图像。由此可见, 此加密算法对密钥的敏感性极高,加密安全性也更好。
[0192] 3.密文图像的灰度直方图平滑且均匀,抗统计分析攻击能力强。
[0193] 直方图描述了数字图像中所有灰度级的像素出现的频率。一个好的图像加密算法 在对图像进行加密后,得到的密文图像的灰度直方图应该是平滑且均匀的,该样可W防止 窃密者通过直方图的漏洞来破解图像。附图12中(a)表示原始图像,图12中(C)表示原 始图像的直方图,图12中化)表示加密图像,图12中(d)表示加密图像的直方图。从图中 可W看出,加密前图像的像素值分布极不均匀,而加密后的像素值平滑且均匀的分布在[0, 25引中,能够有效抵御统计分析的攻击。
[0194] 4.原始图像相邻像素高度相关,加密后图像相邻像素相关系数接近于0,基本不 相关。
[0195] 为了分析明文图像和密文图像相邻像素的相关性,引入相邻像素的相关系数。相 关系数越大,说明相邻像素的相关性越大;反之,相邻像素的相关性越小。从图像中选取 20000对水平方向相邻像素对,20000对垂直方向相邻像素对和20000对对角方向相邻像素 对,用如下公式定量计算相邻像素的相关系数:
[0196]
[0197] 式中,X、y分别表示图像中相邻两个像素的像素值,D(x)表示像素值的均方差, E(x)表示像素值的平均值,cov(x,y)表示相关函数,R"表示相邻两个像素的相关系数。 [019引其中点(X,y)处测试结果如附图13所示。图13中(a)为原始图像水平方向上相 邻像素的相关性分析图,图13中化)为加密图像水平方向上相邻像素的相关性分析图。
[0199] 明文、密文相关性对比见下表:
[0200]
[0201] 可W看出明文图像相邻像素是高度相关的,相关系数接近1。而加密图像的相邻相 关系数接近于0,相邻像素间相关性明显减小,此时明文的统计特性已被扩散到随机的密文 中,可W有效抵御统计攻击。
[020引 5.NPCR大于99%,UACI大于33%,抗差分攻击能力强。
[0203] 算法对明文的敏感性越强,抵抗差分攻击的能力也就越强,可W用像素数改变 率NPCR(NumberofPixelsChangeRate)和归一化像素值平均改变强度UACI化nified Average化angingIntensity)度量加密算法对明文的敏感性。计算公式如下;
[020引式中,M 和N表示图像的行数和列数,Cl表示原来的密文图像,C2表示改变明文后 得到的密文图像,Ci(i,j)表示明文图像在坐标(i,j)处的像素值,C2(i,j)表示密文图像 在坐标(i,j)处的像素值。D表示和密文图像大小一样的矩阵,D(i,j)的值由Ci(i,j)和 C2(i,j)决定。若Ci(i,j) =C2(i,j),那么D(i,j) =0;若Ci(i,j)声C2(i,j),那么D(i,j) 二 1。
[0207] 本发明中,将原始明文图像的第十个像素值改为200后得到一个新的明文图像, 然后将该两个图像用同样的密钥加密形成相应的密文图像Cl和C2。计算密文图像的NPCR和UACI值如下表所示,可W看到NPCR的值大于99%,UACI的值大于33%。该表明,即使 对原始图像做微小的变化,通过本算法进行加密后,密文图像也会有明显的差异。因此,本 算法可W有效抵抗差分攻击。
[0208] 密文图像的NPCR和UACI值;
[0209]
[0210] 6.密文图像的信息滴非常接近理想值8,加密算法安全性好。
[0211] 信息滴是反映信息随机性的重要度量指标,信息源m的信息滴计算公式如下:
[0212]
[021引其中,p(mi)表示符号叫出现的概率,2"是信息源m的总状态数。信息加密之后, 信息滴的期望值为8。如果加密图像信息滴非常接近8,则表明该密文图像接近随机分布。
[0214] 对标准256X20化oats图像用本发明算法进行加密,得到密文图像的信息滴为 7. 9963,非常接近理想值8,该表明本发明提供的加密算法具有很好的安全性。
[0215] 由上述实施例可知,本发明提供的加密算法可对M=N或M声N的灰度图像进行 高安全的加密,在信息加密领域具有广阔的应用前景。
[0216] 上面结合附图对本发明优选的【具体实施方式】和实施例作了详细说明,但是本发明 并不限于上述实施方式和实施例,在本领域技术人员所具备的知识范围内,还可W在不脱 离本发明构思的前提下做出各种变化。
【主权项】
1. 一种基于超混沌系统的密钥动态选取的图像加密算法,其特征在于:包括以下步 骤: 步骤1.输入图像大小为MXN的灰度图像,并将灰度图像像素按照从左到右,从上到下 的顺序排列成一维图像数组P ; 步骤2.利用超混沌系统生成混沌序列,对混沌序列进行分组,得到分组向量Ai, i e [〇, 5]; 步骤3.结合依赖明文的KSSG动态选取机制,根据变量indexl = Tl % 6, i = indexl,动杰诜取用于牛成詈乱密钥的Ai, Tl为根据明文像素计算公式 y〇 '? = mod (floor (yQ XlO8), MX N)计算得到 的非负整数,其中,?表示原始图像数组P的第i个元素,maxbi)表示取数组P中的最大值, floor (X)表示小于或等于X的最大整数,mod (a, b)表示a对b的取模运算;并结合KS动态 选取机制,根据变量index2 = T2 % 2+1,动态选取Ai中的元素A JindexZj)生成置乱密钥 K1(J),其中,Se [l,MXN],j e [1,MXN],T2为根据明文像素得到的非负整数,Ajindex〗, S)表示Ai中第index2行向量的第S个元素,依据置乱密钥K i (j)对图像数组P进行正向 置乱加密,得到正向置乱加密图像数组Pl ; 步骤4.利用依赖明文的KSSG动态选取机制读取图像数组P中第一个元素P (1),即Tl =P(I),根据indexl = T1% 6,i = indexl,选取生成扩散密钥的Ai;结合KS动态选取机 制,根据变量index2 = T2% 2+1,生成扩散密钥K2(j),依据扩散密钥K2(j)对正向置乱加 密图像数组Pl进行正向扩散加密,得到正向扩散加密图像数组P2 ; 步骤5.利用依赖明文的KSSG动态选取机制,根据变量indexl = Tl % 6, i = indexl,动态选取用于生成置乱密钥的Ai, Tl为根据明文像素依据公式Tl = mod (floor (yQ,X IO8),MX N)计算得 到的非负整数,其中,a/表示正向扩散图像数组P2的第i个元素,max (a/)表示取图像数 组P2中的最大值,floor (X)表示小于或等于X的最大整数,mod (a, b)表示8对13的取模运 算;并结合KS动态选取机制,根据变量index2 = T2% 2+1,生成反向置乱密钥K3 (j),依据 反向置乱密钥K3(j)对正向扩散加密图像数组P2进行反向置乱加密,得到反向置乱加密图 像数组P3 ; 步骤6.利用依赖明文的KSSG动态选取机制,读取正向扩散加密图像数组P2最后一个 元素 P2(MXN),Tl = P2(MXN),依据 indexl = T1% 6, i = indexl,动态选取 Ai;结合 KS 动态选取机制,根据变量index2 = T2% 2+1,选取Ai中的元素生成反向扩散密钥K4(j),根 据反向扩散密钥K 4(j)对反向置乱加密图像数组P3进行反向扩散加密,得到反向扩散加密 图像数组P4,并将反向扩散加密图像数组P4重组为大小MXN的数组密文。2. 根据权利要求1所述的基于超混沌系统的密钥动态选取的图像加密算法,其特征在 于: 所述步骤2中利用超混沌系统生成混沌序列对混沌序列进行分组包含如下步骤: 步骤2. 1采用陈氏超混沌系统,根据表达?7将其带入超混度系统中 迭代m+MXN次,为了避免有害影响,舍去前m(m > 500)个值,得到X、Y、Z、W四个向量序列, 其中,a、b、c、d和 k是超混纯系统的控制参数,X = [X1, x2, . . .,xMXN]、Y = Iiy1, y2, . . .,yMXN]、 Z - [Z1, Z2, · · ·,ZMXN]、W - [w1; W2, . . . , Wmxn]; 步骤2. 2对向量序列X、Y、Z、W进行分组,得到分组向量Ai, i e [〇,5],其中,3. 根据权利要求1所述的基于超混沌系统的密钥动态选取的图像加密算法,其特征在 于:所述步骤3中结合KS动态选取机制,动态选取A i中的元素A JindexZ,S)生成置乱密 钥K1 (j),并对P进行正向置乱还包含如下步骤: 步骤 3. 1 初始化循环变量 i、j、T2、Pl (0),i = 0, j = 1,T2 = U1, Pl (0) = U2; 步骤3. 2利用KS动态选取机制生成置乱密钥K1 (j); 步骤3. 3对得到的置乱密钥K1 (j),根据修正公式 K1 (j) = mod(floor (abs (K1 (j) X IO8)),MXN),进行修正; 步骤3. 4根据置乱公,进行置乱 操作,j表示原始明文图像数组的第j个位置,j'表示图像数组第j'个位置,K1 (j)表示用 于置乱的第j个密钥元素,Pl (j)表示置乱图像数组Pl第j个位置的元素,Pl (j-Ι)表示 其前一个位置置乱的元素,其中j' e [l,MXN],exchange(a,b)表示将a与b的值相互交 换; 步骤3.5判断是否所有的元素已经完成置乱,如果没有完成,则1 = 1+1,」=」+1,将 Pl (i)的值赋给T2,跳转到步骤3. 2执行,直到i > MXN-I,结束循环,保存得到的正向置乱 加密图像数组Pl。4. 根据权利要求1所述的基于超混沌系统的密钥动态选取的图像加密算法,其特征在 于:所述步骤4中结合KS动态选取机制,动态选取A i中的元素Ai (index2, S)生成扩散密 钥K2 (j)并对Pl进行正向扩散操作还包含如下步骤: 步骤 4. 1 初始化循环变量 i、j、T2、P2 (0),i = 0, j = 1,T2 = U3, P2 (0) = U4; 步骤4. 2利用KS动态选取机制生成扩散密钥K2 (j); 步骤4. 3根据修正公式K2 (j) = mod (floor (abs (K2 (j) X IO8) ),256),对得到的扩散密 钥K2 (j)进行修正; 步骤4.4根据扩散公式Ρ2(/) = />2(/-1)ΘΡ1(/)?Κ2(/ν进行扩散操作,其中,P2(j)表 示进行扩散操作后的第j个位置的像素值,P2(j_l)表示P2(j)前一个位置扩散的像素值, Pl (j)表示Pl的第j个位置的像素值,K2 (j)表示用于扩散的第j个密钥; 步骤4.5判断是否所有的元素已经完成扩散,如果没有完成,则1 = 1+1,」=」+1,将 P2(i)的值赋给T2,跳转到步骤4. 2执行,直到i >MXN-1,结束循环,保存得到的正向扩散 加密图像数组P2。5. 根据权利要求1所述的基于超混沌系统的密钥动态选取的图像加密算法,其特征在 于:所述步骤5中结合KS动态选取机制,动态选取A i中的元素A i (index2, S)生成反向置 乱密钥K3 (j)并对P2进行反向置乱还包含如下步骤: 步骤 5. 1 初始化循环变量 i、j、T2、P3(MXN+1),i = MXN+1,j = MXN,T2 = U5, P3(MXN+1) = U6; 步骤5. 2利用KS动态选取机制生成反向置乱密钥K3 (j); 步骤5. 3根据修正公式K3 (j) = mod (floor (abs (K3 (j) X IO8) ),MX N),对得到的反向置 乱密钥K3 (j)进行修正; 步骤5. 4根据置乱公式进行置乱操作,得 到反向置乱加密图像数组P3,其中,j表示正向扩散图像数组的第j个位置,j'表示图像数 组第j'个位置,K3 (j)表示用于置乱的第j个密钥元素,P3 (j)表示P3的第j个位置的元 素,P3(j+1)表示P3第j+Ι个位置的元素,j' e [1,MXN]; 步骤5. 5判断是否所有的元素已经完成置乱,如果没有完成,则i = i-1,j = j-1,并 将P3⑴的值赋给T2,跳转到步骤5. 2接行,直到i < = 1时结束循环,保存得到反向置乱 加密图像数组P3。6. 根据权利要求1所述的基于超混沌系统的密钥动态选取的图像加密算法,其特征在 于:所述步骤6中结合KS动态选取机制,动态选取A i中的元素Ai (index2, S)生成反向扩 散密钥K4 (j)并对P3进行反向扩散还包含如下步骤: 步骤 6. 1 初始化循环变量 i、j、T2、P3(MXN+1),i = MXN+1,j = MXN,T2 = U7, P4(MXN+1) = U8; 步骤6. 2利用KS动态选取机制生成反向扩散密钥K4 (j); 步骤6. 3根据修正公式K4 (j) = mod (floor (abs (K4 (j) X IO8)),256),对得到的反向扩 散密钥K4 (j)进行修正; 步骤6. 4根据扩散公式P4(/) = ZM(./ +1) @ P3(./) ?心(./),进行扩散操作其中,P4 (j)表 示扩散后的第j个像素,P4(j+1)表示扩散后的第j+Ι个像素,P3(j)表示反向置乱数组P3 的第j个像素,K4 (j)表示用于扩散的第j个密钥; 步骤6.5判断是否所有的元素已经完成扩散,如果没有完成,则1 =卜1,」=」-1,将 P4 (i)的值赋给T2,跳转到步骤6. 2执行,直到i <= 1结束循环,循环结束后,保存得到的 反向扩散加密图像数组P4。
【专利摘要】本发明涉及一种基于超混沌系统的密钥动态选取的图像加密算法,主要包括以下步骤:将原始明文图像排列成图像数组P,然后利用超混沌系统生成混沌序列并分组;结合依赖明文的KSSG和KS动态选取机制生成正向置乱密钥K1,对P进行正向置乱得到P1;结合KSSG和KS机制生成正向扩散密钥K2,对P1进行正向扩散得到P2;结合KSSG和KS动态选取机制生成反向置乱密钥K3,对P2进行反向置乱得到P3;利用KSSG和KS动态选取机制生成反向扩散密钥K4,对P3进行反向扩散得到P4,对P4进行重组即得到最终的密文图像。上述方法增加了密钥空间,使得安全性、加密效果和密钥敏感性更高,抗攻击能力更强,并更易于硬件实现。
【IPC分类】G06T1/00
【公开号】CN104881837
【申请号】CN201510262218
【发明人】柴秀丽, 杨康, 王俊, 甘志华, 高育林, 程云龙
【申请人】河南大学
【公开日】2015年9月2日
【申请日】2015年5月21日
转载请注明原文地址:https://www.famiwei.com/read-8138239.html

最新回复(0)