IV работает как соль

В AES я понимаю, что salt - это то, что делает парольную фразу более безопасной и не будет добавляться в зашифрованный текст. Но IV - это материал, который используется для шифрования первого блока сообщения и будет добавлен в зашифрованный текст.

Я что-то не так понимаю?


person Kelvin    schedule 22.12.2009    source источник


Ответы (4)


Сам по себе AES напрямую не использует соль (или даже IV).

Ситуация, когда вы можете использовать соль в сочетании с AES, - это когда вы используете шифрование на основе пароля (PBE). В этой схеме для генерации ключа AES используется запоминаемый человеком пароль в сочетании с солью. Используется соль, чтобы один и тот же пароль не всегда генерировал один и тот же ключ; однако, поскольку получатель должен иметь возможность сгенерировать правильный ключ, соль должна быть передана вместе с зашифрованными данными.

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

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

person caf    schedule 23.12.2009
comment
Если и соль, и IV отправляются с зашифрованными данными, какой в ​​них смысл? Потому что злоумышленник может легко получить соль и IV из данных, тогда единственная задача - получить кодовую фразу, что не то же самое, что метод без соли и IV? - person Kelvin; 24.12.2009
comment
Прочтите мой ответ еще раз внимательно. Соль используется для того, чтобы один и тот же пароль не всегда генерировал один и тот же ключ - это, помимо прочего, означает, что злоумышленник не может в автономном режиме создать словарь паролей к ключам. IV аналогичным образом гарантирует, что один и тот же открытый текст не создает одинаковый зашифрованный текст - это означает, что злоумышленник не может создать набор шпаргалок. Они не останавливают атаки грубой силой (вы не можете этого сделать), но они максимизируют время / память, необходимые для атаки грубой силой, и эффективно предотвращают некоторые предварительные вычисления. - person caf; 24.12.2009
comment
Спасибо за твой быстрый ответ. Насколько я понимаю, это шифрование без соли, а IV будет чем-то вроде уравнения f (данные) = x (кодовая фраза), а с солью и IV будет f (данные) = x + y (соль) + z (IV). y и z, то второе уравнение будет таким же, как и первое. Я что-то здесь неправильно понял? - person Kelvin; 24.12.2009
comment
Да, вы неправильно поняли, что второе уравнение на самом деле X'(data, passphrase, salt, IV) - влияние соли и IV не может быть выделено отдельно. - person caf; 24.12.2009
comment
Кстати, некоторые люди, упомянутые в IV, могут быть общедоступными, но соль должна храниться в надежном месте. Как тогда можно было передавать соль с зашифрованным текстом? Потому что передача с зашифрованным текстом сделает его общедоступным? - person Kelvin; 24.12.2009
comment
Соль в PBE не нуждается в безопасности (и не может быть, потому что законный получатель нуждается в ней, чтобы иметь возможность восстановить ключ). Просто убедитесь, что вы выбираете соль случайным образом, и выбирайте новую каждый раз при запуске нового сеанса шифрования. - person caf; 24.12.2009
comment
Разве наличие соли и капельницы не является избыточным? Если у меня PBE в режиме AES CBC, и я всегда использую один и тот же IV, но я всегда использую случайно сгенерированную соль, разве этого не достаточно? Все полученные шифры будут уникальными, потому что я никогда не смогу дважды зашифровать один и тот же открытый текст. Что мне здесь не хватает? - person Didier A.; 29.08.2013

Я не совсем понимаю, что вы говорите, но вот обзор.

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

IV используются при шифровании больших файлов, чтобы избежать шифрования одинаковых разделов в одно и то же.

Они очень похожи, но вот отличия.

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

IV всегда подвергаются операции XOR с результатом шифрования. Причина, по которой это выполняется впоследствии, заключается в том, что только первый фрагмент использует IV, а остальные используют предыдущий фрагмент для этого XORing.

Это различие важно, потому что соль, которая подвергается XOR-операции с зашифрованной формой пароля, легко взламывается, а IV предназначены для предотвращения атак стиля распознавания образов по сравнению со словарными атаками файлов паролей.

person Guvante    schedule 22.12.2009

Нет. IV предотвращает появление идентичных в остальном сообщений одинаковыми. Это приведет к утечке информации, в частности о том, что вы передаете одно и то же сообщение более одного раза.

person Peter    schedule 22.12.2009
comment
2 разных IV в одном и том же открытом тексте будут давать 2 разных шифра, как и две разные соли. Не думаю, что вы правильно ответили на вопрос. - person Murmel; 31.08.2016

Чтобы добавить к ответу @Guvante, IV специально используется с режимом CBC (режим цепочки блоков шифров), и он добавляет большую безопасность по сравнению с режимом EBC ​​(где, если два идентичных блока, зашифрованных с одним и тем же ключом, они производят один и тот же шифр), IV исправляет тот.

Соль - это скорее термин хеширования, используемый для борьбы с радужными атаками, он не делает взлом невозможным, но делает невозможным обнаружение закономерностей между идентичными паролями, поэтому один и тот же пароль в виде открытого текста не создает одинаковый хэш. Они очень похожи, но важно понимать использование и реализацию каждого из них.

person mshwf    schedule 12.10.2020