iT邦幫忙

2026 iThome 鐵人賽

DAY 17
0
Security

CTF 菜鳥修練日誌系列 第 17 篇

Day 17:【Crypto】古老而經典的替換密碼:凱撒密碼 (Caesar Cipher) 與 ROT13

  • 分享至 

  • xImage
  •  

前言

在密碼學的發展史中,單表替換密碼(Monoalphabetic Substitution Cipher) 是最早出現的加密技術之一。

今天我們將深入探討其中最著名的代表 —— 凱撒密碼(Caesar Cipher) 與其變體 ROT13,學習其數學運算原理、如何利用工具與 Python 程式進行自動化破解,並完成 CyLab 平台上的經典實戰題目。


本日目標

  1. 理解凱撒密碼的模運算(Modular Arithmetic) 原理。
  2. 掌握 ROT13 的自反性(Symmetric / Self-reciprocal)特徵。
  3. 學習多種解題工具(CyberChef、Linux tr 指令與 Python 腳本)。
  4. 實戰解破 CyLab 經典 Cryptography 題目:Mod 26。

預備觀念一:凱撒密碼 (Caesar Cipher) 原理

凱撒密碼是一種位移替換密碼,將明文中的每個字母在英文字母表上向後(或向前)移動固定的位移量 K。

數學表示式

將字母 A-Z 對應到數字 0-25:

  • 加密公式:
    E(x) = (x + K) mod 26
  • 解密公式:
    D(x) = (x - K) mod 26

註:模運算 mod 26 確保了字母在超過 z (25) 後能自動繞回 A (0)。


預備觀念二:ROT13 的自反性

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 的加密與解密演算法完全一模一樣!


實戰單元:CyLab 題目 - Mod 26

1. 題目分析與檔案下載

在 CyLab 平台開啟 Mod 26 題目,點擊連結下載 values.txt 檔案,或點開查看其內容:

npnqrzl{arkg_gvzr_V'yy_gel_2_ebhaqf_bs_ebg13_5p5s5o36}

觀察字串結構包含括號 {},且檔名與題目名稱暗示為模運算與 ROT13 加密。

2. 使用 CyberChef 進行破解

開啟 CyberChef,依序執行以下步驟:

輸入密文:將 values.txt 取得的密文貼入右上角 Input 區塊。

設定 Recipe 配方:

在左側 Operations 搜尋列搜尋 ROT13。

將 ROT13 拖曳至中間的 Recipe 區塊。

預設 Amount 數值即為 13,保持勾選 Rotate lower case chars 與 Rotate upper case chars。

3. 最終解密結果 (Output)

在 CyberChef 右下角 Output 區塊即可瞬間還原出明文 Flag:

academy{next_time_I'll_try_2_rounds_of_rot13_5c5f5b36}

https://ithelp.ithome.com.tw/upload/images/20260930/20184211WSATLPL63S.png


上一篇
Day 16:【Crypto】萬能解碼神器 CyberChef:從 Base64 到 Base85
下一篇
Day 18:【Crypto】一體兩面的異或運算:XOR 加密特性與解題
系列文
CTF 菜鳥修練日誌 共 18 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言