Agent Skills
返回列表
💻

对称密码攻击

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/symmetric-cipher-attacks-gbwb 技能。

技能介绍

要解决的具体问题

在CTF竞赛和授权渗透测试中,对称密码攻击往往卡在策略选择上:看到相同明文对应相同密文却想不到ECB切割拼接,遇到CBC加密又分不清padding oracle和bit flipping该用哪种。基础模型常把ECB和CBC的攻击路线搞混,或者在逐字节ECB解密时连前缀偏移都算不对,导致本该几分钟拿下的题卡在数学推导上。

技能如何工作

这个技能把对称密码攻击整理成可路由的决策树。攻击选择表直接映射观测行为到弱点和攻击手段:密文块重复就是ECB特征,padding错误可区分就上CBC padding oracle,密文可篡改且影响下一明文块说明缺完整性校验,密钥复用就对XOR流密码做two-time pad异或,PRNG可预测就恢复LCG/LFSR状态,双重加密就用中间相遇。

核心能力覆盖六类攻击:

  • CBC padding oracle:操控前一个密文块逐字节解密任意块
  • CBC bit flipping:翻转C[i-1]的比特来篡改P[i]对应位
  • ECB cut-and-paste:重排密文块拼接新明文
  • 逐字节ECB解密:利用可控前缀逐字节爆破未知追加秘密
  • 流密码密钥复用:XOR两份密文恢复明文异或
  • LFSR/LCG状态恢复:用Berlekamp-Massey算法或格方法还原内部状态

进阶参考BLOCK_CIPHER_ATTACKS.md提供完整Python实现、PadBuster脚本和LCG/LFSR恢复代码。

适用边界与注意

所有攻击仅用于CTF和授权测试环境。padding oracle要求服务端能区分填充错误;bit flipping需要密文可篡改且无完整性保护;two-time pad依赖密钥复用;统计类攻击(RC4偏置、LCG恢复)可能需要2^24以上密文样本。理解分组密码模式和异或线性性质是前提,工具只是加速器,核心还是攻击逻辑。

使用场景

  • CTF比赛中遇到ECB模式加密,需要识别并实施逐字节解密或密文块重排拼接未知明文
  • CBC加密应用暴露填充验证错误,利用padding oracle逐字节解密任意密文块
  • CBC加密缺少完整性校验,通过bit flipping篡改下一块明文特定字节以伪造认证前数据
  • 流密码密钥被复用加密两份明文,XOR两份密文恢复明文异或结果

适合人员

  • CTF参赛者,比赛中遇到对称密码题目需要快速定位攻击向量并编写利用脚本
  • 安全研究员,在授权渗透测试中遇到CBC或流密码加密需要评估实际弱点
  • 密码学学生,学习分组密码模式弱点和padding oracle原理需要真实攻击流程演示
  • 渗透测试工程师,面对缺少完整性校验的CBC应用需要验证bit flipping可行性