一般的加密通常都是块加密,如果要加密超过块大小的数据,就需要涉及填充和链加密模式,文中提到的ECB和CBC等就是指链加密模式。这篇文档比较形象地介绍了AES加密算法中的一些模式转载过来。注意,还缺一种CTR的模式。
同时在文章的最后,贴出几对利用ECB
一. AES对称加密:


二. 分组密码的填充

e.g.:

PKCS#5填充方式

三. 流密码:

四. 分组密码加密中的四种模式:
3.1 ECB模式

优点:
1.简单;
2.有利于并行计算;
3.误差不会被传送;
缺点:
1.不能隐藏明文的模式;
2.可能对明文进行主动攻击;

3.2 CBC模式:

优点:
1.不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL、IPSec的标准。
缺点:
1.不利于并行计算;
2.误差传递;
3.需要初始化向量IV
3.3 CFB模式:

1.隐藏了明文模式;
2.分组密码转化为流模式;
3.可以及时加密传送小于分组的数据;
缺点:
1.不利于并行计算;
2.误差传送:一个明文单元损坏影响多个单元;
3.唯一的IV;
3.4 OFB模式:

1.隐藏了明文模式;
2.分组密码转化为流模式;
3.可以及时加密传送小于分组的数据;
缺点:
1.不利于并行计算;
2.对明文的主动攻击是可能的;
3.误差传送:一个明文单元损坏影响多个单元;
几个码流串,经过了某款芯片的硬件加解密单元的测试
ECB
Key 0x2b7e151628aed2a6abf715
8809cf4f3c
Before encrypt 0x6bc1bee22e409f96e93d7e
117393172a
After encrypt 0x3ad77bb40d7a3660a89eca
f32466ef97
Key 0x6bc1bee22e409f96e93d7e
117393172a
Before encrypt 0xEA24274E EA6C2A7D F78E3345 467F171D
After encrypt 0x6bc1bee22e409f96e93d7e
117393172a
CBC
Key 0x2b7e151628aed2a6abf715
8809cf4f3c
IV
0x000102030405060708090a 0b0c0d0e0f
Before encrypt 0x6bc1bee22e409f96e93d7e
117393172a
After encrypt 0x7649abac8119b246cee98e
9b12e9197d