Пароль, Соль и IV, мне нужны все они?

Если бы я использую режим Rijndael CBC, я понятия не имею, почему мы должны были бы посолить. Мое понимание - то, даже если люди знают пароль, но он не может получить данные без IV. Таким образом с моей точки зрения, пароль + IV, кажется, безопасный sufficent.

Я получаю что-то не так?

37
задан Kelvin 15 December 2009 в 04:13
поделиться

3 ответа

Да, вам нужно все это.

Соль (и «счетчик итераций») используется для получения ключа из пароля. Обратитесь к PKCS # 5 для получения дополнительной информации. Соль и количество итераций, используемых для получения ключа, не обязательно должны быть секретными. Однако соль должна быть непредсказуемой, и ее лучше всего выбирать случайным образом.

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

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


Обновление:

Пароли не выбираются случайно; некоторые пароли более вероятны, чем другие. Таким образом, вместо того, чтобы генерировать все возможные пароли заданной длины (исчерпывающий перебор), злоумышленники ведут список паролей, упорядоченный по убыванию вероятности.

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

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

Соль необходима для предотвращения атак с предварительным вычислением.

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

Вектор инициализации необходим для скрытия шаблонов в сообщениях.

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

Соль необходима для предотвращения атак с предварительным вычислением.

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

Вектор инициализации необходим, чтобы скрыть шаблоны в сообщениях.

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

Соль необходима для предотвращения атак с предварительным вычислением.

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

Вектор инициализации необходим, чтобы скрыть шаблоны в сообщениях.

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

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

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

48
ответ дан 27 November 2019 в 04:50
поделиться

Перво-наперво: у Rijndael нет «пароля» в режиме CBC. Rijndael в режиме CBC использует буфер для шифрования или дешифрования, ключ и IV.

«Соль» обычно используется для шифрования паролей. Соль добавляется к паролю, который зашифрован и хранится с зашифрованным значением. Это мешает кому-либо составить словарь того, как шифруются все пароли - вам нужно создать словарь того, как все пароли шифруются для всех солей. На самом деле это было возможно с помощью старого алгоритма шифрования паролей Unix, который использовал только 12-битную соль. (Это увеличило коэффициент работы на 4096). С 128-битной солью это невозможно.

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

Однако у вас есть IV, который делает примерно то же самое, что и Salt. Вам не нужны оба. Или, скорее, IV - ваша соль.

Кстати, в наши дни мы называем "Rijndael" AES.

6
ответ дан 27 November 2019 в 04:50
поделиться

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

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

1
ответ дан 27 November 2019 в 04:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: