文巧巧長長地伸一個懶腰。看來這告密者異乎尋常地喜歡測試她的解密能力:先是數據中心內的摩斯密碼,接著是將數字轉換成字母的替換式密碼,還有另外兩個 JavaScript library 閒置檔案內找到的線索,同樣有待解密,把文巧巧耍得團團轉。
說到底,這人把她當甚麼?FBI?還是二戰時期的 Enigma 密碼機?
文巧巧憋了一肚子氣,可是為了滿足好奇心又不得不繼續解密 ── 她最討厭被吊胃口的滋味。
盯著面前的「merml.ko.md.iss.mel」和「22.288039, 114.211826 @ 16.1.14.20.18.25」兩條新線索,文巧巧不自覺地雙手交握陷入沉思。
由於「merml.ko.md.iss.mel」這條訊息看來比較簡單,文巧巧決定先從凱撒加密法入手。這種替換式密碼只須將字母向前或向後移動,假如將「merml.ko.md.iss.mel」這串字母同時向後移 3 個位,即會轉換成「phupo.nr.pg.lvv.pho」。
可惜無論將這串字母向後移 3、4、5、6 位,抑或向前移 3、4、5、6 位,結果得出的全屬毫無意義的字串,看來對方用的並非凱撒加密法。
文巧巧不忿氣地咬咬唇,她就不相信無法在今天之內解開這組密碼!
再來!她接著嘗試以較複雜的維珍尼爾加密法,至於解密鑰匙,就先試試解密教學範例中最常用到的「KEY」吧。文巧巧以手機上網搜尋專用的解碼對照圖表:解密鑰匙首字母是「KEY」的「K」、密碼的首字母是「merml」裏的「m」……
食指沿著「K」行一直向下移至標示著「M」的方格後改往左移動,最後答案指向「C」。解密鑰匙的次字母是「KEY」的「E」,而密碼是「merml」裏的「e」,得出的答案是「A」;第三位的解密鑰匙是「Y」,密碼是「r」的話,答案則是「T」……如此類推,這次終於得出具有含意的訊息:
「Catch me if you can」
文巧巧搖頭,真不知該好氣還是好笑 ──「有本領的話來抓我吧」?那告密者大費周章地入侵 Janus 的系統,害她挖空心思尋找線索再加以解密,單單就是為了留下如此幼稚的一個訊息?
還是她遺漏了甚麼要點,用錯了解密方式?
思前想後,文巧巧決定暫且先放著第一條線索不管。若最後謎底跟另一條線索沒有任何關連,到時候回頭再解一遍也未遲。
唯一肯定的,是待所有謎題解開、抓到告密者之後,文巧巧鐵定會將他剝皮拆骨!
那麼,接下來就只餘下「22.288039, 114.211826 @ 16.1.14.20.18.25」這謎題。
文巧巧歪歪頭,那個「@」可是電腦程式碼符號?抑或……只是單純的「at」?如果是後者,那麼「@」後面的訊息應該隱藏了地點……從 1 到 25 的非關連數字,看來她又回到起點。
劈哩啪啦的將「@」後面那串「16.1.14.20.18.25」鍵入數字/字母替換器,瞬間得出「pantry」這答案。
文巧巧猝然了悟,一股寒意自後頸沿著脊椎直落到底,然後迅速擴散全身,直教她起了一身雞皮疙瘩。半晌,文巧巧深深吸一口氣,然後在智能手機的地圖程式內輸入「22.288039」和「114.211826」。
剛才解密解昏了頭,竟忘記了 Occam's Razor 的簡約法則,誤將事情簡單複雜化。
「22.288039, 114.211826 @ 16.1.14.20.18.25」前半段根本未經加密,無須進行解碼!奈何她太專注解密,霎時間未能擺脫既定思路,以致沒能即時認出「22.288039」和「114.211826」正是經緯度的十進位度數顯示方式。
輸入經緯度後,手機所顯示的位置正正就是文巧巧身處的社會服務令辦事處!
也就是說,告密者一直在監視她,甚至可能在現實之中監視她,所以才會留下「社會服務令辦事處大廈經緯度 @ 茶水間」這個秘密訊息。
正當她以為自己成功抓住告密者尾巴之際,結果卻一直被人暗中監視?文巧巧不由得心底發毛。
她只是個無足輕重的高中生,到底能惹上甚麼人?而這個人,她惹得起嗎?
要是對方真箇在監視她而留下那樣的訊息,那麼告密者此際很可能就在辦事處的茶水間內。要去抓他嗎?
文巧巧咬咬唇,決定賭一次。
其實就連文巧巧自己也不肯定到底是期待終於能見到告密者真身,還是害怕要與告密者正面交鋒。可是當她發現茶水間內空無一人時卻實實在在的鬆了一口氣,彷彿整個人輕了十磅似的。
正打算沖咖啡壓驚,身後卻傳來一把男聲。
「我勸你還是別喝那個,這中心的咖啡超難喝的。」頭戴鴨舌帽、架著一副粗框眼鏡的男生逕自走向電動水機添水,「左邊第二格抽屜內有伯爵茶包,那個還可以。」
文巧巧嚇一跳,然後暗笑自己杯弓蛇影神經過敏。
打開抽屜,裏面整齊地擺放著各式茶包、代糖和奶精,正中心擱著一個淺黃色的鐵罐。
「你說的伯爵茶是這盒嗎?」文巧巧回過頭來,剛才那男生已不見影蹤。
打開鐵罐,內裏只得一個茶包。
茶包上卻以原子筆留下了告密者的新訊息:55445532。
2194Please respect copyright.PENANAvW0hbbKyET
*註解:2194Please respect copyright.PENANA4bdpjcAkYn
# Occam's Razor 簡約法則,源自拉丁文 Lex Parsimoniae,英譯意為 “entities should not be multiplied without necessity”。簡言之,就是最簡單的方法往往便是最好的答案。
# 凱撒加密法(Caesar cipher)是將每個字母向前或後移動的替換式密碼,例如"A"向後移3個位即變成"D"。
# 維珍尼爾加密法(Vigenere cipher)最簡便快捷的方法是以上圖對照查出密碼。不過喜歡計數的人也可試試以下算式:先取訊息的首個字母和解密鑰匙(假設是"KEY")的首個字母,將兩個字母換成數值後相加,然後將數值總和再轉換成英文字母;解密鑰匙到了盡頭則返回首字母。例:A 的數值為 0:A=0, B=1, C=2, D=3...那麼解密鑰匙 "KEY" 的數值即 K=10, E=4, Y=24。以 CATCH 為例,(C+K)(A+E)(T+Y)(C+K)(H+E) = (2+10)(0+4)(19+24)(2+10)(7+4)=12,4,43,12,11,轉換成英文字母即 MERML (總和如超過25則減以26,因有26個字母)。
作者的話:
這一章前前後後修過很多遍,要以文字清晰易明地交代解密過程果然好難呢🥺 尤其是維珍尼爾加密法的計算方法有點複雜,但將算式放進內文又太冗長了🤦🏻♀️ 還好最後找到了解密對照表😵😵😵
| IG:@琉璃異色貓 | Fb專頁:琉璃異色貓 | TG:@storytellingcat | Discord:琉璃室所 |
ns 15.158.61.48da2