“大素数的应用,主要是网络密码。”中科院数学与系统科学院研究员贾朝华说,上网都要用大素数为基础的RSA等密码算法。
RSA利用素数,创建“内外有别的密码本”。好比你发电报,用电报局的公开密码本A,翻译内容并发送,接受者则用私有的B密码本解密。B与A对应,但知道A却推不出B。
贾朝华说,密码本“不对称性”的根源是:乘法简单,因式分解费劲,因式分解一个大数,尤其难。上千个二进制位数的RSA密码,没法用计算蛮力破解。“找到大素数,就可用于RSA密码。”贾朝华说。
下次网购支付时,记得感谢藏在密码里拆解不开的素数。
另外,大素数还被用来考验计算机。intel检验芯片就使用GIMPS的程序;SKYLAKE芯片曾由此发现BUG。
难解的数字之谜
梅森素数得名于一位十七世纪的法国数学家,即可写作2n-1的素数。比如7=8-1,31=32-1。大数学家欧拉双目失明,还心算出231-1是一个素数。
梅森曾猜测n是素数的话,2n-1也是素数,他猜错了。我们仍不知梅森素数的分布规律,数量有限还是无限。
找最大素数,等于找最大的梅森素数。相对普通数字,验证2n-1是不是素数,有简化的办法。图灵就设想用计算机找素数。1952年,美国人第一次用计算机找梅森素数,几小时就找到5个。
1990年代出现分布式计算的GIMPS项目,鼓励网络用户贡献计算力。1952年至今,计算机共找到38个梅森素数,16个归功于GIMPS。
第50个梅森素数,由美国51岁的电气工程师帕克首次验证。他业余替社区维护电脑,并用社区电脑计算素数。帕克成功的前提,是GIMPS上全世界爱好者的试错。