Шифрование AES как транспортировать IV
Я понимаю, что уникальный IV важен для шифрования, чтобы предотвратить атаки, такие как частотный анализ. Вопрос: для шифрования AES CBC, какова важность IV? имеет довольно ясный ответ, объясняющий важность IV.
будут ли какие-либо дыры в безопасности при отправке IV в ясном тексте? Или его нужно будет зашифровать тем же открытым / закрытым ключом, который использовался для отправки симметричного ключа?
Если IV необходимо отправить зашифрованный, тогда почему бы не генерировать новый симметричный ключ каждый раз и рассматривать IV как часть ключа? Является ли создание симметричного ключа слишком дорогостоящим? Или для того, чтобы минимизировать объем передаваемых данных?
верхний ответ для секрет против не секретного вектора инициализации гласит:
типичный протокол установления ключа приведет к тому, что обе стороны будут вычислять часть данных, которые они, но только они, оба знают. С Диффи-Хеллман (или любой его вариант эллиптической кривой), указанный общий кусок данных имеет фиксированную длину, и они не контролируют его значение (они просто получают одинаковую, казалось бы, случайную последовательность битов).
Как два объекта получают "одну и ту же, казалось бы, случайную последовательность битов", не имея общей части информации? Является ли предположение, что общая информация была отправлена в зашифрованном виде? И, если общая информация отправляется в зашифрованном виде, почему бы просто не отправить IV зашифровано?
поскольку приложение должно безопасно транспортировать симметричный ключ, казалось бы, что Отделение IV от самого ключа по существу является оптимизацией. Или я что-то упускаю?
2 ответов
нет дыры в безопасности, отправив IV в открытом тексте - это похоже на хранение соли для хэша в открытом тексте: пока злоумышленник не имеет контроля над IV/salt, и пока он случайный, нет проблем.
на главное отличие вектора инициализации и ключа, что ключ должен храниться в секрете, в то время как IV не должен быть - он может быть прочитан злоумышленником без какой-либо опасности для безопасности схемы шифрования в вопрос.
идея в том, что вы можете использовать один и тот же ключ для нескольких сообщений, ТОЛЬКО используя разные (случайные) векторы инициализации для каждого, поэтому отношения между обычными текстами не отображаются в соответствующем зашифрованный текст.
тем не менее, если вы используете схему ключевого соглашения, такую как Diffie-Hellman, которая дает вам новый общий секрет для каждого сеанса, вы также можете использовать его для создания первого вектора инициализации. Это на самом деле не дает больших преимуществ безопасности по сравнению с выбором вектора инициализации напрямую и отправкой его с сообщением, но сохраняет некоторые биты полосы и некоторые биты энтропии из вашего случайного источника. И это делает IV немного более случайным в случай, когда у одного из партнеров есть плохой источник случайности (хотя DH в этом случае тоже не очень безопасен).
как два объекта получают "одну и ту же, казалось бы, случайную последовательность битов", не имея общей части информации? Является ли предположение, что общая информация была отправлена в зашифрованном виде? И, если общая информация отправляется в зашифрованном виде, почему бы просто не отправить капельницу зашифрованной?
Диффи-Хеллман основан на теоретико-групповой задаче: Ева знает (циклическую) группу 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).