关键词:CTF、密码学、RSA、AES、哈希、哈希破解、加解密工具、CyberChef、OpenSSL
1. 为什么 CTF 必学密码学?
在信息安全领域,密码学就像城门上的锁,锁得牢、破得快,攻守皆可。CTF(Capture The Flag)比赛屡屡把“Crypto”设为夺分重点,原因无非三点:
- 保密性:把明文变成别人看不懂的密文,保证数据不泄露。
- 完整性:通过哈希、签名,检验文件中途是否被篡改。
- 身份认证:凭数字签名确认“我就是我”,防止中间人冒充。
看懂这三条,你就明白绝大多数 CTF Crypto 题只干两件事——
- 想办法 “还原” 被加密的数据;
- 或者找出算法的 设计疏漏 与 实现漏洞。
2. 入门前置技能清单
想要 48 小时内从小白变“脚本小子”,以下底子必须补齐:
| 知识域 | 关键要点 |
|---|---|
| 数学 | 模运算、最大公约数、欧拉定理、中国剩余定理 |
| 经典算法 | RSA、AES、ECC、SHA-256、Base64 |
| 编程 | Python3 调用 pycryptodome、pwntools、sympy |
| 常见攻击 | 因子分解、低加密指数、共模攻击、Padding Oracle |
| 调试利器 | OpenSSL、CyberChef、Dcode、Hashcat |
快速起跑姿势:
打开终端,一行指令装好 Python 全家桶——
pip install pycryptodome sympy pwntools tqdm3. RSA:CTF 中出镜率最高的明星算法
3.1 五分钟速记 RSA
- 选两质数
p、q,得到N = p * q - 计算
φ(n) = (p-1)*(q-1) - 取公钥
e(常见 3、17、65537),计算私钥d ≡ e^-1 mod φ(n) - 加密:
cipher = msg^e mod N - 解密:
msg = cipher^d mod N
3.2 CTF 高频套路
| 题型特点 | 核心特技 |
|---|---|
| 小 N 易分解 | Yafu / factordb 在线数分钟分解 |
| 低 e 指数 | 直接 k-th root 还原明文 |
| 共模 | 两个密文共用同一 N,可用扩展欧几里得 |
| 填充缺陷 | Padding Oracle & Bleichenbacher'06 |
3.3 30 秒破解脚本片段
from sympy import mod_inverse
N, c, e = 3233, 2790, 17
p, q = 61, 53
phi = (p-1)*(q-1)
d = mod_inverse(e, phi)
plain = pow(c, d, N)
print(bytes.fromhex(hex(plain)[2:]).decode())4. AES:对称加密的“瑞士军刀”
AES 速度快、实现广,分组长度固定 128 bit,密文长度与明文相同。
CTF 常见考点:
- ECB 模式密文重排
- CBC Byte-Flipping(通过修改 IV 伪造明文)
- 弱密钥派生函数 PBKDF2/Scrypt“迭代不够”
实战命令:
加密并加盐
openssl aes-256-cbc -base64 -salt -pbkdf2 -in flag.txt -out flag.enc5. 哈希:安全而非万能
5.1 哈希算法飞花令
- 快:MD5 / SHA-1(易受碰撞,比赛常见于“伪造签名”)
- 慢:bcrypt / Argon2(用于口令存储)
5.2 哈希破解三板斧
| 技巧 | 工具 | 场景 |
|---|---|---|
| 暴力 | Hashcat + 3080Ti 显卡 | 长度 ≤ 8 的纯数字口令 |
| 字典 | john --wordlist=rockyou.txt | Top50 万口令一键跑 |
| 彩虹表 | Ophcrack | Windows LM 哈希速破 |
6. 必备工具一张表翻遍比赛
| 工具 | 场景 | 亮点 |
|---|---|---|
| OpenSSL | 证书解析、AES/RSA 加解密 | 服务器标配 |
| CyberChef | 在线拖拉拽,秒转 Hex/Base64/XOR | 无安装、零门槛 |
| Hashcat | GPU 暴力 & 字典破解 MD5 等 | 速度天花板 |
| RsaCtfTool | 一键跑多种 RSA 攻击 | 懒人福音 |
| Dcode | 在线识别 200+ 编码 | 第一眼“猜”算法 |
7. 真实赛题剖析:RSA脚本落地
题目来源:HTBSRMIST 月赛 Crypto Easy
- 给定:公钥
(N,e) = (3233, 2753)+ 密文整数列表 - 攻略步骤
- 分解 N 得
p=61 q=53 - 用脚本秒解(见 3.3 节)
- 解码后获得 HTBSRMIST{Y0u_Cr4cK3D_7h3_R54}
全流程耗时 < 2 分钟。比赛实战重在 猜特征 -> 定点爆破 -> 抄脚本。
8. FAQ:90% 新手必问的 5 件事
Q1:RSA 私钥太大记不住?
A:比赛给私钥文件就直接用 openssl rsa -in private.pem -text 读参数,Database 站一秒提取 d。
Q2:遭遇未知编码一脸懵?
A:先把密文贴进 CyberChef,勾选 “Magic” 自动识别;无果再用 Dcode 盲扫。
Q3:哈希是 SHA256 还是 SHA512?
A:64 字节 vs 128 字节长度一眼看穿,或用 hash-identifier 自动判断。
Q4:字典被秒破,怎么“加固”密码?
A:长度 ≥ 12 + 大小写数字符号混合 + 不属任何语言单词;按 NIST 再用 Argon2。
Q5:硬件破解究竟需要多强显卡?
A:RTX 4090 跑 hashcat 八位数字哈希 95 组字符理论 < 10 小时;队内多用云端按需租 GPU。
9. 写在最后
从 0 到 1 的 CTF 密码学冲击,只需:
- 看懂算法原理 20%;2. 手握脚本模板 80%。
无论 RSA 还是 AES,最后拼的都是信息搜集速度 + 查表速率。下一步,登录线上靶场,用今天这份 速通清单 抢下你的首个 Flag!
参考资料
rsactftool— RsaCtfTool 官方仓库- CyberChef — GCHQ 开源万能厨房
- OpenSSL CLI 文档