注意,本文涉及《流浪地球2》電影劇透,若您希望有良好的觀影體驗,建議先點贊收藏充電,在看完電影后再來觀看。
海報鎮樓
前幾天和女朋友一起看了《流浪地球2》。電影中,在月球因行星發動機故障而即將撞入地球之時,地球聯合政府計劃利用核彈將月球摧毀(具體原理看電影)。其中這一幕相信很多人印象深刻:地球小組破譯核彈密碼失敗了,於是讓航天員進行手動引爆。當時電影院的氛圍特別傷感,但密碼學專業的我卻自嗨到不能自已:什麼密碼體制能夠在量子計算機輔助的情況下還需要幾百小時才能破解啊?!爲了讓這部國產科幻里程碑的設定更豐滿,同時探索更多電影中的細節,本人決定從一個密碼學學渣的角度,與盒友們一起探討《流浪地球2》中這部分關於核彈密碼的設定。
核彈密碼的加密方式
既然講到解密,那首先的第一個問題是:核彈是怎麼加密的?如果是連加密方式都不知道,那無異於無的放矢,而且在電影中各國都將自己國家的核彈資料都拿出來了,我們有理由相信,大部分核彈的加密方式都是確定的。但是已經有加密方式了,那不就可以直接像那些科幻電影裏一樣,輸入密碼引爆核彈就行了嗎?爲什麼還要去“破解”呢?因此,我們有理由相信,問題出在加密本身。
在電影中,我們能看到,送上月球的“核彈”是隻負責爆炸的核彈頭,而推進器則被拆下來留在地球。基於這樣的細節,b站上一位密碼學大佬“zt變換”的視頻(BV158411373T)中提出這一觀點:平時電影中表現出來的那種按鈕只負責向核彈整體發送“發射信號”,而向核彈頭髮送“引爆信號”的部分則被安裝在推進器裏。(大佬的視頻專業性比較強,但真的講得很好,敬請大家前去捧場)
可是這卻無法解釋一個問題:爲什麼不直接將每個彈頭對應的推進器連接到局域網上,再由550W統一接入,這樣就相當於獲取每個彈頭的引爆信號了呀?爲了解決這一問題,我在此提出一個關於核彈加密方式的構想:最終決定彈頭“引爆信號”的不是推進器,而是彈頭本身。具體的流程如下:
- 核彈頭內置一個隨機數生成器,不斷生成新的口令,並後將該口令傳給推進器中的加密設備。
- 推進器中的加密設備根據口令生成加密密鑰與解密密鑰,並分別發送至內置加密器與核彈頭。
- 收到“發射信號”後,在預定爆炸的時刻,加密器根據口令及加密密鑰生成“引爆信號”密文,並傳至核彈頭。
- 核彈頭內的解密器根據引爆信號解密密鑰得出引爆口令。
- 若口令一致,則引爆核彈頭。
流程圖如下:
核彈加密方式(猜想)示意圖
在上述流程中,我們可以看到該方式的安全性:即使只有核彈頭,由於步驟3的輸入(示意圖中的c與k2)無法通過核彈頭本身所發出的信息得到,因此在只有核彈頭的情況下,無法單獨引爆核彈。在此基礎之上,我們便可分析得出一些對電影的解釋。
- 爲什麼要破解密碼:可以看出,在推進器及其內置加密器留存在地球的前提之下,地球方面可能存在如下問題:無法得到月球上核彈頭的引爆口令(步驟1);無法從推進器中獲得c或k2,甚至兩者皆不可得,但內部算法不清楚,相當於一個“黑盒設備”(),從而無法得到應當對月球發射的信號(步驟3)……諸如此類的問題都需要密碼學領域的學者來解決。
- 手動引爆的原理:我們可以將電影中那一個個像小盒子一樣的手動引爆裝置看成推進器內的加密設備,其中“保險”阻斷核彈頭的信號輸入(阻止步驟1),而按鈕則可看成將密文送至核彈頭的開關(步驟3)。
密碼學家們在忙什麼
在上述假設成立的基礎之上,我們便能進一步分析出片中的密碼學家們在進行什麼工作,而量子計算機又能在其中扮演什麼角色。
- 獲得核彈頭的隨機數生成手段,進行步驟1。要進行這一部分,若無法得到月球上的隨機數生成器構造,那似乎唯有通過歷史維護文件上的生成信號來反推導出可能的隨機數生成模式,即使在量子計算機的幫助之下,這一步驟也需要長時間的構造與驗證,因此電影中提到的需要714小時就顯得合理起來了:解密需要很長時間,但該時間在算力確定的前提下是能確定的。
moss沒有摸魚
- 推出密碼體制,進行步驟2與3。這一部分是對那些文件已流失而無法得知加密器原理的推進器進行的。要進行這個步驟,可以拆解推進器研究內置加密器結構,也可以找當初設計師進行詢問,但在最糟糕的情況下,只能通過歷史維護文件的明文與密文對照組,利用代數手段得到解密密鑰乃至加密體制。
- 將無法輸出信號的推進器內部結構用程序實現,進行步驟2與3。這一部分是對那些知道原理卻無法輸出信號的推進器進行的。在電影中,有許多人在進行代碼編寫,但實際上,在已知密碼體制並且在有量子計算機輔助的情況下,是不需要持續的進行代碼編寫的,反而應該是一堆人看着算法的進度更合理。而這一步驟,則是對這些編碼行爲的一個合理猜想。
- 試圖繞過密碼體制,直接引爆核彈。對於一些無法進行密碼學解密的核彈,還有一種可行的方法就是:根據核彈頭的結構,找出不需要認證就能進行操作並進行引爆工作的部分。這一部分則是屬於工科的領域了,所以電影中會多次出現一堆人對着彈頭結構的圖紙進行觀察的情景,而負責人也曾怒吼道要把當初的設計師全部找過來,因爲他們更容易發現這種結構上的漏洞。
總結
以上便是我對《流浪地球2》中核彈密碼這一部分的理解。總體來說,與其說是破解核彈密碼這一單純的數據,電影表現得更像是破解核彈的內部協議等數據架構。但是,這段情景主要是用來服務主線劇情的,因此只要將故事邏輯連貫起來,並順便將緊張的氛圍渲染到位就足夠了,在藝術角度上確實已經足夠優秀了。作爲一個密碼學學生,能看到自己的專業在末世之中依然有用武之地,這何嘗不是一種浪漫與驕傲呢。當然,也歡迎各位友善討論,我是一名正在學習密碼學的學生,歡迎更多人進入密碼學的世界。
更多遊戲資訊請關註:電玩幫遊戲資訊專區
電玩幫圖文攻略 www.vgover.com