Пример реализации шифра гаммирования

Сборник трудов конференции в формате Adobe Acrobat (4 Мб)


Автор: Бубнов Сергей Алексеевич, кандидат физико-математических наук
Балашовский институт (филиал) ФГБОУ ВПО "Саратовский государственный университет имени Н.Г. Чернышевского"

Гаммирование – процедура наложения  при помощи некоторой функции   гаммы шифра на исходный текст [1] (рис .1).

 

Рис. 1. Схематичное изображение процесса гаммирования

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

где  – i-й член последовательности псевдослучайных чисел,  – ключевые параметры. Такая последовательность состоит из целых чисел от 0 до . Если элементы  и   совпадут, то совпадут и последующие участки:Таким образом, ПСП является периодической. Знание периода гаммы существенно облегчает криптоанализ. Максимальная длина периода равна . Для ее достижения необходимо удовлетворить следующим условиям:

1.       и  – взаимно простые числа;

2.       делится на любой простой делитель числа ;

3.        кратно 4, если  кратно 4.

В качестве функции  берется операция побитового сложения по любому модулю . Обычно используется сложение по модулю 2 (XOR). В силу симметричности данной операции процесс дешифрования будет заключаться в повторном применении XOR к шифрованному тексту.

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

Для программной реализации процедуры шифрования конечной гаммой удобно использовать таблицу символов ASCII и функции ord(x) и chr(x) работы с ней. Поскольку символы занумерованы числами от 0 до 255, то для задействования каждого из них, сложение будем осуществлять по модулю 255. На рис. 2 показаны фрагменты кода программы, осуществляющие процедуры шифрования и дешифрования соответственно, где text, gamma, cript   – строковые переменные, a,b,c – массивы.

                                                 а                                                                                                     б                                                                                                                                                                                    

Рис.2. Шифрование (а) и дешифрование (б)

Исходный текст и гамма вводятся с клавиатуры. При этом гамма не обязательно должна совпадать по длине с исходным текстом. Пример работы программы представлен на рисунке 3. 

 

Список использованных источников
  1. Асосков А.В. Поточные шифры / А.В. Асосков, М.А. Иванов, А.А. Мирский, А.В. Рузин, А.В. Сланин, А.Н. Тютвин. – М.: «КУДИЦ-ОБРАЗ», 2003 г. – 334 с.
Тип выступления  Устное выступление
Уровень образования  Высшее профессиональное