一种混沌双变换图像加密算法的改进方法技术

技术编号:18166573 阅读:99 留言:0更新日期:2018-06-09 12:07
本发明专利技术公开了一种混沌双变换图像加密算法的改进方法,属于信息安全技术领域。本发明专利技术主要包括以下步骤:(1)分析原算法存在的缺陷,选取有M行、N列像素的明文灰度图像矩阵为A,其像素总数表示为L=M×N.(2)改进加密算法的实现;(3)解密算法的实现。本发明专利技术利用选择明文攻击法成功破解了现有技术提出的算法的等效密码,并在此基础上提出了改进的双重置乱型图像混沌密码算法,改进算法在保留和发扬原算法优点的基础上加强了算法的安全性;改进算法不仅克服了原算法不能抵御选择明文攻击的安全缺陷,而且提高了多项其它方面的密码学性能。

【技术实现步骤摘要】
一种混沌双变换图像加密算法的改进方法
本专利技术属于信息安全
,具体涉及一种混沌双变换图像加密算法的改进方法。
技术介绍
随着计算机网络和数字通信技术的快速发展,信息交换日趋频繁,为了保证重要信息的安全传输,需要对信息进行安全加密.图像信息具有数据量大、相关性强、冗余度高等特点,用传统密码学方法加密图像不能满足实时性需要.混沌具有内在伪随机性、非周期性、对初值端敏感以及易于准确再生的特点,这些恰好能够满足密码学中对加密系统的要求,因此,混沌密码成了现代密码学中重要的密码,许多基于混沌的图像加密算法被相继提出。目前,在混沌密码学领域,关于密码算法设计方面的研究较多,对已有混沌密码算法进行密码分析的研究很少,如果不指出这些已有算法存在的安全性缺陷,则在实际应用中将会有许多安全隐患.现有技术已提出了基于Logistic混沌系统的双重变换型图像加密算法,该算法能以较低的时间复杂度达到良好的图像置乱效果,算法的设计思想具有较好的借鉴意义,但算法存在不能抵抗选择明(密)文攻击的安全缺陷。
技术实现思路
本专利技术所要解决的技术问题是提供一种混沌双变换图像加密算法的改进方法。为实现本专利技术的目的,本专利技术所采用的技术方案是:一种混沌双变换图像加密算法的改进方法,所述方法主要包括以下步骤:(1)分析原算法存在的缺陷,选取有M行、N列像素的明文灰度图像矩阵为A,其像素总数表示为L=M×N.设定两个正整数N0、C0,并计算x0=sum(A)/(1275×L),其中sum(A)表示A中全体元素之和,对任何非全零矩阵A,x0的取值范围为0<x0≤0.2,x0作为Logistic系统的初始值,N0作为Logistic系统的预迭代次数,初始参数集(x0,N0,C0)为改进算法的初始密钥集;(2)改进加密算法的实现;(3)解密算法的实现。所述改进加密算法的实现步骤具体为:(1)初始化,对输入的明文图像,给定参数集(x0,N0,C0),对所有(i,j),令Visited(i,j)=0;(2)使Logistic映射式xn+1=μxn(1-xn)预迭代N0次;(3)使Logistic映射式xn+1=μxn(1-xn)继续迭代一次产生新的状态值x,然后依次执行:t=round(x×106),n=mod(t,L)+1;利用序号n换算出矩阵A的第n个元素的行号i和列号j;temp=A(i,j),A(i,j)作为第一次要移动的元素也是随机选择的,它的像素值被暂存于temp变量中;C_=C0;visited(i,j)=1,表示(i,j)位置的元素已经移走;count=1,表示当前已移走元素的数目为1。(4)使Logistic映射式xn+1=μxn(1-xn)继续迭代一次产生新的x值,然后依次执行:t=round(x×106),m=mod(t,L)+1;利用序号m换算出矩阵A的第m个元素的行号row和列号col;(5)若Visited(row,col)为1(表示A中第m个元素已经移动过),则转到步骤4)继续执行,直至找到A中一个未移动的元素;(6)按公式k=mod(t,256)由t产生一个整数密钥k;利用B(i,j)=A(row,col),将A(row,col)位置的像素移动到B(i,j)位置,利用C(i,j)=mod((B(i,j)+C_),256)⊕k对B(i,j)灰度值进行变换得到最终密文C(i,j),然后依次执行:C_=C(i,j),i=row,j=col,Visited(row,col)=1,count=count+1;(7)若count<L,则转到步骤3)继续执行;(8)利用Logistic映射式xn+1=μxn(1-xn)再进行一次迭代得新的x值,然后依次执行:t=round(x×106),k=mod(t,256),B(i,j)=temp;最后利用B(i,j)=A(row,col)和C(i,j)=mod((B(i,j)+C_),256)⊕k计算出当前的C(i,j)值。所述解密算法的实现具体为:(1)初始化,给定密文图像矩阵C和参数集(x0,N0,C0),对所有(i,j),令Visited(i,j)=0;(2)使Logistic映射式xn+1=μxn(1-xn)预迭代N0次;(3)使Logistic映射式xn+1=μxn(1-xn)继续迭代一次产生新的状态值x,然后依次执行:t=round(x×106),n=mod(t,L)+1;利用序号n换算出矩阵A的第n个元素的行号i和列号j,temp=A(i,j);C_=C0;Visited(i,j)=1,表示(i,j)位置的元素已经移走;count=1,表示当前已移走元素的数目为1,同时将首个被选像素的行号i和列号j暂存于临时变量i0和j0:i0=i,j0=j;(4)使Logistic映射式xn+1=μxn(1-xn)继续迭代一次产生新的x值,然后依次执行:t=round(x×106),m=mod(t,L)+1;利用序号m换算出矩阵A的第m个元素的行号row和列号col;(5)若Visited(row,col)为1(表示A中第m个元素已经移动过),则转到步骤4)继续执行,直至找到A中一个未移动的元素;(6)按公式k=mod(t,256)由t计算出当前整数密钥k;利用B(i,j)=mod((C(i,j)⊕k-C_+256),256)由密文C(i,j)值进行逆变换恢复出B(i,j),并利用A(row,col)=B(i,j)将B(i,j)位置的像素移动到A(row,col)位置,然后依次执行:C_=C(i,j),i=row,j=col,Visited(row,col)=1,count=count+1;(7)若count<L,则转到步骤3)继续执行;(8)利用Logistic映射式xn+1=μxn(1-xn)再进行一次迭代得新的x值,然后依次执行:t=round(x×106),k=mod(t,256),利用B(i,j)=mod((C(i,j)⊕k-C_+256),256)计算出当前的B(i,j)值;将B(i,j)移动到A(i0,j0),即A(i0,j0)=B(i,j),并得到恢复的解密图像。本专利技术利用选择明文攻击法成功破解了现有技术提出的算法的等效密码,并在此基础上提出了改进的双重置乱型图像混沌密码算法,改进算法在保留和发扬原算法优点的基础上加强了算法的安全性;改进算法不仅克服了原算法不能抵御选择明文攻击的安全缺陷,而且提高了多项其它方面的密码学性能;改进算法的初始密钥个数比原算法增加了两个(C0和N0),算法的密钥空间更大,抗穷举攻击的性能更强;改进算法数据运算的时间开销比采用实数运算的显著降低了;具有良好置乱性能的优点。附图说明图1为实施例中原始明文图像和加密图像。其中,1-原始明文图像;2-加密图像。图2为实施例中明文图像和密文图像对应的直方图。具体实施方式下列对本专利技术的实施作进一步的说明,以便本领域的技术人员能够更好的理解并实施。实施例1一种混沌双变换图像加密算法的改进方法,所述改进加密算法的实现步骤具体为:(1)初始化,对输入的明文图像,给定参数集(x0,N0,C0),对所有(i,j),令Visited(i,j)=0;(2)使Logistic映射式xn+1=μx本文档来自技高网...
一种混沌双变换图像加密算法的改进方法

【技术保护点】
一种混沌双变换图像加密算法的改进方法,其特征在于,所述方法主要包括以下步骤:(1)分析原算法存在的缺陷,选取有M行、N列像素的明文灰度图像矩阵为A,其像素总数表示为L=M×N.设定两个正整数N0、C0,并计算x0=sum(A)/(1 275×L),其中sum(A)表示A中全体元素之和,对任何非全零矩阵A,x0的取值范围为0<x0≤0.2,x0作为Logistic系统的初始值,N0作为Logistic系统的预迭代次数,初始参数集(x0,N0,C0)为改进算法的初始密钥集;(2)改进加密算法的实现;(3)解密算法的实现。

【技术特征摘要】
1.一种混沌双变换图像加密算法的改进方法,其特征在于,所述方法主要包括以下步骤:(1)分析原算法存在的缺陷,选取有M行、N列像素的明文灰度图像矩阵为A,其像素总数表示为L=M×N.设定两个正整数N0、C0,并计算x0=sum(A)/(1275×L),其中sum(A)表示A中全体元素之和,对任何非全零矩阵A,x0的取值范围为0<x0≤0.2,x0作为Logistic系统的初始值,N0作为Logistic系统的预迭代次数,初始参数集(x0,N0,C0)为改进算法的初始密钥集;(2)改进加密算法的实现;(3)解密算法的实现。2.如权利要求1的一种混沌双变换图像加密算法的改进方法,其特征在于,所述改进加密算法的实现步骤具体为:(1)初始化,对输入的明文图像,给定参数集(x0,N0,C0),对所有(i,j),令Visited(i,j)=0;(2)使Logistic映射式xn+1=μxn(1-xn)预迭代N0次;(3)使Logistic映射式xn+1=μxn(1-xn)继续迭代一次产生新的状态值x,然后依次执行:t=round(x×106),n=mod(t,L)+1;利用序号n换算出矩阵A的第n个元素的行号i和列号j;(4)使Logistic映射式xn+1=μxn(1-xn)继续迭代一次产生新的x值,然后依次执行:t=round(x×106),m=mod(t,L)+1;利用序号m换算出矩阵A的第m个元素的行号row和列号col;(5)若Visited(row,col)为1(表示A中第m个元素已经移动过),则转到步骤4)继续执行,直至找到A中一个未移动的元素;(6)按公式k=mod(t,256)由t产生一个整数密钥k;利用B(i,j)=A(row,col),将A(row,col)位置的像素移动到B(i,j)位置,利用C(i,j)=mod((B(i,j)+C_),256)⊕k对B(i,j)灰度值进行变换得到最终密文C(i,j),然后依次执行:C_=C(i,j),i=row,j=col,Visited(row,col)=1,count=count+1;(7)若count<L,则转到步骤3)继续执行;(8)利用Logistic映射式xn+1=μxn(1-xn)再进...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:钦州市晶通科技有限公司
类型:发明
国别省市:广西,45

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1