55-79, 191. метод замены подстановка

Евгений Александрович Лыгин
стр. 55-79, 191

3.  МЕТОД  ЗАМЕНЫ  (ПОДСТАНОВКА)
      
     Шифрование способом замены заключается в том, что каждая буква или отрезок (пара букв, триграмма, слово, предложение) исходного открытого текста заменяется на какой-либо символ, код (группу символов) и т.п. Порядок следования заменяющих шифрообозначений в шифрограмме и соответствующих им букв в открытом сообщении одинаков.
   
3.1.   АЗБУКА   МОРЗЕ

Вы знаете, что собой представляет Азбука Морзе (приложение № 1). В ней 45 букв, цифр и знаков, которые кодируются различными комбинациями из точек и тире. Верхняя Азбука Морзе в нормальном виде. Ниже – Азбука  Морзе наоборот. Можете работать по ней, уже никто не поймет. Но это только один из многих  возможных  вариантов.
Вообще-то код Морзе был создан не для обеспечения сохранения тайны сообщений, а как удобный способ передачи точных  данных по телеграфу. 
 

3.2.  ДВ0ИЧНЫЙ   КОД
 
     Вопреки распространённому заблуждению, двоичная система счисления была придумана не инженерами-конструкторами ЭВМ, а математиками и философами задолго  до  появления  компьютеров.
     Записать десятичное число в двоичной системе – это  значит  записать его  в  виде N = аn;2; + аn-1;2;-1  + …   +а2;2; + а1;2 + а0 , где  а0, а1, а2, …, аn-1, аn - может быть цифрой 1 или 0.   
     Чтобы  узнать, чему равно девятизначное двоичное чис-ло 110001001  составим таблицу (рис. 8) из первых  девяти степеней двойки:  2;,  2;, 2;, 2; … и поместим  в неё  циф-ры  нашего  двоичного  числа. 
       

n 8 7 6 5 4 3 2 1 0
2; 256 128 64 32 16 8 4 2 1
110001001 1 1 0 0 0 1 0 0 1
   
Рис. 8.  Таблица

Единички в этой таблице показывают, какие степени двойки нужно сложить, чтобы получить число в десятичной системе: N = 256+128+8+1=393.
Попробуем теперь наоборот найти двоичное представ-ление числа 393. Сначала запишем его как 393=256+137.  Затем  запишем 137 как 128+9. Далее запишем 9 как  8+1. Каждый раз от числа как бы «отщепляется» максимально  возможная степень двойки. Получается 393=256+128+8+1.
Подставим в таблице единички под теми степенями, которые вошли в эту сумму, и нолики под теми, которые не вошли. Выписывая эти единички и нолики подряд по-лучаем: 393;;   =  1100010012.   
     Нахождение  двоичного  представления  числа  называется  переводом  числа  из  десятичной  в  двоичную систему  счисления. 
     Существуют и другие системы счисления, например, восьмеричная и шестнадцатеричная. 16-ричная система компактнее десятичной. Это можно использовать при шифровании для сжатия (уплотнения) информации, пере-водя  числа  из  одной  системы  в  другую. 
     В большинстве современных ЭВМ (КОИ-8) каждому символу соответствует последовательность из 8 нулей и единиц (из 8 бит), называемая байтом. Всего существует 256 разных последовательностей из 8 нулей и единиц – это  позволяет  закодировать  256  разных  символов. 
     В последнее время разработаны специальные коды, имеющие  целью  сократить  объем  информации  при  записи её в ЗУ. Специфика  заключается в том, что для записи  часто встречающихся символов используются короткие двоичные коды (короче 8 бит), а для записи редко встречающихся  - длинные (может быть более 8 битов). В ре-зультате – в среднем менее 8 битов на символ. Примером такого кода может служить код Хоффмана (приложение  № 20). Двоичный код для букв алфавита образуется путем последовательного выписывания нулей и единиц на маршруте от вершины графа до конца ветви, соответствующего данной букве. Так буква  Е  кодируется  комбинацией - 100,  R - 1011,  В - 011100  и  т.д.
     Двоичный  код (два обозначения  -  0 и 1, два состояния:  импульс и пауза, есть сигнал и нет сигнала, положительный потенциал и отрицательный) очень  удобен  для  машинной обработки и шифрования, но не удобен для ручного шифрования  из-за  громоздкости. 

3.3.   ЛИТОРЕЯ.
    
     К классу  «Замена»  принадлежит и  шифр «ЛИТОРЕЯ». Литорея (приложение № 21) - это тайнопись, употреблявшаяся  в  древнерусской  литературе. Литорея была  двух  родов:   
     ПРОСТАЯ, называлась также тарабарской грамотой, отсюда  и “тарабарщина” (неразбериха, бессмыслица). Это простой шифр.  Буквы алфавита пишут в 2 ряда: верхние буквы употребляют  вместо  нижних,  нижние - вместо  верхних  (прямая  замена).  Показанный  здесь вариант отличается от приведённого  ранее  в  «Истории  тайнописи».  Здесь  шифруются  все  буквы,  а  не  только  согласные.
     МУДРАЯ  литорея – более  сложный  шифр. Весь алфавит разбивался на З группы, по 10 букв в каждой. Первый  десяток букв обозначался точками. Например, “А” - одна точка, “Б” - две точки и т.д. Второй десяток обозначался чёрточками. Например, “Л” - одна черточка, «М» - две  чёрточки и т.д. Третий  десяток  обозначался  кружками.  Например, “Х” - один кружок, «Ц» -  два  кружка. Значки  эти  писались  столбиками. 
     Простая литорея  -  упрощённая схема парного шифра. В свою очередь Парный шифр является упрощённым вариантом способа Простой подстановки.
     Парный шифр. Ключом является фраза, содержащая не менее половины разных букв алфавита. Подписывая под этими буквами буквы в алфавитном порядке, не вошедшие в ключ, получаем разбиение букв алфавита на пары.
      
3.4.  ПЛЯШУЩИЕ  ЧЕЛОВЕЧКИ
      
     Каждой фигурке соответствует буква алфавита (приложение №  22). Флажок обозначает конец слова. Цель изобретателя этой системы заключалась, очевидно, в том, чтобы скрыть, что эти значки являются письменами, и вы-дать их  за  детские  рисунки.   
     Маскировка шифрограммы под детские рисунки - это некоторое преимущество, плюс, маленькая хитрость, которая даёт дополнительную защиту сообщению. Но это давало эффект только тогда, когда шифр появился впервые. В настоящее время это преимущество утрачено, т. к. каждому  с  детства известен этот способ шифрования. Минусом является то, что рисовать человечка сложнее, чем  писать  более  привычные  для  нас  буквы  или  цифры.  Тем  не  менее, для  передачи  коротких  сообщений  пользоваться  этим  шифром   можно.

3.5.  ШИФР  «УГОЛКИ»
   
     Одной  из разновидностей способа замены является  шифр  «Уголки».  Все буквы размещены  в  решётке  в алфавитном  порядке,  по  3  и  4 буквы  в клетке,  как показано  в приложении  № 23.  В процессе шифрования каждая буква заменяется на, соответствующий ключу, угольник или четырёхугольник:  пустой, с одной, двумя или  тремя  точками. 
 
3.6.  ШИФР  ПРОСТОЙ  ПОДСТАНОВКИ
(ЗАМЕНЫ)

     Каждая из 33 букв русского алфавита заменяется на  другую букву того же алфавита (МОНОАЛФАВИТНАЯ  ПОДСТАНОВКА). По левой табличке кодируем, по правой – раскодируем (приложение № 24). Правая табличка сделана  для  удобства,  можно  обойтись  и  без  неё. 
     Можно наоборот: по правой – кодировать, по левой -  раскодировать. Это будет уже другая комбинация, новый  набор,  иной  вариант  ключа. 
     Такой  шифр (одноалфавитная замена) имеет низкую (временную) стойкость, т. к. зашифрованный  (закрытый)  текст  имеет  те  же  статистические  характеристики, что  и  исходный  (открытый)  -  каждая  буква имеет свою час-тоту  появления (смотри статистику под заголовком «Разработка средств шифрования»). Поэтому использовать  этот  метод  целесообразно  для  шифрования  только  короткого  текста. 
     Методика раскрытия чужого шифра следующая. Анализируем шифротекст -  подсчитываем сколько каких символов (или групп)  в шифрограмме. Вместо символа, набравшего наибольшее число, везде проставляем пробелы. Вместо символа, занявшего по количеству второе место, подставляем букву «О». Символ, который по количеству стоит на третьем месте, заменяем на букву «Е». Символ шифрограммы, оказавшийся по количеству на четвёртом месте, заменяем на букву «А».
     Таким образом, первые по частоте встречаемости (по количеству) 5-6 символов шифротекста заменяем на соответствующие буквы согласно статистических данных, приведённых под заголовком  «Разработка средств шифрования».  Этого достаточно. Продолжаем  процесс дешифровки. Смотрим слова, в которых остался не расшифрован один символ. Вычисляем эту букву и подставляем её в шифротекст, и так  далее. 
     Чем больше имеется перехваченного шифротекста, тем сильнее проявляются в нём закономерности, тем легче его анализировать. Для криптоанализа нужно знание часто встречающихся типичных 2-3-х буквенных сочетаний (диграфов, триграфов), учитывать, что некоторые буквы могут быть сдвоенными («НН», «ЕЕ» и др.), а какие-то комбинации не встречаются вообще (например, «ЬЪ»), одни буквы встречаются чаще в началах слов, другие – в окончаниях. Так же необходимо учитывать статистические характеристики встречаемости слов (частоту), лексику и вероятностные характеристики употребления некоторых слов и словосочетаний  конкретным  отправителем. 

     Один из упрощённых вариантов простой замены – шифр Юлия Цезаря. В нём буквы, предназначенные для замены, расположены не в хаотичной последовательности, а в алфавитном порядке со сдвигом, как показано в таблице Виженера (см. приложение № 28). Применим сдвиг на одну букву: первую букву алфавита (без буквы Ё) заменяем на вторую, вторую -  на третью и т.д. Из таблицы используем первую строку (алфавит открытого текста) и вторую, сдвинутую на одну позицию. Букву исходного текста находим в первой строке и заменяем её на букву стоящую под ней во второй строке. Зашифруем текст  «НАЧАЛО  ОПЕРАЦИИ  ПЕРЕНОСИТСЯ  НА  ТРИНАДЦАТОЕ  ЧИСЛО»  и получим шифрограмму «ОБШБМП ПРЖСБЧЙЙ  РЖСЖОПТЙУТА  ОБ  УСЙОБЕЧБУПЖ  ШЙТМП». 
     Дешифровка неизвестного ключа производится с помощью полосок следующим методом. На каждую полоску наносятся все буквы алфавита по порядку. Берётся некоторое слово из криптограммы, например первое, «ОБШБМП». Полоски прикладывают друг к другу так, чтобы образовалось данное слово (в приложении № 25  оно в рамке).  Двигаясь вдоль полосок, находим единственное осмысленное сочетание (строку) «НАЧАЛО» (выделено жирным), которое и служит расшифровкой данного слова. Одновременно находим величину сдвига – в данном случае на один символ.  Шифр  взломан!   

3.7.  БИГРАММНЫЙ  ТАБЛИЧНЫЙ  ШИФР.

     Для получения такого шифра изготовим таблицу размером 5*6. Заполним таблицу буквами сокращённого алфавита (без Ё, Й, Ъ) в случайном порядке. Сначала впишем ключевое слово (фразу, условно-случайную последовательность) «КРАСНОЕ ЯБЛОЧКО». Повторяющиеся буквы (в данном случае: О, К, О) отбрасываем. Далее дописываем  по порядку  буквы алфавита, не вошедшие  в ключ (см. рис. 9).
     Зашифруем сообщение «ТАЙНИК  НОМЕР  ТРИ  ПУСТ».  Разобьём его на пары букв (биграммы) и получим  «ТА  ЙН  ИК  НО  МЕ  РТ  РИ  ПУ  СТ».
 


К Р А С Н О
Е Я Б Л Ч В
Г Д Ж З И М
П Т У Ф Х Ц
Ш Щ Ы Ь Э Ю

Рис. 9.  Таблица шифрования.

     Правила шифрования следующие:

     1. Если обе буквы биграммы исходного текста принадлежат одной колонке таблицы, то буквами шифра считаются буквы, которые лежат под ними. Так биграмма ЙН даёт текст шифровки ХЧ. Если буква открытого текста находится в нижнем ряду,  то для шифра берётся соответствующая буква из верхнего ряда этой же колонки и биграмма ЯЩ даёт шифр ДР.
     2. Если обе буквы биграммы исходного текста принадлежат одной строке таблицы, то буквами шифра будут буквы, лежащие справа от них. Так биграмма ПУ даёт шифротекст ТФ. Если буква открытого текста расположена в правом столбце, то для шифра берётся буква из левого столбца и биграмма НО даёт шифр ОК. 
     3. Если обе буквы биграммы открытого текста лежат в разных рядах и колонках, то вместо них для шифрограммы берутся такие две буквы, чтобы вся четвёрка их представляла прямоугольник. Например, пара  ТА шифруется как  УР, а биграмма  РИ  заменяется на  НД.
     Шифротекст сообщения будет выглядеть так: УР  ХЧ  ГН  ОК  ГВ  ЯЩ  НД  ТФ  РФ.
     Чтобы в биграмму не попали две одинаковые буквы, между ними вставляют букву-пустышку. Если количество букв в сообщении не чётное, в текст так же добавляется буква-пустышка. Можно установить и другие правила.
     Шифром удобно пользоваться благодаря упрощённому процессу шифрования и дешифрования. Для создания такой таблицы достаточно помнить ключевое слово и порядок расположения букв в алфавите. В то же время данный шифр имеет более высокую стойкость, чем шифр простой подстановки, т.к. для замены каждой буквы исходного текста используются не одна, а несколько различных букв (в зависимости  от  формирования  биграмм). Если предварительно в таблице сделать перестановку, это скроет частоты появления биграмм и затруднит криптоанализ.
     В вышеприведённом  образце шифра каждая буква биграммы отдельно заменяется на другую (одну) букву. В качестве альтернативы можно взять систему шифрования, в которой заменяется целиком пара букв (диграф) на другую пару. Это таблица соответствия, состоящая из двух колонок. В ней в первой колонке в строгом алфавитном порядке перечислены все 1089 (33*33) пар букв открытого текста. Во второй (правой) колонке столько же пар букв шифрованного текста (размещены в случайной последовательности). Каждому диграфу открытого исходного текста соответствует заменяющий диграф шифрограммы. В таблице замены для расшифрования ( в дешифранте) в алфавитном порядке расположены пары букв шифротекста , а справа напротив – соответствующие пары букв открытого текста. Вместо постолбцовых таблиц можно пользоваться таблицами типа Виженера. Первая буква диграфа сообщения соответствует столбцу, вторая – строке. На пересечении в клетке  - заменяющая пара букв шифротекста.

3.8.  ШИФР  С  ОТКРЫТЫМ  КЛЮЧОМ

     Рассмотрим простенький шифр с открытым ключом, изображённый в приложении № 26.
     Из картона или пластика изготавливаются два диска, которые разбиваются на 33 равных сектора (по количеству букв). Диск меньшего диаметра накладывается на диск большего диаметра соосно. По окружности большого диска размещаются все 33 буквы в алфавитном порядке. По окружности маленького диска размещается шкала с цифрами. Центральная клетка шкалы не заполнена, чистая. В нашем примере шкала имеет 33 клетки. Все ячейки шкалы пронумерованы числами от 1 до 16, как влево, так и вправо. Нумерация начинается от центральной (пустой, нулевой) ячейки и продолжается в обе стороны.
     В процессе шифрования буква исходного текста заме-няется на смешанную трёхзначную группу, состоящую из  двух цифр и одной буквы. Двузначная цифровая группа является ключом и указывает – на сколько позиций сдвинут алфавит. Таким образом, в нашем случае для замены каждой буквы выбирается сочетание число-буква из 32 возможных. Чтобы не было путаницы, желательно исключить одновременное попадание в триграф: буквы О и цифры 0, буквы З и цифры 3, буквы Ч и цифры 4, буквы Б и цифры 6. 
     Требуется зашифровать текст «У агента не должно быть слабых мест». Процесс шифрования следующий. Букву открытого текста находим в алфавите. Поворачивая диски относительно друг друга, кольцо с алфавитом и кольцо с цифрами смещаем так, чтобы шифруемая буква оказалась напротив центральной пустой клетки шкалы. Ключом является случайное, произвольное, смещение алфавита с помощью цифровой шкалы.
     Пусть мы решили для шифрования первой буквы применить сдвиг по алфавиту на 1 пункт вправо. Тогда над цифрой 1 (в правой части шкалы) мы видим букву Ф (см. приложение № 26). Первую букву (У) открытого текста заменяем на букву Ф с прибавлением к ней цифровой группы 01, которая указывает шаг смещения. 
     Вторую букву (А) шифруемого текста ставим напротив центральной ячейки шкалы и произвольно применяем сдвиг, например, на 9 пунктов влево. Тогда над девяткой в левой части шкалы видим букву Ч. Вторую шифруемую букву (А) заменяем на букву Ч, к которой дописываем цифровую группу 09. Алфавит и шкалу можно развернуть в прямую ленту, как показано на  рисунке 10. 

Ч Ш Щ Ъ Ы Ь Э Ю Я А Б
9 8 7 6 5 4 3 2 1 1

Рис. 10.  Шифруется буква А.
 
     Букву Г подводим к центру шкалы и, применяя сдвиг на 5 символов вправо, берём для замены букву З (см. рис. 11).


Б В Г Д Е Ё Ж З И Й К
2 1 1 2 3 4 5 6 7 8

Рис. 11.  Шифруется буква Г.
 
     Очередную букву открытого текста (Е), применяя случайное смещение влево, заменяем на триграмму 03В.
     Аналогично шифруем остальные буквы исходного текста, произвольно выбирая комбинации букв и двузначных чисел (ключа). Криптограмма может быть такой, как показано на  рис. 12. 

ОТ У А Г Е Н Т А Н Е Д
ШТ Ф01 09Ч З05 03В 02Л Ы09 Г03 05И Н09 Е01
ОТ О Л Ж Н О Б Ы Т Ь С
ШТ 13В 09Г 02Е 00Н 06И Й09 А05 07Л Е09 07К
ОТ Л А Б Ы Х М Е С Т
ШТ С06 А00 Н13 Д09 05Р О02 03В 09И Ч05

Рис. 12.  Таблица соответствия
открытого и шифрованного текстов.
 
     Расшифрование происходит в следующем порядке. Первая группа криптограммы - Ф01. Числовой показатель сдвига (01) расположен справа от буквы. Значит, пользу-емся правой частью шкалы. Поворачивая кольца с алфавитом и числами, число 1 на правой половине шкалы совмещаем с буквой Ф и над центром шкалы получаем первую букву (У) исходного текста.
     Цифры шифрограммы можно искусственно подгонять под какие-нибудь числовые выражения или даты. С целью запутать разведку противника так же буквы шифрограммы можно специально подогнать под читаемый (как бы открытый) текст. Если разделить криптограмму (разбить группы) на две части: числовую (ключ) и буквенную, то последняя  будет читаемой (осмысленным текстом), что поставит злоумышленника в тупик. 
     Шкала, располагаясь по дуге, может иметь не 33, а 21 клетку с нумерацией от 1 до 10 в каждую сторону. Десятые (крайние) ячейки нумеруются нулём. Тогда в шифрообозначениях будет одна буква и только одна цифра. Т.е. используемые для замены составные буквенно-цифровые группы будут не трёхзначными, а двузначными. Шифрограмма будет компактней. Но подгонять шифротекст под читаемый (смысловой) тут вряд ли получится. И выбор для замены каждой буквы будет поменьше, из 20 пар.
     Если противнику неизвестно, что здесь открытый ключ, то этот шифр по стойкости сравним с шифром Виженера. Если противник догадается, что шифр с открытым ключом, то шифр может быть взломан, т.к. количество принципиально различных ключей небольшое.

     Шкала может быть пронумерована в одну сторону числами от 0 до 32 (показано в приложении № 27). Но такая нумерация (количество чисел равно количеству букв в русском языке) для потенциального криптоаналитика будет хорошей подсказкой об открытом ключе. В качестве числовой шкалы так же можно применить буквы, расположенные в алфавитном порядке (внутреннее кольцо - приложение №  27) или в случайной последовательности. Для примера зашифруем букву Ч. Находим её на внешнем кольце и совмещаем с буквой А на внутреннем кольце, соответствующей нулевой отметки на числовой шкале. В качестве ключа возьмём букву Х на внутреннем кольце, что равноценно числовому ключу 22, т.е. алфавит сдвинут на двадцать две позиции. Напротив ключа Х из внешнего кольца  берём букву шифротекста М. Если работаем с открытым ключом, к букве М дописываем ключ (букву Х или число 22). Таким образом, в шифрограмме будет пара МХ или триграф М22, соответствующие букве Ч открытого текста. Если ключ секретный, то в шифрограмме будет только буква М. Расшифровываем в обратном порядке.
     Если работать с секретным ключом, т.е. заранее договориться о ключе и не показывать его в криптограмме, тогда в криптограмме будут только буквы в хаотическом порядке. Криптограмма без числового или буквенного ключа будет занимать меньше места. По сути это уже многоалфавитная замена. 

3.9.  ПОЛИАЛФАВИТНАЯ  ЗАМЕНА.

     Для повышения стойкости шифра используют ПОЛИ-АЛФАВИТНЫЕ  ПОДСТАНОВКИ,  в  которых  для  замены символов  исходного  текста  используются  символы  нескольких  алфавитов  (наборов). 
 
3.9.1.  ШИФР  ВИЖИНЕРА

     ТАБЛИЦА  ВИЖИНЕРА  представляет  собой  квадратную  матрицу  с  n2  элементами,  где  n  число  символов  используемого  алфавита  (приложение №  28.). Каждая строка получена циклическим сдвигом алфавита на 1 символ.   
     В отличие от приложения  № 24 , где только  2  варианта ключа, таблица вижинера имеет 31 ключ (алфавит, набор):  ключ  «Б»  -  вторая  строка (со сдвигом на один знак),  начинающаяся  с  буквы  «Б»;  ключ «В» - третья  строка,  начинающаяся  с буквы «В», сдвинута относительно первой строки на две буквы и т. д. до ключа «Я» (алфавит сдвинут на 31 символ). Ключ «А» - верхняя строка – алфавит открытого текста,  сдвиг равен нулю. Каждая отдельная строка Таблицы Вижинера представляет собой шифр Ю. Цезаря со своим вариантом ключа (с различным сдвигом алфавита). 
     При шифровании каждая буква исходного (открытого) текста  отыскивается  в  верхней  строке  таблицы  и  заменяется на букву, стоящую под ней в соответствующей ключу  строке. 
     С помощью таблицы Вижинера можно передавать сообщение  каждому  адресату  в  своем  ключе  (адресату  «Б» - в ключе «Б», адресату  «В» - в  ключе «В» и т. д.) или  менять ключ по временному графику, например, сегодня работаем  в  ключе «Б», завтра  - в  ключе «В»  и т.д. 
     Можно для  шифрования  каждого  сообщения  или  каждого  слова  использовать  новый  ключ  (другую строку). Ключ  будет циклически меняться (повторяться). Также каждую букву  исходного  текста  можно  кодировать  другим  ключом.

     При МНОГОАЛФАВИТНОЙ ОДНОКОНТУРНОЙ  ОБЫКНОВЕННОЙ  подстановке  смена  aлфавитов  осуществляется  последовательно  и  циклически, т. е. первый  символ открытого текста заменяется соответствующим символом первого алфавита, второй - символом  второго алфавита и т. д. до тех  пор,  пока  ни  будут  использованы  все  выбранные  алфавиты. После  этого  использование  алфавитов  повторяется. 
     Аналогом этому является таблица Вижинера. Для шифрования выбирается буквенный ключ, например, «ХВАЛЫНСК». Из полной таблицы выбираются первая строка (алфавит открытого текста)  и  те строки, первые  буквы  которых  соответствуют  буквам  ключа  ( в  порядке  следования  этих  букв  в  ключе).
     Процесс  шифрования  осуществляется  следующим  образом. Например, требуется зашифровать текст: «ЧЕРЕЗ  ЭТИ ШТУКОВИНЫ ВСЁ, ЧТО ПЕЧАТАЛОСЬ В ПОСОЛЬСТВЕ,  ПЕРЕДАВАЛОСЬ ПОДСЛУШИВАЮЩЕМУ  ПОСТУ  КГБ  В  ДОМЕ  НАПРОТИВ». 
     При необходимости знаки препинания и цифры писать прописью (словами): ТЧК (точка), ЗПТ (запятая), ВОПР ЗНАК (вопросительный знак) … Под каждой буквой шиф-руемого текста записываются буквы  ключа. Ключ  повторяется  необходимое  число  раз.  Получаем: 
      
ЧЕ Р Е З    ЭТИ   ШТУКОВИНЫ   ВСЁ,   ЧТО   ПЕЧАТА… 
   
ХВАЛЫ    НСК   XBAЛЫHCKX    ВАЛ   ЫНС  КХВАЛЫ…   
    
     Каждая буква шифруемого текста заменяется буквами, находящимися на пересечении линий, соединяющих буквы шифруемого текста в первой строке и находящихся под ними букв ключа. Берем первую букву открытого текста (Ч) и соответствующую ей букву ключа (Х). По букве шифруемого текста (Ч) выбираем под нею букву, расположенную в строке соответствующей букве ключа (Х) - в  нашем примере такой буквой является «М». Вторая буква исходного текста - «Е». Ей соответствует буква ключа - «В». Под буквой «Е» (в первой строке) в строке, начинаю-щейся с буквы «В», расположена буква «З», и т.д. Полу-чим:
 
ОТ    -  Ч  Е  Р Е  З     Э Т И      Ш Т  У К О В И  Н Ы     В С Ё … 
К       -  Х В А Л Ы     Н С К      Х  В А Л Ы Н С  К Х      В А Л …
ШТ   -  М З Р  Р В      К Г Т      Н  Ф У Х Й  П Щ Ч Р      Д С Р …

ОТ  -  открытый текст,  К  -  ключ,  ШТ  -  шифрованный  текст. 
     Чтобы нарушить группировку по словам (по смыслу), полученный шифрованный текст может разбиваться на группы по несколько знаков: МЗРРВ КГТНФ УХЙПЩ  ЧРДСР  ТЯЯЩЪ  ЩАЭЫШ … или записываться подряд  без  пробелов. 
     При использовании такого метода статистические характеристики исходного текста в зашифрованном сообщении практически не проявляются. Надежность шифрования тем выше, чем больше букв в ключе. Не целесообразно выбирать  ключ  с  повторяющимися  буквами. 
     Расшифрование  происходит  в  следующем  порядке.  Под  шифртекстом  записывается  ключ.  В  строке, соответствующей  букве ключа, отыскивается буква шифртекста  и над  ней  в  верхней  строке  находится  буква  открытого  текста. 
     В качестве «скользящего» ключа к шифру может быть использовано некоторое стихотворение или книга, тем самым устраняется необходимость непрерывно повторять один и тот же короткий ключ. При этом для повышения стойкости можно использовать не все буквы подряд, а,  скажем, каждую десятую букву. Такие разъединенные буквы почти независимы. В качестве составной части секретного ключа может использоваться сам по себе открытый текст или шифротекст (автоключ). Шифрование начинается с помощью первичного (настоящего) ключа и продолжается с помощью сообщения или криптограммы. 
     Для обеспечения гарантированной стойкости многоалфавитного шифра необходимо использовать перетасованные алфавиты (наборы), т.е. последовательности символов расположенные хаотично, а не в алфавитной очерёдности.
   
     ПОЛИАЛФАВИТНАЯ МНОГОКОНТУРНАЯ замена  заключается  в том, что для шифрования используются несколько наборов (контуров) алфавитов используемых цик-лически, причем  каждый контур имеет свой  индивидуальный период  применения. Этот период исчисляется количеством знаков, после зашифровки которых меняется контур алфавитов. Частным случаем многоконтурной полиалфавитной подстановки является замена по таблице Вижинера, если для шифрования используется несколько ключей, каждый из которых имеет свой период применения. 

Взлом шифра Виженера

     Представим, что мы перехватили шифрограмму объё-мом 226 символов: 

ЮЬ  ХЕ  ИШ  ЛО  ФЫ  ОХ  ЕЯ  ВГ  ЦЭ  ЦУ  ЭШ  ЮЛ  ФЦ  ЪЦ  ЬЭ
ХО  ХО  ЪГ  ЫЦ  НЬ  ИК  ЦО  БГ  ЬХ  ФЦ  ЪЦ  ЬЭ 
ИИ  КЦ  ОБ  ГЕ  ХЧ  ИХ  ЙШ  СО  ИХ  ЩУ  ЦМ  ЬО  ЕЫ  ЛУ 
ИП  ЬФ  ЭЪ  ИЙ  ОЫ  СТ  ИЛ  ГЩ  БК   ЬЕ  ЦЦ  НГ 
НЭ  ЦЦ  НЧ  СЗ  ЙИ  РО  ИО  ОХ  ЦГ  ЫГ  ГЮ  СП  ЬР  ГЫ  СГ  ЫИ  ГБ  ФЫ  ОР  ЬИ  ХЩ  УЦ  МЬ  ОЕ  ЫЛ  УЦ  ЭА  УУ  ЫЦ  ХЕ  ИЛ  ГЫ ЛА  УЖ  ЧИ  РО  АЭ  ЪЩ  ГВ  УЭ  АБ  ЙС  ГЭ  ПУ  РГ 
ЭУ  ЧЖ  ЦГ  ЪИ  ЦН  ЭЛ  ЯХ  ЙР  ГЦ  ЦИ  ХИ  ТЧ  ЕХ  СА  ЯГ
 
     Попробуем восстановить секретное сообщение. Предположим - нам известно, что в открытом тексте Ъ применён для обозначения пробелов, точек и запятых, а мягкий знак применяется и как Ь и вместо Ъ.
     Прежде всего, нам следует определить длину ключа. Для этого необходимо найти повторяющиеся сочетания букв (диграфы, триграфы …). Если эти повторы не случайны, то они отстоят друг от друга на расстояние, кратное длине ключа. Чем длиннее повторяющиеся отрезки и чем больше повторений, тем  лучше ситуация  для  криптоаналитика.
     Диграф  ЬХ  встречается на позициях 2 и 47. Найдём расстояние между ними, которое равно 45 (47-2). Разложим разность позиций на множители:  45=3;3;5.   Судя по этому можно сделать вывод, что ключ может быть длиной или 3, или 5, или 9, или 15 знаков. 
     Пара  ХЕ  встречается на позициях  3, 12, 165.  Вычислим разности номеров позиций и разложим их на множители:  165-12=153 (3;3;17), 12-3=9 (3;3).  Разность 153 и разность 9 имеют общие делители 3 и 9. Сопоставляя их с цифрами предыдущего диграфа  ЬХ,  видим общие делите-ли 3 и 9. На данном этапе можно сделать предварительный вывод, что длина ключа равна 3 или 9. 
     Продолжая анализировать шифротекст, ищем повторы одинаковых последовательностей букв.  Трёхзначную группу  ФЫО  находим на позициях 9 и 141. Расстояние между этими порядковыми номерами равно 132 (3; 2;2;11).  Возможные варианты длины ключа:  2 (но это неэффективно и маловероятно), 3, 4, 6, 11, 12 или 22. 
     Пара букв  ГЫ  (выделено жирным) появляется в шифрограмме пять раз – на позициях 36, 124, 133, 136, 169.  Расстояние между позициями и разложение на множители следующее:
     169 - 136 = 33 (3 ; 11), 
     136 - 133 = 3 , 
     133 - 124 = 9 (3 ; 3),   
     124 - 36 = 88 (8 ; 11). 
Очевидно, что общий делитель равен 3.
     Диграф  ЦН  встречается на позициях 38, 104, 110, 205. Разность между номерами позиций кратна трём.
     Диграф  ИХ  встречается на позициях 65, 71, 146 и 216. Причём на позициях 71 и 146 является началом 12-буквенной повторяющейся последовательности  ИХЩУЦМЬОЕЫЛУ  (она в шифровке подчёркнута). Повторение цепочек такой длины не случайно. Поэтому придаём расстоянию между этими номерами особое значение. Оно равно 75 и кратно 3.
     Нельзя  не обратить внимание на шестибуквенное повторение  ФЦЪЦЬЭ  на позициях 25 и 49 (выделено курсивом). Разность позиций также кратна трём.
     Расстояние (15) между позициями 41 и 56 шестибуквенной группы  ИКЦОБГ  также кратно трём. 
     Итак, сравнивая цифры, можно с большой вероятностью заключить, что длина ключевого слова (период гаммы) равна 3.  Т.е. используется три сдвига алфавита: первый сдвиг применяется к буквам 1, 4, 7 и т.д.; второй сдвиг – к буквам 2, 5 , 8 и т.д.; третий сдвиг – к буквам 3, 6 , 9 и т.д.  Поэтому  выпишем  шифротекст  в три строки: 

1).  Ю  Е  Л  Ы  Е  Г  Ц  Ш  Ф  Ц  Х  О  Ы  Ь  Ц  Г  Ф  Ц  И  …
2).  Ь  И  О  О  Я  Ц  У  Ю  Ц  Ь  О  Ъ  Ц  И  О  Ь  Ц  Ь  И  …
3).  Х  Ш  Ф  Х  В  Э  Э  Л  Ъ  Э  Х  Г  Н  К  Б  Х  Ъ  Э  К  … 

Подсчитаем частоту встречаемости букв в каждой строке отдельно и получим таблицу, показанную на рис.13. 
     Сосредоточимся на аномально высокой частоте встречаемости (14) буквы  Г  в первой строке. Очевидно, что  Г  представляет собой  шифр пробела, т.е. буквы  Ъ  открыто-го текста. Значит, сдвиг для первой строчки равен 9 (Ъ+9=Г).  Т.е. для замены 1-ой, 4-ой, 7-ой и т.д. букв от-крытого текста брались буквы (по таблице Виженера) из строки, начинающейся с буквы  Й,  сдвинутой на 9 позиций (А+9=Й).  Следующие по частоте мы видим буквы  Ц (встретилась 9 раз) и  О (6 штук).  Им соответствуют буквы  Н  и  Е  открытого текста, отстоящие от них в алфавите на 9 позиций.  Н  и  Е  - часто встречающиеся буквы в русском языке (см. статистику под заголовком «Разработка средств шифрования»), это подтверждает, что первый сдвиг равен 9. Таким образом, первый элемент ключа ра-вен 9 (в цифровом виде) или  Й (в буквенном представлении), что соответствует следующей нумерации алфавита (без буквы Ё):  А=0, Б=1, В=2, …, Я=31. 

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

Рис. 13.  Частоты  встречаемости букв в шифрограмме.

     Во второй строке буква  И  встречается 14 раз. С уверенностью можно сказать, что  И  является шифром твёрдого знака, который стоит на местах пробелов в открытом тексте. Поскольку буква  И  отстоит на 14 позиций от  Ъ, то второй сдвиг равен 14. Дальше по частоте идут буквы  Ц (9), Ь (8)  и  У (7).  Сдвигая  их  на 14 позиций, видим соответствующие буквы открытого текста  И, О  и  Е.  Поскольку  эти буквы имеют наибольшую  частоту  встречаемости в русском языке, мы окончательно убеждаемся, что  второй  элемент ключа  равен 14, что соответствует букве  О.
     Проанализируем третий сдвиг. В третьей строке наиболее часто встречаются буквы  Х  и  Э, каждая 11 раз. В отличие от первой и второй строк эта цифра не сильно выделяется над остальными, но, скорее всего, одна из этих букв соответствует пробелу. Буква  Х  отстоит от  Ъ  на 27 пунктов, буква  Э  - на 3.  Мы могли бы поочерёдно опробовать оба сдвига, но существует другой подход.
     Перепишем шифрограмму, опуская не имеющие значения пробелы, стоящие после каждой пары букв. Под строками шифрограммы будем записывать строки открытого текста. В каждой тройке расшифруем первую и вторую буквы, используя сдвиги на 9 и 14 пунктов соответственно. Вместо третьей, пока неизвестной, буквы будем ставить вопросительный знак.
     Первая буква шифротекста - Ю. Применим сдвиг на 9. В таблице Виженера в строке начинающейся с буквы  Й  находим букву шифротектста (Ю), над которой в верхней строке увидим  букву открытого текста  (Х). Под первой буквой шифротекста (Ю) записываем первую букву открытого текста (Х).
     Расшифровывая вторую букву шифрограммы (Ь) используем сдвиг на 14 позиций, соответствующий второму элементу ключа. В строке, начинающейся с буквы  О, ищем букву шифрограммы (Ь). Над мягким знаком в верх-ней строке таблицы расположена буква  О. Под второй буквой шифротекста (Ь)  записываем вторую букву открытого текста (О). Под третьей буквой шифротекста (Х) записываем вопросительный знак, поскольку пока третья буква исходного  сообщения  нам  неизвестна.
     Четвёртую букву шифротекста (Е) расшифровываем аналогично, применяя сдвиг алфавита на 9 позиций, и записываем под ней букву открытого текста (Ь). Продолжая так  далее,  получим: 

ШТ:  ЮЬХ  ЕИШ  ЛОФ  ЫОХ  ЕЯВ  ГЦЭ  ЦУЭ  ШЮЛ…
ОТ:   ХО?    ЬЪ?   ВА?   ТА?    ЬС?  ЪИ?  НЕ?   ПР? …

     Мы знаем, что  Ъ в открытом тексте означает пробел. Перепишем оба текста, отбрасывая Ъ в открытом тексте и стоящие над ним буквы в шифротексте, делая вместо них пробелы. Получим  тексты, сгруппированные  по словам.

ЮЬХЕ     ШЛОФЫОХЕЯВ     ЦЭЦУЭ ШЮЛФЦЪЦЬЭ
ХО?Ь       ?ВА ? Т А?Ь С?      И? НЕ? ПР? ЛИ? НО?

ХОХОЪГЫЦНЬ     КЦОБ      ЬХФЦЪЦЬЭ 
МА?ЕМ?ТИ? У       ?НА?       О? ЛИ? НО?
 
И     КЦОБ     ЕХЧ     ХЙШСО     ХЩУЦМЬОЕЫЛУ
Я     ? НА?     Ч?О     ? АК? Е      ? РЕ? ГО? ЬН?К

ПЬФЭЪ     ЙОЫСТ     Л     ЩБКЬЕЦЦН   
? УЖ?С     ? ЕН?Й      ?      Л?БО? НИ? 

НЭЦЦНЧСЗЙ     РО     ООХЦ      ЫГ     ЮС ПЬР   
Я? НИ?ОГ?А      ?Е       ?ЕЗ?       Н?       Р? ЖО?

ЫС     ЫИ      БФЫОРЬ     Х ЩУЦ МЬОЕЫЛУЦЭАУУ ЫЦХЕ
Н?       Н?       У? ТА? У      ? РЕ? ГО? ЬН? КИ?   ЧЕ?ТИ? Ь

Л     ЫЛАУЖЧ     РОАЭЪЩГВУЭАБЙСГЭПУР   
?      Н?ЧЕ? О      ?ЕТ?  СЛ?ЩЕ?ЧУ? ИХ?ЖЕ? 

ЭУЧЖЦ      ЪИЦНЭЛЯХЙРГЦЦИ Х     ТЧЕХСАЯ   
П?ОШ?       М?НЯ? ВС? АВ?НИ? М     ?ОЧ? ИТ?   
 

     Обратим внимание на короткие слова, в которых не хватает одной буквы. В третьей строке открытого текста третье слово, скорее всего, - «ЧТО». Вместо вопросительного знака подставим букву  Т.  Буква открытого текста  Т отстоит от буквы шифротекста  Х  (в алфавите) на 3 позиции. В пятой строке открытого текста во втором (двухбуквенном) слове,  по-видимому,  первая буква - Н.  По буквам шифрованного (Р) и открытого (Н) текстов находим величину сдвига. Она тоже равна трём. Таким образом, мы получили подтверждение, что третий сдвиг равен 3. Третий  элемент  ключа  соответствует  букве  Г.
     Итак, мы имеем полный ключ, все три элемента:  9-14-3 (в цифровом виде)  или  ЙОГ  (в буквенном варианте).  Применяя сдвиг на 3 пункта, вместо вопросительного знака  получаем  недостающие  буквы  открытого  текста. Вместо твёрдого знака ставим пробелы. Исходный текст восстановлен. "Секретное" сообщение называется «Я - великий математик».  :-)

Хоть    хвастаться  и  неприлично,
Математику  знаю  отлично. 
Я  знаю,  что  такое   треугольник  -
Муж  с  женой  и  любовник. 
Я   никогда  не  лезу  на  рожон, 
Но  не  устану  треугольники  «чертить».
И  ничего  нет  слаще  чужих  жён!
Прошу  меня  вставанием  почтить. 
 


3.9.2.  МОНОФОНИЧЕСКАЯ   ЗАМЕНА.

     Частным случаем многоалфавитной замены является  монофоническая  замена (гомофонический  шифр, однозвучная подстановка). Особенность этого метода состоит в том, что количество и состав алфавитов выбираются таким образом, чтобы частоты  появления всех символов в зашифрованном тексте были  одинаковыми. При таком положении затрудняется  криптоанализ зашифрованного текста с помощью его статистической обработки. Выравнивание частот появления символов достигается за счет того, что для часто встречающихся символов исходного текста предусматривается использование большего числа заменяющих элементов, чем для редко  встречающихся.
     После шифрования каждой буквы соответствующий ей столбец циклически сдвигается вверх на одну позицию. Таким образом, столбцы алфавита как бы образуют независимые друг от друга кольца, поворачиваемые вверх на один знак каждый раз после шифрования соответствующей буквы (приложение № 29.). В отличии от таблицы Виженера,  в монофоническом шифре  для  замены  каждой  конкретной  буквы  используются свои  символы,  которые  уже  для  других  букв  не  используются.  Каждый набор символов предназначен для какой-то  одной  буквы.
     В качестве примера  зашифруем  монофоническим  шифром  тот  же  текст:   
    
ОТ  -  Ч Е Р  Е  З    Э Т И     Ш Т У К О В И Н  Ы    В С Ё,  …   

ШТ -  Z Ь Б Ю Я    I  Г  h     И  Л S Ъ Х + Ы Щ П     8  L  :   …   

 




3.10.  ШИФРОВАНИЕ  ЦИФРАМИ
      
     При шифровании методом подстановки, буквы исходного текста могут заменяться на геометрические фигуры, фигурки людей, животных, любые рисунки, символы, бук-вы или цифры  (группы).   
   
3.10.1.  КАЖДАЯ  БУКВА  КОДИРУЕТСЯ  ТОЛЬКО  ОДНИМ  ЧИСЛОМ 

     В приложении  № 30 показан  способ  простой  подстановки, где для кодирования 33 букв используются 33 чис-ла. Каждая  из  33  букв  заменяется  на  одно  из  чисел:   01, 02, 03, ...,33. 

Вариант 1

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

Вариант  2 

     Здесь числа (двузначные цифровые группы) набраны в лотерейном  порядке  по  принципу  случайных  чисел.
     На случай хищения, утери (компрометации) таблицы, можно усложнить  - договориться переставлять местами цифры в каждой группе.  Например,   А=05  -  в шифровке писать  50. 
 
3.10.2.  КАЖДАЯ  БУКВА  КОДИРУЕТСЯ  ДВУМЯ  ГРУППАМИ

     Общее количество чисел (цифровых групп), используемых  для  кодирования,  в  2  раза  больше  чем  букв. 
     В таблице № 1 (приложение № 31) - 49 букв, цифр и знаков + резерв, для  кодирования  которых  используются  100 чисел (групп). Первая и вторая строчки - это двузначные  группы,  используемые для кодирования. Группы  “36”  и  63”  - резерв. Третья, нижняя, строка - буквы, цифры и знаки препинания. Для кодирования каждой буквы используются то одна, то другая группа (стоящие над буквой), чередуясь попеременно. В этой таблице - группы расположены по порядку номеров. Таблицы такого типа не трудно хранить в памяти.
     В таблице № 2 (приложение № 32) группы, используемые  для  кодирования, расположены  хаотично. Таблица  № 2  состоит  из  двух  таблиц. Левая таблица   предназначена  для  кодирования (кодовая таблица). Правая -  для  раскодирования (дешифрант). Напротив каждой буквы (в левой таблице) стоят две двузначные группы, которые используются для замены данной  буквы  чередуясь попеременно. Например, слово “шалаш” будет иметь такой вид: 15  68  06  12  82. Чтобы ввести в заблуждение противника, эту шифрограмму  можно  записать  так: 156  806  128  224  или  так:  1568  0612  8276. Для  доукомплектования последней  группы  используем  резерв.