ECB(Electronic Codebook mode)是加密模式,加解密比较简单。各个块之间相互独立,互不影响,因此便于并行计算。
参考文献
- NIST SP 800-38A
- ECB加解密
ECB 加密: Cj = CIPHK(Pj) for j = 1 … n.
ECB 解密: Pj = CIPH -1K(Cj) for j = 1 … n.
ECB模式需要用到解密函数。
ECB模式
ECB模式中,在相同的密钥下相同的明文块被加密将得到相同的密文,但别的模式不会出现这样的情况。在实际的某些应用中有的数据块很可能是相同的。因此它不能很好的隐藏数据,无法提供严格的数据保密性。由于这一特性,ECB不用于密码协议中。下面的例子显示了ECB模式的这一特征。原始图像(左图)通过ECB模式可能会被加密成中图,而非ECB模式(如CBC,CTR或其它更安全的模式)通常会将其加密成右图(至少看起来与随机噪声一样杂乱无章)。
原图 |
ECB加密 |
伪随机的非ECB加密 |
ECB模式不能很好的隐藏数据
- LibTomCrypt与ECB
在aes.c可以看到ECB被直接绑定为AES的基本加解密
#define SETUP rijndael_setup
#define ECB_ENC rijndael_ecb_encrypt
#define ECB_DEC rijndael_ecb_decrypt
#define ECB_DONE rijndael_done
#define ECB_TEST rijndael_test
#define ECB_KS rijndael_keysize
也就是说在调用加密算法对某个分组的数据做加解密时,分别调用ecb_encrypt和ecb_decrypt。