今日目標(3 項)
練習一題經典密碼(例如凱薩 / 代換 / 維吉尼亞)並用頻率分析還原明文。
練習一題簡單 RSA 題(給出 n,e,c),嘗試找因式分解或用常見弱點(小 e、共因子)解出明文。
把與 AI 的互動記錄成解題日誌(prompt、AI 回答、你執行的命令與最終 flag)。
今日實作步驟(直接照做)
選一題(picoCTF、TryHackMe 的 crypto 題或你自己做的練習)。
若是經典密碼:
用 Python 做頻率分析或暴力測試(範例腳本在下面)。
用 AI 協助生成可能的鍵或置換表,然後驗證哪個候選產生合理英文/詞彙。
若是 RSA 題(給 n,e,c):
先用 sympy / Python 嘗試小因式分解或 gcd 共因子檢測(範例指令在下面)。
若成功取得 p,q,計算 d = inv(e, phi) 並還原 m = pow(c, d, n),最後轉成 ASCII。
把所有步驟、輸出與最後 flag 寫成一頁「解題日誌」。
範例:經典密碼(凱薩 / Caesar)快速腳本
# caesar_bruteforce.py
import string
ct = "L ORYH Sbw" # 範例密文
alphabet = string.ascii_uppercase
for k in range(26):
pt = ""
for ch in ct:
if ch.upper() in alphabet:
i = alphabet.index(ch.upper())
pt += alphabet[(i - k) % 26] if ch.isupper() else alphabet[(i - k) % 26].lower()
else:
pt += ch
print(k, pt)
範例:頻率分析(substitution)簡易提示
用 collections.Counter 統計字母頻率,比對英文頻率(ETAOIN SHRDLU),用 AI 幫你建議替換映射,再驗證。
範例:RSA 基礎破解(Python)
# rsa_crack.py (示範)
from math import gcd
from Crypto.Util.number import inverse, long_to_bytes
n = 0x... # 填入題目 n
e = 65537
c = 0x...
# 嘗試小因式分解(只適合小範圍或教學題)
for p in range(2, 1000000):
if n % p == 0:
q = n // p
phi = (p-1)*(q-1)
d = inverse(e, phi)
m = pow(c, d, n)
print(long_to_bytes(m))
break
今天進行 Crypto 題練習:用頻率分析與暴力法破解經典替換/凱薩密文,並用 Python 實作自動化嘗試。對於教學型 RSA 題,嘗試小因式分解與共因子檢測,成功還原明文後把過程記錄為解題日誌。透過 AI 協助生成映射建議與檢查步驟,加速了思考與驗證流程,下一步會挑戰更複雜的 RSA 弱點題目。