iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0
自我挑戰組

利用生成式AI等工具來學習資安系列 第 17

Day 17:Crypto CTF 練習(替換/經典密碼 + 基礎 RSA)

  • 分享至 

  • xImage
  •  

今日目標(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 弱點題目。


上一篇
Day 16:密碼學基礎(對稱/非對稱/雜湊與實作)
下一篇
Day 18:偵測與日誌(Log)解析實作
系列文
利用生成式AI等工具來學習資安30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言