掌桥专利:专业的专利平台
掌桥专利
首页

密文解密方法、装置、存储介质及电子装置

文献发布时间:2024-04-18 20:02:18


密文解密方法、装置、存储介质及电子装置

技术领域

本发明属于量子计算技术领域,特别是涉及一种密文解密方法、装置、存储介质及电子装置。

背景技术

量子计算机是一类遵循量子力学规律进行高速数学和逻辑运算、存储及处理量子信息的物理装置。当某个装置处理和计算的是量子信息,运行的是量子算法时,它就是量子计算机。量子计算机因其具有相对普通计算机更高效的处理数学问题的能力,例如,能将破解RSA密钥的时间从数百年加速到数小时,故成为一种正在研究中的关键技术。

椭圆曲线密码体制(Elliptic curve cryptography,ECC)是当前一类很重要的公钥密码体制,在数字货币、手机芯片、微信APP、银行卡以及银行系统中都有广泛的应用。随着安全级别的增加,RSA的密钥长度会成亚指数增加,而ECC密钥长度却是成线性增加,例如,128位安全加密需要3072位RSA密钥,但仅需要一个256位ECC密钥。ECC具有卓越的按位比率加密的性能,其显著优势也成为了国家安全局关注的重点。

相关技术中,需要在不知道解密私钥的情况下,根据已经公开的信息加密密文,例如私钥遗忘丢失时,以恢复相应明文,基于此,提出一种密文解密方法。

发明内容

本发明的目的是提供一种密文解密方法、装置、存储介质及电子装置,旨在私钥丢失的情况下,对密文进行解密。

为了实现上述目的,本发明实施例的第一方面,提供一种密文解密方法,应用于量子处理单元,包括:

接收经典处理单元发送的待解密密文对应的基点、公钥以及量子解密电路,所述量子解密电路包括多个级联的受控点加模块和控制比特,所述控制比特用于依次控制每一受控点加模块进行点加运算,所述受控点加模块的参数基于所述基点或所述公钥确定;

运行所述量子解密电路,针对每一受控点加模块,在所述控制比特控制当前受控点加模块进行点加运算后,测量所述控制比特的量子态,并将所述控制比特的量子态置为零态用于控制下一受控点加模块进行点加运算,得到测量结果序列;

向所述经典处理单元发送所述测量结果序列,以使得所述经典处理单元根据所述测量结果序列对所述待解密密文进行解密。

在一种可能的实现方式中,所述多个级联的受控点加模块包括n+1个第一受控点加模块和n+1个第二受控点加模块,第i个第一受控点加模块的参数为所述基点的2

在一种可能的实现方式中,所述量子解密电路还包括依次作用于所述控制比特的第一H门、相位旋转逻辑门和第二H门,所述第一H门作用于量子态置为零态后的所述控制比特,所述相位旋转逻辑门在所述控制比特控制所述受控点加模块进行点加运算后,作用于所述控制比特,所述第二H门作用于所述控制比特之后,对所述控制比特的量子态进行测量。

在一种可能的实现方式中,当前作用于所述受控比特的相位旋转逻辑门的参数根据上一次对所述控制比特量子态的测量结果确定。

在一种可能的实现方式中,所述相位旋转逻辑门R

所述相位旋转逻辑门的参数θ

其中,k表示相位旋转逻辑门第k次作用在控制比特上,m

在一种可能的实现方式中,所述待解密密文为椭圆曲线加密ECC密文。

本发明的第二方面,提供了一种密文解密方法,应用于经典处理单元,包括:

获取待解密密文的基点和公钥;

构建包括多个级联的受控点加模块和控制比特的量子解密电路,所述控制比特用于依次控制每一受控点加模块进行点加运算,所述受控点加模块的参数基于所述基点或所述公钥确定;

向量子处理单元发送所述基点、公钥和量子解密电路,以使得所述量子处理单元运行所述量子解密电路,针对每一受控点加模块,在所述控制比特控制当前受控点加模块进行点加运算后,测量所述控制比特的量子态,并将所述控制比特的量子态置为零用于控制下一受控点加模块进行点加运算,得到测量结果序列;

接收量子处理单元发送的所述测量结果序列,根据所述测量结果序列对所述待解密密文进行解密。

在一种可能的实现方式中,所述多个级联的受控点加模块包括n+1个第一受控点加模块和n+1个第二受控点加模块,第i个第一受控点加模块的参数为所述基点的2

在一种可能的实现方式中,所述测量结果序列包括第一结果序列和第二结果序列,所述第一结果序列为控制比特控制n+1个第一受控点加模块进行点加运算之后的量子态测量结果序列,所述第二结果序列为控制比特控制n+1个第二受控点加模块进行点加运算之后的量子态测量结果序列。

在一种可能的实现方式中,所述根据根据所述测量结果序列对所述待解密密文进行解密,包括:

将所述第一结果序列和所述第二结果序列分别转换为十进制数;

对所述第一结果序列对应的十进制数与2

将得到的展开结果相除,得到所述待解密密文的私钥,根据所述私钥对所述待解密密文进行解密。

本发明实施例的第三方面,提供了一种密文解密装置,应用于量子处理单元,包括:

接收模块,用于接收经典处理单元发送的待解密密文对应的基点、公钥以及量子解密电路,所述量子解密电路包括多个级联的受控点加模块和控制比特,所述控制比特用于依次控制每一受控点加模块进行点加运算,所述受控点加模块的参数基于所述基点或所述公钥确定;

运行模块,用于运行所述量子解密电路,针对每一受控点加模块,在所述控制比特控制当前受控点加模块进行点加运算后,测量所述控制比特的量子态,并将所述控制比特的量子态置为零态用于控制下一受控点加模块进行点加运算,得到测量结果序列;

发送模块,用于向所述经典处理单元发送所述测量结果序列,以使得所述经典处理单元根据所述测量结果序列对所述待解密密文进行解密。

本发明实施例的第四方面,提供了一种密文解密装置,应用于经典处理单元,包括:

获取模块,用于获取待解密密文的基点和公钥;

构建模块,用于构建包括多个级联的受控点加模块和控制比特的量子解密电路,所述控制比特用于依次控制每一受控点加模块进行点加运算,所述受控点加模块的参数基于所述基点或所述公钥确定;

发送模块,用于向量子处理单元发送所述基点、公钥和量子解密电路,以使得所述量子处理单元运行所述量子解密电路,针对每一受控点加模块,在所述控制比特控制当前受控点加模块进行点加运算后,测量所述控制比特的量子态,并将所述控制比特的量子态置为零用于控制下一受控点加模块进行点加运算,得到测量结果序列;

接收模块,用于接收量子处理单元发送的所述测量结果序列,根据所述测量结果序列对所述待解密密文进行解密。

本发明实施例的第五方面,提供一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述第一方面或第二方面中任一项所述方法的步骤。

本发明实施例的第六方面,提供一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述第一方面或第二方面中任一项所述方法的步骤。

基于上述技术方案,接收经典处理单元发送的待解密密文对应的基点、公钥以及量子解密电路,所述量子解密电路包括多个级联的受控点加模块和控制比特,所述控制比特用于依次控制每一受控点加模块进行点加运算,所述受控点加模块的参数基于所述基点或所述公钥确定;运行所述量子解密电路,针对每一受控点加模块,在所述控制比特控制当前受控点加模块进行点加运算后,测量所述控制比特的量子态,并将所述控制比特的量子态置为零用于控制下一受控点加模块进行点加运算,得到测量结果序列;向所述经典处理单元发送所述测量结果序列,以使得所述经典处理单元根据所述测量结果序列对所述待解密密文进行解密。本发明通过基于待解密密文的基点和公钥构建的量子解密电路,运行量子解密电路,根据控制比特的量子态测量结果序列对待解密密文进行解密,实现了在丢失待解密密文的私钥的情况下,对待解密密文进行解密。

附图说明

图1是根据一示例性实施例示出的一种密文解密方法的计算机终端的硬件结构框图。

图2是根据一示例性实施例示出的一种密文解密方法的流程图。

图3是根据一示例性实施例示出的一种量子解密电路的结构示意图。

图4是根据一示例性实施例示出的一种量子点加电路的结构示意图。

图5是根据一示例性实施例示出的另一种量子点加电路的结构示意图。

图6是根据一示例性实施例示出的一种变量模加运算器的结构示意图。

图7是根据一示例性实施例示出的另一种密文解密方法的流程图。

图8是根据一示例性实施例示出的一种密文解密装置的框图。

图9是根据一示例性实施例示出的另一种密文解密装置的框图。

图10是根据一示例性实施例示出的一种计算机设备的框图。

具体实施方式

下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

图1是本发明实施例提供的密文解密系统的网络框图。密文解密系统可以包括网络110、服务器120、无线设备130、客户机140、存储150、经典处理单元160、量子处理单元170,还可以包括未示出的附加存储器、经典处理器、量子处理器和其他设备。

网络110是用于为密文解密系统内连接在一起的各种设备和计算机之间提供通信链路的介质,包括但不限于互联网、企业内部网、局域网、移动通信网及其组合,连接方式可以采用有线、无线通信链路或光纤电缆等。

服务器120、无线设备130和客户机140是常规的数据处理系统,可包含数据和具有执行常规计算过程的应用程序或软件工具。客户机140可以是个人计算机或网络计算机,故数据也可以是服务器120提供的。无线设备130可以是智能手机、平板、笔记本电脑、智能可穿戴设备等。存储单元150可以包括数据库151,其可以被配置为存储量子比特参数、量子逻辑门参数、量子线路、量子程序等数据。

经典处理单元160(量子处理单元170)可以包括用于处理经典数据(量子数据)的经典处理器161(量子处理器171)和用于存储经典数据(量子数据)的存储器162(存储器172),经典数据(量子数据)可以是引导文件、操作系统镜像、以及应用程序163(应用程序173),应用程序163(应用程序173)可以用于实现根据本发明实施例提供的密文解密方法编译的量子算法。

经典处理单元160(量子处理单元170)中存储或产生的任何数据或信息也可以被配置成以类似的方式在另一个经典(量子)处理系统中存储或产生,同样其执行的任何应用程序也可以被配置成以类似的方式在另一个经典(量子)处理系统中执行。

需要说明的是,真正的量子计算机是混合结构的,它至少包括图1中的两大部分:经典处理单元160,负责执行经典计算与控制;量子处理单元170,负责运行量子程序进而实现量子计算。

上述经典处理单元160和量子处理单元170可以是集成在一台设备中,也可以是分布在两台不同的设备之中。例如包括经典处理单元160的第一设备运行经典计算机操作系统,其上提供了量子应用程序开发工具和服务,以及还提供了量子应用程序所需的存储和网络服务。用户通过其上的量子应用程序开发工具和服务开发量子程序,以及通过其上的网络服务将量子程序发送至包括量子处理单元170的第二设备。第二设备运行量子计算机操作系统,通过量子计算机操作系统对该量子程序的代码进行解析编译成量子处理器170可以识别和执行的指令,量子处理器170根据该指令实现量子程序对应的量子算法。

经典处理单元160中的经典处理器161的计算单元是基于硅芯片的CMOS管,这种计算单元不受时间和相干性的限制,即,这种计算单元是不受使用时长限制,随时可用。此外,在硅芯片中,这种计算单元的数量也是充足的,目前一个经典处理器161中的计算单元的数量是成千上万的,计算单元数量的充足且CMOS管可选择的计算逻辑是固定的,例如:与逻辑。借助CMOS管运算时,通过大量的CMOS管结合有限的逻辑功能,以实现运算效果。

量子处理单元170中量子处理器171的基本计算单元是量子比特,量子比特的输入受相干性的限制,也受相干时间的限制,即,量子比特是受使用时长限制的,并不是随时可用的。在量子比特的可用使用时长内充分使用量子比特是量子计算的关键性难题。此外,量子计算机中量子比特的数量是量子计算机性能的代表指标之一,每个量子比特通过按需配置的逻辑功能实现计算功能,鉴于量子比特数量受限,而量子计算领域的逻辑功能是多样化的,例如:哈德玛门(Hadamard门,H门)、泡利-X门(X门)、泡利-Y门(Y门)泡利-Z门(Z门)、X门、RY门、RZ门、CNOT门、CR门、iSWAP门、Toffoli门等等。量子计算时,需借助有限的量子比特结合多样的逻辑功能组合实现运算效果。

基于这些不同,经典逻辑功能作用在CMOS管的设计和量子逻辑功能作用在量子比特的设计是显著和本质不同的;经典逻辑功能作用在CMOS管的设计是不需要考虑CMOS管的个体性,如CMOS管在硅芯片中的表示是第几个CMOS管的个体标识、位置、每个CMOS管的可使用时长,故而经典逻辑功能组成的经典算法只表达算法的运算关系,不表达算法对CMOS管个体的依赖。

而量子逻辑功能作用在量子比特需要考虑量子比特的个体性,如量子比特在量子芯片中是第几个量子比特的个体标识、位置以及和周围量子比特的关系、以及每个量子比特可使用时长。故而量子逻辑功能组成的量子算法不仅表达算法的运算关系,更表达算法对量子比特个体的依赖。

示例性的:

量子算法一:H1、H2、CNOT(1,3)、H3、CNOT(2,3);

量子算法二:H1、H2、CNOT(1,2)、H3、CNOT(2,3);

其中,1/2/3分别表示三个依次相连的量子比特Q1、Q2、Q3或者相互连接的量子比特Q1、Q2、Q3;

量子算法受量子比特相干时间影响的示例性解释如下:

定义一个单量子比特逻辑门执行时长为t,1个作用在相邻比特上的两单量子比特逻辑门执行时间为2t;则:

当Q1、Q2、Q3三者彼此相互连接时,量子算法一的计算需要6t,分4个时间段进行,每个时间段需要的时长分别为t,2t,t,2t,每个时间段内执行的运算为:H1、H2;CNOT(1,3);H3;CNOT(2,3);

量子算法一的计算需要5t,分3个时间段进行,每个时间段需要的时长分别为t,2t,2t,每个时间段内执行的运算为:H1、H2、H3;CNOT(1,2);CNOT(2,3);

当Q1、Q2、Q3三者依次连接时,量子算法一需要等效为:H 1、H2;swap(1,2)、CNOT(2,3)、swap(1,2);H3;CNOT(2,3);等效后的量子算法一的计算需要10t,分4个时间段,每个时间段需要的时长分别为t,6t,t,2t。每个时间段内执行的运算为:H1、H2;swap(1,2)、CNOT(2,3)、swap(1,2);H3;CNOT(2,3)。

所以,量子逻辑功能作用在量子比特的设计(包括量子比特使用与否的设计以及每个量子比特使用效率的设计)是提升量子计算机的运算性能的关键,且需要进行特殊的设计,这也是基于量子逻辑功能实现的量子算法的独特性,是和基于经典逻辑功能实现的经典算法的本质和显著不同。而上述针对量子比特的设计是普通计算设备所不需要考虑的、也不需要面对的技术问题。本发明提出了一种密文解密方法,以实现实现了在丢失待解密密文的私钥的情况下,对待解密密文进行解密。

参见图2,图2是根据一示例性实施例示出的一种密文解密方法的流程图,应用于量子处理单元,该方法包括以下步骤:

S201、接收经典处理单元发送的待解密密文对应的基点、公钥以及量子解密电路。

在本申请实施例中,所述量子解密电路包括多个级联的受控点加模块和控制比特,所述控制比特用于依次控制每一受控点加模块进行点加运算,所述受控点加模块的参数基于所述基点或所述公钥确定。

其中,待解密密文为椭圆曲线加密(Elliptic curve cryptography,ECC)密文,ECC密文的安全性主要是基于椭圆曲线离散对数问题(Elliptic Curve DiscreteLogarithm Problem,ECDLP)。

ECDLP定义为:给定素数p和椭圆曲线E,对于Q=kP,在已知P,Q的情况下求出小于p的正整数k。可以证明由k和P计算Q比较容易,而由Q和P计算k则比较困难。

在具体的加密场景中,P通常被称为基点,Q被称为公钥,k被称为私钥,也被称为离散对数。

S202、运行所述量子解密电路,针对每一受控点加模块,在所述控制比特控制当前受控点加模块进行点加运算后,测量所述控制比特的量子态,并将所述控制比特的量子态置为零态用于控制下一受控点加模块进行点加运算,得到测量结果序列。

本申请实施例中,控制比特的初始量子态为零态,该控制比特可以被复用,在控制比特控制受控点加模块进行点加运算之后,可以将控制比特的量子态重新置为零态,以使得控制比特可以继续控制下一受控点加模块进行点加运算。

椭圆曲线是一类很特殊的代数曲线,椭圆曲线上的加法不是通常意义上的数值加法,而是一种特殊的几何运算,在椭圆曲线密码学中,将椭圆曲线上的点进行组合,这种组合遵循特定的规则,称为“椭圆曲线上的点加运算”。

具体来说,椭圆曲线上的点加运算的规则如下:

规则一、计算椭圆曲线上A、B两个点的点加运算,若A、B不为相同点且A、B不为无穷远点O,则连接A和B两点作一条直线,这条直线将在该椭圆曲线上交于第三点G,过G点再作垂直于x轴的直线,将与该椭圆曲线相交于另一点R(一般G点和R点是关于x轴对称的点),R点则被定义为A+B的结果,即A+B=R,此运算过程称作椭圆曲线的一般点加运算。

规则二、若A和B为相同点,则确定椭圆曲线在点A的切线,这条切线将在该椭圆曲线上交于点G,过G点再作垂直于x轴的直线,将与椭圆曲线相加于另一点R(一般是关于x轴对称的点),R点则被定义为A的二倍运算结果,即2A=R,此运算过程称作椭圆曲线的二倍点运算。

规则三、若A、B在同一条竖直直线上,那么A和B的点加运算结果被定义为“无穷远点”记作O,无穷远点在椭圆曲线上不存在,但在椭圆曲线密码学中起着特殊作用,对于椭圆曲线上的任一点D,都有D+O=D。

其中,所述受控点加运算即由控制比特控制的点加运算,若控制比特的量子态为|1>,该点加运算会被执行,则为实控;若控制比特的量子态为|0>,该点加运算会被执行,则为虚控;该点加运算可以是椭圆曲线的一般点加运算,也可以是椭圆曲线的二倍点运算。

S203、向所述经典处理单元发送所述测量结果序列,以使得所述经典处理单元根据所述测量结果序列对所述待解密密文进行解密。

本申请实施例中,对控制比特的量子态进行测量后,得到的测量结果为1或0,在控制比特每一次控制受控点加模块进行点加运算之后,对控制比特的量子态进行测量,得到测量结果序列,该测量结果序列为一连串由0或1构成的二进制数。

基于上述技术方案,接收经典处理单元发送的待解密密文对应的基点、公钥以及量子解密电路,所述量子解密电路包括多个级联的受控点加模块和控制比特,所述控制比特用于依次控制每一受控点加模块进行点加运算,所述受控点加模块的参数基于所述基点或所述公钥确定;运行所述量子解密电路,针对每一受控点加模块,在所述控制比特控制当前受控点加模块进行点加运算后,测量所述控制比特的量子态,并将所述控制比特的量子态置为零用于控制下一受控点加模块进行点加运算,得到测量结果序列;向所述经典处理单元发送所述测量结果序列,以使得所述经典处理单元根据所述测量结果序列对所述待解密密文进行解密。本发明通过基于待解密密文的基点和公钥构建的量子解密电路,运行量子解密电路,根据控制比特的量子态测量结果序列对待解密密文进行解密,实现了在丢失待解密密文的私钥的情况下,对待解密密文进行解密。

在本申请另一实施例中,上述多个级联的受控点加模块包括n+1个第一受控点加模块和n+1个第二受控点加模块,第i个第一受控点加模块的参数为所述基点的2

所述量子解密电路还包括依次作用于所述控制比特的第一H门、相位旋转逻辑门和第二H门,所述第一H门作用于量子态置为零态后的所述控制比特,所述相位旋转逻辑门在所述控制比特控制所述受控点加模块进行点加运算后,作用于所述控制比特,所述第二H门作用于所述控制比特之后,对所述控制比特的量子态进行测量。

如图3所示,图3为本申请实施例提供的一种量子解密电路的结构示意图。图3所示的量子解密电路中包括初始量子态为零态的控制比特,第一H门、相位旋转逻辑门和第二H门依次作用于控制比特,但当控制比特控制第一个受控点加模块时,仅第一H门和第二H门作用于控制比特,控制比特控制2n+2个级联的受控点加模块进行点加运算,其中,前n+1个受控点加模块的参数依次为P、2P、2

在图3中,当i=0时,第0个第一受控点加模块用于将点P与前面的运算结果进行一般点加运算;当i=1时,第1个第一受控点加模块用于将点P的2倍点运算结果与前面的运算结果进行一般点加运算;当i=n时,第n个第一受控点加模块作用于将点P的2

当j=0时,第0个第二受控点加模块用于将点Q与前面的运算结果进行一般点加运算;当i=1时,第1个第二受控点加模块用于将点Q的2倍点运算结果与前面的运算结果进行一般点加运算;当i=n时,第n个第二受控点加模块用于将点Q的2

在图3中除控制比特控制第一个受控点加模块外,将第一H门作用于控制比特后,控制比特控制受控点加模块进行点加运算,再将相位旋转逻辑门、第二H门作用于控制比特,随后测量控制比特的量子态,得到测量结果,其中测量结果为0或者1。控制比特对受控点加模块的控制操作会对测量结果造成影响,即做了量子纠缠后的测量操作为解纠缠过程,所以测量结果为0或1。

上述实施例中,当前作用于所述受控比特的相位旋转逻辑门的参数根据上一次对所述控制比特量子态的测量结果确定。

具体的,所述相位旋转逻辑门R

所述相位旋转逻辑门的参数θ

其中,k表示相位旋转逻辑门第k次作用在控制比特上,m

上述实施例中第一H门和第二H门的操作可以用以下公式表示:

上述实施例中控制比特的2n+2次的控制受控点加模块的操作可以用以下公式表示:

上述实施例中的量子态进行量子傅里叶变换可以用以下公式表示:

下面对图3中的受控点加模块的量子电路进行说明。如图4所示,图4为本申请实施例提供的一种受控点加量子电路的示意图。图4中,-x

其中,前面依次作用的-x

如图5所示,图5为本申请实施例提供的一种椭圆曲线二倍点加运算的量子电路的示意图,Sqr为变量平方模操作,×3为常数为3的常数模乘操作,+A为常数为A的常数模加操作,×2为常数为2的常数模乘操作,Inv为模乘法逆操作,Mul为变量模乘操作,-A为常数为A的常数模减操作,-x

其中,前面依次作用的Sqr、×3、+A、×2、Inv、Mul等操作用于得到椭圆曲线在目标点的切线的斜率,后面依次作用的-A、-x

上述模加运算器可以为变量模加运算器或常数模加运算器,如图6所示,图6为变量模加运算器的结构示意图,图6中,第一寄存器和第二寄存器各包括n个量子比特,第一寄存器用于存储待模加变量x,第二寄存器用于存储待模加变量y,aux1和aux0为辅助量子比特,aux1的初始量子态为|0>态,第一加法器Qadder作用于第一寄存器、第二寄存器、辅助比特aux1和aux0,用于将第一寄存器的量子态由|x>演化为|x+y>,-N表示参数为-N的常数加法器,作用于第一寄存器和辅助比特aux1,将第一寄存器的量子态由|x+y>演化为|x+y-N>。

图6中,在参数为-N的常数加法器作用于第一寄存器和辅助比特aux1之后,若x+y大于或等于N,即x+y-N大于或等于0,则aux1的量子态为|0>态,若x+y小于N,即x+y-N小于0,则aux1的量子态由0态翻转为|1>态。

图6所示的变量模加运算器还包括参数为+N的受控常数加法器,该受控常数加法器受控于辅助比特aux1,在aux1的量子态为|1>态时,作用于第一寄存器,将第一寄存器的量子态由|x+y-N>演化为|x+y>,也就是说在x+y小于N时,第一寄存器的量子态|x+y>为变量模加运算结果|x+y mod N>

在aux1为|0>态时,即参数为+N的受控常数加法器不作用于第二寄存器,第二寄存的量子态仍为|x+y-N>,也就是说在x+y大于或等于N时,第一寄存器的量子态|x+y-N>为变量模加运算结果|x+y mod N>。

图6中的虚线框表示复位模块,第二加法器

可以理解的是,若x+y mod N=x+y,则说明在第二加法器在作用第一寄存器、第二寄存器、aux1和aux0之前,辅助比特aux1的量子态为|1>态,而x+y mod N-y=x+y-y=x>0,所以在第二加法器在作用第一寄存器、第二寄存器、aux1和aux0之后,辅助比特aux1的量子态仍为|1>态。

若x+y mod N=x+y-N,则说明在第二加法器在作用第一寄存器、第二寄存器、aux1和aux0之前,辅助比特aux1的量子态为|0>态,而x+y mod N-y=x+y-N-y=x-N<0,所以在第二加法器在作用第一寄存器、第二寄存器、aux1和aux0之后,辅助比特aux1的量子态由|0>态翻转为|1>态。

图6中X门作用在为|1>态的辅助比特aux1上,将辅助比特aux1的量子态重置为|0>态。

本申请实施例还提供了一种密文解密方法,如图7所示,该方法应用于经典处理单元,包括:

S701、获取待解密密文的基点和公钥。

其中,待解密密文为ECC密文,关于ECC密文的相关介绍请参考上述实施例中的有关描述,此处不再赘述。

S702、构建包括多个级联的受控点加模块和控制比特的量子解密电路。

其中,所述控制比特用于依次控制每一受控点加模块进行点加运算,所述受控点加模块的参数基于所述基点或所述公钥确定。

其中,多个级联的受控点加模块包括n+1个第一受控点加模块和n+1个第二受控点加模块,第i个第一受控点加模块的参数为所述基点的2

本申请实施例中的量子解密电路的具体结构与前文实施例中的量子解密电路一致,可以参考前文实施例中的有关描述,此处不再赘述。

S703、向量子处理单元发送所述基点、公钥和量子解密电路,以使得所述量子处理单元运行所述量子解密电路,针对每一受控点加模块,在所述控制比特控制当前受控点加模块进行点加运算后,测量所述控制比特的量子态,并将所述控制比特的量子态置为零用于控制下一受控点加模块进行点加运算,得到测量结果序列。

其中,测量结果序列包括第一结果序列和第二结果序列,所述第一结果序列为控制比特控制n+1个第一受控点加模块进行点加运算之后的量子态测量结果序列,所述第二结果序列为控制比特控制n+1个第二受控点加模块进行点加运算之后的量子态测量结果序列。

本申请实施例中,对控制比特的量子态单次测量结果为0或1,所以测量结果序列可以表示为{m

S704、接收量子处理单元发送的所述测量结果序列,根据所述测量结果序列对所述待解密密文进行解密。

其中所述根据根据所述测量结果序列对所述待解密密文进行解密,具体可以实现为:

步骤一、将所述第一结果序列和所述第二结果序列分别转换为十进制数。

具体的,将第一结果序列{m

步骤二、对所述第一结果序列对应的十进制数与2

步骤三、将得到的展开结果相除,得到所述待解密密文的私钥,根据所述私钥对所述待解密密文进行解密。

基于上述技术方案,经典处理单元向量子处理单元发送待解密密文对应的基点、公钥以及量子解密电路,所述量子解密电路包括多个级联的受控点加模块和控制比特,所述控制比特用于依次控制每一受控点加模块进行点加运算,所述受控点加模块的参数基于所述基点或所述公钥确定;运行所述量子解密电路,针对每一受控点加模块,在所述控制比特控制当前受控点加模块进行点加运算后,测量所述控制比特的量子态,并将所述控制比特的量子态置为零用于控制下一受控点加模块进行点加运算,得到测量结果序列;经典处理单元接收所述测量结果序列,并根据所述测量结果序列对所述待解密密文进行解密。本发明通过基于待解密密文的基点和公钥构建的量子解密电路,运行量子解密电路,根据控制比特的量子态测量结果序列对待解密密文进行解密,实现了在丢失待解密密文的私钥的情况下,对待解密密文进行解密。

基于相同的发明构思,本申请实施例还提供了一种密文解密装置,如图8所示,该装置应用于量子处理单元,包括:

接收模块801,用于接收经典处理单元发送的待解密密文对应的基点、公钥以及量子解密电路,所述量子解密电路包括多个级联的受控点加模块和控制比特,所述控制比特用于依次控制每一受控点加模块进行点加运算,所述受控点加模块的参数基于所述基点或所述公钥确定;

运行模块802,用于运行所述量子解密电路,针对每一受控点加模块,在所述控制比特控制当前受控点加模块进行点加运算后,测量所述控制比特的量子态,并将所述控制比特的量子态置为零态用于控制下一受控点加模块进行点加运算,得到测量结果序列;

发送模块803,用于向所述经典处理单元发送所述测量结果序列,以使得所述经典处理单元根据所述测量结果序列对所述待解密密文进行解密。

基于相同的发明构思,本申请实施例还提供了一种密文解密装置,应用于经典处理单元,如图9所示,该装置包括:

获取模块901,用于获取待解密密文的基点和公钥;

构建模块902,用于构建包括多个级联的受控点加模块和控制比特的量子解密电路,所述控制比特用于依次控制每一受控点加模块进行点加运算,所述受控点加模块的参数基于所述基点或所述公钥确定;

发送模块903,用于向量子处理单元发送所述基点、公钥和量子解密电路,以使得所述量子处理单元运行所述量子解密电路,针对每一受控点加模块,在所述控制比特控制当前受控点加模块进行点加运算后,测量所述控制比特的量子态,并将所述控制比特的量子态置为零用于控制下一受控点加模块进行点加运算,得到测量结果序列;

接收模块904,用于接收量子处理单元发送的所述测量结果序列,根据所述测量结果序列对所述待解密密文进行解密。

关于密文解密装置实现的具体功能和效果,可以参照本说明书其他实施方式对照解释,在此不再赘述。密文解密装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。所述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

请参阅图10。本说明书实施方式还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一实施方式中的密文解密方法。请参阅图10,所述计算机设备可以是经典计算机。所述计算机设备也可以是量子计算机。

本说明书实施方式还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得,该计算机执行上述任一实施方式中的密文解密方法。

本说明书实施方式还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述任一实施方式中的密文解密方法。

可以理解,本说明书中的具体的示例只是为了帮助本领域技术人员更好地理解本说明书实施方式,而非限制本发明的范围。

可以理解,在本说明书中的各种实施方式中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本说明书实施方式的实施过程组成任何限定。

可以理解,本说明书中描述的各种实施方式,既可以单独实施,也可以组合实施,本说明书实施方式对此并不限定。

除非另有说明,本说明书实施方式所使用的所有技术和科学术语与本说明书的技术领域的技术人员通常理解的含义相同。本说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在限制本说明书的范围。本说明书所使用的术语“和/或”包括一个或多个相关的所列项的任意的和所有的组合。在本说明书实施方式和所附权利要求书中所使用的单数形式的“一种”、“上述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

可以理解,本说明书实施方式的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施方式的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施方式中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施方式所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

可以理解,本说明书实施方式中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasablePROM,EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

本领域普通技术人员可以意识到,结合本文中所公开的实施方式描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本说明书的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施方式中的对应过程,在此不再赘述。

在本说明书所提供的几个实施方式中,应所述理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本说明书各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分或者所述技术方案的部分可以以软件产品的形式体现出来,所述计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本说明书的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本说明书揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本说明书的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

技术分类

06120116576550