Рейтинг:3

Режим CBC с предсказуемым IV подходит, если ключ используется только один раз?

флаг mc

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

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

Maarten Bodewes avatar
флаг in
Интересно - я не смог найти обман на этом сайте, хотя уверен, что это было хотя бы частью других ответов. Самое близкое, что я смог найти, это [этот ответ] (https://crypto.stackexchange.com/a/5099/1172). Очевидно, что идентичные данные в начале нескольких сообщений и, по крайней мере, одного блока приведут к идентичным блокам зашифрованного текста, поэтому повторное использование комбинации ключ/IV никогда не будет безопасным с точки зрения IND-CPA, если не предъявляются конкретные требования к входным сообщениям, *независимо*, если атакующий контролирует сообщения - активная атака/оракул не требуется.
Maarten Bodewes avatar
флаг in
Полный обман [здесь] (https://security.stackexchange.com/q/10081/2651), но опубликованный на [security.se] до того, как этот сайт существовал.
automatictester avatar
флаг ht
Вам может быть интересно [это] (https://security.stackexchange.com/questions/17044/when-using-aes-and-cbc-is-it-necessary-to-keep-the-iv-secret)
Meir Maor avatar
флаг in
У нас должен быть ответ на этот вопрос здесь, в криптографии, законный вопрос, ответ, указанный выше, кажется полным ответом, мы должны скопировать его дословно и дать ссылку на оригинал? (возможно, как ответ сообщества). Написать что-то оригинальное, что говорит по сути то же самое, возможно, добавив что-то не очень важное, просто чтобы почувствовать, что мы сделали что-то новое?
Maarten Bodewes avatar
флаг in
Хм, может быть, мне следовало опубликовать свой ответ на ссылку, которую автоматический тестер включил здесь, а затем сделать ссылку на нее с сайта безопасности. Я не уверен в этом, может быть, что-то для [мета].
Рейтинг:3
флаг my

Итак, прав ли этот человек, делает ли использование ключа для шифрования только один раз безопасным использование предсказуемого IV?

Да, он прав.

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

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

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

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

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

fgrieu avatar
флаг ng
Я не вижу в вопросе ничего такого, что делало бы многоцелевую атаку невозможной. Таким образом, я не могу согласиться. См. [мой ответ] (https://crypto.stackexchange.com/a/93801/555).
Рейтинг:1
флаг ng

Итак, прав ли этот человек, делает ли использование ключа для шифрования только один раз безопасным использование предсказуемого IV?

Нет, он неверен как минимум академически. А в некоторых случаях практически.

Это связано с так называемыми многоцелевыми атаками. Предполагая $b$-битные ключи и $к$ используются случайные ключи (и, таким образом, $к$ зашифрованные тексты) для известного общего (или выбранного) первого блока $P_0$ открытого текста (например, одинаковое начало полезной нагрузки), существует так называемая многоцелевая атака с ожидаемой стоимостью $2^{b-1}/к$ шифрования, восстанавливающие один полный открытый текст, то есть $к$ раз быстрее, чем со случайным IV. Эта атака просто перечисляет ключи, шифрует известные фиксированные $\text{IV}\oplus P_0$, и ищет результат в таблице всех первых блоков зашифрованного текста (которые можно оптимизировать так, чтобы они стоили чуть больше одного доступа к памяти).

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

poncho avatar
флаг my
Если бы был только миллион возможных ключей, вы уже в значительной степени сломались...
fgrieu avatar
флаг ng
@poncho: я уточнил, что я имею в виду. Мой миллион (теперь тысячи) — это не количество _возможных_ ключей для блочного шифра, а количество фактически использованных паролей, таким образом, _фактически использованных целевых_ ключей для блочного шифра, полученных с помощью функции вывода ключа на основе пароля, например Предполагается, что в Argon2 Scrypt или PBKDF2 отсутствует случайная соль.
Meir Maor avatar
флаг in
Мне очень приятно, что я проголосовал за два хороших ответа, один из которых ответил «да», а другой — «нет».

Ответить или комментировать

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