cbc字节翻转攻击

本来很久之前就应该把它学了,但是不能静下心看完,拖到现在.........

今天上课的时候跟cg一起看,抱着神仙的大腿将它看完了,cg牛逼!!

首先我们先看下他的加密过程

可以看到,它先将明文进行分块,第一块与初始变量异或,然后秘钥进行加密,得到的密文再与第二块明文进行异或,继续秘钥加密,以此类推,加密过程有个最显著的特点就是:前一个密文用来产生后一个密文

接下来是解密的过程,其实懂了加密的过程,解密得过程就是加密的逆推过去

将密文进行分块,第一块先秘钥解密,然后再去跟初始变量进行异或,得出来的是第一块明文,第二块密文秘钥解密,然后与第一块密文进行异或,得到第二块密文,以此类推,同样的,前一块的密文也会参与后一块密文的解密

接下来就讲翻转攻击,先给张图

可以看到,因为加密过程密文和明文其实都是可控的,假设第一块密文为A,第二块密文秘钥加密以后是B,第二块明文是C

由图可以得到

C=A^B,也就有A^B^C=0,即是B=A^C

假设我们现在将第一块密文替换成A^C,这样的话第二块明文(也就是原来的C)就会变成A^C^B,刚好是0,如果再改一下,异或多一个X的话,那么第二块明文就可以变成是我们可控的了,即是A^C^X^B=0^X=X,至于为什么不用B直接异或B,这是因为B秘钥加密的过程难以破解。

到了这里,cbc翻转攻击的原理就全部讲完了,这里顺便给一题,bugku的login4

https://blog.csdn.net/xiaorouji/article/details/81988296#t52

萌新的一些见解,还请大佬们多多指教,给大佬递茶.jpg

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值