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