Шифр VIC


Шифр использовался подполковником КГБ Рейно Хейханеном, работавшим в нелегальной советской разведке в США в период с 1952 по 1957 годы. С 1954 года Хейханен являлся помощником Рудольфа Абеля, выдающегося агента советской разведки. Хейханен скрывался в США под гражданским именем Виктор, давшим название шифру.

В интернете я забрел на один немецкий сайт (более подробное описание тут), где среди прочего, была вот такая картинка:

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


I. Подготовка.

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

Индикатор шифра: 20818
Числовой ключ: 3.9.1945
Ключевая фраза (10 букв): ТОЛЬКО СЛЫШНО — НА УЛИЦЕ ГДЕ-ТО
Ключевое слово (7 букв): СНЕГОПАД
Контрольный номер: 13
 

1. Вычитаем из цифр индикатора шифра первые 5-ть цифр числового ключа.
Последняя цифра ключа (5) используется в самом конце алгоритма.

 20818
-391945
 -----
 91724

2. Нумеруем буквы ключевой фразы в порядке следования по алфавиту от 1 до 9 (0 после 9).
Левую часть последовательности дополняем ещё 5-тью цифрами 08964 по методу Фибоначчи ( 9+1=0, 1+7=8, ...). В правой части - простая нумерация.

 ТОЛЬКОСЛЫШ НОНАУЛИЦЕГ
 7420156398 6871954032
+9172408964 1234567890

3. Суммируем без остатка цифры двух последовательностей из левой части.

=6592554252

4. Каждая цифра полученной последовательности заменяется на цифру из правой части расположенную над ней, т.е 6->5, 5->9, 9->3 и т. д.

5938991898

5. Определяем порядок считывания столбцов для формирования таблиц перестановок — нумеруем последовательность в порядке возрастания (0 после 9) цифрами 1, 2 … 9, 0, а одинаковые цифры — в порядке следования.

5938991898
----------
3724891506
----------

6. Генерируем не менее 5-ти строк по методу Фибоначчи (5+9=4, 9+3=2, ...).
Ширина таблиц перестановок = контрольный номер + последние не повторяющиеся цифры (13+4=17, 13+1=14).

4217809772
6385896498
9133750377
0460253047
4062783411

Считывает цифры в столбцах, используя число (3724891506) из п. 5, начиная с 1 и далее по порядку. Получаем:

Т17=96033183664690475
Т14=30274304287712

7. Нумеруем цифры последовательности из п. 6 в порядке возрастания (0 после 9) цифрами 1, 2 … 9, 0, а одинаковые цифры — в порядке следования.

4062783411
----------
5073894612

8. Создаем таблицу подстановки.
1-я строка = ключевое слово + 3 пробела.
00 — начало заполнения 2-й строки.
99 — 3-й строки.
22 — 4-й строки.
* правила можно изменить


  5 0 7 3 8 9 4 6 1 2
 +-------------------
 |С   Н Е Г   О П А
0|Р Б В Д Ж З И К Л М
9|Ч Ш Щ Ы Ь Т У Ф Х Ц
2|Ю Я Э

* Все подготовительные операции совпадают с описанием из Википедии, отличие только в таблице подстановке. Я выбрал не случайное её заполнение, а по некоторым правилам, хотя эта таблица может быть какой угодно.
 

II. Шифрование.

Открытый текст:
ПОЗДРАВЛЯЕМ С БЛАГОПОЛУЧНЫМ ПРИБЫТИЕМ. ПОДТВЕРЖДАЕМ ПОЛУЧЕНИЕ ВАШЕГО ПИСЬМА

Заменяем каждую букву открытого текста на её числовое значение из таблицы подстановки.

6 4 09 03 05 1 07 01 20 3 02 5 00 01 1 8 4 6 4 01 94 95 7 93 02 6 05 04 00 93 99 04 3 02 6 4 03 99 07 3 05 08 03 1 3 02 6 4 01 94 95 3 7 04 3 07 1 90 3 8 4 6 04 5 98 02 1

Каждую цифру по отдельности заносим в таблицу перестановки Т17.

Т17
 9| 6| 0| 3| 3| 1| 8| 3| 6| 6| 4| 6| 9| 0| 4| 7| 5|
---------------------------------------------------
14| 8|16| 2| 3| 1|13| 4| 9|10| 5|11|15|17| 6|12| 7| - номер столбцов
---------------------------------------------------
 6  4  0  9  0  3  0  5  1  0  7  0  1  2  0  3  0
 2  5  0  0  0  1  1  8  4  6  4  0  1  9  4  9  5
 7  9  3  0  2  6  0  5  0  4  0  0  9  3  9  9  0
 4  3  0  2  6  4  0  3  9  9  0  7  3  0  5  0  8
 0  3  1  3  0  2  6  4  0  1  9  4  9  5  3  7  0
 4  3  0  7  1  9  0  3  8  4  6  0  4  5  9  8  0
 2  1


Считываем цифры по столбцам согласно их нумерации и заполняем таблицу Т14 с тем отличием, что заполнение осуществляется с образованием треугольных областей: N-ая область опирается верхним левым углом на столбец с номером (согласно нумерации) N, а нижний правый угол упирается в край таблицы.
Число знаков (104) делим на количество колонок (14) = число не полных строк таблицы (7).

316429 900237 002601 585343 740096 049539 050800 4593331 140908 064914 000740 399078 010060 6274042 119394 003010 293055

Т14
3| 0| 2| 7| 4| 3| 0| 4| 2| 8| 7| 7| 1| 2|
------------------------------------------
5|13|N2| 9| 7| 6|14| 8| 3|12|10|11|N1| 4| номер столбцов
------------------------------------------
3  1  6  4  2  9  9  0  0  2  3  7  
0  0  2  6  0  1  5  8  5  3  4  3  7  
4  0  0  9  6  0  4  9  5  3  9  0  5  0  — полная строка
8  0  
0  4  5 
9  3  3  3  
1  1  4  0  9  
0  8  0  6  4  9  


Т14
3| 0| 2| 7| 4| 3| 0| 4| 2| 8| 7| 7| 1| 2|
------------------------------------------
5|13|N2| 9| 7| 6|14| 8| 3|12|10|11|N1| 4| номер столбцов
------------------------------------------
3  1  6  4  2  9  9  0  0  2  3  7  1  4
0  0  2  6  0  1  5  8  5  3  4  3  7  0
4  0  0  9  6  0  4  9  5  3  9  0  5  0  — полная строка
8  0  0  0  7  4  0  3  9  9  0  7  8  0
0  4  5  1  0  0  6  0  6  2  7  4  0  4
9  3  3  3  2  1  1  9  3  9  4  0  0  3
1  1  4  0  9  0  1  0  2  9  3  0  5  5
0  8  0  6  4  9  Х  Х  Х  Х  Х  Х  Х  Х

Считываем цифры по столбцам согласно их нумерации и разбиваем сообщение на группы.
На 5-е с конца место вставляем индикатор шифра 20818.
Число "5" — неиспользованная цифра числового ключа.

22
17580 05620 05340 05596 
32400 04353 04809 10910 
40109 20670 29408 93090 
46901 30634 90743 73074 
00233 20818 92991 00043 
18954 0611

Комментарии

Популярные сообщения из этого блога

Математика Люшера

Поиграем на микрокалькуляторе

Погода по барометру