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

15. Распределение секретных ключей. Обмен ключами по Диффи-Хельмана.

13+

Алгори́тм Ди́ффи — Хе́ллмана  позволяет двум или более пользователям обменяться без посредников ключом, который может быть использован затем для симметричного шифрования. 

Данный алгоритм не применяется для шифрования сообщений или формирования электронной подписи. Его назначение – в распределении ключей.

Это была первая криптосистема, которая позволяла защищать информацию без использования секретных ключей, передаваемых по защищенным каналам.

Предположим, существует два абонента: Алиса и Боб. Обоим абонентам известны некоторые два числа g и p, которые не являются секретными и могут быть известны также другим заинтересованным лицам. Для того, чтобы создать неизвестный более никому секретный ключ, оба абонента генерируют большие случайные числа: Алиса — число a, Боб— число b. Затем Алиса вычисляет значение (1):

 (1)

и пересылает его Бобу , а Боб вычисляет (2):

 (2)

и передаёт Алисе. Предполагается, что злоумышленник может получить оба этих значения, но не модифицировать их (то есть у него нет возможности вмешаться в процесс передачи).

На втором этапе Алиса на основе имеющегося у ней a и полученного по сети B вычисляет значение (3):

 (3)

Боб на основе имеющегося у него b и полученного по сети A вычисляет значение (4):

 (4)

Как нетрудно видеть, у Алисы и Боба получилось одно и то же число (5):

 (5)

Его они и могут использовать в качестве секретного ключа, поскольку здесь злоумышленник встретится с практически неразрешимой (за разумное время) проблемой вычисления (3) или (4) по перехваченным   и  , если числа p,a,b выбраны достаточно большими. 

При работе алгоритма, каждая сторона:

  1. генерирует случайное натуральное число a — закрытый ключ

  2. совместно с удалённой стороной устанавливает открытые параметры p и g (обычно значения p и g генерируются на одной стороне и передаются другой), где

p является случайным простым числом

g является первообразным корнем по модулю p

  1. вычисляет открытый ключ A, используя преобразование над закрытым ключом

A = ga mod p

  1. обменивается открытыми ключами с удалённой стороной

  2. вычисляет общий секретный ключ K, используя открытый ключ удаленной стороны B и свой закрытый ключ a

K = Ba mod p

К получается равным с обеих сторон, потому что:

Ba mod p = (gb mod p)a mod p = gab mod p = (ga mod p)b mod p = Ab mod p

В практических реализациях, для a и b используются числа порядка 10100 и p порядка 10300. Число g не обязано быть большим и обычно имеет значение в пределах первого десятка.

16. Криптосистемы rsa и Эль-Гамаля.

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

Криптосистема RSA стала первой системой, пригодной и для шифрования, и для цифровой подписи. Алгоритм используется в большом числе криптографических приложений, включая PGP, S/MIME,TLS/SSL, IPSEC/IKE и других.

RSA-ключи генерируются следующим образом:

  • Выбираются два различных случайных простых числа   и   заданного размера (например, 1024 бита каждое).

  • Вычисляется их произведение  , которое называется модулем.

  • Вычисляется значение функции Эйлера от числа  :

  • Выбирается целое число   ( ), взаимно простое со значением функции  . Обычно в качестве   берут простые числа, содержащие небольшое количество единичных бит в двоичной записи, например, простые числа Ферма 17, 257 или 65537.

  • Число   называется открытой экспонентой (Слишком малые значения  , например 3, потенциально могут ослабить безопасность схемы RSA.)

  • Вычисляется число  , мультипликативно обратное к числу   по модулю  , то есть число, удовлетворяющее условию:

  • Число   называется секретной экспонентой. Обычно, оно вычисляется при помощи расширенного алгоритма Евклида.

  • Пара   публикуется в качестве открытого ключа RSA 

  • Пара   играет роль закрытого ключа RSA и держится в секрете.

Схема Эль-Гамаля — криптосистема с открытым ключом,основанная на трудности вычисления дискретных логарифмов в конечном поле. Криптосистема включает в себя алгоритм шифрования и алгоритм цифровой подписи. Схема Эль-Гамаля лежит в основе стандартов электронной цифровой подписи в США (DSA) и России (ГОСТ Р 34.10-94).

Генерация ключей

Генерируется случайное простое число   длины   битов. Выбирается случайный примитивный элемент   поля  . Выбирается случайное целое число   такое, что  .

Вычисляется  . Открытым ключом является тройка  , закрытым ключом — число  .

Работа в режиме шифрования

Шифросистема Эль-Гамаля является фактически одним из способов выработки открытых ключей Диффи — Хеллмана.

Шифрование

Сообщение   шифруется следующим образом:

Выбирается сессионный ключ — случайное целое число   такое, что 

Вычисляются числа   и  .

Пара чисел   является шифротекстом.

Нетрудно видеть, что длина шифротекста в схеме Эль-Гамаля длиннее исходного сообщения   вдвое.

Расшифрование

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

и поэтому .

Для практических вычислений больше подходит следующая формула:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]