- •Оглавление
- •ВВЕДЕНИЕ
- •1.1. Предмет криптографии и основные определения
- •1.2. Математические основы криптографии
- •1.3. Математическая модель шифра
- •1.4. Классификация шифров
- •1.5. Обзор истории криптографии
- •Появление шифров
- •Становление криптографии как науки
- •Криптография в Новое время
- •Научная криптология
- •2.1. Понятие подстановки
- •2.2. Математическая модель шифра подстановок
- •2.3. Сравнимость
- •2.4. Примеры классических шифров подстановок
- •2.5. Математическая модель шифра перестановок
- •2.6. Маршрутные перестановки как пример шифра перестановок
- •ГЛАВА 3 Характеристики открытых текстов. Вероятностный подход
- •3.2. Вероятностный подход к анализу текстов
- •Частоты букв европейских языков, в %
- •Частоты символов русского языка, в %
- •Сочетаемость букв русского языка
- •Чередование гласных и согласных для текста длиной 105 знаков
- •Буква
- •Буква
- •4.1. Теоретико-информационный подход к анализу текстов
- •4.2. Комбинаторный подход к анализу текстов
- •Современные симметричные криптосистемы
- •5.1. Математическая модель шифра замены
- •5.2. Классификация шифров замены
- •ГЛАВА 6 Принципы построения симметричных шифров
- •6.1. Принципы построения поточных шифров
- •6.2. Принципы построения блочных шифров
- •ГЛАВА 7 Математические основы асимметричной криптографии
- •7.1. История и основные определения асимметричной криптографии
- •7.2. Основы теории простых чисел
- •7.3. Функция Эйлера
- •ГЛАВА 8 Теоремы асимметричной криптографии и алгоритм RSA
- •8.1. Основные теоремы асимметричной криптографии
- •8.2. Алгоритм RSA
- •9.1. Задачи асимметричной криптографии
- •10.1. Понятие электронной подписи
- •10.2. Алгоритм электронной подписи на основе алгоритма RSA
- •ГЛАВА 11 Управление криптографическими ключами
- •11.1. Задачи управления криптографическими ключами
- •11.2. Генерация ключей
- •11.3. Хранение ключей
- •Заключение
- •Список рекомендованной литературы
ГЛАВА 11 Управление криптографическими ключами
Задачи управления ключами. Генерация ключей. Хранение ключей. Распределение ключей. Алгоритм Диффи-Хеллмена.
11.1. Задачи управления криптографическими ключами
Третья из основных задач, решаемых методами асимметричной криптографии, – организация безопасного обмена ключами. Мы знаем, что асимметричные алгоритмы позволяют осуществлять обмен шифрованными сообщениями, не обмениваясь секретным ключом. Однако алгоритмы асимметричного шифрования не находят широкого применения в первую очередь из-за того, что имеют высокую вычислительную сложность. Поэтому чаще всего используют комбинированные методы шифрования: сообщения зашифровывают симметричными алгоритмами, но передачу секретного ключа при этом осуществляют средствами асимметричной криптографии. Эти средства и называются средствами обмена ключами. Обмен ключами – составная часть процесса управления ключами, который кроме обмена включает в себя методы генерации ключей и хранения ключей.
11.2. Генерация ключей
Методы генерации ключей направлены на то, чтобы создавать такие ключи, использование которых максимально повышало бы криптостойкость криптографических алгоритмов. Эти методы можно разделить на три основные группы:
1)выбор ключей пользователем;
2)использование случайных ключей;
3)использование ключевых фраз.
Выбор ключей пользователем является самым ненадежным из перечисленных из-за того, что пользователь не может создать ключ, по стати-
77
стическим характеристикам близкий к случайному. Следовательно, такой ключ всегда может быть подобран исходя из информации, которая об этом пользователе известна.
Использование случайных ключей – наиболее сильный метод. Случайный ключ может быть получен, например, с использованием генератора белого шума, или так называемым «биометрическим методом», который основан на том, что при нажатии клавиш на клавиатуре пользователь не может точно воспроизвести интервалы, сделанные при наборе. Недостаток этого метода состоит в том, что случайный ключ не может быть воспроизведен. Таким образом, случайные ключи могут применяться только в системах, требующих использования готовых ключей, но не их воспроизведения.
Комбинированный метод, наиболее приемлемый из всех, – это метод использования ключевых фраз. Он состоит в том, что при генерации ключа пользователь вводит достаточно длинную фразу, которую легко запомнить. Затем к этой фразе применяется так называемый алгоритм «перемалывания», в результате работы которого получается псевдослучайный ключ, то есть последовательность, статистический анализ которой не выявляет закономерностей. Однако при необходимости воспроизведения ключа пользователь может снова ввести ключевую фразу, которая после применения алгоритма «перемалывания» превратится в тот же самый ключ.
11.3. Хранение ключей
Существует несколько важных правил, которые должны выполняться при хранении секретных ключей. Перечислим основные из них.
1.Секретные ключи должны быть записаны на носителе, который не может быть похищен или уничтожен.
2.Ключи могут храниться в зашифрованном виде с использованием мастер-ключей. Мастер-ключом называется секретный ключ шифрования, который применяется для зашифрования секретных ключей и хранится у ответственного пользователя.
78
3.Обновление ключей. Одни и те же ключи не могут использоваться постоянно. Длительное время использования повышает вероятность их раскрытия. Поэтому ключи должны постоянно обновляться в соответствии
сзаданным порядком. Наиболее надежный способ обновления ключей – это использование односторонних функций. Применением к старому ключу односторонней функции получают новый ключ, но старый ключ из нового восстановлен быть не может. Таким образом, установить закономерность между старым и новым ключом и выдвинуть предположение о том, какой ключ будет следующим, невозможно.
4.Резервное хранение чаще всего бывает основано на методе разде-
ления секрета. Этот метод состоит в том, что при хранении ключ разделяется на две или более частей, и каждая из частей хранится у отдельного пользователя. Применение ключа возможно только после того, как все части ключа будут собраны воедино. Утрата хотя бы одной из частей приводит к невозможности использования ключа.
5.При завершении срока использования секретные ключи должны быть надежно удалены.
11.4.Распределение ключей. Алгоритм Диффи-Хеллмена
Первым алгоритмом, который применяется для безопасного распределения секретных ключей, был алгоритм Диффи-Хеллмена, разработанный в 1976 г. Несмотря на то что этот алгоритм был первым в истории асимметричным алгоритмом, он широко применяется и в современных криптосистемах.
Безопасность алгоритма Диффи-Хеллмена основывается на трудоемкости вычисления дискретных логарифмов в конечном поле, по сравнению с легкостью возведения в степень в том же поле.
Принцип работы алгоритма состоит в том, что если два пользователя имеют по паре ключей – секретному и открытому – взаимосвязанных между собой, то, обменявшись только открытыми частями, они могут сгенерировать один и тот же секретный ключ, который затем может использоваться для симметричного шифрования.
79
Пусть имеется два участника обмена информацией, которым необ-
ходимо организовать – Пользователь 1 и Пользователь 2.
Для начала Пользователь 1 и Пользователь 2 совместно выбирают большое простое число n и первообразный корень g по модулю n. Выбранные числа g и n не нужно хранить в секрете, они лишь участвуют в создании секретного ключа. Далее Пользователь 1 и Пользователь 2 выполняют одинаковую последовательность действий:
Пользователь 1
1.Выбирает случайное целое число x.
2.Вычисляет X = g x (mod n).
3.Передает X Пользователю 2.
4.Сохраняет число x в секрете. Пользователь 2
1.Выбирает случайное целое число y.
2.Вычисляет Y = g y (mod n).
3.Передает Y Пользователю 1.
4.Сохраняет число y в секрете. Пользователь 1
1.Получает от Пользователя 2 число Y
2.Вычисляет секретный ключ K =Y x = gyx (mod n).
Пользователь 2
1.Получает от Пользователя 1 число X.
2.Вычисляет секретный ключ K = X y = gxy (mod n).
Таким образом, в результате работы алгоритма оба пользователя обладают одним и тем же секретным ключом K, не обмениваясь предварительно секретной информацией (числа x и y).
Секретные числа x и y не могут быть восстановлены из открыто распространяемых X и Y, потому что для этого приходится решать задачу дискретного логарифмирования в конечном поле:
x = (logg X )(mod n); y = (logg Y )(mod n),
имеющую большую вычислительную сложность.
80
