- •Часть 1. Основы криптографии
- •Глава 1.
- •1.2. Примеры моделей шифров
- •Ту же подстановку относительно своих контактов
- •1.3. Свойства шифров
- •1.4. Вероятностная модель шифра
- •1.5. Совершенные шифры
- •1.6. Способы представления реализаций шифров
- •1.7. Основные понятия теории автоматов
- •Глава 2.
- •2.1. Блочный шифр des
- •Матрица начальной перестановки p
- •Матрица обратной перестановки p–1
- •Связь элементов матриц
- •Функция расширения e
- •Функции преобразования s1, s2, ..., s8
- •Функция h завершающей обработки ключа.
- •2.2. Основные режимы работы алгоритма des
- •2.3. Области применения алгоритма des
- •2.4. Алгоритм шифрования данных idea
- •Подключи шифрования и расшифрования алгоритма idea
- •2.5. Отечественный стандарт шифрования данных
- •Режим простой замены. Для реализации алгоритма шифрования данных в режиме простой замены используется только часть блоков общей криптосистемы (рис.3.11). Обозначения на схеме:
- •32, 31, ... 2, 1 Номер разряда n1
- •32, 31, ... 2, 1 Номер разряда n2
- •32, 31, ..., 2, 1 Номер разряда n1
- •32, 31, ..., 2, 1 Номер разряда n2
- •32, 31, ..., 2, 1 Номер разряда n1
- •32, 31, ..., 2, 1 Номер разряда n2
- •32, 31, ..., 2, 1 Номер разряда n1
- •64, 63, ..., 34, 33 Номер разряда n2
- •32, 31, ..., 2, 1 Номер разряда n1
- •32, 31, ..., 2, 1 Номер разряда n2
- •Глава 3.
- •Узел выработки Канал
- •3.1. Шифры гаммирования
- •3.2. Поточный шифр гаммирования rc4
- •Глава 4.
- •Классическая модель криптографической системы (модель Шеннона)
- •4.1. Модель системы связи с открытым ключом
- •Модель системы с открытым ключом
- •4.2. Принципы построения криптосистем с открытым ключом
- •4.3. Схема цифровой подписи с использованием однонаправленной функции
- •4.4. Открытое распределение ключей Диффи-Хеллмана
- •Глава 5.
- •Классическая модель криптографической системы.
- •Глава 6.
- •6.1. Дешифрование шифра перестановки
- •6.2. Дешифрование шифра гаммирования при некачественной гамме
- •6.3. О дешифровании фототелеграфных изображений
- •6.4. Дешифрование шифра гаммирования при перекрытиях
- •Глава 7.
- •7.1. Задача определения периода гаммы в шифре гаммирования по заданному шифртексту
- •7.2. Возможности переноса изложенных результатов на шифры поточной замены (пз)
- •Где принадлежит множеству к подстановок на I (p-1(j) – вероятность j-той буквы, для ее расчета исходя из набора (p1,p2,…,p|I|) необходимо найти --1(j) – образ буквы j при подстановке --1).
- •Глава 8.
- •Глава 9.
- •9.1. Вероятностные источники сообщений.
- •9.2. О числе осмысленных текстов получаемых в стационарном источнике независимых символов алфавита
- •9.3. Критерии на осмысленные сообщения Важнейшей задачей криптографии является задача распознавания открытых текстов. Имеется некоторая последовательность знаков, записанная в алфавите I:
- •9.4. Частотные характеристики осмысленных сообщений Ниже используется следующий алфавит русского текста
- •Глава 10.
- •1) Для любой al(al)
- •Глава 11.
- •Глава 12.
- •Глава 13.
- •13.1. Расстояния единственности для открытого текста и ключа
- •13.2. Расстояние единственности шифра гаммирования с неравновероятной гаммой
- •Глава 14.
- •Глава 15.
2.4. Алгоритм шифрования данных idea
Алгоритм IDEA (International Data Encryption Algorithm) является блочным шифром. Он оперирует 64-битовыми блоками открытого текста. Его ключ имеет длину 128 бит. Один и тот же алгоритм используется и для шифрования, и для расшифрования.
В алгоритме IDEA используются следующие математические операции:
поразрядное сложение по модулю 2 (операция «исключающее ИЛИ»); операция обозначается как ;
сложение беззнаковых целых по модулю 216 (модуль 65536); операция обозначается как ⊞;
умножение целых по модулю (216+1) (модуль 65537), рассматриваемых как беззнаковые целые, за исключением того, что блок из 16 нулей рассматривается как 216; операция обозначается как ⊙.
Все операции выполняются над 16-битовыми субблоками.
Эти три операции несовместимы в том смысле, что:
никакая пара из этих трех операций не удовлетворяет ассоциативному закону,
например a ⊞ (b c) (a ⊞ b) c;
никакая пара из этих трех операций не удовлетворяет дистрибутивному закону, например, a ⊞ (b⊙ c) (a ⊞ b)⊙ (a ⊞ c).
Комбинирование этих трех операций обеспечивает комплексное преобразование входа, существенно затрудняя криптоанализ IDEA по сравнению с DES, который базируется исключительно на операции «исключающее ИЛИ».
Общая схема алгоритма IDEA приведена на рис. 9 64-битовый блок данных делится на четыре 16-битовых субблока. Эти четыре субблока становятся входом в первый цикл алгоритма. Всего выполняется восемь циклов. Между циклами второй и третий субблоки меняются местами. В каждом цикле имеет место следующая последовательность операций:
(1) |
⊙ |
– |
умножение субблока Х1 и первого подключа. |
(2) |
⊞ |
– |
сложение субблока Х2 и второго подключа. |
(3) |
⊞ |
– |
сложение субблока Х3 и третьего подключа. |
(4) |
⊙ |
– |
умножение субблока Х4 и четвертого подключа. |
(5) |
|
– |
сложение результатов шагов (1) и (3). |
(6) |
|
– |
сложение результатов шагов (2) и (4). |
(7) |
⊙ |
– |
умножение результата шага (5) и пятого подключа. |
(8) |
⊞ |
– |
сложение результатов шагов (6) и (7). |
(9) |
⊙ |
– |
умножение результата шага (8) с шестым подключом. |
(10) |
⊞ |
– |
сложение результатов шагов (7) и (9). |
(11) |
|
– |
сложение результатов шагов (1) и (9). |
(12) |
|
– |
сложение результатов шагов (3) и (9). |
(13) |
|
– |
сложение результатов шагов (2) и (10). |
(14) |
|
– |
сложение результатов шагов (4) и (10). |
Выходом цикла являются четыре субблока, которые получают как результаты выполнения шагов (11), (12), (13) и (14). В завершение цикла переставляют местами два внутренних субблока (за исключением последнего цикла), и в результате формируется вход для следующего цикла.
Рис. 9. Схема алгоритма IDEA (режим шифрования)
Обозначения:
Xi – 16-битовый субблок открытого текста, i{1,…,4}
Yi – 16-битовый субблок шифртекста, i{1,…,4}
Zj(r) – 16-битовый подключ (субблок ключа), j{1,…,6}, r{1,…,8}
–поразрядное суммирование по модулю 2 16-битовых субблоков
–сложение по модулю 216 16-битовых целых
– умножение по модулю 216 16-битовых целых (с нулевым субблоком, соответствующим 216)
После восьмого цикла осуществляют заключительное преобразование выхода:
(1) |
⊙ |
– |
умножение субблока Х1 и первого подключа. |
(2) |
⊞ |
– |
сложение субблока Х2 и второго подключа. |
(3) |
⊞ |
– |
сложение субблока Х3 и третьего подключа. |
(4) |
⊙ |
– |
умножение субблока Х4 и четвертого подключа. |
Наконец, эти результирующие четыре субблока Y1…Y4 вновь объединяют для получения блока шифртекста.
Создание подключей Zj также относительно несложно. Алгоритм использует всего 52 подключа (по шесть для каждого из восьми циклов и еще четыре для преобразования выхода). Сначала 128-битовый ключ делят на восемь 16-битовых подключей. Это – первые восемь подключей для алгоритма (шесть подключей – для первого цикла и первые два подключа – для второго цикла). Затем 128-битовый ключ циклически сдвигается влево на 25 бит и снова делится на восемь подключей. Первые четыре из них используют во втором цикле; последние четыре – в третьем цикле. Ключ снова циклически сдвигается влево еще на 25 бит для получения следующих восьми подключей и т.д., пока выполнение алгоритма не завершится.
Расшифрование осуществляют аналогичным образом, за исключением того, что порядок использования подключей становится обратным, причем ряд значений подключей заменяется на обратные значения. Подключи расшифрования являются в основном либо аддитивными, либо мультипликативными обратными величинами подключей шифрования (табл.10).
Таблица 10