Jump to content

шифр VIC

Блок-схема шифрования VIC

Шифр VIC , выполненный карандашом и бумагой, представлял собой шифр использовал советский шпион Рейно Хайханен который под кодовым названием «ВИКТОР».

Если бы шифру было дано современное техническое название, он был бы известен как «пересекающаяся двудольная моноалфавитная замена, зашифрованная с помощью модифицированной двойной транспозиции». [1] Однако по общей классификации он принадлежит к семейству нигилистических шифров.

На момент своего первого обнаружения это был, пожалуй, самый сложный ручной шифр, когда-либо существовавший. Первоначальный анализ, проведенный Американским агентством национальной безопасности (АНБ) в 1953 году, не пришел к абсолютному выводу, что это был ручной шифр, но его размещение в полой монете номиналом 5 центов (позже известной как полый никелевый футляр ) предполагало, что его можно расшифровать. используя карандаш и бумагу. Шифр VIC оставался нетронутым до тех пор, пока не стала доступна дополнительная информация о его структуре.

Хотя это, конечно, не так сложно и безопасно, как современные компьютерные поточные шифры или блочные шифры , на практике сообщения, защищенные им, сопротивлялись всем попыткам криптоанализа, по крайней мере, со стороны АНБ, с момента его открытия в 1953 году до бегства Хайханена в 1957 году.

Революционный скачок

[ редактировать ]

Шифр VIC можно рассматривать как вершину эволюции семейства нигилистических шифров .

Шифр VIC имеет несколько важных интегрированных компонентов, в том числе сложение цепочки по модулю 10 , генератор Фибоначчи с запаздыванием (рекурсивная формула, используемая для генерации последовательности псевдослучайных цифр ), шахматную доску и нарушенную двойную транспозицию .

До открытия VIC обычно считалось, что двойная транспозиция сама по себе является наиболее сложным шифром, который агент на практике может использовать в качестве полевого шифра.

Во время Второй мировой войны несколько советских шпионских группировок общались с Московским Центром, используя два шифра, которые, по сути, являются эволюционными усовершенствованиями базового нигилистического шифра. Очень сильную версию использовали Макс Клаузен в Рихарда Зорге сети в Японии и Александр Фут в шпионской сети Люси в Швейцарии . [2] Немного более слабая версия использовалась сетью Rote Kapelle . [3]

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

Клаузен и Фут оба написали свой открытый текст на английском языке и запомнили 8 наиболее часто встречающихся букв английского языка (чтобы заполнить верхний ряд шахматной доски) с помощью мнемонической фразы «грех ошибаться» (отбрасывая вторую букву «r»). Стандартная английская шахматная доска имеет 28 ячеек для символов, и в этом шифре двумя дополнительными стали «точка» и «сдвиг цифр». Числа отправлялись путем сдвига чисел, за которым следовали фактические цифры открытого текста в повторяющихся парах, а затем еще один сдвиг. Затем, аналогично базовому Нигилисту, была добавлена ​​цифровая добавка, получившая название «закрытие». Однако каждый раз использовалась другая добавка, поэтому в конечном итоге пришлось вставить скрытую «группу индикаторов», чтобы указать, какая добавка использовалась.

В отличие от базового нигилиста, добавка была добавлена ​​путем сложения без переноса (цифровое сложение по модулю 10), что дает более однородный результат, который не пропускает столько информации. Что еще более важно, добавка генерировалась не с помощью ключевого слова, а путем случайного выбора строк из альманахов промышленной статистики. Такие книги считались достаточно скучными, чтобы не вызывать подозрений, если агента обыскивали (особенно потому, что прикрытия агентов были бизнесменами), и имели такую ​​высокую плотность энтропии, что обеспечивали очень надежную добавку. Конечно, цифры из такой книги на самом деле распределены неравномерно (имеется избыток «0» и «1» (см. Закон Бенфорда ), и последовательные числа, скорее всего, будут в чем-то схожи), но тем не менее они обладают гораздо большей энтропией. плотность, чем парольные фразы и тому подобное; во всяком случае, на практике они, похоже, никогда не подвергались успешному криптоанализу.

Более слабая версия генерировала добавку из текста романа или подобной книги (по крайней мере, один из членов Rote Kapelle действительно использовал «Благого солдата Швейка »). Этот текст был преобразован в цифровую добавку с использованием техники, похожей на шахматную доску.

Последним развитием в этом направлении стал шифр VIC, использованный в 1950-х годах Рейно Хайханеном . К этому времени большинство советских агентов вместо этого использовали одноразовые блокноты . Однако, несмотря на теоретическое совершенство одноразовых блокнотов, на практике они были сломаны , а ВИК – нет. Однако одноразовый шифр можно было взломать только при повторном использовании страниц шифрования из-за логистических проблем, и поэтому он больше не был по-настоящему одноразовым. [4]

Обзор механики

[ редактировать ]

Секретный ключ для шифрования следующий:

  • Короткая фраза (например, первая строка песни длиной не менее 20 букв)
  • Дата ( записанная цифрами, без ведущих нулей)
  • Персональный номер (уникальный для агента, одно- или двухзначный номер)

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

В общих чертах шифр работал следующим образом:

  1. Используйте приведенные выше секреты (фраза, дата, группа ключей и личный номер), создайте 50-значный блок псевдослучайных чисел.
  2. Используйте этот блок, чтобы создать ключи сообщений для:
    1. Пересекающаяся шахматная доска
    2. Две столбчатые транспозиции
  3. Зашифруйте сообщение открытого текста с помощью шахматной доски.
  4. Примените две транспозиции к результирующему (промежуточному) зашифрованному тексту через два столбца.
    1. «Стандартное» столбчатое транспонирование
    2. Диагональная столбчатая транспозиция
  5. Вставка ключевой группы в зашифрованный текст - как определяется шестой цифрой даты.

Подробная механика

[ редактировать ]

Примечание. В этом разделе расчеты отслеживаются со ссылкой на [Line-X] или аналогичный. Это соответствует обозначениям, указанным в описании архива ЦРУ. [1]

Вывод псевдослучайного блока

[ редактировать ]
  • [Line-A] : создать случайную 5-значную группу ключей.
  • [Строка-B] : введите первые 5 цифр секретной даты.
  • [Строка-C] : вычтите [Строку-B] из [Строки-A] с помощью модульной арифметики (по цифрам, не «заимствуя» десятки из соседнего столбца)
  • [Строка-D] : выпишите первые 20 букв секретной фразы.
  • [Строка-E.1&2] : последовательность (см. ниже) первых и вторых десяти символов отдельно (чтобы получить [Строка-E.1] и [Строка-E.2] соответственно)
  • [Строка-F.1] : выпишите 5 цифр из [Строка-C], затем примените сложение цепочки (см. ниже), чтобы создать еще пять цифр.
  • [Line-F.2] : последовательность цифр «1234567890» записывается (в [Line-E.2]) в качестве вспомогательного средства для кодирования при создании [Line-H].
  • [Строка-G] : добавление [Строка-E.1] к [Строка-F.1] — это поразрядная арифметика по модулю 10, т.е. никакого «переноса» десятков в следующий столбец.
  • [Line-H] : Кодирование (см. ниже) цифр в [Line-G] под [Line-E.2] в качестве ключа.
  • [Строка-I]: [Строка-I] не используется, предположительно во избежание путаницы (поскольку «I» может быть ошибочно прочитано как «1» или «J»)
  • [Line-J] : последовательность [Line-H]
  • [Линии-K,L,M,N,P]: это пять 10-значных строк, созданных путем сложения цепочки [Строка-H]. К личному номеру агента добавляются две последние неравные цифры, чтобы определить длину ключа двух транспозиций. (Линии K-to-P по сути представляют собой управляемый ключом псевдослучайный блок, используемый для следующего этапа шифрования)
  • [Line-O]: [Line-O] не используется, предположительно во избежание путаницы (поскольку «O» может быть ошибочно прочитано как ноль или «Q»)

Получение ключа сообщения

[ редактировать ]
  • [Строка-Q] : первые цифры «а» (где «а» — это первое значение, полученное в результате добавления последних неравных цифр в [Строка-P] к личному номеру), извлеченные из [Строки-K, L,M,N,P] при транспонировании через [Line-J]. Это транспонирование выполняется путем записи столбцов чисел под цифрами в [Строка-J], начиная со столбца чисел под цифрой «1», затем столбца чисел под цифрой «2» и так далее в числовом порядке. , пока не будут записаны цифры «a» (в примере ниже значение «a» будет равно 13, поэтому это транспонирование будет продолжаться для 13 цифр). Эти цифры используются как ключ к столбчатому транспонированию.
  • [Строка-R] : следующие цифры «b» (где «b» — второе значение, полученное в результате добавления последних неравных цифр в [Строка-P] к личному номеру), извлеченные (после «а» цифры были извлечены) из [Lines-K,L,M,N,P] при транспонировании через [Line-J]. Это транспонирование выполняется так же, как и [Line-Q], но продолжается с предыдущего транспонирования, то есть оно может начинаться в середине столбца под цифрой [Line-J], где закончилось последнее транспонирование (в примере ниже [Строка-R] начинается в середине столбца под цифрой «3» в [Строка-J]). Эти полученные цифры используются для кодирования диагонального транспонирования.
  • [Line-S] : последовательность [Line-P], используется как ключ к шахматной доске.

Пример генерации ключа

[ редактировать ]
Personal Number: 6
Date: 13 Sept 1959                          // Moon Landing - 13 Sept 1959 ('139195' - truncated to 6 digits) 
Phrase: 'Twas the night before Christmas'   // from 'A visit from St. Nicholas' - poem
Keygroup: 72401                             // randomly generated

[Line-A]: 72401                             // Keygroup
[Line-B]: 13919                             // Date - truncated to 5 digits     
[Line-C]: 69592                             // subtract [Line-B] from [Line-A]
[Line-D]: TWASTHENIG HTBEFORECH             // Phrase - truncated to 20 characters
[Line-E]: 8017942653 6013589427             // via Sequencing
[Line-F]: 6959254417 1234567890             // from [Line-C] and chain addition, then '1234567890'
[Line-G]: 4966196060                        // add [Line-E.1] to [Line-F.1]
[Line-H]: 3288628787                        // encode [Line-G] with [Line-E.2], [Line-F.2] helps 
[Line-J]: 3178429506                        // The Sequencing of [Line-H]
[Line-K]: 5064805552                        // BLOCK: Chain addition of [Line-H] for 50 digits
[Line-L]: 5602850077
[Line-M]: 1620350748
[Line-N]: 7823857125
[Line-P]: 5051328370

Last two non-equal digits are '7' and '0', added to Personal Number (6) means that the permutation keys are 13 and 6 digits long.
 
[Line-Q]: 0668005552551     // first 13 digits from block
[Line-R]: 758838            // next 6 digits from block
[Line-S]: 5961328470        // Sequencing of [Line-P]

Шифрование сообщений

[ редактировать ]

Пересекающаяся шахматная доска

[ редактировать ]

После того как ключ сгенерирован, первым этапом фактического шифрования сообщения является преобразование его в последовательность цифр с помощью шахматной доски . Ключ (строка заголовка) для шахматной доски основан на [Line-S]. Затем во втором ряду используется заранее согласованный ряд обычных букв. В приведенном ниже примере используется английская мнемоника «AT ONE SIR»; однако кириллическая мнемоника, использованная Хайханеном, была «снегопад», русское слово, обозначающее снегопад.

Остальные ячейки заполняются, остальной алфавит заполняется по порядку, а затем . (точка) и / (символ цифрового сдвига, указывающий, что следующие символы до следующего цифрового сдвига являются числами; см. пример ниже).

  5 9 6 1 3 2 8 4 7 0
  А Т ТО Н И С я Р
6 Б С Д Ф Г ЧАС Дж К л М
8 П вопрос В V В Х И С . /

Ниже приведен пример кодировки, где цифры:

MESSAGE: 'Attack at dawn. By dawn I mean 0500. Not 0915 like you did last time.'

Encoding of individual symbols:
 A  T  T  A  C  K  A  T  D  A  W  N  (...)      0   9   1   5
 5  9  9  5 69 64  5  9 66  5 83  3        80 000 999 111 555 80

Final code:
 59956 96459 66583 38765 88665 83376 02538 00005 
 55000 00080 87319 80000 99911 15558 06776 42881
 86667 66675 49976 0287-

Транспозиции: столбчатая транспозиция

[ редактировать ]

Сообщение транспонируется с помощью стандартного столбчатого транспонирования, заданного клавишей [Line-Q] выше. (Примечание: если на этом этапе закодированная длина сообщения не кратна 5, добавляется дополнительная цифра)

Затем сообщение транспонируется посредством диагонального транспонирования, заданного клавишей [Line-R] выше. Значение слова «диагональ» в данном случае состоит в том, что треугольные зоны разрушения использовались для того, чтобы сделать транспозицию неравномерной.

Вставка группы ключей
[ редактировать ]

(Незашифрованная) группа ключей вставляется в группы «P» зашифрованного текста с конца; где «P» — неиспользуемая шестая цифра даты.

Модульное сложение/вычитание
[ редактировать ]

Модульное сложение или вычитание, также известное как «ложное сложение/вычитание», в этом контексте (и во многих шифрах, написанных ручкой и на бумаге) представляет собой поразрядное сложение и вычитание без «переноса» или «заимствования». Например:

  • 1234 + 6789 = 7913
  • 1234 - 6789 = 5555
Секвенирование
[ редактировать ]

Упорядочение в этом контексте — это упорядочивание элементов ввода от 1 до 10 (где «0» соответствует 10). Это происходит либо с буквами (при этом используется алфавитный порядок), либо с цифрами (при этом используется числовое значение). В случае равенства значений сначала упорядочивается самое левое значение. Например:

  • БУКВЫ: Слово «Осьминог» имеет последовательность «2163475» - (т.е. C=1, первый «O» = 2, второй «O» = 3, ...)
  • ЦИФРЫ: число «90210» имеет последовательность «34215» — (по порядку номеров. Ноль оценивается как «10» с точки зрения порядка)
Добавление цепочки
[ редактировать ]

Цепное сложение похоже на регистр сдвига с линейной обратной связью , в котором поток чисел генерируется на выходе (и подается обратно в качестве входных данных) в начальное число. В цепочке шифрования VIC сложение осуществляется путем (1) взятия исходного (начального) числа, (2) ложного добавления первых двух цифр, (3) помещения этого нового числа в конец цепочки. Это продолжается, однако добавляемые цифры увеличиваются на единицу. Например, если начальное значение было «90210», первые 5 итераций показаны ниже:

90210           // Initial seed value
90210 9         // 9 = 9+0 (first two digits)
90210 92        // 2 = 0+2 (next two...)
90210 923       // 3 = 2+1
90210 9231      // 1 = 1+0
90210 92319     // 9 = 0+9; note how the first '9' generated is being fed back in
Кодировка цифр
[ редактировать ]

На этапе кодирования каждая цифра в числе (т. е. [Строка-G] в шифре) заменяется цифрой из ключевой последовательности (т. е. [Строка-E.2]), которая представляет ее позицию в порядке 1-10. Следует видеть, что при написании ряда «1234567890» (показанного как [Line-F.2]) под [Line.E.2] каждое значение от 0 до 9 имеет другое над ним. Просто замените каждую цифру числа, которое нужно закодировать, на цифру, расположенную над ней в последовательности клавиш.

Ключ (строка Е.2) 6 0 1 3 5 8 9 4 2 7
Помощник (строка F.2) 1 2 3 4 5 6 7 8 9 0

Например, число «90210» будет иметь следующую кодировку: .

Таким образом, результат будет: «27067».

Расшифровка

[ редактировать ]

Расшифровка шифра VIC выглядит следующим образом:

  • Извлечь группу ключей . Зная шестую цифру секретной даты, удалите 5 цифр группы ключей из зашифрованного текста.
  • Генерация ключей сообщений . Используя знание различных секретов (фраза, дата, личный номер, группа ключей), сгенерируйте ключи таким же образом, как и процесс шифрования.
  • Расшифруйте зашифрованный текст . Используя знание ключей сообщений для транспозиций и шахматной доски, расшифровайте их.

Криптоанализ

[ редактировать ]

Этот шифр является одним из самых надежных шифров, используемых на бумаге и ручке, которые фактически использовались в реальном мире, и в то время он не был взломан (с точки зрения определения основного алгоритма) АНБ. [1] Однако с появлением современных вычислений и публичным раскрытием алгоритма этот шифр не будет считаться надежным. Можно заметить, что большая часть энтропии секретного ключа сходится к 10-значному числу [Line-H]. Это 10-значное число составляет примерно 34 бита энтропии, в сочетании с последней цифрой даты (необходимой для определения того, где находится группа ключей) составит около 38 бит энтропии с точки зрения силы ключа сообщения. 38-битная версия на современных компьютерах подвергается брутфорс-атаке менее чем за сутки.

См. также

[ редактировать ]
  1. ^ Перейти обратно: а б с Дэвид Кан. «Номер один из Москвы» . 1993.
  2. ^ Кан, Дэвид (1996). Взломщики кодов . Скрибнер. п. 650.
  3. ^ Кан, Дэвид (1996). Взломщики кодов . Скрибнер. п. 652.
  4. ^ «ВЕНОНА: Обзор» (PDF) . www.nsa.gov . Архивировано из оригинала (PDF) 4 марта 2016 года . Проверено 12 января 2022 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: bc66ce64825ae2e8b9cd8e694f6f5c42__1722159060
URL1:https://arc.ask3.ru/arc/aa/bc/42/bc66ce64825ae2e8b9cd8e694f6f5c42.html
Заголовок, (Title) документа по адресу, URL1:
VIC cipher - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)