- 無規律的加密過程
- 無規律的解密過程——破譯
- 有規律的加密過程
- 有規律的解密過程——破譯
- 練習
凱撒密碼(英語:Caesar cipher),或稱凱撒加密、凱撒變換、變換加密,是一種最簡單且最廣為人知的加密技術。 凱撒密碼是一種替換加密技術,明文中的所有字母都在字母表上向後(或向前)按照一個固定數目進行偏移後被替換成密文。 例如,當偏移量是3的時候,所有的字母被替換,比如A將被替換成D,B變成E,以此類推。
無規律的加密過程
使用密文字母表,這種表格的字母(可能)是無規律的、隨機的。加解密雙方都需要拿到密文字母表。
舉例:
假設我們通訊時只使用26個英文字母(不區分大小寫)
(密文字母表的順序可以隨機擺放)
當你需要加密的明文:I LOVE YOU
拿著密文字母表,對照著密文字母表對映就可以了。
變成的密文: L ORYH BRX
拿著密文字母表,對照著密文字母表解密就可以了。
無規律的解密過程——破譯
原理:
- 考慮英文字母的使用頻率規律,嘗試用高頻對映高頻;
- 結合排除法。
實際案例:
TODO
有規律的加密過程
就是字母表向左或向右移動多少位,用一個圖表示,方便理解:
用兩個圓紙盤寫好26個字母,相互疊起來,
外面的圓盤代表明文,
內部的圓盤代表密文,
在初始階段,外A —— 內A,外B —— 內B,...都要一一對應上。
比如,向右移動3位,外A —— 內D 。
用表格表示:
比如說:
當你需要加密的明文:I LOVE YOU
你的加密方式,向右移動3位:
變成的密文: F IRYH BRX
加密只需要注意兩個點:
- 偏移方向
- 偏移量
有規律的解密過程——破譯
我們知道明文就是透過偏移方向+偏移量進行加密,那麼如果是破譯者,怎麼能知道加密時使用了什麼偏移量?
比如說給你一段使用凱撒加密過的文字,你怎麼解密出來?
Prqd Olvd Lq Iudqfh
破譯原理:
- 統計出現最高頻的字母;
用凱撒密碼編寫的密文,字數越多就越容易破譯; - 要猜出字母究竟位移了多少位,要考慮英文字母的使用頻率規律,嘗試用高頻對映高頻。
當然還可以暴力破解,畢竟只能位移1-25次,那就1-25位移全部羅列出來,哪個結果最像人寫的,就是正確的。
練習:
-
統計
我使用線上工具:https://uutool.cn/str-statistics/
-
對映
參考下面的字母高頻使用表格:
英文字母按使用頻率從高到低排序,第一位是e、第二位是t,...
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