跳轉到內容

密碼學/古典密碼學

來自華夏公益教科書,開放的書籍,為開放的世界

密碼學有著悠久而豐富多彩的歷史,從公元前一世紀的凱撒加密到20世紀。


古典密碼學主要基於兩個原則:置換和替換。

置換密碼

[編輯 | 編輯原始碼]

首先讓我們看看置換,它指的是改變訊息中字母的位置,比如簡單的反向書寫

    Plaintext: THE PANEL IN THE WALL MOVES
    Encrypted: EHT LENAP NI EHT LLAW SEVOM

或者像更復雜的置換一樣

    THEPAN    
    ELINTH     
    EWALLM
    OVESAA

然後取列

    TEEO HLWV EIAE PNLS ATLA NHMA

(額外的字母被稱為填充符) 置換的理念不是隨機化它,而是將其轉換為不可識別的形式,並且可以使用可逆演算法(演算法只是一個過程,可逆的,以便你的通訊者可以閱讀資訊)。

我們將在後面的章節中更詳細地討論置換密碼,密碼學/置換密碼

替換密碼

[編輯 | 編輯原始碼]

第二個最重要的原則是替換。也就是說,用一個符號替換明文中的字母(或單詞,甚至句子)。俚語有時甚至可以成為一種密碼(用符號替換你的明文),你是否曾經想知道為什麼你的父母不明白你?然而,俚語不是你想要用來長期儲存秘密的東西。在二戰期間,有納瓦霍族密碼員在各部隊之間傳遞資訊。據我所知(請有人驗證這一點),納瓦霍語是一種非常獨有的、幾乎不為人知且未被書寫的語言。所以日本人無法破譯它。

即使這是一個非常鬆散的替換示例,只要有效就行。

凱撒密碼

[編輯 | 編輯原始碼]

最基本的一種加密方法是使用凱撒密碼。它僅僅是將字母表移位幾個字元,然後匹配字母。

替換密碼的經典示例是移位字母表密碼

   Alphabet: ABCDEFGHIJKLMNOPQRSTUVWXYZ
     Cipher: BCDEFGHIJKLMNOPQRSTUVWXYZA
    Cipher2: CDEFGHIJKLMNOPQRSTUVWXYZAB
        etc...

示例:(使用密碼 2)

          Plaintext: THE PANEL IN THE WALL MOVES
          Encrypted: VJG RCPGN KP VJG YCNN OQXGU

如果你第一次看到這個,它可能看起來是一個相當安全的密碼,但實際上並非如此。事實上,它本身非常不安全。在1500-1600年代,它是最安全的(主要是由於許多人都是文盲),但一位名叫(老什麼來著)的18世紀的人發現了一種方法來破解(找出隱藏的資訊)他發現的所有這種型別的密碼,他發現了頻率分析。

我們將在後面的章節中更詳細地討論替換密碼,密碼學/替換密碼

頻率分析

[編輯 | 編輯原始碼]

在移位字母表密碼或任何簡單的隨機密碼中,密碼中的同一個字母會替換訊息中的所有同一個字母(例如,'A' 替換明文中的所有 'D',等等)。弱點在於英語使用某些字母的頻率高於其他任何字母。'E' 是最常見的,等等。這裡有一個練習,統計這篇文章中每個字母的出現次數。你會發現,在上句話中,有 2 個 'H',7 個 'E',3 個 'R',3 個 'S',等等。'E' 毫無疑問是最常見的字母;以下是其他頻率 [頻率表|http://rinkworks.com/words/letterfreq.shtml]。基本上,你嘗試用不同的符號替換字母(最常見的用 'E',等等)。

      Encrypted: VJG TCKP KP URCKP

首先尋找只有有限的單詞選擇的短語,例如 'KP',它可能是 at、in、to、or、by 等。讓我們選擇 in。用 'I' 替換 'K',用 'N' 替換 'P'。

      Encrypted: VJG TCIN IN URCIN

接下來選擇 VJG,它最有可能的是 the(由於 'the' 在正常句子中的高頻率,檢查前面幾個句子)。

      Encrypted: THE TCIN IN URCIN

一般來說,在長訊息中更容易找到,明文是 'THE RAIN IN SPAIN'

我們將在本書後面的部分“第三部分:密碼分析”中討論許多不同的方法來“攻擊”、“破解”和“解決”加密的訊息,其中包括關於 密碼學/頻率分析 的更詳細的部分。

結合置換和替換

[編輯 | 編輯原始碼]

更安全的加密是置換替換密碼。

以上面訊息的加密形式為例

      Encrypted:VJG RCPGN KP VJG YCNN OQXGU

現在對它進行螺旋置換

          VJGRC
          NNOQP
          CAAXG
          YUNGN
          GJVPK

訊息從右上角開始,螺旋形到中心(同樣,AA 是填充符)。現在取列

       VNCYG JNAUJ GOANV RQXGP CPGNK

現在它更能抵抗頻率分析,看看我們之前所做的事情,開始識別模式會產生

       TNCYE HNAUH EOANT RQXEN CNENK

對破解密碼的人來說是個問題。


多字母系統

[編輯 | 編輯原始碼]

絕大多數古典密碼是“單字母的”——它們一次加密明文中的一個字母,並且每個明文字母被加密成一個相應的密文字母。

多字母系統是指密文單元的長度超過一個字元的系統。多字母系統的主要型別包括:[1]

  • 雙字母系統:每個明文字母對應 2 個密文字母
  • 雙數字系統:每個明文字母對應 2 個密文數字
  • 三字母系統:每個明文字母對應 3 個密文字母
  • 三數字系統:每個明文字母對應 3 個密文數字
  • 單數-雙數系統,也稱為跨越棋盤系統:一些明文字母對應 1 個密文數字,其餘明文字母對應 2 個密文數字。
  • 雙字母變體系統和雙數字變體系統:多個密文值解碼為同一個明文字母(同音替換密碼)
  • 音節方格系統:2 個密文字母或 2 個密文數字解碼為一個完整的音節或一個明文字元。[2]
  1. Field Manual 34-40-2 "第 5 章:單字母多字母替換系統".
  2. "音節密碼".
華夏公益教科書