- •Московский технический университет связи и информатики
- •«Комплексное обеспечение информационной безопасности инфокоммуникационных сетей и систем»
- •210700 «Инфокоммуникационные технологии и системы связи»
- •Введение в современные криптографические алгоритмы Предисловие
- •Математические основы (теория чисел)
- •1.1 Простые числа
- •1.2 Наибольший общий делитель
- •1.3 Модулярная арифметика
- •2.1 Алгоритм rsa
- •2. Криптография с открытым ключом
- •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 Блочные шифры
При блочном шифровании информация разбивается на блоки фиксированной длины и шифруется поблочно. Блочные шифры бывают двух основных видов:
шифры перестановки (transposition, permutation, P-блоки);
шифры замены (подстановки, substitution, S-блоки).
Шифры перестановок переставляют элементы открытых данных (биты, буквы, символы) в некотором новом порядке. Различают шифры горизонтальной, вертикальной, двойной перестановки, решетки, лабиринты, лозунговые и др.
Шифры замены заменяют элементы открытых данных на другие элементы по определенному правилу. Paзличают шифры простой, сложной, парной замены, буквенно-слоговое шифрование и шифры колонной замены. Шифры замены делятся на две группы:
моноалфавитные (код Цезаря) ;
полиалфавитные (шифр Видженера, цилиндр Джефферсона, диск Уэтстоуна, Enigma).
В моноалфавитных шифрах замены буква исходного текста заменяется на другую, заранее определенную букву. Например, в коде Цезаря буква заменяется на букву, отстоящую от нее в латинском алфавите на некоторое число позиций. Очевидно, что такой шифр взламывается совсем просто. Нужно подсчитать, как часто встречаются буквы в зашифрованном тексте, и сопоставить результат с известной для каждого языка частотой встречаемости букв.
В полиалфавитных подстановках для замены некоторого символа исходного сообщения в каждом случае его появления последовательно используются различные символы из некоторого набора. Понятно, что этот набор не бесконечен, через какое-то количество символов его нужно использовать снова. В этом слабость чисто полиалфавитных шифров.
В современных криптографических системах, как правило, используют оба способа шифрования (замены и перестановки). Такой шифратор называют составным (product cipher). Oн более стойкий, чем шифратор, использующий только замены или перестановки.
3.4 Сети Файстеля
Практически все алгоритмы традиционного блочного шифрования имеют структуру, описанную специалистом из IBM Х. Файстелем в 1973 г. Соответствующая схема показана на рисунке.
На вход алгоритма шифрования подается блок открытого текста длиной 2w и ключ k. Затем блок открытого текста разделяется на 2-е равные части, L0 и R0, которые последовательно проходят n раундов обработки, а затем объединяются снова, предварительно поменяв местами левую и правую половину блоков, для получения блока шифрованного текста соответствующей длины
На изображенной схеме показаны 4 – е раунда перестановок. Здесь буквами Li и Ri обозначены левая и правая половинки исходных данных на i-м шаге последовательного преобразования. Каждый такой целый шаг называют раундом шифрования. Функция раунда обозначена через Fi, поскольку на каждом раунде может быть использована своя собственная функция. На каждом раунде используется свой подключ Ki , образованный из ключа K по определенному алгоритму.
В общем виде на каждом раунде производится следующее преобразование:
На последнем шаге алгоритма левая и правая часть блока меняется местами
Ln+1 = Rn
Rn+1= Ln
Получается блок зашифрованного текста длиной 2w.
Шифр, использующий такую схему, гарантированно обратим.
Эта схема используется в следующих шифрах: DES, Lucifer, ГОСТ,CAST, Blowfish и многих других.
