萬曆到鹹豐的密碼學:維吉尼亞加密法

2021-02-13 加密二鍋頭

今天的內容是密碼學步入近代化的前奏,雖然還沒有到比特幣區塊鏈的加密算法,但是,今天出現了一個真正意義上的東西:鑰匙。請認真看,文中的舉例是我自己在Excel表格中做出來的,為的是簡單明了,你一看就明白了。

 

本文將從法國外交官講到鍊金術士,從明朝萬曆十五年講到鹹豐十年,認真的。——前言

 

頻率分析法出來後,移位和替換法不好用了,那麼怎麼才能消解掉這種概率呢?

 

萬曆十五年


「小高呀,最近有看什麼書了?」

「最近在看黃仁宇的《萬曆十五年》」

「咱們小高也看萬曆十五年」

「就覺得這本書把有明一代的歷史講明白了」

「看歷史要對比要縱橫著看,那你知道在歐洲的法國萬曆十五年的時候發生了什麼嗎」

「怎麼叫縱橫著看歷史,還真不知道呢」

「你知道維吉尼亞加密法嗎?」

「不知道呀」

「小高,光太亮了,你把窗簾拉上,我給你好好講講維吉尼亞加密法」

——改編自電視劇《人民的名義》

 

大家都聽說過或者看過一本書叫做《萬曆十五年》(萬曆十五年就是1587年),作者黃仁宇先生寫的是那一年明朝由盛轉衰,維吉尼亞加密法誕生於萬曆十四年,也就是1586年,那個時候這種加密法如果傳到中國就算是奇門遁甲的一類了。

 

這倒不是開玩笑,因為那個時候歐洲的化學家叫做「鍊金術士」,化學家這個詞要到兩百年之後,化學的祖師爺拉瓦錫先生出生後才有。中國也有鍊金術,比如東晉葛洪、南宋王重陽都是鍊金術士或者煉丹家。中國的煉丹術沒有發展成化學,中國的周易八卦也沒發展成密碼學。所以,過兩百年後要挨打的。

 

言歸正傳,維吉尼亞加密法發明人是一名法國外交官,叫布萊斯·德·維吉尼亞,也就不要奇怪,那個時期的外交官經常在一個叫做「黑房廳」的地方把信件加密再發出去,有時候,黑房廳的同事還會接外面的活兒,加密解密信件,是要收費的。

 

維吉尼亞加密法算是第三代加密法,主要目的是對抗頻率分析的解密,使用外交家的這個加密法之後,字母出現的概率就會消失不見。

 

怎麼做到呢?很簡單,同一個原文字母在信件中出現的時候,卻是不同的密文表達。

直接上圖吧。

 

這就是維吉尼亞加密法的密碼錶。

這是一個26X26的表格,第一行和第一列都是26個英文字母。第一行代表著原文信息,第一列代表著加密的鑰匙。兩者交匯就是密文。

 

估計還是有點懵,這樣,鑰匙簡單一點,就一個字母C,那麼,ABCDEFG字母表的順序也是這個表格的順序,C就是第三個字母。那麼,第一排的D加密後得到什麼呢?

就是F,相當於移位兩位,D變成F。這個圖中的第一排的D是原文,第一列中的C就是秘鑰,箭頭匯合之處的F就是加密後的密文。同樣的,如果原文是C,而鑰匙是F,那麼密文就應該是H

 

那麼,如果我的鑰匙不是一個字母呢,而是幾個字母呢,比如說,ABC、ABC、ABC就這麼循環下去,但是呢,這個ABC順序性太強不適合做鑰匙,可以是CASH,COIN,你看BCH也不適合做鑰匙,因為B和C挨著加密性就弱了。

 

你看這樣一串字母看得懂嗎?CVGDQPO

當然看不懂,這就是加密後的樣子,當然看不懂,我現在告訴你鑰匙是BCH。

也就是說BCH三個字母循環作為鑰匙。你能解出原文嗎?

 

好了,第一個密文是C,鑰匙中對應的是B,先在表格中找鑰匙也就是第一列,也就是B,然後往右邊看到C再往上就是B了,這幾個字母離得太近,我找個遠點的,密文中的J是第三個字母,對應循環中的bch也就是h,所以h是鑰匙,看下圖的箭頭順序,就知道怎麼破解的了。

 

好了,下面我把Excel表格中做出來的例子,直接呈現給大家,再揣摩一下。

 

以上加密法是不是很不錯呢?

不是的,以上加密法看似精巧,卻犯了一個大忌,太慢了加密法要兼顧安全性和效率性。像剛剛這麼搞加密解密,寫信的人非常累,解密的人也非常累。B/C/H這個鑰匙的傳遞還要保密,如果別人知道了也麻煩。對稱加密法就是這樣,對稱加密法是什麼?就是加密和解密是可逆的,只要給我鑰匙,給我點時間,我隨時可以解密——這是後話。

 

鹹豐十年開始應用

所以呢,這個加密法發明出來之後的兩百年,基本沒有什麼大用,只是小密圈子的娛樂遊戲。後來到了美國南北戰爭時期(1861年到1865年)這個加密法才大規模的使用,原因是後來有了機械法,為了解密專門做了機器破解,這樣的機器未來也會有一些很著名的,比如摁你個馬機(恩尼格瑪密碼機德語發音Enigma),也就是說法國人在明朝萬曆年間發明出來這個加密法,到了1860年(也就是鹹豐十年)火燒圓明園之後,才廣泛使用。

 

為什麼呢?答案是工業革命。1860年的時候蒸汽機有了。電動機也有了,再枯燥的體力破解的活兒都能交給機器,設計好破解規律就好了。

 

從這一點來說,當時的清政府就單單在密碼學上就落後了一大截。

如果雙方戰爭再重演一次,很可能是英法聯軍截獲清軍情報後,直接破解,清軍截獲英法聯軍文件後,直接懵逼。這仗還怎麼打?先不說西方船堅炮利,就這一條密碼學你就得廢了。而且,清軍還沒話說,說什麼!

 

背出來《孫子兵法》「知己知彼,百戰不殆」又怎麼樣,怎麼樣知己知彼,沒有近代科技,不懂破譯的方法,你啥都不知道。祖先給你方法,你得把路徑找出來。

 

其實,從本文的脈絡,您也看出來下面的密碼學發展了。

 

密碼學起源於戰爭也會回歸於戰爭,從隱藏法、移位替換法到今天講的維吉尼亞加密法無時無刻不是伴隨著戰爭。下面的密碼學要大發展了,以上的加密還是傳統,不夠神乎其技。為什麼大發展?第一次世界大戰,第二次世界大戰要來了,沒有世界大戰,人類不會這麼快搞出來核裂變;沒有世界大戰,密碼學也不會這麼突飛猛進的發展;沒有經濟危機,中本聰發布比特幣可能還需要一些時間。

 

歷史的車輪滾滾向前,如果想從另外一個角度看待所處的世界,從另外一個角度看待目前的區塊鏈行業,請稍微懂一些密碼學。

 

我之所以從法國外交官講到鍊金術士,從明朝萬曆十五年講到鹹豐十年,一方面密碼學的發展中國在之前掉隊了(注意是之前),一方面是為了增加一些趣味性,只有科技的理念進入到每個人的腦子裡,才會迎來真正的大發展。還有一點,密碼學本身是很枯燥的,隱秘的,大家不關注的。

 

密碼學從來都不是顯學,就像一些真相永遠在歷史的角落裡

 

江湖一杯酒,加密二鍋頭。

相關焦點

  • 密碼學初探:隱藏信息的藝術
    這一方法由法國外交官維吉尼亞所發揚光大,發明了「維吉尼亞加密法」。維吉尼亞加密法採用26套不同的密碼錶,對應密鑰為0~25的凱撒挪移式密碼錶,並以從A~Z的英文字母表示。維吉尼亞加密法的密鑰空間幾乎是無限的,一度被視為不可破譯的,是一千年以來古典密碼學的重大突破。但英國發明家查理`巴貝奇(Charles Babbage)不認為破譯維吉尼亞密碼是一項不可能完成的任務。當人們開始了解維吉尼亞密碼的加密算法,它的致命弱點也隨之浮現。維吉尼亞密碼用於加密的基礎密碼錶只有26種,而且都是已知的凱撒密碼錶。
  • 29.Python密碼學入門之八:手把手破解維吉尼亞加密後的英文詩
    同時,也不能像破解簡單替換加密那樣,通過計算字母出現的頻率,和字母的單詞模式來破解,因為經過維吉尼亞加密之後,字母頻率和單詞模式都變化了。上一篇的最後,給了一首經過維吉尼亞加密之後的英文詩,這一篇,我們就來演示如何來破解這首詩。
  • 密碼學—一場智力的追逐
    密碼學的英語單詞是 Cryptograghy,是由希臘單詞 Kryptos(隱藏)和 Graphin(寫)派生出來的,最初的意思是用來隱秘的傳遞信息。密碼學,從第一代的隱藏法,第二代的移位法和替代法,到第三代的維尼吉亞加密法,到第四代的恩尼格瑪機, 再到第五代的魔王加密系統, 第六代的RSA加密系統, 以及第七代的量子加密。
  • 密碼學掃盲:加密、認證、公鑰、私鑰
    密碼學的概念容易被搞混淆,對大多數非專業人員而言,的確也情有可原。
  • Python 密碼學入門書籍
    今天,就和大家推薦一本免費密碼學編程書籍,還是使用Python程式語言的——《Python密碼學編程》這是是一本有關密碼學、計算機編程和Python程式語言的免費入門教科書,由舊金山的軟體開發人員Albert Sweigert編寫。
  • 密碼學基礎之一:對稱加密
    前言密碼學方面的書籍文獻很多很多,這些書籍很多都是英文的,而且假定讀者有一些數學基礎,對於非專業讀者來說
  • 一文概覽密碼學發展史、基本原理與常見算法
    如果你要成為密碼學家,那可能是的,畢竟密碼學家的工作就是構造極難破解的加密算法。但是加密方法在當今世界的用途已經非常普遍了,從保護用戶的信用卡信息、保護遠程用戶的網絡連接,到保護智力產權、防止盜版,密碼學無處不在。 我這篇文章的目的,就是把令人望而生畏的密碼學轉述成大白話,讓大家都能理解這些方法是如何用來加密數據的。
  • 密碼學有什麼用?
    最後,密碼學不像網絡攻防網上有很多資源可以學習,能把密碼學搞清楚的人很少,能把密碼學講清楚的人更少,如果沒有一個好的老師,很容易被勸退。密碼學天花板也很容易摸到,因為大多數人足夠平庸,只有少數人可以破解現在流行的算法,少數人可以發明創造基礎理論。但是呢,密碼學跟其他研究方向的界限是模糊的。因為只要和安全相關,就很可能要涉及到密碼學。密碼學是信息安全專業的核心基礎支撐,貫穿全部。
  • 《Cypher》評測: 密碼學入門手冊
    經過仔細的閱讀,恍然間你發現了文字間埋藏的秘密,當你將那個口令輸入到顯示屏上時,你面前的大門開啟了。走進大門,你發現自己來到了一所聖潔的密碼學歷史博物館。博物館劃分為7個區域——6個主題區域和1個額外挑戰區域,自古老的隱寫術到現代的數字加密,可以說星羅萬象。
  • 區塊鏈中的那些密碼學
    密碼學步入公眾領域密碼學追溯歷史可到古巴比倫時代,有數千年的歷史,然主要應用於軍事、外交和情報領域,密碼學進入公眾領域,還源於兩件事:密碼學發展歷程密碼學按算法思想可分為:古典密碼學、現代密碼學、公鑰密碼學。
  • 十分鐘學密碼學
    字數:3337閱讀:10分鐘難度:8前兩天聊到密碼學,感興趣的人還挺多的。
  • UK DN AS NN WG UX AA:這是一條加密推送!
    德國修道院院長約翰尼斯·特裡特米烏斯(Johannes Trithemius)是密碼學方面的第一本印刷著作《Polygraphia》的作者。>16世紀時,義大利密碼學家Giovan Battista Bellaso 意識到使用多種字母表加密信息的威力,便開始使用下圖所示的字母表進行加密:由吉奧萬·巴蒂斯塔·貝拉索(Giovan
  • 密碼學的骰子——隨機數
    像常用到的C語言的rand庫和Java的java.util.Random類,就是採用了線性同餘算法生成隨機數。雖然名字好像不好聽,但偽隨機數已經滿足大多數應用場景的需求了。但對於密碼學來講,偽隨機數就遠遠不夠了。除了隨機性,密碼學要求的隨機數還要具備不可預測性。我們把具有這兩個性質的隨機數叫做密碼學安全的偽隨機數或強偽隨機數。
  • 區塊鏈和密碼學有何關係?
    密碼學早期主要用於軍事領域,隨著網際網路發展,民用方面涉及電子商務、銀行支付、數字版權等領域也普遍得到應用。 最近幾年,區塊鏈和加密貨幣興起,密碼學的發展又進入了一個新的階段,區塊鏈的底層是密碼學技術,但是也涉及到經濟學。
  • 衝量網絡|泛談密碼學
    密碼學是研究如何隱密地傳遞信息的學科,是數學和計算機科學的分支,和資訊理論也密切相關。而網際網路的出現和繁榮,密碼學技術得到了飛躍式發展,而隨著區塊鏈和可信計算等先進技術的出現,更是將密碼學的商業價值和技術發展速度提升到了前所未有的高度。
  • 密碼學如何保障郵件安全?
    密碼學在郵件中的應用由來已久,信息加密一直伴隨著網際網路的發展。在第二次世界大戰中,納粹德國發明了精密的機械加密機Enigma用於電報加密,而同盟國通過破解Enigma一度影響戰爭進程。如今隨著信息技術和密碼學的發展,現代密碼學在郵件系統中也有了更加成熟和多樣化的應用。
  • 乾貨學習——密碼學之塊加密
    加密技術是網絡安全技術的基石。(本描述來源百度百科:https://baike.baidu.com/item/數據加密技術/4804539)常見的加密算法可以分成三類,對稱加密算法,非對稱加密算法和Hash算法。
  • 密碼學技術何以為信?深究背後的計算困難性理論
    20世紀末,隨著網際網路的普及,大量敏感數據在網絡上進行傳輸,產生了大量的數據內容保護的需求,密碼學技術也因此得到飛速發展。在現代密碼學中,關於不對稱性,大家最熟悉的概念莫過於「公鑰」和「私鑰」。以加密通信為例,主人公小華要向他的朋友美麗通過加密的方式發送一份電子郵件,可以先找到美麗的公鑰,使用公鑰對郵件內容進行加密,並將加密後的得到密文發送給美麗。
  • 科普 | 極簡橢圓曲線密碼學入門
    本文預設讀者的閱讀目的是想知道為什麼 ECC 是一個有效的密碼學工具及其基本原理。我的目標是給出廣義的解釋,我將省略一些證明和實現細節,聚焦於抽象的原理。- 橢圓曲線示例 -ECC 有什麼用途?ECC 是一種加密數據的方法,只有特定的人才能對其進行解密。
  • 量子計算之於密碼學,是威脅還是救贖?
    還有一個值得思考的問題是,現在的加密技術真的已經無懈可擊了嗎?其實,量子計算的發展就有可能讓現有的加密技術失效。而我們對此束手無策了嗎?牛津大學量子物理博士,騰訊公司歐洲首席代表葛凌,向我們解釋了量子計算對現代密碼學的威脅、量子計算到來的時間,以及最後我們還可能要利用量子力學來應對量子計算對現有密碼學的威脅。】