Асимметричные криптографические системы
Концепция асимметричных криптосистем. Эффективными системами криптографической защиты данных являются асимметричные криптосистемы, называемые также криптосистемами с открытым ключом. В таких системах для зашифрования данных используется один ключ, а для расшифрования - другой ключ (отсюда и название - асимметричные). Первый ключ является открытым и может быть опубликован для использования всеми пользователями системы, которые зашифровывают данные. Расшифрование данных с помощью открытого ключа невозможно.
Для расшифрования данных получатель зашифрованной информации использует второй ключ, который является секретным. Разумеется, ключ расшифрования не может быть определен из ключа зашифрования.
Обобщенная схема асимметричной криптосистемы с открытым ключом показана на рис. 26.
Рис. 26. Обобщенная схема асимметричной криптосистемы
с открытым ключом
В этой криптосистеме применяют два различных ключа: Кв - открытый ключ отправителя А; kB -секретный ключ получателя В. Генератор ключей целесообразно располагать на стороне получателя В (чтобы не пересылать секретный ключ kB по незащищенному каналу). Значения ключей Кв и kв зависят от начального состояния генератора ключей.
Раскрытие секретного ключа kB по известному открытому ключу Кв должно быть вычислительно неразрешимой задачей.
Характерные особенности асимметричных криптосистем:
1. Открытый ключ Кв и криптограмма С могут быть отправлены по незащищенным каналам, т.е. противнику известны Кв и С.
2. Алгоритмы шифрования и расшифрования являются открытыми.
EB: M → C,
DB: C → M
Защита информации в асимметричной криптосистеме основана на секретности ключа kB.
У. Диффи и М. Хеллман сформулировали требования, выполнение которых обеспечивает безопасность асимметричной криптосистемы:
1. Вычисление пары ключей (Кв, kB) получателем В на основе начального условия должно быть простым.
2. Отправитель А, зная открытый ключ Кв и сообщение М, может легко вычислить криптограмму
С = ЕКв(М) = ЕB(М).
3. Получатель В, используя секретный ключ kB и криптограмму С, может легко восстановить исходное сообщение
М = DkB (С) = DB(C) = DB [EB(M)].
4. Противник, зная открытый ключ Кв, при попытке вычислить секретный ключ kB наталкивается на непреодолимую вычислительную проблему.
5. Противник, зная пару (Кв, С), при попытке вычислить исходное сообщение М наталкивается на непреодолимую вычислительную проблему
Однонаправленные функции. В основе асимметричных криптографических систем лежит понятие однонаправленной функции f, обладающей свойствами:
простое (не требующее больших ресурсов) вычисление значения функции y=f(x);
существование обратной функции f-1;
сложное (требующее ресурсов за пределами возможностей современных компьютеров) вычисление значения обратной функции x=f-1(y).
Фактически в асимметричной криптографии используется подкласс однонаправленных функций – однонаправленные функции с обходными путями, для которых обратная функция может быть вычислена так же просто, как и прямая, только если известна специальная информация об обходных путях. Эта специальная информация исполняет роль секретного ключа.
В качестве первого примера однонаправленной функции рассмотрим целочисленное умножение. Прямая задача - вычисление произведения двух очень больших целых чисел Р и Q, т.е. нахождение значения
N = P*Q,
является относительно несложной задачей для ЭВМ.
Обратная задача - разложение на множители большого целого числа, т.е. нахождение делителей Р и Q большого целого числа N = P*Q, является практически неразрешимой задачей при достаточно больших значениях N. По современным оценкам теории чисел при целом N ≈ 2664 и P ≈ Q для разложения числа N потребуется около 1023 операций, т.е. задача практически неразрешима на современных ЭВМ.
Следующий характерный пример однонаправленной функции - это модульная экспонента с фиксированными основанием и модулем. Пусть А и N - целые числа, такие, что 1 ≤ А < N. Определим множество Zn:
ZN = {0,1,2,…, N-1}.
Тогда модульная экспонента с основанием А по модулю N представляет собой функцию
fA,N : ZN → ZN,
fAN (x) = Ax (mod N),
где Х - целое число, 1 ≤ х ≥ N-1.
Существуют эффективные алгоритмы, позволяющие достаточно быстро вычислить значения функции fA,N (x).
Если у = Ах, то естественно записать х = logA (у).
Поэтому задачу обращения функции fA,N(X) называют задачей нахождения дискретного логарифма или задачей дискретного логарифмирования.
Задача дискретного логарифмирования формулируется следующим образом. Для известных целых A, N, у найти целое число х, такое, что
Ах mod N = у.
Алгоритм вычисления дискретного логарифма за приемлемое время пока не найден. Поэтому модульная экспонента считается однонаправленной функцией.
По современным оценкам теории чисел при целых числах А ≈ 2664 и N≈ 2664 решение задачи дискретного логарифмирования (нахождение показателя степени х для известного у) потребует около 1026 операций, т.е. эта задача имеет в 103 раз большую вычислительную сложность, чем задача разложения на множители. При увеличении длины чисел разница в оценках сложности задач возрастает.
Следует отметить, что пока не удалось доказать, что не существует эффективного алгоритма вычисления дискретного логарифма за приемлемое время. Исходя из этого, модульная экспонента отнесена к однонаправленным функциям условно, что, однако, не мешает с успехом применять ее на практике.
Вторым важным классом функций, используемых при построении криптосистем с открытым ключом, являются так называемые однонаправленные функции с "потайным ходом" (с лазейкой). Дадим неформальное определение такой функции. Функция
f: X → Y
относится к классу однонаправленных функций с "потайным ходом" в том случае, если она является однонаправленной и, кроме того, возможно эффективное вычисление обратной функции, если известен "потайной ход" (секретное число, строка или другая информация, ассоциирующаяся с данной функцией).
В качестве примера однонаправленной функции с "потайным ходом" можно указать используемую в криптосистеме RSA модульную экспоненту с фиксированными модулем и показателем степени. Переменное основание модульной экспоненты используется для указания числового значения сообщения М либо криптограммы С.
Области применения. К основным применениям асимметричных криптосистем относятся:
передача ключа симметричного шифрования по открытой сети (отправитель зашифровывает этот ключ с помощью открытого ключа получателя, который только и сможет расшифровать полученное сообщение с помощью своего секретного ключа);
системы электронной цифровой подписи для защиты электронных документов (создатель документа удостоверяет его подлинность с помощью своего секретного ключа, после этого любой владелец соответствующего открытого ключа сможет проверить аутентичность данного документа).
В отличие от классической симметричной криптографии криптография с открытым ключом появилась сравнительно недавно – во второй половине ХХ в. К особенностям современных асимметричных криптосистем, которые не позволяют им полностью заменить симметричные криптосистемы, относятся:
большая продолжительность процедур шифрования и расшифрования (примерно в 1000 раз больше);
необходимость использования существенно более длинного ключа шифрования для обеспечения той же криптостойкости шифра (например, симметричному ключу длиной 56 бит будет соответствовать асимметричный ключ длиной 384 бита, а симметричному ключу длиной 112 бит – асимметричный ключ длиной 1792 бита).
К наиболее известным асимметричным криптографическим системам относятся RSA, Диффи-Хеллмана, Эль-Гамаля и криптосистема на основе эллиптических кривых.