aes-128-cbc 和 aes-128 加密有什么区别吗?

2022-08-30 20:17:29

我想知道这两种加密方法之间是否有任何区别?我以前从未使用过这些。我的客户要求我使用AES-128加密,但当我谷歌搜索它时,它显示“aes-128-cbc”,“aes-128-ctr”,“aes-256-cbc”或“aes-256-ctr”,所以我想知道我应该使用哪一个像AES-128?

参考链接:这是我必须发送加密方法的地方


答案 1

3件事:

  • AES:高级加密标准。这是加密算法的名称(对称加密)。其他对称加密算法有:DES、3-DES等。
  • 128:这可能是指密钥大小。AES 加密使用 3 种密钥大小(128 位、192 位和 256 位)。AES 中的块大小也是 128 位。
  • CBC:这是你想要的加密模式。加密模式有很多种,这取决于您希望算法工作的速度、并行性和安全级别。一些模式是CBC(密码块链接),ECB(电子密码本),CFB(密码反馈),CTR(计数器)等。

现在,您的客户要求您使用 AES-128 进行加密。因此,您应该使用128位密钥大小的AES加密。您可以使用的任何模式都将是您的偏好。我更喜欢CBC。


答案 2

只是关于CBC与欧洲央行的快速说明。当您使用 ECB 加密时,每 128 位数据(取决于块大小)都会使用相同的密钥进行加密。如果明文中存在任何模式,则无论加密算法有多好,生成的加密文本也将是可预测的。

欧洲 央行:

Plain text: aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
            ---------------- ---------------- ----------------
Encrypted:  bdefjakjapqeiowp bdefjakjapqeiowp bdefjakjapqeiowp

如果你使用CBC,第一个块使用IV(初始化向量)获得XOR,并使用密钥加密,第二个块使用第一个块获得XOR,然后使用密钥加密,第三个块使用第二个块。然后,生成的密码就不易受到频率分析的影响。CBC Encryption mode

本图像取自维基共享资源,自由媒体库

缺点是您无法并行化加密/解密,因为您需要上一个块的结果,因此它可能会变慢。但在实践中,它并没有真正的区别。


推荐