密碼學科普|那些不可思議的古典密碼學
PlatON云图
2021-03-30 10:40
本文约3533字,阅读全文需要约14分钟
PlatON帶你認識密碼學。


作者| PlatON技術籌備組Silas

配圖來源| Unsplash


現代密碼學(Modern cryptography)的主要差別在於計算機的使用,一般來說,古典密碼學是基於字符的,而現代密碼學是基於二進制位的。

密碼學的概念與人們平時登錄網站、使用銀行賬戶的「密碼」並不相同。這些用於身份認證的「密碼」,更準確的翻譯是通行詞(password),它是現代密碼學的諸多應用之一。

一般來說,古典密碼學主要包括兩類,即替換和置換。

置換法依照一定的規則,改變原始信息中的字母排列順序;替換法將原始信息中的字母按照一定的規則替換成其他字母。置換法與替換法的安全性較差,古阿拉伯的學者們開創了破譯加密信息的科學— — 密碼分析學,通過頻率分析的方法破解替換式加密法。

代換

代換密碼是將明文中的字符替代成其他字符,即替代轉換,若整個加密過程中每個字符採用同一張表替代,則為單表代換密碼,類似的,若整個加密過程中每個字符採用不同的表替代,則為一級標題一級標題

凱撒密碼


凱撒密碼(Caesar cipher)就是將明文中的所有字母都在字母表上向後(或向前)按照一個固定數目進行偏移後被替換成密文。例如,當偏移量為3時,所有的字母A將被替換成D,B變成E,以此類推。明文Hello World的加密過程如下:

  • 取偏移量為3

  • 計算H的後3位為K

  • 以此類推

  • 密文為:Khoor Zruog

類似的,解密過程如下:

  • 計算K的前3位為H

  • 以此類推

  • 一級標題

一級標題

培根密碼

培根密碼(Bacon's cipher)加密時,明文中的每個字母都會轉換成一組5個英文字母。其轉換依靠下表:

一級標題

一級標題

維吉尼亞密碼

維吉尼亞密碼是使用一系列凱撒密碼組成密碼字母表的加密算法,

這一表格包括了26行字母表,每一行都由前一行向左偏移1位得到。行為明文行,列為密鑰列,密文位於表格內。明文HELLOWORLD的加密結果如下:

  • 選擇某一關鍵詞作為密鑰,如SECRET

  • 對於明文第1個字母H,對應密鑰的第1個字母S,於是使用表格中S行字母表進行加密,得到密文第一個字母Z

  • 以此類推,若密鑰長度小於明文長度,則轉到密鑰第1個字母繼續循環,最終得到密文ZINCSPGVNU

類似的,解密過程如下:

  • 根據密鑰第1個字母S所對應的S行字母表,發現密文第1個字母Z位於H列,因而明文第1個字母為H

  • 一級標題

一級標題

一級標題

一級標題

柵欄密碼


去掉空格:HelloWorld

  • 去掉空格:HelloWorld

  • 5個一組:Hello,World

  • 取出每組第1個字母:HW

  • 取出每組第2個字母:eo

  • 以此類推

  • 連在一起:HWeolrllod

  • 加上適當空格:HWeol rllod

去掉空格:HWeolrllod

  • 去掉空格:HWeolrllod

  • 分成5欄:HW、eo、lr、ll、od

  • 取出每欄第1個字母:Hello

  • 依次類推

  • 連在一起:HelloWorld

  • 一級標題

一級標題

其他

一級標題

一級標題

豬圈密碼


豬圈密碼(Pigpen cipher),又稱共濟會密碼(Masonic cipher),是一種以格子為基礎的簡單代換式密碼。下圖為豬圈密碼中所用符號與26個英語字母之間的對應關係:

明文X MARKS THE SPOT的加密結果如下:

在長達一千多年的時間裡,古典密碼學以置換法與替換法為基礎不斷演進。以維吉尼亞密碼為代表的多字母表替換式加密法輪流使用多個不同的替換式密碼表,依次對明文中的字母進行加密。第二次世界大戰時德軍使用的「恩尼格瑪」是一種基於復雜的多表替換加密原理的機械式密碼機,但最終由於自身加密算法的缺陷,被圖靈設計的「炸彈」攻克。

休·懷特摩爾創作的戲劇“破譯密碼”的內容為艾倫·圖靈的生活,艾倫·圖靈是在二戰中幫助英國破譯恩尼格瑪密碼機的密碼的最大功臣。

英國暢銷書作家羅伯特·哈里斯於1996年出版的小說“恩尼格瑪”講述的是布萊切利園的密碼學家們破譯恩尼格瑪的過程。 2001年這本小說被拍成了電影“恩尼格瑪”。

由喬納森·莫斯托拍攝並於2000年上映的電影U-571講的是一群美國潛艇兵為繳獲一台恩尼格瑪密碼機而搶了一艘德國潛艇後的故事。電影中的恩尼格瑪密碼機是一個收藏家手裡的真品。這部電影的情節並沒有嚴格地按照歷史發展,英國皇家海軍在1941年擊敗德軍潛艇U-110號最早獲得德國海軍密碼機,也是獵殺U-571電影的真實版本,美國祇是在1944年諾曼底登陸之前繳獲了一艘U型潛艇。

2014年上映的電影《模仿遊戲》講述了艾倫·圖靈等英國的數學家、邏輯學家協助軍方破譯恩尼格瑪密碼機的過程。

2019年網易推出的非對稱對抗懸疑手游《第五人格》中求生者陣營需要破譯五台密碼機讓大門通電輸入密碼逃生所需破譯的五台密碼機就是恩尼格瑪密碼機。

置換式與替換式加密法的弱點在於沒能完全消除密文中有關明文的某些特徵,保留了明文中的某些信息。奧古斯特·柯克霍夫在19 世紀提出的柯克霍夫原則(Kerckhoff's Principle)概括性地總結了加密算法應遵循的設計原則:即使加密系統的各個環節都是公開知識(Public knowledge) ,只要密鑰未被洩漏,加密系統都應該是安全的。

加密算法的安全性問題本質在於:如何降低攻擊者在了解加密算法,並擁有足夠長的密文片段的前提下,猜測出正確密鑰的可能性?

1948 年,香農創立了信息論,並在次年的一篇論文中從數學的角度討論了加密系統,人們開始從科學的角度探究密碼學的奧秘。


歡迎加入PlatON Network技術研究社區

Discord開發者社群

https://discord.com/invite/jAjFzJ3Cff


Reference:

[1] https://howiezhao.github.io/2018/08/10/classical-crypto/

[2] https://www.chainnews.com/articles/577594859080.htm

[3] The Code Book, Simon Singh (1999)

[4] The Code Breakers, David Kahn (1996)

[5] https://en.wikipedia.org/wiki/Enigma_machine


PlatON云图
作者文库