与其说数学家找到了更大的素数,不如说超级计算机找到了更大的素数。在这一点上,其实比较的是超级计算机的计算能力和大家采用的算法的复杂程度。当然,从纯数学的角度来看,发现更大的素数并没有什么特别的意义,因为欧几里德在2000多年前就已经证明了素数有无穷多个,也就是素数的大小没有上限,可以很大。
素数的应用有哪些?
素数或者说质数,是指只能被1和自身整除的大于1的自然数。对于其他比1大的自然数,它们就都是合数,能够被除了1和自身之外的其他数整数。显然,质数和质数相乘所得到的数必然是合数。一直以来,质数的研究被认为只有纯数学上的意义,实际并没有什么价值。直到上个世纪70年代,麻省理工学院MIT的三位数学家李维斯特萨莫尔和阿德曼共同提出了一种公开密钥加密算法,也就是后来被广泛应用于银行加密的RSA算法,人们才认识到了质数的巨大作用。
质数为什么能用于加密算法?这就要涉及到大数的质因数分解。如果把一个由较小的两个质数相乘得到一个合数,将其分解成两个质数除了1和自身的组合之外很容易,例如,51的两个质因数为3和17。然而,如果两个很大的质数相乘之后得到一个非常大的合数,想要逆过来把该数分解成两个质数非常困难。例如,511883,分解成两个质因数之后为557和9192538952327超过25亿,分解成两个质因数之后为29179和87013,这个难度明显要比上一个数大得多。
截至今年一月份,目前已知最大的质数是2^825899331,这个数拥有超过2486万位。即便是超级计算机,也很难有效对两个质数相乘得到的合数进行质因数分解,所以这样的原理可以用于加密算法。什么是RSA加密算法?RSA算法是一种非对称加密算法,加密和解密所用的密钥是不一样的,解密所用的密钥对应于加密所用的密钥。
假设甲向乙发送信息a,那么,a是需要进行加密的信息再假设b是一个由两个质数相乘得到的合数c是一个与欧拉函数有关的数,这是公钥d是c关于欧拉函数值的模倒数,d就是私钥。信息加密乙在产生合数b和公钥c私钥d之后,乙会把b和c传给甲,d则保密不被传输。甲利用公钥c对信息a进行加密,即计算a^c除以b的余数e,即a^c mod b=e,所得到的e就是密文。
于是,甲把密文e传送给乙。信息解密乙在得到密文之后,利用私钥d对密文e进行解密。可以证明,e^d除以b的余数正是信息a,即e^d mod b=a,这样就完成了信息的解密。由于合数b公钥c密文e都会被传送,这些信息就有可能被窃取。如果窃取者想要破解信息,需要知道私钥d。想要通过公钥c来算出密钥d,就需要对合数b进行质因数分解。
数学家发现了更大的素数,这究竟有什么意义呢?
因为理论上素数是不可预测的,至少目前来说还没有找出它的规律,我们不知道的是下一个素数是多少?所以,一般是计算数学家,也就是那些玩电脑的人,才能找到更大的素数的,那都是用超级计算机算出来的。因此,与其说是数学家发现了更大的素数,不如说是超级计算机找到了更大的素数,在这一点上,其实比的就是超级计算机的计算能力,以及大家所采用的算法的复杂程度。
这个事情当然也是有意义的,因为你可以把两个很大的素数相乘,得到一个更大的数,然后拿这个大数当作一个密码,让别人去做质因数分解,别人是分解不出来的。越大的素数的乘积,越难被分解,这个密码的有效性就越好。当然,从纯数学的角度来说,发现更大的素数没有特别的意义,因为在2000多年前,欧几里德就已经证明了,存在无限多个素数,也就是说,素数的大小是没有上限的,可以很大很大。
所以,就纯数学而言,这件事的意义并不太大。当然,素数问题是数论的核心,可以和函数论、群论联系起来。研究质数其实就是研究整个数学最底层的结构。最近获得科学突破奖新视野奖的张伟就是研究这种结构的中国青年数学家。有一次和他聊天后写了一篇采访稿。你可以去看看。也许你就能理解为什么要研究最大素数了。反正我自己也说不清楚。这种问题只有张伟这样的高手才能回答。