一种基于量子退火算法的百万位整数分解的通用方法
技术领域
本发明涉及量子破译密码的密码分析的
技术领域
,尤其涉及一种基于量子退火算法的百万位整数分解的通用方法。背景技术
量子计算整数分解技术目前包含两种:1、基于量子电路的Shor算法;2、量子绝热(Quantum Adiabatic);量子计算的发展对现有的公钥密码体制提出了严峻的挑战,利用Shor算法就可攻击公钥密码RSA。
众所周知,RSA密码体制的安全性在于整数分解问题的困难性,其所依赖的数论问题不能在有效的多项式时间内解决。破译RSA的核心问题即整数分解问题。
目前通过量子计算实现整数分解主要有两个研究方向:一种为Shor算法的电路模型算法。Shor算法通过将因式分解问题简化为求阶的问题来发挥效用。至今已经有许多关于在量子计算硬件上实施Shor算法的尝试。通用量子器件仍处于初级阶段,基于通用量子电路的Shor算法破译公钥密码尚停留在理论阶段,导致可分解的整数规模受限,目前物理可实现的通用量子Shor算法分解大数规模不超过整数100。
另一种量子绝热计算(QAC)别名为量子退火,也能解决整数分解问题。D-Wave系统利用量子隧穿效应实现了量子退火,有望将组合优化问题求解的NP难题在多项式时间解决,有助于解决指数级解空间的搜索问题。在通用量子计算机发展缓慢、短期内无法实用化的前提下,亟需进一步探索、优化基于D-Wave量子退火的大数分解方案。当前D-Wave量子计算机发展迅猛,通过牺牲部分物理量子比特资源以达到较通用量子计算机多个数量级以上的分解大数规模是极具探索价值的。
因此,本发明提出基于D-Wave量子退火的大数分解的通用模型(N=p×q,p=10bit,q=10bit,其中p和q为待分解整数N的两个质因子),突破D-Wave量子计算机硬件的拓扑连接的结构限制。
发明内容
本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
鉴于上述现有存在的问题,提出了本发明。
因此,本发明解决的技术问题是:解决D-Wave量子计算机硬件连接和量子比特资源受限带来的挑战。
为解决上述技术问题,本发明提供如下技术方案:包括,基于整数二进制乘法表的信息限制,不断更新所述整数二进制乘法表并对其进行分栏;对分栏后的所述整数二进制乘法表进行目标函数构造,通过平方项属性对每栏的目标函数进行化简;根据降维公式引入辅助变量对所述目标函数中大于2次项的多项式进行降维操作;对每栏的所述目标函数分别进行变量替换,使值域从{0,1}变换到{-1,1};将所述目标函数最终的局部场系数矩阵h和耦合项系数矩阵J输入量子计算qbsolv软件环境执行量子退火过程;最终输出能量最小值,对应整数分解成功的解。
作为本发明所述的基于量子退火算法的百万位整数分解的通用方法的一种优选方案,其中:所述信息包括,结构信息、进位信息和目标值信息。
作为本发明所述的基于量子退火算法的百万位整数分解的通用方法的一种优选方案,其中:所述平方项属性包括,
作为本发明所述的基于量子退火算法的百万位整数分解的通用方法的一种优选方案,其中:包括,对每栏的所述目标函数分别进行变量替换(1-si)/2,si∈{-1,1},i=1,2,3,L;提取每栏目标函数的单次项系数和二次项系数作为局部场系数矩阵h和耦合项系数矩阵J,从而将整数分解问题转化为qbsolv软件环境可处理的Ising模型。
作为本发明所述的基于量子退火算法的百万位整数分解的通用方法的一种优选方案,其中:通用化目标值限制条件包括,
xi+xj+xk=1→xixj=xjxk=xixk=0
1+cz=0→cz=1
其中,pi,qi,xi,xj,xk代表乘法器的位,cz代表进位,所有变量pi,qi,xi,xj,xk,cz都是二进制的,取值均为{0,1}。
作为本发明所述的基于量子退火算法的百万位整数分解的通用方法的一种优选方案,其中:包括,分解整数N=p×q(p=10bit,q=10bit)
其中,p和q为待分解整数N的两个质因子,通过整数二进制乘法表的结构信息、进位信息、目标值信息限制,不断更新整数乘法表并对其进行分栏。
作为本发明所述的基于量子退火算法的百万位整数分解的通用方法的一种优选方案,其中:包括,对整数二进制乘法表的高位栏与低位栏进行预处理优化,并进行多模块分布式独立处理。
作为本发明所述的基于量子退火算法的百万位整数分解的通用方法的一种优选方案,其中:根据降维公式引入辅助变量对目标函数中大于2次项的多项式进行降维操作,包括,
本发明的有益效果:本发明一方面实现D-Wave量子退火破译RSA需要考虑将整数分解问题转化为指数级解空间搜索问题,凭借量子隧穿效应得到全局最优解,这里关键点是将实际问题的限制条件转换成量子比特的权重和耦合强度,这样一旦目标函数得到最小值时,且满足限制条件的情况下,目标函数的最小值对应实际问题的解决方案;另一方面,以往的基于量子退火的整数分解算法中没有考虑目标值限制的最终模型,导致模型引入太多进位变量,使得分解整数规模受限,本发明将根据整数二进制乘法表的目标值、结构限制及目标函数构造等信息,构建专门针对10位数乘10位数的通用模型,对整数二进制乘法表不断更新,减少分解整数所需的量子比特数,进而降低量子硬件要求,旨在分解更大规模整数。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。其中:
图1为本发明一个实施例所述的基于量子退火算法的百万位整数分解的通用方法的流程示意图;
图2为本发明一个实施例所述的基于量子退火算法的百万位整数分解的通用方法的基于D-Wave量子退火攻击RSA的大数分解通用模型框架示意图;
图3为本发明一个实施例所述的基于量子退火算法的百万位整数分解的通用方法的性能测试对比示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明,显然所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护的范围。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。
同时在本发明的描述中,需要说明的是,术语中的“上、下、内和外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一、第二或第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
本发明中除非另有明确的规定和限定,术语“安装、相连、连接”应做广义理解,例如:可以是固定连接、可拆卸连接或一体式连接;同样可以是机械连接、电连接或直接连接,也可以通过中间媒介间接相连,也可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
实施例1
参照图1和图2,为本发明的第一个实施例,提供了一种基于量子退火算法的百万位整数分解的通用方法,包括:
S1:基于整数二进制乘法表的信息限制,不断更新整数二进制乘法表并对其进行分栏。
S2:对分栏后的整数二进制乘法表进行目标函数构造,通过平方项属性对每栏的目标函数进行化简。
S3:根据降维公式引入辅助变量对目标函数中大于2次项的多项式进行降维操作。
S4:对每栏的目标函数分别进行变量替换,使值域从{0,1}变换到{-1,1}。
S5:将目标函数最终的局部场系数矩阵h和耦合项系数矩阵J输入量子计算qbsolv软件环境执行量子退火过程。
S6:最终输出能量最小值,对应整数分解成功的解。
具体的,信息包括:
结构信息、进位信息和目标值信息;
平方项属性包括,
对每栏的目标函数分别进行变量替换(1-si)/2,si∈{-1,1},i=1,2,3,L;
提取每栏目标函数的单次项系数和二次项系数作为局部场系数矩阵h和耦合项系数矩阵J,从而将整数分解问题转化为qbsolv软件环境可处理的Ising模型。
进一步的,通用化目标值限制条件包括:
xi+xj+xk=1→xixj=xjxk=xixk=0
1+cz=0→cz=1
其中,pi,qi,xi,xj,xk代表乘法器的位,cz代表进位,所有变量pi,qi,xi,xj,xk,cz都是二进制的,取值均为{0,1};
分解整数N=p×q(p=10bit,q=10bit)
其中,p和q为待分解整数N的两个质因子,通过整数二进制乘法表的结构信息、进位信息、目标值信息限制,不断更新整数乘法表并对其进行分栏;
对整数二进制乘法表的高位栏与低位栏进行预处理优化,并进行多模块分布式独立处理。
优选地,根据降维公式引入辅助变量对目标函数中大于2次项的多项式进行降维操作,包括:
每栏的目标函数都会得到一个解集,通过经典计算对每栏的解集进行组合,取出共同解,整数分解成功的解一定存在共同解集中,最后验证共同解中哪些解使得整数分解成功。
实施例2
参照图3,为本发明的第二个实施例,该实施例不同于第一个实施例的是,提供了一种基于量子退火算法的百万位整数分解的通用方法的实验对比,具体包括:
为了更好地对本发明方法中采用的技术效果加以验证说明,本实施例选择传统的Shor算法和本发明方法进行对比测试,以科学论证的手段对比试验结果,以验证本发明方法所具有的的真实效果。
传统的Shor算法通过将因式分解问题简化为求阶的问题来发挥效用。至今已经有许多关于在量子计算硬件上实施Shor算法的尝试,通用量子器件仍处于初级阶段,基于通用量子电路的Shor算法破译公钥密码尚停留在理论阶段,导致可分解的整数规模受限。
为验证本发明方法相对于传统的Shor算法在满足限制条件下,能够更好地减少分解整数所需的量子比特数,进而降低量子硬件要求,分解更大规模整数,本实施例中将采用传统的Shor算法和本发明方法分别对仿真平台的测试样本进行实时测量对比。
测试环境:将两种方法的运行程序包导入仿真平台模拟运行,采用RSA密码体制作为测试样本,分别利用传统方法的Shor算法进行分解测试并获得测试结果数据,采用本发明方法,则开启自动化测试设备并运用MATLB实现本发明方法的仿真测试,根据实验结果得到仿真数据,每种方法各测试1000组数据,计算获得每组数据的时间,与仿真模拟输入的实际预测值进行对比误差计算。
参照图3,实线为本发明方法输出的曲线,虚线为传统方法输出的曲线,根据图3的示意,能够直观的看出,实线与虚线随着仿真时间的增加,呈现不同的走势,实线相较于虚线,在前期一直呈稳定的上升趋势,虽然后期有所下滑,但是波动不大,且一直在虚线的上方,并保持一定的距离,而虚线则呈现较大的波动趋势,不稳定,由此,实线的分解能力一直大于虚线,即验证了本发明方法所具有的真实效果。
应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。