为什么openssl aes-128-ecb不会导致重复序列?

时间:2011-12-06 03:12:14

标签: openssl aes

我正在使用openssl来了解有关对称加密的更多信息。我读到ECB(电子密码本)模式不如CBC(密码块链接)那么安全的一个原因是由于在ECB模式下,密码(在这种情况下,aes-128)在128位加密时间,这可能导致出现相同的序列。例如,如果文件中多次出现“安全性”一词,并且它们恰好以128位序列对齐,则应出现重复序列。我试图在实际环境中看到这种效果,特别是使用openssl。

我输入的命令是:

openssl aes-128-ecb -a -in plain.txt -out cipher.txt

plain.txt包含:     0123456789abcdef0123456789abcdef

我使用的加密密码是“密码”(没有双引号)。

cipher.txt包含:     U2FsdGVkX18qCQ5SjLaVsLS8als / h5eJl69ATS3pD94x5kwkpmfNWauW / lUOZdeC 5a38fSS7mTUc7hT7XiXdIw ==

如果我正确理解了所有内容,则plain.txt中的每个字符都应代表一个字节。 16个字符= 128位。正如您所看到的,我正在尝试将序列与128位块对齐以查看重复序列。

上面的逻辑出了什么问题?

1 个答案:

答案 0 :(得分:8)

您的命令行使用base64,salt和padding,所有这些都搞砸了。尝试:

openssl aes-128-ecb -in plain.text -out cipher.txt -nosalt -nopad

你会发现cipher.txt包含32个字节:

 83 d2 41 fb ca 6e 8a e3 3b 6e 55 ae 2c ac 62 af
 83 d2 41 fb ca 6e 8a e3 3b 6e 55 ae 2c ac 62 af