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













