《基于张量网络的机器学习入门》学习笔记8(Shor算法)

Shor算法是1994年由Peter Shor提出的量子算法,主要用于解决大整数的质因数分解问题。算法通过量子计算机寻找周期,将问题转化为经典计算机可处理的形式。在量子傅里叶变换的帮助下,Shor算法能够以指数级的速度加快分解过程,对基于RSA的加密系统构成威胁。通过举例说明了如何运用Shor算法对15进行分解,揭示了算法的基本步骤和流程。
摘要由CSDN通过智能技术生成

《基于张量网络的机器学习入门》学习笔记8

Shor算法

来源

1994 1994 1994年,应用数学家 S h o r Shor Shor提出了 一个实用的量子算法,通常称为 S h o r Shor Shor算法。其思想是将整数质因子分解问题转化为求解量子傅里叶变换的周期, 将多个输入制备为量子态叠加, 进行并行处理和操作, 从而达到了量子加速的目的,可以在多项式时间内完成大整数质因数分解。所以 S h o r Shor Shor算法从诞生之时,就和以 R S A RSA RSA算法为根基的加密技术形成了不可调和的矛盾。

Shor算法的大致流程

完整的 S h o r Shor Shor算法需要经典计算机和量子计算机协作完成。其中量子计算机实现一个周期查找的函数,经典计算机负责整个算法流程的控制,以及调用量子算法。我们可以简单的讲 S h o r Shor Shor算法分成两个部分:
1.第一部分是讲因子分解问题转化为成周期问题,这部分可以用传统方式实现。
2.第二部分则是使用量子手段来搜寻这个周期,这一部分是 S h o r Shor Shor算法中体现量子加速的主要部分!

因数分解

假设待分解的整数为 N N N,分解步骤为:
1.选择任意数字 1 < a < N 1<a<N 1<a<N
2.计算 g c d ( a , N ) gcd(a,N) gcd(a,N),要满足 g c d ( a , N ) = 1 gcd(a,N)=1 gcd(a,N)=1,即 a a a N N N互质,否则返回第一步;
3.构造函数 f ( x ) = a x m o d N f(x)=a^xmodN f(x)=axmodN,并且寻找最小周期 r r r,使得 f ( x + r ) = f ( x ) f(x+r)=f(x) f(x+r)=f(x);(此为量子计算步骤)
4.若 r r r为奇数,则返回第一步;
5.若 a r 2 m o d N = − 1 a^{\frac{r}{2}}modN=-1 a2rmodN=1,返回第一步;若 a r 2 m o d N ≠ − 1 a^{\frac{r}{2}}modN\ne-1 a2rmodN=1,则 g c d ( a r 2 ± 1 , N ) gcd(a^{\frac{r}{2}}\pm1,N) gcd(a2r±1,N)所求的质因数为 p = g c d ( g c d ( a r 2 + 1 , N ) , q = g c d ( g c d ( a r 2 − 1 , N ) p=gcd(gcd(a^{\frac{r}{2}}+1,N),q=gcd(gcd(a^{\frac{r}{2}}-1,N) p=gcd(gcd(a2r+1,N),q=gcd(gcd(a2r1,N),至此,完成分解。

下面我们看一个具体的例子:
例用 S h o r Shor Shor算法对 N = 15 N=15 N=15进行分解。
不妨取 a = 7 a=7 a=7,其满足 g c d ( 7 , 15 ) = 1 gcd(7,15)=1 gcd(7,15)=1,因此,构造函数为 f ( x ) = 7 x m o d 15 f(x)=7^xmod15 f(x)=7xmod15,有:
f ( 0 ) = 7 0 m o d 15 = 1 , f ( 1 ) = 7 1 m o d 15 = 7 , f ( 2 ) = 7 2 m o d 15 = 4 , f ( 3 ) = 7 3 m o d 15 = 13 , f ( 4 ) = 7 4 m o d 15 = 1 , f ( 5 ) = 7 5 m o d 15 = 7 , f ( 6 ) = 7 6 m o d 15 = 4 , f ( 7 ) = 7 7 m o d 15 = 13 , f ( 85 ) = 7 8 m o d 15 = 1 , f ( 9 ) = 7 9 m o d 15 = 7 , f ( 10 ) = 7 10 m o d 15 = 4 , f ( 11 ) = 7 11 m o d 15 = 13. f(0)=7^0mod15=1,f(1)=7^1mod15=7,f(2)=7^2mod15=4,f(3)=7^3mod15=13,\\ f(4)=7^4mod15=1,f(5)=7^5mod15=7,f(6)=7^6mod15=4,f(7)=7^7mod15=13,\\ f(85)=7^8mod15=1,f(9)=7^9mod15=7,f(10)=7^{10}mod15=4,f(11)=7^{11}mod15=13. f(0)=70mod15=1,f(1)=71mod15=7,f(2)=72mod15=4,f(3)=73mod15=13,f(4)=74mod15=1,f(5)=75mod15=7,f(6)=76mod15=4,f(7)=77mod15=13,f(85)=78mod15=1,f(9)=79mod15=7,f(10)=710mod15=

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值