Пример реализации шифра гаммирования
Сборник трудов конференции в формате 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.

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













