Можно ли НЕ использовать IV при реализации расшифровки Rijndael? - PullRequest
4 голосов
/ 05 сентября 2011

Я реализую расшифровку зашифрованного текста с использованием алгоритма Рейндаэля. К сожалению, я не получил доступа к шифрованию данных и получил только пароль (для генерации ключа) и тип алгоритма.

У меня нет соли (что вроде бы нормально), и у меня нет IV. Теперь мой вопрос заключается в том, должен ли я иметь IV для выполнения расшифровки? Я подозреваю, что разработчики, которые написали шифрование, не использовали соль или IV (если это вообще возможно).

Я попытался установить пустое значение IV, и при создании экземпляра Rijndael создается стандартный IV, и это искажает первые 16 символов моего открытого текста после расшифровки.

Есть ли способ отменить эффект IV? Или нужно попытаться выяснить, какой IV использовался при шифровании?

Ответы [ 3 ]

3 голосов
/ 05 сентября 2011

Вы можете использовать режим ECB, и он будет игнорировать IV.Вам нужен IV для других режимов, таких как CBC.

3 голосов
/ 05 сентября 2011

Если шифр использовался для шифрования в режиме CBC (который является значением по умолчанию ), то вам нужно знать IV, нет никакого способа обойти это.

Однако, так какназначение IV не совпадает с назначением пароля, иногда вы обнаруживаете, что IV добавлен к зашифрованным данным (так что получатель может легко получить его для использования при расшифровке).

1 голос
/ 05 сентября 2011

Если он был зашифрован с помощью IV, то да, вам понадобится IV для правильной расшифровки.

Из вашего описания о первых 16 символах звучит, как будто вы работаете в режиме CBC,Смотрите схему здесь, чтобы узнать, почему вам понадобится IV: http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29.

...