[发明专利]一种具有与明文相关密钥流生成机制的混沌图像加密方法有效
申请号: | 201710106798.1 | 申请日: | 2017-02-27 |
公开(公告)号: | CN106910156B | 公开(公告)日: | 2019-07-19 |
发明(设计)人: | 付冲;郑宇;何兴文 | 申请(专利权)人: | 东北大学 |
主分类号: | G06T1/00 | 分类号: | G06T1/00;G06F21/60 |
代理公司: | 沈阳优普达知识产权代理事务所(特殊普通合伙) 21234 | 代理人: | 俞鲁江 |
地址: | 110819 辽宁*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 具有 明文 相关 密钥 生成 机制 混沌 图像 加密 方法 | ||
1.一种具有与明文相关密钥流生成机制的混沌图像加密方法,其特征在于:
步骤1:将待加密图像像素按由左至右、由上至下的顺序展开为一个一维数组,记为imgData={p0,p1,…,p3×H×W-1},其中p0,p1,p2代表第一个点的红、绿、蓝三种颜色分量的像素值,p3,p4,p5代表第二个点的红、绿、蓝三种颜色分量的像素值,以此类推,待加密图像为一幅24位真彩色图像,其大小为H×W;
步骤2:对明文图像实施置乱操作:将明文图像数组imgData中的每一个像素与其后面的某一个像素相交换,最后一个像素不需要交换,交换对象的坐标由logistic混沌映射产生;logistic混沌映射的状态变量初值x'0,该值为置乱密钥,由加密者设定;
具体方法为:
步骤2-1:生成一个长度Lperm=len(imgData)-1的伪随机序列;其中,len(imgData)返回明文图像数组imgData的长度;具体操作方法为:
步骤2-1-1:迭代logistic混沌映射N0次,其中N0为常量,N0≥200,使logistic混沌映射充分进入混沌状态;logistic混沌映射如公式(1)所示;
x'n+1=μx'n(1-x'n),x'n∈[0,1],μ∈[0,4] (1)
其中μ和x'分别为控制参数和状态变量,x'n代表第n次迭代值,其初始值x'0作为置乱密钥,由加密者设定;当μ∈[3.57,4]时,logistic混沌映射处于混沌状态;将μ设为4,使其工作在满射状态;当μ=4时,映射存在两个“不良点”:0.5和0.75,会使状态变量在后续迭代中恒定为“不动点”0与0.75;则对x'的值做一个微小的扰动,增加或减小0.001;
步骤2-1-2:在步骤2-1-1的基础上迭代logistic混沌映射Lperm次,将每次迭代得到的当前状态变量值x'n+1依次放入一维数组logSeq={ls0,ls1,…,ls3×H×W-2}中;
步骤2-1-3:按照下式(2)对logistic混沌映射状态变量数组logSeq进行量化,得到伪随机置乱序列perm={r0,r1,…,r3×H×W-2};
其中,pos(rn)函数返回rn在logistic混沌映射状态变量数组logSeq中的位置,该位置为n;abs(x)函数返回x的绝对值;sig(x,m)函数返回x的前m位有效数字;mod(x,y)函数返回x除以y的余数;所有的状态变量均被定义为双精度浮点数,采用64位double型,根据计算机表达精度,m设为15;
由式(2)可知,rn的取值范围为[(n+1),(len(imgData)-1)],明文图像数组imgData中每一个像素的交换目标从其后面的所有像素中伪随机选择;
步骤2-2:将明文图像数组imgData中的每一个像素pn,最后一个像素除外,与位于rn处的像素prn相交换;
步骤3:对置乱后的图像实施扩散操作;具体方法为:
步骤3-1:生成长度为Lks=len(imgData)的扩散密钥流序列;具体操作方法为:
步骤3-1-1:迭代广义Lorenz-like系统N0次,其中N0为常量,N0≥200,使迭代广义Lorenz-like系统充分进入混沌状态;所使用的广义Lorenz-like系统数学定义如下:
其中x,y,z为状态变量,t代表时间,a,b,c为系统参数;当a=-10,b=-4,c=0时,系统处于混沌状态;
采用四阶龙格库塔法对方程(3)进行求解,其公式为:
其中
h为步长,这里取0.005,xn,yn,zn代表第n次迭代值,其初始值(x0,y0,z0)作为扩散密钥,由加密者设定;
步骤3-1-2:在步骤3-1-1的基础上对系统(3)迭代H×W次;对于每次迭代,将3个状态变量的当前值xn+1,yn+1,zn+1顺序写入一维数组lozlSeq={lls0,lls1,lls2,…,lls3×H×W-1};
步骤3-1-3:按照下式(5)对数组lozlSeq进行量化,得到密钥流keyStm={k0,k1,k2,…,k3×W×H-1};
kn=mod[sig(abs(llsn),(α+mod(pn-1,β))),CL], (5)
其中,pn-1为kn对应的明文像素点pn的前一个点的值,CL为输入图像的量化级,对于24位真彩色图像,CL=256,并且(α+β)≡16(α,β∈N+),(α+mod(pn-1,β))≤15,动态选择混沌状态变量的前α~15位有效数字用于密钥流元素的量化;对于第一个明文像素点,pn-1的初始值p0可由加密者设为一取值在[0,CL]间的整型常量;
通过公式(5)可以看出,明文像素值决定了参与密钥流元素量化的混沌状态变量的有效数字位数,因此生成的密钥流与明文相关;参数α与β的选择对加密系统的有效性具有重要的影响;若α过小,将会降低密钥流的随机性;若β过小,将会降低密钥流与明文的相关性;设置α=9,β=7;
步骤3-2:利用密钥流keyStm对置乱后的图像数组imgData中的每一个像素点实施加密,加密公式为:
其中,cn为对pn加密得到的密文值,cn-1为前一个像素点的密文值,初始值cn-1可由加密者设为一取值范围在[0,CL]的整型常量,⊕代表按位异或操作;
在对像素的加密过程中,由于cn-1的引入,每一个像素点的影响都能被有效地扩散至后续所有的像素点中;
步骤4:根据安全级别要求,进行多轮加密,反复执行步骤2与步骤3;步骤3-1-2所生成的混沌序列可在多轮加密中重用,在第二轮以及后续的加密轮中省略步骤3-1-1和步骤3-1-2;
步骤5:将数组imgData中的像素值重排为一个H行、3×W列的矩阵,作为加密图像输出;
用于解密的公式(6)的逆变换为:
使用步骤1-步骤5加密方法,经置乱一轮、扩散一轮后,得到的加密图像。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东北大学,未经东北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710106798.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于故障录波的架空线路故障指示装置
- 下一篇:一种特种漆包线裸露检测装置