如果您不希望重复结果,ECB是否是一个安全的选择?

时间:2012-09-16 08:00:26

标签: security mcrypt rijndael ecb

我想使用Rijndael-256加密文本的长段落(文本已经压缩并在此之前转换为base64)。

两者不太可能相同。但是,如果它们恰好是,那么在文本的开头或结尾添加一个随机密钥可以保护它(不管它们是否相同),以防万一用户写相同的文本?

如果我确保没有100%相同的结果,如果你不会得到重复的结果,ECB是否安全?

或者是这样的:(使用base64 ......不准确,只是一个例子)

_Hello world_ = ahjkIOn25o

_To echo "Hello world,"_ = qw90klnN2_ahjkIOn25o_kL3

_Hello world is the_ = _ahjkIOn25o_hjAB27

因此,如果有人在其文本中隐藏了一个短语,那么无论文本中的其他内容是什么,还是短语在文本中的位置,它总是输出相同的ECB?

1 个答案:

答案 0 :(得分:2)

我建议使用像CBC这样的东西。您所要做的就是添加IV。

  

因此,如果有人在其文本中隐藏了一个短语,那么无论文本中的其他内容是什么,还是短语在文本中的位置,它总是输出相同的ECB?

两个完全相同的明文块将成为完全相同的密文块。

因此,它取决于隐藏短语的长度以及它在块内的位置。只有当块的整个内容相同时,结果才会相同。

我认为它更适用于两种情况:

  • 您有大量结构化数据(例如图片或视频)
  • 您使用相同的密钥加密多条消息(转换为大量数据)。

这种情况都可能让攻击者弄清楚你的内部结构。

我建议你看一下:http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 它显示了ECB的问题。

一般来说,使用其他模式比使用

更容易
  • 解决欧洲央行的弱点
  • 担心您是否考虑了所有可能的情况。