Протоколы распределения ключей с использованием цикла. Управление ключами

Протоколы распределения ключей с использованием цикла. Управление ключами
Протоколы распределения ключей с использованием цикла. Управление ключами

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

Contents

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

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

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

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

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

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

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

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

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

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

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

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

Рабочий этап

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

1. генерирует элемент , вычисляет и отправляет результат

2. генерирует элемент , вычисляет и отправляет результат

3. вычисляет значение

4. вычисляет значение

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

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

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

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

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

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

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

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

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

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

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

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

IKE (Internet Key Exchange)

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

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

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

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

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

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

PGP (Pretty Good Privacy)

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

Накопление ключей

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

Управление ключами

Под ключевой информацией понимается совокупность всех действующих в ИС ключей.

Управление ключами – это информационный процесс, включающий 3 элемента:

· генерацию ключей;

· накопление ключей;

· распределение ключей.

Известно, что не стоит использовать неслучайные ключи. В серьезных ИС используют специальные программные и аппаратные методы генерации случайных ключей. Как правило, используется датчики случайных и псевдослучайных чисел. Степень случайности должна быть высокой. Идеальными генераторами являются устройства на основе натуральных случайных процессов. Физический датчик случайных чисел встроен в ядро процессора Pentium 3.

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

Накопление ключей – организация их учета, хранения и удаления. Так как ключей много, то они хранятся в БД ключевой информации. Сами ключи должны храниться в БД в зашифрованном виде.

Ключ, зашифровывающий ключевую информацию, называется мастер- ключом.

Желательно, чтобы пользователь знал его наизусть. Можно мастер-ключи разбивать на части и хранить одну часть на магнитной карточке, а другую – в памяти компьютера.

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

Распределение ключей – самый ответственный процесс в управлении ключами. К нему предъявляются два требования:

· Оперативность и точность распределения.

· Скрытность распределения ключей.

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

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

1) можно через курьера доставить ключ, но так как ключи должны обновляться, то доставлять дорого и неэффективно

2) получение двумя пользователя общего ключа от центрального органа (Центр Распределении Ключей – ЦРК). Передаваемый ключ шифруется ключом ЦРК. Недостаток: в ЦРК может появиться злоумышленник. Можно, чтобы в виде дерева организовать хранение ключей в ЦРК.

3) Третий способ предложили ученые Диффи и Хеллман – протокол обмена ключами по открытому каналу. Протокол – это последовательность шагов, которые принимают 2 или большее число сторон для совместного решения задачи. Все шаги следуют в порядке очередности.



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

Протокол обмена ключами по открытому каналу Диффи-Хеллмана.

Цель: двум пользователям А и В получить общий секретный ключ.

1. Пользователь А генерирует случайное число Х.

2. Пользователь В генерирует случайное число У.

3. А вычисляет: La=a^x mod m

4. B вычисляет: Lb=b^y mod m

5. A посылает пользователю В La.

6. В посылает пользователю А Lb.

7. A вычисляет Kab =(Lb)^x mod m=(a^y mod m)^x mod m=a^xy mod m.

8. B вычисляет Kab =(La)^y mod m=(a^x mod m)^y mod m=a^xy mod m.

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

Управление открытыми ключами может быть организовано с помощью оперативной или автономной службы каталогов. Основными проблемами являются аутентичность, целостность и достоверность. Аутентичность – убедиться, что это ключ именно этого пользователя.

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

1. механизма «запрос-ответ» (процедура «рукопожатие» = установка виртуального канала);

2. механизма отметки времени.

Задача распределения ключей сводится к построению протокола распределения, обеспечивающего:

1. Взаимное подтверждение подлинности участников сеанса.

2. Подтверждение достоверности сеанса механизмом «запрос-ответ» или отметки времени.

3. Использование минимального числа сообщений при обмене ключами.

4. Возможность исключения злоупотребления со стороны ЦРК (вплоть до отказа от его услуг).

Целесообразно отделить процедуру подтверждения подлинности партнеров от собственно процедуры распределения ключей.

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

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

Сертификатом открытого ключа С А называют сообщение центрального органа, удостоверяющего целостность некоторого открытого ключа объекта А (может быть бумажный, электронный документ).

Например: сертификат открытого ключа для пользователя А, обозначаемый С А, содержит отметку времени Т, идентификатор Id A , открытый ключ K A , зашифрованный секретным ключом ЦРК К црк:

С А = Е К црк (Т, Id A , K A)

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

Система, обеспечивающая шифрование с открытым ключом и ЭЦП, называется инфраструктурой открытого ключа.

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

1. Полное имя пользователя (номер, пароль).

2. Открытый ключ пользователя.

3. Время действия сертификата.

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

Аутентификация Kerberos

Для решения проблемы аутентификации, которая базировалась бы на шифровании, в Массачусетском технологическом институте в 1985 году была разработана система защиты информационных систем от вторжений, с специальным сервисом выдачи билетов. Она была названа Kerberos по имени трехглавого пса Цербера, охранявшего ворота в ад в греческой мифологии.

Такое название было выбрано, потому что в аутентификации участвовали три стороны: пользователь, сервер, к которому желает получить доступ пользователь, и сервер аутентификации, или центр распределения ключей (ЦРК) . Специальный сервер аутентификации предлагался в качестве доверенной третьей стороны, услугами которой могут пользоваться другие серверы и клиенты информационной системы.

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

  1. получение пользователем билета TGT на билеты;
  2. получение пользователем билета на доступ к серверу ;
  3. аутентификация пользователя сервером;
  4. аутентификация сервера пользователем.

Рассмотрим более подробно аутентификацию в системе Kerberos (рис. ), которая выполняется за четыре шага:

1) Сеанс начинается с получения пользователем А билета для получения билета - Ticket-Granting Ticket (TGT) от ЦРК .

2) Когда пользователь желает получить доступ к некоторому серверу В, то сначала отправляет запрос на билет для доступа к этому серверу вместе со своим билетом TGT в ЦРК . TGT содержит информацию о сеансе регистрации пользователя А и позволяет ЦРК оперировать, не поддерживая постоянно информацию о сеансе регистрации каждого пользователя.

3) В ответ на свой запрос пользователь А получает зашифрованный сеансовый ключ S A и билет на доступ к серверу В. Сеансовый ключ зашифрован секретным ключом, известным только пользователю А и ЦРК . Билет на доступ к серверу В содержит тот же самый сеансовый ключ, однако он шифруется секретным ключом, известным только серверу В и ЦРК .

4) Аутентификация происходит тогда, когда пользователь А и сервер доказывают знание своего секретного ключа. Пользователь шифрует метку времени и отправляет ее на сервер В. Сервер расшифровывает метку, увеличивает ее значение на единицу, вновь зашифровывает и отправляет шифротекст пользователю А. Пользователь А расшифровывает ответ, и если в нем содержится значение метки времени с приращением, то аутентификация завершается успешно, в противном случае - неудачно. После взаимной аутентификации сеансовый ключ может использоваться для шифрования сообщений, которыми обмениваются пользователь А и сервер В. Очевидно, что стороны должны доверять ЦРК , поскольку он хранит копии всех секретных ключей.

Как бы ни была сложна и надежна сама криптосистема, она основана на использовании ключей. Если для обеспечения конфиденциального обмена информацией между двумя пользователями процесс обмена ключами три­виален, то в системе, где количество пользователей составляет десятки и сотни управление ключами, – это серьезная проблема.

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

Управление ключами – информационный процесс, включающий в себя три элемента:

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

Накопление ключей;

Распределение ключей.

Генерация ключей. В реальных системах используются специальные аппаратные и программные методы генерации случайных ключей. Как правило используют датчики случайных чисел. Однако степень случайности их генерации должна быть достаточно высокой. Идеальными генераторами являются устройства на основе “натуральных” случайных процессов. Напри­мер, генерация ключей на основе белого радиошума. Другим случайным математическим объектом являются десятичные знаки иррациональных чисел, например p или е, которые вычисляются с помощью стандартных математических методов.

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

Накопление ключей. Под накоплением ключей понимается организация их хранения, учета и удаления.

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

Секретные ключи никогда не должны записываться в явном виде на но­сителе, который может быть считан или скопирован.

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

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

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


Вопрос обновления ключевой информации связан и с третьим элементом управления ключами – распределением ключей.

Распределение ключей. Распределение ключей – самый ответственный процесс в управлении ключами. К нему предъявляются два требования:

Оперативность и точность распределения;

Скрытность распределяемых ключей.

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

Распределение ключей между пользователями реализуются двумя раз­ными подходами:

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

2 Прямой обмен ключами между пользователями системы. В этом слу­чае проблема состоит в том, чтобы надежно удостоверить подлинность субъектов.

В обоих случаях должна быть гарантирована подлинность сеанса связи. Это можно обеспечить двумя способами:

1 Механизм запроса-ответа, который состоит в следующем. Если поль­зователь А желает быть уверенным, что сообщения, которые он получает от пользователя В, не являются ложными, он включает в посылаемое для В со­общение непредсказуемый элемент (запрос). При ответе пользователь В должен выполнить некоторую операцию над этим элементом (например, до­бавить 1). Это невозможно осуществить заранее, так как не известно, какое случайное число придет в запросе. После получения ответа с результатами действий пользователь А может быть уверен, что сеанс является подлин­ным. Недостатком этого метода является возможность установления, хотя и сложной, закономерности между запросом и ответом.

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

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

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

Для обмена ключами можно использовать криптосистемы с открытым ключом, используя тот же алгоритм RSA.

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

Алгоритм Диффи-Хеллмана. Диффи и Хелман предложили для создания криптографических систем с открытым ключом функцию дикретного возведения в степень.

Необратимость преобразования в этом случае обеспечивается тем, что достаточно легко вычислить показательную функцию в конечном поле Галуа, состоящим из p элементов (p – либо простое число, либо простое в любой степени). Вычисление же логарифмов в таких полях – значительно более трудоемкая операция.

Для обмена информацией первый пользователь выбирает случайное число x 1 , равновероятное из целых чисел от 1 до p – 1. Это число он держит в секрете, а другому пользователю посылает число y 1 = , где α – фиксированный элемент поля Галуа GF (p ), который вместе с p заранее распространяется между пользователями.

Аналогично поступает и второй пользователь, генерируя x 2 и вычислив y 2 , отправляя его первому пользователю. В результате этого они оба могут вычислить общий секретный ключ k 12 = .

Для того, чтобы вычислить k 12 , первый пользователь возводит y 2 в степень x 1 и находит остаток от деления на p . То же делает и второй пользователь, только используя y 1 и x 2 . Таким образом, у обоих пользователей оказывается общий ключ k 12 , который можно использовать для шифрования информации обычными алгоритмами. В отличие от алгоритма RSA, данный алгоритм не позволяет шифровать собственно информацию.

Не зная x 1 и x 2 , злоумышленник может попытаться вычислить k 12 , зная только перехваченные y 1 и y 2 . Эквивалентность этой проблемы проблеме вычисления дискретного логарифма есть главный и открытый вопрос в системах с открытым ключом. Простого решения до настоящего времени не найдено. Так, если для прямого преобразования 1000-битных простых чисел требуется 2000 операций, то для обратного преобразования (вычисления логарифма в поле Галуа) – потребуется около 1030 операций.

Как видно, при всей простоте алгоритма Диффи-Хелмана, его недостатком по сравнению с системой RSA является отсутствие гарантированной нижней оценки трудоемкости раскрытия ключа.

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

Эллиптические кривые - математический объект, который может быть определен над любым полем (конечным, действительным, рациональным или комплексным). В криптографии обычно используются конечные поля. Эллиптическая кривая есть множество точек (x , y ), удовлетворяющее следующему уравнению:

y 2 = x 3 + ax + b,

а также бесконечно удаленная точка. Для точек на кривой довольно легко вводится операция сложения, которая играет ту же роль, что и операция умножения в криптосистемах RSA и Эль-Гамаля.

В реальных криптосистемах на базе эллиптических уравнений используется уравнение

y 2 = x 3 + ax + b mod p,

где р - простое.

Проблема дискретного логарифма на эллиптической кривой состоит в следующем: дана точка G на эллиптической кривой порядка r (количество точек на кривой) и другая точка Y на этой же кривой. Нужно найти единственную точку x такую, что Y = x G, то есть Y есть х -я степень G.

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

Пока преимущества методов шифрования с открытым ключом не были очевидны. Однако на их основе легко решать задачу выработки общего секретного ключа для сеанса связи любой пары пользователей информационной системы. Еще в 1976 году Диффи и Хеллман предложили для этого протокол открытого распределения ключей. Он подразумевает независимое генерирование каждым из пары связывающихся пользователей своего случайного числа, преобразование его посредством некоторой процедуры, обмен преобразованными числами по открытому каналу связи и вычисление общего секретного ключа на основе информации, полученной в процессе связи от партнера. Каждый такой ключ существует только в течение одного сеанса связи или даже части его. Таким образом, открытое распределение ключей позволяет каждой паре пользователей системы самим выработать свой общий секретный ключ, упрощая тем процедуру распределения секретных ключей. Хотя все не так просто - отсутствие у абонентов перед сеансом связи заблаговременно распределенного общего секретного ключа в принципе не дает им возможности удостовериться в подлинности друг друга при помощи обмена сообщениями по открытому каналу. Например, пересылать ключи можно и по описанному выше алгоритму ЭльГамаля в модификации Шамира, но как убедиться в том, что имеешь дело с партнером, а не перехватчиком? Для подтверждения подлинности каждый из участников секретной сети все же должен иметь собственный секретный ключ, известный только ему и отличающий его от всех других абонентов. В этом случае алгоритмом Диффи-Хеллмана будет обеспечена такая процедура предъявления пароля, что его многократное использование не снижает надежности доказательства подлинности владельца. В результате такие две функции общего секретного ключа, обычно доставляемого по секретному каналу, как защита информации в канале связи от третьей стороны и подтверждение подлинности каждого из абонентов партнеру, разделяются.

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

    Пусть имеются два абонента открытой сети A и B , знающие пару открытых ключей р и d . Кроме того, у A есть секретный ключ х из интервала (1, n ), а у B есть секретный ключ y из того же интервала.

    Абонент A посылает B x mod р , а абонент B посылает A шифровку своего ключа Z"=D**y mod p .

    После этого общий ключ Z они вычисляют как Z=Z"**y =Z""**x .

При помощи специальных приемов время формирования общего ключа в системе Диффи-Хеллмана может быть сокращено в 5 раз по сравнению с системой ЭльГамаля в модификации Шамира, и в 30 раз по сравнению с RSA при том же уровне стойкости. Это, с точки зрения большинства практических приложений, оказывается заметным преимуществом, так как шифрование и расшифровывание по алгоритму RSA примерно в тысячу раз медленнее классических алгоритмов типа DES. Отметим, что для многих применений криптографических систем с открытым ключом время вычислений при криптографических преобразованиях не имеет большого значения. Например, при идентификации пользователей по кредитным карточкам не будет разницы - потребует ли она одну микросекунду или одну секунду. То же относится и к выбору общего ключа шифрования для другой, более быстродействующей, но не обладающей способностью обмена ключами криптографической системы.

Необходимость в системах открытого распределения ключей иметь заранее распространенные из центра индивидуальные секретные пароли для подтверждения подлинности пользователей не выглядит столь уж обременительной задачей, как изготовление и распределение из центра пар секретных ключей для связи абонентов между собой. Срок действия такого пароля может быть существенно больше, чем срок действия ключа для связи, скажем год, а их общее число в сети связи равно числу абонентов. Кроме того, при некоторых видах связи подтверждение подлинности партнера может достигаться за счет узнавания его по физическим признакам. Например, по голосу при телефонной связи или по внешнему виду и голосу при связи по телевизионным каналам. Следует отметить, что распределение ключей с помощью криптографических систем с открытым ключом имеет единственное достоинство - необходимость на каждом узле секретной связи иметь лишь по одному ключу. Для классических же симметричных криптографических систем ключей должно быть столько, сколько у узла абонентов. Вместе с тем, системы с открытым ключом имеют слабые места. Так, если взлом шифровки, содержащей ключ, в классической системе принципиально невозможен, так как открытый текст несмысловой и не содержит избыточной информации, то в системах с открытым ключом у криптоаналитика всегда есть надежда на успех. Далее, если число D общее для всех участников сети, то его компрометация, в виде обнаружения специальных свойств, облегчающих логарифмирование, приведет к компрометации всей сети. Если же D индивидуально для каждой пары абонентов, то, во-первых, из-за обилия ключей проще найти среди них слабый, и, во-вторых, хотя рассылка и хранение несекретных ключей несравнимо легче, чем секретных, но тоже доставляет массу хлопот. Поэтому если у криптографа есть возможность воспользоваться услугами секретного канала, то он всегда предпочтет его открытому распределению ключей.

Из практически действующих сетей связи, использующих систему открытого распределения ключей, наиболее серьезно защищенной является телефонная государственная сеть США на основе аппаратов STU-III. Она начала функционировать в 1987 году и содержит сейчас более 150 тысяч абонентов. В России аналогичная сеть, называемая еще АТС-1 или "вертушкой", тоже надежно защищена, но абонентов там в сотни раз меньше. К началу восьмидесятых годов криптологи пришли к пониманию преимущества так называемых гибридных систем, в которых процедуры шифрования с открытым ключом используются лишь для передачи ключей и цифровой подписи. А информация, которую нужно передать, защищается классическим алгоритмом типа DES, ключ для которого передан с помощью шифрования с открытым ключом. Первым серийным устройством данного типа был Datacryptor фирмы Racal- Milgo, выпущенный в 1979 году. Аппарат управления ключами шифрования Datacryptor предназначен в основном для правительственных сетей связи и аттестован на соответствие английскому стандарту защиты не секретной, но важной информации. В нем предусмотрены сигнализация о нарушениях криптографических требований и извещения об ошибках. В этом аппарате используется алгоритм установления шифрованной связи при помощи выработки и передачи общего секретного ключа по алгоритму RSA. В дальнейшем аппаратов подобного типа для защиты информации было выпущено очень много. Другие примеры использования новых криптографических идей демонстрируют многие коммерческие сети, особенно банковские, такие как SWIFT. Кроме того, система цифровой подписи RSA применяется в аппаратуре проверки соблюдения договора об ограничении ядерных испытаний, разработанной Sandia Laboratories в 1982 году, сети BPMIS и других системах.

Одной из самых сложных задач управления ключами, возни-кающих в криптографии, является формирование общих секретных ключей участников криптосистем. В этом разделе мы кратко позна-комимся с основными способами решения этой задачи, отметим их достоинства, недостатки, сферы возможного применения.
2.2.1. Основные понятия и определения
Протокол распределения ключей (key establishment protocol) - это криптографический протокол, в процессе выполнения которого общий секрет становится доступен двум или более сторонам для по-следующего использования в криптографических целях.
Протоколы распределения ключей подразделяются на два класса: протоколы транспортировки ключей и обмена ключами.
Протоколы транспортировки ключей (key transport) - это про-токолы распределения ключей, в которых один участник создает или другим образом приобретает секрет и безопасным образом передает его другим участникам.
Протоколы обмена ключами (key agreement, key exchange) - это протоколы распределения ключей, в которых общий секрет выраба- тывается двумя или более участниками как функция от информации, вносимой каждым из них (или ассоциированной с ними) таким образом, что (в идеале) никакая другая сторона не может предопределить их общий секрет.
Выделяют две дополнительные формы протоколов распределения ключей. Говорят, что протокол осуществляет обновление ключей (key update), если в протоколе вырабатывается совершенно новый ключ, не зависящий от ключей, выработанных в прошлых сеансах выполнения протокола. Протокол выполняет выработку производ-ных ключей (key derivationJ, если новый ключ «выводится» из уже существующих у участников криптосистемы.
Протоколы распределения ключей можно классифицировать и по другому признаку.
Протоколы с предраспределенньши ключами (key pre-distribu-tion) - протоколы распределения ключей, в которых результирующие ключи полностью определены априори начальным ключевым материалом. К особому виду таких протоколов можно отнести схемы разделения секрета.
Протоколы динамического распределения ключей (dynamic key establishment) - протоколы распределения ключей, в которых ключи, вырабатываемые фиксированной парой (или группой) участников различны в разных сеансах протокола. Этот процесс называют также распределением сеансовых ключей.
Протоколы распределения ключей можно также классифицировать по признаку использования в них симметричных либо асиммет-ричных криптосхем.
Классификация рассматриваемых далее протоколов распределения ключей по перечисленным выше признакам показана в табл. 2.1.
Таблица 2.1. Классификация протоколов распределения ключей Классы протоколов Протоколы распределения ключей Транспортировка ключей Обмен ключами Протоколы, основанные на симметричных криптосхемах Needham - Schroeder, Otway - Rees, Kerbe- ros, трехэтапный протокол Шамира Шарады Меркле Схема Бпома Схемы разде-ления секрета
Классы протоколов Протоколы распределения ключей Транспортировка ключей Обмен ключами Протоколы, основанные на асимметричных крип- тосхемах Needham - Schroeder, Х.509, Beller-Yacobi, SSL Diffie- Hellman, ElGamal, MTl, STS, Gunther Схемы разде-ления секрета Динамическое распределение ключей Протоколы с предраспределен- ными ключами
Протоколы распределения ключей могут строиться как без участия «третьей стороны», так и с ее участием. Доверенная «третья сторона» может выполнять различные функции: сервер аутентификации, центр распределения ключей, центр трансляции ключей, удо-стоверяющий центр и др.