12-07-2023
Невзламываемый шифр (шифр Вернама) – в криптографии целый класс систем с абсолютной криптографической стойкостью, широко известных под названием «одноразовые блокноты/вкладыши».[1].
Содержание |
Соответствующий принцип был впервые отчетливо сформулирован американским ученым Гилбертом Вернамом примерно в 1917. Вернам занимался разработкой криптографических методов для использования в телетайпных машинах. В этой связи он предложил комбинировать открытый текст, представленный в виде отверстий в бумажной перфоленте, с данными, нанесенными на другую перфоленту и являющимися ключом к шифру. Ключ должен был состоять из отверстий, перфорированных в ленте случайным образом. Комбинация этих двух лент и составляла шифротекст.[2]
В оригинале, для получения шифротекста открытый текст объединяется операцией «исключающее ИЛИ» с ключом (называемым одноразовым блокнотом или шифроблокнотом). При этом ключ должен обладать тремя критически важными свойствами:
Возможно объединять не только биты сообщения с битами ключа, но и, например, буквы. Идею Вернама можно проиллюстрировать с привлечением шифра Виженера. Ключ для этого шифра, по мысли Вернама, должен был представлять собой случайную последовательность букв.
Ключ | EVTIQWXQVVOPMCXREPYZ |
Открытый текст | ALLSWELLTHATENDSWELL |
Шифротекст | EGEAMAIBOCOIQPAJATJK |
Шифрограмма | EGEAM AIBOC OIQPA JATJK |
Без знания ключа такое сообщение не поддается анализу. Даже если бы можно было перепробовать все ключи, в качестве результата мы получили бы все возможные сообщения данной длины плюс колоссальное количество бессмысленных дешифровок, выглядящих как беспорядочное нагромождение букв. Но и среди осмысленных дешифровок не было бы никакой возможности выбрать искомую. Когда случайная последовательность (ключ) сочетается с неслучайной (открытым текстом), результат этого (шифротекст) оказывается совершенно случайным и, следовательно, лишённым тех статистических особенностей, которые могли бы быть использованы для анализа шифра.[1]
На практике можно один раз физически передать носитель информации с длинным истинно случайным ключом, а потом по мере необходимости пересылать сообщения. На этом основана идея шифроблокнотов: шифровальщик при личной встрече снабжается блокнотом, каждая страница которого содержит ключ. Такой же блокнот есть и у принимающей стороны. Использованные страницы уничтожаются.
Кроме того, если есть два независимых канала, в каждом из которых вероятность перехвата низка, но отлична от нуля, шифр Вернама также полезен: по одному каналу можно передать зашифрованное сообщение, по другому — ключ. Для того чтобы расшифровать сообщение, перехватчик должен прослушивать оба канала.
Шифр Вернама может применяться, если есть односторонний защищённый канал: ключ передаётся в одну сторону под защитой канала, сообщения в другую сторону защищаются ключом.
Не является шифром Вернама, но близка к нему схема одноразовых кодов: например, кодовое слово «Альфа» означает «Возвращаюсь».
В 1949 году Клод Шеннон опубликовал работу, в которой доказал абсолютную стойкость шифра Вернама. Это по сути означает, что шифр Вернама является самой безопасной криптосистемой из всех возможных. При этом требования к реализации подобной схемы достаточно нетривиальны, поскольку необходимо обеспечить наложение уникальной гаммы, равной длине сообщения, с последующим её гарантированным уничтожением. В связи с этим коммерческое применение шифра Вернама не так распространено в отличие от схем с открытым ключом и он используется, в основном, для передачи сообщений особой важности государственными структурами.
Другое преимущество состоит в том, что ключ может быть распространён заранее, а также по более медленным и надёжным каналам связи, после чего шифрограмму можно совершенно безбоязненно пересылать по обычным каналам. В результате появления микропроцессоров и дискет для хранения и распространения компьютерных данных практическая значимость «одноразовых» шифров возросла, потому что порождение и сверка относительно большого числа ключей может теперь производиться автоматически.[3]
Получение «случайного» ключа – процесс весьма непростой. С помощью математических алгоритмов можно получать последовательности, обладающие многими свойствами, которые присущи «случайности»; однако эти последовательности не являются истинно случайными. Ещё одной проблемой, связанной с использованием шифров «одноразового вкладыша», является то, что под рукой всегда необходимо иметь достаточное количество ключей, которые могут понадобиться в дальнейшем для шифрования больших объёмов открытого текста. Реальный же объём текста зачастую трудно оценить заранее, в особенности это касается дипломатической и военной сферы, где ситуация способна меняться быстро и непредсказуемо. Это может приводить к нехватке ключей, что может заставить шифровальщика либо использовать ключ(и) повторно, либо полностью прервать шифрованную связь.[3]
Лёгкость порождения ключа – решающий фактор в том, что касается практической применимости шифров типа «одноразовых вкладышей». Ведь ключ должен быть точно такой же длины, что и шифруемое сообщение. Более того, никакой ключ нельзя использовать повторно, потому что данный факт часто может быть обнаружен с помощью статистических тестов и тогда те куски сообщения (или сообщений), в которых был использован тот же самый ключ, будут расшифрованы. То обстоятельство, что ключ может быть использован только один раз, и определяет «одноразовость» таких шифров. Прежде чем пересылать невзламываемую шифрограмму, необходимо передать получателю копию ключа. Поскольку ключ имеет ту же длину, что и открытый текст, одна проблема (надёжно засекреченная передача сообщения) оказывается просто замененной на другую такую же (надёжно засекреченное распространение ключа).[4]
Шифроблокнот.