凱撒密碼加解密過程與破解原理

Mysticbinary發表於2024-07-10

目錄
  • 無規律的加密過程
  • 無規律的解密過程——破譯
  • 有規律的加密過程
  • 有規律的解密過程——破譯
  • 練習


凱撒密碼(英語:Caesar cipher),或稱凱撒加密、凱撒變換、變換加密,是一種最簡單且最廣為人知的加密技術。 凱撒密碼是一種替換加密技術,明文中的所有字母都在字母表上向後(或向前)按照一個固定數目進行偏移後被替換成密文。 例如,當偏移量是3的時候,所有的字母被替換,比如A將被替換成D,B變成E,以此類推。

無規律的加密過程

使用密文字母表,這種表格的字母(可能)是無規律的、隨機的。加解密雙方都需要拿到密文字母表。

舉例:
假設我們通訊時只使用26個英文字母(不區分大小寫)

image

(密文字母表的順序可以隨機擺放)

當你需要加密的明文:I LOVE YOU
拿著密文字母表,對照著密文字母表對映就可以了。
變成的密文:       L ORYH BRX
拿著密文字母表,對照著密文字母表解密就可以了。

無規律的解密過程——破譯

原理:

  1. 考慮英文字母的使用頻率規律,嘗試用高頻對映高頻;
  2. 結合排除法。

實際案例:
TODO

有規律的加密過程

就是字母表向左或向右移動多少位,用一個圖表示,方便理解:
image
用兩個圓紙盤寫好26個字母,相互疊起來,
外面的圓盤代表明文,
內部的圓盤代表密文,
在初始階段,外A —— 內A,外B —— 內B,...都要一一對應上。

image
比如,向右移動3位,外A —— 內D 。

用表格表示:
image

比如說:

當你需要加密的明文:I LOVE YOU
你的加密方式,向右移動3位:
變成的密文:       F IRYH BRX

加密只需要注意兩個點:

  • 偏移方向
  • 偏移量

有規律的解密過程——破譯

我們知道明文就是透過偏移方向+偏移量進行加密,那麼如果是破譯者,怎麼能知道加密時使用了什麼偏移量?

比如說給你一段使用凱撒加密過的文字,你怎麼解密出來?
Prqd Olvd Lq Iudqfh

破譯原理:

  1. 統計出現最高頻的字母;
    用凱撒密碼編寫的密文,字數越多就越容易破譯;
  2. 要猜出字母究竟位移了多少位,要考慮英文字母的使用頻率規律,嘗試用高頻對映高頻。
    當然還可以暴力破解,畢竟只能位移1-25次,那就1-25位移全部羅列出來,哪個結果最像人寫的,就是正確的。

練習:

  1. 統計
    我使用線上工具:https://uutool.cn/str-statistics/
    image

  2. 對映
    參考下面的字母高頻使用表格:
    英文字母按使用頻率從高到低排序,第一位是e、第二位是t,...
    image

    q——e ,自己用圓盤計算了一下,向右位移14次,嘗試解密:Bdcp Axhp Xc Ugpcrt ,看著不對。
    ...
    d——e ,自己用圓盤算了一下,向右位移25次,嘗試解密:Prqd Olvd Lq Iudqfh ,看著不對。
    d——t ,自己用圓盤算了一下,向右位移16次,嘗試解密:Zban Yvfn Va Senapr ,看著不對。
    d——a ,自己用圓盤算了一下,向右位移3次,嘗試解密:Mona Lisa In France ,恭喜!看著對了。
    過程可以使用線上工具:http://www.atoolbox.net/Tool.php?Id=778

練習

請破解:

RD IJFW OJSSD
QTANSL DTZ NX XT JFXD.
YMJWJFWJXTRFSD YMNSLX YT QTAJ FGTZY DTZ!
IT DTZ PSTB N QTAJ NY BMJS DTZ IFDIWJFR FSI DTZ YMNSP ST
TSJ NX BFYHMNSL?
IT DTZPSTB N QTAJ YMJ BFD DTZW JDJX XUFWPQJ BMJS DTZ
YJQQ F KZSSD XYTWD?
IT DTZ PSTB YMFY N QTAJ YMJ XMFUJ TK DTZW JFWX?
IT DTZ PSTB N QTAJ YT BFYHM DTZ XQJJU?
N HTZQI LT TS FSI TS.
NFR YMJWJ BNYM DTZ, QTANSL DTZ.
KWTR JIINJ

相關文章