20年未解的麻省理工学院密码难题被一位自学成才的程序员破解,比预期提前了15年。诞生于1999年的MIT密码谜题,被一位自学成才的程序员破解。 当时,作者根据摩尔定律估算,需要35年才能完成计算。 结局出现在15年前。 提交论文的人只使用了i7计算机的一个CPU核心。 这个密码也将解开一个20年的秘密。 什么玄机? 1999年4月,麻省理工学院计算机科学实验室(LCS)迎来了35岁生日。 它收到了一份很有仪式感的生日礼物,是时间胶囊:有人把重要的东西藏在里面,定下时间,留给未来的人类打开。 不同寻常的是,这个时间胶囊有一个由密码学家RonRivest设计的“密码锁”。著名的RSA加密算法就是以他的名字命名的。 Rivest设了一个平方密码,初始值为2。2^2=4,4^2=16,16^2=256... 平方需要取模(mod),也就是余数.比如16≡1mod3,16除以3,余数为1两个大素数,RSA算法的基础 那么,平方运算需要进行多少次呢? 80万亿次。 如开头所述,利用摩尔定律,破解这段密码大约需要35年。那是实验室的时代。 如果没有人解出答案,或者每个人都忘记了这个谜题怎么办? 设计师将35年定为期限。即便人类不交出答卷,时间胶囊依然会在2033年实验室70周年庆典时被打开。 当然,1999年的科学家们不会想到,四年后,LCS实验室会与AI实验室合并,成为大名鼎鼎的CSAIL。 他们大概也想不到,20年就有人提前交论文了。 而且,第一个交卷的程序员只用了三年半的时间就解决了这个问题。 三年半破解谜题 2015年,在谜题推出16年后,比利时自学成才的程序员BernardFabrot(简称“博纳”)偶然发现了它。 谜题是用Java编写的,但Boehner认为使用GNP多精度库(GMP)求解会更快。 这个开源库是用C语言写的,它还有对Python、R、C++、PHP等多种语言的包装器。 博纳将家里台式电脑的一颗CPU核心变成了解决问题的专用方案,每周7天,每天24小时不间断运行。除非家里停电,否则你要出远门。 博纳不敢将自己的秘密行动告诉任何人,除了最亲近的朋友。 “我知道我有机会赢,但如果我告诉别人,他们可能会用更强的装备超过我。” 三年多时间,博纳完成了80万亿平方的运营。 最后一步就是用平方运算得到的结果和题中给出的一个数,按照题中的要求进行计算;计算出的一系列数字可以翻译成一句祝贺的话。 博纳收到了热烈的贺电,并向麻省理工学院宣布自己解开了谜题。 如上所述,20年后,计算机科学实验室不复存在,与AI实验室合并的CSAIL实验室也名声在外。 当CSAIL的负责人DanielaRus听到这个消息时,她甚至不知道这个话题的存在。不过稍稍回顾一下历史,双方的暗号相得益彰。 博纳目前还不能透露这句话是什么。一切等到5月15日,答案将与时间胶囊一起向世人揭晓。 他将有幸参加这个仪式。 事实也证明,不让太多人知道??自己的想法是非常聪明的: 对手也快完蛋了,博纳并不是一个人在谜团中。 还有一个根深蒂固的项目组,叫做Cryptophage,由前英特尔工程师SimonPeffers领导,只为破解MIT密码而生。 他们使用的方法与博纳不同。这是一种在可编程加速器FPGA上运行的新平方算法,比CPU快大约10倍。 团队表示只需要两个月时间,预计5月11日就能揭晓答案。 结局总是出人意料。兴奋的是,该团队联系了麻省理工学院以预览他们即将取得的成果,却被告知其他人已经这样做了。 很荣幸输了,但他们还是受邀参加了5月15日时间胶囊开启的盛会。 OneMoreThing 在打开之前,除了设计师,没有人知道时间胶囊中隐藏着多少秘密。 但现在有一些剧透。一些来自比尔盖茨的礼物,一些来自万维网大师蒂姆伯纳斯李的礼物。 大赢家博纳最期待的是世界上最早的PC游戏《魔女》的原版。
