扫码手机阅读

我的代码分身

作者:某程序员 | 分类: | 字数:61万

第74章 来自乔伊斯教授的小测试(上)

书名:我的代码分身 作者:某程序员 字数:2265 更新时间:2024-11-12 03:10:15

这个教授是土生土长的美国人,名叫戴尔·乔伊斯。

官网上显示他还有三个学生名额,但是不显示现在有多少人在申请。

陈旭决定先联系一下这个教授,他在官网找到了乔伊斯教授的邮箱,然后自己斟酌字句,给乔伊斯教授写了一封申请信。

刚写两句他就意识到,自己应该用英文。

他把草稿全给删掉,又开始搜刮自己的英语储备,用了一个多小时才写出来小半截不足六百个单词的申请信。

而他自己读起来都觉得十分别扭,他又给这次的草稿给删掉。

他盯着Word空白文档陷入了沉思。

“我应该找个人代写,找谁呢?”

“对了,艾米丽!”陈旭赶忙打电话给艾米丽。

电话接通后,那边响起艾米丽刻意压低的说话声,艾米丽说她现在正在做家教,问陈旭找她什么事情。

陈旭便长话短说,想让艾米丽帮他写一封申请信。

艾米丽问陈旭急不急用。

陈旭说不急用,下次上课的时候,可以在课上现写,他有一些注意事项当面说也比较方便。

艾米丽答应下来。

周四晚上,艾米丽来给陈旭上课,她没带平时上课用的笔记本电脑和资料,轻装简从。

陈旭则带上了写申请信里所需要的所有资料。

两人来到微机室开始研究怎么写一封言辞得体的申请信。

陈旭对艾米丽说道:

“艾米丽,称呼格式还有语言润色方面,你给把关,专业术语方面我来查资料。”

艾米丽看了一下陈旭准备的资料,惊讶道:

“你要去MIT留学啦。”

陈旭笑着点点头。

艾米丽回忆说道:

“我的前男友也在MIT,因为他太醉心于科研,老是冷落我,我就故意不去找他,看他什么时候来找我,你猜怎么着,后来我们都三年没联系啦!”

陈旭哈哈笑道:

“你男朋友叫什么,等我去MIT帮你打听一下,没准不是故意不理你的,有可能是挂了。”

艾米丽笑得花枝招展,说道:

“你是明年三月份开学是吧,那会我正好要回家一趟,咱们可以一起,路上我还能充当你的翻译。”

陈旭笑道:

“那敢情好啊,我给你报销飞机票。”

艾米丽摇摇头说道:

“不用不用,你付我翻译的钱就行,哈哈。”

陈旭揶揄道:

“看来翻译的钱要比飞机票贵啊。”

艾米丽狡黠一笑,说道:

“那是当然。”

聊完天,艾米丽花了两节课的时间帮陈旭写了一封申请信。

这两节课刚好算在陈旭的课时上。

艾米丽看着完成的Word文档说道:

“这封信值三千六百块哟。”

陈旭也咋舌说道:

“这是敲门金砖啊,希望能敲开乔伊斯教授的门。”

发送邮件后一周,陈旭收到来自乔伊斯教授的回信。

信上说,申请他研究部门的人很多,所以他给大家出了一道题,每个申请者都要经过这道题的考验。

邮件里的附件是一个word文档,里边是一道算法题。

这个算法题是关于动态规划算法,方向是破译密码。

不过和常规的密码破译不同,乔伊斯教授给的封装密码每隔五秒就会被哈希函数重新编写。

所以这道算法题有两个重点:

一是破解算法需要做到跟着密码变动的哈希函数一起变动;

二是破解算法的复杂度不能太高,需要在五秒内破解单次密码。

这个问题就像是装着宝贝的盒子,主人每隔五秒钟换一次锁。

陈旭需要做的就是发明一把万能钥匙,能打开盒子主人换的所有锁。

而且在开锁的时候,需要在主人换下一把锁之前就打开锁。

否则这把‘万能钥匙’也是失败的算法。

分析到这里,陈旭不禁想起来在二战期间,图灵破解德军恩格码机的密码。

恩格码机的加密算法就是一直变动的,而图灵制造出来的密码破译机能完美随动,一劳永逸地解决密码翻译。

不过当年这段传奇和今天陈旭遇到的这个又不一样了。

前者是机械转子的数学问题,而乔伊斯教授选用的哈希函数则主要侧重于算法的架构。

陈旭不禁感叹,MIT果然是世界顶级学院,连入学申请都要过这么一关,太吓人了。

他翻墙在外网搜索了一下MIT的教授,发现只有乔伊斯教授会出这种奇怪的问题来‘为难’申请者。

即便如此,乔伊斯教授在计算机学院仍然是最受欢迎的教授,每年申请做他学生的不计其数。

陈旭想了想,既然这位乔伊斯教授这么受欢迎,那就有搞头。

他静下心来开始研究乔伊斯教授发来的算法题。

按照常规解题思路,遇到复杂的问题,先要将其简单化。

既然这个密码一直在变,那就先降维让它不变,先研究单次的密码破译,然后从特殊中找共性。

陈旭截了两段不同时刻的密码,这两段密码背后隐藏的信息没变,只是加载在表层的加密算法一直在变。

他将一个密码破译任务交给了小丑女哈莉。

上次从L那回来后,陈旭从L的资料里找到了小丑女哈莉人工智能的源代码。

通过研究,他将后来崩溃的小丑女算法版本回滚到了一年前,差不多是见到陈旭的前几个月。

这时候的小丑女虽然不待见陈旭,但是陈旭控制着她源代码,所以对于陈旭发来的任务,她不得不做。

陈旭这边,在研究另一段密码解密。

按他推理,他和小丑女分别研究出两段加密算法,然后进行匹配对比,寻找导致加密算法一直变动的哈希函数。

破解了变动根源哈希函数,这道题就解决了。

他刚撸起袖子准备大干一场的时候,小丑女那边就发来消息,说破译完成。

这短暂的时间不足一秒。

也难怪,单次的密码破译本来就不是难题,这道题难的是加密算法每五秒变一次。

陈旭本来还想和对方赛一赛的心思全没了,他把自己这边的代码也丢给小丑女,说道:

“既然你这么能干,都交给你了。”

没等他消息发完,小丑女又把第二段加密算法破解了。

陈旭删掉前面没打完的话,回了一句:

“干得漂亮。”

接下来,陈旭就要从这两段加密算法的源码中寻找一些蛛丝马迹。