发明名称 一种基于6维混沌系统的彩色图像一次性密钥DNA加密方法
摘要 本发明涉及图像处理与信息安全领域,具体涉及一种基于6维混沌系统的彩色图像一次性密钥DNA加密方法。本发明对于明文彩色像素图像P为.bmp格式,图像尺寸为M×N,提取图像的三色通道矩阵分别构成三个M×N的矩阵P<sub>R</sub>,P<sub>G</sub>,P<sub>B</sub>;产生一个随机数R,求取32位十六进制图像散列值MD5,MD5=MD(P,R);将MD5平均分成8份,将MD归一到(0,0.01)之间。本发明提供一种基于6维混沌系统的彩色图像一次性密钥DNA加密方法。引入了散列值和绝对误差概念,使加密算法与图像明文相联系,有效提升了算法安全性;本发明引入了DNA序列像素值调整和图像三通道耦合运算,有效降低了加密算法复杂程度,极大降低了密文像素值之间的相关性,提高了密文抗攻击特性,加密效果好,安全性高。
申请公布号 CN104809685A 申请公布日期 2015.07.29
申请号 CN201510242546.2 申请日期 2015.05.13
申请人 哈尔滨工程大学 发明人 高振国;张伟;陈丹杰;赵蕴龙;蔡绍滨;刘彦文;张松涛;吉明;杨生;梁利华
分类号 G06T1/00(2006.01)I 主分类号 G06T1/00(2006.01)I
代理机构 代理人
主权项 一种基于6维混沌系统的彩色图像一次性密钥DNA加密方法,其特征在于,包括下列步骤:(1)对于明文彩色像素图像P为.bmp格式,图像尺寸为M×N,提取图像的三色通道矩阵分别构成三个M×N的矩阵P<sub>R</sub>,P<sub>G</sub>,P<sub>B</sub>;(2)产生一个随机数R,求取32位十六进制图像散列值MD5,MD5=MD(P,R);(3)将MD5平均分成8份,即MD(j)={d<sub>j1</sub>d<sub>j2</sub>d<sub>j3</sub>d<sub>j4</sub>},j=1,...,8,将MD归一到(0,0.01)之间,D(i)=hex2dec(MD(i)),i=1,...,8;(4)从D中任意选取4个数{D(1),D(3),D(6),D(7)}并求和得到s<sub>1</sub>=D(1)+D(3)+D(6)+D(7),依次类推求取s<sub>2</sub>,s<sub>3</sub>,s<sub>4</sub>,s<sub>5</sub>,s<sub>6</sub>,获取绝对误差序列ε={ε<sub>1</sub>,ε<sub>2</sub>,ε<sub>3</sub>,ε<sub>4</sub>,ε<sub>5</sub>,ε<sub>6</sub>},如果s<sub>i</sub>×100mod2=0,则ε<sub>i</sub>取+;否则,ε<sub>i</sub>取‑,<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>&epsiv;</mi><mi>i</mi></msub><mo>=</mo><mo>&PlusMinus;</mo><msub><mi>s</mi><mi>i</mi></msub><mo>+</mo><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mn>8</mn></munderover><mi>D</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow><mo>,</mo><mi>i</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mn>6</mn><mo>;</mo></mrow>]]></math><img file="FDA0000716536400000011.GIF" wi="655" he="151" /></maths>(5)获取更新后的6维混沌系统初始参数x′<sub>i0</sub>,i=1,2,...,6,代入6th‑CNN高阶混沌系统迭代m+3MN次,去除前m个值获取混沌序列Y={y<sub>1</sub>,y<sub>2</sub>,y<sub>3</sub>,y<sub>4</sub>,y<sub>5</sub>,y<sub>6</sub>},x<sub>i</sub>′=x<sub>i0</sub>+ε<sub>i</sub>,i=1,2,...,6,y<sub>i</sub>=x<sub>i</sub>×10<sup>14</sup>mod256,i=1,2,...,6;(6)用MD5最后一位计算t=MD5(32)mod6+1,取y<sub>t</sub>的前3M位得到行置乱序列1×3M的TN<sub>1</sub>;取y<sub>t+1mod6+1</sub>得到列置乱序列M×3N的TN<sub>2</sub>;取y<sub>t+2mod6+1</sub>的前M×N位并得到明文DNA译码规则序列1×MN的TN<sub>3</sub>;取y<sub>t+3mod6+1</sub>,y<sub>t+4mod6+1</sub>和y<sub>t+5mod6+1</sub>的前2M×N位,奇数项获取译码规则1×MN的TN<sub>41</sub>,TN<sub>51</sub>,TN<sub>61</sub>,偶数项获取三通道混沌加密预处理序列1×MN的TN<sub>42</sub>,TN<sub>52</sub>,TN<sub>62</sub>TN=ymod8+1;(7)将明文P<sub>R</sub>,P<sub>G</sub>,P<sub>B</sub>的每个像素点值转化为8位二进制数,将其每2位为一组,依据TN<sub>3</sub>进行DNA译码,7.1)若TN<sub>3</sub>(i)=1,则00=A,11=T,10=C,01=G;7.2)若TN<sub>3</sub>(i)=2,则00=A,11=T,01=C,10=G;7.3)若TN<sub>3</sub>(i)=3,则11=A,00=T,10=C,01=G;7.4)若TN<sub>3</sub>(i)=4,则11=A,00=T,01=C,10=G;7.5)若TN<sub>3</sub>(i)=5,则10=A,01=T,00=C,11=G;7.6)若TN<sub>3</sub>(i)=6,则01=A,10=T,00=C,11=G;7.7)若TN<sub>3</sub>(i)=7,则10=A,01=T,11=C,00=G;7.8)若TN<sub>3</sub>(i)=8,则01=A,10=T,11=C,00=G,译码后分别得到明文DNA编码<img file="FDA0000716536400000021.GIF" wi="450" he="81" />三通道混沌加密预处理序列TN<sub>42</sub>、TN<sub>52</sub>、TN<sub>62</sub>依据译码序列TN<sub>41</sub>,TN<sub>51</sub>,TN<sub>61</sub>进行DNA译码,一码后得到三通道混沌加密DNA序列<img file="FDA0000716536400000022.GIF" wi="284" he="83" /><img file="FDA0000716536400000023.GIF" wi="141" he="83" />(8)行置乱:将<img file="FDA0000716536400000024.GIF" wi="424" he="78" />依次连接构成一个3M×N的矩阵P<sub>1</sub>,得到序列TN<sub>1</sub>中的元素按升序排列在TN<sub>1</sub>中的位置序列TN<sub>1</sub>′,将P<sub>1</sub>的第一行移动到P<sub>1</sub>的第TN<sub>1</sub>′(1)行,P<sub>1</sub>的第二行移动到P<sub>1</sub>的第TN<sub>1</sub>′(2)行,…,依次类推,直至P<sub>1</sub>的第3M行移动到P<sub>1</sub>的第TN<sub>1</sub>′(3M)行为止,得到行置乱后矩阵P<sub>1out</sub>;TN′=sort(TN)          (1)(9)列置乱:将P<sub>1out</sub>转化成M×3N的矩阵P<sub>2</sub>,得到序列TN<sub>2</sub>中的每一行元素按升序排列在TN<sub>2</sub>中的位置序列TN<sub>2</sub>′,将P<sub>2</sub>的第i行第j列的元素移动到P<sub>1</sub>的第i行第TN<sub>2</sub>′(i,j)列,直至P<sub>1</sub>的第M行第3N列移动到P<sub>1</sub>的第M行第TN<sub>2</sub>′(M,3N)行为止,得到列置乱后矩阵P<sub>2out</sub>;(10)像素值调整:将P<sub>2out</sub>分解成3个M×N矩阵P<sub>3R</sub>、P<sub>3G</sub>、P<sub>3B</sub>,对图像像素值进行加密,其中符号<img file="FDA0000716536400000025.GIF" wi="48" he="64" />为DNA加法运算,<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>A</mi><mover><mo>+</mo><mo>~</mo></mover><mo>{</mo><mi>A</mi><mo>,</mo><mi>T</mi><mo>,</mo><mi>C</mi><mo>,</mo><mi>G</mi><mo>}</mo><mo>=</mo><mo>{</mo><mi>C</mi><mo>,</mo><mi>G</mi><mo>,</mo><mi>A</mi><mo>,</mo><mi>T</mi><mo>}</mo><mo>,</mo><mi>T</mi><mover><mo>+</mo><mo>~</mo></mover><mo>{</mo><mi>A</mi><mo>,</mo><mi>T</mi><mo>,</mo><mi>C</mi><mo>,</mo><mi>G</mi><mo>}</mo><mo>=</mo><mo>{</mo><mi>G</mi><mo>,</mo><mi>C</mi><mo>,</mo><mi>T</mi><mo>,</mo><mi>A</mi><mo>}</mo><mo>,</mo></mrow>]]></math><img file="FDA0000716536400000026.GIF" wi="1279" he="86" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>C</mi><mover><mo>+</mo><mo>~</mo></mover><mo>{</mo><mi>A</mi><mo>,</mo><mi>T</mi><mo>,</mo><mi>C</mi><mo>,</mo><mi>G</mi><mo>}</mo><mo>=</mo><mo>{</mo><mi>A</mi><mo>,</mo><mi>T</mi><mo>,</mo><mi>C</mi><mo>,</mo><mi>G</mi><mo>}</mo><mo>,</mo><mi>G</mi><mover><mo>+</mo><mo>~</mo></mover><mo>{</mo><mi>A</mi><mo>,</mo><mi>T</mi><mo>,</mo><mi>C</mi><mo>,</mo><mi>G</mi><mo>}</mo><mo>=</mo><mo>{</mo><mi>T</mi><mo>,</mo><mi>A</mi><mo>,</mo><mi>G</mi><mo>,</mo><mi>C</mi><mo>}</mo><mo>;</mo></mrow>]]></math><img file="FDA0000716536400000027.GIF" wi="1294" he="87" /></maths><img file="FDA0000716536400000028.GIF" wi="50" he="54" />为DNA减法运算:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>A</mi><mover><mo>-</mo><mo>~</mo></mover><mo>{</mo><mi>A</mi><mo>,</mo><mi>T</mi><mo>,</mo><mi>C</mi><mo>,</mo><mi>G</mi><mo>}</mo><mo>=</mo><mo>{</mo><mi>C</mi><mo>,</mo><mi>A</mi><mo>,</mo><mi>G</mi><mo>,</mo><mi>T</mi><mo>}</mo><mo>,</mo><mi>T</mi><mover><mo>-</mo><mo>~</mo></mover><mo>{</mo><mi>A</mi><mo>,</mo><mi>T</mi><mo>,</mo><mi>C</mi><mo>,</mo><mi>G</mi><mo>}</mo><mo>=</mo><mo>{</mo><mi>G</mi><mo>,</mo><mi>C</mi><mo>,</mo><mi>T</mi><mo>,</mo><mi>A</mi><mo>}</mo><mo>,</mo><mi>C</mi><mover><mo>-</mo><mo>~</mo></mover><mo>{</mo><mi>A</mi><mo>,</mo><mi>T</mi><mo>,</mo><mi>C</mi><mo>,</mo><mi>G</mi><mo>}</mo><mo>=</mo><mo>{</mo><mi>A</mi><mo>,</mo><mi>T</mi><mo>,</mo><mi>C</mi><mo>,</mo><mi>G</mi><mo>}</mo><mo>,</mo></mrow>]]></math><img file="FDA0000716536400000029.GIF" wi="1937" he="87" /></maths><maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>G</mi><mover><mo>-</mo><mo>~</mo></mover><mo>{</mo><mi>A</mi><mo>,</mo><mi>T</mi><mo>,</mo><mi>C</mi><mo>,</mo><mi>G</mi><mo>}</mo><mo>=</mo><mo>{</mo><mi>T</mi><mo>,</mo><mi>G</mi><mo>,</mo><mi>A</mi><mo>,</mo><mi>C</mi><mo>}</mo><mo>;</mo></mrow>]]></math><img file="FDA00007165364000000210.GIF" wi="638" he="89" /></maths><img file="FDA00007165364000000211.GIF" wi="61" he="74" />为为DNA异或运算,规则为:<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mi>A</mi><mover><mo>&CirclePlus;</mo><mo>~</mo></mover><mo>{</mo><mi>A</mi><mo>,</mo><mi>T</mi><mo>,</mo><mi>C</mi><mo>,</mo><mi>G</mi><mo>}</mo><mo>=</mo><mo>{</mo><mi>A</mi><mo>,</mo><mi>T</mi><mo>,</mo><mi>C</mi><mo>,</mo><mi>G</mi><mo>}</mo><mo>,</mo></mrow>]]></math><img file="FDA00007165364000000212.GIF" wi="642" he="89" /></maths><maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><mi>T</mi><mover><mo>&CirclePlus;</mo><mo>~</mo></mover><mo>{</mo><mi>A</mi><mo>,</mo><mi>T</mi><mo>,</mo><mi>C</mi><mo>,</mo><mi>G</mi><mo>}</mo><mo>=</mo><mo>{</mo><mi>T</mi><mo>,</mo><mi>A</mi><mo>,</mo><mi>G</mi><mo>,</mo><mi>C</mi><mo>}</mo><mo>,</mo><mi>C</mi><mover><mo>&CirclePlus;</mo><mo>~</mo></mover><mo>{</mo><mi>A</mi><mo>,</mo><mi>T</mi><mo>,</mo><mi>C</mi><mo>,</mo><mi>G</mi><mo>}</mo><mo>=</mo><mo>{</mo><mi>C</mi><mo>,</mo><mi>G</mi><mo>,</mo><mi>A</mi><mo>,</mo><mi>T</mi><mo>}</mo><mo>,</mo><mi>G</mi><mover><mo>&CirclePlus;</mo><mo>~</mo></mover><mo>{</mo><mi>A</mi><mo>,</mo><mi>T</mi><mo>,</mo><mi>C</mi><mo>,</mo><mi>G</mi><mo>}</mo><mo>=</mo><mo>{</mo><mi>G</mi><mo>,</mo><mi>C</mi><mo>,</mo><mi>T</mi><mo>,</mo><mi>A</mi><mo>}</mo><mo>.</mo></mrow>]]></math><img file="FDA00007165364000000213.GIF" wi="1978" he="91" /></maths>最终得到密文图像矩阵<img file="FDA00007165364000000214.GIF" wi="274" he="83" />和<img file="FDA00007165364000000215.GIF" wi="138" he="85" /><maths num="0008" id="cmaths0008"><math><![CDATA[<mfenced open='{' close=''><mtable><mtr><mtd><msubsup><mi>C</mi><mi>R</mi><mi>DNA</mi></msubsup><mo>=</mo><mrow><mo>(</mo><msub><mi>P</mi><mrow><mn>3</mn><mi>R</mi></mrow></msub><mover><mo>+</mo><mo>~</mo></mover><msub><mi>P</mi><mrow><mn>3</mn><mi>G</mi></mrow></msub><mover><mo>-</mo><mo>~</mo></mover><msub><mi>P</mi><mrow><mn>3</mn><mi>B</mi></mrow></msub><mo>)</mo></mrow><mover><mo>&CirclePlus;</mo><mo>~</mo></mover><msubsup><mi>E</mi><mi>R</mi><mi>DNA</mi></msubsup></mtd></mtr><mtr><mtd><msubsup><mi>C</mi><mi>G</mi><mi>DNA</mi></msubsup><mo>=</mo><mrow><mo>(</mo><msub><mi>P</mi><mrow><mn>3</mn><mi>G</mi></mrow></msub><mover><mo>+</mo><mo>~</mo></mover><msub><mi>P</mi><mrow><mn>3</mn><mi>B</mi></mrow></msub><mover><mo>-</mo><mo>~</mo></mover><msub><mi>P</mi><mrow><mn>3</mn><mi>R</mi></mrow></msub><mo>)</mo></mrow><mover><mo>&CirclePlus;</mo><mo>~</mo></mover><msubsup><mi>E</mi><mi>G</mi><mi>DNA</mi></msubsup></mtd></mtr><mtr><mtd><msubsup><mi>C</mi><mi>G</mi><mi>DNA</mi></msubsup><mo>=</mo><mrow><mo>(</mo><msub><mi>P</mi><mrow><mn>3</mn><mi>B</mi></mrow></msub><mover><mo>+</mo><mo>~</mo></mover><msub><mi>P</mi><mrow><mn>3</mn><mi>R</mi></mrow></msub><mover><mo>-</mo><mo>~</mo></mover><msub><mi>P</mi><mrow><mn>3</mn><mi>G</mi></mrow></msub><mo>)</mo></mrow><mover><mo>&CirclePlus;</mo><mo>~</mo></mover><msubsup><mi>E</mi><mi>B</mi><mi>DNA</mi></msubsup></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000716536400000031.GIF" wi="668" he="245" /></maths>(11)将<img file="FDA0000716536400000032.GIF" wi="278" he="87" />和<img file="FDA0000716536400000033.GIF" wi="112" he="81" />转化成十进制数并复合,最终得到密文图像C<sub>out</sub>.bmp格式。
地址 150001 黑龙江省哈尔滨市南岗区南通大街145号哈尔滨工程大学科技处知识产权办公室