Лекция
Привет, Вы узнаете о том , что такое вектор инициализации, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое вектор инициализации, initialization vector, начальная переменная , настоятельно рекомендую прочитать все из категории Шифры в криптографии.
В криптографии , вектор инициализации ( IV ) или начальная переменная ( SV ) является входным сигналом к криптографической примитива используется для обеспечения начального состояния. IV обычно требуется, чтобы он был случайным или псевдослучайным , но иногда IV должен быть только непредсказуемым или уникальным. Рандомизация имеет решающее значение для некоторых схем шифрования для достижения семантической безопасности , свойство, при котором повторное использование схемы с одним и тем же ключомне позволяет злоумышленнику сделать вывод о взаимосвязи между (потенциально похожими) сегментами зашифрованного сообщения. Для блочных шифров использование IV описывается режимами работы .
Некоторые криптографические примитивы требуют, чтобы IV был неповторяющимся, а требуемая случайность определяется внутренне. В этом случае IV обычно называется nonce ( число используется один раз ), а примитивы (например, CBC ) считаются с сохранением состояния, а не рандомизированными . Это связано с тем, что IV не нужно явно пересылать получателю, но может быть получен из общего состояния, обновленного как на стороне отправителя, так и на стороне получателя. (На практике короткий одноразовый номер все еще передается вместе с сообщением, чтобы учитывать потерю сообщения.) Примером схем шифрования с отслеживанием состояния является режим работы счетчика , который имеет порядковый номер для одноразового номера.
Размер IV зависит от используемого криптографического примитива; для блочных шифров это обычно размер блока шифра. В схемах шифрования непредсказуемая часть IV имеет в лучшем случае тот же размер, что и ключ, чтобы компенсировать атаки компромисса между временем / памятью / данными . Когда IV выбирается случайным образом, необходимо учитывать вероятность столкновений из-за проблемы дня рождения . Традиционные потоковые шифры, такие как RC4 , не поддерживают явный IV в качестве входных данных, поэтому требуется специальное решение для включения IV в ключ шифра или во внутреннее состояние. Известно, что некоторые конструкции, реализованные на практике, небезопасны; WEP протокол является ярким примером и подвержен атакам связанных IV.
В режиме CBC одинаковые блоки открытого текста при шифровании переходят в различные блоки шифротекста только, если отличались какие-то из предшествующих блоков открытого текста. Два идентичных сообщения, однако, будут шифроваться как один и тот же шифротекст. Что еще хуже, два одинаково начинающихся сообщения будут шифроваться одинаково, пока не появится первое различие.
У ряда сообщений может быть одинаковый заголовок - тема письма, строка "From'' или еще что-нибудь. Хотя повтор блока будет невозможен, такое одинаковое начало может предоставить криптоаналитику какую-нибудь полезную информацию.
Избежать этого можно, шифруя в качестве первого блока какие-то случайные данные. Этот блок случайных данных называется вектором инициализации (initialization vector, IV), инициализирующей переменной или начальным значением сцепления. IV не имеет никакого смыслового значения, он используется только для того, чтобы сделать каждое сообщение уникальным. Когда получатель расшифровывает этот блок, он испольтзует его только для заполнения регистра обратной связи. Хорошим IV служит метка времени. Или используйте какие-нибудь случайные биты.
С использованием IV сообщения с идентичным открытым текстом при шифровании переходят в сообщения с различным шифротекстом. Следовательно, злоумышленник не сможет предпринять повтор блока, и затруднится создание шифровальной книги. Хотя рекомендуется для каждого сообщения, шифруемого одним и тем же ключом, выбирать уникальный IV, это требование не является обязательным.
IV не должен храниться в секрете, он может передаваться открыто вместе с шифротекстом. Если вы не понимаете почему, рассмотрите следующий довод. Пусть наше сообщение состоит из нескольких блоков: B1, B2, ..., Bi. B1 шифруется вместе с IV. B2 шифруется с использованием шифротекста B1 в роли IV. B3 шифруется с использованием шифротекста B2 в роли IV, и так далее. Итак, если количество блоков - n, то n-1 "векторов инициализации" открыты, даже если первоначальный IV хранится в секрете. Об этом говорит сайт https://intellect.icu . Поэтому причин хранить в секрете IV нет, IV - это просто блок-заглушка, можно считать его нулевым блоком сцепления B0.
Блочный шифр является одним из самых основных примитивов в криптографии, и часто используется для данных шифрования . Однако сам по себе он может использоваться только для кодирования блока данных заранее определенного размера, называемого размером блока . Например, однократный вызов алгоритма AES преобразует 128-битный блок открытого текста в блок зашифрованного текста размером 128 бит. ключ, который предоставляется как один вход для шифра, определяет отображение между открытым текстом и зашифрованным текстом. Если данные произвольной длины должны быть зашифрованы, простая стратегия состоит в том, чтобы разделить данные на блоки, каждый из которых соответствует размеру блока шифра, и зашифровать каждый блок отдельно с использованием одного и того же ключа. Этот метод небезопасен, поскольку равные блоки открытого текста преобразуются в равные зашифрованные тексты, и третья сторона, наблюдающая за зашифрованными данными, может легко определить их содержимое, даже не зная ключа шифрования.
Чтобы скрыть шаблоны в зашифрованных данных, избегая повторной выдачи нового ключа после каждого вызова блочного шифра, необходим метод рандомизации входных данных. В 1980 году NIST опубликовал национальный стандартный документ, названный Федеральным стандартом обработки информации (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 Алиса )).
В зависимости от того, должен ли IV для криптографической схемы быть случайным или только уникальным, схема называется либо рандомизированной, либо с отслеживанием состояния . В то время как рандомизированные схемы всегда требуют, чтобы IV, выбранный отправителем, пересылался получателям, схемы с отслеживанием состояния позволяют отправителю и получателю совместно использовать общее состояние IV, которое обновляется предопределенным способом на обеих сторонах.
Обработка данных блочным шифром обычно описывается как режим работы. Режимы в первую очередь определены для шифрования, а также для аутентификации , хотя существуют более новые конструкции, которые объединяют оба решения безопасности в так называемых режимах аутентифицированного шифрования . В то время как режимы шифрования и аутентифицированного шифрования обычно используют IV, соответствующий размеру блока шифра, режимы аутентификации обычно реализуются как детерминированные алгоритмы , а IV устанавливается на ноль или другое фиксированное значение.
В потоковых шифрах IV загружаются во внутреннее секретное состояние шифра с ключом, после чего выполняется ряд циклов шифрования до освобождения первого бита вывода. По соображениям производительности разработчики потоковых шифров стараются сохранить это количество раундов как можно меньшим, но поскольку определение минимального безопасного количества раундов для потоковых шифров не является тривиальной задачей, и с учетом других проблем, таких как потеря энтропии , уникальных для каждого из них. Построение шифров, связанные IV и другие атаки, связанные с IV, являются известной проблемой безопасности для потоковых шифров, что делает загрузку IV в потоковых шифрах серьезной проблемой и предметом постоянных исследований.
802,11 шифрования алгоритм называется WEP (сокращенно Wired Equivalent Privacy ) используется короткий, 24-битный IV, что приводит к повторному использованию капельницы с тем же ключом, что привело к его легко расколоть. Внедрение пакетов позволило взломать WEP за несколько секунд. В конечном итоге это привело к прекращению поддержки WEP.
В режиме цепочки зашифрованных блоков ( режим CBC) IV не обязательно должен быть секретным, но должен быть непредсказуемым (в частности, для любого заданного открытого текста не должно быть возможности предсказать IV, который будет связан с открытым текстом, до поколение IV.) во время шифрования. Кроме того, для режима OFB IV должен быть уникальным. В частности, (ранее) распространенная практика повторного использования последнего блока зашифрованного текста сообщения в качестве IV для следующего сообщения является небезопасной (например, этот метод использовался SSL 2.0). Если злоумышленник знает IV (или предыдущий блок зашифрованного текста) до того, как он укажет следующий открытый текст, он может проверить свое предположение об открытом тексте некоторого блока, который был ранее зашифрован с тем же ключом. Это известно как атака TLS CBC IV, также называемая атакой ЗВЕРЬ атака
Данная статья про вектор инициализации подтверждают значимость применения современных методик для изучения данных проблем. Надеюсь, что теперь ты понял что такое вектор инициализации, initialization vector, начальная переменная и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Шифры в криптографии
Комментарии
Оставить комментарий
Информационная безопасность, Шифры в криптографии
Термины: Информационная безопасность, Шифры в криптографии