
圖片來源:Unsplash
這種加密通信,或許能抵御黑客入侵。
撰文 | 栗子
審校 | 二七
你看,這幅圖中有些葉子掉光的樹。圖中每一格像素的色彩,可以由紅(R)、綠(G)、藍(B)三個分量共同決定。假如把各個像素的 RGB 數值,依照特定的規則進行變換,會得到一張完全不同的圖片。
圖片來源:cyp via Wikimedia Commons
那個變換規則就是密鑰。假如使用的密鑰正確,完成變換之后再把解得的圖片調亮些,就會發現里面藏著一只小貓。

圖片來源:cyp via Wikimedia Commons
如此一來,當小明把樹的照片發送給小紅,即便數據在傳輸過程中被外人截獲,對方也只能看樹。唯有掌握正確密鑰的小紅,才會知道小明想給自己看的其實是貓。這便是隱寫術(Steganography),用一些肉眼可見的信息,為真正要傳遞的信息打掩護。
在從前的戰爭中,人們常常要用密碼本把密鑰送去前線,來保障加密通信的進行。但是,在非對稱加密(用公鑰加密、用私鑰解密)的技術還沒出現的年代,一旦密碼本被敵方拿到,通信內容可能就不再安全了。
那么,假如利用 " 隱寫術 " 的思路,把密碼本里的密鑰藏在無用的信息背后,對手就很難從中找出真正的密鑰了吧?最近,德克薩斯大學奧斯汀分校的一群科學家,給遠在馬薩諸塞大學洛威爾分校的詹姆斯 · 魯瑟(James Reuther)教授寫了封信:
親愛的魯瑟教授,
希望您在洛威爾收到信時一切安好!
我們的分子加密計劃進展順利。期待和您聊一聊!
祝好,
安斯林實驗室
簡短的信里,暗含著一份密鑰。假如你還在仔細閱讀這封信,請千萬不要放棄,因為這密鑰不在信的字句里,而在寫信用的墨水里 ……
神奇墨水是什么?
近年來,隨著科學家的想象力與日俱增,能夠用來存儲信息的載體越來越多。比如,在納米級的 DNA 分子中存進一本小說的內容,可能已經不算是令人驚奇的操作。畢竟,像人體這樣復雜而精密的機器,也是根據 DNA 編碼的信息組裝而來,它的存儲能力可想而知。
相比之下,一些非生物的聚合物還不能像 DNA 那樣高密度地存儲數據,常常只能存下幾個字節或是一個單詞,而且從中讀取信息也很不容易,不過研究者樂于接受挑戰。德克薩斯大學奧斯汀的化學教授艾瑞克 · 安斯林(Eric Anslyn)和小伙伴們,想試著把一份加密文件的密鑰,保存在序列可控的聚合物(sequence-defined polymers)里。
首先,科學家用計算機生成了一份長達 256 位的二進制密鑰,就是由 256 個 0 或 1 組成的一串數字——用來給一本小說的全文加密。這樣的密鑰有 2256≈1077 種可能的排列方式,用計算機暴力破解幾乎不可能。利用這串數字來給信息加密,安全系數很高,但前提是密鑰不被泄露出去。
那么,接下來就需要設計用來儲存密鑰的聚合物。研究者選用的聚合物是低聚氨基甲酸酯(oligourethane),一種很像塑料的材料。他們把 256 位的密鑰分成 8 份,儲存在 8 個不同的低聚物序列里面,那么每個序列要代表 32 位數字。
你或許覺得,那每個聚合物需要有 32 個單體吧。并不用,事實上一個聚合物序列只包含 10 個單體,且僅有中間的 8 個單體負責編碼密鑰。用 8 個單體表示出 32 位數字,要如何做到?

圖片來源:credit-kalmatthes.medium.com
別忘了,32 位數字是二進制中的 32 位,假如用兩種不同的單體分別表示 0 和 1,才需要 32 個單體。但科學家設計了 16 種不同的氨基甲酸酯單體,分別代表 0~9 和 A~F,這樣就能將二進制數轉換為十六進制的數:16 是 2 的四次方,十六進制中的 1 位數字可以代表二進制中的 4 位數字。如此一來,二進制中的 32 位數字便能寫入一個聚合物中間的 8 個單體里。
256 位的密鑰,寫在 8 種聚合物序列里。等到密鑰被分發出去,接收的一方還需要知道先讀哪個序列、后讀哪個序列,才能拿到正確的密鑰。對此研究者也有準備,每個聚合物序列里除了代表數字的 8 個單體,還有首尾兩個單體作為占位符。其中一個是解碼占位符,科學家為它做了同位素標記,好像 " 指紋 " 一樣,8 個序列中的標記各不相同,指示著讀取的順序。
加密完成之后,研究團隊把 8 種聚合物(各 500 納摩爾)都溶解在異丙醇里,又在溶液中混入了甘油和碳煙。這些物質共同構成一種特別的墨水,科學家把墨水灌進了圓珠筆。開頭提到的那封信,便是用這支筆,在普通的打印紙上寫成的。

圖片來源:原論文
而遠在 2000 公里之外,另一間實驗室里的詹姆斯 · 魯瑟教授和他的同事們,會在收到信件后,從中尋找隱藏的密鑰。
存進去容易,怎么讀出來?
讀取聚合物里編碼的信息,大概是分子存儲當中最難的一步。
寫信的墨水里面,一共有 8 個聚合物序列需要讀取。通常來說,使用串聯質譜(MS/MS)方法的時候,研究者要單獨分析每一種聚合物,以免譜圖變得太過復雜。假如能夠在一份混合物當中,同時分析 8 種低聚物的序列就好了。
科學家想到一種新的方案,就是把組成聚合物的單體一個個 " 砍下來 ",或者叫解聚合。從墨水中提取出藏著密鑰的 8 種聚合物之后,利用熱誘導的環化反應,每次可以從聚合物的末端去除一個單體。這樣,那 8 種被逐步拆掉單體的聚合物,就能利用液相色譜 - 質譜聯用(LC/MS)技術來實現同時測序,不再需要分開檢測。

末端的單體被砍掉(圖片來源:原論文)
研究者就讓這些大分子在 70 ℃的環境下慢慢解體。而儀器要在指定的時間點進行采樣,看聚合物們被拆到哪步了。一開始,儀器只能檢測到 8 種聚合物,那就是初始版本。等到 550 分鐘過后,聚合物幾乎都變成了一個一個的單體。

從第 0 分鐘開始,到第 550 分鐘基本上已經拆解完成(圖片來源:原論文)
密鑰一共用了 8 個聚合物序列,每個序列最初有 10 個單體。當聚合物被砍下一個單體,剩余部分的質量就會減少。當聚合物的長度從 10 個單體變成 9 個單體、8 個單體,最終只剩 1 個單體,科學家在此過程中一共會獲得 80 個不同的質量。

80 個質量數據(圖片來源:原論文)
依靠這 80 個質量數據,加上研究者識別出的 8 個同位素標簽(用來指示讀取順序),研究者終于讀出了聚合物中藏著的那串數字。只不過,它還是十六進制的版本,再轉換成二進制就是 256 位的密鑰了。
假如你還記得,在德克薩斯州的實驗室里,研究團隊用這密鑰加密了一份文件。而當馬薩諸塞州的科學家用密鑰解開文件,發現那是《綠野仙蹤》小說的全文。
或許在研究者心里,這場傳遞 " 密碼本 " 的諜戰游戲,像小說的情節一樣曲折。而結局也讓他們十分興奮。這項研究的主要作者之一,艾瑞克 · 安斯林教授說,還是第一次在這種類型的聚合物(即序列可控聚合物,SDP)里儲存如此多的信息,這標志著分子數據存儲和密碼學領域的革命性的進步。
畢竟,存儲能力超強的 DNA 也只有 4 種不同的堿基(A、T、C、G),而科學家這次用了 16 個不同的單體來編碼信息,代表序列可控聚合物的存儲潛力還很大。
原文地址:http://www.myzaker.com/article/62f12a2cb15ec0525d0a6eda