【愚公系列】2022年04月 密码学攻击-CBC字节翻转攻击
【摘要】 前言在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)