发明名称 一种分块双层自适应扩散图像加密方法
摘要 本发明提供了一种分块双层自适应扩散数字图像加密方法。采用Logistic映射、Tent映射和Sine映射,进行两两组合构建三种新一维混沌映射,提取初始混沌序列,使其具有较宽的混沌范围和较好的混沌行为;然后通过结合Arnold正反向映射,将置乱与扩散同步进行,不仅可以使每个像素的访问顺序及每个位置的存储顺序机会均等,增强置乱随机性,克服常规Arnold映射从规则到随机访问的缺陷,而且在置乱过程中采用分块双层自适应扩散,利用密文像素与密文像素、明文像素及混沌随机序列间的相互作用,将每个像素影响非线性地扩散到整幅图像矩阵中,并在扩散过程中不断扰动混沌系统,形成自适应扩散过程,增强加密图像对密钥、密文及明文的敏感性。
申请公布号 CN104766264A 申请公布日期 2015.07.08
申请号 CN201510043606.8 申请日期 2015.01.22
申请人 西北工业大学 发明人 张绍武;徐亚;宋金林
分类号 G06T1/00(2006.01)I 主分类号 G06T1/00(2006.01)I
代理机构 代理人
主权项 一种分块双层自适应扩散图像加密方法,其特征在于包含下述步骤:步骤1:混沌系统构造新混沌系统是由两个不同的已有一维混沌映射作为种子映射构造的非线性混沌系统,构造方程如下:X<sub>n+1</sub>=(F(a,X<sub>n</sub>)+G(b,X<sub>n</sub>))mod1   (1) 其中F(a,X<sub>n</sub>)、G(b,X<sub>n</sub>)为种子映射,a,b分别为其控制参数;mod为取模操作,为保证输出数据在区间(0,1)内;n为迭代次数;本加密方法利用Logistic、Tent和Sine映射,两两组合作为种子映射,并按式(1)构造出三种新一维混沌映射系统;动力学方程如下:Logistic‑Tent映射动力学方程:<img file="FSA0000113568980000011.GIF" wi="1863" he="235" />Logistic‑Sine映射动力学方程:x<sub>n+1</sub>=(L(μ,x<sub>n</sub>)+S((4-μ),x<sub>n</sub>))mod1 =(μx<sub>n</sub>(1‑x<sub>n</sub>)+(4‑μ)sin(πx<sub>n</sub>)/4)mod1,   μ∈(0,4)   (3)Tent‑Sine映射动力学方程:<img file="FSA0000113568980000012.GIF" wi="1891" he="239" />其中L,T,S分别表示Logistic、Tent、Sine映射;μ为系统控制参数,n为迭代次数;与种子混沌映射相比,新一维混沌系统具有更为复杂的混沌特性,它在μ∈(0,4)时处于混沌状态,可见,新一维混沌系统具有更宽混沌范围、更好混沌行为和混沌系统密度函数分布较一致等优点;步骤2:定义初始加密矩阵设明文图像为m×n的灰度图像I,初始加密矩阵E是元素全为1的m×n矩阵,并将其划分成大小为t×t的矩阵子块,共有(m/t)×(n/t)个子块(其中t是m、n的公约数);步骤3:混沌序列生成设初始密钥Key<sub>1</sub>为[k<sub>1</sub>,x<sub>10</sub>,x<sub>20</sub>,x<sub>30</sub>,μ<sub>1</sub>,μ<sub>2</sub>,μ<sub>3</sub>],x<sub>10</sub>,x<sub>20</sub>,x<sub>30</sub>,μ<sub>1</sub>,μ<sub>2</sub>,μ<sub>3</sub>分别为公式(2)、(3)和(4)中初始值和初始参数;1)公式(4)迭代k次,产生长度为k的混沌序列{x′<sub>3</sub><sub>,</sub><sub>j</sub>},j=1,2,...,k,舍弃前k<sub>1</sub>项,按公式(6)、(7)处理余项,得序列{x<sub>3</sub><sub>,</sub><sub>i</sub>},{y<sub>3</sub><sub>,</sub><sub>i</sub>};y<sub>3</sub><sub>,</sub><sub>i</sub>=floor(x′<sub>3</sub><sub>,</sub><sub>i</sub>×10<sup>5</sup>‑floor(x′<sub>3</sub><sub>,</sub><sub>i</sub>×10<sup>5</sup>))×10<sup>2</sup>mod8,(i=1,2,...,p)   (6)x<sub>3</sub><sub>,</sub><sub>i</sub>=floor(x′<sub>3</sub><sub>,</sub><sub>i</sub>×10<sup>6</sup>‑floor(x′<sub>3</sub><sub>,</sub><sub>i</sub>×10<sup>6</sup>))×10<sup>3</sup>modG<sub>,</sub>(i=1,2,...,p)   (7)其中p=t<sup>2</sup>,k=k<sub>1</sub>+p,floor(.)表示向下取整,G为图像灰度级;2)分别迭代公式(2)、(3),取序列{y<sub>3</sub><sub>,</sub><sub>i</sub>}中前p‑1项作为采样间隔,对迭代产生的混沌序列从第k<sub>1</sub>+1项开始进行抽样,生成序列{x′<sub>1</sub><sub>,</sub><sub>i</sub>}和{x′<sub>2</sub><sub>,</sub><sub>i</sub>},并对其按照公式(8)、(9)处理,生成序列{x<sub>1</sub><sub>,</sub><sub>i</sub>}和{x<sub>2</sub><sub>,</sub><sub>i</sub>};x<sub>1</sub><sub>,</sub><sub>i</sub>=floor(x′<sub>1</sub><sub>,</sub><sub>i</sub>×10<sup>6</sup>‑floor(x′<sub>1</sub><sub>,</sub><sub>i</sub>×10<sup>6</sup>))×10<sup>3</sup>mod G,(i=1,2,...,p)   (8)x<sub>2</sub><sub>,</sub><sub>i</sub>=floor(x′<sub>2</sub><sub>,</sub><sub>i</sub>×10<sup>6</sup>‑floor(x′<sub>2</sub><sub>,</sub><sub>i</sub>×10<sup>6</sup>))×10<sup>3</sup>mod G,(i=1,2,...,p)   (9)3)按照公式(10)、(11)、(12)处理{x<sub>1</sub><sub>,</sub><sub>i</sub>}、{x<sub>2</sub><sub>,</sub><sub>i</sub>}和{x<sub>3</sub><sub>,</sub><sub>i</sub>}序列生成混沌序列{z<sub>1</sub><sub>,</sub><sub>i</sub>}、{z<sub>2</sub><sub>,</sub><sub>i</sub>}和{z<sub>3</sub><sub>,</sub><sub>i</sub>}<img file="FSA0000113568980000021.GIF" wi="1998" he="104" /><img file="FSA0000113568980000022.GIF" wi="1988" he="99" /><img file="FSA0000113568980000023.GIF" wi="1988" he="101" />步骤4:分块双层自适应扩散此步骤通过结合Arnold正反向映射,不仅可以使每个像素的访问顺序及每个位置的存储顺序机会均等,增强置乱随机性,克服常规Arnold映射从规则到随机访问的缺陷,而且在置乱过程中采用分块双层自适应非线性扩散,增加算法对密钥、明文的敏感性;其分块双层自适应扩散实现步骤如下:设密钥Key<sub>2</sub>为[k<sub>1</sub>,k<sub>2</sub>,...,k<sub>7</sub>,c<sub>0</sub>];首先,对明文图像进行Arnold反向映射,利用公式(13)获取明文图像矩阵中随机位置(x′,y′)处的明文像素值I(x′,y′);对初始加密矩阵进行Arnold正向映射,利用公式(14)产生随机矩阵块位置(g′,h′),并对此随机矩阵块进行Arnold正向映射,利用公式(15)产生此随机块中的随机位置(k′,l′);<img file="FSA0000113568980000031.GIF" wi="1433" he="284" /><img file="FSA0000113568980000032.GIF" wi="1966" he="187" /><img file="FSA0000113568980000033.GIF" wi="1948" he="188" />其中p<sub>1</sub>=z<sub>1</sub>(1),q<sub>1</sub>=n/gcd(m,n),p<sub>2</sub>=z<sub>2</sub>(1),q<sub>2</sub>=(n/t)/gcd(m/t,n/t),p<sub>3</sub>=z<sub>3</sub>(1),q<sub>3</sub>=t/gcd(t,t);1)块内随机像素扩散将随机像素I(x′,y′)按公式(16)、(17)进行如下像素替换、扩散处理,并存入大小为t×t过渡矩阵块C的(k′,l′)位置;若k′mod2=1,则,<img file="FSA0000113568980000034.GIF" wi="1435" he="109" />否则,<img file="FSA0000113568980000035.GIF" wi="1380" he="107" />其中c为前一个处理过的随机像素;当x=1,y=1时,c=c<sub>0</sub>,直至填满矩阵块C;2)随机矩阵块扩散为达到较佳置乱和扩散效果,对已填满的过渡矩阵块C按公式(18)进行如下块扩散处理,并存入加密矩阵E中(g′,h′)处的随机块内;<img file="FSA0000113568980000041.GIF" wi="1940" he="104" />其中C′为前一个随机加密矩阵块;当g=1,h=1时,C′=C<sub>0</sub>;w=(z<sub>1</sub>+z<sub>2</sub>+z<sub>3</sub>)modG是长度为p的随机序列;C<sub>0</sub>是由w序列生成t×t矩阵块;Z<sub>3</sub>是混沌序列z<sub>3</sub>转化的t×t矩阵块;3)密钥扰动将当前(g′,h′)处加密矩阵块中的像素作为扰动因子,按如下方式扰动混沌系统;设<img file="FSA0000113568980000042.GIF" wi="863" he="178" />利用M、N产生Logistic‑Tent映射、Logistic‑Sine映射及Tent‑Sine映射混沌系统新的参数和初始值;Logistic‑Tent映射,μ<sub>1</sub>=[k<sub>2</sub>+2(M+N+1)/G]/2,x<sub>10</sub>=(k<sub>3</sub>+MN)/256<sup>2</sup>   (19) Logistic‑Sine映射,μ<sub>2</sub>=[k<sub>4</sub>+2(M+N+1)/G]/2,x<sub>20</sub>=(k<sub>5</sub>+MN)/256<sup>2</sup>   (20) Tent‑Sine映射,μ<sub>3</sub>=[k<sub>6</sub>+2(M+N+1)/G]/2,x<sub>30</sub>=(k<sub>7</sub>+MN)/256<sup>2</sup>   (21) 上述扰动密钥方式不仅可以使密文像素的影响扩散到整幅图像,从而增强加密图像对密钥、密文及明文的敏感性,而且k<sub>1</sub>,k<sub>2</sub>,...,k<sub>7</sub>,c<sub>0</sub>的引入可以增大密钥空间;利用上述系统产生的参数和初始值,对混沌系统进行扰动,产生新的混沌序列z<sub>1</sub>,z<sub>2</sub>,z<sub>3</sub>,供下一个随机加密块生成使用;依此类推,直至把E填满,从而自适应完成加密,并生成加密图像矩阵E;步骤5:解密过程是加密的逆运算。
地址 710072 陕西省西安市友谊西路127号