【圖學院】密碼學:一場智力的巔峰對決

買賣虛擬貨幣

密碼技術(cryptography)包含了密碼學(cryptography)和密碼分析學(cryptanalysis)兩大分支,一方為紅軍(守),一方為藍軍(攻),兩者缺一不可。

自古以來,密碼學領域加密和解密的故事不斷被演繹,你方唱罷,我方登場。

當前人創造一種看似完美的加密技術,經過若干年,又會被後人透過先進技術解密。在這加密-解密-再加密-解密的過程中,展現出不可估量的人類智力,激發讓人探尋的無窮樂趣。

本期,讓我們盤點密碼學領域的重要歷史節點,看看前輩大佬們如何運用密碼學交鋒,留下一段段里程碑式的傳奇故事。

一、古典密碼學時期

凱撒大帝:置換密碼

在古典密碼學時期,密碼學主要用於軍事的密文傳遞。公元前58年左右,caesar(凱撒大帝)使用的凱撒密碼就是運用軍事命令的傳遞。他將每一個字母都進行了位移,以防止他的敵人在截獲凱撒的軍事命令之後,直接獲取到他的真實情報。


加密方法:

加密的雙方首先要對字母的位移數字達成共識,比如,我們約定好的加密位移的數字是3,那麼,我傳送的每一個字母都要經過3個位移,(a變成d,b變成e,c變成f... ...)假設我的明文是“attack” ,經過位移為3的凱撒加密之後,就會變成“dwwtfn”。成功拿到密文的人,再透過把密文的每個字母減3的方式,就能得到真實的明文資訊。

解密方法:

首先透過頻率分析或者樣式單詞分析的方法,判定是否用的是凱撒密碼。如果是,則可以使用窮舉的辦法,按照字母系統尋找偏移量。由於使用愷撒密碼進行加密的語言一般都是字母文字系統,因此密碼中可能是使用的偏移量也是有限的,26個英文字母,至多偏移25位。


頻率分析是基於某些字母在英文寫作中出現不同頻率的事實 – 例如,e通常最常出現,其次是t和a;而q和z出現次數最少(見下圖)。


參考如下加密文字:

pz aol tvza mylxblua slaaly pu aopz zlualujl

如果算上字母,你會注意到l的出現頻率高於其他任何字母(8次)。因此,如果這是替換密碼並且原始訊息是英語,則l代表e是安全的猜測,l與字母表中的e相距7個空格。如果位移量是7,則這組密碼文字將變成:

is the most frequent letter in this sentence

對於非常短的訊息,手動執行暴力攻擊或頻率分析可能很容易,但對於整個段落或文字頁面來說可能會非常耗時。

二、近代密碼學時期

enigma(轉輪密碼機):多表替代密碼

enigma(轉輪密碼機)由德國工程師arthur scherbius創造,在二戰時是德軍用來傳播資訊的加密機,彼時,英法聯軍完全不知道德國正在借用此機器傳遞資訊。

加密方法:

enigma的加密原理是多表替代——透過不斷改變明文和密文的字母對映關係,對明文字母們進行著連續不斷的換表加密操作。

密碼機設計有3個轉輪,在每個轉輪的邊緣上標記26個德文字母,藉以表示轉輪的26個位置。經過巧妙的設計,每次轉輪旋轉後,都會停留在這26個位置中的某個位置上。在轉輪組內,轉輪們相互接觸的側面之間,都有相對應的電路觸點,可以保證轉輪組的內部構成通路。

於是,輸入的字母k,經過第一個轉輪,變成輸出字母r;之後這個r進入第二個轉輪,咱們假設它又變成了c;爾後,這個c再進入第三個轉輪,假設又變成了y。如此,初始字母k歷經3次輪轉,變成了誰也認不出來的y。

解密方法:

二戰時期,阿蘭·麥席森·圖靈(alan mathison turing)基於前人的經驗,從enigma的整個密文入手,設計了“圖靈炸彈機”來進行破解。

因為德國人會在特定時間傳送特定的電報,而“天氣”和“希特勒”這兩個詞是“明文庫”中最常見的兩個單詞。所以,圖靈採用基於明文的攻擊,在早上六點多的電報密文中尋找“天氣”和“希特勒”兩個單詞加密後的密文,就能根據明文和密文的對應關係計算出金鑰。

關於這段歷史的更多趣聞,感興趣的小夥伴可參見電影《模仿遊戲》。

三、現代密碼學時期

在1976年以前,所有的加密方法都是同一種模式:加密、解密使用同一種演算法,即對稱加密演算法(symmetric encryption algorithm)。在互動資料的時候,彼此通訊的雙方就必須將規則告訴對方,否則沒法解密。那麼加密和解密的規則( 簡稱金鑰 )的保護就顯得尤其重要,傳遞金鑰成為了最大的隱患。

當密碼學進入現代時期,從藝術變成科學,開始建造完備的體系,這一隱患被得以有效解決。同時,多種密碼學技術的誕生,也讓原本神秘變換的密碼學世界變得更加精彩紛呈。


重大歷史節點:

1976年,是現代密碼學的開端,密碼學開始由藝術轉為科學,並建立一套完整的理論體系。兩位美國計算機學家迪菲(w.diffie)、赫爾曼(m.hellman)提出了一種嶄新構思,可以在不直接傳遞金鑰的情況下,完成金鑰交換。這被稱為“ 迪菲赫爾曼金鑰交換 ”演算法,開創了密碼學研究的新方向。

1977年,三位麻省理工學院的數學家羅納德·李維斯特(ron l. rivest)、阿迪·薩莫爾(adi shamir)和倫納德·阿德曼(leonard m. adleman)一起設計了一種演算法,可以實現非對稱加密。這個演算法用他們三個人的姓氏首字母命名,叫做 rsa 演算法。

【 加密方式需要兩個金鑰:公開金鑰,簡稱公鑰( public key );私有金鑰,簡稱私鑰(private key),公鑰加密,私鑰解密。rsa演算法也具有缺陷 : 效率相對較低 , 位元組長度限制等,在實際應用中我們往往會結合對稱性加密一起使用 , 秘鑰使用rsa演算法 】

1978年,ron l. rivest,leonard m. adleman以及 michael l. dertouzos提出了同態加密(homomorphic encryption)概念。允許對密文進行特定的代數運算後依然能得到加密的結果,將該結果解密以後的結果與對明文進行同樣運算的結果會保持一致

1982年,姚期智先生提出安全多方計算,即mpc。主要探討n個參與方必須各自輸入資訊去計算一個約定的函式。除了計算的正確性,這一計算過程還必須保障每個參與方輸入資料的隱私。

1989年,麻省理工學院研究人員goldwasser、micali 及 rackoff提出了“零知識證明”的概念。指的是證明者能夠在不向驗證者提供任何有用的資訊的情況下,使驗證者相信某個論斷是正確的。

隨著人類科技水平的不斷進步,密碼學和密碼分析學技術得以推陳出新,這驅動著密碼從業者不斷突破創新,讓密碼學技術發揮出應有價值,得以運用在社會生活的各個角落。   

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;