密码学
2026/4/4大约 2 分钟CTFCrypto
从凯撒到 RSA,从 ECB 到 LLL 格攻击——密码学是数学与逻辑的障眼法,也是 CTF 中最考验抽象思维的领域。一道 Crypto 题往往只有一段密文和几行代码,但背后藏着模运算、数论、椭圆曲线、随机数预测的谜题。你不是在“破解”密码,而是在寻找参数选择、填充方式、实现细节中那不可避免的熵减。当你能从看似随机的字节流中读出欧拉定理的呼吸,Flag 便近在眼前。
🗺️ 技能地图
现代 CTF 的 Crypto 已经不再是单纯的猜脑洞,而是演变成了深度的数学理论对抗。
- 前置知识:Python 编程基础、离散数学、数论(同余定理、扩展欧几里得、欧拉定理)、抽象代数基础。
- 古典密码:凯撒、维吉尼亚、猪圈密码、栅栏密码(主要出现在签到题或作为现代密码的补充环节)。
- 现代对称密码:
- 熟悉 AES / DES 算法结构。
- 分组模式攻击(ECB 替换、CBC 字节翻转、Padding Oracle Attack)。
- 流密码攻击(RC4 伪随机数预测)。
- 非对称密码(重点):
- RSA 体系:分解大整数 n、共模攻击、维纳攻击(Wiener's Attack)、广播攻击、Coppersmith 攻击。
- 椭圆曲线密码(ECC)、ElGamal 算法。
🛠️ 军火库(常用工具)
- Python / PyCryptodome:编写破解脚本的核心依赖。
- SageMath:建立在 Python 之上的数学软件系统,包含极多密码学和代数几何工具,是打 Crypto 必不可少的神器。
- RsaCtfTool:集成化的 RSA 攻击测试脚本集合。
- FactorDB / yafu:用于大整数分解。
- CyberChef:适用于快速古典密码测试及各种编码(Base64, Hex 等)的转换。
注
这些工具都需要你自己去寻找与安装。
💡 萌新建议
遇到 Crypto 题,不要上来就拿脚本乱跑。试着去读懂加密算法的数学原理。如果数学基础薄弱,可以先从理解 RSA 的公私钥生成原理和数论基础开始,把复杂的数学公式用 Python 敲一遍,你对密码学的理解将会有质的飞跃。
受限于技术与能力,这部分内容我们只更新入门篇章。至于后面的,便由你来尽情探索了。
目录
暂无目录
