密碼學/古典密碼學
密碼學有著悠久而豐富多彩的歷史,從公元前一世紀的凱撒加密到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]
- ↑ Field Manual 34-40-2 "第 5 章:單字母多字母替換系統".
- ↑ "音節密碼".