CRYPTO - 密码学¶
方向技能索引。攻击对象为加密、哈希、签名、PRNG、ZKP、数论类题目时从本索引路由。不要用于:二进制逆向出的自定义密码(先转 Reverse),纯编码解谜(转 Misc),题目主体是 Web 但用了 JWT/哈希(转 WEB)。
知识域路由表¶
| 分组 | 知识域 |
|---|---|
| 编码与古典 | 编码与解码 · 加法密码 · 单表替换 · 简单代换 · 多表替换 · 其他古典 · 键盘密码 |
| 对称与现代 | 流密码 · RC4 · LFSR · 分组密码 · 对称密码 · DES · AES |
| 非对称 | RSA · ElGamal · DSA · ECC · 非对称密码 · 离散对数 · 密钥交换 · 格密码 |
| 哈希与签名 | MD5 · SHA1 · FNV · 电子签名 |
| 随机数与求解 | LCG · MT19937 · Z3 · 数理 |
环境与工具基线¶
pip install pycryptodome z3-solver sympy gmpy2 hashpumpy fpylll py_ecc
apt install hashcat sagemath # SageMath 用于 ECC/Coppersmith/格
python RsaCtfTool.py -n <n> -e <e> --uncipher <c> # RSA 自动化攻击套件
通用解题流程¶
- 识别类型:密文形态(base64/hex/数字串)、给出的参数(n,e / c,p,q / 签名)。
- RSA 先做体检:位长、e 大小、N 可否分解(factordb/yafu/RsaCtfTool)。
- 对称/流密码找"预言机":服务端是否返回解密结果、padding 合法性、长度变化。
- PRNG 题先问:种子从哪来(时间?用户输入?)、泄露了多少输出。
- 解出明文后检查 flag 格式;
m可能是逐字符拆开、分层加密或与密钥异或的复合结构。