首頁(yè) 科幻

我的代碼分身

074 來(lái)自喬伊斯教授的小測(cè)試(上)

我的代碼分身 某程序員 2078 2020-01-30 12:15:39

  這個(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),陳旭就要從這兩段加密算法的源碼中尋找一些蛛絲馬跡。

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進(jìn)入下一章  按 “空格鍵” 向下滾動(dòng)
目錄
目錄
設(shè)置
設(shè)置
書(shū)架
加入書(shū)架
書(shū)頁(yè)
返回書(shū)頁(yè)
指南