首页> 中国专利> 基于超混沌系统的密钥动态选取的图像加密算法

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

摘要

本发明涉及一种基于超混沌系统的密钥动态选取的图像加密算法,主要包括以下步骤:将原始明文图像排列成图像数组P,然后利用超混沌系统生成混沌序列并分组;结合依赖明文的KSSG和KS动态选取机制生成正向置乱密钥K

著录项

  • 公开/公告号CN104881837A

    专利类型发明专利

  • 公开/公告日2015-09-02

    原文格式PDF

  • 申请/专利权人 河南大学;

    申请/专利号CN201510262218.9

  • 申请日2015-05-21

  • 分类号

  • 代理机构郑州大通专利商标代理有限公司;

  • 代理人陈大通

  • 地址 475001 河南省开封市顺河区明伦街85号

  • 入库时间 2023-12-18 10:31:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-01-09

    授权

    授权

  • 2015-09-30

    实质审查的生效 IPC(主分类):G06T1/00 申请日:20150521

    实质审查的生效

  • 2015-09-02

    公开

    公开

说明书

技术领域

本发明涉及一种图像加密方法,特别是涉及一种基于超混沌系统的密钥动态选取的图像 加密算法。

背景技术

当今,伴随着智能设备、物联网、高清多媒体以及网络技术的飞速发展,我们生活中的 绝大多数信息,如文档、音频、视频,特别是图像信息的传输更是离不开网络的支持。网络 一方面给人们的生活带来了便捷,但另一方面,一些不法分子会利用网络来窃取信息,这就 给人们的信息安全带来很大隐患,所以信息在网络传输过程中的安全和保密问题也越来越受 到人们的关注和重视。通常来说图像信息都有相同的特点,它们都存在着数据量大、相邻像 素相关性强、冗余度高等特点。过去常用的加密方法,是以一维数据流为设计目标的,像DES、 3-DES、AES和RSA等,主要用于文本信息的加密,没有考虑到数字图像的特点,所以加密 的效果令人很不满意。混沌系统是一种非线性系统,能够表现出复杂的伪随机性,具有非常 好的混淆规则。它对初始条件和控制参数极其敏感,任何微小的初始偏差都会被指数式放大, 符合扩散规则。与此同时,它又可以通过非线性系统方程、参数和初始条件来确定。正因为 混沌系统具有随机性、确定性、遍历性和对初值的高度敏感性等特点,我们可以设计出密钥 空间大、加密流随机性强的加密算法,使它特别适合于图像的加密。目前,采用混沌系统对 图像进行加密已经成为了信息安全研究的一个热点,具有巨大的应用潜力。

美国学者Fridrich于1998年提出了经典的图像加密模式,它包括两个阶段,置乱阶段和 扩散阶段。在置乱阶段,通常只是对图像中的每个像素位置做处理,通过改变每个像素的位 置来破坏图像中原有的空间有序性和局部相关性,使得图像达到杂乱无章、无法识别并呈现 一种类似噪声的目的。在扩散阶段,一般是对图像中的像素值做处理,通过混沌系统产生的 伪随机序列来对明文像素进行掩盖,以达到窃密者无法辨认的目的,从而实现图像的加密。 但是必须指出的是,这两个阶段必须是一个可逆的过程,既然能对图像进行加密,那么也必 定能够对图像进行解密。绝大多数图像加密算法都是依照先置乱后扩散这样一个思路,最终 达到了良好的加密效果。但是目前所采用的图像加密算法存在以下几个问题:第一,在置乱 阶段,绝大多数加密算法缺乏与明文的联系,虽然部分加密算法考虑了与明文的联系,但是 当其中某个像素发生改变时,其置乱的效果依旧不能扩散至整幅图像,置乱的效果仅影响像 素发生改变的后面像素,这样窃密者可以通过简单的比对就可以发现其中的置乱规律,这使 得图像的安全性存在巨大的漏洞;第二,数字图像都是由一个一个像素组成的离散有限点集, 在置乱变换多次后会回到原来的状态,因此只要窃密者知道了加密的算法,就可以对其进行 暴力解密,通过多次迭代,就会在有限步内得到明文图像;第三,无论是在置乱阶段还是在 扩散阶段,对于不同的图像,只要初始值和控制参数一样,加密用到的密钥也就一样,其密 钥不能根据明文像素的不同做到动态选取,并且在置乱和扩散阶段都必须有对应的混沌系统 产生密钥,这不但加大了系统的开销,而且降低了图像加密算法的安全性;第四,以往一般 都采用低维混沌系统对图像进行加密,低维混沌系统产生的混沌序列只是经过简单的反复迭 代形成的,安全性不够好,并且计算机的计算精度也可能导致低维混沌系统的混沌序列周期 性比较短,随机性也较差,这都对图像的破解提供了突破口。专利申请号为201310412691.1 的中国专利公开了一种基于混沌序列和超混沌系统的彩色图像加密方法,该方法在图像加密 的置乱阶段使用一维混沌系统产生的混沌序列对图像像素进行置乱,置乱过程缺乏与明文的 联系,扩散阶段利用超混沌系统来产生扩散所用的密钥,加大了系统的开销,增加了硬件的 复杂性,其安全性有待提高。

发明内容

为克服以上现有技术的不足,本发明要解决的技术问题是提供一种基于超混沌系统的密 钥动态选取的图像加密方法,使其针对不同的明文,其加密密钥也能做到动态选取,并且与 以往的置乱方法相比,其像素的置乱位置也会随明文像素的不同而发生改变,一些已经存在 的置乱方法虽然与明文也存在联系,但是当图像中某个像素发生改变时,其置乱的效果依旧 不能扩散至整幅图像,置乱的效果仅影响像素发生改变的后面像素,而本文通过对图像的反 向置乱和反向扩散操作,使得置乱的效果能够扩散至整幅图像,最终使得加密的效果、安全 性和抗攻击能力更强,并且更易于硬件实现。

本发明的技术方案是:

一种基于超混沌系统的密钥动态选取的图像加密算法,包括以下步骤:

步骤1.输入图像大小为M×N的灰度图像,并将灰度图像像素按照从左到右,从上 到下的顺序排列成一维图像数组P;

步骤2.利用超混沌系统生成混沌序列,对混沌序列进行分组,得到分组向量Ai,i∈ [0,5];

步骤3.结合依赖明文的KSSG动态选取机制,根据变量index1=T1%6,i=index1, 动态选取用于生成置乱密钥的Ai,T1为根据明文像素计算公式 y0=0;ifmax(ai=0),Σ1M×NaiM×N×max(ai)otherwise.,T1=mod(floor(y0×108),M×N)计算得到的非 负整数,其中ai表示原始图像数组P的第i个元素,max(ai)表示取数组P中的最大值,floor(x) 表示小于或等于x的最大整数,mod(a,b)表示a对b的取模运算;并结合KS动态选取机 制,根据变量index2=T2%2+1,动态选取Ai中的元素Ai(index2,S)生成置乱密钥K1(j), 其中,S∈[1,M×N],j∈[1,M×N],T2为根据明文像素得到的非负整数,Ai(index2,S) 表示Ai中第index2行向量的第S个元素,依据置乱密钥K1(j)对图像数组P进行正向置 乱加密,得到正向置乱加密图像数组P1;

步骤4.利用依赖明文的KSSG动态选取机制读取图像数组P中第一个元素P(1),即 T1=P(1),根据index1=T1%6,i=index1,选取生成扩散密钥的Ai;结合KS动态选取机制, 根据变量index2=T2%2+1,生成扩散密钥K2(j),依据扩散密钥K2(j)对正向置乱加密图 像数组P1进行正向扩散加密,得到正向扩散加密图像数组P2;

步骤5.利用依赖明文的KSSG动态选取机制,根据变量index1=T1%6,i=index1, 动态选取用于生成置乱密钥的Ai,T1为根据明文像素依据公式 y0=0;ifmax(ai=0),Σ1M×NaiM×N×max(ai)otherwise,T1=mod(floor(y0'×108),M×N)计算得到 的非负整数,其中,ai’表示正向扩散图像数组P2的第i个元素,max(ai’)表示取图像数 组P2中的最大值,floor(x)表示小于或等于x的最大整数,mod(a,b)表示a对b的取模运 算;并结合KS动态选取机制,根据变量index2=T2%2+1,生成反向置乱密钥K3(j),依 据反向置乱密钥K3(j)对正向扩散加密图像数组P2进行反向置乱加密,得到反向置乱加 密图像数组P3;

步骤6.利用依赖明文的KSSG动态选取机制,读取正向扩散加密图像数组P2最后 一个元素P2(M×N),T1=P2(M×N),依据index1=T1%6,i=index1,动态选取用于生成反 向扩散密钥的Ai;结合KS动态选取机制,根据变量index2=T2%2+1,选取Ai中的元素 生成扩散密钥K4(j),根据扩散密钥K4(j)对反向置乱加密图像数组P3进行反向扩散加 密,得到反向扩散加密图像数组P4,并将反向扩散加密图像数组P4重组为大小为M×N 的数组密文。

上述的,所述步骤2中利用超混沌系统生成混沌序列对混沌序列进行分组包含如下步 骤:

步骤2.1采用陈氏超混沌系统,根据表达式x·=a(y-x)y·=-xz+dx+cyz·=xy-bzw·=yz+kw,将初始值和系统参数 带入超混沌系统中迭代m+M×N次,为了避免有害影响,舍去前m(m>500)个值,得到X、 Y、Z、W四个向量序列,其中,a、b、c、d和k是超混沌系统的控制参数,X=[x1,x2,...,xM×N]、 Y=[y1,y2,...,yM×N]、Z=[z1,z2,...,zM×N]、W=[w1,w2,...,wM×N];

步骤2.2对向量序列X、Y、Z、W进行分组,得到分组向量Ai,i∈[0,5],其中, A0=XY,A1=XZ,A2=XW,A3=YZ,A4=YW,A5=ZW.

上述的,所述步骤3中结合KS动态选取机制,动态选取Ai中的元素Ai(index2,S) 生成置乱密钥K1(j),并对P进行正向置乱,还包含如下步骤:

步骤3.1初始化循环变量i、j、T2、P1(0),i=0,j=1,T2=U1,P1(0)=U2

步骤3.2利用KS动态选取机制生成置乱密钥K1(j);

步骤3.3对得到的置乱密钥K1(j),根据修正公式

K1(j)=mod(floor(abs(K1(j)×108)),M×N),进行修正;

步骤3.4根据正向置乱公式,j=j+mod(K1(j)+P1(j-1),M×N-j+1)P(j)=P[X+mod(K1(j)+P1(j-1),M×N-j+1)]exchange(P(j),P(j))P1(j)=P(j)进行置乱操 作,j表示原始明文图像数组的第j个位置,j’表示图像数组第j’个位置,K1(j)表示用于 置乱的第j个密钥元素,P1(j)表示置乱图像数组P1第j个位置的元素,P1(j-1)表示置乱 图像数组第j-1个位置的元素,其中j∈[1,M×N],j’∈[1,M×N],exchange(a,b)表示将a 与b的值相互交换;

步骤3.5判断是否所有的元素已经完成置乱,如果没有完成,则i=i+1,j=j+1,将 P1(i)的值赋给T2,跳转到步骤3.2执行,直到i>M×N-1,结束循环,保存得到的正向置 乱加密图像数组P1。

上述的,所述步骤4中结合KS动态选取机制,动态选取Ai中的元素Ai(index2,S) 生成扩散密钥K2(j),并对P1进行正向扩散,还包含如下步骤:

步骤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)×108)),256),对得到的扩散密钥 K2(j)进行修正;

步骤4.4根据正向扩散公式进行扩散操作,其中,P2(j) 表示进行扩散操作后的第j位置的像素值,P2(j-1)表示第j-1个位置扩散的像素值,P1(j) 表示P1的第j位置的像素值,K2(j)表示用于扩散的第j个密钥;

步骤4.5判断是否所有的元素已经完成扩散,如果没有完成,则i=i+1,j=j+1,将 P2(i)的值赋给T2,跳转到步骤4.2执行,直到i>M×N-1,结束循环,保存得到的正向扩 散加密图像数组P2。

上述的,所述步骤5中结合KS动态选取机制,动态选取Ai中的元素Ai(index2,S) 生成反向置乱密钥K3(j),并对P2进行反向置乱,还包含如下步骤:

步骤5.1初始化循环变量i、j、T2、P3(M×N+1),i=M×N+1,j=M×N,T2=U5, P3(M×N+1)=U6

步骤5.2利用KS动态选取机制生成反向置乱密钥K3(j);

步骤5.3根据修正公式K3(j)=mod(floor(abs(K3(j)×108)),M×N),对得到的反向置乱 密钥K3(j)进行修正;

步骤5.4根据反向置乱公式j=j-mod(K3(j)+P3(j+1),j)P2(j)=P2[j-mod(K3(j)+P3(j+1),j)]exchange(P2(j),P2(j))P3(j)=P2(j),进行置乱操作, 得到反向置乱加密图像数组P3,其中,j表示正向扩散图像数组的第j位置,j’表示图像 数组第j’位置,K3(j)表示用于置乱的第j个密钥元素,P3(j)表示P3的第j位置的元素, P3(j+1)表示P3第j+1位置的元素,加上j∈[1,M×N],j’∈[1,M×N];

步骤5.5判断是否所有的元素已经完成置乱,如果没有完成,则i=i-1,j=j-1,并将 P3(i)的值赋给T2,跳转到步骤5.2执行,直到i<=1时结束循环,保存得到反向置乱加密 图像数组P3。

上述的,所述步骤6中结合KS动态选取机制,动态选取Ai中的元素Ai(index2,S) 生成反向扩散密钥K4(j)并对P3进行反向扩散,还包含如下步骤:

步骤6.1初始化循环变量i、j、T2、P3(M×N+1),i=M×N+1,j=M×N,T2=U7, P4(M×N+1)=U8

步骤6.2利用KS动态选取机制生成反向扩散密钥K4(j);

步骤6.3根据修正公式K4(j)=mod(floor(abs(K4(j)×108)),256),对得到的反向扩散密 钥K4(j)进行修正;

步骤6.4根据反向扩散公式进行扩散操作,其中, P4(j)表示扩散后的第j个像素,P4(j+1)表示扩散后的第j+1个像素,P3(j)表示反向置乱数 组P3的第j个像素,K4(j)表示用于扩散的第j个密钥;

步骤6.5判断是否所有的元素已经完成扩散,如果没有完成,则i=i-1,j=j-1,将 P4(i)的值赋给T2,跳转到步骤6.2执行,直到i<=1结束循环,循环结束后,保存得到的 反向扩散加密图像数组P4。

本发明的有益效果是:

(1)本发明通过采用一个超混沌系统,来产生加密算法(置乱和扩散)所需的密钥流 元素,克服了以往在置乱阶段和扩散阶段需要分别采用不同的混沌系统来产生 密钥的弊端,降低了硬件的复杂性,同时结合KSSG动态选取机制和KS动态 选取机制,大大增加了密钥的空间,使得密钥的选取更具随机性。最终使得该 算法具有密钥数目多、密钥空间大、密钥随机性更强和密钥敏感性更高的特点, 能够有效地抵抗穷举攻击,提高了算法的安全性。

(2)本发明在置乱阶段对图像像素进行位置置乱时,置乱位置与明文像素紧密相关, 针对不同的图像,即使初始值和控制参数一样,其置乱的位置也不一样。这克 服了以往图像加密算法在置乱阶段置乱位置与明文像素关联甚小的弊端,进一 步提高了算法的安全性;

(3)本发明在扩散阶段所用到的密钥都依赖于明文,密钥能够根据明文图像像素值的 不同而做到动态选取,针对不同的明文图像,密钥也随之发生变化,从而做到 “一文一密”,可以有效抵抗选择明文和选择密文攻击,更进一步提高了算法 的安全性。

(4)本发明在经过一轮加密后,克服了以往置乱阶段置乱效果存在局限性的弊端,一 些已经存在的置乱方法虽然与明文也存在联系,但是当图像中的某一个元素发 生改变时,置乱的效果仅影响像素发生改变的后面像素,而不能将这种效果扩 散至整幅图像,而本文通过对图像的反向操作,使得置乱的效果能够扩散至整 幅图像,极大的提高了算法的安全性。

附图说明

图1为本发明基于超混沌系统的密钥动态选取的图像加密算法的流程图;

图2为本发明的KS动态选取机制示意图表;

图3为本发明的置乱原理示意图表;

图4为本发明的正向置乱流程示意图;

图5为本发明的正向扩散流程示意图;

图6为本发明的反向置乱流程示意图;

图7为本发明的反向扩散流程示意图;

图8中:(a)为实施例二所用原始图像,(b)为加密后图像,(c)为密钥正确时的解密图像,(d) 为参数密钥错误时的解密图像,(e)为图像密钥错误时的解密图像;

图9中:(a)为实施例二所用原始图像,(b)为加密图像,(c)为原始图像的直方图,(d)为加密图 像的直方图;

图10中:(a)为实施例二所用原始图像水平方向上相邻像素的相关性分析图,(b)为加密图像 水平方向上相邻像素的相关性分析图;

图11中:(a)为实施例三所用原始图像,(b)为加密后图像,(c)为密钥正确时的解密图像,(d) 为密钥错误时的解密图像,(e)为密钥错误时的解密图像;

图12中:(a)为实施例三所用原始图像,(b)为加密图像,(c)为原始图像的直方图,(d)为加密 图像的直方图;

图13中:(a)为实施例三所用原始图像水平方向上相邻像素的相关性分析图,(b)为加密图像 水平方向上相邻像素的相关性分析图。

具体实施方式

依赖明文的KSSG动态选取机制:规定一个变量index1,index1=T1%6,T1表示根据明文像 素计算得到的一个非负整整。如果index1=T1%6的值为0,选取A0;index1=T1%6的值为1, 选取A1;index1=T1%6的值为2,选取A2;index1=T1%6的值为3,选取A3;index1=T1%6 的值为4选取A4;index1=T1%6的值为5,选取A5

KS动态选取机制:规定一个变量index2,index2=T2%2+1。这里T2表示根据明文像素计算 得到的一个非负整整。如果index2=T2%2+1的值为1,选取Ai[1,S1],index2=T2%2+1的值 为2,选取Ai[2,S2],其中i∈[0,5],S1∈[1,262144],S2∈[1,262144];Ai表示通过依赖明文 的KSSG动态选取机制选取的向量组合;Ai[1,S1]表示Ai中第一行向量的第S1个元素,Ai[2,S2] 表示Ai中第二行向量的第S2个元素。

下面结合附图和技术方案对本发明作进一步详细的说明,并通过优选的实 施例详细说明本发明的实施方式,但本发明的实施方式并不限于此。

实施例一,一种基于超混沌系统的密钥动态选取的图像加密算法,包括以下步骤:

步骤1.输入图像大小为M×N的灰度图像,并将灰度图像像素按照从左到右,从上到下 的顺序排列成一维图像数组P;

步骤2.利用超混沌系统生成混沌序列,并对混沌序列进行分组,得到分组向量Ai, i∈[0,5];

步骤3.结合依赖明文的KSSG动态选取机制,根据变量index1=T1%6,i=index1,动态 选取用于生成置乱密钥的Ai,T1为根据明文像素计算公式 y0=0;ifmax(ai=0),Σ1M×NaiM×N×max(ai)otherwise.,T1=mod(floor(y0×108),M×N)计算得到的非负 整数,其中,ai表示原始图像数组P的第i个元素,max(ai)表示取数组P中的最大值,floor(x) 表示小于或等于x的最大整数,mod(a,b)表示a对b的取模运算;并结合KS动态选取机制, 根据变量index2=T2%2+1,动态选取Ai中的元素Ai(index2,S)生成置乱密钥K1(j),T2为 根据明文像素得到的非负整数,Ai(index2,S)表示Ai中第index2行向量的第S个元素, 依据置乱密钥K1(j)对图像数组P进行正向置乱加密,得到正向置乱加密图像数组P1:

步骤4.利用依赖明文的KSSG动态选取机制读取图像数组P中第一个元素P(1),即 T1=P(1),根据index1=T1%6,i=index1,选取生成扩散密钥的Ai;结合KS动态选取机制, 根据变量index2=T2%2+1,生成扩散密钥K2(j),依据扩散密钥K2(j)对正向置乱加密图像数 组P1进行正向扩散加密,得到正向扩散加密图像数组P2;

步骤5.利用依赖明文的KSSG动态选取机制,根据变量index1=T1%6,i=index1,动态 选取用于生成置乱密钥的Ai,T1为根据明文像素依据公式

y0=0;ifmax(ai=0),Σ1M×NaiM×N×max(ai)otherwise,T1=mod(floor(y0'×108),M×N)计算 得到的非负整数,其中,ai’表示正向扩散图像数组P2的第i个元素,max(ai’)表示取图像数 组P2中的最大值,floor(x)表示小于或等于x的最大整数,mod(a,b)表示a对b的取模运算; 并结合KS动态选取机制,根据变量index2=T2%2+1,生成反向置乱密钥K3(j),依据反向置 乱密钥K3(j)对正向扩散加密图像数组P2进行反向置乱加密,得到反向置乱加密图像数组 P3;

步骤6.利用依赖明文的KSSG动态选取机制,读取正向扩散加密图像数组P2最后一个 元素P2(M×N),T1=P2(M×N),依据index1=T1%6,i=index1,动态选取用于生成反向扩散 密钥的Ai;结合KS动态选取机制,根据变量index2=T2%2+1,选取Ai中的元素生成扩散密 钥K4(j),根据扩散密钥K4(j)对反向置乱加密图像数组P3进行反向扩散加密,得到反向扩散 加密图像数组P4,并将反向扩散加密图像数组P4重组为大小M×N的数组密文。

实施例二:结合具体的图像对本发明技术方案做进一步的介绍,参见图1所示,本实施 例中采用的编程软件为Matlab R2014a,选取附图8中的(a)所示的大小为512×512的lena灰 度图像为实验对象,对lena灰度图像加密的过程如下:

1.输入原始大小为512×512的lena灰度图像,用I0=imread(‘lena.bmp’)读取图像信息。 然后将图像I0按照从左到右、从上到下的顺序排列成一维图像数组,记为P。

2.本文采用陈氏超混沌系统来产生用于加密的密钥,其方程表达式如下:

x·=a(y-x)y·=-xz+dx+cyz·=xy-bzw·=yz+kw---(1)

这里a、b、c、d和k是超混沌系统的控制参数,当a=36、b=3、c=28、d=-16并且当k处于 区间[-0.7,0.7]时,系统处于超混沌状态。

3.选取初始值x0=1、y0=2、z0=3和w0=4,选择系统参数k=0.5,迭代入陈氏超混沌系统 生成四组长度为[1000+512×512](m>500)的实值混沌序列,抛弃前m=1000个值,从而得到 X、Y、Z、W四个向量序列,其中,a、b、c、d和k是超混沌系统的控制参数,X=[x1,x2,...,xM×N]、 Y=[y1,y2,...,yM×N]、Z=[z1,z2,...,zM×N]、W=[w1,w2,...,wM×N]。然后将得到的四组混沌序列向量 X、Y、Z、和W进行分组。

记:将a、b、c、d、x0、 y0、z0、w0、k、m作为密钥。

4.根据依赖明文的KSSG动态选取机制选取步骤3中的Ai

依赖明文的KSSG动态选取机制:

规定一个变量index1,index1=T1%6,T1表示根据明文像素计算得到的一个非负整整。 如果index1=T1%6的值为0,选取A0;index1=T1%6的值为1,选取A1;index1=T1%6的值 为2,选取A2;index1=T1%6的值为3,选取A3;index1=T1%6的值为4选取A4;index1=T1%6 的值为5,选取A5

正向置乱阶段T1的值由下式计算得到:

y0=0;ifmax(ai=0),Σ1512×512ai512×512×max(ai)otherwise.---(2)

T1=mod(floor(y0×108),512×512)             (3)

其中公式(2)中ai表示原始图像数组P的第i个元素,max(ai)表示取数组P中的最大值, floor(x)表示小于或等于x的最大整数,mod(a,b)表示a对b的取模运算;

5.根据KS动态选取机制,选取用于正向置乱加密的密钥流元素。

KS动态选取机制:

规定一个变量index2,index2=T2%2+1。这里T2表示根据明文像素计算得到的一个非负 整数。如果index2=T2%2+1的值为1,选取Ai(1,S1),index2=T2%2+1的值为2,选取Ai(2, S2),其中i∈[0,5],S1∈[1,262144],S2∈[1,262144]。Ai表示通过依赖明文的KSSG动态选 取机制选取的向量组合。Ai(1,S1)表示Ai中第一行向量的第S1个元素,Ai(2,S2)表示Ai中 第二行向量的第S2个元素。

列举案例具体说明如何利用KS动态选取机制来选取密钥流元素。假设通过KSSG动态 选取机制选取A0,那么A0(1,S1)就相当于A0中第一行向量X的第S1个元素, A0(1,S1)就相当于A0中第二行向量Y的第S2个元素。

参考附图中的图2所示,图中第一行T1,T2,...,T262144分别表示对明文数组P进行第 一次,第二次,...,第262144次置乱后的元素。当进行第i次置乱时,T2会获得其前一次置 乱的元素值。第二行就表示每次循环时T2得到的值,T0表示事先给定的初始值。第三行和 第四行表示的是A0中的两个行向量。第五行的index2表示KS动态选取机制中的变量,根据 index2的值可以决定是从X中还是从Y中选取密钥元素。最后一行表示最终选取的密钥流元 素。

6.参见图4,对原始图像数组P进行正向置乱,得到正向置乱图像数组P1的步骤如下:

此时U1=15,U2=21。流程图中i=0、j=1表示的是对循环变量设定初始值,T2=U1表示对 KS动态选取机制中的变量T2设定的初始值,P1(0)=U2表示在下面要涉及的置乱公式中设定 的初始值,K1(j)表示通过依赖明文的KS动态选取机制生成的第j个密钥,P1(j)表示置乱后的 第j个像素,P1表示全部像素置乱完成后的一维置乱数组,其中i∈[0,262143],j∈[0, 262144]。

详细步骤如下:

第一步:对相应的变量做初始化设置,令i=0、j=1、T2=U1、P1(0)=U2

第二步:利用KS动态选取机制生成密钥K1(j)。其中,index2=T2%2+1,T2的值在每次循环 的时候会更新。

第三步:对得到的密钥进行修正,其修正公式如下:

K1(j)=mod(floor(abs(K1(j)×108)),262144)             (4)

这里floor(x)表示小于或等于x的最大整数,mod(a,b)表示a对b的取模运算,abs(a)表示 对a取绝对值。

第四步:根据下面的正向置乱公式进行置乱操作,并将得到的P1(j)保存下来。

j=j+mod(K1(j)+P1(j-1),512×512-j+1)P(j)=P[j+mod(K1(j)+P1(j-1),512×512-j+1)]exchange(P(j),P(j))P1(j)=P(j)---(5)

这里j表示图像的第j位置,j’表示图像的第j’位置,K1(j)表示用于置乱的第j个密钥元素, P1(j)表示置乱图像P1的第j位置的元素,P1(j-1)表示置乱图像P1的第j-1个位置的元素,其 中j∈[1,262144],j’∈[1,262144]。exchange(a,b)表示将a与b的值相互交换,mod(a,b)表示 a对b的取模运算。特别的是,这里P1(0)为事先给定一个初始值,记P1(0)=U2

其置乱原理可参考附图中的图表3:

这里n=512×512,P(f1)表示原始图像数组P第一个位置的像素与第f1个位置的像素交换 后的像素值,其中f1∈[2,n];P(f2)表示图像数组P第二个位置的像素与第f2个位置的像素交 换后的像素值,其中f2∈[3,n],此时的图像数组P是在第一次像素交换的基础上得来的;P(f3) 表示数组图像P第三个位置的像素与第f3个位置的像素交换后的像素值,其中f3∈[4,n],此 时的图像数组P是在第二次像素交换的基础上得来的;也就是说对于任意的P(fm),m∈[1, 262144],表示图像数组P第m个位置的像素与第fm个位置的像素交换后的像素值,其中fm∈[m+1,n],此时的图像数组P是在第m-1次像素交换的基础上得来的;当然这里fm具体是 多少,还要根据置乱公式中的j’来决定,fm=j’。从置乱公式和上表中我们可以看出,在fm位 置的元素一旦被交换到第m位置,那么在m位置处的像素值就被固定了下来,而被交换到第 fm个位置的像素在以后的交换中还可以变换位置。

第五步:判断是否所有的元素已经完成置乱,如果没有完成,i=i+1,j=j+1,然后将P1(i)的值 赋给T2,跳转到第二步接着执行,直到i>262143结束循环,最后将得到的置乱数组P1保存 下来。

7.根据依赖明文的KSSG动态选取机制选取步骤(3)中的Ai

index1=T1%6,此时的T1是从原始图像数组第一个元素P(1)中获得的,即T1=P(1),P(1) 的值为159,最后根据index1的值选取Ai。P(1)为本文加密算法的一个密钥。

8.参见图5对正向置乱图像数组P1进行正向扩散,得到正向扩散图像数组P2的步骤如 下:

此时U3=16,U4=98。流程图中i=0、j=1表示的是对循环变量设定初始值,T2=U3表示对 KS动态选取机制中的变量T2设定的初始值,P2(0)=U4表示在下面的扩散公式中设定的初始 值,K2(j)表示通过KS动态选取机制生成的第j个密钥,P2(j)表示扩散后的第j个像素,P2 表示全部像素扩散完成后的一维扩散数组,其中i∈[0,262143],j∈[1,262144]。

详细步骤如下:

第一步:对相应的变量做初始化设置,令i=0、j=1、T2=U3、P2(0)=U4

第二步:利用KS动态选取机制生成密钥K2(j)。其中,index2=T2%2+1,T2的值在每次循环 的时候会更新。

第三步:对得到的密钥进行修正,其修正公式如下:

K2(j)=mod(floor(abs(K2(j)×108)),256)          (6)

这里floor(x)表示小于或等于x的最大整数,mod(a,b)表示a对b的取模运算,abs(a)表示 对a取绝对值。

第四步:根据下面的正向扩散公式进行扩散操作,并将得到的P2(j)保存下来。

P2(j)=P2(j-1)P1(j)K2(j)---(7)

这里P2(j)表示扩散后的第j个像素,P2(j-1)表示扩散后的第j-1个像素,P1(j)表示置乱数 组P1的第j个像素,K2(j)表示用于扩散的第j个密钥。

第五步:判断是否所有的元素已经完成扩散,如果没有完成,i=i+1,j=j+1,然后将P2(i)的值 赋给T2,跳转到第二步接着执行,直到i>262143结束循环,最后将得到的扩散数组P2保存 下来。

上面完成了图像的正向置乱加密和正向扩散加密,为了能够使图像的加密效果更好,下 面我们再从反方向对图像进行反向置乱加密和反向扩散加密。反向置乱加密和反向扩散加密 的原理和步骤与正向置乱加密和正向扩散加密的原理和步骤是一样的,只是其中的部分参数 和初始值会发生相应的变化,接下来将对变化的部分作出详细的说明。

9.根据依赖明文的KSSG动态选取机制选取步骤(3)中的Ai

index1=T1%6,此时T1值的选取由下式求得:

y0=0;ifmax(ai=0),Σ1512×512ai512×512×max(ai)otherwise.---(8)

T1=mod(floor(y0'×108),262144)            (9)

其中公式(8)中ai’表示正向扩散图像数组P2的第i个元素,max(ai’)表示取图像数组P2 中的最大值。Floor(x)表示小于或等于x的最大整数,mod(a,b)表示a对b的取模运算。

10.参见图6,对正向扩散图像数组P2进行反向置乱,得到反向置乱图像数组P3的步骤 如下:

此时U5=103,U6=62,M×N=262144。流程图中i=M×N+1=262145,j=M×N=262144,表 示的是对循环变量设定初始值,T2=U5表示对KS动态选取机制中的变量T2设定的初始值, P3(M×N+1)=U6表示在下面要涉及的置乱公式中设定的初始值,K3(j)表示通过KS动态选取机 制生成的第j个密钥,P3(j)表示置乱后的第j个像素,P3表示对数组P2全部像素置乱完成后 的一维置乱数组。

详细步骤如下:

第一步:对相应的变量做初始化设置,令i=262145、T2=U5、P3(262145)=U6

第二步:利用KS动态选取机制生成密钥K3(j)。其中,index2=T2%2+1,T2的值在每次循环 的时候会更新。

第三步:对得到的密钥进行修正,其修正公式如下:

K3(j)=mod(floor(abs(K3(j)×108)),512×512)         (10)

floor(x)表示小于或等于x的最大整数,mod(a,b)表示a对b的取模运算,abs(a)表示对a 取绝对值。

第四步:根据下面的反向置乱公式进行置乱操作,并将得到的P3(j)保存下来。

j=j-mod(K3(j)+P3(j+1),j)P2(j)=P2[j-mod(K3(j)+P3(j+1),j)]exchange(P2(j),P2(j))P3(j)=P2(j)---(11)

这里j表示图像数组的第j个位置,j’表示图像数组第j’个位置,K3(j)表示用于置乱的第 j个密钥元素,P3(j)表示置乱图像P3的第j个位置的元素,P3(j+1)表示置乱图像P3的第j+1 个位置的元素,其中j∈[1,262144],j’∈[1,262144]。exchange(a,b)表示将a与b的值相互交 换,mod(a,b)表示a对b的取模运算。P3(262145)为事先给定一个初始值,记P3(262145)=U6。 其置乱原理可参考正向置乱时的原理图。

第五步:判断是否所有的元素已经完成置乱,如果没有完成,i=i-1,j=j-1,然后将P3(i)的值 赋给T2,跳转到第二步接着执行,直到i<=1时结束循环,最后将得到的置乱数组P3保存下 来。

11.根据依赖明文的KSSG动态选取机制选取步骤(3)中的Ai

index1=T1%6,此时的T1是从正向扩散图像数组最后一个元素P2(262144)中获得的,即 T1=P2(262144),P2(262144)的值为246,最后根据index2的值选取Ai。P2(262144)为本文加 密算法的一个密钥。

12.参见图7对反向置乱图像数组P3进行反向扩散加密,得到反向扩散图像数组P4步 骤如下:

此时U7=69,U8=47,M×N=262144,流程图中i=M×N+1=262145,j=M×N=262144表示 的是对循环变量设定初始值,T2=U7表示对KS动态选取机制中的变量T2设定的初始值, P4(262145)=U8表示在下面要涉及的置乱公式中设定的初始值,K4(j)表示通过KS动态选取机 制生成的第j个密钥,P4(j)表示扩散后的第j个像素,P4表示对数组P3全部像素扩散完成后 的一维扩散数组。

详细步骤如下:

第一步:对相应的变量做初始化设置,令i=262145、j=262144、T2=U7、P2(262145)=U8

第二步:利用KS动态选取机制生成密钥K4(j)。其中,index2=T2%2+1,T2的值在每次循环 的时候会更新。

第三步:对得到的密钥进行修正,其修正公式如下:

K4(j)=mod(floor(abs(K4(j)×108)),256)            (12)

这里floor(x)表示小于或等于x的最大整数,mod(a,b)表示a对b的取模运算,abs(a)表示 对a取绝对值。

第四步:根据下面的反向扩散公式进行扩散操作,并将得到的P4(j)保存下来。

P4(j)=P4(j+1)P3(j)K4(j)---(13)

这里P4(j)表示扩散后的第j个像素,P4(j+1)表示扩散后的第j+1个像素,P3(j)表示反向 置乱数组P3的第j个像素,K4(j)表示用于扩散的第j个密钥。

第五步:判断是否所有的元素已经完成扩散,如果没有完成,i=i-1,j=j-1,然后将P4(i)的值 赋给T2,跳转到第二步接着执行,直到i<=1结束循环,最后将得到的扩散数组P4保存下来。

13.最后将反向扩散加密图像数组P4重组为大小为M×N的数组,得到密文。

一个好的加密算法应该能够抵抗各种攻击,密钥空间足够大,密钥的敏感性足够高,下 面对本发明的图像加密算法进行安全性分析:

1.密钥空间足够大,足以抵抗穷举攻击

混沌系统对初始条件和控制参数极其的敏感,任何微小的初始偏差都会被指数式放大, 因此混沌加密算法的安全性与密钥空间有很大关系。一般来说,密钥空间越大,其抵抗穷举 攻击的能力也就越强。本文密钥具体包括:1)超混沌系统的初始值x0、y0、z0、w0及系统参 数a、b、c、d、k。2)舍弃的超混沌序列个数m。3)在正向扩散和反向扩散阶段用于确 定T1值的P(1)、P2(262144)。4)用于正向置乱和反向置乱公式中的初始值U2和U6。5)用 于正向置乱密钥选取和反向置乱密钥选取中的初始值U1和U5。6)用于正向扩散公式和反向 扩散公式中的初始值U4和U8。7)用于正向扩散密钥选取和反向扩散密钥选取中的初始值 U3和U7。若设置精度为10-14,则密钥空间超过10126,可见密钥空间足够大,能够有效的抵 御穷举攻击。

2.密钥敏感性高

密钥的敏感性就是对密钥进行轻微的改变后,其密文也会发生显著的变化。混沌加密的 安全性,在于它对初始值的敏感性,也就是说,当攻击者用一个跟初始值很相近的数据进行 图像破解时,也不能恢复出原始的图像。

附图8中(a)表示的是原始图像,图8中(b)表示的是最终的加密图像,图8中(c) 是正确解密后的图像。图8中(d)、8中(e)为初始值敏感性实验,其中初始值x0=1,y0=2, z0=3,w0=4,U1=15,U2=21,U3=16,U4=98,U5=103,U6=62,U7=69,U8=47, P(1)=159,P(262144)=246及系统参数a=36,b=3,c=28,d=-16,k=0.5。图8中(d)是当其余初始 值不变,令系统参数k=0.50000000001时的解密图像。图8中(e)是当其余初始值不变,令 初始值y0=2.00000000001时的解密图像。由此可见,此加密算法对密钥的敏感性极高,加密 安全性也更好。

3.密文图像的灰度直方图平滑且均匀,抗统计分析攻击能力强。

直方图描述了数字图像中所有灰度级的像素出现的频率。一个好的图像加密算法在对图 像进行加密后,得到的密文图像的灰度直方图应该是平滑且均匀的,这样可以防止窃密者通 过直方图的漏洞来破解图像。附图9中(a)表示原始图像;9中(c)表示原始图像的直方图; 9中(b)表示加密图像;9中(d)表示加密图像的直方图。从图中可以看出,加密前图像的 像素值分布极不均匀,而加密后的像素值平滑且均匀的分布在[0,255]中,能够有效抵御统 计分析的攻击。

4.原始图像相邻像素高度相关,加密后图像相邻像素相关系数接近于0,基本不相关。

为了分析明文图像和密文图像相邻像素的相关性,引入相邻像素的相关系数。相关系数 越大,说明相邻像素的相关性越大;反之,相邻像素的相关性越小。从图像中选取20000对 水平方向相邻像素对,20000对垂直方向相邻像素对和20000对对角方向相邻像素对,用如 下公式定量计算相邻像素的相关系数:

Rx,y=cov(x,y)D(x)D(y),E(x)=1NΣi=1Nxi,D(x)=1NΣi=1N(xi-E(x))2cov(x,y)=1NΣi=1N(xi-E(x))(yi-E(y))

式中,x、y分别表示图像中相邻两个像素的像素值,D(x)表示像素值的均方差, E(x)表示像素值的平均值,cov(x,y)表示相关函数,Rx,y表示相邻两个像素的相关系数。

其中点(x,y)处测试结果如附图10所示。图10(a)为原始图像水平方向上相邻像素的相关 性分析图,10(b)为加密图像水平方向上相邻像素的相关性分析图。

明文、密文相关性对比见下表:

可以看出明文图像相邻像素是高度相关的,相关系数接近1。而加密图像的相邻相关系 数接近于0,相邻像素间相关性明显减小,此时明文的统计特性已被扩散到随机的密文中, 可以有效抵御统计攻击。

5.NPCR大于99%,UACI大于33%,抗差分攻击能力强。

算法对明文的敏感性越强,抵抗差分攻击的能力也就越强,可以用像素数改变率NPCR (Number of Pixels Change Rate)和归一化像素值平均改变强度UACI(Unified Average  Changing Intensity)度量加密算法对明文的敏感性。计算公式如下:

NPCR=Σi,jD(i,j)M×N×100%

UACI=1M×N[Σi,j|C1(i,j)-C2(i,j)|255]×100%

式中,M和N表示图像的行数和列数,C1表示原来的密文图像,C2表示改变明文后得 到的密文图像,C1(i,j)表示明文图像在坐标(i,j)处的像素值,C2(i,j)表示密文图像在坐标 (i,j)处的像素值。D表示和密文图像大小一样的矩阵,D(i,j)的值由C1(i,j)和C2(i,j)决 定。若C1(i,j)=C2(i,j),那么D(i,j)=0;若C1(i,j)≠C2(i,j),那么D(i,j)=1。

本发明中,将原始明文图像的第十个像素值改为200后得到一个新的明文图像,然后将 这两个图像用同样的密钥加密形成相应的密文图像C1和C2。计算密文图像的NPCR和UACI 值如下表所示,可以看到NPCR的值大于99%,UACI的值大于33%。这表明,即使对原始 图像做微小的变化,通过本算法进行加密后,密文图像也会有明显的差异。因此,本算法可 以有效抵抗差分攻击。

密文图像的NPCR和UACI值:

  密文图像 NPCR 0.9961 UACI 0.3346

6.密文图像的信息熵非常接近理想值8,加密算法安全性好。

信息熵是反映信息随机性的重要度量指标,信息源m的信息熵计算公式如下:

H(m)=Σi=02n-1p(mi)log1p(mi)

其中,p(mi)表示符号mi出现的概率,2n是信息源m的总状态数。信息加密之后,信息 熵的期望值为8。如果加密图像信息熵非常接近8,则表明该密文图像接近随机分布。

对标准512×512lena图像用本发明算法进行加密,得到密文图像的信息熵为7.9991,非 常接近理想值8,这表明本发明提供的加密算法具有很好的安全性。

实施例三:在本实施例中,采用的编程软件为Matlab R2014a,选取附图11中(a)所示的 大小为256×205的boats灰度图像为实验对象,对该图像加密的过程如下:

(1)输入原始大小为256×205的boats灰度图像,用I0=imread(‘boats.bmp’)读取图像信 息。然后将图像I0按照从左到右、从上到下的顺序排列成一维图像数组,记为P。

(2)利用超混沌系统生成混沌序列,然后对混沌序列进行分组。

(3)结合依赖明文的KSSG动态选取机制和KS动态选取机制生成置乱密钥,对原始明 文图像数组P进行正向置乱加密,得到图像数组,记为P1。

(4)结合依赖明文的KSSG动态选取机制和KS动态选取机制生成扩散密钥,对图像数 组P1进行正向扩散加密,得到图像数组,记为P2。

(5)结合依赖明文的KSSG动态选取机制和KS动态选取机制生成置乱密钥,对图像数 组P2进行反向置乱加密,得到图像数组,记为P3。

(6)结合依赖明文的KSSG动态选取机制和KS动态选取机制选取扩散密钥,对图像数 组P3进行反向扩散加密,得到图像数组,记为P4。将P4重组为大小为M×N的数组,即为 密文

具体步骤可参考实施例二,下面对本发明的图像加密算法进行安全性分析:

1.密钥空间大,足以抵抗穷举攻击

密钥与实施例1的密钥相同。具体包括:1)超混沌系统的初始值x0、y0、z0、w0及系统 参数a、b、c、d、k。2)舍弃的超混沌序列个数m。3)在正向扩散和反向扩散阶段用于确 定T1值的P(1)、P2(52480)。4)用于正向置乱和反向置乱公式中的初始值U2和U6。5)用于 正向置乱密钥选取和反向置乱密钥选取中的初始值U1和U5。6)用于正向扩散公式和反向扩 散公式中的初始值U4和U8。7)用于正向扩散密钥选取和反向扩散密钥选取中的初始值U3和U7。若设置精度为10-14,密钥空间超过10126,可见密钥空间足够大,能够做到有效的抵 御各种攻击。

2.密钥敏感性高

密钥的敏感性就是对密钥进行轻微的改变后,其密文也会发生显著的变化。混沌加密的 安全性,在于它对初始值的敏感性,也就是说,当攻击者用一个跟初始值很相近的数据进行 图像破解时,也不能恢复出原始的图像。

附图11中(a)表示的是原始图像,图11中(b)表示的是最终的加密图像,图11中(c) 是正确解密后的图像。图11中(d)、图11中(e)为初始值敏感性实验,其中初始值x0=1, y0=2,z0=3,w0=4,U1=15,U2=21,U3=16,U4=98,U5=103,U6=62,U7=69,U8=47, P(1)=15,P(52480)=13及系统参数a=36,b=3,c=28,d=-16,k=0.5。图11(d)是当其它初始值不 变,令系统参数k=0.50000000001时的解密图像。图11中(e)是当其它初始值不变,令初始值 y0=2.00000000001时的解密图像。由此可见,此加密算法对密钥的敏感性极高,加密安全性 也更好。

3.密文图像的灰度直方图平滑且均匀,抗统计分析攻击能力强。

直方图描述了数字图像中所有灰度级的像素出现的频率。一个好的图像加密算法在对图 像进行加密后,得到的密文图像的灰度直方图应该是平滑且均匀的,这样可以防止窃密者通 过直方图的漏洞来破解图像。附图12中(a)表示原始图像,图12中(c)表示原始图像的 直方图,图12中(b)表示加密图像,图12中(d)表示加密图像的直方图。从图中可以看 出,加密前图像的像素值分布极不均匀,而加密后的像素值平滑且均匀的分布在[0,255] 中,能够有效抵御统计分析的攻击。

4.原始图像相邻像素高度相关,加密后图像相邻像素相关系数接近于0,基本不相关。

为了分析明文图像和密文图像相邻像素的相关性,引入相邻像素的相关系数。相关系数 越大,说明相邻像素的相关性越大;反之,相邻像素的相关性越小。从图像中选取20000对 水平方向相邻像素对,20000对垂直方向相邻像素对和20000对对角方向相邻像素对,用如 下公式定量计算相邻像素的相关系数:

Rx,y=cov(x,y)D(x)D(y),E(x)=1NΣi=1Nxi,D(x)=1NΣi=1N(xi-E(x))2cov(x,y)=1NΣi=1N(xi-E(x))(yi-E(y))

式中,x、y分别表示图像中相邻两个像素的像素值,D(x)表示像素值的均方差, E(x)表示像素值的平均值,cov(x,y)表示相关函数,Rx,y表示相邻两个像素的相关系数。

其中点(x,y)处测试结果如附图13所示。图13中(a)为原始图像水平方向上相邻像素的相 关性分析图,图13中(b)为加密图像水平方向上相邻像素的相关性分析图。

明文、密文相关性对比见下表:

可以看出明文图像相邻像素是高度相关的,相关系数接近1。而加密图像的相邻相关系 数接近于0,相邻像素间相关性明显减小,此时明文的统计特性已被扩散到随机的密文中, 可以有效抵御统计攻击。

5.NPCR大于99%,UACI大于33%,抗差分攻击能力强。

算法对明文的敏感性越强,抵抗差分攻击的能力也就越强,可以用像素数改变率NPCR (Number of Pixels Change Rate)和归一化像素值平均改变强度UACI(Unified Average  Changing Intensity)度量加密算法对明文的敏感性。计算公式如下:

NPCR=Σi,jD(i,j)M×N×100%

UACI=1M×N[Σi,j|C1(i,j)-C2(i,j)|255]×100%

式中,M和N表示图像的行数和列数,C1表示原来的密文图像,C2表示改变明文后得 到的密文图像,C1(i,j)表示明文图像在坐标(i,j)处的像素值,C2(i,j)表示密文图像在坐标 (i,j)处的像素值。D表示和密文图像大小一样的矩阵,D(i,j)的值由C1(i,j)和C2(i,j)决 定。若C1(i,j)=C2(i,j),那么D(i,j)=0;若C1(i,j)≠C2(i,j),那么D(i,j)=1。

本发明中,将原始明文图像的第十个像素值改为200后得到一个新的明文图像,然后将 这两个图像用同样的密钥加密形成相应的密文图像C1和C2。计算密文图像的NPCR和UACI 值如下表所示,可以看到NPCR的值大于99%,UACI的值大于33%。这表明,即使对原始 图像做微小的变化,通过本算法进行加密后,密文图像也会有明显的差异。因此,本算法可 以有效抵抗差分攻击。

密文图像的NPCR和UACI值:

  密文图像 NPCR 0.9963 UACI 0.3360

6.密文图像的信息熵非常接近理想值8,加密算法安全性好。

信息熵是反映信息随机性的重要度量指标,信息源m的信息熵计算公式如下:

H(m)=Σi=02n-1p(mi)log1p(mi)

其中,p(mi)表示符号mi出现的概率,2n是信息源m的总状态数。信息加密之后,信息 熵的期望值为8。如果加密图像信息熵非常接近8,则表明该密文图像接近随机分布。

对标准256×205boats图像用本发明算法进行加密,得到密文图像的信息熵为7.9963,非 常接近理想值8,这表明本发明提供的加密算法具有很好的安全性。

由上述实施例可知,本发明提供的加密算法可对M=N或M≠N的灰度图像进行高安全的 加密,在信息加密领域具有广阔的应用前景。

上面结合附图对本发明优选的具体实施方式和实施例作了详细说明,但是本发明并不限 于上述实施方式和实施例,在本领域技术人员所具备的知识范围内,还可以在不脱离本发明 构思的前提下做出各种变化。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号