【愚公系列】2022年04月 密码学攻击-CBC字节翻转攻击

举报
愚公搬代码 发表于 2022/04/30 23:40:54 2022/04/30
【摘要】 前言在CBC模式中,每个明文块先与前一个密文块进行异或后,再进行加密。在这种方法中,每个密文块都依赖于它前面的所有明文块。同时,为了保证每条消息的唯一性,在第一个块中需要使用初始化向量。 1. 关于CBCCBC全称Cipher Block Chaining模式(密文分组链接模式),“分组“是指加密和解密过程都是以分组进行的。每一个分组大小为128bits(16字节),如果明文的长度不是16...

前言

在CBC模式中,每个明文块先与前一个密文块进行异或后,再进行加密。在这种方法中,每个密文块都依赖于它前面的所有明文块。同时,为了保证每条消息的唯一性,在第一个块中需要使用初始化向量。

1. 关于CBC

CBC全称Cipher Block Chaining模式(密文分组链接模式),“分组“是指加密和解密过程都是以分组进行的。每一个分组大小为128bits(16字节),如果明文的长度不是16字节的整数倍,需要对最后一个分组进行填充(padding),使得最后一个分组长度为16字节。“链接”是指密文分组分组像链条一样相互连接在一起。

2. 对本节课使用到的异或的简单描述

如果a、b两个值不相同,则异或结果为1。 如果a、b两个值相同,异或结果为0。 异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位,所以异或常被认作不进位加法。

一:基本构想

在这里插入图片描述

二:异或推论及初步CBC字节翻转攻击

在原来代码基础中添加这一部分,关键是第二句,由上述的分析可知,这句代码的功能是控制字符串yalecbcbyteflippingattackdemo233中最后的一个3改为4
在这里插入图片描述
运行如图
在这里插入图片描述

完整的CBC字节翻转攻击原理及实现

在这里插入图片描述
运行如图
在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。