這個(gè)教授是土生土長(zhǎng)的美國(guó)人,名叫戴爾·喬伊斯。
官網(wǎng)上顯示他還有三個(gè)學(xué)生名額,但是不顯示現(xiàn)在有多少人在申請(qǐng)。
陳旭決定先聯(lián)系一下這個(gè)教授,他在官網(wǎng)找到了喬伊斯教授的郵箱,然后自己斟酌字句,給喬伊斯教授寫(xiě)了一封申請(qǐng)信。
剛寫(xiě)兩句他就意識(shí)到,自己應(yīng)該用英文。
他把草稿全給刪掉,又開(kāi)始搜刮自己的英語(yǔ)儲(chǔ)備,用了一個(gè)多小時(shí)才寫(xiě)出來(lái)小半截不足六百個(gè)單詞的申請(qǐng)信。
而他自己讀起來(lái)都覺(jué)得十分別扭,他又給這次的草稿給刪掉。
他盯著Word空白文檔陷入了沉思。
“我應(yīng)該找個(gè)人代寫(xiě),找誰(shuí)呢?”
“對(duì)了,艾米麗!”陳旭趕忙打電話給艾米麗。
電話接通后,那邊響起艾米麗刻意壓低的說(shuō)話聲,艾米麗說(shuō)她現(xiàn)在正在做家教,問(wèn)陳旭找她什么事情。
陳旭便長(zhǎng)話短說(shuō),想讓艾米麗幫他寫(xiě)一封申請(qǐng)信。
艾米麗問(wèn)陳旭急不急用。
陳旭說(shuō)不急用,下次上課的時(shí)候,可以在課上現(xiàn)寫(xiě),他有一些注意事項(xiàng)當(dāng)面說(shuō)也比較方便。
艾米麗答應(yīng)下來(lái)。
周四晚上,艾米麗來(lái)給陳旭上課,她沒(méi)帶平時(shí)上課用的筆記本電腦和資料,輕裝簡(jiǎn)從。
陳旭則帶上了寫(xiě)申請(qǐng)信里所需要的所有資料。
兩人來(lái)到微機(jī)室開(kāi)始研究怎么寫(xiě)一封言辭得體的申請(qǐng)信。
陳旭對(duì)艾米麗說(shuō)道:
“艾米麗,稱呼格式還有語(yǔ)言潤(rùn)色方面,你給把關(guān),專業(yè)術(shù)語(yǔ)方面我來(lái)查資料?!?p> 艾米麗看了一下陳旭準(zhǔn)備的資料,驚訝道:
“你要去MIT留學(xué)啦。”
陳旭笑著點(diǎn)點(diǎn)頭。
艾米麗回憶說(shuō)道:
“我的前男友也在MIT,因?yàn)樗硇挠诳蒲?,老是冷落我,我就故意不去找他,看他什么時(shí)候來(lái)找我,你猜怎么著,后來(lái)我們都三年沒(méi)聯(lián)系啦!”
陳旭哈哈笑道:
“你男朋友叫什么,等我去MIT幫你打聽(tīng)一下,沒(méi)準(zhǔn)不是故意不理你的,有可能是掛了?!?p> 艾米麗笑得花枝招展,說(shuō)道:
“你是明年三月份開(kāi)學(xué)是吧,那會(huì)我正好要回家一趟,咱們可以一起,路上我還能充當(dāng)你的翻譯。”
陳旭笑道:
“那敢情好啊,我給你報(bào)銷飛機(jī)票?!?p> 艾米麗搖搖頭說(shuō)道:
“不用不用,你付我翻譯的錢就行,哈哈?!?p> 陳旭揶揄道:
“看來(lái)翻譯的錢要比飛機(jī)票貴啊?!?p> 艾米麗狡黠一笑,說(shuō)道:
“那是當(dāng)然。”
聊完天,艾米麗花了兩節(jié)課的時(shí)間幫陳旭寫(xiě)了一封申請(qǐng)信。
這兩節(jié)課剛好算在陳旭的課時(shí)上。
艾米麗看著完成的Word文檔說(shuō)道:
“這封信值三千六百塊喲。”
陳旭也咋舌說(shuō)道:
“這是敲門金磚啊,希望能敲開(kāi)喬伊斯教授的門?!?p> 發(fā)送郵件后一周,陳旭收到來(lái)自喬伊斯教授的回信。
信上說(shuō),申請(qǐng)他研究部門的人很多,所以他給大家出了一道題,每個(gè)申請(qǐng)者都要經(jīng)過(guò)這道題的考驗(yàn)。
郵件里的附件是一個(gè)word文檔,里邊是一道算法題。
這個(gè)算法題是關(guān)于動(dòng)態(tài)規(guī)劃算法,方向是破譯密碼。
不過(guò)和常規(guī)的密碼破譯不同,喬伊斯教授給的封裝密碼每隔五秒就會(huì)被哈希函數(shù)重新編寫(xiě)。
所以這道算法題有兩個(gè)重點(diǎn):
一是破解算法需要做到跟著密碼變動(dòng)的哈希函數(shù)一起變動(dòng);
二是破解算法的復(fù)雜度不能太高,需要在五秒內(nèi)破解單次密碼。
這個(gè)問(wèn)題就像是裝著寶貝的盒子,主人每隔五秒鐘換一次鎖。
陳旭需要做的就是發(fā)明一把萬(wàn)能鑰匙,能打開(kāi)盒子主人換的所有鎖。
而且在開(kāi)鎖的時(shí)候,需要在主人換下一把鎖之前就打開(kāi)鎖。
否則這把‘萬(wàn)能鑰匙’也是失敗的算法。
分析到這里,陳旭不禁想起來(lái)在二戰(zhàn)期間,圖靈破解德軍恩格碼機(jī)的密碼。
恩格碼機(jī)的加密算法就是一直變動(dòng)的,而圖靈制造出來(lái)的密碼破譯機(jī)能完美隨動(dòng),一勞永逸地解決密碼翻譯。
不過(guò)當(dāng)年這段傳奇和今天陳旭遇到的這個(gè)又不一樣了。
前者是機(jī)械轉(zhuǎn)子的數(shù)學(xué)問(wèn)題,而喬伊斯教授選用的哈希函數(shù)則主要側(cè)重于算法的架構(gòu)。
陳旭不禁感嘆,MIT果然是世界頂級(jí)學(xué)院,連入學(xué)申請(qǐng)都要過(guò)這么一關(guān),太嚇人了。
他翻墻在外網(wǎng)搜索了一下MIT的教授,發(fā)現(xiàn)只有喬伊斯教授會(huì)出這種奇怪的問(wèn)題來(lái)‘為難’申請(qǐng)者。
即便如此,喬伊斯教授在計(jì)算機(jī)學(xué)院仍然是最受歡迎的教授,每年申請(qǐng)做他學(xué)生的不計(jì)其數(shù)。
陳旭想了想,既然這位喬伊斯教授這么受歡迎,那就有搞頭。
他靜下心來(lái)開(kāi)始研究喬伊斯教授發(fā)來(lái)的算法題。
按照常規(guī)解題思路,遇到復(fù)雜的問(wèn)題,先要將其簡(jiǎn)單化。
既然這個(gè)密碼一直在變,那就先降維讓它不變,先研究單次的密碼破譯,然后從特殊中找共性。
陳旭截了兩段不同時(shí)刻的密碼,這兩段密碼背后隱藏的信息沒(méi)變,只是加載在表層的加密算法一直在變。
他將一個(gè)密碼破譯任務(wù)交給了小丑女哈莉。
上次從L那回來(lái)后,陳旭從L的資料里找到了小丑女哈莉人工智能的源代碼。
通過(guò)研究,他將后來(lái)崩潰的小丑女算法版本回滾到了一年前,差不多是見(jiàn)到陳旭的前幾個(gè)月。
這時(shí)候的小丑女雖然不待見(jiàn)陳旭,但是陳旭控制著她源代碼,所以對(duì)于陳旭發(fā)來(lái)的任務(wù),她不得不做。
陳旭這邊,在研究另一段密碼解密。
按他推理,他和小丑女分別研究出兩段加密算法,然后進(jìn)行匹配對(duì)比,尋找導(dǎo)致加密算法一直變動(dòng)的哈希函數(shù)。
破解了變動(dòng)根源哈希函數(shù),這道題就解決了。
他剛擼起袖子準(zhǔn)備大干一場(chǎng)的時(shí)候,小丑女那邊就發(fā)來(lái)消息,說(shuō)破譯完成。
這短暫的時(shí)間不足一秒。
也難怪,單次的密碼破譯本來(lái)就不是難題,這道題難的是加密算法每五秒變一次。
陳旭本來(lái)還想和對(duì)方賽一賽的心思全沒(méi)了,他把自己這邊的代碼也丟給小丑女,說(shuō)道:
“既然你這么能干,都交給你了?!?p> 沒(méi)等他消息發(fā)完,小丑女又把第二段加密算法破解了。
陳旭刪掉前面沒(méi)打完的話,回了一句:
“干得漂亮?!?p> 接下來(lái),陳旭就要從這兩段加密算法的源碼中尋找一些蛛絲馬跡。