Loading AI tools
шифр с абсолютной криптографической стойкостью Из Википедии, свободной энциклопедии
Шифр Вернама (англ. Vernam cipher) — система симметричного шифрования, изобретённая в 1917 году Гилбертом Вернамом[1].
Шифр является разновидностью криптосистемы одноразовых блокнотов. В нём используется булева функция «исключающее „или“». Шифр Вернама является примером системы с абсолютной криптографической стойкостью[2]. При этом он считается одной из простейших криптосистем[3].
Впервые описан Фрэнком Миллером в 1882 году[4][5][6].
Шифр назван в честь телеграфиста Гильберта Вернама, который в 1917 году изобрёл, а в 1919 — запатентовал систему автоматического шифрования телетайпных сообщений.
Вернам не использовал понятие «исключающее „или“» в патенте, но реализовал именно эту операцию в релейной логике. Каждый символ в сообщении преобразовывался побитовым «исключающим „или“» с секретным ключом, записанным на бумажной перфоленте[7]. Джозеф Моборн (бывший тогда капитаном армии США, а впоследствии начальником корпуса связи) доработал эту систему так, чтобы последовательность символов на ключевой перфоленте была полностью случайной, поскольку в этом случае криптоанализ будет наиболее трудным.
Вернам создал устройство, производящее указанные операции автоматически, без участия шифровальщика. Тем самым было положено начало так называемому «линейному шифрованию», когда процессы шифрования и передачи сообщения происходят одновременно. До той поры шифрование было предварительным, поэтому линейное шифрование существенно повышало оперативность связи.
Не будучи шифровальщиком, тем не менее, Вернам верно заметил важное свойство своего шифра — каждая перфолента должна использоваться только один раз и после этого уничтожаться. Это трудноприменимо на практике — поэтому аппарат был переделан на несколько закольцованных перфолент со взаимно простыми длинами[8].
Криптосистема была предложена для шифрования телетайпных сообщений — двоичных текстов, в которых открытый текст представлен в виде пятибитных «кодовых комбинаций» кода Бодо — Мюррея (одной из разновидностей кода Бодо). В этом коде, например, буква А имеет вид . При записи на перфоленте логической «1» соответствует отверстие, а логическому «0» — его отсутствие.
Для получения шифротекста открытый текст объединяется операцией «исключающее „или“» с секретным ключом, представляющим собой хаотичный набор символов алфавита, используемого для представления открытого текста[8]. Так, например, при применении ключа к букве А () получается зашифрованное сообщение : . Зная, что для шифрования использовался ключ , той же операцией легко получить исходное сообщение: .
Для абсолютной криптографической стойкости ключ должен обладать тремя критически важными свойствами[2]:
Также хорошо известен так называемый шифр Вернама по модулю m, в котором символы открытого текста, шифротекста и ключа принимают значения из кольца вычетов Zm. Шифр является обобщением оригинального шифра Вернама, где m = 2[2].
Например, кодирование букв латинского алфавита шифром Вернама по модулю m = 26 (A = 0, B = 1, …, Z = 25):
Ключ: EVTIQWXQVVOPMCXREPYZ Открытый текст: ALLSWELLTHATENDSWELL (All's well that ends well) Шифротекст: EGEAMAIBOCOIQPAJATJK
При шифровании преобразование производится по таблице Виженера (сложение индексов символов по модулю длины алфавита даёт эту таблицу). При этом символ (буква) ключа — это столбец, символ открытого текста — строка, а символ шифротекста находится на их пересечении.
Без знания ключа такое сообщение не поддаётся анализу. Даже если бы можно было перепробовать все ключи, в качестве результата мы получили бы все возможные сообщения данной длины плюс колоссальное количество бессмысленных дешифровок, выглядящих как беспорядочное нагромождение символов. Но и среди осмысленных дешифровок не было бы никакой возможности выбрать искомую. Когда случайная последовательность (ключ) сочетается с неслучайной (открытым текстом), результат этого (шифротекст) оказывается совершенно случайным и, следовательно, лишённым тех статистических особенностей, которые могли бы быть использованы для анализа шифра[9].
В 1945 году Клод Шеннон написал работу «Математическая теория криптографии» (рассекреченную только после Второй мировой войны в 1949 году как «Теория связи в секретных системах»), в которой доказал абсолютную криптографическую стойкость шифра Вернама. То есть перехват шифротекста без ключа не даёт никакой информации о сообщении. С точки зрения криптографии, невозможно придумать систему безопаснее шифра Вернама[2]. Требования к реализации подобной схемы достаточно нетривиальны, поскольку необходимо обеспечить наложение уникальной гаммы, равной длине сообщения, с последующим её гарантированным уничтожением. В связи с этим коммерческое применение шифра Вернама не так распространено в отличие от схем с открытым ключом и он используется, в основном, для передачи сообщений особой важности государственными структурами[8].
Приведём доказательство абсолютной криптографической стойкости. Пусть сообщение представлено двоичной последовательностью длины . Распределение вероятности сообщений может быть любым. Ключ также представлен двоичной последовательностью той же длины, но с равномерным распределением для всех ключей.
В соответствии со схемой шифрования произведём шифротекст, покомпонентно суммируя по модулю 2 последовательности открытого текста и ключа:
Легальный пользователь знает ключ и осуществляет расшифрование:
Найдём вероятностное распределение N-блоков шифротекстов, используя формулу:
Результат подтверждает известный факт о том, что сумма двух случайных величин, одна из которых имеет дискретное равномерное распределение на конечной группе, является случайной величиной с равномерным распределением. Таким образом, в нашем случае распределение шифротекстов равномерное.
Запишем совместное распределение открытых текстов и шифротекстов:
Найдём условное распределение
так как ключ и открытый текст являются независимыми случайными величинами. Итого:
Подстановка правой части этой формулы в формулу для совместного распределения даёт
Что доказывает независимость шифротекстов и открытых текстов в этой системе. Это и означает абсолютную криптографическую стойкость[10].
В настоящее время шифрование Вернама используется достаточно редко за исключением постквантовой криптографии. В большой степени это обусловлено существенным размером ключа, длина которого должна совпадать с длиной сообщения, то есть использование таких шифров требует огромных затрат на производство, хранение и уничтожение ключевых материалов. Тем не менее, совершенно стойкие шифры типа Вернама всё же нашли практическое применение для защиты особо важных линий связи с относительно небольшим объёмом информации. Так, например, немцы, англичане и американцы использовали шифры типа Вернама во время Второй мировой войны. Шифр Вернама по модулю 2 использовался на правительственной «горячей линии» между Вашингтоном и Москвой, где ключевые материалы представляли собой бумажные перфоленты, на которые символы ключевой последовательности наносились посредством перфорации[2].
Также существует квантовый аналог одноразового блокнота, который можно использовать для обмена квантовыми состояниями по одностороннему квантовому каналу с полной секретностью, который иногда используется в квантовых вычислениях. Можно показать, что для обмена квантовым состоянием n-кубитов по одностороннему квантовому каналу требуется общий секрет, состоящий как минимум из 2n битов (по аналогии с классическим обменом сообщениями с полной секретностью, где для шифрования n битов требуется n-битный ключ). Схема, предложенная в 2000 году, достигает этой границы. Один из способов реализовать квантовый одноразовый блокнот — разделить 2n-битный ключ на n пар битов. Чтобы зашифровать квантовое состояние, для каждой пары битов i в ключе нужно применить врата X к кубиту i состояния тогда и только тогда, когда первый бит пары равен 1, и применить врата Z к кубиту i состояния тогда и только тогда, когда второй бит пары равен 1.
Дешифрование предполагает повторное применение этого преобразования, поскольку X и Z являются своими обратными значениями. Можно показать, что в квантовой обстановке это совершенно секретно. Одноразовый блокнот является примером постквантовой криптографии, поскольку идеальная секретность — это определение безопасности, которое не зависит от вычислительных ресурсов противника. Следовательно, противник с квантовым компьютером по-прежнему не сможет получить больше информации о сообщении, зашифрованном с помощью одноразового блокнота, чем противник с классическим компьютером.
На практике можно один раз физически передать носитель информации с длинным истинно случайным ключом, а потом по мере необходимости пересылать сообщения. На этом основана идея шифроблокнотов: шифровальщик по дипломатической почте или при личной встрече снабжается блокнотом, каждая страница которого содержит ключи. Такой же блокнот есть и у принимающей стороны. Использованные страницы уничтожаются[11].
Уникальной особенностью шифра Вернама является возможность подмены исходного текста: для любых двух открытых текстов одинаковой длины T и T' существуют ключи K и K', переводящие их в один и тот же шифротекст C. Действительно, легко видеть, что .
Это может быть использовано в разведке. Предположим, некий агент занимается добычей военных секретов и послал цепочку C¡ зашифрованных сообщений. Контрразведка их перехватила, агент провалился. При обыске у него находят несколько экземпляров «использованных» ключей, которые он «случайно не уничтожил». Прочитав с их помощью некоторые донесения, контрразведчики из них узнаю́т, что агент занимался… всего лишь промышленным шпионажем (за что наказание должно быть мягче). На деле же эти «ключи» были заготовлены заранее на случай провала.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.