Шифр ВИК (Onsj FNT)
Шифр ВИК, также известный как шифр Абеля, — шифр, использовавшийся советским шпионом Рейно Хейханеном.
История
[править | править код]Шифр использовался подполковником КГБ Рейно Хейханеном, работавшим в нелегальной советской разведке в США в период с 1952 по 1957 годы. С 1954 года Хейханен являлся помощником Рудольфа Абеля, выдающегося агента советской разведки. Хейханен скрывался в США под гражданским именем Виктор, давшим название шифру.
Одним из документов, в которых использовался данный шифр, был текст, напечатанный на микроплёнке, по случайности обнаруженной в 1953 году внутри пятицентовой монеты[англ.]. Образец был в срочном порядке доставлен в ФБР, однако все попытки самостоятельно расшифровать послание остались тщетными. Госслужбы США были вынуждены признать шифр, не поддававшийся криптоанализу, «наиболее изящным и сложным среди всех шифров, оказывавшихся в публичном доступе».[1]
Структура шифра
[править | править код]Характеристика
[править | править код]Шифр ВИК относится к нигилистической семье шифров.[2] Его можно описать как «подстановочный моноалфавитный шифр, усиленный двойной модифицированной перестановкой».[1] Шифр основывался на принципах перестановки символов и замены их другими, а также использовал 4 ключа и начинался со сложной процедуры получения псевдослучайной числовой последовательности, что делало его одним из сложнейших среди всех известных «ручных шифров» XX века.[3]
Алгоритм шифрования
[править | править код]В этом разделе процесс шифрования рассмотрен на примере сообщения, переданного на пятицентовой монете.[3]
1. Поздравляем с благополучным прибытием. Подтверждаем получение вашего письма в адрес «В» повторяю «В» и прочтение письма № 1.
2. Для организации прикрытия мы дали указание передать вам три тысячи местных. Перед тем как их вложить в какое либо дело посоветуйтесь с нами, сообщив характеристику этого дела.
3. По вашей просьбе рецептуру изготовления мягкой плёнки и новостей передадим отдельно вместе с письмом матери.
4. Гаммы высылать вам рано. Короткие письма шифруйте, а побольше — делайте со вставками. Все данные о себе, место работы, адрес и т.д. в одной шифровке передавать нельзя. Вставки передавайте отдельно.
5. Посылку жене передали лично. С семьёй все благополучно. Желаем успеха.
Привет от товарищей. № 1/03 Декабря.
В шифре использовалось сразу 4 ключа: ключевое шестизначное число, 20 букв ключевой фразы, 7 букв ключевого слова и небольшой личный номер агента. В упомянутом сообщении в качестве первого ключа использовалась знаменательная дата — 3 сентября 1945 года — день победы Советского Союза над Японией — записанная в форме: 391945. Текстовый ключ был выбран из песни М. Исаковского «Одинокая гармонь»:
Снова замерло всё до рассвета —
Дверь не скрипнет, не вспыхнет огонь.
Только слышно — на улице где-то
Одинокая бродит гармонь.
Кодовым словом являлось слово «СНЕГОПАД». Личным номером Вика было число 13.
Кроме того, для каждого шифра выбирался случайный пятизначный «индикатор» шифра. В приведённом примере это число 20818.
- Вначале производилось вычитание по модулю 10 первых пяти цифр числового ключа из цифр индикатора:Шестая цифра числового ключа используется в самом конце алгоритма.
- Далее брался текстовый ключ, делился на две половины, и буквы внутри каждой половины нумеровались в порядке следования по алфавиту:
- На третьем шаге полученная в п.1 пятизначная группа цифр дополнялась до десятизначной методом цепи дополнений: последние пять цифр получались сложением соседних цифр выписанного числа по модулю 10, а именно: подсчитывалась сумма очередной пары цифр, результат по модулю 10 записывался в конец последовательности, переходили к следующей паре и так далее: . Получено число 9172408964.
- Далее производилось суммирование соответствующих цифр полученного числа и первой половины последовательности, полученной в п.2:
- Создавалось правило перекодировки с использованием второй части последовательности, полученной в п.2, в качестве образов для цифр 1,2,3…,9,0:
- Применяя полученное правило, перекодировали результат, полученный на четвёртом шаге:
- Методом цепи дополнений, упомянутым в п.3, для полученной десятизначной последовательности генерировались следующие 50 псевдослучайных цифр:
- Последние 10 полученных цифр нумеровались в порядке возрастания (0 шёл после 9) цифрами 1,2…9,0, а одинаковые цифры — в порядке следования: Окончательно полученные 10 цифр применялись для построения квадратного шифра:Рисовалась таблица с 4 строками и 10 столбцами, в первой строке записывались первые 7 букв кодового слова, в остальных строках записывались в вертикальном порядке остальные буквы русского алфавита, точка, запятая, а также некоторые условные обозначения: «п/л» — переход на латинскую азбуку, «н/ц» — начало цифрового текста, «н/т» — начало шифруемого текста, «пвт» — повторение предыдущего текста. Номерами столбцов служили полученные 10 цифр, первый столбец оставался без номера, остальные 3 получали номера, соответствующие последним 3 цифрам числа. Соответствие устанавливалось следующим образом: каждая буква заменялась на число, состоящее из номера строки и номера столбца. Символы первой строки, не имеющей номера, заменялись номером столбца.
- Пункты 1-8 описывают лишь подготовку к шифрованию. Само же шифрование текста происходит в следующих четырёх пунктах. Все предыдущие вычисления нужны были лишь для получения таблицы перекодировки в цифровой текст, изображённой в п.8, а точнее, числовой последовательности, записанной сверху и слева от этой таблицы. Использование столь сложной системы было обоснованным, так как все четыре используемых ключа в шифре при общении с одним агентом оставались неизменными. И лишь использование случайного пятизначного «индикатора» позволяло до неузнаваемости изменять таблицу перекодировки. При помощи полученной по ключу «СНЕГОПАД» таблицы текст переводился в числовой вид:Перекодировка имела интересные особенности: цифры, помимо того что обособлялись кодом «н/ц», представлялись в закодированном виде своим трёхкратным повторением; кавычки записывались в виде двух запятых. Кроме того, процесс перекодировки случайным образом начался со слова «прикрытия», начало же сообщения обозначено кодом «н/т». В конец добавлены 3 незначащих цифры до кратности пяти общего количества цифр.Приведение текста к числовому виду
- В шифре ВИК применялись две последовательные перестановки, для осуществления каждой из которых составлялась таблица. Именно для определения размеров таблиц использовался личный номер агента. Кроме того, из 50-значной псевдослучайной последовательности, полученной в п.7, брались две последние неравные цифры (4 и 1). Суммируя эти цифры с номером агента, получали, соответственно, количество столбцов в первой и второй таблицах: . Также необходимо было выбрать ключевой набор цифр, которые ставили в соответствие каждому столбцу двух таблиц, то есть в данном случае всего нужно было выбрать 31 цифру. Извлекались цифры из той же таблицы в п.7. Воспроизведём её снова, добавив вторую строку, размещающую порядковые номера ключевых цифр, данных в первой строке (операция, подобная проведённой в п.8): Цифры выбирались сверху вниз по вертикалям; выбираемые столбцы следовали согласно нумерации, данной во второй строке. В результате получали последовательность из 31 псевдослучайной цифры:
- Записывалась первая таблица с 17 колонками, в верхних двух строках располагались первые 17 из полученных ключевых цифр и их порядковые номера, далее по горизонталям выписывался полученный в п.9 числовой код:Аналогично пункту 10, выписывались столбцы основной части таблицы в порядке согласно нумерации во второй строке таблицы:Первая таблица перестановкиРезультат первой перестановки
- Вторая перестановка являлась неравномерной. Для её осуществления составлялась вторая таблица, в данном случае состоящая из 14 строк. В первых двух строках располагались последние 14 кодовых цифр и их номера. Число оставшихся строк подбиралось достаточным для вмещения всех цифр текста. Для размещения 1030 цифр необходимо 74 строки. Затем в основной части таблицы окрашивались треугольные области: k-ая область опиралась верхним левым углом на строку с номером (согласно нумерации во второй строке) k, нижний правый угол упирался в край таблицы:В таблицу по строкам записывался полученный в п.11 текст, причём вначале целиком заполнялась серая область таблицы, затем жёлтая — до использования всех цифр. По подобию пункта 11, текст основной таблицы выписывался по столбцам, согласно нумерации во второй строке, в таблицу:Вторая таблица перестановкиТекст разбивался на пятизначные группы, а вверху указывалось их количество. Групп, соответствующих шифротексту, было 206, но на пятое с конца место вставлено число 20818 — случайный индикатор, используемый в п.1. Число 5, определяющее размещение вставленной группы, есть не использованная ранее последняя цифра числового ключа. Именно текст, изображённый в последней таблице, был обнаружен внутри пятицентовой монеты летом 1953 года.Результат второй перестановки
Примечания
[править | править код]- ↑ 1 2 Kahn D. "Number One From Moscow" Архивная копия от 29 декабря 2016 на Wayback Machine. 1993.
- ↑ Kahn D. The Codebreakers: The Comprehensive History of Secret Communication from Ancient Times to the Internet (Abridged Version). — The New American Library, Inc., 1967.
- ↑ 1 2 А. В. Синельников. Шифры советской разведки Архивная копия от 21 декабря 2019 на Wayback Machine. — 2016.
Литература
[править | править код]- А. В. Синельников. Шифры советской разведки. — 2016.