返回074 来自乔伊斯教授的小测试(上)(2 / 2)某程序员首页

关灯 护眼     字体:

上一页 目录 下一章

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

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

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

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

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

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

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

一是破解算法可以跟着密码变动的哈希函数一起变动;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

这短暂的时间不足一秒。

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

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

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

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

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

“干得漂亮。”

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

本站域名已经更换为m.adouyinxs.com 。请牢记。
『加入书签,方便阅读』

上一页 目录 下一章