当前位置:江苏数码科技 >> 深度 >> 文章正文

2021 一个普通数字

发布于:2021-01-02 被浏览:3148次

作者|伊妮(加州理工学院数学系教授)

资料来源:小虎队印刷

2020年的风风雨雨终于过去了,2021年来到了人间。根据作者参加中学数学竞赛的实践,我们应该时刻分析2021这个数的性质,以防止竞赛遇到含有这个数的题。像1997年国际数学奥林匹克,1997年出现在第四题。

IMO 1997的第四个问题,有兴趣的读者可以去做。

但是,相比2020,2021真的是一个普通的数字。

2020有很多有趣的拆分,比如是五个404的和。(有读者问:“404是什么意思?”嗯,大家应该经常看到404页吧?)

2020=1024 996,所以2020年10月24日具有特殊意义。

2021年,作者没有发现这样的分裂,那么应该用2021=1024 997吗?那就太绝望了!

素数和半素数

如果不能拆分,那就试试因式分解。我们知道,如果一个大于1的整数的因子只有1和它自己,那么这个数就叫做素数。2,3,5,7是最小的素数,1997也是素数。素数是数学分支中研究的基本对象,在数学中具有重要意义。如果2021是质数,数学上很有意思。但不幸的是,

所以不是质数。

在上面的乘法中,43和47都是素数。如果一个正整数是两个(可以是相同的)素数的乘积,那么这个正整数就叫做半素。所以2021是“半素数”。

数论中有很多与素数有关的问题。比如著名的哥德巴赫猜想,任何大于4的偶数都可以写成两个素数之和。如果两个素数相差只有2,那么它们被称为一对孪生素数。比如1997和1999是一对孪生素数。孪生素数猜想断言有无限对孪生素数。

张在孪生素数猜想上取得了重大突破。来源:北京大学新闻网

有时候数学家无法证明关于素数的猜想,于是退而求其次,看看能否证明关于半素数的相应结论。最著名的例子是陈景润关于哥德巴赫猜想的著作,通常写成“1 2”。它的数学意义是任何大于4的偶数都可以写成两个数之和,其中一个是素数,另一个是素数或半素数。公众不知道的是,陈景润在孪生素数猜想中也有类似的结果。他证明了素数有无穷多个,使得这个素数加2后成为素数或半素数。

著名数学家陈景润来源:新华网

半素的一个性质是,如果它被写成两个大于1的整数的乘积,这个乘法是唯一的,与阶数无关。(读者可以想一想,除了半素数,还有其他整数有这样的性质吗?1974年,人们使用阿雷西博射电望远镜向大力神M13球状星团发射了一条1679位的信息。破译阿雷西博信息的第一步是注意到1679是一个半素数,所以信息可以形成一个7323的矩形。

阿雷西博信息包括从1到10的数字、DNA、人类和太阳系信息,甚至阿雷西博望远镜本身的图像和直径。来源:维基百科

Ulam螺旋

2021年的两个质因数是43和47。如果你和作者一样是个业余数论爱好者,大概一眼就能认出他们。它们是由莱昂哈德欧拉发现的多项式生成的一系列素数中的两个。欧拉在1772年注意到对于二次多项式,

取n时

0, 1, 2, 3, ……, 39

,获得的值为

41, 43, 47, 53, ……, 1601,

都是质数。这个事实可以用下面的Ulam螺旋直观的表达出来。从41开始,在正方形纸上逆时针螺旋写自然数,然后标注所有素数。我们会发现很多质数从右上角到左下角连续排列在对角线上,包括41。

Ulam螺旋从41开始,其中素数用蓝色标注,素数的正方形用绿色标注。来源:推特账户费马图书馆

注:ulam是波兰犹太数学家,在纳粹入侵波兰前夕移居美国。他参与了曼哈顿计划研制原子弹,并在氢弹研制中发挥了关键作用。美国、英国等国的氢弹构型被命名为泰勒-乌拉姆构型。乌兰螺旋是他在一次会议上无聊而潦草地写在纸上时被发现的。

欧拉二次多项式不可能永远得到质数,但以下很多值仍然是质数或半质数:

P(44)是我们的2021年!

用计算机很容易计算出,直到n=420,我们才会得到既不是素数也不是半素数的第一个P(n):

从n=0到n=419总共420个P(n)中有281个素数和139个半素数。

1857年,俄罗斯数学家维克多布尼亚科夫斯基(Viktor Bunyakovsky)猜想有无穷多个正整数n,使得P(n)成为素数。(Bunyakovski其实是针对更一般的多项式做的这个猜想。)这个猜想还没有被证明。1978年,波兰数学家亨利克伊万尼克证明了正整数n有无穷多个,使得P(n)成为素数或半素数。(Ivannik对于一般二次多项式证明了这个结论。)

伊万尼克从首席执行官梁振英手中接过了2015年邵逸夫数学奖。来源:邵逸夫奖

RSA公钥密码系统

那么,数学家为什么要研究素数或者半素数呢?他们和我们的生活有什么关系?能吃吗?

答案是,它们真的和我们的生活息息相关。今天我们能开网银了,还要感谢质数和半质数,感谢巨人割韭菜,感谢网购,甚至感谢网上浏览。原因是两个数相乘很容易,但是把一个数分解成乘积很难。

我们可以看看2021年的例子。如果要算4347,小学三四年级的学生很容易就可以算出结果为2021。但是如果你不知道这些因素中的任何一个,那么要找出2021是哪两个数字的乘积就不那么容易了。

另一个著名的例子是分解

1903年,美国数学家弗兰克纳尔逊科尔(Frank Nelson Cole)在美国数学学会会议上做了一次无声演讲。他默默地走到讲台上,用粉笔在黑板上计算

然后他继续计算

结果还是和以前一样。他的无声演讲赢得了起立鼓掌。当被问及如何发现这种分解时,他说:“三年中所有的星期天。”

科尔来源:维基百科

事实上,计算

细心的人最多五分钟就能算出来,——,但科尔花了一百多天才找到这样的分解。(科尔的名字是用来命名美国数学学会数论和代数最高奖项的,张和分别获得了这两个科尔奖。)

今天,一台普通的电脑可以轻松分解2021或

但是如果数量比较大,还是很难分解。比如我们把两个300多位的素数相乘,就可以用普通电脑快速计算出结果。但是如果你只给出这个产品的结果,即使你在不知道任何因素的情况下使用超级计算机,也需要很多年才能分解出来。

密码学家利用大数分解的这一特性来设计公钥密码系统。密码经常出现在各种影视文学作品中,比如夏洛克福尔摩斯的侦探小说中跳舞的反派。在这个故事里,出现了一个关键,就是英文字母一一对应不同形态的跳舞小人。

在密码传输过程中,有两个步骤需要使用密钥。一种是发送方将正常信息加密成别人无法理解的信息,另一种是接收方将这种别人无法理解的信息解密成正常信息。早期人使用的密码都是对称密码,加密解密用的是同一个密钥。知道怎么加密,自然就知道怎么解密了。反过来也一样。知道怎么解密,自然就知道怎么加密了。

跳舞小人关键来源:扣网在一起

对称密码适合一对一通信,但在多对多通信的情况下非常不方便。比如张三,李四,王五用同一个密码互相交流,但有时候张三想单独和李四交流,内容不想让王五知道。这时候用之前的同一个密码就不合适了,新的密码只能换个炉子用。这只是三个人互相交流。如果全世界几十亿人互相交流会更麻烦。公钥密码就是为了解决这个问题而设计的。

在公钥密码学中,每个用户被分配两组密钥,一个加密密钥和一个解密密钥。加密密钥对所有人开放,解密密钥只有这个用户知道。张三要想给李四发送信息,只需要用李四的加密密钥对原始信息进行加密,并将加密后的信息发送给李四即可。那么只有李四可以用李四的解密密钥对加密信息进行解密。

数字签名也可以通过公钥密码实现。比如张三给李四发消息时,可以先用张三自己的解密密钥对原始信息进行处理,得到一号加密信息,再用李四的加密密钥对一号加密信息进行加密,得到二号加密信息。实际发送给李四的是二号加密报文。李四收到二号加密信息后,需要用自己的解密密钥对二号加密信息进行解密,得到一号加密信息,再用张三的加密密钥进行处理,得到原始信息。这样发的2号加密信息只能由张三发,只能由李四解读。于是我们得到了张三的“数字签名”,别人无法复制。

公钥密码的关键是很难从加密密钥中推导出解密密钥。1977年,罗纳德瑞文斯特、阿迪萨莫尔和伦纳德阿德曼三位密码学家提出了RSA公钥密码体制,并利用大数分解的困难性实现。具体来说,每个用户被分配两个大素数。这两个大素数的乘积(即一个“半素数”)向所有用户公开,但只有这个用户知道这两个素数是哪两个。解密密钥需要知道这两个素数,而加密密钥只需要使用它们的乘积。

1983年,沙米尔,瑞文斯特,阿德曼从左。资料来源:imps.mcmaster.ca

在RSA公钥密码体制中,只要使用的两个素数足够大,就可以保证密码安全。在互联网时代,公钥密码被广泛应用于网上银行、电子商务等场景。读者可能会注意到,在上网之前,浏览器中的地址大多以http://开头,但近年来,大多以https://开头。https协议使用公钥密码,比http协议更安全。然而,1994年,彼得肖尔提出了一种用量子计算机快速分解大数的肖尔算法。一旦建成实用的量子计算机,RSA公钥密码就不再安全。如何设计更安全的密码,如何破译已有的密码,一直是密码学家不懈研究的问题,数论在其中发挥着不可替代的作用。

当然,RSA使用的半素数是几百甚至几千位的大数字,小到2021的数字就不用了。我们这一年,2021,依然只是一个普通的数字。希望2021年能像这个数字一样平淡,不要像2020年那样惊心动魄。

本文转载自经授权的微信官方账号“印小虎队”。

标签: 素数 密钥 密码