Указанный подход порождает своего рода замкнутый круг: чтобы разделить секрет (передаваемое сообщение) отправитель и получатель уже должны обладать общим секретом (ключом шифрования). Раньше данная проблема решалась некриптографическим методом -- передачей ключа по физически защищенным от прослушивания каналам связи (рис. 1). Однако создание подобного канала и поддержание его в оперативной готовности на случай экстренной необходимости передачи ключа является довольно трудоемким и затратным делом.

Рис. 1.

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

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

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


Рис. 2.

Проблемы асимметричной криптографии

На сегодняшний день асимметричная криптография вполне успешно решает задачу распределения ключей по открытым каналам связи. Тем не менее существует несколько проблем, вызывающих определенное опасение за ее будущее. Стойкость всех схем асимметричной криптографии основана на невозможности эффективного вычислительного решения ряда таких математических задач (так называемых NP-проблем), как факторизация (разложение на множители) больших чисел и логарифмирование в дискретных полях большого размера. Но указанная невозможность является всего лишь предположением, которое в любой момент может быть опровергнуто, если будет доказана противоположная ему гипотеза, а именно NP=P. Это привело бы к краху всей современной криптографии, так как задачи, на нерешаемости которых она базируется, достаточно тесно связаны, и взлом даже одной криптосистемы будет означать взлом большинства других. В этом направлении ведутся интенсивные исследования, однако проблема до сих пор остается открытой.

Другая угроза современным криптосистемам исходит от так называемых квантовых компьютеров -- устройств обработки информации, построенных на принципах квантовой механики, идея которых впервые была предложена известным американским физиком Р. Фейнманом. В 1994 г. П. Шор предложил алгоритм факторизации для квантового компьютера, который позволяет разложить число на множители за время, зависящее полиномиальным образом от размера числа . А в 2001 г. этот алгоритм был успешно реализован на созданном специалистами фирмы IBM и Стэнфордского университета первом действующем макете квантового вычислителя .

По оценкам специалистов, квантовый компьютер, способный взломать криптосистему RSA, может быть создан примерно через 15-25 лет.

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

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

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

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

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

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

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

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

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

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

Лекция 6: Управление криптографическими ключами. Криптографические протоколы.

Вопросы:

1. Криптографические протоколы.

2. Распределение секретных ключей.

3. Распределение открытых ключей.

4. Распределение секретных ключей с помощью системы с открытым ключом.

1 Криптографические протоколы.

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

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

· при игре в карты;

· при заказе товаров по телефону.

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

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

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

· Алиса – первый участник.

· Боб – второй участник.

· Кэрол – участник в трехсторонних протоколах.

· Дэйв – четырехсторонний протокол.

· Ева – перехватчик сообщений.

· Мэллори – активный взломщик.

· Трэнт – доверенный посредник.

· Уолтер –надзиратель (стережет Алису и Боба).

· Пэгги – претендент (пытается что-то доказать).

· Виктор – верификатор (проверяет Пэгги).

Различают:

· самодостаточные протоколы ;

· протоколы с посредником ;

· протоколы с арбитром.

В самодостаточных протоколах честность сторон гарантируется самим протоколом. Для выполнения протокола не нужна третья сторона. Отсутствие споров обеспечивает конструкция протокола. Это лучший тип протокола, но, к сожалению, такие протоколы применимы не для всякой ситуации.

Алиса Боб

Протоколы с посредником.

Посредником называют незаинтересованную третью сторону, которой доверено довести до конца исполнение протокола. «Незаинтересованность» означает, что посреднику безразличны как результат исполнения протокола, так и любой его участник. Все участники протокола воспринимают слова посредника как истину, все его действия признают правильными.

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


Протоколы с арбитром.


Арбитр – посредник особого типа. Это незаинтересованная и доверенная третья сторона. В отличие от посредника он не обязательно участвует в исполнении каждого протокола, а только в том случае, когда между сторонами возникают разногласия.

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

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

Организация связи с помощью симметричной криптографии.

Модель симметричной криптосистемы:

1. Алиса и Боб выбирают криптосистему.

2. Алиса и Боб выбирают ключ.

3. Алиса шифрует открытый текст сообщения, используя алгоритм шифрования и ключ.

4. Алиса посылает шифротекст Бобу.

5. Боб расшифровывает шифротекст, используя ключ и получая открытый текст.

Ева, находясь между Алисой и Бобом, может подслушать передачу только на этапе 4, тогда ей придется подвергнуть шифртекст криптоанализу. Это пассивная атака с использованием только шифротекста.

Ева может подслушать этапы 1 и 2. В хорошей криптосистеме безопасность зависит от знания ключа. Поэтому в криптографии так важно управление ключами.

Активный взломщик Мэллори может пойти дальше. На этапе 4 он может нарушить линию связи. Либо перехватить сообщение Алисы и заменить его собственным. У Боба нет никакой возможности распознать, что сообщение отправлено не Алисой.

Алиса или Боб могут передать копию ключа Еве и т.д.

Подводя итоги, перечислим недостатки симметричных криптосистем :

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

2. При получении ключа возможно создание ложных сообщений.

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

n пользователей - n (n – 1) / 2 – ключей,

10 пользователей - 45 ключей,

100 пользователей - 4950 ключей и т.д.

Организация связи с помощью криптографии с открытым ключом.

1. Алиса и Боб договариваются использовать криптосистему с открытым ключом.

2. Боб посылает Алисе свой открытый ключ.

3. Алиса шифрует свое сообщение, используя открытый ключ Боба, и отсылает его Бобу.

4. Боб расшифровывает сообщение своим закрытым ключом.

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


2. Распределение секретных ключей.

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

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

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

1. Ключ выбран стороной А и физически доставлен В.

2. Ключ выбирает третья сторона и физически доставляет А и В.

3. Одна из сторон передает новый ключ в зашифрованном виде, используя старый ключ.

4. Третья сторона С доставляет ключ А и В по защищенным каналам связи, т.е. используется некий Центр распределения ключей (ЦРК).

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

Рассмотрим п.4.

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

Главных ключей требуется N (по числу пользователей). Их распределяют некриптографическим способом (физической доставкой адресату).

Сценарий распределения ключей (Централизованная схема).

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

При этом пользователь А имеет секретный ключ К a , известный только ему и ЦРК, а пользователь В имеет К b (К a и К b –главные ключи, К s – одноразовый сеансовый ключ).

Обмен информацией происходит следующим образом:

1. Пользователь А посылает запрос в ЦРК на получение сеансового ключа для защиты связи с В.

Посылаемый запрос должен включать:

- информацию, позволяющую однозначно определить А и В (ID A , ID В );

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

2. ЦРК отвечает на запрос пользователя А, шифруя ответ ключом К a (главным А). Единственным пользователем, кто сможет прочесть ответ, является А (следовательно, А уверен, что сообщение пришло от ЦРК).

Сообщение-ответ включает следующие элементы:

· Предназначенные для А :

S (для связи А с В).

- Запрос с оказией N 1 , чтобы пользователь А мог сопоставить ответ с запросом.

Таким образом, А может удостовериться что его запрос не был изменен на пути в ЦРК, а оказия не позволяет перепутать ответ на данный запрос с ответом на предыдущие запросы.

· Предназначенные для В .

Одноразовый сеансовый ключ К s .

Идентификатор пользователя А - ID A (например, сетевой адрес А).

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

E Ka [ K S ||Запрос|| N 1 || E Kb (K S , ID A )]

3. Пользователь А сохраняет свой сеансовый ключ и пересылает стороне В информацию от ЦРК, предназначенную для В.

Пользователь В получает К s и знает, что полученная информация пришла от ЦРК (так как она зашифрована К В, который знают только В и ЦРК).

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

4. Используя полученный сеансовый ключ К s пользователь В посылает пользователю А новую оказию N 2 .

5. С помощью К s пользователь А в ответ возвращает f (N 2 ). Это необходимо, чтобы убедить В в том, что первоначально полученное им сообщение не было воспроизведено злоумышленником.

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


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

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

Децентрализованная схема распределения ключей.

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


1) А посылает запрос на получение К s + оказия N 1 .

2) В отвечает, шифруя ответ с использованием общего у А и В главного ключа Е МК m .

3) А возвращает f (N 2 ), шифруя с помощью К s .

3. Распределение открытых ключей.

Одной из главных сфер применения схемы шифрования с открытым ключом является решение проблемы распределения ключей. Имеется две совершенно различные области использования шифрования с открытым ключом в этой сфере:

1. распределение открытых ключей;

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

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

1. публичное объявление;

2. публично доступный каталог;

4. сертификаты открытых ключей.

1)Публичное объявление открытых ключей (Неконтролируемое распределение) .

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

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

2)Публично доступный каталог (Централизованная схема).

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

1. Уполномоченный объект, поддерживающий каталог с записями вида {имя, открытый ключ} для каждого из участников.

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

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

4. Периодически публикуется весь каталог или обновления к нему.

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

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

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

(1) Инициатор А посылает сообщение с меткой даты/времени (оказией N 1 ) авторитетному источнику открытых ключей с запросом о текущем открытом ключе участника В.

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

· Открытый ключ участника В , KU b ;

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


· Оригинальную метку даты/времени (оказия N 1 ), чтобы отправитель А мог удостовериться, что это ответ именно на данный запрос.

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

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

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

(6) Респондент В посылает сообщение инициатору А, шифрованное с помощью KU A и содержащее оказию отправителя А (N 1 ), а также новую оказию, сгенерированную участником В (N 2 ). Присутствие N 1 в сообщении (6) убеждает участника А в том, что отправителем полученного сообщения был В.

(7) Инициатор А возвращает N 2 шифрованное с помощью открытого ключа участника В, чтобы тот мог убедиться в том, что отправителем ответа является А.

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

4) Сертификаты открытых ключей .

Альтернативный подход предложил Конфельдер. Он основан на сертификатах.

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

Требования к системе :

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

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

4. Деннинг добавил следующее требование – любой участник должен иметь возможность проверить срок действия сертификата.


Рис. Обмен сертификатами открытых ключей.

Каждый участник обращается к АИС, предоставляя открытый ключ и запрашивая для него по защищенной форме связи сертификат.

АИС пересылает сертификаты С А и С В, содержащие 1) время действия сертификата; 2)идентификатор владельца; 3)открытый ключ владельца сертификата. Сертификаты зашифрованы с помощью личного ключа авторитетного источника.

А может переслать сертификат любому участнику.

Получатель использует открытый ключ KU auth АИС, чтобы прочитать сертификат. Это дает гарантию, что сертификат пришел именно от него.

D KU [ C A ]= D KU [ E KR [ T , ID A , KU A ]]=(T , ID A , KU )

4. Распределение секретных ключей с помощью системы с открытым ключом.

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

1)Схема Меркла (самодостаточный протокол)

Если инициатор А намерен обменяться данными с пользователем В, для этого предполагается следующая процедура:


1. Сторона А генерирует пару открытый/личный ключи { KU A , KR A } и передает сообщение стороне В, содержащее KU A и идентификатор отправителя А, ID A .

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

3. Пользователь А вычисляет D KRa [ E KUa [ K S ]], чтобы восстановить секретный ключ. Поскольку только участник А может дешифровать это сообщение, только участники обмена А и В будут знать значение K S .

Теперь обе стороны, А и В, могут использовать связь, защищенную традиционным шифрованием с сеансовым ключом K S . По окончанию обмена данными и А, и В выбрасывают K S . Несмотря на простоту, этот протокол весьма привлекателен.

Достоинство : Никаких ключей не существует перед началом связи и никаких ключей не остается после завершения связи. Поэтому риск компрометации минимален . В то же время связь оказывается защищенной от подслушивания.

Недостаток : Этот протокол уязвим в отношении активных атак . Если противник Е имеет возможность внедрения в канал связи, то он может скомпрометировать связь без того, чтобы обнаруженным, следуюшим образом.

1. Участник А генерирует пару открытый/личный ключи { KU A , KR A KU A и идентификатор участника А, ID A .

2. Противник Е перехватывает сообщение, создает собственную пару открытый/личный ключи { KU Е , KR Е } и передает сообщение адресату В, содержащее KU Е || ID A .

3. В генерирует секретный ключ K S и передает E KUe [ K S ].

4. Противник Е перехватывает это сообщение и узнает K S , вычисляя D KRe [ E KUe [ K S ]].

5. Противник Е передает участнику А сообщение E KU а [ K S ].

В результате оба участника, А и В, будут знать K S , но не будут подозревать, что K S также известен и противнику Е. Таким образом, этот простой протокол оказывается полезным только в том случае, когда единственной возможной угрозой является пассивной перехват сообщений .

2)Распределение секретных ключей с обеспечением конфиденциальности и аутентификации.

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


(1) Сторона А использует открытый ключ стороны В, чтобы переслать стороне В шифрованное сообщение, содержащее идентификатор участника А (ID A ) и оказию (N 1 ), используемую для идентификации данной конкретной транзакции.

(2) Пользователь В дешифрует (1) с использованием KR В . Пользователь В посылает сообщение пользователю А, зашифрованное с помощью KU А и содержащее полученную от него оказию (N 1 ) и новую оказию (N 2 ). Ввиду того, что только участник В мог дешифровать сообщение (1), присутствие N 1 в сообщении (2) убеждает участника А в том, что респондентом является сторона В.

( 3) Сторона А возвращает N 2 , шифруя сообщение открытым ключом стороны В, чтобы гарантировать ей, что его респондентом является сторона А.

(4) Участник А выбирает секретный ключ K S и посылает участнику В сообщение M = E KUb [ E KRa [ K S ]]. Шифрование этого сообщения открытым ключом стороны В гарантирует, что только участник В сможет прочитать его, а шифрование личным ключом участника А – что только участник А смог послать его.

(5) Сторона В вычисляет В KU а [ E KRb [ K S ]], чтобы восстановить секретный ключ.

При обмене секретными ключами эта схема гарантирует как конфиденциальность, так и аутентификацию.

3) Гибридная схема (трехуровневая).

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

· Скорость выполнения процедуры .

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

· Обратная совместимость .

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

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

5. Обмен ключами по схеме Диффи-Хеллмана.

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

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

Криптостойкость алгоритма Диффи-Хеллмана опирается на трудность вычисления дискретных логарифмов . Формально дискретный логарифм можно определить следующим образом. Сначала определяется первообразный корень простого числа p – число а, степени которого порождают все целые числа от 1 до p -1. Это означает, что если а является первообразным корнем простого числа p , то все числа

a mod p, a 2 mod p,…, a p-1 mod p

должны быть разными и представлять все целые числа от 1 до p -1 в некоторой перестановке.

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

Пользователь А выбирает случайное целое число Х А < q и вычисляет Y A =а XA mod q . Точно так же пользователь В независимо выбирает случайное целое число X B < q и вычисляет Y B = a XB mod q . Каждая сторона сохраняет значение Х в тайне и делает значение Y свободно другой стороне. Пользователь А вычисляет ключ по формуле К = (Y B ) XA mod q , а пользователь В по формуле К = (Y А ) X В mod q . Эти две формулы вычисления дают одинаковые результаты .

Итак, обе стороны обменялись секретными ключами. А поскольку при этом Х А и Х В были только в личном использовании и поэтому сохранились в тайне, противнику придется работать только с q , a , Х А,Х B . Таким образом, ему придется вычислять дискретный логарифм, чтобы определит ключ. Например, чтобы определить ключ.

После этого он сможет вычислить ключ К точно так же, как это делает пользователь В.

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


Противник знает: q , а, Y А , Y В. Чтобы определить ключ, необходимо вычислить дискретный логарифм.

Аннотация: В предыдущих лекциях мы обсуждали криптографию с симметричными ключами и с асимметричными ключами. Однако мы еще не обсудили, как распределяются и обслуживаются ключи засекречивания в криптографии с симметричными ключами и открытые ключи в криптографии с асимметричными ключами. Эта лекция затрагивает эти две проблемы. Во-первых, мы поговорим о распределении симметричных ключей, с использованием третьего лица, которому доверяют. Во-вторых, мы покажем, как две стороны могут установить симметричный ключ между собой, не используя третье лицо, которому доверяют. В-третьих, мы рассмотрим систему Цербер (Kerberos), центры распределения ключей KDC и протокол определения подлинности объекта. В-четвертых, мы обсудим сертификацию общедоступных ключей, используя центры сертификации (CA), на основе рекомендаций X.509. Наконец, мы кратко рассмотрим идею относительно Инфраструктуры Общедоступного ключа (PKI) и расскажем о некоторых из ее режимов работы.

5.1. Распределение с симметричными ключами

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

Если Алиса должна обмениваться конфиденциальными сообщениями с N людьми, она нуждается в N различных ключах. А что, если N людей должно общаться друг с другом? Тогда необходимое общее количество ключей равно N (N - l) . Если мы позволяем Алисе и Бобу использовать два одинаковых ключа для двунаправленной связи для обоих направлений, тогда нужно только N (N - 1)/2 ключей. Это означало бы, что если один миллион человек связывается друг с другом, каждый человек имеет почти один миллион различных ключей. Всего необходим почти один триллион ключей. Это называется N -проблемой, потому что число требуемых ключей для N объектов - N 2 .

Число ключей - не единственная проблема; распределение ключей - другая беда. Алиса и Боб хотят связаться между собой. Им нужен способ обмена ключами засекречивания. Если Алиса хочет связаться с одним миллионом человек, как она может обменяться одним миллионом ключей с одним миллионом человек? Использование Internet - явно не безопасный метод . Очевидно, что мы нуждаемся в эффективном способе поддерживать и распределять ключи засекречивания.

Центр Распределения Ключей: KDC

Практическое решение - привлечение третьего лица, которому доверяют. Оно называется здесь центром распределения ключей (KDC - Key-Distribution Center) . Чтобы уменьшать число ключей, каждый человек устанавливает открытый ключ засекречивания с KDC , как показано на рис. 5.1 .


Рис. 5.1.

Ключ засекречивания установлен между KDC и каждым членом сообщества. Алиса имеет ключ засекречивания с KDC , который мы называем K Alice . Боб имеет ключ засекречивания с KDC , который мы называем K Bob . Теперь вопрос - то, как Алиса может передать конфиденциальное сообщение Бобу. Процесс следующий:

  1. Алиса передает запрос KDC - заявление, что она нуждается в сеансе (временно) и ключе засекречивания между собой и Бобом.
  2. KDC сообщает Бобу о запросе Алисы.
  3. Если Боб соглашается, между ними создается ключ сеанса .

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

Когда число людей, использующих KDC (Центр распределения ключей ), увеличивается, система становится неуправляемой и срабатывает ее узкое место - число ключей может кончиться. Чтобы решить проблему, мы должны иметь много KDC . Мы можем разделить мир на домены. Каждый домен может иметь один или более KDCs (для резервной избыточности в случае отказа). Теперь, если Алиса хочет передать конфиденциальное сообщение Бобу, который принадлежит к другому домену, она входит в контакт со своим KDC , который, в свою очередь, входит в контакт с KDC в домене Боба. Два KDCs могут создать ключ засекречивания между Алисой и Бобом.