
- •Московский технический университет связи и информатики
- •«Комплексное обеспечение информационной безопасности инфокоммуникационных сетей и систем»
- •210700 «Инфокоммуникационные технологии и системы связи»
- •Введение в современные криптографические алгоритмы Предисловие
- •Математические основы (теория чисел)
- •1.1 Простые числа
- •1.2 Наибольший общий делитель
- •1.3 Модулярная арифметика
- •2. Криптография с открытым ключом
- •2.1 Алгоритм rsa
- •2.2 Электронная цифровая подпись (эцп)
- •2.2.1 Алгоритм формирования подписи Эль-Гамаля
- •2.2.2 Алгоритм dsa (Digital Signature Algorithm)
- •2.3 Алгоритм формирования общего ключа по схеме Диффи-Хеллмана
- •3. Симметричная система шифрования
- •3.1 Потоковые шифры
- •3.2 Генераторы псевдослучайных чисел
- •3.3 Блочные шифры
- •3.4 Сети Файстеля
- •3.5 Режимы шифрования
- •3.5.1 Электронная кодовая книга (ecb)
- •3.5.2 Сцепление блоков по шифротексту (cbc)
- •3.5.3 Обратная загрузка шифротекста (cfb)
- •1. Задания по теории чисел
- •2.Задания по алгоритмам с открытыми ключами
- •3.Задания по симметричной системе шифрования генераторы псевдослучайных чисел
- •Задание по блочным шифрам
- •Задание по хэш-функциям
3. Симметричная система шифрования
Симметричные алгоритмы шифрования основаны на том, что отправитель и получатель информации используют один и тот же секретный ключ. Этот ключ должен храниться в тайне и передаваться способом, исключающим его перехват.
3.1 Потоковые шифры
Потоковые шифры преобразуют открытый текст в шифротекст побитово. Генератор гаммы выдает поток битов: k1,k2,k3…, ki. Эта гамма шифра или просто гамма и поток битов открытого текста: p1,p2,p3…pi подвергаются операции XOR, и в результате создается поток битов шифротекста.
ci=pi XOR ki
При расшифровывании, для восстановления битов открытого текста, над битами шифротекста и той же самой гаммой тоже выполняется операция XOR:
pi=ci XOR ki
Поскольку
pi XOR ki XOR ki= pi
эта схема работает превосходно.
Для выработки гаммы шифра используются обычно генераторы псевдослучайных чисел.
3.2 Генераторы псевдослучайных чисел
Генераторы псевдослучайных чисел – устройство или программа, вырабатывающее/(щая) последовательность b- разрядных чисел, которые отвечают требованиям случайных ( кажутся случайными), но могут быть воспроизведены вновь при каждом запуске генератора с “начала”. В настоящее время наиболее доступными (с точки зрения практического воплощения) являются линейные конгруэнтные генераторы и генераторы на основе регистров сдвига с обратными связями. Одним из хороших конгруэнтных генераторов является линейный конгруэнтный генератор ПСЧ.
Линейный конгруэнтный генератор
Этот генератор вырабатывает последовательность псевдослучайных чисел T1, T2, T3, … Tm, используя соотношение:
Ti+1=(a*Ti +c)MOD m ,
где a и c – константы, а Ti -исходная величина, выбранная как порождающее число. Данное уравнение генерирует ПСЧ с определенным периодом повторения, зависящим от выбранных значений a и с. Значение m обычно устанавливается равным 2b или 2b-1 , где b – длина ПСЧ в битах. Для получения максимального периода повторения генератора, работающего по данному уравнению, необходимо, чтобы b было целым числом больше 2 , c- нечетным числом и a MOD 4 = 1.
К преимуществам линейных конгруэнтных генераторов можно отнести быстродействие, поскольку они требуют небольшого числа операций на бит.
Другим примером генератора ПСЧ является генератор на основе регистра сдвига .
Генератор на основе регистра сдвига
Рассмотрим
регистр сдвига, образованный на основе
неприводимого многочлена
P(x)=x4 +x+1
и вырабатывающий 15 4-х разрядных чисел.
Если в младший левый разряд регистра сдвига поместить 1, а в остальные разряды 0, то последовательные сдвиги содержимого регистра дадут все множество различных n-разрядных последовательностей. Для данного полинома максимальное число различных последовательностей составляет 15.
Генератор с регистром сдвига с обратными связями может генерировать (при правильном выборе образующего полинома P(x)) в одном периоде 2n-1 различных n-разрядных последовательностей.
Чтобы генератор ПСЧ на основе регистра сдвига с обратными связями получился с максимальным периодом, необходимо, чтобы полином, на основе которого он строится, был неприводимым, т.е. его нельзя представить в виде произведения многочленов низших степеней.
При проектировании регистров сдвига нужно учитывать число ячеек регистра, определяемое старшей степенью образующего полинома. Регистр, соответствующий старшей степени полинома, отбрасывается. Сумматоры устанавливаются перед ячейками регистра, соответствующими ненулевым членам многочлена тех же степеней.
Последовательности на регистрах сдвига используются как в криптографии, так и в теории кодирования. На основе регистра сдвига основано большинство практических потоковых шифров.
В потоковых алгоритмах шифрования, т.е. при шифровании потока данных, каждый бит исходной информации шифруется независимо от других с помощью гаммирования.
Гаммирование- наложение на открытые данные гаммы шифра (случайной или псевдослучайной последовательности нулей и единиц) по определенному правилу. Обычно используется исключающее ИЛИ (XOR).
( 0 XOR 0 = 0; 1 XOR 0 = 1; 0 XOR 1 = 1; 1 XOR 1 = 0
в общем случае a XOR a =0 ; a XOR b XOR b =a )
Для расшифровки та же гамма накладывается на зашифрованные данные.
Понятно, что обмен ключами размером с шифруемую информацию не всегда уместен. Поэтому чаще используют гамму, получаемую с помощью генератора псевдослучайных чисел. В этом случае ключ- порождающее число для запуска генератора. Каждый генератор ПСЧ имеет период, после которого генерируемая последовательность повторяется. Очевидно, что период псевдослучайной гаммы должен превышать длину шифруемой информации.