2020年夏,旅芝國首都,拉維港
“玉汗人特別狡猾,其情報局又人才濟濟,想騙過他們很不容易。”勒夫看了看頻頻點頭的凱茲,轉過身繼續向沙姆隆二世彙報:
“我和凱茲商量之後,結合他這個標準理工男的特點,制定了一個引誘玉汗人上鉤的計劃。”
“如果我們把凱茲派到國外,與他的特長和工作性質明顯不符,很難不被懷疑。但在拉維港,若是面對面被策反,簡直是天方夜譚。所以,我們希望引誘玉汗人透過網際網路策反凱茲。”勒夫繼續分析道:
“凱茲是‘銅牆’導彈防禦系統的核心設計師之一,我們相信他一定在玉汗人的關注名單之中。最近凱茲被處分,玉汗人也一定注意到了。”
“你們是想讓玉汗人在暗網上,主動聯絡凱茲?”沙姆隆二世問道。
“是的,我是個程式設計師,也是一個科學愛好者,我匿名在暗網上活動,但有意讓有心人可以破解並追蹤到我家的IP地址。”凱茲胸有成竹地說道。
“我們計劃讓凱茲上一個程式設計師們做腦力體操的論壇。由凱茲主動釋出燒腦的帖子,相信跟帖中一定會有玉汗國特工。”勒夫說道。
“嗯,然後你們在跟帖中選擇聊天物件,再透過聊天找到目標?”
三人互望著,笑了。
所謂的暗網,不是指某一個具體的網站,而是對可匿名又很難追蹤的網路的統稱。
通常資深玩家都是網路高手,甚至是駭客級別的骨灰級玩家。
見不得光的黃賭毒、買兇買槍當然會首選暗網。
但上暗網的也不全是壞人,很多工作壓力大、社恐的程式設計師就很喜歡在其間釋出一些燒腦的問題,等待高手破解。
勒夫看著凱茲熟練地敲擊著鍵盤,定義他的住所IP地址為底層之後,做了層層加密處理。
凱茲轉來轉去之後,終於開啟了對話方塊,輸入了他的網名:
“log(n)-費馬檢驗的四重奏”。
凱茲悠閒地從椅子上站起來,走到視窗開窗透氣。
勒夫一臉不解,問道:
“你怎麼光輸入名字,不出謎題呢?這怎麼引人上鉤呀?”
凱茲神秘地笑了,說:
“我的網名就是謎題,等著吧。”
玉汗國高原城
哈米德叫來了巴希爾和羅珊娜,佈置了任務:
“旅芝國‘銅牆’防禦系統的核心設計者之一凱茲,因錯被罰,很可能心存不滿。情報中心發現他今天登陸了一個暗網,你們透過匿名身份,跟他聊聊,試探一下。”
“‘銅牆’系統核心設計者?旅芝人受再大的委屈,也不可能投靠我們吧?”巴希爾搖著頭表示懷疑。
“我也覺得不可能,但是,旅芝國技術特工上暗網本身就不正常,我們可不是那麼好騙的,邊聊邊分析吧。”羅珊娜點頭贊同巴希爾的意見,接著對哈米德說:
“老爸,把網址連結和他的網名、聊天記錄給我們吧。”
“沒有聊天記錄,只有一個網名,log(n)-費馬檢驗的四重奏。”哈米德忍不住笑著說道。
“有意思,巴希爾,這是你的強項,應該是一個關於數論的謎題吧?”羅珊娜對巴希爾眨了一下眼睛,充滿期待地看著他。
巴希爾邊思考,邊給羅珊娜講解。
費馬是著名的業餘數學家,他被全世界記住和熟悉,主要是因為看似簡單的費馬大定理,困擾了數學界將近300年,直到1995年才被證明。
而費馬小定理雖然沒有那麼高的知名度,但其對於數論和密碼學的貢獻是毫不遜色的,可以說是研究素數的基礎。
所有的素數都滿足費馬小定理,但反過來,滿足費馬小定理的整數卻不一定是素數,這些不是素數的整數被稱為偽素數。
現代密碼學離不開素數,密碼編制者可以任意使用兩個很大的已知素數A和B,可以很容易得到乘積C。
傳送密碼的人只需發出C,就是我們熟悉的所謂“公鑰”。
截獲C的任何人想要知道A或B,除非有密碼本,否則,就需要用非常大的計算量,進行困難的整數分解。
當C足夠大時(比如2^1024),整數分解需要數月甚至數年的計算時間,也就達到了保密的目的。
為了確保A和B是素數(否則,分解難度會指數級減小),素數判定問題就成為數論和密碼學研究的一個緊迫的課題。
使用計算機檢驗一個大整數n是否是素數,有很多種方法。無論哪一種方法的目標都是儘可能縮短檢驗時間。
密碼學中使用的整數n特別大,即使用計算機,計算次數也不能與n相關(位數會擠爆記憶體),最多隻能與log(n)相關。
2002年,三位數學家證明了在多項式時間log^12(n)之內,後來最佳化為log^7.5(n),可以對任意整數n進行確定性的素性檢驗。
該檢驗方法以三位數學家的姓氏首字母命名為AKS檢驗法。
遺憾的是該檢驗方法消耗的計算機記憶體過大,無法上機實用。只能停留在論文層面。
目前,應用於軍事、通訊、金融的密碼,底層的素性檢驗程式使用的是機率檢驗法。
比較流行的演算法是基於米勒-拉賓檢驗的複合演算法。
由於費馬偽素數數量太多了,不能僅使用費馬小定理進行素性檢驗用於加密。
巴希爾的介紹讓哈米德昏昏欲睡,他連忙收住話頭,指著那個奇怪的網名說:
“作為數論研究,有些數學愛好者仍然利用費馬檢驗,探尋整數的極為有趣的性質。比如我曾經看到過一個有意思的猜想。”巴希爾接著說:
“對任意整數n從二進位制到log(n)向下取整進位制,進行費馬檢驗,能夠透過檢驗的偽素數除卡邁克爾數之外,必有n=(a+1)(2a+1)的形式。”
“有愛好者在網際網路發帖,公佈了2^64以內的47個偽素數,均滿足上述猜想。”
“其中最小的n=242017633321201=11000401×22000801。”
“這47個數的兩個因子都是素數嗎?”羅珊娜好奇地問道。
“你說到關鍵了,按照猜想,a+1可以是素數也可以是合數。如果我沒記錯,其中46個數都只有兩個素因子,只有一個n的a+1是三因子合數,2a+1是個素數,這個n是由四個素因子組成的合數。”
羅珊娜終於聽明白了,問道:
“四重奏指的是四個素因子?對於小於2^64所有整數進行費馬檢驗,進位制從2至log(n),能透過檢驗的非卡邁克爾數的偽素數只有一個四因子合數。這個滿足條件的最小的四因子合數到底是哪個數呀?”
巴希爾開啟自己的電腦,從收藏夾中找到了包含47個數的表格,把那個唯一的四因子偽素數抄在了黑板上:
n=168562580058457201=103×307×9181×580624801
其中,a+1=103×307×9181=290312401。
“這就是log(n)-費馬檢驗的四重奏!”巴希爾得意地說道。
哈米德讚許地看著巴希爾問道:
“你們給那個凱茲回覆的內容就是這四個數字,對吧?”
巴希爾點頭表示認可,羅珊娜若有所思地說道:
“回覆這四個數字僅僅是解開了他出的謎題,為了使聊天進行下去,我們也需要起一個自帶謎題的網名,考考他。”
“這個有意思。”巴希爾將網名輸入欄空著,在下面輸入了聊天內容:
“103,307,9181,580624801”
巴希爾將鍵盤推給了羅珊娜,頑皮地做了一個請的動作。羅珊娜想了想,在網名欄中輸入:
“O(√nln(n))-黎曼猜想的三和絃。”