Шифр VIC
Шифр
использовался подполковником КГБ Рейно
Хейханеном, работавшим в нелегальной
советской разведке в США в период с 1952
по 1957 годы. С 1954 года Хейханен являлся
помощником Рудольфа Абеля, выдающегося
агента советской разведки. Хейханен
скрывался в США под гражданским именем
Виктор, давшим название шифру.
В интернете я забрел на один немецкий сайт (более подробное описание тут), где среди прочего, была вот такая картинка:
Это, своего рода, компактное описание алгоритма VIC, но с тем отличием, что у него генерация 50-ти псевдослучайных цифр происходит чуть иначе, чем в алгоритме из Википедии.
Это, своего рода, компактное описание алгоритма VIC, но с тем отличием, что у него генерация 50-ти псевдослучайных цифр происходит чуть иначе, чем в алгоритме из Википедии.
Поэтому, основываясь на вышеуказанном компактном варианте, я сделал такое же компактное описание для шифра VIC из Википедии.
Но в этой статье я чуть изменил таблицу подстановки, поэтому результат шифрования получился другим, но все подготовительные операции остались неизменными.
На мой взгляд, этот шифр более стойкий, чем ранее мною описанный SECOM, хотя он и является модификацией алгоритма VIC.
Но в этой статье я чуть изменил таблицу подстановки, поэтому результат шифрования получился другим, но все подготовительные операции остались неизменными.
На мой взгляд, этот шифр более стойкий, чем ранее мною описанный SECOM, хотя он и является модификацией алгоритма VIC.
I.
Подготовка.
Исходные данные взял со страницы описания шифра в Википедии, но таблицу подстановки использовал другую (см. п. 8), поэтому алгоритм на первых порах совпадает с Википедией, а потом результат отличается.
Индикатор
шифра: 20818
Числовой
ключ: 3.9.1945
Ключевая
фраза (10 букв): ТОЛЬКО СЛЫШНО — НА УЛИЦЕ
ГДЕ-ТО
Ключевое
слово (7 букв): СНЕГОПАД
Контрольный
номер: 13
1.
Вычитаем из цифр индикатора шифра первые
5-ть цифр числового ключа.
Последняя цифра ключа (5) используется в самом конце алгоритма.
20818
-391945
-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.
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
Комментарии
Отправить комментарий