CN118095456A - 变量平方模运算器、运算方法及相关装置 - Google Patents
变量平方模运算器、运算方法及相关装置 Download PDFInfo
- Publication number
- CN118095456A CN118095456A CN202211464665.9A CN202211464665A CN118095456A CN 118095456 A CN118095456 A CN 118095456A CN 202211464665 A CN202211464665 A CN 202211464665A CN 118095456 A CN118095456 A CN 118095456A
- Authority
- CN
- China
- Prior art keywords
- variable
- modulus
- square
- arithmetic unit
- modulo
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000004590 computer program Methods 0.000 claims description 15
- 239000002096 quantum dot Substances 0.000 description 35
- 238000004364 calculation method Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 229910002056 binary alloy Inorganic materials 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005283 ground state Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000005610 quantum mechanics Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种变量平方模运算器、运算方法及相关装置,所述变量平方模运算器包括交替级联的n个受控变量模加运算模块和n‑1个变量二倍模乘运算器,所述受控变量模加运算模块包括依次级联的第一CONT门、受控变量模加运算器和第二CONT门,所述受控变量模加运算器与所述变量二倍模乘运算器中的常数包括模数,所述变量平方模运算器用于计算输入数据的平方与所述模数的模数运算结果,旨在实现量子计算中输入数据的平方与预设模数的求模运算。
Description
技术领域
本发明属于量子计算技术领域,特别是一种变量平方模运算器、运算方法及相关装置。
背景技术
量子计算机是一类遵循量子力学规律进行高速数学和逻辑运算、存储及处理量子信息的物理装置。当某个装置处理和计算的是量子信息,运行的是量子算法时,它就是量子计算机。量子计算机因其具有相对普通计算机更高效的处理数学问题的能力,例如,能将破解RSA密钥的时间从数百年加速到数小时,故成为一种正在研究中的关键技术。
模运算在数论和密码学中都有着广泛的应用,从奇偶数到素数的判别,从孙子定理到凯撒密码,从有限域到分组密码域塔的实现,从有限域上椭圆曲线到基于椭圆曲线公钥密码,无不充斥着模运算的身影,因此模运算是运算部件中最常用的功能,对于量子计算而言也是如此,如何实现变量平方模运算是量子计算中亟需解决的技术问题。
发明内容
本发明的目的是提供一种变量平方模运算器、运算方法及相关装置,旨在实现量子计算中输入数据的平方与预设模数的求模运算。
本发明的一个实施例提供了一种变量平方模运算器,所述变量平方模运算器包括交替级联的n个受控变量模加运算模块和n-1个变量二倍模乘运算器,所述受控变量模加运算模块包括依次级联的第一CONT门、受控变量模加运算器和第二CONT门,所述受控变量模加运算器与所述变量二倍模乘运算器中的常数包括模数,所述变量平方模运算器用于计算输入数据的平方与所述模数的模数运算结果。
可选的,所述受控变量模加运算模块的其中两个输入端与所述第一CNOT门的两个输入端连接,所述第一CNOT门的两个输出端与所述受控变量模加运算器的其中两个输入端连接,所述受控变量模加运算模块的另外两个输入端与所述受控模加运算器的另外两个输入端连接。
可选的,所述受控变量模加运算器的其中两个输出端与所述第二CONT门的两个输入端连接,所述第二CONT门的两个输出端与所述受控变量模加运算模块的其中两个输出端连接,所述受控变量模加运算器的另外两个输出端与所述受控变量模加运算模块的另外两个输出端连接。
可选的,所述变量平方模运算器的四个输入端与第0个所述受控变量模加运算模块的四个输入端连接,第0个所述受控变量模加运算模块的另外两个输出端与第0个所述变量二倍模乘运算器连接。
可选的,第i-1个所述变量二倍模乘运算器的两个输出端和第i-1个所述受控变量受控变量模加运算模块的其中两个输出端与第i个所述受控变量模加运算模块的四个输入端连接,第i个所述受控变量模加运算模块的四个输出端分别与第i+1个所述受控模加运算模块的其中两个输入端和第i个所述变量二倍模乘运算器的两个输入端连接。
可选的,第n-1个所述变量二倍模乘运算器的两个输出端与第n个所述变量模加运算模块的另外两个输入端连接,第n个所述变量模加运算模块的四个输出端与所述变量平方模运算器的四个输出端连接。
本发明的又一个实施例提供了一种变量平方模运算方法,所述方法包括:
获取上述实施例中所述的变量平方模运算器和输入数据;
将所述输入数据输入至所述变量平方模运算器,以及运行所述变量平方模运算器,得到所述输入数据的平方与所述模数的模数运算结果对应的量子态;
基于所述模数运算结果对应的量子态确定所述输入数据的平方与所述模数的模数运算结果。
本发明的又一个实施例提供了一种变量平方模运算装置,所述装置包括:
获取单元,用于获取上述实施例中所述的变量平方模运算器和输入数据;
计算单元,用于将所述输入数据输入至所述变量平方模运算器,以及运行所述变量平方模运算器,得到所述输入数据的平方与所述模数的模数运算结果对应的量子态;
确定单元,用于基于所述模数运算结果对应的量子态确定所述输入数据的平方与所述模数的模数运算结果。
本发明的又一实施例提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述中所述的方法。
本发明的又一实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述中所述的方法。
与现有技术相比,本发明提供的变量平方模运算器包括交替级联的n个受控变量模加运算模块和n-1个变量二倍模乘运算器,所述受控变量模加运算模块包括依次级联的第一CONT门、受控变量模加运算器和第二CONT门,所述受控变量模加运算器与所述变量二倍模乘运算器中的常数包括模数,所述变量平方模运算器用于计算输入数据的平方与所述模数的模数运算结果,本发明通过将输入数据的平方与预设模数的运算转化成n个受控变量模加运算和n-1个变量二倍模乘运算,进而实现输入数据的平方与预设模数的模数运算的求解。
附图说明
图1为本发明实施例提供的一种变量平方模运算方法的计算机终端的硬件结构框图;
图2为本发明实施例提供的一种变量平方模运算器的结构示意图;
图3为本发明实施例提供的一种受控变量模加运算模块的结构示意图;
图4为本发明实施例提供的一种变量模加运算器的结构示意图;
图5为本发明实施例提供的一种模加运算模块的结构示意图;
图6为本发明实施例提供的一种辅助数据复位模块的结构示意图;
图7为本发明实施例提供的一种变量二倍模乘运算器的结构示意图;
图8为本发明实施例提供的另一种变量二倍模乘运算器的结构示意图;
图9为本发明实施例提供的一种模数运算模块的结构示意图;
图10为本发明实施例提供的一种变量平方模运算方法的流程示意图;
图11为本发明实施例提供的一种变量平方模运算装置的结构示意图。
具体实施方式
下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本发明实施例首先提供了一种变量平方模运算方法,该方法可以应用于电子设备,如计算机终端,具体如普通电脑、量子计算机等。
下面以运行在计算机终端上为例对其进行详细说明。图1为本发明实施例提供的一种变量平方模运算方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储变量平方模运算方法的存储器104,可选地,上述计算机终端还可以包括用于通信功能的传输装置106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的变量平方模运算方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
需要说明的是,真正的量子计算机是混合结构的,它包含两大部分:一部分是经典计算机,负责执行经典计算与控制;另一部分是量子设备,负责运行量子程序进而实现量子计算。而量子程序是由量子语言如QRunes语言编写的一串能够在量子计算机上运行的指令序列,实现了对量子逻辑门操作的支持,并最终实现量子计算。具体的说,量子程序就是一系列按照一定时序操作量子逻辑门的指令序列。
在实际应用中,因受限于量子设备硬件的发展,通常需要进行量子计算模拟以验证量子算法、量子应用等等。量子计算模拟即借助普通计算机的资源搭建的虚拟架构(即量子虚拟机)实现特定问题对应的量子程序的模拟运行的过程。通常,需要构建特定问题对应的量子程序。本发明实施例所指量子程序,即是经典语言编写的表征量子比特及其演化的程序,其中与量子计算相关的量子比特、量子逻辑门等等均有相应的经典代码表示。
量子线路作为量子程序的一种体现方式,也称量子逻辑电路,是最常用的通用量子计算模型,表示在抽象概念下对于量子比特进行操作的线路,其组成包括量子比特、线路(时间线)、以及各种量子逻辑门,最后常需要通过量子测量操作将结果读取出来。
不同于传统电路是用金属线所连接以传递电压信号或电流信号,在量子线路中,线路可看成是由时间所连接,亦即量子比特的状态随着时间自然演化,在这过程中按照哈密顿运算符的指示,一直到遇上逻辑门而被操作。
一个量子程序整体上对应有一条总的量子线路,本发明所述量子程序即指该条总的量子线路,其中,该总的量子线路中的量子比特总数与量子程序的量子比特总数相同。可以理解为:一个量子程序可以由量子线路、针对量子线路中量子比特的测量操作、保存测量结果的寄存器及控制流节点(跳转指令)组成,一条量子线路可以包含几十上百个甚至成千上万个量子逻辑门操作。量子程序的执行过程,就是对所有的量子逻辑门按照一定时序执行的过程。需要说明的是,时序即单个量子逻辑门被执行的时间顺序。
还需要说明的是,本发明涉及量子计算机,在基于硅芯片的普通计算设备中,处理芯片的单元是CMOS管,这种计算单元不受时间和想干性的限制,即,这种计算单元是不受使用时长限制,随时可用。此外,目前,在硅芯片中,这种计算单元的数量是充足的,即,目前一个芯片中的计算单元的数量是成千上万的。计算单元数量的充足且CMOS管可选择的计算逻辑是固定的,例如:与逻辑。借助CMOS管运算时,通过大量的CMOS管结合有限的逻辑功能,以实现运算效果。
与普通计算设备中的这种逻辑单元不同,目前量子计算机中,基本的计算单元是量子比特,量子比特的输入受相干性的限制,也受相干时间的限制,即,量子比特是受使用时长限制的,并不是随时可用的。在量子比特的可用使用时长内充分使用量子比特是量子计算的关键性难题。此外,量子计算机中量子比特的数量时量子计算的关键性难题。此外,量子计算机中量子比特的数量是量子计算机性能的代表指标之一,每个量子比特通过按需配置的逻辑功能实现计算功能,鉴于量子比特数量受限,而量子计算领域的逻辑功能是多样化的,例如:哈德玛门(Hadamard门,H门)、泡利-X门(X门)、泡利-Y门(Y门)、泡利-Z门(Z门)、RX门、RY门、RZ门、CNOT门、CR门、iSWAP门、Toffoli门等等。量子逻辑门一般使用酉矩阵表示,而酉矩阵不仅是矩阵形式,也是一种操作和变换。一般量子逻辑门在量子态上的作用是通过酉矩阵左乘以量子态右矢对应的矩阵进行计算的。量子计算时,借助有限的量子比特结合多样的逻辑功能组合实现运算效果。
基于量子计算机的这些不同,逻辑功能作用在量子比特的设计(包括量子比特使用与否的设计以及每个量子比特使用效率的设计)是提升量子计算机的运算性能的关键,且需要进行特殊的设计。而上述针对量子比特的设计是普通计算设备所不需要考虑的、也不需要面对的技术问题。基于此,针对如何在量子计算中实现变量平方模运算,本发明提出了一种变量平方模运算器、运算方法及相关装置,旨在实现量子计算中输入数据的平方与预设模数的模数运算。
参见图2和图3,图2为本发明实施例提供的一种变量平方模运算器的结构示意图,图3为本发明实施例提供的一种受控变量模加运算模块的结构示意图。所述变量平方模运算器200包括交替级联的n个受控变量模加运算模块210和n-1个变量二倍模乘运算器400,所述受控变量模加运算模块210包括依次级联的第一CONT门211、受控变量模加运算器300和第二CONT门212,所述受控变量模加运算器300与所述变量二倍模乘运算器400中的常数包括模数,所述变量平方模运算器200用于计算输入数据的平方与所述模数的模数运算结果。
其中,所述受控变量模加运算模块210的其中两个输入端210a1、210a2与所述第一CNOT门211的两个输入端211a1、211a2连接,所述第一CNOT门211的两个输出端211b1、211b2与所述受控变量模加运算器300的其中两个输入端300a1、300a2连接,所述受控变量模加运算模块210的另外两个输入端210a3、210a4与所述受控模加运算器300的另外两个输入端300a3、300a4连接。
其中,所述受控变量模加运算器300的其中两个输出端300b1、300b2与所述第二CONT门212的两个输入端212a1、212a2连接,所述第二CONT门212的两个输出端212b1、212b2与所述受控变量模加运算模块210的其中两个输出端210b1、210b2连接,所述受控变量模加运算器300的另外两个输出端300b3、300b4与所述受控变量模加运算模块210的另外两个输出端210b1、210b2连接。
其中,所述变量平方模运算器200的四个输入端与第0个所述受控变量模加运算模块的四个输入端连接,第0个所述受控变量模加运算模块的另外两个输出端与第0个所述变量二倍模乘运算器连接。
其中,所述变量平方模运算器200的四个输入端从上到下依次为,第一个输入端输入的量子比特用于控制否执行变量模加运算,该量子比特的初始量子态例如可以为|0>。第二个输入端用于输入的量子比特用于执行模加运算,其量子态为输入数据x对应的量子态|x>,另一方面该量子比特上的量子态也可以通过CNOT门交换到用于控制交换的第一个输入端输入的量子比特上,控制是否执行变量模加运算。第三个、第四个输入端输入的量子比特的初始量子态也可以为|0>,第三个输入端输入的n个量子比特用于作为数据比特参与计算,而第四个输入端输入的2个量子比特作为辅助比特辅助计算。
其中,第i-1个所述变量二倍模乘运算器的两个输出端和第i-1个所述受控变量受控变量模加运算模块的其中两个输出端与第i个所述受控变量模加运算模块的四个输入端连接,第i个所述受控变量模加运算模块的四个输出端分别与第i+1个所述受控模加运算模块的其中两个输入端和第i个所述变量二倍模乘运算器的两个输入端连接。
其中,第n-1个所述变量二倍模乘运算器的两个输出端与第n个所述变量模加运算模块的另外两个输入端连接,第n个所述变量模加运算模块的四个输出端与所述变量平方模运算器的四个输出端连接。
其中,i为大于或等于1的正整数。
其中,模数p为素数,输入数据x∈[0,p-1],用于编码x的量子比特数量
对于二进制的
可以看出,输入数据与预设的模数的模数运算可以转化成由输入数据x控制的n个受控变量模加运算和n-1个变量二倍模乘运算,由输入数据x控制的n个受控变量模加运算可以将x的二进制交换到辅助比特上去,然后通过该辅助比特去控制,执行完受控变量模加运算之后,再将x的二进制交换回数据比特,从而达到减少量子比特,节省量子计算资源的效果。
参见图4,图4为本发明实施例提供的一种变量模加运算器的结构示意图。所述受控变量模加运算器中的变量模加运算器300包括依次级联的模加运算模块300A和辅助数据复位模块300B,所述模加运算模块300A用于基于输入的初始比较辅助数据和两个待相加数据计算得到模加运算结果和中间比较辅助数据,所述辅助数据复位300B模块用于将所述中间比较辅助数据复位为所述初始比较辅助数据。
其中,模加运算模块300A的两个待相加数据一个为y,另一个为上一个变量二倍模乘运算器的输出,初始比较辅助数据为0,由图2中的其中一个辅助比特进行编码,该辅助比特用于辅助进行比较计算。
例如,对于第0个模加运算模块,初始比较辅助数据为0,两个待相加数据为x和0;对于第1个模加运算模块,初始比较辅助数据还是为0,两个待相加数据为x和2(xn-1xmodp),其余的模加运算模块的输入可以依据上个实施例中的公式进行类推,在此,不再赘述。
其中,中间比较辅助数据是初始比较辅助数据演化得到,可能为0,也可能为1,若与初始比较辅助数据不同,则需要通过辅助数据复位300B进行复位。
参见图5,图5为本发明实施例提供的一种模加运算模块的结构示意图。所述模加运算模块300A包括依次级联的第一加法器310、第一常数减法器320、第三CNOT门330和第一受控常数加法器340,所述第一常数减法器320和所述第一受控常数加法器340中的常数均为所述模数。
其中,所述模加运算模块300A的四个输入端300a1、300a2、300a3、300a4分别与所述第一加法器310的三个输入端310a1、320a2、320a3和所述第三CNOT门330的其中一个输入端330a1连接,所述模加运算模块300A的四个输入端300a1、300a2、300a3、300a4用于输入两个所述待相加数据、初始计算辅助数据和所述初始比较辅助数据对应的量子态。
其中,初始计算辅助数据为0,由另外一个辅助比特进行编码,该辅助比特用于辅助进行加法或减法计算。输入端和输出端对应的输入项、输出项可以是量子比特,数据编码至量子比特的量子态上,各量子逻辑门作用于量子比特,使得量子比特的量子态进行演化。
例如,对于第0个模加运算模块,将|y>作为输入端300a1的输入项,|0>作为输入端300a2、300a3和300a4的输入项。
可选的,所述第一加法器310的其中一个输出端310b1与所述第一常数减法器320的输入端320a连接,所述第一常数减法器320的输出端320b与所述第三CNOT门330的另外一个输入端330a2连接,所述第三CNOT门330的两个输出端330b1和330b2与所述第一受控常数加法器340的两个输入端340a1和340a2连接。
可选的,所述第一常数减法器320的输出端320b包括数据输出端320bm和符号输出端320bn,所述第一受控常数加法器340的其中一个输入端340a2包括数据输入端340a2m和符号输入端340a2n,所述第一常数减法器320的符号输出端320bn与所述第三CNOT门330的另外一个输入端330a2连接,所述第三CNOT门330的其中一个输出端330b2与所述第一受控常数加法器340的符号输入端340a2n连接。
可选的,所述第一受控常数加法器340的两个输出端340b1和340b2分别用于输出所述模加运算结果和中间比较辅助数据对应的量子态,所述第一加法器310的另外两个输出端310b2和320b3用于输出其中一个所述待相加数据和中间计算辅助数据对应的量子态。
假定上一个变量二倍模乘运算器的输出为|z>,则具体原理为:
量子态|x>|z>|0>经过第一加法器310,演化为|x>|x+z>|0>,这里,编码初始计算辅助数据对应的量子比特在辅助第一加法器进行加法计算之后,被复位为|0>;
量子态|x+z>经过第一常数减法器320,演化为|x+z-p>。
若x+z-p>0,则符号位对应的量子比特为|0>,第三CNOT门330不会被执行,用于编码初始比较辅助数据0的量子比特有的量子态还是为|0>,第一常数加法器340也不会被执行,输出端300b1输出的待相加数据x对应的量子态|x>,输出端300b2输出的模加运算结果则为|x+z-p>,输出端300b3输出的中间计算辅助数据对应的量子态|0>,输出端300b4输出的中间比较辅助数据对应的量子态|0>;
若x+z-p<0,则符号位对应的量子比特为|1>,第三CNOT门330执行,用于编码初始比较辅助数据0的量子比特的量子态演变为|1>,第一常数加法器340也被执行,输出端300b1输出的待相加数据y对应的量子态|x>,输出端300b2输出的模加运算结果则为|x+z>,输出端300b3输出的中间计算辅助数据对应的量子态|0>,输出端300b4输出的中间比较辅助数据对应的量子态|1>。
可以看出,对于x+z-p>0,初始比较辅助数据对应的量子比特不需要进行复位就可以重复使用;对于x+z-p<0,初始比较辅助数据对应的量子比特需要先进行复位才能重复使用,因此需要引入辅助数据复位模块。
参见图6,图6为本发明实施例提供的一种辅助数据复位模块的结构示意图。所述辅助数据复位模块300B包括依次级联的减法器350、第一非门360、第四CONT门370、第二非门380和第二加法器390,所述辅助数据复位模块300B的四个输入端300c1、300c2、300c3、300c4分别与所述减法器250的三个输入端250a1、250a2、250a3和所述第四CNOT门370的其中一个输入端370a1连接。
其中,所述减法器350的三个输出端350b1、350b2、350b3分别与所述第一非门360的输入端360a和所述第二加法器390的其中两个输入端390a2、390a3连接,所述第三非门360的输出端360b与所述第四CNOT门370的另外一个输入端370a2连接,所述第四CNOT门370的另外一个输出端370b1与所述第二非门380的输入端380a连接,所述第二非门380的输出端380b与所述第二加法器390的另外一个输入端390a1连接。
其中,所述减法器350的其中一个输出端350b1包括数据输出端350b1m和符号输出端350b1n,所述第二加法器390的另外一个输入端390a1包括数据输入端390a1m和符号输入端390a1n,所述减法器350的符号输出端350b1n与所述第一非门360的输入端360a连接,所述第二非门380的输出端380b与所述第二加法器390的符号输入端390a1连接。
其中,所述辅助数据复位模块300B的四个输出端300d1、300d2、300d3、300d4分别与所述第二加法器390的三个输出端390b1、390b2、390b3和所述第二CONT门370的其中一个输出端370b2连接,所述第二加法器390的三个输出端390b1、390b2、390b3用于输出所述模加运算结果、其中一个所述待相加数据和所述初始计算辅助数据对应的量子态,所述第二CONT门370的其中一个输出端370b2用于输出所述初始比较辅助数据对应的量子态。
具体原理为:
若x+z-p>0,量子态|x+z-p>经过减法器350,演化为|x-p>;再经过第一非门360,量子态|x-p>演化为|p-x>;p-x>0,第四CNOT门370的控制位为|0>,第四CNOT门370不会被执行;再经过第二非门380,量子态|p-x>演化为|x-p>;最后再经过第二加法器390,量子态|x-p>演化为|x+z-p>,即输出端300d1输出的是|x+z-p>,同时,其余量子态不变,输出端300d2、300d3、300d4分别输出的为|x>、|0>、|0>;
若x+z-p<0,量子态|x+z>经过减法器350,演化为|x>;再经过第一非门360,量子态|x>演化为|-x>;-x<0,第四CNOT门370的控制位为|1>,第四CNOT门370会被执行,经过第四CNOT门370,中间比较辅助数据对应的量子态|1>和量子态|-x>分别演化为|0>和|-x>,在这里,中间比较辅助数据对应的量子态|1>被复位为|0>;再经过第二非门380,量子态|-x>演化为|x>;最后再经过第二加法器390,量子态|x>演化为|x+z>,即输出端300d1输出的是|x+z>,同时,其余量子态不变,输出端300d2、300d3、300d4分别输出的为|x>、|0>、|0>。
可以看出,本发明实施例对辅助比较比特进行了复位,以使得复位后的辅助比较比特可以用于进行其他计算,节省计算资源;同时本发明实施例对辅助比较比特进行了复位之后,可以用于进行求逆,实现变量减法模加运算。
需要说明的是,本发明实施例中的减法器可以通过对加法器对应的量子线路取逆得到,具体的,第一加法器、第二加法器可以通过QPanda中的加法器接口QAdderIgnorecarry()实现,减法器可以通过QAdderIgnorecarry().dagger()实现。
同理,常数减法器可以通过对常数加法器对应的量子线路取逆得到,具体的,常数减法器和受控常数加法可以通过申请号为“202211114262.1”,申请名称为“基于量子傅里叶变换的常数加法器、运算方法及相关装置”的中国专利文献中的加法器实现。
其中,加法器、减法器可以实现任意的两个输入数据的加减法,而常数加法器和常数减法器只能实现任意一个输入数据与编码在常数加法器和常数减法器中的常数的加减法。
当然,本发明实施例中的加法器、减法器、常数加法器、常数减法器除了上述提供的具体实现方法之外,还可以有其他实现方式,在此,不做限定。
参见图7,图7为本发明实施例提供的一种变量二倍模乘运算器的结构示意图。所述变量二倍模乘运算器400包括依次级联的二倍运算模块410和模数运算模块420,所述模数运算模块420中的常数包括所述模数,所述二倍运算模块410用于确定输入的待倍增数据的二倍,所述模数运算模块420用于计算所述待倍增数据的二倍与所述模数的模数运算结果。
其中,所述变量二倍模乘运算器400、二倍运算模块410和模数运算模块420的输入和输出均为量子比特,经典数据被编码至量子比特的量子态上,编码方法可以是角度编码、振幅编码、基态编码等等。二倍运算模块410和模数运算模块420可以包括量子逻辑门,量子逻辑门作用于量子态,使得量子态进行演化。
待倍增数据为k,例如对于第0个变量二倍模乘运算器400,k=xn-1xmod p,对于第1个变量二倍模乘运算器400,k=xn-2x+2(xn-1x mod p)mod p,其余的模加运算模块的输入可以依据上个实施例中的公式进行类推,在此,不再赘述。
例如待倍增数据k被编码至量子比特的量子态|k>,然后作为变量二倍模乘运算器的输入,也即二倍运算模块410的输入;经过二倍运算模块410的作用,量子态演化为|2k>,再输入至模数运算模块420,经过作用演化得到|2k mod p>,也即变量二倍模乘运算器400的输出。
其中,所述二倍运算模块410包括以下其中一种操作:将数据进行错位存储的操作、加法器、SWAP门。
例如,通过n+1个量子比特对数据进行编码,二进制k=|k0>|k1>···|kn-1>,则2k=|0>|k0>|k1>···|kn-1>。
将数据进行错位存储的操作,即跳过第0个量子比特,直接将k0存储在第1个量子比特上,将k1存储在第2个量子比特上,···,将kn-1存储在第n个量子比特上,最终得到|0>|k0>|k1>···|kn-1>;
还可以是通过加法器对k和k进行相加,最终得到|0>|k0>|k1>···|kn-1>;
还可以是将前n个量子比特存储|k0>|k1>···|kn-1>,最后一个量子比特存储|0>,通过n个SWAP门将最后一个量子比特存储的|0>移位到第0个量子比特上,第0个量子比特上的|k0>移位到第1个量子比特上,···,第n-2个量子比特上的|kn-1>移位到最后一个量子比特上,最终也可以得到|0>|k0>|k1>···|kn-1>。
参见图8,图8为本发明实施例提供的另一种变量二倍模乘运算器的结构示意图。所述变量二倍模乘运算器400的其中一个输入端400a1与所述二倍运算模块410的输入端410a连接,所述二倍运算模块410的输出端410b与所述模数运算模块420的其中一个输入端420a1连接,所述变量二倍模乘运算器400的另外一个输入端400a2与所述模数运算模块420的另外一个输入端420a2连接,所述变量二倍模乘运算器400的其中一个输入端400a1用于输入所述待倍增数据对应的量子态,所述变量二倍模乘运算器400的另外一个输入端400a2用于输入初始辅助数据对应的量子态。
其中,初始辅助数据对应的量子态为|0>,由图2所示实施例中的两个中的一个辅助比特进行编码。
参见图9,图9为本发明实施例提供的一种模数运算模块的结构示意图。所述模数运算模块420包括级联的第一运算子模块420A和第二运算子模块420B,所述第一运算子模块420A用于将所述待倍增数据对应的量子态和所述初始辅助数据对应的量子态演化为所述待倍增数据的二倍与所述模数的模数运算结果,所述第二运算子模块420B用于将所述中间辅助数据复位为所述初始辅助数据。
其中,所述第一运算子模块420A包括依次级联的第二常数减法器421、第五CNOT门422和第二受控常数加法器423,所述第二常数减法器421和所述第二受控常数加法器423中的常数为所述模数p。
其中,所述第二常数减法器421的输出端421b包括数据输出端421bm和符号输出端421bn,所述第二受控常数加法器423的其中一个输入端423a1包括数据输入端423a1m和符号输入端423a1n,所述第二常数减法器421的数据输出端421bm与所述第二受控常数加法器423的数据输入端423a1m连接,所述第二常数减法器421的符号输出端421bn与所述第五CNOT门422的其中一个输入端422a1连接,所述第五CNOT门422的两个输出端422b1、422b2分别与所述第二受控常数加法器423的符号输入端423a1n和另外一个输入端423a2连接。
其中,所述第二受控常数加法器423的两个输出端423b1、423b2分别用于输出所述待倍增数据的二倍与所述模数的模数运算结果对应的量子态和中间辅助数据对应的量子态。
其中,所述第二受控常数加法器423的两个输出端423b1、423b2分别与所述变量二倍模乘运算器400的两个输出端400b1、400b2连接。
在本发明的一些实施例中,初始辅助数据为0,对应的量子态为|0>。经过第二常数减法器421,量子态演变为|2k-p>,然后通过第五CNOT门422比较2k和p的大小。
若2k≥p,则用于表示2k-p符号的量子比特的量子态为|0>,第五CNOT门422和第二受控常数加法器423不会被执行,输出的待倍增数据的二倍与模数的模数运算结果对应的量子态为|2k-p>,中间辅助数据对应的量子态为|0>;
相反,若2k<p,则用于表示2k-p符号的量子比特的量子态为|1>,第五CNOT门422和第二受控常数加法器423均会被执行,输出的待倍增数据的二倍与模数的模数运算结果对应的量子态为|2k>,中间辅助数据对应的量子态为|1>。
可以看出,在本发明实施例中量子线路的设计,无论是2k大于等于或是小于p,都可以计算出2k mod p,但是若是2k小于p,则用于编码初始辅助数据的辅助比特的量子态会从|0>演化到|1>,导致后续其他的计算无法对该量子比特进行复用。
为了解决上述用于编码初始辅助数据的辅助比特无法复用的问题,需要引入第二运算子模块420B。
还是参见图9,所述第二子运算模块420B包括依次级联的第三非门424、第六CNOT门425和第四非门426,所述第二受控常数加法器423的其中一个输出端423b1包括低位输出端423b1m和非低位输出端423b1n,所述第二受控常数加法器423的低位输出端423b1m与所述第三非门424的输入端424a连接,所述第二受控常数加法器423的另外一个输出端423b2与所述第六CNOT门425的其中一个输入端425a1连接。
其中,所述第三非门424的输出端424b与所述第六CNOT门425的另外一个输入端425a2连接,所述第六CNOT门425的另外一个输出端425b2与所述第四非门426的输入端426a连接。
其中,所述第四非门426的输出端426b与所述第二受控常数加法器423的非低位输出端423b1n用于输出所述待倍增数据的二倍与所述模数的模数运算结果对应的量子态,所述第六CNOT门425的其中一个输出端425b1用于输出所述初始辅助数据对应的量子态。
其中,所述第四非门426的输出端426b、所述第二受控常数加法器423的非低位输出端423b1n与所述变量二倍模乘运算器400的其中一个输出端400b1连接,所述第六CNOT门425的其中一个输出端425b1与所述变量二倍模乘运算器400的另外一个输出端400b2连接。
可以看出,若2k≥p,输出的|2k-p>为奇数,因此,低位输出端423b1m输出的量子态为|1>,第三非门424作用之后演化为|0>,第六CNOT门425不会被执行,第四非门426再次作用之后重新演化为|1>,最终输出的待倍增数据的二倍与模数的模数运算结果对应的量子态还是为|2k-p>,同时辅助量子比特对应的量子态为|0>;
若2k<p,输出的|2k>为偶数,因此,低位输出端423b1m输出的量子态为|0>,第三非门424作用之后演化为|1>,第六CNOT门425会被执行,辅助比特对应的量子态为从|1>复位为|0>,第四非门426再次将交换得到的|1>演化为|0>,从而最终输出的待倍增数据的二倍与模数的模数运算结果对应的量子态还是为|2k>,但是辅助比特对应的量子态被复位为|0>。
可见,在本发明实施例中量子线路的设计,无论是2k大于等于或是小于p,都可以计算出2k mod p,同时用于编码初始辅助数据的辅助比特的量子态也被复位,后续可以用于其他的计算。
常数减法器和受控常数加法可以通过申请号为“202211114262.1”,申请名称为“基于量子傅里叶变换的常数加法器、运算方法及相关装置”的中国专利文献中的加法器实现,还可以有其他实现方式,在此,不做限定。
综上,与现有技术相比,本发明提供的变量模乘运算器包括交替级联的n个受控变量模加运算器和n-1个变量二倍模乘运算器,受控变量模加运算器与变量二倍模乘运算器中的常数包括模数,通过将模乘运算转化成n个受控的变量模加运算和n-1个变量二倍模乘运算,进而实现输入的两个待相乘数据与模数的模乘运算的求解。
参见图10,图10为本发明实施例提供的一种变量平方模运算方法的流程示意图。所述方法包括:
步骤1001:获取上述实施例中所述的变量平方模运算器和输入数据;
步骤1002:将所述输入数据输入至所述变量平方模运算器,以及运行所述变量平方模运算器,得到所述输入数据的平方与所述模数的模数运算结果对应的量子态;
步骤1003:基于所述模数运算结果对应的量子态确定所述输入数据的平方与所述模数的模数运算结果。
参见图11,图11为本发明实施例提供的一种变量平方模运算装置的结构示意图。所述装置包括:
获取单元1101,用于获取上述实施例中所述的变量平方模运算器和输入数据;
计算单元1102,用于将所述输入数据输入至所述变量平方模运算器,以及运行所述变量平方模运算器,得到所述输入数据的平方与所述模数的模数运算结果对应的量子态;
确定单元1103,用于基于所述模数运算结果对应的量子态确定所述输入数据的平方与所述模数的模数运算结果。
本发明的再一实施例提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项中方法实施例中的步骤。
具体的,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
获取上述实施例中所述的变量平方模运算器和输入数据;
将所述输入数据输入至所述变量平方模运算器,以及运行所述变量平方模运算器,得到所述输入数据的平方与所述模数的模数运算结果对应的量子态;
基于所述模数运算结果对应的量子态确定所述输入数据的平方与所述模数的模数运算结果。
具体的,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的再一实施例还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项中方法实施例中的步骤。
具体的,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
具体的,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
获取上述实施例中所述的变量平方模运算器和输入数据;
将所述输入数据输入至所述变量平方模运算器,以及运行所述变量平方模运算器,得到所述输入数据的平方与所述模数的模数运算结果对应的量子态;
基于所述模数运算结果对应的量子态确定所述输入数据的平方与所述模数的模数运算结果。
以上依据图式所示的实施例详细说明了本发明的构造、特征及作用效果,以上所述仅为本发明的较佳实施例,但本发明不以图面所示限定实施范围,凡是依照本发明的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本发明的保护范围内。
Claims (10)
1.一种变量平方模运算器,其特征在于,所述变量平方模运算器包括交替级联的n个受控变量模加运算模块和n-1个变量二倍模乘运算器,所述受控变量模加运算模块包括依次级联的第一CONT门、受控变量模加运算器和第二CONT门,所述受控变量模加运算器与所述变量二倍模乘运算器中的常数包括模数,所述变量平方模运算器用于计算输入数据的平方与所述模数的模数运算结果。
2.如权利要求1所述的变量平方模运算器,其特征在于,所述受控变量模加运算模块的其中两个输入端与所述第一CNOT门的两个输入端连接,所述第一CNOT门的两个输出端与所述受控变量模加运算器的其中两个输入端连接,所述受控变量模加运算模块的另外两个输入端与所述受控模加运算器的另外两个输入端连接。
3.如权利要求2所述的变量平方模运算器,其特征在于,所述受控变量模加运算器的其中两个输出端与所述第二CONT门的两个输入端连接,所述第二CONT门的两个输出端与所述受控变量模加运算模块的其中两个输出端连接,所述受控变量模加运算器的另外两个输出端与所述受控变量模加运算模块的另外两个输出端连接。
4.如权利要求3所述的变量平方模运算器,其特征在于,所述变量平方模运算器的四个输入端与第0个所述受控变量模加运算模块的四个输入端连接,第0个所述受控变量模加运算模块的另外两个输出端与第0个所述变量二倍模乘运算器连接。
5.如权利要求4所述的变量平方莫运算器,其特征在于,第i-1个所述变量二倍模乘运算器的两个输出端和第i-1个所述受控变量受控变量模加运算模块的其中两个输出端与第i个所述受控变量模加运算模块的四个输入端连接,第i个所述受控变量模加运算模块的四个输出端分别与第i+1个所述受控模加运算模块的其中两个输入端和第i个所述变量二倍模乘运算器的两个输入端连接。
6.如权利要求5所述的变量平方模运算器,其特征在于,第n-1个所述变量二倍模乘运算器的两个输出端与第n个所述变量模加运算模块的另外两个输入端连接,第n个所述变量模加运算模块的四个输出端与所述变量平方模运算器的四个输出端连接。
7.一种变量平方模运算方法,其特征在于,所述方法包括:
获取如权利要求1-6任一项所述的变量平方模运算器和输入数据;
将所述输入数据输入至所述变量平方模运算器,以及运行所述变量平方模运算器,得到所述输入数据的平方与所述模数的模数运算结果对应的量子态;
基于所述模数运算结果对应的量子态确定所述输入数据的平方与所述模数的模数运算结果。
8.一种变量平方运算装置,其特征在于,所述装置包括:
获取单元,用于获取如权利要求1-6任一项所述的变量平方模运算器和输入数据;
计算单元,用于将所述输入数据输入至所述变量平方模运算器,以及运行所述变量平方模运算器,得到所述输入数据的平方与所述模数的模数运算结果对应的量子态;
确定单元,用于基于所述模数运算结果对应的量子态确定所述输入数据的平方与所述模数的模数运算结果。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求7中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求7中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211464665.9A CN118095456A (zh) | 2022-11-22 | 2022-11-22 | 变量平方模运算器、运算方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211464665.9A CN118095456A (zh) | 2022-11-22 | 2022-11-22 | 变量平方模运算器、运算方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118095456A true CN118095456A (zh) | 2024-05-28 |
Family
ID=91162192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211464665.9A Pending CN118095456A (zh) | 2022-11-22 | 2022-11-22 | 变量平方模运算器、运算方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118095456A (zh) |
-
2022
- 2022-11-22 CN CN202211464665.9A patent/CN118095456A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112114776B (zh) | 一种量子乘法运算方法、装置、电子装置及存储介质 | |
CN112162723B (zh) | 一种量子减法运算方法、装置、电子装置及存储介质 | |
CN111563599B (zh) | 一种量子线路的分解方法、装置、存储介质及电子装置 | |
CN112232513B (zh) | 一种量子态的制备方法及装置 | |
CN111582491A (zh) | 一种量子线路的构建方法及装置 | |
CN112633507B (zh) | 一种将复向量编码到量子线路的方法及装置 | |
CN112633508A (zh) | 一种量子线路的生成方法、装置、存储介质及电子装置 | |
CN113222150A (zh) | 一种量子态的变换方法及装置 | |
CN112214200B (zh) | 一种量子减法运算方法、装置、电子装置及存储介质 | |
CN113222156A (zh) | 一种待执行操作的量子模拟方法、装置 | |
CN115809707B (zh) | 量子比较运算方法、装置、电子装置及基础算术组件 | |
CN113222151A (zh) | 一种量子态的变换方法及装置 | |
CN118095456A (zh) | 变量平方模运算器、运算方法及相关装置 | |
CN118095458A (zh) | 变量模乘运算器、运算方法及相关装置 | |
CN118092857A (zh) | 基于常数加减法的变量模加运算器、运算方法及相关装置 | |
CN115879554B (zh) | 量子模数平方运算方法、装置、电子装置及模数算术组件 | |
WO2024109730A1 (zh) | 变量模乘运算器、运算方法及相关装置 | |
CN118095459A (zh) | 变量二倍模乘运算器、运算方法及相关装置 | |
CN115809706B (zh) | 量子模数倍增运算方法、装置、电子装置及模数算术组件 | |
CN115879553B (zh) | 量子模数完整乘法运算方法、装置及模数算术组件 | |
CN115879552B (zh) | 量子模数乘逆运算方法、装置、电子装置及模数算术组件 | |
CN115809042B (zh) | 量子模数加法运算方法、装置、电子装置及模数算术组件 | |
CN115879555B (zh) | 量子模数快速乘法运算方法、装置及模数算术组件 | |
CN112162725B (zh) | 一种量子除法运算方法、装置、电子装置及存储介质 | |
CN118095457A (zh) | 模逆量子线路的构造方法、装置、介质及电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |