- •Методические материалы
- •1. Основные понятия
- •2. Традиционные криптосистемы
- •2.1. Некоторые особенности криптосистем. Примеры традиционных криптосистем
- •2.2. Теоретическая стойкость криптосистем 2
- •2.2.1. Системы с совершенной секретностью
- •2.2.2. Шифр Вернама
- •2.2.3. Элементы теории информации
- •2.2.4. Расстояние единственности шифра с секретным ключом
- •2.3. Современные криптосистемы с секретным ключом 4
- •2.3.1. Основные положения
- •2.3.2. Блоковые шифры
- •2.3.2.1. Общие положения
- •2.3.2.2. Блоковый шифр гост 28147-89
- •2.3.2.3. Режимы функционирования блоковых шифров
- •2.3.3. Потоковые шифры
- •2.3.3.1. Общие положения
- •2.3.3.2. Режим ofb блокового шифра
- •2.3.3.3. Режим ctr блокового шифра
- •2.3.3.4. Алгоритм rc4 6
- •3. Криптосистемы с открытым ключом 7
- •3.1. Основные положения
- •3.2. Криптосистема Диффи-Хеллмана
- •3.3. Шифр Шамира
- •3.4. Шифр Эль-Гамаля
- •3.5. Шифр rsa. Односторонняя функция с "лазейкой"
- •3.6. Цифровая (электронная) подпись
- •3.6.1. Криптографические хеш-функции
- •3.6.2. Цифровая подпись rsa
- •3.6.3. Цифровая подпись на базе шифра Эль-Гамаля
- •3.6.4. Стандарты на цифровую подпись
- •3.7. Криптографические протоколы
- •3.7.1. Протокол для доказательства с нулевым знанием
- •3.7.2. Протокол для поддержки электронных денег
- •Рекомендуемая литература
3.2. Криптосистема Диффи-Хеллмана
Это первая криптосистема с открытым ключом, разработанная в середине 70-х годов, позволившая защищать информацию без использования секретных ключей, передаваемых по секретным каналам. В этой криптосистеме для передачи основной секретной информации используется традиционная криптосистема. Но ключи этой криптосистемы, благодаря использованию односторонней функции, передаются по несекретному каналу. Тем самым резко уменьшились возможности для криптоатак, ибо именно каналы связи являются наиболее уязвимой частью криптосистем.
Для того чтобы продемонстрировать возможности этой криптосистемы, рассмотрим сеть связи с N пользователями (где N – большое число). Пусть необходимо организовать защищенный обмен информацией для каждой пары этих пользователей.
Если использовать обычную криптосистему с секретными ключами, то каждая пара пользователей должна быть снабжена своим ключом, то есть всего в системе должно быть N2/2 секретных ключей (при N = 100 ~ 5000 ключей, при N = 104 это ~6107 ключей), причем эту совокупность ключей необходимо постоянно обновлять.
В системе с открытыми ключами задача решается совершенно иначе.
Пусть строится система для связи абонентов A, B, C, ... . Для организации системы выбирается большое простое целое число p и некоторое число g, 1 < g < p – 1, такое, что все числа из множества {1, ..., p – 1} могут быть представлены как степени числа g, взятые по mod p. Числа g и p открыты и известны всем абонентам.
Абоненты выбирают большие числа XA, XB, … , которые хранятся в секрете (обычно рекомендуют выбирать такие числа случайно).
Каждый абонент вычисляет соответствующее число Y, которое открыто передается другим абонентам:
Y A = mod p;
Y
(3.7)
..............................
В результате получаем следующую таблицу:
Таблица 3.2
-
Абонент
Секретный ключ
Открытый ключ
А
XA
YA
В
XB
YB
...
...
...
Пусть абонент А сообщает абоненту В о том, что ему будет передаваться секретная информация. Абонент А вычисляет величину
ZAB = mod p (3.8)
(обратите внимание на то, что никто кроме А этого сделать не сможет).
Абонент B вычисляет величину
ZBA = mod p (3.9)
Справедливо равенство: ZAB = ZBA. Действительно:
ZAB = mod p = mod p = mod p = mod p = ZBA.
Отметим главные свойства этой криптосистемы:
абоненты A и B получили одно и то же число Z = ZAB = ZBA, которое не передавалось по открытой линии связи;
противник ℰ не знает секретных чисел XA и XВ и поэтому не может вычислить число Z (попытка вычисления связана с непомерными тратами времени);
далее абоненты A и B могут использовать число Z в качестве секретного ключа для шифрования и дешифрования данных при использовании традиционной криптосистемы, например, ГОСТ 28147-89.
Таким образом, система Диффи-Хеллмана позволяет сформировать секретное слово, а далее требуется применить традиционную криптосистему, но без затрат на организацию секретного канала связи.