RSA算法一度是最可靠的算法,但是秀尔算法却终结者了RSA算法的神话,值得一提的是秀尔算法不是通过暴力破解的方式找到最终密码的,而是利用量子计算的并行性,可以快速分解出公约数,从而打破了RSA算法的基础(即假设我们不能很有效的分解一个已知的整数)。同时,秀尔算法展示了因数分解这问题在量子计算机上可以很有效率的解决,所以一个足够大的量子计算机可以破解RSA。
RSA加密“曾经”之所以强大,是因为它对极大整数做因数分解的难度。将两个质数相乘是件很容易的事情,但要找到一个庞大数字的质因子却非常困难。这便是大量现代科技的依靠之处,RSA加密就是凭借其简洁性迅速风靡。秀尔算法可以破解RSA,但是怎样才能让它真正见效呢?如果我们快速找到下面这个周期函数的周期,f(x) = m^x (mod N)我们便可以破解RSA加密。
那么,秀尔算法究竟是怎样工作的呢?可以通过五个步骤来进行:
第一步:
使用传统最大公约数分解(gcd)算法,也就是辗转相除法。N是你需要尝试的因子,m则是一个小于N的随机正整数。
如果gcd(m,N)=1,则继续。一旦你使用gcd找到一个因子,你便能获得一个非凡因子,然后结束。
第二步:
找到周期 P
m mod N, m^2 mod N, m^3 mod N
这是使用量子计算的一步。
第三步:
如果周期P是奇数,回到第一步,选择另一个随机整数。如果不是,继续下一步。
第四步:
检验
如果成立,则继续第五步;反之,回到第一步。
第五步:
解
解得一个非凡素因数N的值,然后你便能破解RSA加密了。
那么第二步是怎样实现的?
我们来看一下周期 P :
m mod N, m^2 mod N, m^3 mod N
(由于这是一个指数函数,我们可以将一个复杂的质数转换成双曲正弦、余弦然后得到周期)
这个发现周期的过程需要依赖量子计算机同时计算许多状态的能力,也就是状态的“叠加”,因此我们能找到方程的周期。
我们需要这么做:
1、应用Hadamard gate来创建一个量子叠加态
2、量子转换使方程生效
3、执行量子傅立叶变换
与传统情况类似,在这些转化之后,一个测量值将会产生一个近似方程周期的值(你可以获得“波峰”,就像傅立叶变换中的,而准确性会更高一点)。使用量子傅立叶变换,我们能够解决排序和因数问题,这二者相同。量子傅立叶变换可以让一台量子计算机进行相位估计(酉算子特征值的近似值)。
当你完成量子部分(第二步)的时候,你可以检查一下周期的有效性,然后使用另一个传统的最大公约数算法得到密钥的质因素。
有趣的是,由于这项技术并不是在于找到所有潜在质因数,而是找到潜在周期,你就不必尝试很多随机数直到找到一个成功的质因数N。如果P是奇数,那你不得不回到第一步,这里
K是一个不同于N的质因素。因此,即使你加倍密钥长度(N),寻找质因数也不会出现放缓的情况。RSA是不安全的,同样加倍密钥长度也不能帮你抵御量子计算的汹涌来袭,而保障安全。
“破解RSA-2048(2048-bit)的密钥可能需要耗费传统电脑10亿年的时间,而量子计算机只需要100秒就可以完成。”
量子傅立叶变换被用于建立量子线路,使得秀尔算法的物理实现成了量子计算机最为轻松的任务之一。
秀尔算法中只有一个步骤是需要在量子计算机上完成的,其他的都可以在普通的超级计算机上完成。量子计算机运行完子程序后就会将结果返回给超级计算机让它继续完成计算过程。量子计算机可能永远不会是单独存在的,而是一直和超级计算机配合执行任务,经过这样的配合它们就可以破解RSA密钥。
最后小编想说,技术在不断的进步,这个世界,这个社会也在不断向前发展,为了不被前进的社会淘汰,我们也要不断的学习。虽然听起来是有点鸡汤,但是所有的所有最终受益的都是我们自己(正经脸)来我们一起干了这碗老鸡汤。