密碼學淺談

買賣虛擬貨幣
前言:在最開始接觸區塊鏈時,我只是因為密碼學在區塊鏈中很重要,就去查詢了一些密碼學相關的術語、應用以及發展。最後才發現,密碼學其實更像是故事的起點。

在此次分享準備前,我先去了解了一下密碼學的歷史。下面我們就從公元前的事講起吧。

一、很久很久以前

大約在公元前1900 年(相當於古代中國的大禹時代),古埃及的一位石匠在主人的墓室石牆上刻下了一段象形文字。這段描述他的貴族主人一生事蹟的文字,被西方密碼專家認為是密碼學的開端,因為其中一些常用字的符號被幾個少見的符號所代替了,就如同古典密碼學中被稱為“替換法”的加密方法。

西方學者的這種說法有點牽強,因為這位石匠這樣做並不是為了對文字內容保密,而是出於對主人的尊敬和追求文字表達的藝術性。

其實,古代中國也有著在文字上為帝王和尊長避諱的悠久傳統。比如,漢文帝名叫劉恆,於是把“恆娥”改名“嫦娥”,把“恆山”改為“常山”,齊國權臣“陳恆”於是也就成了“田常”。這樣類似的例子還有很多,這裡就不一一例舉了。

雖然古代中國使用這些關於帝王的文字避諱不是為了保密,而是為了表示對皇權的敬畏。但這些避諱也可以和密碼學中的“替換法”聯絡起來。事實上,確實有很多人不瞭解這些避諱的文字替換法,因此對書中的內容產生了誤解,就像文字被加了密一樣。從某種意義上來說,這些避諱也可以稱為中國古代社會的密碼。

二、密碼學在古代中國軍事中的應用

從古至今,密碼最常用於軍事。正如《孫子兵法》中所說:知己知彼,百戰不殆;不知彼而知己,一勝一負;不知彼不知己,每戰必敗。
大家或多或少,可能都聽說過“陰符”和“陰書”這兩個詞吧。

據說是姜子牙所著的中國古代兵書《六韜》,其中就講述了君主如何在戰爭中與在外的將領進行保密通訊。這其中就提到了陰符和陰書。在今天看來,“陰符”和“陰書”就是後來密碼學中的“密碼”和“密文”。

陰符

武王問太公說:領兵深入敵國境內,軍隊突然遇到緊急情況,戰事或有利,或失利。我要與各軍遠近相通,內外相應,保持密切的聯絡,以便及時應對戰場上軍隊的需求,應該怎麼辦呢?

太公回答說:國君與主將之間用陰符秘密聯絡。陰符共有八種:一種長一尺,表示大獲全勝,摧毀敵人;一種長九寸,表示攻破敵軍,殺敵主將;一種長八寸,表示守城的敵人已投降,我軍已佔領該城;一種長七寸,表示敵軍已敗退,遠傳捷報;一種長六寸,表示我軍將誓死堅守城邑;一種長五寸,表示請撥運軍糧,增派援軍;一種長四寸,表示軍隊戰敗,主將陣亡;一種長三寸,表示戰事失利,全軍傷亡慘重。如奉命傳遞陰符的使者延誤傳遞,則處死;如陰符的秘密被洩露,則無論無意洩密者或有意傳告者也處死。只有國君和主將知道這八種陰符的秘密。這就是不會洩露朝廷與軍隊之間相互聯絡內容的秘密通訊語言。敵人再聰明也不能識破它。

陰書

武王問太公說:領兵深入敵國境內,君主和將帥各率一軍,要使兩支軍隊配合作戰,實施變化無窮的作戰方法,謀取敵人意想不到的勝利。但需要聯絡的事情很多,使用陰符難以說明,而兩軍之間又距離遙遠,言語不能通達,應該怎麼辦呢?

太公回答說:如果有軍機大事需要聯絡,應該用書信而不用符。君主透過書信向主將指示,主將則透過書信向君主請示。書信都要拆分成三部分,並分派三人發出,每人拿一部分。只有這三部分合在一起才能讀懂信的內容。這就是所謂的陰書(機密信),敵人再聰明,也看不懂這種書信。

不僅如此,北宋仁宗時期,成書於1040 年—1044 年的一部官修的兵書《武經總要》,其前集第15 卷中有“符契”、“信牌”和“字驗”三節,專門講述軍隊中秘密通訊和身份驗證的方法。

看過古裝劇的朋友,對“虎符”這個名詞應該不算陌生,它們是呼叫軍隊的憑證。符”通常做成兩部分,使用時一分為二,驗證時合二為一;只有同一符的兩部分才能完美地合在一起。順便說一下,這也是“符合”的來歷。 現代密碼學中,運用公鑰、私鑰體系進行身份認證的方法也與“符”相通。

在明末清初,著名的軍事理論家揭暄的《兵經百言》,用100 個字條系統闡述了中國古代的軍事理論。其中的“傳”字訣則是古代軍隊通訊方法的總結。

三、密碼學在古代西方的應用

大約在公元前700 年,古希臘軍隊用一種叫做Scytale的圓木棍來進行保密通訊。使用方法是:把長帶子狀羊皮紙纏繞在圓木棍上,然後在上面寫字;解下羊皮紙後,上面只有雜亂無章的字元,只有再次以同樣的方式纏繞到同樣粗細的棍子上,才能看出所寫的內容。

這樣的方式,有著快速且不容易解讀錯誤的優點,使它在戰場上大受歡迎。但是它很容易就被破解了。

2100 年前,古羅馬的執政官和軍隊統帥愷撒發明了一種把所有的字母按字母表順序迴圈移位的文字加密方法。比如我按字母表順移3 位的話,那麼SCRY就成為了VFUB。從密碼學角度來看,愷撒加密法屬於“單字母表替換”加密,這種替換方法非常簡單。如此以來,也非常容易破解。事實上,直到二戰結束,西方所使用的加密方法大多都還屬於“字母表替換”加密,只是替換的規則越來越複雜而已。

從15 世紀中葉起,歐洲人開始研究各種“多字母表替換加密”方法,即信文中同一個字母在不同的位置上會有不同的替換符號。其中最有名的當屬“維吉尼亞加密術”(Vigenère Cipher)。

這樣的例子還有很多,也不一一例舉了。

四、傳統密碼學的基本知識

到第一次世界大戰結束為止,算是傳統密碼學的一個分界線了。這裡我們來梳理一下此前的加密法知識。

1、換位加密法
換位加密法是指在加密的過程中不改變字或字母本身,只改變它們的排列或閱讀順序,以達到加密的目的。古代西方人有時會把單詞或者句子倒序來寫,這也算是換位加密。比如把TOWARDS A BLOCKCHAIN SCIENCE OF HUMAN BEINGS寫成SGNIEB NAMUH FO ECNEICE NIAHCKCOLB A SDRAWOT

2、替換加密法
替換加密法就是不改變信文中字或字母的順序,而是用其他的符號來替換它們,以此達到加密的目的。比如我們之前提到的愷撒密碼。

五、機器密碼時代

第二次世界大戰期間,密碼學的發展遠遠超過了以往任何時代。在技術、理論以及應用上,都發生了革命性的變化。

我們先來看技術方面的變化。基於機械和電氣原理的加解密裝置全面取代了以往的手工密碼。如此一來,大大提高了加密解密的速度的同時,密碼的複雜度也得到了極大的提高,用傳統的手工方法已不可能破解這些機器密碼。

另外,密碼的進化也促進了解密的發展。破解密碼也實現了機械化和電氣化,甚至開始使用電子計算機,使得破解密碼的效率大大提高。人類從此進入了機器密碼時代。

我們再看理論方面的變化。大量的數學和統計學知識開始被應用於密碼的分析和破解,並獲得了極大的成功。於是,越來越多的數學家不斷加入密碼隊伍,取代了國際象棋冠軍、縱橫字謎高手和通曉多國語言的專家等,成為密碼戰場上的主力軍。

其次,是密碼學在應用上的變化。參戰各國都認識到了密碼在戰爭上的關鍵性作用,便紛紛研製和採用最先進的密碼裝置,建立最嚴密的密碼安全體系。

不僅如此,各國還投入了大量的人力和物力,集中最優秀的密碼學專家,想方設法破解敵國的密碼。比如,在《英國情報組織絕密行動》中寫到,英國國家通訊情報局的前身就是第一次世界大戰時期的兩個密碼破譯機構——英國海軍情報部的“第40號房間”和英國陸軍軍情一處B科。1919年,這兩個單位合併為政府密碼學校

這個時期,發生過很多可以稱之為傳奇的事件。電影《模仿遊戲》就講述了一段平凡之下卻又充滿魅力的故事。二戰期間,德國發明瞭一種看似不可破譯的密碼“ENIGMA,在整整 13 年裡,英國人和法國人都認為ENIGMA 是不可破譯的。

為此,英國政府成立了一個新的機構——英國政府密碼學校(就是上面說的那個),召集了一批民間數學家、邏輯學家進行秘密破解工作,圖靈就是其中之一。他率領著大約200多名精幹人員進行密碼分析,透過兩年努力,掌握了破譯該密碼的一整套方法,從而瞭解了德軍的動向,掌握了戰爭的主動權,為英美聯軍擊敗德國做出了突出貢獻。沒看過的朋友,有時間可以去看一下這部電影。

六、資訊時代的密碼學

第二次世界大戰時期的密碼學經歷了歷史上前所未有的一場革命。這場革命幾乎顛覆了傳統密碼學中所有的理論和方法,從而迎來了機器密碼的時代。然而誰也想不到,曾經如此輝煌的機器密碼時代,竟然在第二次世界大戰結束後不久,很快就終結了。

上世紀50年代開始,計算機技術突飛猛進,其超強的計算力,一時間讓所有的機器密碼都變得不堪一擊。

另外,1948年,美國通訊專家夏農創立了資訊理論,人們知道了所有的影象、文字、聲音、影片資訊,都可以轉換成數字形式,從而可以用功能強大的計算機來處理。到了上世紀70年代,美國政府已經擁有大量數字化的計算機檔案(如今,數字化檔案的數量已遠遠超過了傳統紙質檔案。Data Age 2025預計,2025年全球產生的資料量將達到175ZB,全球資料量將達到前所未有的高度。)如何保證那些機密的計算機檔案不被偷看、竊取和篡改?這是計算機時代密碼學的一個全新任務。

下面,將要講到的就是DES和AES資料加密演算法的故事。

1、DES(資料加密標準,Data Encryption Standard)

剛剛說到美國政府已經積累了大量的數字化檔案。為了它們的安全性,美國國家標準局同美國國家安全域性商量後,在1973年5月15日公開徵求能滿足一系列嚴格要求的計算機資料加密方案。可是最後徵集到的方案沒有一個滿意的。於是美國國家標準局在1974年8月27日再次發出徵求加密演算法的公告。這一次,IBM提交了一種演算法,並得到了美國國家標準局的任珂。在適當改進後,以“資料加密標準”(Data Encryption Standard)的名稱對外公佈,這就是著名的DES。

DES 是第一個處理計算機數字化文字加密的標準演算法。在當時技術條件下,這是一種安全性高、速度快、使用方便的演算法。

不過任何一個加密演算法,都可能會有安全性問題。而且DES的安全性問題從一開始就有爭議。因此,計算機專家和密碼學專家對DES的安全性極為關注,很多人設計了攻擊它的種種理論方案,但在 DES 公佈後的 20 多年內,並沒有人能夠實際攻破它。不過這些研究,倒是為推動了現代密碼學的發展做出了很大的貢獻。

不過有些事情總是有些戲劇性的。DES被破解就剛好是一例。

1997年,RSA電腦保安公司懸賞1萬美元獎勵首位破解DES密文的人。誰知TM才過5個月,就被一個名叫“挑戰DES”的團隊破解了。1998年,“電子前沿基金會 EFF”,一個旨製造的“DES 破解機”(DES Cracker),花了56個小時成功破解DES。1999年,DES破解機花了22小時15分鐘再次攻破DES。從此以後, DES不再安全。

2、AES(高階加密標準,Advanced Encryption Standard)

於是,在1997年1月2日,美國國家標準與技術研究院(前身就是那個美國國家標準局),宣佈徵集一個新的加密方案,以取代 DES。新方案將被稱為“高階加密標準”(Advanced Encryption Standard,AES)。在密碼學界廣泛參與的情況下,歷時三年,由比利時密碼專家德門和萊曼設計的方案Rijndael被選中為“高階加密標準”,AES就這樣問世了。

AES有三個不同的版本:AES-128、AES-192和AES-256,分別具有128位元、192位元和 256 位元金鑰長度,滿足了不同等級的安全需求。

不過和DES一樣,剛出來,對其安全性的研究就成為了熱點。各種方法層出不窮,就連AES的發明者之一萊曼也參與了進來。

七、密碼學的新方向

1、公鑰密碼系統的提出

後來因為因特網的發展,對於網路通訊的安全亟需解決。

1976年,美國斯坦福大學電氣工程系的研究員迪菲和教授赫爾曼聯名發表了劃時代的論文《密碼學的新方向》。文中說明了公共計算機網路通訊安全的根本問題,還提出瞭解決問題的革命性方案。

網路通訊有兩大安全問題,那就是保密和認證。而解決方案就是“公鑰密碼系統”

2、RSA的提出

後來,在1978年,美國麻省理工電腦科學實驗室的三位研究員裡維斯特(Ronald L.Rivest)、沙米爾(Adi Shamir)和艾德萊曼(Leonard Adleman),聯名發表了題為《獲得數字簽名的方法與公鑰密碼系統》的論文,該文首次提出了一種能完全實現迪菲-赫爾曼公鑰密碼系統功能的實用方法,後被稱為“RSA方法”。

可為什麼叫RSA呢?你看我這次沒有給出全稱。細心的朋友可能發現了,RSA是三位作者姓的首字母(不然我為什麼突然在人名後加了英文名)。

3、ECC的提出

RSA提出後,人們才發現原來密碼學還可以這樣搞,於是一系列更加高深的數論和代數學工具開始被用於密碼學領域。

1985年,美國數學家柯布利茲和米勒各自獨立地提出了一個利用有限域上橢圓曲線解的Abel群結構性質的公鑰密碼系統,這就是“橢圓曲線加密法”(Elliptic Curve Cryptography,ECC)。

八、現在還是未來

直到現在,DES、AES、RSA、ECC等各種各樣的加密演算法依然應用於我們的生活中。有人擔心量子計算機會對目前的密碼學造成極大的衝擊,讓全球應用“傳統”加密演算法的系統徹底地暴露在人們眼前,可又有人說量子密碼演算法不是已經在研究了嗎,美國國家標準技術研究所NIST也在進行後量子密碼演算法徵集了啊?

人類對於加密演算法的探索從未止步,無論是因為藝術、軍事政治還是商業需求的原因。不過正因如此,我們的加密演算法才能遍地開花。

量子通訊又或者是量子加密演算法,如星空般深邃的,它們究竟會以何種姿態驚豔這顆藍色星球上的人類,這是現在,也是未來。讓我們拭目以待。

免責聲明:

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

推荐阅读

;