Шифр ВИК

Материал из testwiki
Версия от 10:10, 10 февраля 2025; imported>РобоСтася (косметические изменения)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Шифр ВИК, также известный как шифр Абеля, — шифр, использовавшийся советским шпионом Рейно Хейханеном.

История

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

Одним из документов, в которых использовался данный шифр, был текст, напечатанный на микроплёнке, по случайности обнаруженной в 1953 году внутри Шаблон:Нп5. Образец был в срочном порядке доставлен в ФБР, однако все попытки самостоятельно расшифровать послание остались тщетными. Госслужбы США были вынуждены признать шифр, не поддававшийся криптоанализу, «наиболее изящным и сложным среди всех шифров, оказывавшихся в публичном доступе».[1]

Структура шифра

Характеристика

Шифр ВИК относится к нигилистической семье шифров.[2] Его можно описать как «подстановочный моноалфавитный шифр, усиленный двойной модифицированной перестановкой».[1] Шифр основывался на принципах перестановки символов и замены их другими, а также использовал 4 ключа и начинался со сложной процедуры получения псевдослучайной числовой последовательности, что делало его одним из сложнейших среди всех известных «ручных шифров» XX века.[3]

Алгоритм шифрования

В этом разделе процесс шифрования рассмотрен на примере сообщения, переданного на пятицентовой монете.[3] Шаблон:Сокрытие В шифре использовалось сразу 4 ключа: ключевое шестизначное число, 20 букв ключевой фразы, 7 букв ключевого слова и небольшой личный номер агента. В упомянутом сообщении в качестве первого ключа использовалась знаменательная дата — 3 сентября 1945 года — день победы Советского Союза над Японией — записанная в форме: 391945. Текстовый ключ был выбран из песни М. Исаковского «Одинокая гармонь»: Шаблон:Цитата Кодовым словом являлось слово «СНЕГОПАД». Личным номером Вика было число 13.

Кроме того, для каждого шифра выбирался случайный пятизначный «индикатор» шифра. В приведённом примере это число 20818.

  1. Вначале производилось вычитание по модулю 10 первых пяти цифр числового ключа из цифр индикатора:2 0 8 1 83 9 1 9 4_   9 1 7 2 4(mod10)Шестая цифра числового ключа используется в самом конце алгоритма.
  2. Далее брался текстовый ключ, делился на две половины, и буквы внутри каждой половины нумеровались в порядке следования по алфавиту:
  3. На третьем шаге полученная в п.1 пятизначная группа цифр дополнялась до десятизначной методом цепи дополнений: последние пять цифр получались сложением соседних цифр выписанного числа по модулю 10, а именно: подсчитывалась сумма очередной пары цифр, результат по модулю 10 записывался в конец последовательности, переходили к следующей паре и так далее: 9+1=0, 1+7=8, 7+2=9, 2+4=6, 4+0=4(mod10). Получено число 9172408964.
  4. Далее производилось суммирование соответствующих цифр полученного числа и первой половины последовательности, полученной в п.2:+7 4 2 0 1 5 6 3 9 89 1 7 2 4 0 8 9 6 4_   6 5 9 2 5 5 4 2 5 2(mod10)
  5. Создавалось правило перекодировки с использованием второй части последовательности, полученной в п.2, в качестве образов для цифр 1,2,3…,9,0:12345678906871954032
  6. Применяя полученное правило, перекодировали результат, полученный на четвёртом шаге:65925542525938991898
  7. Методом цепи дополнений, упомянутым в п.3, для полученной десятизначной последовательности генерировались следующие 50 псевдослучайных цифр:
  8. Последние 10 полученных цифр нумеровались в порядке возрастания (0 шёл после 9) цифрами 1,2…9,0, а одинаковые цифры — в порядке следования:
    Окончательно полученные 10 цифр применялись для построения квадратного шифра:
    Рисовалась таблица с 4 строками и 10 столбцами, в первой строке записывались первые 7 букв кодового слова, в остальных строках записывались в вертикальном порядке остальные буквы русского алфавита, точка, запятая, а также некоторые условные обозначения: «п/л» — переход на латинскую азбуку, «н/ц» — начало цифрового текста, «н/т» — начало шифруемого текста, «пвт» — повторение предыдущего текста. Номерами столбцов служили полученные 10 цифр, первый столбец оставался без номера, остальные 3 получали номера, соответствующие последним 3 цифрам числа. Соответствие устанавливалось следующим образом: каждая буква заменялась на число, состоящее из номера строки и номера столбца. Символы первой строки, не имеющей номера, заменялись номером столбца.
  9. Пункты 1-8 описывают лишь подготовку к шифрованию. Само же шифрование текста происходит в следующих четырёх пунктах. Все предыдущие вычисления нужны были лишь для получения таблицы перекодировки в цифровой текст, изображённой в п.8, а точнее, числовой последовательности, записанной сверху и слева от этой таблицы. Использование столь сложной системы было обоснованным, так как все четыре используемых ключа в шифре при общении с одним агентом оставались неизменными. И лишь использование случайного пятизначного «индикатора» позволяло до неузнаваемости изменять таблицу перекодировки. При помощи полученной по ключу «СНЕГОПАД» таблицы текст переводился в числовой вид:Шаблон:Начало скрытого блока
    Шаблон:Конец скрытого блока Перекодировка имела интересные особенности: цифры, помимо того что обособлялись кодом «н/ц», представлялись в закодированном виде своим трёхкратным повторением; кавычки записывались в виде двух запятых. Кроме того, процесс перекодировки случайным образом начался со слова «прикрытия», начало же сообщения обозначено кодом «н/т». В конец добавлены 3 незначащих цифры до кратности пяти общего количества цифр.
  10. В шифре ВИК применялись две последовательные перестановки, для осуществления каждой из которых составлялась таблица. Именно для определения размеров таблиц использовался личный номер агента. Кроме того, из 50-значной псевдослучайной последовательности, полученной в п.7, брались две последние неравные цифры (4 и 1). Суммируя эти цифры с номером агента, получали, соответственно, количество столбцов в первой и второй таблицах: 13+4=17, 13+1=14. Также необходимо было выбрать ключевой набор цифр, которые ставили в соответствие каждому столбцу двух таблиц, то есть в данном случае всего нужно было выбрать 31 цифру. Извлекались цифры из той же таблицы в п.7. Воспроизведём её снова, добавив вторую строку, размещающую порядковые номера ключевых цифр, данных в первой строке (операция, подобная проведённой в п.8):
    Цифры выбирались сверху вниз по вертикалям; выбираемые столбцы следовали согласно нумерации, данной во второй строке. В результате получали последовательность из 31 псевдослучайной цифры:9 6 0 3 3 1 8 3 6 6 4 6 9 0 4 7 5 3 0 2 7 4 3 0 4 2 8 7 7 1 2
  11. Записывалась первая таблица с 17 колонками, в верхних двух строках располагались первые 17 из полученных ключевых цифр и их порядковые номера, далее по горизонталям выписывался полученный в п.9 числовой код:Шаблон:Начало скрытого блока
    Шаблон:Конец скрытого блока Аналогично пункту 10, выписывались столбцы основной части таблицы в порядке согласно нумерации во второй строке таблицы:Шаблон:Начало скрытого блока 65730 94337 57918 93912 33454 79336 09626 19501 25307 1138939831 27711 22124 67057 18113 69528 25846 62487 14525 1954159657 49882 53977 55521 12020 22616 19691 39210 50224 1906115015 85111 16771 66813 26469 24410 13061 79325 69169 3619037853 81829 12416 70771 26347 31641 18190 58767 26821 0721987801 55852 16927 93461 17925 60061 39822 18702 55133 5129591830 31616 00124 04173 12730 22194 70117 97051 79172 0991764726 29717 64102 11544 95219 37741 30511 66516 99557 1541695676 56980 15856 70225 18606 34127 31225 69809 83128 2112606292 37794 12197 07819 88905 23574 27822 93667 51381 2287122721 14616 02102 79589 15076 12839 68815 85113 92076 1629951385 50029 69000 99173 75061 38422 73611 33394 29221 1169387051 94122 09761 14517 17023 75574 13191 70751 19127 5901121067 11215 92161 24149 11316 90666 62820 21503 18146 5516264262 80016 59256 93006 01166 81349 12714 85268 85671 9372160921 43689 53044 81554 79513 14822 96519 82092 01166 1897421279 68401 71492 87172 16657 77796 50716 16161 22032 9174995102 03521 91561 22679 62982 79566 89671 08561 73352 9682917607 92209 60569 21508 32391 18551 38533 65545 74181 5538686641 11121 36411 10154 26496 32273 42349 03091 29316 3128751622 09150 32227 68367 69665 18322 Шаблон:Конец скрытого блока
  12. Вторая перестановка являлась неравномерной. Для её осуществления составлялась вторая таблица, в данном случае состоящая из 14 строк. В первых двух строках располагались последние 14 кодовых цифр и их номера. Число оставшихся строк подбиралось достаточным для вмещения всех цифр текста. Для размещения 1030 цифр необходимо 74 строки. Затем в основной части таблицы окрашивались треугольные области: k-ая область опиралась верхним левым углом на строку с номером (согласно нумерации во второй строке) k, нижний правый угол упирался в край таблицы:Шаблон:Начало скрытого блока
    Шаблон:Конец скрытого блока В таблицу по строкам записывался полученный в п.11 текст, причём вначале целиком заполнялась серая область таблицы, затем жёлтая — до использования всех цифр. По подобию пункта 11, текст основной таблицы выписывался по столбцам, согласно нумерации во второй строке, в таблицу: Шаблон:Начало скрытого блока20714546 36056 64211 08919 18710 71187 71215 02906 66036 1092211375 61238 65634 39175 37378 31013 22596 19291 17463 2355188527 10130 01767 12336 16669 97846 76559 50062 91171 7233219262 69849 90251 11576 46121 24666 05902 19229 56150 2352151911 78912 32939 31966 12096 12060 89748 25362 43167 9984178271 31194 26838 77221 58343 61164 14349 01241 26269 7157831734 27562 51236 12982 18089 66218 22577 09454 81216 7195326986 89779 54197 11990 23881 48884 22165 62992 36449 4174230267 77614 31565 30902 85812 16112 93312 71220 60369 1287212458 19081 97117 70107 06391 71114 19459 59586 80317 0752276509 11111 36990 32666 04411 51532 91184 23162 82011 1918556110 28876 76718 03563 28222 31674 39023 07623 93513 9717529816 95761 69483 32951 97686 34992 61109 95090 24092 7100890061 14790 15154 14655 29011 57206 77195 01256 69250 6290139179 71229 23299 84164 45900 42227 65853 17591 60182 0631565812 01378 14566 87719 92507 79517 99651 82155 58118 6719730015 70687 36201 56531 56721 26306 87185 91796 51341 0779676655 62716 33588 21932 16224 87721 85519 23191 20665 4514066098 60959 71521 02334 21212 51110 85227 98768 11125 0532153152 14191 12166 12715 03116 43041 74822 72759 29130 2194715764 96851 20818 22370 11391 83520 62297Шаблон:Конец скрытого блока Текст разбивался на пятизначные группы, а вверху указывалось их количество. Групп, соответствующих шифротексту, было 206, но на пятое с конца место вставлено число 20818 — случайный индикатор, используемый в п.1. Число 5, определяющее размещение вставленной группы, есть не использованная ранее последняя цифра числового ключа. Именно текст, изображённый в последней таблице, был обнаружен внутри пятицентовой монеты летом 1953 года.

Примечания

Шаблон:Примечания

Литература

  1. 1,0 1,1 Kahn D. "Number One From Moscow" Шаблон:Wayback. 1993.
  2. Kahn D. The Codebreakers: The Comprehensive History of Secret Communication from Ancient Times to the Internet (Abridged Version). — The New American Library, Inc., 1967.
  3. 3,0 3,1 А. В. Синельников. Шифры советской разведки Шаблон:Wayback. — 2016.