
- •Введение Вычисления над кольцами и в простых полях
- •1.Симметричный шифр гост 28147-89
- •1.1Цель работы
- •1.2Домашнее задание
- •1.3Ключевые вопросы
- •1.4Содержание протокола
- •Цель работы.
- •1.5Лабораторное задание
- •1.6Ключевые положения
- •1.6.1Поблочное шифрование
- •1.6.1.1Режим простой замены
- •1.6.1.2Режим Гаммирования
- •1.6.2Шифрование с обратной связью.
- •1.6.3Подстановки, перестановки, гаммирование
- •1.6.4Отечественный стандарт -- гост 28147-89
- •2.Исследование работы двухключевых алгоритмов шифрования на примере rsa
- •2.1Цель работы
- •2.2Домашнее задание
- •2.3Ключевые вопросы
- •2.4Содержание протокола
- •Цель работы.
- •2.5Лабораторное задание
- •2.6Ключевые положения
- •2.6.1Системы шифрования с открытым ключом
- •2.6.2Алгоритм шифрования rsa
- •2.6.3Оценка вычислительной сложности
- •2.6.4Пример расчёта по алгоритму rsa
- •3.Исследование работы двухключевых алгоритмов шифрования на примере криптосистемы Эль-Гамаля
- •3.1Цель работы
- •3.2Домашнее задание
- •3.3Ключевые вопросы
- •Цель работы.
- •4.Исследование цифровой подписи на примере алгоритма rsa
- •4.1Цель работы
- •4.2Домашнее задание
- •4.3Ключевые вопросы
- •4.4Содержание протокола
- •Цель работы.
- •4.5Лабораторное задание
- •4.6Ключевые положения
- •4.6.1Электронная подпись
- •4.6.2Цифровая сигнатура
- •4.6.3Электронная подпись на основе алгоритма rsa
- •5.Исследование создания сеансовых ключей на основе алгоритма Диффи-Хеллмана
- •5.1Цель работы
- •5.2Домашнее задание
- •5.3Ключевые вопросы
- •5.4Содержание протокола
- •Цель работы.
- •5.5Лабораторное задание
- •5.6Ключевые положения
- •5.6.1Управление ключами
- •5.6.2Генерация ключей
- •5.6.3Накопление ключей
- •5.6.4Распределение ключей
- •5.6.4.1Алгоритм Диффи-Хеллмана
- •6.Приложения
- •6.1Первая 1000 простых чисел
1.6.1.1Режим простой замены
Рисунок 1.1 Простая замена
На вход поступает блок (B), преобразуется криптографическим алгоритмом (E), получается зашифрованный блок (C). Все блоки обрабатываются независимо друг от друга.
Преимущества:
простота реализации;
в случае ошибки в блоке криптограммы, испорчен будет только один блок текста;
Недостатки:
одинаковые блоки текста после шифрования останутся одинаковыми, что делает возможным частотный анализ блоков, при шифровании реальных текстов этим нельзя пренебрегать;
требуется обратить сам алгоритм шифрования;
длина шифровки всегда кратна длине блока (обычно – 64 битам)
Этот режим шифрования рекомендуется для защиты списков ключей.
1.6.1.2Режим Гаммирования
Рисунок 1.2 Гаммирование
В этой схеме необходима инициализация криптографического алгоритма E, который в этой схеме выступает в роли генератора случайных чисел (блоков) для гаммирования.
Преимущества режима:
не требуется обращать сам алгоритм шифрования;
не сохраняет статистики сообщения;
не размножает ошибки (с ошибкой будут расшифрованы только те биты, которые были испорчены при передаче)
Недостатки режима:
гамма циклически повторяется с периодом 264 блоков;
требуется предварительная загрузка алгоритма
Этот режим наиболее предпочтителен для шифрования каналов связи в реальном времени.
1.6.2Шифрование с обратной связью.
Теперь только первый блок обрабатывается непосредственно. Каждый последующий перед шифрованием складывается по модулю 2 с зашифрованным предыдущим блоком:
Рисунок 1.3 Шифрование с ОС без предварительной загрузки алгоритма
В следующей схеме необходима начальная загрузка алгоритма E. Этот метод применяется в алгоритме ГОСТ 28147-89:
Рисунок 1.4 Шифрование с ОС с предварительной загрузкой алгоритма
Преимущества режима:
не требуется обращать сам алгоритм шифрования;
не сохраняет статистики сообщения;
обладает наибольшей криптостойкостью.
Недостатки режима:
гамма циклически повторяется с периодом 264 блоков;
чувствителен к ошибкам (после расшифровки испорчены будут блок с ошибкой и следующий за ним блок)
требуется предварительная загрузка алгоритма
Этот режим предпочтителен для хранения больших массивов конфиденциальных данных.
Так же можно придумать схему, в которой ключ не является постоянным, но вычисляется, как функция от предыдущего блока:
Рисунок 1.5 Шифрование с ОС где ключ является функцией от предыдущего блока
В такой схеме необходима предварительная загрузка алгоритма генерации ключей K.
1.6.3Подстановки, перестановки, гаммирование
Под гаммированием понимается "процесс наложения по определенному закону гаммы шифра на открытые данные". Но это слишком общее определение -- под него подходит практически любой алгоритм (если назвать ключ гаммой). Здесь под гаммированием будет пониматься сложение открытых данных с гаммой по модулю 2 (хотя можно использовать и другой модуль, например, 256). Такая операция эффективно реализуется в современных микропроцессорах. Таким образом, некоторые схемы поблочного шифрования подходят под это определение, но скажем, DES или RSA – это не гаммирование.
Гамму можно получать по-разному, например, положить все байты гаммы равными одному и тому же числу. Это пример неудачного выбора гаммы. Вообще, чем гамма случайнее и чем длиннее ее период, тем лучше.
Для получения таких гамм, можно получать каждый следующий байт, как функцию предыдущего (генератор псевдослучайных чисел), или строить гамму на основе каких-либо аутентифицирующих параметров (это один из способов организации проверок этих параметров в программе).