應用密碼學——古典密碼

ww0809發表於2024-03-08

替代密碼

單表替代

每個字母對應的密文字母固定。

  1. 一般單表替代
    金鑰空間n = 26!
  2. 移位密碼
    凱撒密碼就是金鑰為3的移位密碼。
  3. 仿射密碼
    加密:k1*m + k0 (mod 26)
    要求k1與26互素,避免出現多個明文對應同樣的密文。
  4. 金鑰短語密碼
    金鑰是一個短語(單詞),寫在替代表最前端,整張替代表去掉所有重複字母。

多表替代

  1. 維吉尼亞密碼
    a-z用0-25編號,明文對應數字按位加上金鑰(長度不夠就迴圈使用)對應數字mod26,得到的數字譯成字母就是密文。
  2. 希爾密碼
    金鑰是一個n*n矩陣,將明文分為長度為n的組,金鑰矩陣乘上每個分組矩陣,結果mod26得到密文對應矩陣,按原順序拼成完整密文。
  3. 一次一密密碼
    難以做到。
  4. Playfair密碼
    基於一個5*5方格。
    金鑰去除重複字母按行從左上開始填入,具體類似於金鑰短語密碼填替換表的方法。i和j填在同一格。
    明文兩個分為一組。遵循下述複雜規則:
  • 若兩字母同行,分別加密為右側緊鄰字母。
  • 若兩字母同列,分別加密為下方緊鄰字母。
  • 若不同行不同列,分別加密為由兩字母確定的矩形的同行字母。
  • 若兩字母相同,則在兩字母中間插入一個事先約定的字母,按上述規則處理。
  • 若明文長度為奇數,在末尾插入事先約定字母。
  • 上下邊界、左右邊界進行迴圈。

置換密碼

週期置換密碼

給出一個置換金鑰Π,按金鑰長度將明文分組,每一組按照金鑰進行置換後按順序拼成密文。

列置換密碼

給出一個置換金鑰Π,明文按金鑰長度為一行寫出,按列執行金鑰的置換。

轉輪機密碼

慢、中、快三個轉子,慢端輸入明文,快端輸出密文。每次按鍵,快端向下移動一個位置,26次後中端移動,中端移動16次後慢端移動。加解密雙方需要使用同樣的轉輪機。

相關文章