Вектор инициализации

редактировать

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

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

Размер IV зависит от используемого криптографического примитива; для блочных шифров это обычно размер блока шифра. В идеале для схем шифрования непредсказуемая часть IV имеет тот же размер, что и ключ для компенсации атак компромисса времени / памяти / данных. Когда IV выбирается случайным образом, необходимо учитывать вероятность коллизий из-за проблемы дня рождения. Традиционные потоковые шифры, такие как RC4, не поддерживают явный IV в качестве входных данных, поэтому требуется специальное решение для включения IV в ключ шифра или во внутреннее состояние. Известно, что некоторые конструкции, реализованные на практике, небезопасны; протокол WEP является ярким примером и подвержен атакам related-IV.

Содержание
  • 1 Мотивация
  • 2 Свойства
  • 3 Блочные шифры
  • 4 Поток шифры
  • 5 WEP IV
  • 6 SSL 2.0 IV
  • 7 См. также
  • 8 Ссылки
  • 9 Дополнительная литература
Мотивация
Небезопасное шифрование изображения в результате кодирование в режиме электронной кодовой книги.

A блочный шифр является одним из самых основных примитивов в криптографии и часто используется для шифрования данных. Однако сам по себе он может использоваться только для кодирования блока данных заранее определенного размера, называемого размером блока . Например, однократный вызов алгоритма AES преобразует 128-битный блок открытого текста в блок зашифрованного текста размером 128 бит. Ключ , который задается как один вход для шифра, определяет соответствие между открытым текстом и зашифрованным текстом. Если данные произвольной длины должны быть зашифрованы, простая стратегия состоит в том, чтобы разделить данные на блоки, каждый из которых соответствует размеру блока шифра, и зашифровать каждый блок отдельно с использованием одного и того же ключа. Этот метод небезопасен, поскольку равные блоки открытого текста преобразуются в равные зашифрованные тексты, и третья сторона, наблюдающая за зашифрованными данными, может легко определить их содержимое, даже не зная ключа шифрования.

Чтобы скрыть шаблоны в зашифрованных данных, избегая повторной выдачи нового ключа после каждого вызова блочного шифра, необходим метод рандомизации входных данных. В 1980 году NIST опубликовал национальный стандартный документ, обозначенный Федеральный стандарт обработки информации (FIPS) PUB 81, в котором были определены четыре так называемых режима работы блочного шифра, каждый из которых описывает свое решение для шифрования набора входных блоков. Первый режим реализует простую стратегию, описанную выше, и был определен как режим электронной кодовой книги (ECB). Напротив, каждый из других режимов описывает процесс, в котором зашифрованный текст из одного шага блочного шифрования смешивается с данными из следующего шага шифрования. Чтобы инициировать этот процесс, необходимо смешать дополнительное входное значение с первым блоком, которое называется вектором инициализации. Например, режим цепочки блоков шифра (CBC) требует непредсказуемого значения размера, равного размеру блока шифра, в качестве дополнительного ввода. Это непредсказуемое значение добавляется к первому блоку открытого текста перед последующим шифрованием. В свою очередь, зашифрованный текст, созданный на первом этапе шифрования, добавляется ко второму блоку открытого текста и так далее. Конечная цель схем шифрования - обеспечить семантическую безопасность : благодаря этому свойству злоумышленник практически не может извлечь какие-либо сведения из наблюдаемого зашифрованного текста. Можно показать, что каждый из трех дополнительных режимов, определенных NIST, семантически безопасен при так называемых атаках с выбранным открытым текстом.

Свойства

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

Пример: Потоковые шифры шифруют открытый текст P в зашифрованный текст C, получая ключевой поток K из заданного ключа и IV и вычисляя C как C = P xor K. Предположим, что злоумышленник обнаружил два сообщения C 1 и C 2 оба зашифрованы одним и тем же ключом и IV. Тогда знание либо P 1, либо P 2 открывает другой открытый текст, поскольку
C1xor C 2 = (P 1 xor K) xor (P 2 xor K) = P 1 xor P 2.

Многие схемы требуют, чтобы IV был непредсказуемым противником. Это достигается путем выбора IV в случайном или псевдослучайном. В таких схемах вероятность дублирования IV пренебрежимо мала, но необходимо учитывать влияние проблемы дня рождения. Что касается требования уникальности, предсказуемый IV может позволить восстановление (частичного) открытого текста.

Пример: Рассмотрим сценарий, в котором легитимная сторона по имени Алиса шифрует сообщения, используя режим цепочки блоков шифрования. Рассмотрим далее, что есть злоумышленник по имени Ева, который может наблюдать за этим шифрованием и может пересылать сообщения открытого текста Алисе для шифрования (другими словами, Ева способна к атаке с выбранным открытым текстом ). Теперь предположим, что Алиса отправила сообщение, состоящее из вектора инициализации IV 1 и начинающееся с блока зашифрованного текста C Алиса. Пусть далее P Алиса обозначает первый блок открытого текста сообщения Алисы, пусть E обозначает шифрование, и пусть P Eve будет предположением Евы для первого блока открытого текста. Теперь, если Ева сможет определить вектор инициализации IV 2 следующего сообщения, она сможет проверить свое предположение, переадресовав текстовое сообщение Алисе, начиная с (IV 2 xor IV 1 xor P Ева); если ее предположение было правильным, этот блок открытого текста будет зашифрован Алисой на C Алиса. Это связано со следующим простым наблюдением:
CАлиса = E (IV 1 xor P Алиса) = E (IV 2 xor ( IV 2 xor IV 1 xor P Алиса)).

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

Блочные шифры

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

Потоковые шифры

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

WEP IV

Алгоритм 802.11 шифрования называется WEP (сокращение от Wired Equivalent Privacy ) использовал короткий 24-битный IV, что приводило к многократному использованию IV с тем же ключом, что приводило к его легкому взлому. Внедрение пакета позволяло взламывать WEP за несколько секунд. В конечном итоге это привело к прекращению поддержки WEP.

SSL 2.0 IV

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

См. Также
Ссылки
Дополнительная литература
Последняя правка сделана 2021-05-24 03:01:23
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте