舒尔算法

更新时间:2024-01-26 17:03

舒尔算法,即秀尔算法(Shor算法),以数学家彼得·秀尔命名,是一个在1994年发现的,针对整数分解这题目的的量子算法(在量子计算机上面运作的算法)。它解决如下题目:给定一个整数N,找出他的质因数

定义

舒尔算法,即秀尔算法(Shor算法),以数学家彼得·秀尔命名,是一个在1994年发现的,针对整数分解离散对数这两类问题的量子算法(在量子计算机上面运作的算法)。它解决如下题目:给定一个整数N,找出他的质因数

在一个量子计算机上面,要分解整数N,秀尔算法的运作需要多项式时间(时间是logN的某个多项式这么长,logN在这里的意义是输入的档案长度)。更精确的说,这个算法花费O((logN))的时间,展示出质因数分解问题可以使用量子计算机以多项式时间解出,因此在复杂度类BQP里面。这比起传统已知最快的因数分解算法,普通数域筛选法还要快了一个指数的差异。

秀尔算法非常重要,因为它代表使用量子计算机的话,我们可以用来破解已被广泛使用的基于整数分解问题的公开密钥加密方法,也就是RSA加密算法RSA算法的基础在于假设了我们不能很有效率的分解一个已知的整数。就目前所知,这假设对传统的(也就是非量子)电脑为真;没有已知传统的算法可以在多项式时间内解决这个问题。然而,秀尔算法展示了因数分解这问题在量子计算机上可以很有效率的解决,所以一个足够大的量子计算机可以破解RSA。这对于建立量子计算机和研究新的量子计算机算法,是一个非常大的动力。

在2001年,IBM的一个小组展示了秀尔算法的实例,使用NMR实验的量子计算机,以及7个量子位元,将15分解成3×5。然而,对IBM的实验的是否是量子计算的真实展示,则有一些疑虑出现,因为没有缠结现象被发现。在IBM的实验之后,有其他的团队以光学量子位元实验秀尔算法,并强调其缠结现象可被观察到。

整数分解

数学中,整数分解(英语:integer factorization)又称素因数分解(prime factorization),是将一个正整数写成几个约数的乘积。例如,给出45这个数,它可以分解成(3^2)×5。根据算术基本定理,这样的分解结果应该是独一无二的。这个问题在代数学密码学计算复杂性理论量子计算机等领域中有重要意义。

实际应用

给出两个大约数,很容易就能将它们两个相乘。但是,给出它们的乘积,找出它们的因子就显得不是那么容易了。这就是许多现代密码系统的关键所在。如果能够找到解决整数分解问题的快速方法,几个重要的密码系统将会被攻破,包括RSA公钥算法和Blum Blum Shub随机数发生器。

尽管快速分解是攻破这些系统的方法之一,仍然会有其它的不涉及到分解的其它方法。所以情形完全可能变成这样:整数分解问题仍然是非常困难,这些密码系统却是能够很快攻破。有的密码系统则能提供更强的保证:如果这些密码系统被快速破解(即能够以多项式时间复杂度破解),则可以利用破解这些系统的算法来快速地(以多项式时间复杂度)分解整数。换句话说,破解这样的密码系统不会比整数分解更容易。这样的密码系统包括Rabin密码系统(RSA的一个变体)以及Blum Blum Shub随机数发生器。

质因数

质因数(或称质因子)在数论里是指能整除给定正整数质数。根据算术基本定理,不考虑排列顺序的情况下,每个正整数都能够以唯一的方式表示成它的质因数的乘积。两个没有共同质因子的正整数称为互质。因为1没有质因子,1与任何正整数(包括1本身)都是互质。只有一个质因子的正整数为质数。

将一个正整数表示成质因数乘积的过程和得到的表示结果叫做质因数分解。显示质因数分解结果时,如果其中某个质因数出现了不止一次,可以用幂次的形式表示。例如360的质因数分解是:

其中的质因数2、3、5在360的质因数分解中的幂次分别是3,2,1。

数论中的不少函数与正整数的质因子有关,比如取值为n的质因数个数的函数和取值为n的质因数之和的函数。它们都是加性函数,但并非完全加性函数。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}