Почему openssl aes-128-ecb не приводит к повторным последовательностям? - PullRequest
2 голосов
/ 06 декабря 2011

Я играю с 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 5a38X77 * * * * IW * * * * * I = 1016символ в plain.txt должен представлять один байт.16 символов = 128 битКак видите, я пытаюсь выровнять последовательности в 128-битных блоках, чтобы увидеть повторяющиеся последовательности.

Что не так с логикой выше?

1 Ответ

8 голосов
/ 06 декабря 2011

Ваша командная строка использует 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
...