本发明属于量子计算,特别是一种变量二倍模乘运算器、运算方法及相关装置。
背景技术:
1、量子计算机是一类遵循量子力学规律进行高速数学和逻辑运算、存储及处理量子信息的物理装置。当某个装置处理和计算的是量子信息,运行的是量子算法时,它就是量子计算机。量子计算机因其具有相对普通计算机更高效的处理数学问题的能力,例如,能将破解rsa密钥的时间从数百年加速到数小时,故成为一种正在研究中的关键技术。
2、模运算在数论和密码学中都有着广泛的应用,从奇偶数到素数的判别,从孙子定理到凯撒密码,从有限域到分组密码域塔的实现,从有限域上椭圆曲线到基于椭圆曲线公钥密码,无不充斥着模运算的身影,因此模运算是运算部件中最常用的功能,对于量子计算而言也是如此,如何实现变量二倍模乘运算是量子计算中亟需解决的技术问题。
技术实现思路
1、本发明的目的是提供一种变量二倍模乘运算器、运算方法及相关装置,旨在实现量子计算中输入数据的二倍模乘运算。
2、本发明的一个实施例提供了一种变量二倍模乘运算器,所述变量二倍模乘运算器包括依次级联的二倍运算模块和模数运算模块,所述模数运算模块中的常数包括模数,所述二倍运算模块用于确定输入的待倍增数据的二倍,所述模数运算模块用于计算所述待倍增数据的二倍与所述模数的模数运算结果。
3、可选的,所述二倍运算模块包括以下其中一种操作:将数据进行错位存储的操作、加法器、swap门。
4、可选的,所述变量二倍模乘运算器的其中一个输入端与所述二倍运算模块的输入端连接,所述二倍运算模块的输出端与所述模数运算模块的其中一个输入端连接,所述变量二倍模乘运算器的另外一个输入端与所述模数运算模块的另外一个输入端连接,所述变量二倍模乘运算器的其中一个输入端用于输入所述待倍增数据对应的量子态,所述变量二倍模乘运算器的另外一个输入端用于输入初始辅助数据对应的量子态。
5、可选的,所述模数运算模块包括依次级联的常数减法器、第一cnot门和受控常数加法器,所述常数减法器和所述受控常数加法器中的常数为所述模数。
6、可选的,所述常数减法器的输出端包括数据输出端和符号输出端,所述受控常数加法器的其中一个输入端包括数据输入端和符号输入端,所述常数减法器的数据输出端与所述受控常数加法器的数据输入端连接,所述常数减法器的符号输出端与所述第一cnot门的其中一个输入端连接,所述第一cnot门的两个输出端分别与所述受控常数加法器的符号输入端和另外一个输入端连接。
7、可选的,所述受控常数加法器的两个输出端分别用于输出所述待倍增数据的二倍与所述模数的模数运算结果对应的量子态和中间辅助数据对应的量子态。
8、可选的,所述受控常数加法器的两个输出端分别与所述变量二倍模乘运算器的两个输出端连接。
9、可选的,所述常数减法器、所述第一cnot门和所述受控常数加法器为第一运算子模块,所述模数运算模块还包括与所述第一运算子模块级联的第二运算子模块,所述第二运算子模块用于将所述中间辅助数据复位为所述初始辅助数据。
10、可选的,所述第二子运算模块包括依次级联的第一非门、第二cnot门和第二非门,所述受控常数加法器的其中一个输出端包括低位输出端和非低位输出端,所述受控常数加法器的低位输出端与所述第一非门的输入端连接,所述受控常数加法器的另外一个输出端与所述第二cnot门的其中一个输入端连接。
11、可选的,所述第一非门的输出端与所述第二cnot门的另外一个输入端连接,所述第二cnot门的另外一个输出端与所述第二非门的输入端连接。
12、可选的,所述第二非门的输出端与所述受控常数加法器的非低位输出端用于输出所述待倍增数据的二倍与所述模数的模数运算结果对应的量子态,所述第二cnot门的其中一个输出端用于输出所述初始辅助数据对应的量子态。
13、可选的,所述第二非门的输出端、所述受控常数加法器的非低位输出端与所述变量二倍模乘运算器的其中一个输出端连接,所述第二cnot门的其中一个输出端与所述变量二倍模乘运算器的另外一个输出端连接。
14、本发明的又一个实施例提供了一种变量二倍模乘运算方法,所述方法包括:
15、获取上述实施例中所述的变量二倍模乘运算器和所述待倍增数据;
16、将所述待倍增数据输入至所述变量二倍模乘运算器,以及运行所述变量二倍模乘运算器,得到所述待倍增数据的二倍与所述模数的模数运算结果对应的量子态;
17、基于所述模数运算结果对应的量子态确定所述待倍增数据的二倍与所述模数的模数运算结果。
18、本发明的又一个实施例提供了一种变量二倍模乘运算装置,所述装置包括:
19、获取单元,用于获取上述实施例中所述的变量二倍模乘运算器和所述待倍增数据;
20、计算单元,用于将所述待倍增数据输入至所述变量二倍模乘运算器,以及运行所述变量二倍模乘运算器,得到所述待倍增数据的二倍与所述模数的模数运算结果对应的量子态;
21、确定单元,用于基于所述模数运算结果对应的量子态确定所述待倍增数据的二倍与所述模数的模数运算结果。
22、本发明的又一实施例提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述中所述的方法。
23、本发明的又一实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述中所述的方法。
24、与现有技术相比,本发明提供的一种变量二倍模乘运算器、运算方法及相关装置,该变量二倍模乘运算器包括依次级联的二倍运算模块和模数运算模块,所述模数运算模块中的常数包括模数,所述二倍运算模块用于确定输入的待倍增数据的二倍,所述模数运算模块用于计算所述待倍增数据的二倍与所述模数的模数运算结果,对于输入的待倍增数据,可以通过二倍运算模块计算其二倍,然后在通过模数运算模块计算其二倍与预设模数的求模结果。
1.一种变量二倍模乘运算器,其特征在于,所述变量二倍模乘运算器包括依次级联的二倍运算模块和模数运算模块,所述模数运算模块中的常数包括模数,所述二倍运算模块用于确定输入的待倍增数据的二倍,所述模数运算模块用于计算所述待倍增数据的二倍与所述模数的模数运算结果。
2.如权利要求1所述的变量二倍模乘运算器,其特征在于,所述二倍运算模块包括以下其中一种操作:将数据进行错位存储的操作、加法器、swap门。
3.如权利要求1或2所述的变量二倍模乘运算器,其特征在于,所述变量二倍模乘运算器的其中一个输入端与所述二倍运算模块的输入端连接,所述二倍运算模块的输出端与所述模数运算模块的其中一个输入端连接,所述变量二倍模乘运算器的另外一个输入端与所述模数运算模块的另外一个输入端连接,所述变量二倍模乘运算器的其中一个输入端用于输入所述待倍增数据对应的量子态,所述变量二倍模乘运算器的另外一个输入端用于输入初始辅助数据对应的量子态。
4.如权利要求3所述的变量二倍模乘运算器,其特征在于,所述模数运算模块包括依次级联的常数减法器、第一cnot门和受控常数加法器,所述常数减法器和所述受控常数加法器中的常数为所述模数。
5.如权利要求4所述的变量二倍模乘运算器,其特征在于,所述常数减法器的输出端包括数据输出端和符号输出端,所述受控常数加法器的其中一个输入端包括数据输入端和符号输入端,所述常数减法器的数据输出端与所述受控常数加法器的数据输入端连接,所述常数减法器的符号输出端与所述第一cnot门的其中一个输入端连接,所述第一cnot门的两个输出端分别与所述受控常数加法器的符号输入端和另外一个输入端连接。
6.如权利要求5所述的变量二倍模乘运算器,其特征在于,所述受控常数加法器的两个输出端分别用于输出所述待倍增数据的二倍与所述模数的模数运算结果对应的量子态和中间辅助数据对应的量子态。
7.如权利要求6所述的变量二倍模乘运算器,其特征在于,所述受控常数加法器的两个输出端分别与所述变量二倍模乘运算器的两个输出端连接。
8.如权利要求6所述的变量二倍模乘运算器,其特征在于,所述常数减法器、所述第一cnot门和所述受控常数加法器为第一运算子模块,所述模数运算模块还包括与所述第一运算子模块级联的第二运算子模块,所述第二运算子模块用于将所述中间辅助数据复位为所述初始辅助数据。
9.如权利要求8所述的变量二倍模乘运算器,其特征在于,所述第二子运算模块包括依次级联的第一非门、第二cnot门和第二非门,所述受控常数加法器的其中一个输出端包括低位输出端和非低位输出端,所述受控常数加法器的低位输出端与所述第一非门的输入端连接,所述受控常数加法器的另外一个输出端与所述第二cnot门的其中一个输入端连接。
10.如权利要求9所述的变量二倍模乘运算器,其特征在于,所述第一非门的输出端与所述第二cnot门的另外一个输入端连接,所述第二cnot门的另外一个输出端与所述第二非门的输入端连接。
11.如权利要求10所述的变量二倍模乘运算器,其特征在于,所述第二非门的输出端与所述受控常数加法器的非低位输出端用于输出所述待倍增数据的二倍与所述模数的模数运算结果对应的量子态,所述第二cnot门的其中一个输出端用于输出所述初始辅助数据对应的量子态。
12.如权利要求11所述的变量二倍模乘运算器,其特征在于,所述第二非门的输出端、所述受控常数加法器的非低位输出端与所述变量二倍模乘运算器的其中一个输出端连接,所述第二cnot门的其中一个输出端与所述变量二倍模乘运算器的另外一个输出端连接。
13.一种变量二倍模乘运算方法,其特征在于,所述方法包括:
14.一种变量二倍模乘运算装置,其特征在于,所述装置包括:
15.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求13中所述的方法。
16.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求13中所述的方法。
