本发明涉及量子线路优化,尤其涉及一种针对speck对称密码的可逆量子线路的优化方法。
背景技术:
1、speck分组密码算法是由ray beaulieu等人在2013年提出的轻量级分组密码算法。该算法由简单的基本运算构成。speck轻量级分组算法的分组长度为32、48、64、96或128比特,密钥长度为64、72、96、128、144、192或256比特,即分组长度和密钥长度是非固定的。因此speck系列分组密码算法可以根据具体的安全性要求、性能要求、应用环境等选择合适的分组长度和密钥长度,具有很强的灵活性,应用前景十分广泛。
2、grover在1996年提出了典型的量子搜索算法,经过不断地改进和优化,当前该算法体系可以更加完善、高效、广泛的解决各类搜索问题。在密码学中,可将grover算法用于密钥搜索,且该量子算法搜索密钥的复杂度明显优于对应经典复杂度。近年来,学者们在量子环境下已经评估了多类对称加密算法模型,同时对于量子攻击的具体线路实现与优化设计也备受关注。对于轻量级密码算法如speck,相关量子攻击研究很少。
3、自从speck系列算法提出之后,很多分组密码算法的研究者都对其安全性进行了分析,主要方向包括差分分析、线性分析和零相关线性分析等。典型分析手段主要包括飞去来器攻击、矩形攻击、差分分析,以及改进的差分攻击等。
4、2020年,jang k和choi s等人[jang,k.,choi,s.,kwon,h.,seo,h.:grover onspeck:quantum resource estimates.cryptology eprint archive,report 2020/640.]分析了grover算法在speck分组密码上的应用,其中关于模2n加法,他们参考cuccaro等人的做法,使用了纹波进位加法线路——其需要(2n-2)个toffoli门、(5n-4)个cnot门和(2n-4)个not门,以及一个辅助比特。但是所需量子资源还有待减少。
技术实现思路
1、本发明针对现有grover算法在speck分组密码上的应用存在的量子资源还有待减少的问题,提出一种针对speck对称密码的可逆量子线路的优化方法。
2、为了实现上述目的,本发明采用以下技术方案:
3、一种针对speck对称密码的可逆量子线路的优化方法,包括:
4、步骤1:基于speck算法密钥扩展函数和speck算法轮加密函数,构建speck算法量子加密线路;
5、步骤2:基于speck算法量子加密线路得到speck算法量子解密线路;
6、步骤3:基于speck算法量子加密线路及speck算法量子解密线路构建grover算法搜索speck密钥的oracle量子线路;
7、步骤4:对grover算法搜索speck密钥的oracle量子线路进行优化,包括模2n加法、循环移位操作的优化。
8、进一步地,所述步骤1中speck算法密钥扩展函数为:
9、
10、其中li表示第i轮子秘钥生成需要使用的数组,ki表示第i轮子秘钥,田表示模2n加法,表示按位异或,s-α表示将输入向量按二进制循环右移α位,sβ表示将输入向量按二进制循环左移β位。
11、进一步地,所述步骤1中,speck算法轮加密函数为:
12、
13、其中ri表示第i轮输入的高位分组,li表示第i轮输入的低位分组,ki表示第i轮子秘钥,田表示模2n加法,表示按位异或,s-α表示将输入向量按二进制循环右移α位,sβ表示将输入向量按二进制循环左移β位。
14、进一步地,所述步骤4中,模2n加法的优化包括减少辅助量子比特数及降低t门深度。
15、进一步地,按照以下方式减少辅助量子比特数:
16、从两个加数a、b的第2位起到第n位,用a寄存器中的值与b寄存器中的值做异或,结果存放在b寄存器中;
17、从a寄存器的第n位起到第2位,每一位都与高一位异或,结果存放在高一位寄存器中;
18、从两个加数的第1位起到第n位,a和b的本位为toffoli门的输入,输出作用到a的高1位寄存器;
19、从a寄存器的第n位起到第2位,用a寄存器中的值与b寄存器中的值做异或,结果存放在b寄存器中,a和b的低1位为toffoli门的输入,输出作用到a的本位;
20、从a寄存器的第2位起到第n-1位,用a寄存器中的值与b寄存器中的值做异或,结果存放在b寄存器中,a和b的低1位为toffoli门的输入,输出作用到a的本位;
21、从a寄存器的第1位起到第n位,用a寄存器中的值与b寄存器中的值做异或,结果存放在b寄存器中,a和b的低1位为toffoli门的输入,输出作用到a的本位。
22、进一步地,按照以下方式降低t门深度:
23、构建两个输入量子位相与的功能门,一个两量子位的与门需要2个辅助量子比特,其中一个辅助量子比特中存储的是两个控制输入相与的结果,另一个辅助比特量子用于消除与门对输入位的影响;
24、将构造得到的与门应用于加法器中:首先,将两个n位加数a和b按照从低位到高位的顺序,将与运算的结果存储在n个辅助量子位中,然后利用与运算结果对a和b的高一位做异或运算,最后通过观测操作将与运算的影响按从高位到低位的顺序执行一次撤销,得到的加法值存储在b的寄存器中。
25、进一步地,所述循环移位操作的优化包括:
26、在量子操作前,用经典方法预计算相应的量子索引,将该轮加密的偏移量存储在经典寄存器中,之后在使用量子位计算时,在数组索引中添加上相应的偏移量。
27、进一步地,在所述步骤4之后,还包括:
28、使用多种加法实现grover算法查找speck密钥的量子资源分析。
29、与现有技术相比,本发明具有的有益效果:
30、相对于jang k和choi s等人的方法,本发明所给出的线路优化方案,在保持toffoli门个数一致的情况下,减少了使用cnot门+not门的总数数量,并且本发明还少使用了一个量子比特。最后还给出了使用多种加法实现grover算法查找speck密钥的量子资源分析结果。
1.一种针对speck对称密码的可逆量子线路的优化方法,其特征在于,包括:
2.根据权利要求1所述的一种针对speck对称密码的可逆量子线路的优化方法,其特征在于,所述步骤1中speck算法密钥扩展函数为:
3.根据权利要求1所述的一种针对speck对称密码的可逆量子线路的优化方法,其特征在于,所述步骤1中,speck算法轮加密函数为:
4.根据权利要求1所述的一种针对speck对称密码的可逆量子线路的优化方法,其特征在于,所述步骤4中,模2n加法的优化包括减少辅助量子比特数及降低t门深度。
5.根据权利要求4所述的一种针对speck对称密码的可逆量子线路的优化方法,其特征在于,按照以下方式减少辅助量子比特数:
6.根据权利要求4所述的一种针对speck对称密码的可逆量子线路的优化方法,其特征在于,按照以下方式降低t门深度:
7.根据权利要求1所述的一种针对speck对称密码的可逆量子线路的优化方法,其特征在于,所述循环移位操作的优化包括:
8.根据权利要求1所述的一种针对speck对称密码的可逆量子线路的优化方法,其特征在于,在所述步骤4之后,还包括: