【问题标题】:AES and its cipher modesAES 及其密码模式
【发布时间】:2023-03-23 11:26:01
【问题描述】:

我尝试使用 AES 加密/解密,然后我尝试了 CBC 和 ECB 模式 我从这三个中得到了相同的加密输出!事情是这样的吗?
这可能没有错,但我只是不知道会发生什么。如果它们都产生相同的密码,那么拥有模式有什么意义?是时间复杂度还是性能复杂度?

你能解释一下 AES 和它的密码模式之间的区别吗?什么是默认密码模式?或者如果你可以给我任何参考因为 MSDN 不够清楚

谢谢

【问题讨论】:

  • 您的输入是否比密码的块长度长?因为这些模式控制如何对超过一个块的输入进行加密(请参阅en.wikipedia.org/wiki/Block_cipher_modes_of_operation)。只有一个方块,不同的模式可以给出相同的结果(当然取决于 IV)
  • @Grizzly 我正在尝试像我的名字这样的东西 :) 没有足够长的时间来看到我猜的差异。谢谢
  • 也谢谢你@BenRobinson
  • @katia:请注意,您不应为 CBC 使用零(或其他固定)初始化向量,而应使用随机向量。永远不要使用 ECB,直到你明白为什么不应该使用它。

标签: c# encryption cryptography encryption-symmetric aescryptoserviceprovider


【解决方案1】:

CBC 和 ECB 模式是在加密大于一个块(AES 中为 128 位)的数据时使用对称加密算法的方法。因此,如果您要加密适合一个块的数据,则 CBC 和 ECB 模式将产生相同的密文(假设您在使用 CBC 模式时使用空 IV)。如果您加密的数据大于一个块,或者您使用的 IV 不为空,并且您看到相同数据的 CBC 和 ECB 加密结果相同,那么您的代码做错了。

这在维基百科条目中有很好的解释。

http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多