对称密码攻击
将以下提示词粘贴到你的 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可行性