我的代码分身
作者:某程序员 | 分类:科幻 | 字数:61万
本书由零点看书签约发行,版权所有侵权必究
第74章 来自乔伊斯教授的小测试(上)
这个教授是土生土长的美国人,名叫戴尔·乔伊斯。
官网上显示他还有三个学生名额,但是不显示现在有多少人在申请。
陈旭决定先联系一下这个教授,他在官网找到了乔伊斯教授的邮箱,然后自己斟酌字句,给乔伊斯教授写了一封申请信。
刚写两句他就意识到,自己应该用英文。
他把草稿全给删掉,又开始搜刮自己的英语储备,用了一个多小时才写出来小半截不足六百个单词的申请信。
而他自己读起来都觉得十分别扭,他又给这次的草稿给删掉。
他盯着Word空白文档陷入了沉思。
“我应该找个人代写,找谁呢?”
“对了,艾米丽!”陈旭赶忙打电话给艾米丽。
电话接通后,那边响起艾米丽刻意压低的说话声,艾米丽说她现在正在做家教,问陈旭找她什么事情。
陈旭便长话短说,想让艾米丽帮他写一封申请信。
艾米丽问陈旭急不急用。
陈旭说不急用,下次上课的时候,可以在课上现写,他有一些注意事项当面说也比较方便。
艾米丽答应下来。
周四晚上,艾米丽来给陈旭上课,她没带平时上课用的笔记本电脑和资料,轻装简从。
陈旭则带上了写申请信里所需要的所有资料。
两人来到微机室开始研究怎么写一封言辞得体的申请信。
陈旭对艾米丽说道:
“艾米丽,称呼格式还有语言润色方面,你给把关,专业术语方面我来查资料。”
艾米丽看了一下陈旭准备的资料,惊讶道:
“你要去MIT留学啦。”
陈旭笑着点点头。
艾米丽回忆说道:
“我的前男友也在MIT,因为他太醉心于科研,老是冷落我,我就故意不去找他,看他什么时候来找我,你猜怎么着,后来我们都三年没联系啦!”
陈旭哈哈笑道:
“你男朋友叫什么,等我去MIT帮你打听一下,没准不是故意不理你的,有可能是挂了。”
艾米丽笑得花枝招展,说道:
“你是明年三月份开学是吧,那会我正好要回家一趟,咱们可以一起,路上我还能充当你的翻译。”
陈旭笑道:
“那敢情好啊,我给你报销飞机票。”
艾米丽摇摇头说道:
“不用不用,你付我翻译的钱就行,哈哈。”
陈旭揶揄道:
“看来翻译的钱要比飞机票贵啊。”
艾米丽狡黠一笑,说道:
“那是当然。”
聊完天,艾米丽花了两节课的时间帮陈旭写了一封申请信。
这两节课刚好算在陈旭的课时上。
艾米丽看着完成的Word文档说道:
“这封信值三千六百块哟。”
陈旭也咋舌说道:
“这是敲门金砖啊,希望能敲开乔伊斯教授的门。”
发送邮件后一周,陈旭收到来自乔伊斯教授的回信。
信上说,申请他研究部门的人很多,所以他给大家出了一道题,每个申请者都要经过这道题的考验。
邮件里的附件是一个word文档,里边是一道算法题。
这个算法题是关于动态规划算法,方向是破译密码。
不过和常规的密码破译不同,乔伊斯教授给的封装密码每隔五秒就会被哈希函数重新编写。
所以这道算法题有两个重点:
一是破解算法需要做到跟着密码变动的哈希函数一起变动;
二是破解算法的复杂度不能太高,需要在五秒内破解单次密码。
这个问题就像是装着宝贝的盒子,主人每隔五秒钟换一次锁。
陈旭需要做的就是发明一把万能钥匙,能打开盒子主人换的所有锁。
而且在开锁的时候,需要在主人换下一把锁之前就打开锁。
否则这把‘万能钥匙’也是失败的算法。
分析到这里,陈旭不禁想起来在二战期间,图灵破解德军恩格码机的密码。
恩格码机的加密算法就是一直变动的,而图灵制造出来的密码破译机能完美随动,一劳永逸地解决密码翻译。
不过当年这段传奇和今天陈旭遇到的这个又不一样了。
前者是机械转子的数学问题,而乔伊斯教授选用的哈希函数则主要侧重于算法的架构。
陈旭不禁感叹,MIT果然是世界顶级学院,连入学申请都要过这么一关,太吓人了。
他翻墙在外网搜索了一下MIT的教授,发现只有乔伊斯教授会出这种奇怪的问题来‘为难’申请者。
即便如此,乔伊斯教授在计算机学院仍然是最受欢迎的教授,每年申请做他学生的不计其数。
陈旭想了想,既然这位乔伊斯教授这么受欢迎,那就有搞头。
他静下心来开始研究乔伊斯教授发来的算法题。
按照常规解题思路,遇到复杂的问题,先要将其简单化。
既然这个密码一直在变,那就先降维让它不变,先研究单次的密码破译,然后从特殊中找共性。
陈旭截了两段不同时刻的密码,这两段密码背后隐藏的信息没变,只是加载在表层的加密算法一直在变。
他将一个密码破译任务交给了小丑女哈莉。
上次从L那回来后,陈旭从L的资料里找到了小丑女哈莉人工智能的源代码。
通过研究,他将后来崩溃的小丑女算法版本回滚到了一年前,差不多是见到陈旭的前几个月。
这时候的小丑女虽然不待见陈旭,但是陈旭控制着她源代码,所以对于陈旭发来的任务,她不得不做。
陈旭这边,在研究另一段密码解密。
按他推理,他和小丑女分别研究出两段加密算法,然后进行匹配对比,寻找导致加密算法一直变动的哈希函数。
破解了变动根源哈希函数,这道题就解决了。
他刚撸起袖子准备大干一场的时候,小丑女那边就发来消息,说破译完成。
这短暂的时间不足一秒。
也难怪,单次的密码破译本来就不是难题,这道题难的是加密算法每五秒变一次。
陈旭本来还想和对方赛一赛的心思全没了,他把自己这边的代码也丢给小丑女,说道:
“既然你这么能干,都交给你了。”
没等他消息发完,小丑女又把第二段加密算法破解了。
陈旭删掉前面没打完的话,回了一句:
“干得漂亮。”
接下来,陈旭就要从这两段加密算法的源码中寻找一些蛛丝马迹。