【加密】凱薩密碼(Caesar cipher) 介紹 | 英文轉數字密碼
0.什麼是凱薩密碼?Step1.替字母編號首先將字母依照順序排好,同時給它們編號,類似下表:編號ABCDEF字母012345(為了方便,這邊我只取A~F作說明)※通常我們會讓編號從0開始,之後的運算會比較方便。Step2.選擇偏移量選擇1個數字,作為字母的偏移量,無論是加密或解密,都是依靠這個數字!範圍一般是在1~25,超過範圍只是像在繞圈子而已,而0、26沒有變動,無意義我這邊先選擇「2」作為示範,Step3.進行加密開始進行加密,假設有一段文字為:對應Step1的表可以得到各字母的編號,遇到非字母則無視:ADD(空白)BAD(空白)EBB033103411替各...
0. 什麼是凱薩密碼?
Step 1. 替字母編號
首先將字母依照順序排好,同時給它們編號,類似下表:
編號 A B C D E F 字母 0 1 2 3 4 5(為了方便,這邊我只取A~F作說明)
※ 通常我們會讓編號從0開始,之後的運算會比較方便。
Step 2. 選擇偏移量選擇1個數字,作為字母的偏移量,
無論是加密或解密,都是依靠這個數字!
範圍一般是在 1 ~ 25,
超過範圍只是像在繞圈子而已,而 0、26 沒有變動,無意義
我這邊先選擇「2」作為示範,
Step 3. 進行加密開始進行加密,
假設有一段文字為:
對應 Step 1 的表可以得到各字母的編號,遇到非字母則無視:
A D D (空白) B A D (空白) E B B 0 3 3 1 0 3 4 1 1替各個編號加上 Step 2 時選擇的偏移量「2」,
但仔細注意會發現,E的編號 4 如果加上 2 會等於 6,
但 Step 1 的表格中,最大的編號數字只有 5,
所以遇到超過的數字就回到 0,也就是像:4 → 5 → 0 → 1
A D D (空白) B A D (空白) E B B 2 5 5 3 2 5 0 3 3最後再將編號轉成對應的新字母:
C F F (空白) D C F (空白) A D D 2 5 5 3 2 5 0 3 3 這樣就順利得到通過凱薩密碼加密的內容囉!用一張示意圖表示過程:
2. 如何解密?
解密的過程與加密相同,
只是把 Step 3 時的「加上偏移量」改成「減掉偏移量」,
就大功告成囉。3. 用數學式表示凱薩密碼
上述的文字說明,也許對某些人而言不易理解,
所以我這邊用簡單的數學式來表示一下凱薩密碼。
首先定義一下變數的意義:
E:明文 ( 加密前的文章 )
D:密文 ( 加密後的文章 )
K:金鑰、偏移量 ( 範圍 0 ~ 25 )
過程其實很簡單,透過 mod 數學運算的特性...