费马大定理(上)

费马大定理》是西蒙・辛格的第一本书,相比《密码故事》来说,这本书的中译本虽然封面上把 Fermat 错误地拼写成 Fremat,正文中也有几处小错误,但瑕不掩瑜,全书整体的翻译质量好很多,尤其是将人名、地名等专有名词翻译出来的同时,还在括弧中保留了英文,可方便地据此搜索相关资料并延伸阅读。

本文为西蒙・辛格《费马大定理》的书摘,共分上下两篇:

  • 上篇:包含原书第一、第二章的内容。
  • 下篇:包含原书第三~第八章的内容。

我想我就在这里结束

1993 年 6 月 23 日,英国剑桥大学牛顿研究所,安德鲁・怀尔斯(Andrew Wiles)向全世界最杰出的数学家讲述他对费马大定理(Fermat’s Last Theorem)的解法。剑桥正是怀尔斯是家乡,这里是他出生成长的地方。他在 20 世纪 80 年代移民到美国,在普林斯顿大学任教授。这次牛顿研究所举行的研讨会的题目是「L-函数和算术」,只有怀尔斯意识到 L-函数可能握有解决费马大定理的钥匙。

1963 年,10 岁的安德鲁・怀尔斯在弥尔顿路上的图书馆发现了埃里克・坦普尔・贝尔(Eric Temple Bell)写的《大问题》(The Last Problem),其中讲述了费马大定理的起源及形成,由此迷上了费马大定理,立志要解决它。

费马大定理立足于毕达哥拉斯(Pythagoras)定理:

在一个直角三角形中,斜边的平方等于两直角边的平方之和。

萨摩斯岛(Samos)的毕达哥拉斯是数学史上最具影响但又是最神秘的人物之一。他研究了一些特殊的数的性质、它们之间的关系以及它们的组成方式。他生活在公元前 6 世纪,游历时从埃及人和巴比伦人那里学到了许多数学技能和工具。这两个古老的民族当时已经超越了简单计数的范围而能够进行复杂的计算,这使他们能建立复杂的记账系统和建造独具匠心的建筑物,但他们将数学看成仅仅是解决实际问题的一种工具,而没有人会费神去寻求隐藏在背后的逻辑。

经历 20 年的周游后,毕达哥拉斯回到爱琴海中的萨摩斯岛,想要建立一所学校致力于哲学研究,特别是研究他新近获得的一些数学法则。但僭王波利克拉特斯(Polycrates)在毕达哥拉斯外出期间已将曾经自由的萨摩斯岛变成了一个不容异说的保守的社会,并邀请毕达哥拉斯加入宫廷,但遭到毕达哥拉斯的拒绝。毕达哥拉斯离开了城市,选择了岛上边远地区的一个山洞。他花钱使一个小男孩成为他的第一名学生,这名学生根据有些历史学家的观点可能也叫毕达哥拉斯。这名学生后来是第一个建议运动员应该吃肉以增强自己体质的人,并因此而出名。学生每出席一节课,老师要付给他 3 个小银币。几个星期后,学生最初对学习的勉强已转变成对知识的热情,即使毕达哥拉斯佯装付不起金钱无法继续上课时,学生也表示宁可付钱受教育。遗憾的是,这是毕达哥拉斯在萨摩斯岛上仅有的一个信徒。

由于毕达哥拉斯关于社会改革的观点不受欢迎,他被迫离开萨摩斯岛,来到意大利南部的克罗敦(Groton),并在米洛(Milo)的赞助下建立了毕达哥拉斯兄弟会——一个有 600 名追随者的帮会。一旦参加兄弟会后,每个成员就必须将其一切财产捐献给公共基金,如果离开该会,可收到相当于他们最初捐献的两倍的财产,并为其竖立一场墓碑以志纪念。兄弟会的每个成员被迫宣誓永不向外界泄露他们的任何数学发现,甚至在毕达哥拉斯死后,还有一个兄弟会成员因为公开宣布发现一种由 12 个正五边形构成的正十二面体而被淹死。兄弟会奉行平等主义,吸收了几名姐妹。毕达哥拉斯最喜欢的学生是米洛的女儿,美丽的西诺(Theano),两人最终结婚了。建立兄弟会后不久,毕达哥拉斯撰造了一个名词「哲学家」(philosopher),定义为「献身于发现生活本身的意义和目的的人」。

毕达哥拉斯缔造了一种社会精神,它改变了数学的进程。兄弟会实际上是一个宗教性社团组织,他们崇拜的偶像之一是数,他们相信,通过了解数与数之间的关系,他们能够提示宇宙的神圣的秘密,使他们自己更接近神。

密码故事(下)

本系列为《密码故事》的书摘,共有上、中、下三篇,各篇链接及包含内容如下:

  • 上篇:单字母替换密码,多字母替换密码。
  • 中篇:加密的机械化,恩格玛机及其破解,象形文字和楔形文字的破解。
  • 下篇:公开密钥,PGP,量子密钥分发。

公开密钥

除了恩格玛机之外,德国还有一套更强大的加密法,称为洛伦兹密码(Lorenz cipher),用来加密希特勒和他的军官之间的通讯。布莱切利的两位破解员,约翰・蒂尔特曼(John Tiltman)和比尔・塔特(Bill Tutte)发现了洛伦兹密码的一个破绽,需要综合寻找、匹配、数据分析和谨慎的判断,而「炸弹」很难变通地应付洛伦兹密码的精妙之处。而布莱切利的数学家马克斯・纽曼(Max Newman)基于图灵的「万能机器」的概念,发明了可以针对不同问题进行自我调节的机器,现在我们称之为「可编程计算机」。1943 年,工程师汤米・弗劳尔斯(Tommy Flowers)无视布莱切利高级官员的怀疑,根据纽曼的蓝图,花了 10 个月时间,制造了科洛希斯(Colossus computer,其中总共有 1500 个电子管。事实上,科洛希斯正是现代数字计算机的前身。

然而,在二战结束后,汤米・弗劳尔斯根据命令将科洛希斯及其蓝图销毁,世界上第一台计算机的设计图就此消失。1945 年,宾夕法尼亚大学的约翰・墨西里(John Mauchly)和 J・蒲利斯普・埃克特(J. Presper Eckert)完成了 ENIAC,它含有 18000 个电子管,每秒能计算 5000 次。几十年来,ENIAC 而非科洛希斯被认为是计算机之母。

用计算机加密和机器加密只有三个重要的区别:

  • 密码机受限于实际建造中的困难,而计算机可以模拟出任何无限复杂的机器。
  • 速度上的区别:电子设备比机器的扰频器运转起来要快得多。
  • 最重要的区别:计算机加密的是数字而非字母。

即便如此,加密过程仍然是按照古老的原则进行的,这些原则就是移位和替换。每次加密,无论多么复杂,都可以还原成一些简单操作的组合。

随着越来越多的公司采用计算机,公司之间的通讯加密也越来越频繁,就出现了加密标准化的问题。1973 年,美国国立标准局正式征求一套标准的加密方案,能够使企业之间进行秘密通讯。IBM 的托马斯・J・沃森实验室(Thomas J Watson)的霍斯特・菲斯特尔(Horst Feistel)发明卢斯福密码机(Lucifer cipher)。1976 年,56 位版本的卢斯福密码机被国家安全局正式采用,称之为数据加密标准(Data Encryption Standard,即 DES)。选用 56 位版本(密钥数目 1018)是因为国家安全局相信这样的密钥对民间通讯来说是安全的,因为没有一个民间组织拥有如此强大的计算机能够在一个合理的时间内检查每个密钥,但国家安全局拥有世界上最快的计算机资源,刚好能破解卢斯福的密钥。

卢斯福系统的加密步骤如下所述:首先,电文翻译成一长段二进制数字串。然后,以每 64 个数字为一个单位,分解这段数字串。每个单位数字串分别独立加密。第三步,我们把注意力集中在每个单位数字串上。把 64 个数字像洗牌那样分成两组,每组 32 个数字,分别把它们叫做左 0 和右 0。右 0 中的数字加入「切碎机函数」中进行复杂的替换。然后,把「切碎」后的右 0 加到左 0 上,形成新的一组 32 个数字的序列,称作右 1。把最开始的右 0 标记为左 1。这一系列的操作称为一个「回合」。然后整个操作又重复做一次,不同的只是这一次以右 1 和左 1 开始,得到的数字序列称为右 2 和左 2。加密过程总共要进行 16 个「回合」。这个过程就像是和面一样:试想在一大块面上写着信息,首先,将这块面分成 64 厘米长的小块;然后,挑出其中的一半碾压后折叠起来,再加到另一半上拉长,从而形成一个新的面块。这个过程不断地重复,直到消息文字彻底地被面块混合起来。经过 16 个回合的「揉面」后,密文发送出去。另一端的接收者收到密文后,将加密过程反过来进行,从而解码出明文。「切碎」的具体实施方法是可以变化的,它取决于发送者和接收者达成的密钥。换言之,只要密钥不同,同样的电文可以用成千上万种不同的方式加密。

除了加密标准化问题之外,密码通讯中存在的另一个问题是「密钥分发」。20 世纪 70 年代,银行尝试雇用专职的密钥分发员,他们带着一个锁着的箱子(padlocked briefcase)走遍全世界,亲手将密钥交给客户。二战时,德国高级指挥部每个月都需要分发《每日密钥》月刊给所有的恩格玛机操作员。美国政府的密钥是 COMSEC(通讯安全局)掌管和分发的。20 世纪 70 年代,COMSEC 每天分发的密钥数以吨计,当装载着 COMSEC 密钥的船靠港时,密码分发员会到甲板上收集各种卡片、纸带以及软盘和其他一切贮存密钥的介质,再把它们分发给客户。计算机改变了密码的实施方式,但 20 世纪密码学最伟大的革命是发明了密钥分发的技巧,这被认为是两千年来自单字母替换密码发明以后最伟大的成就。

密码故事(中)

本系列为《密码故事》的书摘,共有上、中、下三篇,各篇链接及包含内容如下:

  • 上篇:单字母替换密码,多字母替换密码。
  • 中篇:加密的机械化,恩格玛机及其破解,象形文字和楔形文字的破解。
  • 下篇:公开密钥,PGP,量子密钥分发。

加密的机械化

20 世纪初,意大利物理学家古列尔莫・马可尼(Guglielmo Marconi)发明了无线电。无线电具有双重特性:易通信性和易拦截性,这在一战爆发后表现得尤为突出。所有成员都想充分发掘无线电的资源,却苦于不知如何保障安全。在 1914 年到 1918 年间,密码编码者提出了几个新密码,但一个个均被破解了。

ADFGVX 密码(ADFGVX cipher:是一战时德军使用的一种密码,在 1918 年 3 月 5 日首次使用。德国的密码编码师组成的一个小组从各种密码中选择了 ADFGVX 密码,他们相信它是不可破解的。这个密码的特点在于它错综复杂,综合了替换和移位两种处理方法。法国密码破译学家乔治斯・佩因芬(Georges Painvin)中尉在 6 月 2 日的晚上,破解了一段 ADFGVX 信息。佩因芬的突破导致了一系列其他密码依次被破解。ADFGVX 密码的破解成了一战期间密码学的典型。尽管产生了无数的新密码,但它们无非是 19 世纪已经破解了的密码的变形或组合。对于密码破译师来说,最大的问题是如何应付信息数量的急剧增长。一战期间,无线电的使用使得截获的信息激增。据估计法国在一战期间共截获的德国通讯信息达 1000 万个单词。

公元前 400 年,中国的孙武在他的著作《孙子兵法》中提到:「三军之事,莫亲于间,赏莫厚于间,事莫密于间。」大意为:在军队中,没有比间谍更为亲近的人,给予奖赏时,没有比间谍更为优厚的,没有什么事情比间谍更为秘密。法国人坚信孙武的话,在磨炼破译密码技能的同时,还发展了几个收集无线电情报的辅助技术。

法国监听员学会了如何辨别一个无线电操作员的「手迹」,一旦一条加密的信息以摩斯电码的形式发送出来,它就变成了一系列的点和短横,而我们可以通过分析每个无线电操作员的传送速度,他的停顿以及点和短横的相对长度来确定他们的身份。此外,法国人还建立了六个方向的搜索站,它们能够检测每个信息发自哪里。每个站点不断移动它的天线直到收到的信号最强,这就确定了信息源的一个方向。通过组合两个或两个以上站点的信息方向,就可能定位出敌方传送线的确切源头。再加上第一条信息即操作员的手迹,就可能确立某特定军营的身份和地点。法国的情报员可以在几天内跟踪它的走向,一般能推出某敌军部队的目的地和军事目的,这种形式的情报搜集被称作信道分析,它在一个新的密码出现后,前期显得非常有用。对于每个新密码来说,密码分析师可能暂时无法破解它,但即使一个信息无法破译,信道分析仍会提供一些有用的信息。

齐默尔曼的电报(Zimmermann Telegram:1917 年 1 月 17 日,英国截获了一个德军电报,由英国海军部的密码局「40 号房」的蒙哥马利教士(Reverend Montgomery)和曾为出版商的内格尔(Nigel de Grey)破解。这封电报由德国新上任的外交大臣阿瑟・齐默尔曼(Arthur Zimmermann)发出,齐默尔曼的策略是从 2 月 1 日起发动无限制潜艇战争,同时为了使美国保持中立,将和墨西哥联盟,说明墨西哥总统进攻美国,收回诸如得克萨斯、新墨西哥以及亚历桑那的领土,同时希望墨西哥总统说服日本也进攻美国,以此牵制美国使其无法派遣部队到欧洲。他将加密电报发给德国驻华盛顿的大使,再转交给德国驻墨西哥的大使,最后转交给墨西哥总统。

密码故事(上)

西蒙・辛格的《密码故事》生动有趣、引入入胜,但中文译本存在多处人名前后翻译不一致的现象,且原著中关于针孔加密法的示例也完全丢失,建议有条件的同学尽量阅读英文原著《The Code Book》。

本文对于专用词汇的翻译不仅做了统一,索性和通用的翻译对齐,所以和中文译本里的译名可能有出入。共有上、中、下三篇,各篇链接及包含内容如下:

  • 上篇:单字母替换密码,多字母替换密码。
  • 中篇:加密的机械化,恩格玛机及其破解,象形文字和楔形文字的破解。
  • 下篇:公开密钥,PGP,量子密钥分发。

单字母替换密码

隐文术:通过把信息隐藏起来的这种秘密通信称为 Steganography(隐文术),由希腊词 Steganos(意为「覆盖」)和 Graphein(意为「写」)派生而来。

希罗多德(Herodotus)以编年史的形式记载了公元前 5 世纪希腊和波斯之间的冲突,其中提到住在波斯的希腊人德马拉图斯(Demaratus)利用已上蜡的一副可折叠的刻写板,先将蜡刮去,再将波斯的阴谋刻写在木板的背面,然后再涂上蜡盖住消息,从而将信息秘密地传递给希腊人。得到警告的希腊人开始武装自己,并最终在波斯人进攻时佯装被包围,并诱使波斯船队进入海湾,运用策略打败了波斯。

希罗多德还讲述了希斯塔亚乌斯(Histaiaeus)的故事:希斯塔亚乌斯想鼓励米勒图斯(Miletus)的阿里斯塔哥拉斯(Aristagoras)反叛波斯国王,为了秘密地传达他的指示,希斯塔亚乌斯剃光了他的一个信使的头发,将信息写在其头皮上,再等信使的头发重新长起来,很明显这段历史时期发生的还不是什么紧急事件。这个信使显然不用携带任何异物,能够自由穿行,不会有麻烦。一旦到达目的地,他就剃光头发,指给联络人看。

中国古代将信息写在小块丝绸上,塞进一个小球里,再用蜡封上,然后让信使吞下这个蜡球。

16 世纪,意大利科学家乔瓦尼・波塔(Giovanni Porta)描述了如何将信息隐藏在一个煮熟的鸡蛋里:把少许明矾和一点醋混在一起制成一种墨水,再用这种墨水将信息写在鸡蛋壳表面。墨水溶液就会经蛋壳上的微孔渗透进去,在已凝固的鸡蛋白表面留下印迹,这样只能剥去蛋壳后才能读取。

早在公元 1 世纪普林尼(Pliny the Elder)就解释了体液如何用作隐形墨水。用体液写的字晾干后即变得透明,但轻轻地加热就能把液体烤焦,从而字迹就以棕色显现出来。许多有机液体都有这样的性质,因为它们富含碳因而很容易被烤焦。事实上,即使是现代间谍也很少知道在标准配备的隐形墨水用完之后还可以用自己的尿液来临时代替。

密码术:在隐文术发展的同时,还有另一种方法也在演化,那就是 Cryptography(密码术),从希腊词 Kryptos(意为「隐藏」)派生而来。密码术的目的不是隐藏信息本身,而是要隐藏它的意思,也就是一种加密的过程。

隐文术和密码术常常混合使用。例如,二战期间流行的微粒照片是一种隐文术。德军在拉丁美洲的间谍将一页文件缩小在直径不到 1 毫米的微型照片上,看上去就是一个点,再将这个点状照片贴在看似无关紧要的一封信的某个句号上面。这种微型照片在 1941 年第一次被美国联邦调查局发现后,德军间谍开始有所防范,在缩小之前,将照片中的信息打乱。

密码术分为两种,即移位和替换。在移位中,字母不变,位置改变;在替换中,字母改变,位置不变。

​澳洲进行曲 D109: 今日双喜

奋战到最后一刻的 Vivian 下山了,趁着还有机会与坡坡结伴。

感谢 Vivian 帮我带回来遗落在山上的大披肩,面对正当冬季的墨尔本,我特别需要它。

再谢 Vivian 带给我的两条清洁纤维滤布,专治玻璃台面的顽固指纹。在房东家这些天,面对三个孩子在玻璃饭桌、玻璃落地门窗、整面墙的穿衣镜前留下的无数指纹,我的内心整日受煎熬,接下来就靠这个擦玻璃的神奇绿布缓解了。

我这边还没夸完,虾饺插嘴说要感谢带货女王 Vivian 又给大家介绍了一种抓住人胃口的汤达人酸辣豚骨方便面。

所以 Vivian,你有毒吗?

澳洲进行曲 D108: 混乱的半决赛之夜计划

作为爱好运动的一家人,周六是澳式足球的半决赛之夜,房东夫妻俩早早安排好计划,怎奈全天事务都在无数次计划变更中推进。

突如其来的夏日骗不了已经习惯气候变脸的 Dan,中午出门的她带着外套去市区给客人化妆。不久后接到 Dan 电话,说等会她姐姐会把 Soph 送回来。尽管之前答应帮忙照顾 Soph 一整天,但计划有变她也无法控制。结果却是 Soph 直到晚上七点才回家。

出门前 Dan 说等会外公外婆会来接双胞胎出门玩。她的“等会”一般约等于“两小时”。三点到家的外公外婆发现 Dan 出门前忘记把车钥匙留给他们,电话沟通后,在家等 Uber 专门送过来。

澳洲进行曲 D107: 解密西式厨房

现在想想周五挺开心的,Soph 上学,双胞胎去托儿所,我就有半天假可以自由活动。不过今天是 Soph 本学期最后一天课,接着有两周的假期。

一点半接她放学时,学校操场正在进行校长总结讲话环节,学生们的校服很可爱,从帽子到皮鞋,装备很齐全。


澳洲进行曲 D106: 有点意思的志愿者日

澳洲进行曲 D105: 用面粉做的橡皮泥

送完 Soph 上学回来,看到 Dan 在飞速地清洁屋子,后来得知是好久不见的朋友要来串门。

我喜欢房东 Dan 的很多方面,她性格开朗、热爱运动,对孩子有耐心但不宠溺。无论是工作还是见客,都会干净打扮以示尊重。尽管很多时候都在找手机和车钥匙,或者询问我有没有看到这个锅铲、那双鞋子,但依然不影响她自身透露的自信和时尚。毕竟很多时候她找不到的东西都是被孩子们拿去藏起来了。

记得刚住进来那几天,Dan 忙得不可开交,挂了这头的电话,那边又要去超市采购一周的食物。她形容自己“24小时都在计划着接下来要做什么”的人。

澳洲进行曲 D104: 大赛前夕的晚餐

早上打扫卫生时,仔细看了下楼梯口这幅黑底白字的装饰画,才发现原来不是简单的商品,而是记录了房东夫妻旅行目的地的重要时间轴。后来我向 Dan 证实了这件事,但是 Dan 说随着孩子们的到来,他俩已经长达七年没有出门旅行了,直到今年 8 月趁着 Soph 生日,全家去巴厘岛度过了三周的长假。

今天才知道,原来巴厘岛是澳洲的“后花园”。

房东家除了有双胞胎,还有一对双胞胎猫仔。他们是兄弟俩,但是 Lolly 和 Mickey 视一切有生命的物体都是女性。Soph 睡眠很浅,因此夜间的猫咪们只能在后屋呆着。Lolly 很爱猫咪,啥东西都想与他们分享。Mickey 最喜欢捉弄猫咪的胡须,但猫咪从不反抗。