DES加密

CRYPTO · 知识域。DES/3DES 攻击。标签:暴力破解、侧信道攻击、错误注入攻击、线性攻击、量子攻击、差分攻击。

触发特征

  • 8 字节块、56 位有效密钥、题目提示"3DES/弱密钥/短密钥"。
  • 密钥以字符形式给出(可打印空间远小于 2^56)。

暴力破解

  • 可打印字符密钥(≤6 字符)hashcat 可解:hashcat -m 14000(DES known plaintext,需已知明密对构造已解密对)。
  • 已知明文:flag{ 前缀 + 首块密文作为校验对; John the Ripper(--format=des)。
  • 3DES:密钥仍是 8 字节(K1=K3 常见)→ 实际暴力 DES;中间相遇 2^56 量级。

侧信道攻击

  • 缓存时序/功耗轨迹在 CTF 中以"模拟数据"出现:给时延表或功耗曲线 CSV → 差分功耗分析(DPA)恢复轮密钥位。
  • 逻辑扫描:题目泄露每轮 S 盒输出位数 → 统计相关恢复。
  • 时间差:分支随密钥位变化 → 按位统计。

错误注入攻击

  • 故障注入 DFA(错误密文对):轮末注入错误,差分 S 盒输出恢复最后一轮子密钥(多对错误收敛)。
  • CTF 形式:服务端提供"翻转第 x 轮某位"的 oracle → 收集错误密文对做 DFA。
  • Bellcore 思想同 RSA-CRT 故障(→ RSA)。

线性攻击

  • 线性逼近表(LAT)找高偏差表达式(经典:Matsui 1R/2R 方法)。
  • 轮数削减(≤8 轮)变体:已知明密对 ~2^20 级别做线性统计;CTF 中出题人常直接给统计样本集。

量子攻击

  • Grover:56 位密钥平方根加速(理论层面,CTF 以"量子安全讨论题"或简化模拟出现)。
  • 事实层面:DES 早已可暴力(Deep Crack),考概念识别。

差分攻击

  • 轮数削减 DES(4-8 轮):选择明文差分(固定差分 0x1936050... 族),过滤对收敛恢复轮密钥。
  • 轮函数结构:S 盒 6→4 压缩的差分分布表(DDT)直接查高概率转移。

工具速查

hashcat -m 14000 '已知密文:已知明文' -a 3 ?a?a?a?a?a?a   # DES 面攻击
pip install pyDes   # 或 pycryptodome DES

转向

评论