Skip to content

按攻击面组织:算法层 → 协议层 → 格与数论 → 侧信道与实现。

分组密码分析

参考:CTF Wiki · 块加密攻击

  • 差分分析:追踪明文差分在轮间的传播概率;设计理论
  • 线性分析:找明文、密文、密钥位的线性逼近
  • Meet-in-the-middle:双向搜索降复杂度;双密钥 3DES 相关
  • Padding Oracle:CBC 解密错误反馈区分填充是否正确 → 逐字节恢复明文

详细:Padding Oracle 攻击

练习:Cryptopals Set 3 Oracle 系列。

RSA 与数论攻击

参考:CTF Wiki · RSA 攻击全集

攻击前提工具
Wiener小私钥 d连分数 / SageMath
Fermatp ≈ qgcd 迭代
Coppersmith部分已知明文SageMath small_roots
BleichenbacherPKCS#1 v1.5 解密 oracle选择密文 + 二分
Franklin-Reiter相关明文同 e多项式 GCD
Hastad BC广播 + 小 eCRT
<p class="kb-note-inline">练习:CryptoHack · RSA Attacks。</p>

格攻击

参考:CTF Wiki · 格概述 · 格基规约

  • LLL:多项式时间求近似最短向量;基规约入门
  • BKZ:块规约,更强但更慢;实际攻击常用
  • ECDSA nonce 泄露:两次签名 (r,s) 共享 k → Hidden Number Problem → 格恢复 d
  • Knapsack / Merkle-Hellman:低密度子集和 → 格攻击
  • Coppersmith:求模多项式小根,与格方法结合

练习:SageMath 跑通 LLL 格攻击模板;CryptoHack · Lattices。

协议层攻击

  • 降级攻击:强迫协商弱算法(TLS 1.0、EXPORT cipher)
  • 重放攻击:重发有效消息;需 nonce / 时间戳 / 序列号
  • Nonce 重用:GCM/CTR 下密钥流重用 → 明文 XOR 泄露
  • MAC-then-Encrypt:长度扩展、填充 oracle 组合
  • ROCA:RSA 密钥生成缺陷导致私钥可 factor
  • DUHK:硬编码 IV 的 ANSI X9.31 RNG 可预测

参考:CTF Wiki · 攻击思想

侧信道与实现

参考:OWASP 密码存储备忘单

  • Timing:非常量时间比较泄露信息;用 hmac.compare_digest / subtle
  • Cache:AES T-table 实现可能泄露密钥;优先 bitsliced 或硬件 AES
  • Power / EM:硬件场景;掩码与随机化
  • 优先审计库(cryptography、ring、aws-lc-rs);避免自写密码原语
语言防护
Pythonhmac.compare_digest
Rustsubtle、zeroize
<p class="kb-note-inline">本站笔记 <span class="crypto-pending">待撰写</span>。</p>

WIZARD