首页 > 编程知识 正文

本源国内首次完整开发Shor算法自主知识产权应用程序

时间:2023-05-05 02:05:22 阅读:88662 作者:2381

随着大数据时代的到来,互联网信息的加密备受关注。 目前,互联网的大部分信息加密是通过RSA算法进行的。 只要RSA密钥足够长,就无法实际解密用RSA加密的信息。

随着量子计算理论的发展,研究人员发现了有能力将“质因数分解”的时间复杂度降低到多项式水平,从而解决大分子分解问题的理论。 这就是Shor算法。 这意味着RSA密钥的安全性面临挑战。

最近,本源量子研究小组利用自主开发的量子软件开发软件包pyQPanda完全实现了Shor算法,实现了中国量子计算在这一领域的“零突破”!

目前,宣布实现Shor算法的机构大多使用简化的量子电路图,无法实现普适的任意质因数分解。 本源通过pyQPanda完全实现了作为Shor算法基础的明确描述,具体实现过程由本源量子教育平台(https://learn-quantum.com/edu/index.html )新发布,内容为: 《从零学量子计算破解RSA密码》

Shor算法

Shor算法以数学家Peter Shor命名,是1994年发现的针对整数分解这一主题的量子算法。 要解决问题,给整数n,找出他的质因数。

Shor算法实施过程

Shor算法首先将质因数分解问题转换为子问题(下图的量子计算部分)。 如果分解数为n,则按照以下步骤得到n的2个质因数。

使用量子算法帮助寻找周期

Shor算法最重要的部分是计算指数函数的周期。 这个步骤需要使用量子计算机来完成。 其核心电路设计如下图所示。

这条线路首先经过QFT傅立叶变换,然后经过模式指电路,再次进行傅立叶逆变换,从而提取该模式指函数的周期。

其中,QFT线路可以通过一系列受控的r门实现。

模指电路模块可以分解为定数模乘,定数模乘可以用定数模加算表示,定数模加算可以由量化加法器构成。

其电路模型图在Shor算法的整个线路中表示如下。

用pyqpanda软件开发包实现Shor算法

本源量子提供的pyqpanda软件开发软件包可以实现上述线路设计。 下面的代码正在构建QFT线路。

傅立叶逆变换电路可以使用qft(qlist ).dagger ) )来构筑。 常数的线路结构如下

常数模式是使用常数模式乘法的主要组件,常数模式乘法的结构线路如下所示。

0b42e2?from=pc">

常数模乘用到的主要组件为常数模加,常数模加的构造线路如下:

鉴于篇幅有限,我们这里没有列举出所有的子模块,本源量子教育平台新推出的《从零学量子计算破解RSA密码》教程里会对各个模块进行详细地讲解。

案例演示

比如对于分解N=15这个数,我们选择基底为base=7,可以构建如下的主程序来获取15的周期。

在pyQPanda框架下,程序首先对本源量子虚拟机进行初始化(init_quantum_machine),按需申请量子比特(qAlloc)。之后,创建一个量子程序(QProg)并对其依次插入算法所指定的操作(X,H,constModExp和qft),最后运行(directly_run)即可得到算法的结果。

我们对结果进行绘图,可以看到它的周期为4。

根据shor 算法的实施过程,f(4/2)=7^2mod15=4。然后分别计算3和5对于15的最大公因数gcd(3,15)=3,gcd(5,15)=5。检验知3和5都是15的质因数,于是我们得到了问题的答案。

Shor算法总结

Shor算法首先把问题分解为了“经典计算机部分”和“量子计算机部分”。然后利用了量子态的叠加原理,快速取得了函数在一个很大范围内的取值(对于n个工作比特而言,取值范围为0~2^n-1)。

由于函数本身是周期的,所以自变量和函数值自动地纠缠了起来,因此对于某一个函数值来说,工作比特上的态就是一组周期数态的叠加态。在取得“周期数叠加态”之后,我们自然可以通过傅里叶变换得到这组周期数的周期,从而快速解决了这个问题。

本源量子最新上线的《从零学量子计算破解RSA密码》系列教程,将会对以上提到的线路设计进行详细讲解,并带领你用本源量子提供的pyQPanda软件开发包,一步一步实现Shor算法。

目前,《从零学量子计算破解RSA密码》系列教程已登录本源教育云、网易云课堂、腾讯课堂、哔哩哔哩,扫描下方二维码,获取最新视频教程!

下面是本源量子教育系列培训课程具体目录截图。

获取视频资源方式一

本源量子教育云服务平台

获取视频资源方式二

本源量子网易云课堂

获取视频资源方式三

本源量子腾讯视频

获取视频资源方式四

本源量子哔哩哔哩视频

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。