替代密碼
單表替代
每個字母對應的密文字母固定。
- 一般單表替代
金鑰空間n = 26!
- 移位密碼
凱撒密碼就是金鑰為3的移位密碼。 - 仿射密碼
加密:k1*m + k0 (mod 26)
要求k1與26互素,避免出現多個明文對應同樣的密文。 - 金鑰短語密碼
金鑰是一個短語(單詞),寫在替代表最前端,整張替代表去掉所有重複字母。
多表替代
- 維吉尼亞密碼
a-z用0-25編號,明文對應數字按位加上金鑰(長度不夠就迴圈使用)對應數字mod26,得到的數字譯成字母就是密文。 - 希爾密碼
金鑰是一個n*n矩陣,將明文分為長度為n的組,金鑰矩陣乘上每個分組矩陣,結果mod26得到密文對應矩陣,按原順序拼成完整密文。 - 一次一密密碼
難以做到。 - Playfair密碼
基於一個5*5方格。
金鑰去除重複字母按行從左上開始填入,具體類似於金鑰短語密碼填替換表的方法。i和j填在同一格。
明文兩個分為一組。遵循下述複雜規則:
- 若兩字母同行,分別加密為右側緊鄰字母。
- 若兩字母同列,分別加密為下方緊鄰字母。
- 若不同行不同列,分別加密為由兩字母確定的矩形的同行字母。
- 若兩字母相同,則在兩字母中間插入一個事先約定的字母,按上述規則處理。
- 若明文長度為奇數,在末尾插入事先約定字母。
- 上下邊界、左右邊界進行迴圈。
置換密碼
週期置換密碼
給出一個置換金鑰Π,按金鑰長度將明文分組,每一組按照金鑰進行置換後按順序拼成密文。
列置換密碼
給出一個置換金鑰Π,明文按金鑰長度為一行寫出,按列執行金鑰的置換。
轉輪機密碼
慢、中、快三個轉子,慢端輸入明文,快端輸出密文。每次按鍵,快端向下移動一個位置,26次後中端移動,中端移動16次後慢端移動。加解密雙方需要使用同樣的轉輪機。