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

Uma*_*lik 11 php encryption zencoder

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

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

vis*_*071 27

3件事:

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

现在,您的客户端要求您使用AES-128加密.因此,您应该使用128位密钥大小的AES加密.您可以使用的任何模式都是您的首选.我更喜欢CBC.

  • 强烈考虑从CBC切换到CTR + HMAC (3认同)
  • 老实说,两者的安全边距是可以互换的。CTR模式的优点是您无需处理填充,因为它将AES转换为流密码,并将密钥流与明文异或。Defuse的加密库2.0设置为有效使用256位随机数(128位随机数和HKDF的128位盐值,因此即使随机数发生冲突,该消息的密钥对也不会)-假设我的PR当然是合并的。这意味着在发生2 ^ 128条消息后,生日碰撞将以50%的概率发生。 (3认同)

Vin*_*ent 18

关于加拿大广播公司和欧洲央行的简短说明.使用ECB加密时,每128位(取决于块大小)数据都使用相同的密钥加密.如果明文中存在任何模式,则无论加密算法有多好,所得到的加密文本也是可预测的.

欧洲央行:

Plain text: aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
            ---------------- ---------------- ----------------
Encrypted:  bdefjakjapqeiowp bdefjakjapqeiowp bdefjakjapqeiowp
Run Code Online (Sandbox Code Playgroud)

如果你使用CBC,第一个块与IV(初始化向量)进行异或,并用密钥加密,第二个块与第一个块进行异或,然后用密钥加密,第三个块用第二个块加密.由此产生的密码不易受频率分析的影响. CBC加密模式

此图片来自免费媒体存储库Wikimedia Commons

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

  • 示例标题有误吗?我应该是欧洲央行 (2认同)