二戰時期,美國使用的「納瓦霍語」加密,就是當時最好用的加密法。看過吳宇森執導的好萊塢電影《風語者》就知道,它講的就是納瓦霍通訊兵的故事。這是唯一一個從未被破譯的軍事密碼,並且簡單實用。
密碼學其實是一種想方設法給別人讀取信息製造更多麻煩,與此同時又不給自己讀取信息增加太多麻煩的學問。我們應當明確一個觀點,密碼加密應當在安全和效率上取得平衡,而不是純粹追求複雜難解。
在古典密碼學中,加密和解密過程的最小操作單位都是單個字符或者符號,所以古典密碼學的核心就是移位法和替代法。在現代密碼學,把研究對象用數來描述,再對數進行運算。不但突破了字母作為最小變化單位的限制,還可以使用更高等的數學算法做運算,因此破譯就變得越來越難。所以,加密時所用的數學算法,是一個密碼能否被破譯的關鍵。
當到維尼吉亞加密法時,字母的頻率特徵便消失了。為了掩蓋字母使用中暴露的頻率特徵,使用多套符號代替原來的文字。人們事先規定每個字母用了哪套移位法,但並不是毫無規律的指定,而是要約定一個規則,這個規則就叫作 「鑰匙」。最終,原文裡同一個字母會被加密成不同字符,hello中的兩個「l」分別變成了D和J。而且密文中同樣的字符也可能代表不同的原文。
但是加密程度極高的維尼吉亞加密法卻沒有得到廣泛的使用,因為破解難度太大。直到它出現之後兩百多年的南北戰爭時期,才得到應用。歐洲各國的情報部門的建立和電報的出現讓人們不得不採用更為複雜的加密法,而機械的出現也讓這一極其複雜的加密法有了使用的可能性。因此,基礎學科的發展是工程領域發展的根基,新理論的發明要比產品的發明重要得多。
維吉尼亞加密法是一個精彩的歷史,針對其鑰匙的循環這個缺陷,加密一方又繼續發展,改進方法是增加鑰匙的長度。2.0版本正是讓使用每一套加密法的字母數量大大減少,從而使得頻率分析法不再適用,人們也就一般使用一篇文章作為鑰匙了。但是不依賴於頻率分析法,人們採用了另一種近乎於體力勞動大量猜測的方法。最後3.0版本的改進在於鑰匙編成隨機字母的方式,而非有意義的文章,稱之為單次鑰匙簿密碼法,但是因為效率過低,使用的很少。密碼學和戰爭的關係是相互影響相互促進的,一方面信息的價值比武器的價值要高得多,密碼學會深刻影響戰爭的結果;另一方面戰爭對於加密解密的需要,又直接推動了密碼學的發展。
二戰中大放異彩的第四代加密法——恩尼格瑪機,它使用的加密方式,本質上還是第二代加密法——替代和移位,但因為可以切換無窮多種加密配套組合,所以在對抗頻率分析法上極其有效。也正是從它開始,密碼學不再依賴紙和筆的運算,使用機械和電子加密的時代正式到來。
恩尼格瑪機的重點就是編碼器,編碼器由一堆可以手工設置的機械部件組成,任何地方的調整都會改變加密的結果。每敲一個字母,齒輪會往下轉一格,齒輪的轉動導致線路連接的變化,而連接線一變,又直接導致加密結果的不同。其實恩尼格瑪機的本質還是類似於尼吉亞加密法,關鍵在於鑰匙的使用,但是可以產生的鑰匙的無規律性大大提高,方便之處在於,幾組齒輪的初始值是可以隨意設置的,所以幾乎沒有什麼技巧可以破解,而所謂的窮舉法暴力破解又面臨著太多的可能性。
最後是圖靈破解了恩尼格瑪機,破解的關鍵在於知道每次加密前人工設定的初始狀態,而且出現了對小鑰匙加密的總鑰匙,不過具體的破解過程太複雜了。
但有趣的是,圖靈破解的關鍵居然源於「人性的弱點」,因為初始值的設定做不到完全的隨機,即使鍵盤的隨意敲擊也帶有一定的規律性,這也就給了破解一方可乘之機。
隱藏法時代中,如何加密的細節是屬於核心機密;在替代法和移位法中,大部分操作原理人們都知道,只是不知道具體移動了幾位;但到了機械電子加密的時代,加密設備的工作原理,不論是理論還是技術細節,敵我雙方都了如指掌,密碼的安全性全部落在鑰匙上,而不再依賴於加密的操作細節。
在數學的推動下,從計算機時代開始,字母不再作為最小的操作單位,以往的加密,都是對單個字母進行操作;但數位化後的加密,打亂的是語言規律的底層結構,改變發生在字母內部。魔王加密系統中的魔王是一套完全公開的操作算法。魔王系統加密能保證信息主體的安全,但雙方還是要交換鑰匙,而鑰匙的安全是沒法保證的。這就是魔王系統最大的漏洞。當鑰匙越沒規律時,密碼越保險,但也就越需要雙方見面溝通;鑰匙越有規律,密碼越不安全,但卻省去了見面溝通的成本。
為了解決這個問題,一種不可逆的函數佔據了重要的地位,也就是單向函數。而這種不可逆的操作稱為模運算。有些類似鐘錶的時間計算。滿12進1。當模比較小的時候,可以逆運算的數字比較多;但是當模大到一定程度時,就完全沒有逆運算了,這是由數學決定的,具體的操作方式就是「迪菲-黑爾曼鑰匙交換方案」。
雖然基於模運算,密碼學不再需要單獨發送鑰匙,但是卻需要雙方始終在線,即刻恢復,因此實際上應用場景很狹小。
而第六代RSA加密系統就解決了應用場景的問題。RSA加密的關鍵在於「非對稱鑰匙」或者說「非對稱加密」的出現。即上鎖和開鎖用的是兩把不同的鑰匙。RSA加密法使用的數學工具很陌生,這個方法用到了兩大數學領域的知識——質數方面的應用和數論有關,單向函數的應用和群論有關。這個時候的運算原理難以理解,但是在數學原理上是保證了一定成立的。
在近一步的發展中,出現了「數字籤名」,以確認發送消息人的身份。比如A給B發送消息,加兩次密,一次使用A的私鑰,一次使用B的公鑰,前者是為了確定消息的發送者是A,後者是確保只有B可以解開。現在,我們生活在一個技術沒有天花板的時代,由新技術造成的問題,只能由更新的技術解決。
之後我們進入到量子加密階段,我們先來了解下比特幣和區塊鏈。比特幣的設計初衷是希望在點對點的電子現金支付中,擺脫中央銀行的管制。而由於沒有機構的管制,就不可避免地要使用加密法,比特幣中的密碼學並不複雜,只有2種:一個是SHA256加密法,另一個是非對稱鑰匙系統。前一個是Hash函數,也就是不論原始數據有多長、有多少位,經過Hash運算後,輸出的值的長度都是固定的,運算的結果是一個256位的2進位數就足夠了。
比特幣規定了,寫入帳本的信息必須以之前的交易為基礎。之所以要以之前的交易為基礎,是因為這套交易系統裡沒有中央銀行。之所以一定要去除中央銀行,那就不是技術原因了,而是價值觀的問題。那個價值觀,就是無政府主義和理想主義。
比特幣在使用的過程中依舊存在很多問題,大概率不會成為主流的電子貨幣,但是它還有一些巨大的運用,比如區塊鏈。在區塊鏈中,每一個區塊裡都包含著成百上千條交易記錄。只要經過檢查合格了,就寫在之前最後一個區塊的後面。大概率說,一個新區塊裡的交易記錄大多數是同時到的,但肯定還會略有區別,所以就會面臨一個問題——它們會同時向網絡提交N個不同版本的新區塊。比如說同一時間有200個不同版本的新區塊出現,那選哪個為大家的標準呢?比特幣網絡的解決辦法是,限制單位時間裡產生新區塊的數量。這個時間限制源於做兩道題目。
第一個是簡單題,它是這樣計算的:計算出一個字符串,這串字符由3部分組成。第一部分是這個新區塊內包含的成百上千的交易記錄,第二部分是這個新區塊的基本信息,最後一個部分是前一個區塊的SHA256函數值。第二個題目的難度大幅上升,也是利用SHA256函數進行計算。整個比特幣網絡,只認可長度最長的那條鏈。
量子計算機中,存儲的數據總是處於0和1的疊加態,可以理解成所有出現0和1的可能性融匯在一起,所以一個量子存儲單位在某一時刻,是可以同時存儲2k個數據的。量子計算機一次操作就相當於傳統計算機很多次操作,計算能力大大增加了。所以如果能設計出一些連續的操作來分解質數的話,即使是一個超大數,用量子計算機也能很快的找出他的因數。這樣,RSA加密法就被破解了。這種操作就是「Shor算法」。它是1994年設計出來的,專門用來分解因數。
事實上,量子計算機破解密碼需要軟體和硬體的協同,以上的算法就是軟體實現的部分,需要聲明的是量子計算機雖然相較於傳統計算機的算力大大增加,可以快速的處理複雜的運算,但其計算量的增加隨數字N的增加依舊是較為陡峭的曲線,也就是只要N足夠大,保密的性能就足夠優秀。
如果那些明暗條紋代表著量子計算機運算到某一時刻的量子位的正確狀態的話,那設計者要盡最大可能維持住這種狀態。但實際上,這種狀態會被很多因素幹擾。在宏觀世界裡,任何一種物質都有可能和量子發生互動改變他們的狀態,比如說溫度。所以那些量子計算機,都需要在零下200多攝氏度的極低溫才能正常工作。所以,到目前為止並沒有出現可以有效破解RSA加密法的方法,事實上目前銀行也大多採用這種方式。
關於第七代加密法——量子加密,和其他加密法最大的不同是,其他加密法的原理只使用了數學,而它不但使用了數學,還使用了物理中的量子理論。也許正是因為背後有兩大靠山,所以它是目前為止最強的加密法,就算是量子計算機也很可能無法破解。數學原理就是單詞鑰匙薄密碼法,這種加密法無法破解的前提就是鑰匙的完全隨機,而在量子加密中這個問題得到了有效的解決。鑰匙既不用額外的傳輸,而且本身又是完全隨機的,滿足了單次鑰匙簿加密法,並且改進了傳送鑰匙的薄弱環節。
而量子加密最吸引人的特點來自於它的不可破解。因為如果量子加密能被破解,就說明在量子理論中,出現了一種對量子態測量後還不改變量子態的方法,而這是違反量子力學基本原理的,說明目前所有量子力學結論都是錯的。而我們相信量子力學現有的基本理論都是經過無數的實驗證明的,即使後期有理論改進,但不會出現完全的翻盤。
文章作者:數字經濟研究院
楊蕊 巫光福 廖列法
參考文獻[1] Barona R, Anitha E A M. Optimal cryptography scheme and Efficient Neutrosophic C-means clustering for anomaly detection in cloud environment[J]. Journal of Circuits, Systems and Computers, 2020.
[2] Rodrigues G A P, Albuquerque R D O, Alves G D O, et al. Securing Instant Messages with Hardware-Based Cryptography and Authentication in Browser Extension[J]. IEEE Access, 2020, PP(99):1-1.
[3] Yumang A N, Dimaunahan E D, Lazaro J B, et al. Encryption and Decryption of Vital Signs Information through a Symmetric based Cryptography Algorithm[C]// ICBET 2020: 2020 10th International Conference on Biomedical Engineering and Technology. 2020.