Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

Мотивация [ править ]

Небезопасное шифрование изображения в результате кодирования в режиме электронной кодовой книги .

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

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

Свойства [ править ]

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

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

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

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

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

Блочные шифры [ править ]

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

Потоковые шифры [ править ]

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

WEP IV [ править ]

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

SSL 2.0 IV [ править ]

В режиме цепочки зашифрованных блоков ( режим CBC) IV не обязательно должен быть секретным, но должен быть непредсказуемым (в частности, для любого заданного открытого текста не должно быть возможности предсказать IV, который будет связан с открытым текстом, до поколение IV.) во время шифрования. Кроме того, для режима OFB IV должен быть уникальным. [8] В частности, (ранее) распространенная практика повторного использования последнего блока зашифрованного текста сообщения в качестве IV для следующего сообщения является небезопасной (например, этот метод использовался SSL 2.0). Если злоумышленник знает IV (или предыдущий блок зашифрованного текста) до того, как он укажет следующий открытый текст, он может проверить свое предположение об открытом тексте некоторого блока, который ранее был зашифрован с тем же ключом. Это известно как атака TLS CBC IV, также называемая атакойЗВЕРЬ атака . [9]

См. Также [ править ]

  • Криптографический одноразовый номер
  • Padding (криптография)
  • Случайное семя
  • Соль (криптография)
  • Режимы работы блочного шифра
  • CipherSaber (RC4 с IV)

Ссылки [ править ]

  1. ^ ISO / IEC 10116: 2006 Информационные технологии. Методы безопасности. Режимы работы для n- битного блочного шифра.
  2. Алекс Бирюков (2005). «Некоторые мысли о компромиссах между временем, памятью и данными» . Архив IACR ePrint .
  3. ^ Джин Хун; Палаш Саркар (2005). «Повторное открытие компромиссов памяти времени» . Архив IACR ePrint .
  4. Алексей Бирюков; Сурав Мухопадхьяй; Палаш Саркар (2007). «Улучшение компромисса между памятью и временем при использовании нескольких данных». LNCS . Спрингер (3897): 110–127.
  5. ^ Кристоф де Канньер; Джозеф Лано; Барт Пренил (2005). Комментарии к повторному открытию алгоритма компромисса времени / памяти / данных (PDF) (технический отчет). ECRYPT Stream Cipher Project. 40.
  6. ^ CWE-329: Не использовать случайный IV в режиме CBC
  7. ^ Никита Борисов , Ян Голдберг , Дэвид Вагнер . «Перехват мобильной связи: незащищенность стандарта 802.11» (PDF) . Проверено 12 сентября 2006 . Цитировать журнал требует |journal=( помощь )CS1 maint: несколько имен: список авторов ( ссылка )
  8. ^ Моррис Дворкин (2001), Рекомендация NIST по режимам работы блочного шифра; Главы 6.2 и 6.4 (PDF)
  9. ^ Б. Мёллер (20 мая 2004 г.), Безопасность наборов шифров CBC в SSL / TLS: проблемы и меры противодействия

Дальнейшее чтение [ править ]

  • Шнайер, Б. (1996). Прикладная криптография (2-е изд.). Нью-Йорк: Вили. ISBN 978-0-471-12845-8.
  • Ferguson, N .; Шнайер, Б. (2003). Практическая криптография . Нью-Йорк: Вили. ISBN 978-0-471-22894-3.