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