发明名称 基于量子散列函数的新型图像加密方法
摘要 本发明涉及基于量子散列函数的新型图像加密方法。所述方法包括:利用量子随机游走生成量子散列函数;利用量子散列函数生成密钥矩阵;利用量子散列函数生成的密钥用于图像加密。本发明结合量子散列函数,提出了一种基于量子散列函数的新型图像加密方法。量子散列函数具有非线性动力学特性,并且硬币态无穷多选择的特性使得量子散列函数的输出更具有不可预测性,可生成理论上无限大的密钥空间。因此量子散列函数可以作为图像加密系统的密钥生成器,保证图像加密的安全性。量子并行计算特性使得量子散列函数的扩散速度指数级优于经典情形,因此也保证了图像加密的效率。
申请公布号 CN103871017A 申请公布日期 2014.06.18
申请号 CN201410113452.0 申请日期 2014.03.25
申请人 北京工业大学 发明人 杨宇光;徐鹏;赵倩倩
分类号 G06T1/00(2006.01)I 主分类号 G06T1/00(2006.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 张慧
主权项 1.基于量子散列函数的新型图像加密方法,其特征在于包括以下步骤:步骤1:利用量子随机游走生成量子散列函数;量子散列函数由量子随机游走变换获得;量子随机游走包括两个量子系统:漫步者和硬币;对于单漫步者单硬币量子游走,整个系统在每一步的演化由幺正算子<img file="FDA0000481655980000011.GIF" wi="50" he="82" />描述:<maths num="0001"><![CDATA[<math><mrow><mover><mi>U</mi><mo>^</mo></mover><mo>=</mo><mover><mi>S</mi><mo>^</mo></mover><mrow><mo>(</mo><mover><mi>I</mi><mo>^</mo></mover><mo>&CircleTimes;</mo><mover><mi>C</mi><mo>^</mo></mover><mo>)</mo></mrow></mrow></math>]]></maths>其中,<img file="FDA0000481655980000013.GIF" wi="39" he="71" />是单位矩阵,<img file="FDA0000481655980000014.GIF" wi="41" he="62" />是作用在硬币态上的幺正算子,<img file="FDA0000481655980000015.GIF" wi="43" he="72" />是移位算子,表示为:<maths num="0002"><![CDATA[<math><mrow><mover><mi>S</mi><mo>^</mo></mover><mo>=</mo><mo>|</mo><mi>x</mi><mo>+</mo><mn>1,0</mn><mo>></mo><mo>&lt;</mo><mi>x</mi><mo>,</mo><mn>0</mn><mo>|</mo><mo>+</mo><mo>|</mo><mi>x</mi><mo>-</mo><mn>1</mn><mo>,</mo><mo>,</mo><mo>></mo><mo>&lt;</mo><mo>,</mo><mn>1</mn><mo>|</mo></mrow></math>]]></maths>其中,x为粒子的位置;在t步之后整个系统的态|ψ&gt;<sub>t</sub>表示为:<maths num="0003"><![CDATA[<math><mrow><mo>|</mo><mi>&psi;</mi><msub><mo>></mo><mi>t</mi></msub><mo>=</mo><msup><mrow><mo>(</mo><mover><mi>U</mi><mo>^</mo></mover><mo>)</mo></mrow><mi>t</mi></msup><mo>|</mo><mi>&psi;</mi><msub><mo>></mo><mn>0</mn></msub><mo>=</mo><munder><mi>&Sigma;</mi><mi>x</mi></munder><munder><mrow><mi>&Sigma;</mi><msub><mi>&lambda;</mi><mrow><mi>x</mi><mo>,</mo><mi>v</mi></mrow></msub></mrow><mi>v</mi></munder><mo>|</mo><mi>x</mi><mo>,</mo><mi>v</mi><mo>></mo></mrow></math>]]></maths>其中,v为硬币的量子态,λ<sub>x,v</sub>为整个系统量子态的振幅;漫步者在位置x的概率为:<maths num="0004"><![CDATA[<math><mrow><mi>P</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><munder><mi>&Sigma;</mi><mrow><mi>v</mi><mo>&Element;</mo><mo>{</mo><mn>0,1</mn><mo>}</mo></mrow></munder><msup><mrow><mo>|</mo><mo>&lt;</mo><mi>x</mi><mo>,</mo><mi>v</mi><mo>|</mo><msup><mrow><mo>(</mo><mover><mi>U</mi><mo>^</mo></mover><mo>)</mo></mrow><mi>t</mi></msup><mi></mi><mo>|</mo><mi>&psi;</mi><msub><mo>></mo><mi>initial</mi></msub><mo>|</mo></mrow><mn>2</mn></msup></mrow></math>]]></maths>其中,|ψ&gt;<sub>initial</sub>是整个量子系统的初始态;对于节点数为n的环上两漫步者两硬币量子游走,整个系统在每一步的演化由幺正算子<img file="FDA0000481655980000019.GIF" wi="54" he="82" />描述为:<maths num="0005"><![CDATA[<math><mrow><mover><mi>U</mi><mo>^</mo></mover><mo>=</mo><mover><mi>S</mi><mo>^</mo></mover><mrow><mo>(</mo><mover><mi>I</mi><mo>^</mo></mover><mo>&CircleTimes;</mo><mover><mi>C</mi><mo>^</mo></mover><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0006"><![CDATA[<math><mrow><mover><mi>S</mi><mo>^</mo></mover><mo>=</mo><mover><msub><mi>S</mi><mn>1</mn></msub><mo>^</mo></mover><mo>&CircleTimes;</mo><mover><msub><mi>S</mi><mn>2</mn></msub><mo>^</mo></mover></mrow></math>]]></maths><maths num="0007"><![CDATA[<math><mrow><mover><msub><mi>S</mi><mn>1</mn></msub><mo>^</mo></mover><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mo>|</mo><mn>2,0</mn><mo>></mo><mo>&lt;</mo><mn>1,0</mn><mo>|</mo><mo>+</mo><mo>|</mo><mi>n</mi><mo>,</mo><mn>1</mn><mo>></mo><mo>&lt;</mo><mn>1,1</mn><mo>|</mo><mo>,</mo></mtd><mtd><mi>x</mi><mo>=</mo><mn>1</mn></mtd></mtr><mtr><mtd><mo>|</mo><mn>1,0</mn><mo>></mo><mo>&lt;</mo><mi>n</mi><mo>,</mo><mn>0</mn><mi></mi><mo>|</mo><mo>+</mo><mi></mi><mo>|</mo><mi>n</mi><mo>-</mo><mn>1,1</mn><mo>></mo><mo>&lt;</mo><mi>n</mi><mo>,</mo><mn>1</mn><mo>|</mo><mo>,</mo></mtd><mtd><mi>x</mi><mo>=</mo><mi>n</mi></mtd></mtr><mtr><mtd><mo>|</mo><mi>x</mi><mo>+</mo><mn>1,0</mn><mo>></mo><mo>&lt;</mo><mi>x</mi><mo>,</mo><mn>0</mn><mo>|</mo><mo>+</mo><mi></mi><mo>|</mo><mi>x</mi><mo>-</mo><mn>1,1</mn><mo>></mo><mo>&lt;</mo><mi>x</mi><mo>,</mo><mn>1</mn><mo>|</mo><mo>,</mo></mtd><mtd><mi>x</mi><mo>&NotEqual;</mo><mn>1</mn><mo>,</mo><mi>n</mi></mtd></mtr></mtable></mfenced></mrow></math>]]></maths><img file="FDA00004816559800000113.GIF" wi="63" he="94" />类似于<img file="FDA00004816559800000114.GIF" wi="85" he="94" /><img file="FDA00004816559800000115.GIF" wi="55" he="94" />和<img file="FDA00004816559800000116.GIF" wi="62" he="93" />是施加在整个量子系统上的移位算子;对于两粒子两硬币量子随机游走而言,每一步两硬币态被施加相同的<img file="FDA00004816559800000117.GIF" wi="60" he="62" />如果把每一步施加什么样的操作<img file="FDA00004816559800000118.GIF" wi="35" he="55" />由一个比特序列message来控制,所生成的概率分布依赖于初始硬币态和这一控制比特序列message;如果message的第i比特为‘0’,将Grover算子作用在硬币态上:<maths num="0008"><![CDATA[<math><mrow><mover><mi>G</mi><mo>^</mo></mover><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mfenced open='(' close=')'><mtable><mtr><mtd><mo>-</mo><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mo>-</mo><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mo>-</mo><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mo>-</mo><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>Grover算子可以利用量子电路实现;如果message的第i比特为‘1’,将两个Hadamard矩阵<img file="FDA0000481655980000022.GIF" wi="48" he="82" />的张量积作用在硬币态上:<maths num="0009"><![CDATA[<math><mrow><mover><mi>H</mi><mo>^</mo></mover><mo>=</mo><mfrac><mn>1</mn><msqrt><mn>2</mn></msqrt></mfrac><mfenced open='(' close=')'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mo>-</mo><mn>1</mn></mtd></mtr></mtable></mfenced><mo>&CircleTimes;</mo><mfrac><mn>1</mn><msqrt><mn>2</mn></msqrt></mfrac><mfenced open='(' close=')'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mo>-</mo><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>如果把这一任意长度的控制比特序列message作为量子散列函数的输入,参数(n,(α,β,χ,δ))为控制参数,输出概率分布作为量子散列函数的hash值,就构成了一个由初始硬币态控制的量子散列函数;其中,α,β,χ,δ是两硬币的初始硬币态|υ,τ&gt;=(α|00&gt;+β|01&gt;+χ|10&gt;+δ|11&gt;)的系数,且满足归一化条件|α|<sup>2</sup>+|β|<sup>2</sup>+|χ|<sup>2</sup>+|δ|<sup>2</sup>=1;υ,τ代表硬币的量子态;步骤2:利用量子散列函数生成密钥矩阵;步骤2.1:选择参数(n,(α,β,χ,δ),message);步骤2.2:运行量子散列函数生成一概率分布;步骤2.3:将生成的概率分布中每一元素值乘以10<sup>8</sup>模256得到一矩阵P;步骤3:对图像进行加密,方法如下:步骤3.1:利用P与原始图像I像素级异或生成混乱图像E={E<sub>1</sub>,E<sub>2</sub>,...,E<sub>M×N</sub>},M×N是原始图像I的尺寸;步骤3.2:利用P作为置换矩阵置换图像E的像素位置获得图像E';步骤3.3:通过使用比特级置换方式来置换图像E'的每一个像素的灰度值,得到最终加密的图像E''。
地址 100124 北京市朝阳区平乐园100号