发明名称 基于混沌序列和超混沌系统的彩色图像加密方法
摘要 本发明涉及一种基于混沌序列和超混沌系统的彩色图像加密方法,主要包括以下步骤:对原始彩色图像进行位级联合置乱,得到置乱图像;将置乱图像分解成R、G、B三基色分量,并利用超混沌系统生成用于加密置乱图像的加密矩阵;利用加密矩阵、并结合明文信息和三基色分量信息改变置乱图像的三基色分量的所有像素值,进行联合扩散,得到联合扩散后图像的三基色分量,从而得到最终的加密图像。上述方法大大增加了密钥空间,使得安全性、加密效果和密钥敏感性更高,抗攻击能力更强,并更易于硬件实现。
申请公布号 CN103489151B 申请公布日期 2014.06.18
申请号 CN201310412691.1 申请日期 2013.09.11
申请人 河南大学 发明人 柴秀丽;甘志华;朱长江;孔庆梅;周福娜;史春晓;郭峻言;刘媛;王艳娜
分类号 G06T1/00(2006.01)I 主分类号 G06T1/00(2006.01)I
代理机构 郑州大通专利商标代理有限公司 41111 代理人 陈大通
主权项 1.一种基于混沌序列和超混沌系统的彩色图像加密方法,其特征在于包括以下步骤:(1)输入图像大小为M×N的原始彩色图像I,分离图像I的R、G、B三基色分量得到分量矩阵I_R<sub>MN</sub>、I_G<sub>MN</sub>和I_B<sub>MN</sub>,每个分量矩阵大小为M×N,像素值在0到255之间;(2)利用一维混沌系统生成用于置乱的混沌序列,对原始彩色图像I进行位级联合置乱,得到置乱后大小为M×N的图像I<sub>6</sub>;(3)将置乱后的图像I<sub>6</sub>分解成R、G、B三基色分量I<sub>6</sub>_R<sub>MN</sub>、I<sub>6</sub>_G<sub>MN</sub>和I<sub>6</sub>_B<sub>MN</sub>,并转换成三个长度为M×N的序列I<sub>6</sub>_R、I<sub>6</sub>_G和I<sub>6</sub>_B;(4)利用超混沌系统生成用于加密置乱图像I<sub>6</sub>的加密矩阵;(5)利用步骤(4)中得到的加密矩阵,结合明文信息和I<sub>6</sub>_R、I<sub>6</sub>_G、I<sub>6</sub>_B三基色分量信息改变置乱图像I<sub>6</sub>的三基色分量的所有像素值,进行联合扩散,得到联合扩散后图像的三基色分量I<sub>7</sub>_R<sub>MN</sub>、I<sub>7</sub>_G<sub>MN</sub>和I<sub>7</sub>_B<sub>MN</sub>,从而得到最终的加密图像I<sub>7</sub>;所述步骤(2)中的一维混沌系统为PWLCM线性分段混沌映射系统:<maths num="0001"><![CDATA[<math><mrow><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><mi>Fp</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mfrac><msub><mi>x</mi><mi>i</mi></msub><mi>p</mi></mfrac><mo>;</mo><mrow><mo>(</mo><mn>0</mn><mo>&le;</mo><msub><mi>x</mi><mi>i</mi></msub><mo>&lt;</mo><mi>p</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mfrac><mrow><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><mi>p</mi></mrow><mrow><mn>0.5</mn><mo>-</mo><mi>p</mi></mrow></mfrac><mo>;</mo><mrow><mo>(</mo><mi>p</mi><mo>&le;</mo><msub><mi>x</mi><mi>i</mi></msub><mo>&lt;</mo><mn>0.5</mn><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mi>Fp</mi><mrow><mo>(</mo><mn>1</mn><mo>-</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>;</mo><mrow><mo>(</mo><mn>0.5</mn><mo>&le;</mo><msub><mi>x</mi><mi>i</mi></msub><mo>&lt;</mo><mn>1</mn><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>其中p为系统参数,并且,步骤(2)中利用一维混沌系统生成混沌序列、对原始彩色图像I进行位级联合置乱的具体步骤为:2.1)把原始彩色图像I的三基色分量矩阵中的每个像素变为8位二进制的字符串,得到三个大小为M×8N的二进制矩阵I_R<sub>8MN</sub>、I_G<sub>8MN</sub>和I_B<sub>8MN</sub>,按照I_R<sub>8MN</sub>、I_G<sub>8MN</sub>和I_B<sub>8MN</sub>的顺序,从上到下纵向组合排列,得到一个大小为3M×8N的图像I<sub>1</sub>;2.2)利用PWLCM系统在不同初值x′<sub>0</sub>、y′<sub>0</sub>和不同参数p<sub>x′</sub>、p<sub>y′</sub>下产生实值混沌序列X<sub>0</sub>、Y<sub>0</sub>,其中x′<sub>0</sub>、p<sub>x′</sub>分别是数列X<sub>0</sub>的初始值和系统参数,y′<sub>0</sub>、p<sub>y′</sub>分别是数列Y<sub>0</sub>的初始值和系统参数,初始值x′<sub>0</sub>、y′<sub>0</sub>和系统参数p<sub>x′</sub>、p<sub>y′</sub>均为密钥;实值混沌序列X<sub>0</sub>的长度为<img file="FDA0000485044350000012.GIF" wi="206" he="86" />(t<sub>1</sub>≥1000),实值混沌序列Y<sub>0</sub>的长度为<img file="FDA0000485044350000013.GIF" wi="196" he="82" />(t<sub>2</sub>≥1000),抛弃前面的t<sub>1</sub>和t<sub>2</sub>个数值,得到实值混沌序列X′、Y′;2.3)对X′、Y′按照升序重新排列,得到新的子序列,将原子序列中每个元素所在位置序号替换新的子序列中的对应元素,最终得到长度为3M和8N的置乱序列INX′、INY′:<maths num="0002"><![CDATA[<math><mfenced open='{' close=''><mtable><mtr><mtd><msup><mi>INX</mi><mo>&prime;</mo></msup><mo>=</mo><mo>{</mo><msubsup><mi>INX</mi><mn>1</mn><mo>&prime;</mo></msubsup><mo>,</mo><msubsup><mi>INX</mi><mn>2</mn><mo>&prime;</mo></msubsup><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msubsup><mi>INX</mi><mrow><mn>3</mn><mi>M</mi></mrow><mo>&prime;</mo></msubsup><mo>}</mo></mtd></mtr><mtr><mtd><msup><mi>INY</mi><mo>&prime;</mo></msup><mo>=</mo><mo>{</mo><msubsup><mi>INY</mi><mn>1</mn><mo>&prime;</mo></msubsup><mo>,</mo><msubsup><mi>INY</mi><mn>2</mn><mo>&prime;</mo></msubsup><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msubsup><mi>INY</mi><mrow><mn>8</mn><mi>N</mi></mrow><mo>&prime;</mo></msubsup><mo>}</mo></mtd></mtr></mtable></mfenced></math>]]></maths>并且,这两个序列中每个元素的元素值代表该位置上的数在所有元素中的位置;2.4)根据置乱序列INX′、INY′对二进制图像I<sub>1</sub>进行处理:首先根据序列INX′对二进制图像I<sub>1</sub>进行行变换,即将矩阵I<sub>1</sub>的第INX′<sub>1</sub>行变换到第1行,第INX′<sub>2</sub>行变换到第2行,依次类推,直到所有行变换完毕,得到图像矩阵I<sub>2</sub>,再用序列INY′对二进制图像I<sub>2</sub>进行列变换,即将矩阵I<sub>2</sub>的第INY<sub>1</sub>′列变换到第1列,第INY<sub>2</sub>′列变换到第2列,依次类推,直到所有列变换完毕,得到二进制图像矩阵I<sub>3</sub>;2.5)把二进制图像矩阵I<sub>3</sub>从上到下分割成三个大小为M×8N的矩阵I<sub>3</sub>_R<sub>MN</sub>、I<sub>3</sub>_G<sub>MN</sub>和I<sub>3</sub>_B<sub>MN</sub>,再把三个矩阵按照I<sub>3</sub>_R<sub>MN</sub>、I<sub>3</sub>_G<sub>MN</sub>、I<sub>3</sub>_B<sub>MN</sub>的顺序从左到右横向排列,得到M行、24N列的二进制图像矩阵I<sub>4</sub>;2.6)设定初始值z′<sub>0</sub>和系统参数p<sub>z′</sub>,迭代PWLCM混沌系统得到长度为<img file="FDA0000485044350000023.GIF" wi="182" he="76" />(t<sub>3</sub>≥1000)的混沌序列Z<sub>0</sub>,抛弃前面的t<sub>3</sub>个数值,得到实值混沌序列Z′;设定初始值w′<sub>0</sub>和系统参数p<sub>w′</sub>,迭代PWLCM混沌系统得到长度为<img file="FDA0000485044350000024.GIF" wi="227" he="80" />(t<sub>4</sub>≥1000)的混沌序列W<sub>0</sub>,抛弃前面的t<sub>4</sub>个数值,得到实值混沌序列W′;2.7)对实值混沌序列Z′、W′按照升序重新排列,得到新的子序列,然后将原子序列中每个元素所在位置序号替换新的子序列中的对应元素,最终得到长度为M和24N的置乱序列INZ′、INW′:<maths num="0003"><![CDATA[<math><mfenced open='{' close=''><mtable><mtr><mtd><msup><mi>INZ</mi><mo>&prime;</mo></msup><mo>=</mo><mo>{</mo><msubsup><mi>INZ</mi><mn>1</mn><mo>&prime;</mo></msubsup><mo>,</mo><msubsup><mi>INZ</mi><mn>2</mn><mo>&prime;</mo></msubsup><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msubsup><mi>INZ</mi><mi>M</mi><mo>&prime;</mo></msubsup><mo>}</mo></mtd></mtr><mtr><mtd><msup><mi>INW</mi><mo>&prime;</mo></msup><mo>=</mo><mo>{</mo><msubsup><mi>INW</mi><mn>1</mn><mo>&prime;</mo></msubsup><mo>,</mo><msubsup><mi>INW</mi><mn>2</mn><mo>&prime;</mo></msubsup><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msubsup><mi>INW</mi><mrow><mn>24</mn><mi>N</mi></mrow><mo>&prime;</mo></msubsup><mo>}</mo></mtd></mtr></mtable></mfenced></math>]]></maths>2.8)根据置乱序列INZ′、INW′对二进制图像I<sub>4</sub>进行处理:首先根据序列INZ′对二进制图像I<sub>4</sub>进行行变换,即将矩阵I<sub>4</sub>的第INZ′<sub>1</sub>行变换到第1行,第INZ′<sub>2</sub>行变换到第2行,依次类推,直到所有行变换完毕,得到图像矩阵I<sub>41</sub>;再用序列INW′对二进制图像I<sub>41</sub>进行列变换,即将I<sub>41</sub>的第INW<sub>1</sub>′列变换到第1列,第INW<sub>2</sub>′列变换到第2列,依次类推,直到所有列变换完毕,得到M行、24N列的二进制图像矩阵I<sub>5</sub>;2.9)将二进制图像矩阵I<sub>5</sub>从左到右进行分割,分割成3个大小为M×8N的二进制矩阵,把像素值从二进制转换成十进制,得到3个大小为M×N的图像I<sub>5</sub>_R<sub>MN</sub>、I<sub>5</sub>_G<sub>MN</sub>和I<sub>5</sub>_B<sub>MN</sub>;2.10)将图像I<sub>5</sub>_R<sub>MN</sub>、I<sub>5</sub>_G<sub>MN</sub>和I<sub>5</sub>_B<sub>MN</sub>进行合并,即I<sub>6</sub>(1:M,1:N,1)=I<sub>5</sub>_R<sub>MN</sub>(1:M,1:N),I<sub>6</sub>(1:M,1:N,2)=I<sub>5</sub>_G<sub>MN</sub>(1:M,1:N),I<sub>6</sub>(1:M,1:N,3)=I<sub>5</sub>_B<sub>MN</sub>(1:M,1:N),从而得到置乱后的图像I<sub>6</sub>。
地址 475001 河南省开封市顺河区明伦街85号