在密碼學的發展史中,單表替換密碼(Monoalphabetic Substitution Cipher) 是最早出現的加密技術之一。
今天我們將深入探討其中最著名的代表 —— 凱撒密碼(Caesar Cipher) 與其變體 ROT13,學習其數學運算原理、如何利用工具與 Python 程式進行自動化破解,並完成 CyLab 平台上的經典實戰題目。
tr 指令與 Python 腳本)。Mod 26。凱撒密碼是一種位移替換密碼,將明文中的每個字母在英文字母表上向後(或向前)移動固定的位移量 K。
將字母 A-Z 對應到數字 0-25:
E(x) = (x + K) mod 26
D(x) = (x - K) mod 26
註:模運算
mod 26確保了字母在超過z(25) 後能自動繞回A(0)。
ROT13 (Rotate by 13 places) 是凱撒密碼的一個特例,固定位移量 K = 13。
因為英文字母恰好有 26 個(26 / 2 = 13),所以把一個字母移動 13 次後,再移動 13 次就會回到原來的字母:
(13 + 13) mod 26 = 26 mod 26 = 0
這種性質稱為 自反性(Symmetric / Self-reciprocal)。這意味著:ROT13 的加密與解密演算法完全一模一樣!
Mod 26在 CyLab 平台開啟 Mod 26 題目,點擊連結下載 values.txt 檔案,或點開查看其內容:
npnqrzl{arkg_gvzr_V'yy_gel_2_ebhaqf_bs_ebg13_5p5s5o36}
觀察字串結構包含括號 {},且檔名與題目名稱暗示為模運算與 ROT13 加密。
開啟 CyberChef,依序執行以下步驟:
輸入密文:將 values.txt 取得的密文貼入右上角 Input 區塊。
設定 Recipe 配方:
在左側 Operations 搜尋列搜尋 ROT13。
將 ROT13 拖曳至中間的 Recipe 區塊。
預設 Amount 數值即為 13,保持勾選 Rotate lower case chars 與 Rotate upper case chars。
在 CyberChef 右下角 Output 區塊即可瞬間還原出明文 Flag:
academy{next_time_I'll_try_2_rounds_of_rot13_5c5f5b36}
