Открытое распределение ключей

From CryptoWiki
Jump to: navigation, search

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

Contents

Постановка задачи защиты информации

Протоколы открытого распределения ключей появились в связи с необходимостью реализовать обмен ключами без использования защищённого канала связи. Два или более участников в результате выполнения действий, предписанных протоколом, получают одинаковые ключи, которые затем используются в схемах симметричного шифрования. Первые исследования в этой области были выполнены Уитфилдом Диффи (Whitfield Diffie) и Мартином Хеллманом (Martin Hellman), которые в 70-х годах XX века опубликовали свой протокол открытого распределения ключей. Это была первая криптосистема, которая позволяла защищать информацию без использования секретных ключей, передаваемых по защищенным каналам.

Схема открытого распределения ключей, предложенная Уитфилдом Диффи и Мартином Хеллманом, произвела настоящую революцию в мире шифрования, так как снимала основную проблему классической криптографии – проблему распределения ключей. В той же статье вводились и основы асимметричной криптографии.

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

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

Вернуться к оглавлению

Теоретические основы решения задачи

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

Общая схема протокола выглядит следующим образом:

Предварительный этап

  • получить p – большое простое число;
  • получить полное разложение числа (p –1) на множители;
  • вычислить первообразный корень r по модулю p (r mod p).

Составное число раскладывается на простые множители (на простые числа или их положительные целые степени, возможно нулевые), где pi– простые числа; bi – степени простых чисел.

Test.jpg

Для вычисления первообразного корня необходимо, чтобы для любого числа из интервала Test2.jpg выполнялось условие Test3.jpg. При выполнении этого условия любое число D9eada4d9ebbba8845eaf030db353061.png можно представить в виде Test4.jpg, где x - некоторое положительное целое число из интервала Test5.jpg. Пара чисел (p,r) используется в качестве открытого ключа.

Рабочий этап

Пусть A.png и B.png - два абонента, которым необходимо получить общий секретный ключ Test16.jpg. Тогда:

1. A.png генерирует элемент Test6.jpg, вычисляет Test7.jpg и отправляет результат B.png

2. B.png генерирует элемент Test8.jpg, вычисляет Test9.jpg и отправляет результат A.png

3. A.png вычисляет значение Test10.jpg

4. B.png вычисляет значение Test13.jpg

После получения Test16.jpg значения Test14.jpg и Test15.jpg необходимо уничтожить.

В результате выполнения протокола каждый из абонентов A.png и B.png получает общий ключ Test16.jpg, который может быть использован в симметричных системах шифрования. При этом, противник, которому известен открытый ключ (p,r) не сможет вычислить значение Test16.jpg. При перехвате чисел Test11.jpg и Test12.jpg противник так же не сможет получить значение Test16.jpg.

Основные криптографические конструкции и их стойкость

Протокол открытого распределения ключей Диффи-Хеллмана

Этот протокол был предложен в 1976 году и является первым протоколом такого класса. Также его можно назвать одним из самых известных протоколов открытого распределения ключей.

Протокол Диффи-Хеллмана не обеспечивает ни аутентификацию, ни подтверждение ключа, ни аутентификацию участников протокола. Активный противник может построить атаку на протокол методом включения в канал (атака "Человек посередине").

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

Преимущество метода Диффи-Хеллмана по сравнению с методом RSA заключается в том, что формирование общего секретного ключа происходит в сотни раз быстрее. В системе RSA генерация новых секретных и открытых ключей основана на генерации новых простых чисел, что занимает много времени.

Демонстрационная программа, показывающая работу данного протокола:
Исходный код на языке C#: File:DHSourceCode.txt
Исполняемый файл: File:DiffieHellmanProg.zip

DHProgScreenshot.jpg

Cхема Эль-Гамаля

Эта криптосистема была предложена в 1985 году. Эль-Гамаль предложил эту схему на основе возведения в степень по модулю большого простого числа. Он усовершенствовал систему Диффи-Хеллмана и получил два алгоритма, которые использовались для шифрования и для обеспечения аутентификации.

Практические применения криптографических конструкций, особенности их реализации

Первое практическое применение криптосистем с открытым ключом – организация обмена ключами между удаленными пользователями через открытые каналы связи

IKE (Internet Key Exchange)

IKE — стандартный протокол IPsec, используемый для обеспечения безопасности взаимодействия в виртуальных частных сетях. Протокол IKE позволяет согласовывать алгоритмы и математические структуры для процедуры обмена ключами Диффи-Хеллмана, а также процессов аутентификации.

IPsec (IP Security) — набор протоколов для обеспечения защиты данных, передаваемых по межсетевому протоколу IP. Позволяет осуществлять подтверждение подлинности (аутентификацию), проверку целостности и/или шифрование IP-пакетов. IPsec также включает в себя протоколы для защищённого обмена ключами Диффи-Хеллмана в сети Интернет.

Протоколы IKE решают три задачи:

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

• управляют параметрами соединения и защитой от некоторых типов атак, контролируют выполнение всех достигнутых соглашений;

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

PGP (Pretty Good Privacy)

PGP — популярная программа для шифрования, дешифрования и цифровой подписи сообщений электронной почты, файлов и другой информации, представленной в электронном виде. Она работает по принципу несимметричного шифрования, позволяющего обмениваться открытыми ключами через небезопасные каналы связи. Закрытые ключи не передаются, поэтому программа организована так, что все команды отправки и обмена ключей оперируют только открытыми ключами.

Создателем PGP является американский программист Филипп Циммерман (1991 год).

PGP позволяет пользователям обмениваться файлами или сообщениями с использованием функции секретности и установлением подлинности.

PGP объединяет использование криптографической системы RSA и Диффи-Хеллмана.

PGP выполняет алгоритм “дайджеста сообщений” (обнаружение факта изменения документа или сообщения) для реализации электронной подписи и упаковку данных перед шифрованием.

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

• В PGP предпочитают название Diffie-Hellman ввиду его большей известности, а также из-за того, что разница между системами, созданными Диффи и Хеллманом и Эльгамалем не столь велика.

Протокол управления криптоключами SKIP

Протокол SKIP (Simple Key Management for Internet Protocol) может использоваться в качестве интегрирующей среды и системы управления криптоключами.

Протокол базируется на криптографии открытых ключей Диффи-Хеллмана и обладает рядом достоинств:

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

Глоссарий

Библиографический указатель

Перейти к списку литературы по разделу "Открытое распределение ключей".

Вернуться к оглавлению

Петкевич О.А., Сердюков И.И., 2014 г.