Шифр Вернама

 

Варнам-пример.jpg

Пример выполнен в системе Вектор

См МК ресурс Тasks:

\\msun.int\files\Папка Tasks\Болотов В. П\2020\Шифры\Вернам-Виженер все хорошо.vbs

 

        Из Википедии:

Шифр Вернама — система симметричного шифрования, изобретённая в 1917 году сотрудником AT&T Гилбертом Вернамом.

Шифр является разновидностью криптосистемы одноразовых блокнотов. В нём используется булева функция «Исключающее ИЛИ». Шифр Вернама является примером системы с абсолютной криптографической стойкостью. При этом он считается одной из простейших криптосистем.

Патент на систему Гилберта Вернама

Шифр назван в честь телеграфиста AT&T Гильберта Вернама, который в 1917 году изобрёл, а в 1919 запатентовал систему автоматического шифрования телеграфных сообщений.

Вернам не использовал понятие «Исключающее ИЛИ» в патенте, но реализовал именно эту операцию в релейной логике. Каждый символ в сообщении преобразовывался побитовым XOR (исключающее ИЛИ) с ключом бумажной ленты.

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

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

Криптосистема была предложена для шифрования телеграфных сообщений, которые представляли собой бинарные тексты, в которых открытый текст представляется в коде Бодо (в виде пятизначных «импульсных комбинаций»). В этом коде, например, буква «А» имела вид (1 1 0 0 0). На бумажной ленте цифре «1» соответствовало отверстие, а цифре «0» — его отсутствие. Секретный ключ должен был представлять собой хаотичный набор букв того же самого алфавита.

Для получения шифротекста открытый текст объединяется операцией «исключающее ИЛИ» с секретным ключом. Так, например, при применении ключа (1 1 1 0 1) на букву «А» (1 1 0 0 0) получаем зашифрованное сообщение (0 0 1 0 1): ( 11000 ) ( 11101 ) = ( 00101 ) {\displaystyle (11000)\oplus (11101)=(00101)} Зная, что для принимаемого сообщения имеем ключ (1 1 1 0 1), легко получить исходное сообщение той же операцией: ( 00101 ) ( 11101 ) = ( 11000 ) {\displaystyle (00101)\oplus (11101)=(11000)} Для абсолютной криптографической стойкости ключ должен обладать тремя критически важными свойствами:

Иметь случайное равномерное распределение: P k ( k ) = 1 / 2 N {\displaystyle P_{k}(k)=1/2^{N}}, где k — ключ, а N — количество бинарных символов в ключе;

Совпадать по размеру с заданным открытым текстом;

Применяться только один раз.

Также хорошо известен так называемый шифр Вернама по модулю m, в котором знаки открытого текста, шифрованного текста и ключа принимают значения из кольца вычетов Zm. Шифр является обобщением оригинального шифра Вернама, где m = 2.

Например, кодирование шифром Вернама по модулю m = 26 (A=0,B=1,…, Z=25):

Ключ:           EVTIQWXQVVOPMCXREPYZ

Открытый текст: ALLSWELLTHATENDSWELL (All's well that ends well)

Шифротекст:     EGEAMAIBOCOIQPAJATJK

При шифровании - преобразование производится по таблице Виженера (сложение индексов символов, по модулю длины алфавита - даёт эту таблицу).

При этом, буква ключа - это столбец, буква открытого текста - строка, а шифротекст - это буква на пересечении.

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

 оказывается совершенно случайным и, следовательно, лишённым тех статистических особенностей, которые могли бы быть использованы для анализа шифра..

     Шифр Вернама (одноразовый блокнот) - единственный известный абсолютно секретный шифр. Он основан на том, что сообщение кодируется побитовым xor с одноразовым ключом, длина которого не меньше длины передаваемого сообщения.

Ek(x1)=x1k

Dk(x1kk)=x1

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

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

Доказательство абсолютной секретности:

Пусть кодируемое слово — x, ключ k, результат кодирования y=xk. Таким образом P(y=y0)=P(k=yox). Заметим, что при фиксированном x, каждому случайному k соответствует ровно один y, а значит и распределение y будет совпадать с распределением ключа, из чего следует, что x1≠x2 f(y1k)=f(y2k), что и требовалось доказать

        

            PS В МГУ работает женщина Ирина, которая проработала более 20 лет на флоте в шрифтовальном отделе.  Создавали шифрограммы и их читали с помощью одноразовых блокнотов. Блокнот выдавался на пять лет, в ней использовались одноразовые страницы (ключи). За 20 лет работы, шифры так запали в голову, что до сих пор видит во всем секретные депеши (например, даже в номерах одних машин) зашифрованное сообщение, в других машинах на них ответы от резидентов.   Брежнев коллекционировал машины и любил «гонять». Поэтому его номерной знак, имея блокнот,  мог передавать много дворцовых тайн. Подробно о машинах первых лиц читайте здесь

Упражнение. Создать сообщение, используя номер машины, на которой ездит ваш сосед? Можете  для шифровки и дешифровки разный варианты, которые видит  например человек видеофиксатор или просто очки закрывабт ту или иную цифру.

автокод секретный так видит Видеофиксатор.jpgnomer_avto2.png

Если ваш знакомый из власти имущих, можете их номера проверить

 

Луганская область.jpgкоды авто.jpg

Справа показано как можно изменить номер

Числа для шифровкок.png

Нет цифры 0, ей можно кодировать букву Ё

Я В Ж Е Ё Х Б Р Ф

9-арканный ряд довели  двумя символами электронной подписи

Идея буквы представляем через ряд чисел 1-9, через них шифруем буквы с подбуквами.
Идей понятна, но пока реализовать в системе Вектор трудно.   

Числа для шифровок

Упражнение 2.

Литература

Шпионский арсенал   еще

Квантовый ключ при шифровании:  https://nplus1.ru/news/2016/06/06/quantum-enigma

Казни на электрическом стуле за шпионаж еще