Подтвердить что ты не робот

Шифрование AES, как транспортировать IV

Я понимаю, что уникальный IV важен для шифрования, чтобы предотвратить атаки, такие как частотный анализ. Вопрос: Для шифрования AES CBC, в чем важность IV? имеет довольно четкий ответ, объясняющий важность IV.

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

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


Верхний ответ Секретный и несекретный вектор инициализации гласит:

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

Как два объекта получают "такую ​​же, казалось бы, случайную последовательность бит", не имея общей информации? Предполагается ли, что общая информация была отправлена ​​зашифрованной? И, если общая информация отправляется зашифрованной, почему бы просто не отправить зашифрованный IV?


Поскольку приложение должно безопасно переносить симметричный ключ, казалось бы, разделение IV с самим ключом по существу является оптимизацией. Или я что-то упускаю?

4b9b3361

Ответ 1

Нет дыры в безопасности, отправляя IV в открытом виде - это похоже на сохранение соли для хеша в открытом тексте: до тех пор, пока атакующий не имеет контроля над IV/солью, и до тех пор, пока он является случайным, нет проблем.

Ответ 2

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

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

Тем не менее, если вы используете схему ключевых соглашений, такую ​​как Diffie-Hellman, которая дает вам новый общий секрет для каждого сеанса, вы также можете использовать его для генерации первого вектора инициализации. Это не дает особых преимуществ для обеспечения безопасности по сравнению с выбором вектора инициализации напрямую и отправкой его с помощью сообщения, но сохраняет некоторые биты полосы пропускания и некоторые биты энтропии из вашего случайного источника. И это делает IV более случайным, если у одного из партнеров есть источник плохой случайности (хотя в этом случае DH тоже не очень безопасен).

Как два объекта получают "такую ​​же, казалось бы, случайную последовательность бит", не имея общей информации? Предполагается ли, что общая информация была отправлена ​​зашифрованной? И, если общая информация отправляется зашифрованной, почему бы просто не отправить зашифрованный IV?

Diffie-Hellman основан на теоретико-групповой задаче: Ева знает (циклическую) группу G с генератором G и видит два значения g^a (переданные от Алисы к Бобу) и g^b (переданный от Боба к Алисе), где a и b - случайные большие целые числа, выбранные Алисой и Бобом, и неизвестные Еве и даже другому партнеру). Общий секрет - это (g^a)^b = g^(a·b) = (g^b)^a. Очевидно, что Боб (который знает b) может вычислить секрет как (g^a)^b, в то время как Алиса (кто знает a) может вычислить (g^b)^a. Еве как-то нужно вывести этот секрет, чтобы взломать протокол.

В некоторых группах эта (известная как вычислительная проблема Диффи-Хеллмана) представляется трудной проблемой, и мы используем эти группы в криптографии. (В исходном DH мы используем подгруппу простого порядка мультипликативной группы некоторого большого конечного простого поля, в эллиптической кривой DH мы используем группу эллиптических кривых над конечным полем. Другие группы тоже работают.)

Затем оба Алиса и Боб используют функцию деривации ключа для получения фактического материала манипуляции (то есть ключей шифрования для обоих направлений, MAC-ключей и стартовых IV).