1、首先应该明白AES是基于数据块的加密方式,也就是说,每次处理的数据是一块(16字节),当数据不是16字节的倍数时填充,这就是所谓的分组密码(区别于基于比特位的流密码),16字节是分组长度。
2、分组加密的几种方式
ECB:是一种基础的加密方式,密文被分割成分组长度相等的块(不足补齐),然后单独一个个加密,一个个输出组成密文。
CBC:是一种循环模式,前一个分组的密文和当前分组的明文异或操作后再加密,这样做的目的是增强破解难度。
CFB/OFB实际上是一种反馈模式,目的也是增强破解的难度。
![[转载]不同模式的AES加密](https://i-blog.csdnimg.cn/blog_migrate/637d61b4e1e969110554f6307f047fa1.jpeg)
AES加密
![[转载]不同模式的AES加密](https://i-blog.csdnimg.cn/blog_migrate/92472a0088325d6f3d45a11acf0511f2.jpeg)
分组
![[转载]不同模式的AES加密](https://i-blog.csdnimg.cn/blog_migrate/bc275bd67b209240842ee17eae75749e.jpeg)
分组密码的填充
![[转载]不同模式的AES加密](https://i-blog.csdnimg.cn/blog_migrate/3564a7c3494afb010c5b50a1880785d5.jpeg)
3.2 CBC模式:
![[转载]不同模式的AES加密](https://i-blog.csdnimg.cn/blog_migrate/b2c9c584fc05e4a9c5246886e8016f02.jpeg)
优点:
![[转载]不同模式的AES加密](https://i-blog.csdnimg.cn/blog_migrate/b8605ec71288270ec00dd1edb1e72bd6.jpeg)
优点:
1
2
2、分组加密的几种方式
ECB:是一种基础的加密方式,密文被分割成分组长度相等的块(不足补齐),然后单独一个个加密,一个个输出组成密文。
CBC:是一种循环模式,前一个分组的密文和当前分组的明文异或操作后再加密,这样做的目的是增强破解难度。
CFB/OFB实际上是一种反馈模式,目的也是增强破解的难度。
ECB和CBC的加密结果是不一样的,两者的模式不同,而且CBC会在第一个密码块运算时加入一个初始化向量。
一般的加密通常都是块加密,如果要加密超过块大小的数据,就需要涉及填充和链加密模式,文中提到的ECB和CBC等就是指链加密模式。这篇文档比较形象地介绍了AES加密算法中的一些模式转载过来。注意,还缺一种CTR的模式。
同时在文章的最后,贴出几对利用ECB
一. AES对称加密:
![[转载]不同模式的AES加密](https://i-blog.csdnimg.cn/blog_migrate/637d61b4e1e969110554f6307f047fa1.jpeg)
![[转载]不同模式的AES加密](https://i-blog.csdnimg.cn/blog_migrate/92472a0088325d6f3d45a11acf0511f2.jpeg)
二. 分组密码的填充
![[转载]不同模式的AES加密](https://i-blog.csdnimg.cn/blog_migrate/bc275bd67b209240842ee17eae75749e.jpeg)
e.g.:
![[转载]不同模式的AES加密](https://i-blog.csdnimg.cn/blog_migrate/a44fb8a43b72024c4fe21f500a10d33d.jpeg)
PKCS#5填充方式
![[转载]不同模式的AES加密](https://i-blog.csdnimg.cn/blog_migrate/a44fb8a43b72024c4fe21f500a10d33d.jpeg)
三. 流密码:
![[转载]不同模式的AES加密](https://i-blog.csdnimg.cn/blog_migrate/3564a7c3494afb010c5b50a1880785d5.jpeg)
四. 分组密码加密中的四种模式:
3.1 ECB模式
![[转载]不同模式的AES加密](https://i-blog.csdnimg.cn/blog_migrate/424520dac66c59339960628d80154e11.jpeg)
优点:
1.简单;
2.有利于并行计算;
3.误差不会被传送;
缺点:
1.不能隐藏明文的模式;
2.可能对明文进行主动攻击;
![[转载]不同模式的AES加密](https://i-blog.csdnimg.cn/blog_migrate/2a3363bcf287dabf06c281dce6cc8c3f.jpeg)
3.2 CBC模式:
![[转载]不同模式的AES加密](https://i-blog.csdnimg.cn/blog_migrate/b2370ff1705a569ed538309696ab513b.jpeg)
优点:
1.不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL、IPSec的标准。
缺点:
1.不利于并行计算;
2.误差传递;
3.需要初始化向量IV
3.3CFB模式:
![[转载]不同模式的AES加密](https://i-blog.csdnimg.cn/blog_migrate/b2c9c584fc05e4a9c5246886e8016f02.jpeg)
1.隐藏了明文模式;
2.分组密码转化为流模式;
3.可以及时加密传送小于分组的数据;
缺点:
1.不利于并行计算;
2.误差传送:一个明文单元损坏影响多个单元;
3.唯一的IV;
3.4OFB模式:
![[转载]不同模式的AES加密](https://i-blog.csdnimg.cn/blog_migrate/b8605ec71288270ec00dd1edb1e72bd6.jpeg)
1.隐藏了明文模式;
2.分组密码转化为流模式;
3.可以及时加密传送小于分组的数据;
缺点:
1.不利于并行计算;
2.对明文的主动攻击是可能的;
3.误差传送:一个明文单元损坏影响多个单元;
几个码流串,经过了某款芯片的硬件加解密单元的测试
ECB
Key0x2b7e151628aed2a6abf715
8809cf4f3c
Before encrypt0x6bc1bee22e409f96e93d7e
117393172a
After encrypt0x3ad77bb40d7a3660a89eca
f32466ef97
Key0x6bc1bee22e409f96e93d7e
117393172a
Before encrypt 0xEA24274E EA6C2A7DF78E3345 467F171D
After encrypt0x6bc1bee22e409f96e93d7e
117393172a
CBC
Key0x2b7e151628aed2a6abf715
8809cf4f3c
IV
0x000102030405060708090a 0b0c0d0e0f
Before encrypt0x6bc1bee22e409f96e93d7e
117393172a
After encrypt0x7649abac8119b246cee98e
9b12e9197d