如何与Shor打破互联网's Algorithm

注意:感谢 分钟物理学 为使我能够撰写本文的入门知识,以及使我更容易了解这一点。
开始了 尽我所能学习有关量子计算的知识,我决定下一步就是尝试对一些实际的东西有所了解。关于这方面有很多讨论和辩论 量子计算机有可能破坏加密,因此使所有经过互联网加密的流量都暴露在外,因此我决定进行调查。
公平的警告,这将变得有点复杂,我将尝试以通俗易懂的方式进行解释,尽管会涉及一两个方程式–但是没有什么比中学代数更复杂了……我希望。
互联网上的所有加密都基于找到
非质数非常大的因素。 与将数字相乘得到一个很大的数字不同,将一个很大的数字除以整数因子需要很长时间。
我们拥有的最佳方法 非常慢在我的上一篇文章中,我提到最大的分解RSA数长为768位,并且解密花费了15,000 CPU年(在数百台计算机上实时达到2年)。这需要太多时间和电力才能使用。
输入Shor的算法,量子计算机,以及它们对有效破坏加密的威胁。该算法基于量子理论的两个方面,即“量子叠加”和“干扰”。彼得·索尔(Peter Shor)是麻省理工学院的美国应用数学教授,也是他在90年代量子计算领域的工作中发明的这种量子算法的发明者。
RSA加密基于一种隐藏大量信息的机制,因此消除混淆的唯一方法是找到大量信息的因素。我们目前最好的方法有效地猜测了一个数字,如果不是一个因素,那么它将尝试另一个,直到最终找到可行的猜测。即使在过程中进行了优化,它也非常慢。
不过,最终所有加密都是基于这样的希望,即分解过程需要花费很长时间,以至于人们不会打扰,到目前为止,情况一直是这样。
Shor的算法 基于对一个因素的错误猜测,然后使用该算法将错误猜测变成更好的猜测。与量子计算机仅花费很少的时间不同,传统计算机也可以运行Shor的算法,但完成时间却很长。
从根本上讲,它可以分为两部分:

  1. 数学部分–使猜测更加准确;和
  2. 物理部分–加快过程

此处的TL; DR大致如下:

  1. 做一个猜想, g,其号码与RSA加密号码共享因素, N
  2. Shor的算法说,更好的猜测是 gp/2 ± 1,在哪里 P 是您必须将g与其自身相乘以使
    gp = m * N + 1 哪里 m 是...的几倍 N
  3. 我们可以找 P 通过使用量子叠加和干涉非常快,从而P的所有错误叠加都相互破坏性地干涉,从而为您提供正确的值
  4. 回过头来,我们可以使用Euclid算法找到真正的因素
  5. 然后我们破坏加密!

数学部分
(注意:以下部分使用*表示乘法 –尽管出于本文目的,这可能会冒犯纯粹主义者,但由于非数学家的普遍使用,因此正在使用它)
让我们从大量开始 N,您需要找出其因素。第一步,猜测一下, g,该数字小于 N。共享因子的数字也可以,因为 欧几里得算法,我现在不再赘述,但实际上意味着我们可以使用此方法找到真正的因素。
现在,我们可以根据以下技巧,将错误的猜测转化为更准确的结果:
取不共享因子的任何一对整数 N 然后将其中一个乘以自己足够的次数,最后得到的是另一个数字的整数倍加1

因子A *因子B→A * A * A * A…(足够的时间)=若干倍* B + 1

简而言之,这是:
AP = m * B + 1,对于一些功率P和一些倍数m。这里的重要部分是,我们最终会遇到余数为1的情况。
让我们看几个例子。
如果我们将7和15分别作为A和B,则:
72 = 3 * 15 + 4
73 = 22 * 15 + 13
74 = 160 * 15 + 1 ←我们有一个很好的匹配!
或看42和13:
422 = 135 * 13 + 9
423 = 5699 * 13 + 1 ←和另一个比赛
为我们更多的人而努力 N 还有一些不好的猜测 g,我们保证:
gp = m * N + 1
考虑到这里的数学技巧,我们也可以这样写:
gp – 1 = m * N
或者通过这样重新排列代数来变得更加聪明:
(gp / 2 +1)*(gp / 2– 1) = m * N
现在我们有一个方程大概 某事 * 某事 = m * N,即未知因素。更妙的是,这两部分采用了Shor算法规定的格式,即猜测g,将其乘以p / 2倍,然后加或减1:
g→gp / 2±1
在此等式中,我们现在遇到的情况是,每个部分都可能是我们正在寻找的实际因素的倍数,而Euclid将会进行救援,以便我们可以找到实际因素。拥有它们后,我们将破坏加密!
物理部分
(注意: 符号 对于一个叠加是 |某物> 其中某物是一个值,一组值或一个函数)
现在最困难的是,如何找到 P (即,我们需要将自己的错误猜测乘以自己的次数才能得出: m * N + 1)。
与普通计算不同–给出给定输入的一个答案–通过使用量子叠加,量子计算可以同时计算给定输入的可能答案的整个负载。更好的是,所有这些可能的答案都会被破坏性的量子干扰缩减为一个正确的答案(即就像波可以相互破坏性地相互抵消以抵消)。让我尝试一次解释一个步骤。
通常,尝试将任何东西放入所有错误答案都具有破坏性干扰的量子形式中是非常困难的,但这正是Shor算法对发现问题的正确处理 P.
回顾一下,我们做了一个错误的猜测,g,我们试图找到P,这样 gp = m * N + 1。一种 P 这样做也很可能与 N (也就是说, gp/2 ± 1)。
接下来,我们需要构建一个量子力学计算机程序,该程序将数字x作为输入,然后将我们的猜测提高到x的幂。然后,程序需要获取该数字,并计算出比N的倍数大多少,我们称其为余数。
|x> → f(克x) →| x,gx> → f(?>m*N) →| x,+ r>,在哪里 f 是一个量子函数,其余的, r,我们希望最终应为1。
由于我们正在使用的是量子计算机,因此我们可以发送数字的叠加而不是单个数字,以加快处理过程。例如:
|1> + |2> + |3> + … → f(克x) → |1,g1> + |2,g2> + |3,g3> + …
然后是这些力量对数字有多大的叠加:
f(?>m*N) →| 1,+ 19> + |2,+37> + |3,+23> + …
如果我们此时尝试测量叠加,则会遇到麻烦(我们正在寻找 盒子里的猫),因为量子态将崩溃并返回随机(不一定是正确的)答案。相反,我们需要获取所有非P答案,以进行破坏性干扰并抵消它们,只剩下一个可能的答案,即真实P。
幸运的是,还有另一个数学技巧可以使我们做到这一点。因此,让我们再次回顾一下。如果我们知道P是什么,我们可以将我们的猜测g提升到P的幂,得到比N的倍数大1的值:
gp = m * N + 1
如果我们将猜测取为随机数,例如42,则可能是N的倍数以外的其他数字:
g42 = m * N + 7
现在是有趣的部分,如果我们将随机数(42)加上P的幂提高到猜测,则余数将是相同的余数,而倍数却不同:
g42 + p = m2 * N + 7
请注意,无论我们向随机数x添加P的倍数,余数始终是相同的:
gx = m * N + r
gx + P = m2 * N + r
gx + 2P = m3 * N + r
gx + 3P = m4 * N + r
等等。
实际上,P具有重复性,因此,如果我们猜测并提高为随机数的幂,然后向其添加多个P,则其余部分保持不变。
gx或gx + P或gx + 2P或gx + 3P or … ⇒  +r (r始终相同)
通过将我们的猜测仅凭一种力量,您无法找出这种重复的模式。相反,它是不同幂之间的结构关系,我们可以利用它,因为量子计算可以利用不同可能幂的叠加。
如果我们对所有可能的幂进行叠加,而只测量其数量而不是N部分的倍数(余数,+ r),那么剩下的就是可能导致相同余数的幂的叠加。
这里的关键部分是这些叠加中的每一个彼此之间恰好相距P!这些叠加的重复周期为P,或更具体地说,频率为1 / P。如果可以找到频率,则可以找到P并破坏加密。幸运的是,我们有一个查找频率的工具: 傅里叶变换.
傅里叶变换是一种输入信号的方法,例如说一个音频信号,它们将生成构成该信号的所有频率的图形。这就是消除噪音的耳机的工作方式,它们使用傅立叶变换从周围环境中选择频率,并通过波干扰将其消除。非常聪明的东西。
为了在这里解决我们的问题,有一个傅里叶变换的量子形式,我们可以将其应用于叠加并找到P。简而言之,它会导致所有不正确的可能值破坏性地干涉,从而使我们离开以正确的频率1 / P。
现在我们有了1 / P,我们可以将其取反以获得P的值(即1/1 / P)。只要是偶数,我们就可以将其放回到方程式g中P ±1,并且只要不是N的倍数,我们就可以保证它与N共享一个因数。然后,我们可以使用Euclid算法找到N的实因数,最后破坏加密!
下一步
今天我们有量子计算机,那么是什么阻止我们立即中断加密?简而言之,这些计算机中的量子内存大小。这仍然是一个新兴的研究领域,尽管存在一些量子计算机,但它们的量子存储空间还远远不够,无法进行破解加密所需的计算。一些估计表明,在以上给出的示例中,需要大约5096量子位来破解768位RSA加密。目前,我们处于十位的量子位– a long way off.
话虽如此,大量时间和金钱投入到该领域中,并且发展正在加速。但是可以肯定的是,量子计算机最终将破坏加密,因此更好的加密技术的推出对于打击这种情况并确保我们的私人信息真正地私有至关重要。

在脸书上分享
Facebook
分享到Twitter
Twitter
在linkedin上分享
LinkedIn

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

最近的帖子

文化,技能和能力//如何成为数据驱动型组织

在我们的白皮书“如何成为一个由数据驱动的组织中”,我们写了一个组织需要采取的五个步骤,它们是:成果:定义目标和指标以确保获得清晰和可衡量的结果分析:实施和共享分析,以改善数据驱动型决策创新:通过假设测试和学习来测试假设数据平台:获得新见解

Read More »

数据平台//如何成为更具数据驱动力的组织

这是我们关于“如何成为一个由数据驱动的更多组织”系列文章中的第四篇,我们将专注于数据平台。在这一点上,大多数人开始深入研究Data Lakes vs Data Warehouse的技术方面,但是我们想让我们回到一个更高的水平,并要求

Read More »

创新//如何成为更具数据驱动力的组织

在我们的白皮书“如何成为一个由数据驱动的组织中”,我们写了一个组织需要采取的五个步骤,它们是:成果:定义目标和指标以确保获得清晰和可衡量的结果分析:实施和共享分析以改善以数据为依据的决策制定创新:通过假设检验和学习来检验假设数据平台:获得新

Read More »

搜索博客

敏捷 Management Made Easy!

All About 敏捷

凯利·沃特斯(Kelly Waters)

“’Agile’ is one of the biggest buzzwords of the last decade. 敏捷 methods often come across as rather more complicated than they really are. This book is an attempt to unravel that complexity. To simplify the concepts. This book breaks the concepts into small bite-sized pieces that are easy to understand and easy to implement and delivers the message in a friendly and conversational style. Allaboutagile.com is one of the most popular blogs about agile on the web. ”

凯利·沃特斯

敏捷 101 is available to purchase. GAME ON!

敏捷 101

艾玛·霍普金森火花

“尽管有很多方法可以根据您拥有的团队和想要的学习成果来改变游戏,但是游戏的基本流程是所有人共有的。”
艾玛·霍普金森火花

我们为什么制作游戏?

怎么玩游戏?

伦敦

101种方式Limited
城市路145号
伦敦
EC1V 1AZ
英国

阿姆斯特丹

101种方式BV
Weesperstraat 61-105
1018 VN阿姆斯特丹
荷兰

联系我们

如果您想与101 Ways的团队之一联系,请填写以下表格或给我们发送电子邮件: contact-us@101ways.com.