Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
асимметричные криптоалгоритмы.doc
Скачиваний:
8
Добавлен:
08.09.2019
Размер:
133.12 Кб
Скачать

Лекция 4.3 Основы криптографии с открытым ключом

Симметричные криптосистемы обладают одним серьезным недостатком. Связан он с ситуацией, когда общение между собой производят не три-четыре человека, а сотни и тысячи людей. В этом случае для каждой пары, переписывающейся между собой, необходимо создавать свой секретный симметричный ключ. Это в итоге приводит к существованию в системе из N пользователей N2/2 ключей. А это уже очень «приличное» число.

Асимметричная криптография изначально задумана как средство передачи сообщений от одного объекта к другому (а не для конфиденциального хранения информации, которое обеспечивают только симметричные алгоритмы). Поэтому дальнейшее объяснение мы будем вести в терминах «отправитель» – лицо, шифруюшее, а затем отпраляющее информацию по незащищенному каналу и «получатель» – лицо, принимающее и восстанавливающее информацию в ее исходном виде. Основная идея асимметричных криптоалгоритмов состоит в том, что для шифрования сообщения используется один ключ, а при дешифровании – другой. [6]

Кроме того, процедура шифрования выбрана так, что она необратима даже по известному ключу шифрования – это второе необходимое условие асимметричной криптографии. То есть, зная ключ шифрования и зашифрованный текст, невозможно восстановить исходное сообщение – прочесть его можно только с помощью второго ключа – ключа дешифрования. А раз так, то ключ шифрования для отправки писем какому-либо лицу можно вообще не скрывать – зная его все равно невозможно прочесть зашифрованное сообщение. Поэтому, ключ шифрования называют в асимметричных системах «открытым ключом», а вот ключ дешифрования получателю сообщений необходимо держать в секрете – он называется «закрытым ключом».

В целом система переписки при использовании асимметричного шифрования выглядит следующим образом. Для каждого из N абонентов, ведущих переписку, выбрана своя пара ключей: «открытый» Ej и «закрытый» Dj, где j – номер абонента. Все открытые ключи известны всем пользователям сети, каждый закрытый ключ, наоборот, хранится только у того абонента, которому он принадлежит.

Как мы видим, во-первых, в асимметричных системах количество существующих ключей связано с количеством абонентов линейно (в системе из N пользователей используются 2*N ключей), а не квадратично, как в симметричных системах. Во-вторых, при нарушении конфиденциальности k-ой рабочей станции злоумышленник узнает только ключ Dk: это позволяет ему читать все сообщения, приходящие абоненту k, но не позволяет выдавать себя за него при отправке писем. (рисунок 11)

Рисунок 11 — Криптографическая система с открытым ключом

EK1(M)=C DK2(С)=M DK2(EK1(M))=M

Криптосистема с открытым ключом определяется тремя алгоритмами: генерации ключей, шифрования и расшифрования. Алгоритм генерации ключей открыт, всякий может подать ему на вход случайную строку r надлежащей длины и получить пару ключей (k1, k2). Один из ключей (например, k1) публикуется, он называется открытым, а второй, называемый секретным, хранится в тайне. Алгоритмы шифрования Ek1 и расшифрования Dk2 таковы, что для любого открытого текста т .

Рассмотрим теперь гипотетическую атаку злоумышленника на эту систему. Противнику известен открытый ключ k1. но неизвестен соответствующий секретный ключ k2. Противник перехватил криптограмму d и пытается найти сообщение т, где d = Ek1(m). Поскольку алгоритм шифрования открыт, противник может просто последовательно перебрать все возможные сообщения длины п. вычислить для каждого такого сообщения mi криптограмму di =Ek1(mi) и сравнить di с d. To сообщение, для которого di = d и будет искомым открытым текстом. Если повезет, то открытый текст будет найден достаточно быстро. В худ­шем же случае перебор будет выполнен за время порядка 2nT(n), где Т(п) - время, требуемое для шифрования сообщения длины n.

Чтобы гарантировать надежную защиту информации, к системам с открытым ключом предъявляются два важных и очевидных требования:

  1. Преобразование исходного текста должно быть необратимым и исключать его восстановление на основе открытого ключа.

  2. Определение закрытого ключа на основе открытого также должно быть невозможным на современном технологическом уровне.

Криптографические системы с открытым ключом используют так называемые необратимые или односторонние функции, которые обладают следующим свойством:

П о заданному аргументу x легко вычислить значение функции f(x), тогда как определение x из f(x) трудновычислимо. Здесь «трудновычислимость» понимается в смысле теории сложности.

О

легковычислимо

X f(x)

трудновычислимо

пределение x из f(x) трудновычислимо только для криптоаналитика. Легальный получатель имеет подходящую лазейку. Далее такие односторонние функции будем называть криптографическими.

Упомянем по этому поводу, что ни одного примера криптографической односторонней функции неизвестно. Зато существует много криптографических функций f(x), таких, что:

  • Легко вычислить f(x)из x.

  • Определение x из f(x), вероятно, будет трудновычислимым.

Уточним определение односторонних функций. Задача называется трудновычислимой, если нет алгоритма для решения данной задачи с полиномиальным временем работы. Если же такой алгоритм существует, то задача называется вычислимой.

В качестве задач, приводящих к односторонним функциям, можно привести следующие.

1. Разложение числа на простые сомножители.

Вычислить произведение двух простых чисел очень просто. Однако, для решения обратной задачи - разложения заданного числа на простые сомножители, эффективного алгоритма в настоящее время не существует.

2. Дискретное логарифмирование в конечном простом поле (проблема Диффи-Хеллмана).

Допустим, задано большое простое число p и пусть gпримитивный элемент поля GF(p). Тогда для любого а вычислить ga (mod p) просто, а вычислить а по заданным k = ga(mod p) и р оказывается затруднительным.

Криптосистемы с открытым ключом основываются на односторонних функциях-ловушках. Функцией- ловушкой называется односторонняя функция, для которой обратную функцию вычислить проста если имеется некоторая дополнительная информация, и сложна если такая информация отсутствует.

При этом открытый ключ определяет конкретную реализацию функции, а секретный ключ дает информацию о ловушке. Любой, знающий ловушку, может легко вычислять функцию в обоих направлениях, но тот, у кого такая информация отсутствует, может производить вычисления только в одном направлении.