当前位置:网站首页>CBC 模式和 ECB 模式解读
CBC 模式和 ECB 模式解读
2022-07-19 11:19:00 【Ruo_Xiao】
1. CBC 模式和 ECB 模式
CBC 模式的全称:Cipher Block Chaining 模式(密文分组链接模式),之所以叫这个名字,是因为密文分组像链条一样互相连接在一起。
ECB 模式的全称:Electronic Codebook (电码本)。
在 CBC 模式中,首先将明文分组和一个密文分组进行 XOR (相异为一)运算,然后再进行加密。
CBC 模式的加解密过程如下:
比较一下 ECB 模式与 CBC 模式的区别:
ECB 模式只进行了加密,而 CBC 模式则在加密之前进行了一次 XOR。
2. 初始化向量
当加密第一个明文分组时,由于不存在“前一个密文分组”,因此需要事先准备一个长度为一个分组的比特序列来代替“前一个密文分组”,这个比特序列称为初始化向量(Initialization Vector),通常缩写为 IV。
一般来说,每次加密时都会随机产生一个不同的比特序列来作为初始化向量。
3. CBC 模式的特点
明文分组在加密之前一定会与“前一个密文分组”进行 XOR 运算,因此即使明文分组 1 和明文分组 2 的值是相等的,密文分组 1 和 2 的值也不一定是相等的。这样一来,ECB 模式的缺陷在 CBC 模式中就不存在了。
加密过程:在 CBC 模式中,无法单独对一个中间的明文分组进行加密。例如,如果要生成密文分组 3 ,则至少需要凑齐明文分组 1、2、3 才行。
解密过程:假设 CBC 模式加密的密文分组中有一个分组损坏了。在这种情况下,只要密文分组的长度没有发生变化,则解密时最多只有 2 个分组受到数据损坏的影响。见下图:
假设 CBC 模式的密文分组中有一些比特缺失了,那么此时即便只缺失 1 比特,也会导致密文分组的长度发生变化,此后的分组发生错位,这样一来,缺失比特的位置之后的密文分组也就全部无法解密。见下图:
4. 对 CBC 模式的攻击
假设主动攻击者的目的是通过修改密文来操纵解密后的明文。如果攻击者能够对初始化向量中的任意比特进行反转(将 1 变成 0,将 0 变成 1 ),则明文分组中相应的比特也会被反转。这是因为在 CBC 模式的解密过程中,第一个明文分组会和初始化向量进行 XOR 运算。见下图。
但是想对密文分组也进行同样的攻击就非常困难了。
例如,如果攻击者将密文分组 1 中的某个比特进行反转,则明文分组 2 中相应比特也会被反转,然而这一比特的变化却对解密后的明文分组1中的多个比特造成了影响,也就是说,只让明文分 1 中所期望的特定比特发生变化是很困难的。
5. 填充提示攻击
填充提示攻击是一种利用分组密码中填充部分来进行攻击的方法。
在分组密码中,当明文长度不为分组长度的整数倍时,需要在最后一个分组中填充一些数据使其凑满一个分组长度。
在填充提示攻击中,攻击者会反复发送一段密文,每次发送时都对填充数据进行少许改变。由于接收者(服务器)在无法正确解密时会返回一个错误消息,攻击者通过这一错误消息就可以获得一部分与明文相关的信息。这一攻击并不仅限于 CBC 模式,而是适用所有需要进行分组填充的模式。
2014 年对 SSL3.0 造成了重大影响 POODLE 攻击实际上就是一种填充示攻击。
6. 对初始化向量(IV)进行攻击
初始化向量(IV)必须使用不可预测的随机数。然而在 SSL / TLS 的 TLS1.0 版本协议中,IV 并没有使用不可预测的随机数,而是使用上一次 CBC 模式加密时的最后一个分组。为了防御攻击者对此进行攻击,TLS1.1 以上的版本中改为了必须显示传送 IV 。
7. CBC 模式应用
确保互联网安全的通信协议之一 SSL / TLS,就是使用 CBC 模式来确保通信机密性的,如使用CBC 模式三重 DES 的 3DES_EDE_CBC 以及 CBC 模式 256 比特 AES 的 AES_256_CBC 等。
(SAW:Game Over!)
边栏推荐
- 股票开户首选,炒股交易开户佣金最低手机上开户安不安全
- 启新聚势 云谱新篇|海泰方圆与四川联通达成生态战略合作
- intel反汇编 之莫名奇妙
- Mysql引擎介绍及InnoDB逻辑存储结构
- 微服务注册中心怎么选?
- Vulnhub | DC: 5 |【实战】
- [latex] ppt drawing, exporting EMF format, word inserting EMF file and exporting PDF, PDF clipping and exporting EPS file, latex inserting EPS file
- 太忙 or 太懒?同一基金经理管理不同产品季报里观点一样
- 6. Microservice architecture analysis
- 9. Gorm advanced
猜你喜欢
朱松纯团队最新突破登Science头条!让AI「读懂」人类价值观
【FAQ】接入HMS Core推送服务,服务端下发消息常见错误码原因分析及解决方法
0718-棉花棉纱涨停,市场大幅反弹
华人女婿小野三太成密西根大学首位亚裔校长,年薪超650万!
OneFlow v0.8.0正式发布
Too busy or too lazy? The same fund manager has the same view in the quarterly reports of different products
反调试 - PEB(BeingDebugged ,NtGlobalFlag)
USART serial communication
导师姻缘牵线,这对博士夫妻:累计一作发15篇论文,毕业留校任教!
在线随机抛硬币正反面统计工具
随机推荐
定价随心、产品难辨真假、平台跑路,数藏市场还会火下去吗?
人均瑞数系列,瑞数 4 代 JS 逆向分析
IEC61131地址表示
简单的注册登录的实现
使用自定义RRT*全局规划器建图导航
熔断、降级 Sentinel
leetcode精选TOP面试题_字符串
详解mysql 主从复制原理
SSH 私钥实现登录远程目标服务器
sprigboot中过滤器执行顺序源码解读
YOLOv7 训练报错 IndexError: list index out of range
国际顶会OSDI首度收录淘宝系统论文,端云协同智能获大会主旨演讲推荐
MySQL数据库
Android面试Hash原理详解二
gdb 定位strip后程序的main地址
mouseenter 与 mouseover 的区别
华人女婿小野三太成密西根大学首位亚裔校长,年薪超650万!
Detailed explanation of Android interview hash principle II
AutoJs学习-文件深度搜索
【MSA】关于moveit配置助手-planning groups中的chain的简要说明