本文适合
CTF 密码学 入门学习者。学完你能:理解 ZKP入门 的核心概念和基本用法
一句话判断
ZKP 题一旦挑战可预测、消息不绑定、commitment 可重放或 hash 输入缺失,就不再是“零知识”,而是可伪造的交互或非交互证明。
题目中常见信号
核心概念
零知识证明要同时满足正确性、可靠性和零知识性。CTF 中常见问题不是证明系统本身,而是实现里把挑战做成可预测、把 statement 漏掉、把 commitment 复用,或者把 hash 承诺写错。
本文适合
CTF 密码学 入门学习者。学完你能:理解 ZKP入门 的核心概念和基本用法
ZKP 题一旦挑战可预测、消息不绑定、commitment 可重放或 hash 输入缺失,就不再是“零知识”,而是可伪造的交互或非交互证明。
零知识证明要同时满足正确性、可靠性和零知识性。CTF 中常见问题不是证明系统本身,而是实现里把挑战做成可预测、把 statement 漏掉、把 commitment 复用,或者把 hash 承诺写错。
本文适合
CTF 密码学 入门学习者。学完你能:理解 XOR基础 的核心概念和基本用法
XOR 题的核心是“同一个值异或两次会抵消”。看到 ^、逐字节加密、重复 key、已知文件头或多条密文共用密钥流时,优先尝试用已知明文恢复 key 或消掉 keystream。
XOR 满足 a ^ b ^ b = a。如果知道密文 C 和明文片段 P,就能得到对应密钥流 K = C ^ P。如果两条密文共用密钥流,C1 ^ C2 = P1 ^ P2,密钥流会消失,剩下的就是语言统计和已知明文问题。
本文适合
已经理解模运算和大整数表示,准备处理 n,e,c 参数题、PEM 公钥题和裸 RSA 攻击题的 CTF 学习者。学完你能:根据 RSA 参数判断低指数、共模、共享素因子、近素数、dp/dq 泄露、Wiener 和 Coppersmith 等路线,并写出最小验证脚本。
RSA 题不是“破解 RSA”,而是找参数生成、填充、随机数或接口使用中的弱点;只要能从公开信息恢复 p,q,d 或直接恢复 m,就能解密。
本文适合
CTF 密码学 入门学习者。学完你能:理解 Paillier与同态加密基础 的核心概念和基本用法
Paillier 的核心是“密文相乘对应明文相加”,所以如果题目想让你在不知道私钥的情况下合成结果,先看它是不是把同态性质直接暴露出来了。
Paillier 允许对密文执行乘法,得到明文加法的对应结果:E(m1) * E(m2) = E(m1 + m2)。这不是漏洞本身,而是功能;漏洞通常来自“把功能当成安全边界”,或者参数过小、随机 r 可预测、解密接口泄露中间值。
本文适合
CTF 密码学 入门学习者。学完你能:理解 ECC基础 的核心概念和基本用法
ECC 题要先看曲线和点是否“真”,再看阶是否安全;只要出现小阶、无效曲线、异常曲线、nonce 复用或参数泄露,就可能转化为可解问题。
ECC 的安全性基于椭圆曲线离散对数问题。曲线上的点加法、倍点和标量乘法构成群运算;如果曲线阶不大、可分解,或者输入点没有验证,离散对数就可能被拆成多个小问题。
本文适合
已经了解 XOR 和基础编码,准备处理 AES 模式、IV、nonce 和 padding oracle 题的 CTF 学习者。学完你能:根据题目给出的 key、iv、nonce、mode、密文和接口响应,判断 AES 题的可利用点,并写出 ECB、CBC、CTR/GCM 相关的最小验证脚本。
AES 是一种对称分组密码。对称的意思是加密和解密使用同一个密钥。分组的意思是它一次处理固定长度的数据块。
本文适合
已经知道密钥、nonce、token 都依赖随机性,准备处理时间种子、弱 PRNG、MT19937 和 nonce 复用题的学习者。学完你能:判断随机数来源是否可预测,缩小 seed 搜索范围,恢复 PRNG 状态,并把随机数弱点转化为解密、伪造或预测。
只要安全值来自可猜 seed、短状态、普通 PRNG 或重复 nonce,就把题目从“密码算法很强”转成“随机过程可复现”。
本文适合
已经了解基础公钥密码和 Web/API 交互,准备处理 Solidity 合约、交易 calldata、链上状态和 CTF 链上题的学习者。学完你能:根据合约源码、部署地址、交易记录和题目目标,判断是重入、权限、整数、随机数、签名或业务状态机问题,并写出最小复现交易。
区块链 CTF 题不是“链很复杂”,而是合约状态可公开、交易可复现、代码不可随便改;解题要找到能让合约状态进入目标条件的最小交易序列。
本文适合
已经理解哈希、随机数和 ECC/RSA 基础,准备处理 DSA/ECDSA/Schnorr 签名伪造或私钥恢复题的学习者。学完你能:从签名列表中识别 nonce 重复、偏差、部分泄露或挑战绑定错误,并写出恢复 k、私钥或伪造签名的最小脚本。
DSA/ECDSA/Schnorr 这类签名一旦 nonce k 重复、可预测、偏小或部分泄露,签名公式会变成可解方程,私钥可能直接暴露。
本文适合
已经理解 编码、哈希与加密、随机数与种子、签名算法与nonce复用 和基础 Web/API 交互的学习者。学完你能:把协议题拆成参与者、消息、密钥、认证目标和攻击面,定位重放、未绑定身份、降级、KDF 错误和签名范围错误