本发明属于计算机安全技术领域,具体涉及一种使用二维平面上受控交替量子漫步来实现哈希单向压缩的量子哈希函数。
背景技术:
量子通信技术发展迅速,各种量子协议近年来层出不穷,哈希函数已被广泛的应用于量子协议来保证量子通信的安全。但是md5已被破解,其他哈希函数将来是否还安全,尤其是量子计算机出色的计算能力目前已经可以在多项式时间内解决大整数分解问题,并有希望在不远的将来解决其他问题,对传统基于数学困难问题的哈希函数构成威胁。所以,将经典哈希函数用在量子协议中可以对量子协议的安全性构成威胁。现有技术“danli,jiezhang,fen-zhuoguo,weihuang,qiao-yanwen,huichen.discrete-timeinteractingquantumwalksandquantumhashschemes.quantuminformationprocessing,12(3),2013,1501-1513.”如图1所示,采用圈上的受控两粒子交互型量子漫步来实现哈希单向压缩,其初始硬币态保密,由要压缩的信息值来控制量子漫步,最终漫步者处于位置的概率分布作为哈希值。该技术的安全性不依赖于数学困难问题,而是初始硬币态的无穷种可能性,故而理论上绝对安全,但对于提出的几种抛币操作,有可预测的碰撞性存在,并且执行两粒子交互型量子漫步的物理实验还相对困难。现有技术“yu-guangyang,pengxu,ruiyang,yi-huazhou,wei-minshi,quantumhashfunctionanditsapplicationtoprivacyamplificationinquantumkeydistribution,pseudo-randomnumbergenerationandimageencryption.scientificreports,6,2016,19788.”对原有量子哈希函数进行了改进,将得到的概率分布处理为2进制序列作为哈希值,并基于此提出了一种图像加密算法。但是这种技术在应用于量子计算机上时仍然需要执行两粒子量子漫步,并且抛币操作为一个4×4的酉矩阵,这为实验带来了一定的困难性。
技术实现要素:
发明目的:为了克服现有技术中存在的不足,本发明提供一种基于二维平面上受控交替量子漫步的构建量子哈希函数的方法,本方法利用二维平面上受控交替量子漫步,既避免了基于两粒子交互型量子漫步的量子哈希函数可预见的碰撞行为,又为在量子计算机上实现量子哈希函数节省了资源。
技术方案:为实现上述目的,本发明采用的技术方案为:
一种基于二维平面上受控交替量子漫步的构建量子哈希函数的方法,包括以下步骤:
步骤1,根据要生成的哈希值的长度,选取合适的奇数n1、n2,然后随机选取两个抛币操作c0和c1。
步骤2,将要压缩的信息值的ascii码排列为一个二进制串。
步骤3,在大小为n1×n2的封闭平面上执行受控交替量子漫步,该量子漫步在该平面的x、y方向上的行走均等同于在一个圈上的行走,n1、n2表示封闭平面的宽度和长度。根据步骤2得到二进制串的每一个比特位,控制量子漫步者在所述封闭平面上行走一步,即执行酉操作u=sycsxc,其中,当二进制串的比特位为0时,行走所采用的抛币操作c选用c0。当二进制串的比特位为1时,行走所采用的抛币操作c选用c1。sx和sy分别表示x、y轴上的行走操作。
步骤4,执行步骤3进行演变,演变结束后获取量子漫步者在各位置的概率分布。
步骤5,将步骤4得到的概率分布的每一个值乘以一个整数,向下取整后,取模2k的余数,将所有余数按分布的顺序排列,得到一个n1n2k比特位的二进制串作为哈希值,k表示处理概率分布每一个值所得到的哈希值的二进制比特位。
优选的:所述步骤1中的抛币操作c0和c1如下所示:
其中θ0和θ1为两个在[-π/2,π/2]范围内的参数。
所述行走操作sx,sy为:
当二进制串的第t个比特位为0时,第t步执行酉操作u,其中行走所采用的抛币操作c选用c0,该u标记为u0。当第t个比特位为1时,第t步执行的酉操作u中所采用的抛币操作c选用c1,该u标记为u1。
整个系统的演变发生在一个hilbert空间
优选的:步骤4中执行步骤3进行演变的方法:在量子计算机上执行步骤3进行演变,或者通过matlab等仿真软件对步骤3进行仿真演变。步骤4中演变结束后获取量子漫步者在各位置的概率分布的方法:演变结束后,通过测量得到量子漫步者在各位置的概率分布。或者通过matlab等软件仿真获取量子漫步者在各位置的概率分布。
优选的:所述步骤5中将步骤4得到的概率分布的每一个值乘以一个整数108,取模28的余数。
本发明相比现有技术,具有以下有益效果:
本发明在执行哈希单向压缩的时候,没有采用现有的受控两粒子交互型量子漫步,而采用了新型的受控交替量子漫步。新型的受控交替量子漫步用一个2维硬币控制量子漫步者在2维平面上的行走,避免了原有量子哈希机制中可以预见的碰撞行为,使得使用者可以任意选择抛币操作和硬币初始态,而不需顾忌这种可预见的碰撞行为。并且用一个2维硬币控制漫步者比一个4维硬币控制漫步者,无论在量子计算机上实现还是在经典计算机上仿真模拟都要更容易、更节省资源。同时,采用这种新的量子漫步,对原有量子哈希函数的安全性原理方面没有任何改变,故而这种基于二维平面上受控交替量子漫步的量子哈希函数继承了原有量子哈希函数的安全性。
附图说明
图1原有量子哈希函数的行走方向;
图2为本发明的量子哈希函数的行走方向。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明,应理解这些实例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
一种基于二维平面上受控交替量子漫步来构建量子哈希函数的方法,如图2所示,包括以下步骤:
步骤1,如果要生成200比特位的哈希值,选取n1=n2=5,k=8,使得n1n2k=200。然后随机选取两个在(-π/2,π/2)范围内的参数θ0=π/3和θ1=π/5,生成两个抛币操作c0和c1:
步骤2,如果要压缩的信息值为helloworld,则将该信息值的ascii码排列为一个二进制串:
01001000010001010100110001001100010011110101011101001111010100100100110001000100;
步骤3,如图2所示,在大小为5×5的封闭平面上执行受控交替量子漫步,整个系统的演变发生在一个hilbert空间
当二进制串的第t个比特位为0时,第t步执行酉操作u,其中行走所采用的抛币操作c选用c0,该u标记为u0;当第t个比特位为1时,第t步执行的酉操作u中所采用的抛币操作c选用c1,该u标记为u1。
根据信息值的长度m=80行走80步,得到终态为|ψm>=u(message)|ψ0>,其中u(message)为u0、u1按信息值二进制串的排列。当信息值的二进制串为0100时,u(message)=u0u0u1u0,m表示二进制串的长度。
步骤4,根据步骤3获取量子漫步者在各位置的概率分布;在量子计算机上执行步骤3,通过测量得到量子漫步者在各位置的概率分布p(x,y)=|<x,y,0|ψm>|2+|<x,y,1|ψm>|2;也可使用matlab等软件仿真得到量子漫步者在各位置的概率分布。这里根据helloworld的二进制串控制量子漫步在5×5的封闭平面上执行受控交替量子漫步,行走80步,得到保留八位小数的概率分布:
步骤5,将步骤4得到的概率分布的每一个值乘以108,向下取整后,取模28的余数的矩阵
将所有余数按h(1,1),…h(1,5),h(2,1),…h(5,5)的顺序排列,得到一个5×5×8=200比特位的二进制串作为哈希值:
010001011101010101100010011000011100101101001111100000100101
010001110101110000010111111100010100101111110100111110001111
110110010001111001100011000101101101101101001000101000001001
00110100000010111001
为简便可将其改写为50比特的16进制串:
45d56261cb4f825475c17f14bf4f8fd91e6316db48a09340b9。
本发明在提出受控交替量子漫步的基础上,用信息序列控制抛币操作,利用受控交替量子漫步来实现量子哈希的单向压缩过程,用测量漫步者所处位置的概率作为原始数据,处理后作为哈希值。该方法采用交替量子漫步,用一个2维硬币控制2维平面上的漫步,既避免了以往量子哈希机制中可预测的碰撞行为,又利于物理实验,是一种可靠实用的量子哈希机制。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。