88-97, 174. метод гаммирования

Евгений Александрович Лыгин
стр. 88-97, 174


4.   МЕТОД   ГАММИРОВАНИЯ
      
     Суть этого метода состоит в том, что символы шифруемого текста складываются с символами некоторой специальной  последовательности - гаммой (наложение гаммы  на  исходный  текст). 
     Аналог гаммирования  рассмотрен выше, под заголовком  «ПЕРЕКОДИРОВАНИЕ».   
     Процедура наложения гаммы на исходный текст может быть различной. Например, символы исходного текста и гаммы заменяются цифровыми эквивалентами, которые  затем складываются или вычитаются. Или символы исход-ного текста и гаммы представляются в виде двоичного кода, затем соответствующие разряды складываются по модулю 2. Также  можно использовать преобразование по правилу логической эквивалентности (неэквивалентности) и другие логические  операции.   
     В качестве гаммы может быть использована любая последовательность случайных символов, например, последовательность цифр числа пи (3,14...). При  ручном шифровании  для формирования случайной цифровой последовательности  любой длины можно использовать  фортунку-рулетку,  раскручивая стрелку.  Шкала вертушки разделена на 10 равных секторов,  которые помечены цифрами от 0 до 9  (см. рис. 14).
               
               
                Рис. 14.  Вертушка-рулетка    
               
               

     Чтобы построить цифровую гамму некоторой  конечной длины, применим приём, в котором каждая следующая цифра получается сложением двух предыдущих по модулю 10. Выберем две цифры, например, 2 и 7, с которых начнём гамму. 2+7=9, поэтому следующая, третья, цифра гаммы будет 9. Складывая вторую и третью цифры по мо-дулю 10, получим очередную, четвёртую, цифру 6 (7+9=16,  16-10=6) и т.д. В итоге получаем последовательность длиной 60 знаков:
2  7  9  6  5  1  6  7  3  0  3  3  6  9  5  4  9  3  2  5  7  2  9  1  0  1  1  2  3  5  8  3  1  4  5  9  4  3  7  0  7  7  4  1  5  6  1  7  8  5  3  8  1  9  0  9  9  8  7  5   2  7  9 … 
После 60 цифр последовательность начинает повторяться.
     Также  в качестве бесконечной гаммы, хаотической последовательности, можно взять текст любой художественной книги, заменяя буквы на порядковые номера  в алфавите.
     Получить псевдослучайную цифровую последовательность можно с помощью микрокалькулятора. Например, берём какое-либо четырёхзначное число, возводим его микрокалькулятором в квадрат. Из полученного результата выписываем средние четыре цифры, считая их случайными. Теперь это случайное четырёхзначное число возводим в квадрат. Снова выделяем из результата средние цифры и т.д. Есть калькуляторы с функцией генерирования псевдо-случайной числовой последовательности.
     Подбрасывание монеты даст равновероятное выпадение «орла» или «решки». Записывая 0 или 1, многократным бросанием получаем двоичную случайную последовательность. При шифровании с помощью ЭВМ  последовательность  гаммы  формируется  с  помощью датчика  случайных  чисел.   
     Для примера зашифруем сообщение  «НОВАЯ  ПАРТИЯ  ТОВАРА  ПОЙДЁТ  ПО  ЗАПАСНОМУ  МАРШРУТУ.  ЖДЁМ  МАШИНУ  СОПРОВОЖДЕНИЯ.». В качестве  ключа-гаммы  возьмём словосочетание  «СПОСОБ  ГАММИРОВАНИЯ».  Записав с повторением гамму под исходным  текстом  получим: 

   НОВАЯ    ПАРТИЯ    ТОВАРА    ПОЙДЁТ    ПО    ЗАПАСНОМУ
   СПОСО   БГАММИ   РОВАНИ    ЯСПОСО    БГ    АММИРОВАН

   МАРШРУТУ.    ЖДЁМ    МАШИНУ    СОПРОВОЖДЕНИЯ .   
   ИЯСПОСОБГ    АММИ    РОВАНИ      ЯСПОСОБГАММИРО

Дополним алфавит точкой (после буквы Я) и присвоим ей порядковый номер 34. Заменив буквы и знаки препинания сообщения и гаммы на порядковые номера в алфавите и сложив числа исходного текста и гаммы, получаем криптограмму (всё показано в приложении № 36). Криптограмму в цифровом  виде можно отправить адресату, предварительно  нарушив  смысловую  группировку.
     Чтобы передать сообщение в буквенном виде, преобразуем числа криптограммы в буквы, ориентируясь по табличке Вариант 1 приложения № 30. При этом предвари-тельно, если число больше 34, вычитаем из него 34.
     Процесс восстановления исходного текста происходит в обратном порядке, т.е. из чисел криптограммы вычитаем числа гаммы  и в результате получаем числа сообщения. Если получилось отрицательное число, то прибавляем к нему 34. Заканчиваем процесс дешифрования переводом чисел (порядковых номеров в алфавите) в буквы.
     Этот процесс трудоёмок и утомителен. Чтобы сэкономить время, имеет смысл «складывать» (и вычитать) непосредственно сами буквы. Для этого воспользуемся таблицей Виженера (приложение № 28). Тут нужно иметь в виду, что в алфавитах таблицы отсутствуют буква Ё и точка. поэтому вид шифротекста будет отличаться от изложенного выше и показанного в приложении № 36. Буквы исходного текста отыскиваем в первой строке, а буквы гаммы – в первой (левой) колонке. На пересечении получаем буквы шифрограммы. Первую букву исходного текста (Н) находим в верхней строке таблицы Виженера. Первую букву гаммы (С) находим в первом столбце таблицы. На пересечении находим первую букву шифротекста (Ю). Вторую букву открытого текста (О) ищем также в первой строке. Вторая буква гаммы – П. В шестнадцатой строке, начинающейся с буквы П, под буквой О увидим вторую букву шифротекста  Э  и т.д. 

  Сообщение :    Н О В А Я      П А Р Т И Я     Т О В А Р А …
  Гамма:             С П О С О      Б Г А ММ И     Р О В А Н И … 
  Шифротекст:  ЮЭ Р С Н       Р Г Р ЮФ З      В Ь Д А Э И …   

     Процесс расшифрования следующий. Первая буква гаммы – С.  В восемнадцатой строке таблицы, начинающейся с этой буквы, находим первую букву шифрограммы (Ю). Над ней в верхней строке получим первую букву открыто текста (Н) и т.д. 



5. ДРУГИЕ  СПОСОБЫ  ШИФРОВАНИЯ
      
     Закрытие информации может быть обеспечено при использовании для шифрования математических формул, некоторых  АНАЛИТИЧЕСКИХ ПРЕОБРАЗОВАНИЙ, например, методы алгебры матриц (умножение матрицы на  вектор). Матрица  используется  в качестве ключа, а вместо  вектора подставляются  символы  исходного текста. Тогда  компоненты  другого  вектора  будут  представлять собой  символы  зашифрованного  текста. 
 
         
14 8 3 * 6 = 14*6 + 8*1 + 3*13 = 131
  8 5 2 * 1 = 8*6 + 5*1 + 2*13 = 79
  3 2 1 * 13 = 3*6 + 2*1 + 1*13 = 33
            
     6, 1, 13 - это исходный текст, буквы  в котором  заменены на цифры, соответствующие их порядковому номеру в алфавите.  131, 79, 33  – это  зашифрованный  текст.
     Расшифрование (показано на стр. 39 - "Средства и способы шифрования") осуществляется по тому же правилу, только в качестве основы берется матрица, обратная той, с помощью которой осуществляется закрытие, а в качестве вектора-сомножителя -- символы закрытого текста. Тогда  значениями вектора-результата будут цифровые эквиваленты  знаков  открытого  текста. 
   
***
     Криптографические системы с открытым ключом используют так называемые необратимые или односторонние функции. Эти функции обладают следующим свойством - при заданном  Х относительно легко вычислить f(x), однако, если известно  y=f(x), то нет простого пути для вычисления  значения  х, т. е.  чрезвычайно  трудно  рассчитать  значение  обратной  функции   f-1(у).  К односторонним функциям относятся: возведение в степень, разложение чисел на множители и другие. 
     Применение более медленных  несимметричных  систем с открытым ключом (на самом деле используется 2 взаимосвязанных между собой ключа – открытый и секретный) объясняется необходимостью распределения ключей между участниками обмена информацией и передачей электронно-цифровой подписи. ЭЦП подтверждает цело-стность информации и личность подписавшего. Шифрование с открытым ключом решает ряд до его появления нерешённых проблем с авторизацией, оно удобно для подписания контрактов и идентификации удалённых пользователей.

***
     СЖАТИЕ ДАННЫХ представляет собой замену часто встречающихся одинаковых строк данных или последовательностей символов некоторыми заранее выбранными  символами. Для  уплотнения  информации так же можно использовать преобразование  чисел, путём перевода из одной системы  счисления  в  другую,  более компактную. Сжатие уменьшает время передачи информации и экономит объём памяти.

***
     Эффективным  средством  повышения стойкости шифрования  является  КОМБИНИРОВАННОЕ использование нескольких  различных  способов шифрования, т. е. после-довательное шифрование исходного текста с помощью  двух  и  более  методов. 
     Небольшие объемы информации на не очень большой период времени могут быть достаточно надежно закрыты сравнительно  простыми  способами  преобразования. 
     Всегда можно применить какую-нибудь небольшую  хитрость (усложнение, комбинирование методов), что даст  дополнительную защиту. Например, в тексте, зашифрованном простой подстановкой, каждые 5 символов переставлять в обратном порядке: 12345 - 54321. В каждой  группе  из  4  символов (1234)  переставлять  символы  так: 4132  или  каждые 2 символа менять местами 12 - 21. Также можно в шифрограмме каждые две соседние группы в 2 - 4 символа переставить местами. Это будет комбинирование 2-х  способов: подстановка (замена) + перестановка. Таким образом,  всегда  можно  будет успешно пользоваться  даже самыми  простыми  методами. Вообще  говоря, комбинировать  можно  любые  методы  шифрования  и  в  любом количестве. 
     Существуют специальные коды, обнаруживающие и исправляющие ошибки.   
     Большинство методов шифрования описанных в этой книге являются формализованными и могут быть реализованы алгоритмически, применяться в компьютерах  и  шифровальных  аппаратах. 














ПРАВИЛА ОБРАЩЕНИЯ  С  ДОКУМЕНТАМИ РУЧНОГО  КОДИРОВАНИЯ

Фирмам  и  организациям

     Храниться СРШ-ДРК должны в опечатанных сейфах. Запасные варианты (с другими комбинациями) кроме того  должны быть опечатаны в пакете или папке и храниться отдельно от основных (рабочих). В случае компрометации основного Документа Ручного Шифрования, он выводится из действия немедленно и уничтожается. Вместо него вво-дится в действие запасной (резервный). Ключ от сейфа и комнаты постоянно находится у кодировщика (шифровальщика). Второй ключ можно передать руководителю или дежурному только в опечатанном виде. Помещение (сейф) должно быть оборудовано сигнализацией и надёжно охраняться. 
     Допуск к Средствам Ручного Шифрования, используемым для связи фирмы с фирмой (организации с организацией) или фирмы с филиалом, имеют только шифровщик и руководитель. Если Вам нужна связь с вашим работником, находящимся в командировке, используйте  Документ Ручного Кодирования с другим   ключом. 
     Запрещается передавать одну и ту же информацию кодограммой (шифрограммой) и открытым текстом, т. к. это будет способствовать  раскрытию  ключа  и  дешифровке  противником (злоумышленником). 
 
Физическим   лицам

     Храните  шифроблокнот или кодовую таблицу  в надежном  месте,  исключающем  доступ  посторонних  лиц.
   






РАЗРАБОТКА  СРЕДСТВ  ШИФРОВАНИЯ

     При  разработке и изготовлении Документов Ручного Кодирования  необходимо  учитывать специфику. Если у Вас большой объём информации и 1000 групп, используемых для шифрования, недостаточно, составьте  блокнот  с  использованием 10000  четырёхзначных  цифровых  групп.
     Можно сделать перераспределение. Если Вы возьмёте любой текст, то увидите, что одни буквы встречаются чаще, другие - реже. В коротком тексте некоторые буквы отсутствуют. Количество групп (шифрообозначений) используемых для шифрования букв, встречающихся чаще, нужно увеличить за счет букв, встречающихся реже, как показано  в приложениях  № 29, 33, 34, 39 и 42. То есть количество заменяющих элементов (символов или групп) распределить на каждую букву пропорционально, согласно нижеприведённой статистике. 
     Считается, что в тексте на  русском  языке  на  каждые  1000  знаков  в  среднем  приходится  [3]:
174 - пробелы и знаки препинания;
 
90 - буква «О»;               
72 – «Е» и «Ё»; 
62 – «А», «И» (каждая);          
53 – «Н», «Т» (каждая); 
45 -  «С»;       
40 –  «Р»;       
38 –  «В»;      
35 -  «Л»;       
28 -  «К»;         
26 -  «М»;          
25 -  «Д»;            
23 -  «П»;       
21  – «У»;         
18 - «Я»;   
16 - «3», «Ы» (каждая); 
14 – «Б»; 
14 – «Ь» и «Ъ»; 
13 – «Г»; 
12 – «Ч»; 
10 – «Й»;    
9 – «Х»;      
7 – «Ж»;      
6 – «Ш», «Ю»  (каждая); 
4 – «Ц»;   
3 – «Э», «Щ» (каждая); 
2 – «Ф».   
 
     Не знаю  - кто, когда, на основе каких текстов считал, сколько текстов было проанализировано. За несколько десятилетий язык мог немного измениться. В обращении появились новые слова. Другие слова ушли из употребления и т.д. А вообще-то каждый конкретный текст индивидуален и может существенно отличаться от среднестатистического. Например: «Афигеть! Финансист Филиппов Филипп Филиппович получил фингал от кассирши Фроси.». Согласно вышеприведённой общепризнанной официальной статистики из 1000 знаков должно быть только 2 буквы Ф. А тут в одном предложении 7 штук! Это необходимо иметь  в виду  при  криптоанализе. 
     Я исследовал десять различных текстов объёмом 1000 знаков каждый. Конечно, это очень мало, недостаточно. Почти по всем буквам цифры получились чуть меньше, приведённых выше. Например, Ь=11,4  плюс  Ъ=0,1  итого 11,5 (по вышеприведённой статистике на две эти буквы приходится 14 штук.). А пробелов и знаков препинания в среднем пришлось  - 184,4.  В том числе пробелов – 149,9; запятых – 18,3;  точек – 11;  других – 5,2 (дефис, скобки, кавычки, восклицательный знак, двоеточие, вопросительный знак).  Для разработки документов шифрованной связи можно учитывать эти приблизительные данные по знакам препинания. 
      При необходимости шифровать большие объёмы информации, для  набора шифроблокнота следует использовать не десятичную,  а  15,  20-ричную  и  более компактные системы счисления.  Группы  могут быть  буквенные  или комбинированные  -  буквы, цифры и другие символы. 
     Применение буквенных  групп для замены  может быть принято за шифр простой замены (приложение  № 24). Или  можно подумать, что применён  способ  перестановки. 
     Если объём передаваемой информации небольшой, с узкой спецификой,  изготавливается переговорная кодовая таблица, по которой будут кодироваться сразу слова, словосочетания, распоряжения, доклады, запросы, ответы  и  целые сообщения  (приложения  №№  2, 7, 8, 37, 40).