Скачиваний:
82
Добавлен:
15.06.2014
Размер:
699.64 Кб
Скачать

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

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

1. Метод отметки времени. Он подразумевает фиксацию времени для каждого сообщения. В этом случае каждый пользователь может знать, насколько «старым» является пришедшее сообщение. Дату D и время T следует использовать вместе. Комбинация (D,T) различна для всех сообщений, если они следуют друг за другом с интервалом времени не менее заданного t, а значение T фиксируется с погрешностью менее t / 2. Структура сообщения имеет следующий вид:

Адрес А Адрес В Дата D Время T Информация Электронная подпись

Электронная подпись является функцией A,B,D,T,(информации) и секретного ключа отправителя А. Если значения D и T известны пользователю В, то их можно не передавать, однако электронную подпись необходимо вычислять в зависимости от даты и времени. На приеме пользователь В восстанавливает электронную подпись с учетом всей информации и по ней проверяет подпись.

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

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

Адрес А Адрес В Номер Информация Электронная подпись

N

Электронная подпись является функцией А, В, N и информации. Поскольку некоторые сообщения могут не доходить до получателя, то пользователь В со значением N счетчика (A, B) должен принимать от А сообщение с любым номером N + n, где n > 0, но тогда после этого сообщения с номерами меньше (N + n) приниматься уже не будут. Это означает, что если

71

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

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

Адрес А Адрес В Нонс NB Информация Электронная подпись

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

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

5.2. Криптографические алгоритмы распределения ключей

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

Если y = αγ,, 1 < γ < p-1, где - фиксированный элемент поля GF(p), то γ = logαy над GF(p). Имея γ, легко вычислить y. Обратная задача вычисления γ из y будет достаточно сложной. Если p выбрано достаточно правильно, то извлечение логарифма потребует вычислений, пропорциональных

L(p) = exp { (ln p ln ln p)0.5 }.

72

Алгоритм Диффи-Хеллмана. Для обмена информацией первый пользователь выбирает случайное число x1, равновероятное из целых 1,..., p - 1.

Это число он держит в секрете, а другому пользователю посылает число y1 = αγ mod p .

Аналогично поступает и второй пользователь, генерируя β и вычислив y2, отправляя его первому пользователю. В результате этого они могут вычислять общий секретный ключ k12 = αγ β mod p.

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

Пример. Пусть p = 7, а α = 3. Пользователь А случайным образом выбирает число γ = 3, а пользователь B – число β = 4. Тогда y1=αγ mod p = 33 mod7 = 6, а y2= αβ mod p = =34 mod 7 = 4. Для получения ключа пользователи А и В осуществляют следующие действия: пользователь А берет число y2 и возводит в степень γ = 3, получая в результате k12=y2γ =43 mod 7 = 1; пользователь В берет

число y1 в степень β - k21=y1β mod p = =64 mod 7 = 1. У пользователей А и В появляется общий ключ, равный 1.

Не зная γ и β, злоумышленник может попытаться вычислить k12, зная только перехваченные y1 и y2. Эквивалентность этой проблемы проблеме вычисления дискретного логарифма - есть главный и открытый вопрос в системах с открытым ключом. Простого решения до настоящего времени не найдено. Так, если для прямого преобразования 1000-битных простых чисел требуется 2000 операций, то для обратного преобразования (вычисления логарифма в поле Галуа) потребуется около 1030 операций.

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

5.3. Алгоритмы аутентификации

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

73

Под интерактивной системой доказательств (P,V,S) понимают протокол взаимодействия двух пользователей: P (доказывающий) и V (проверяющий). Пользователь P хочет доказать V, что утверждение S истинно. При этом пользователь V самостоятельно, без помощи P, не может проверить утверждение S (поэтому V и называется проверяющим). Пользователь P может быть и противником, который хочет доказать V , что утверждение S истинно, хотя оно ложно. Протокол может состоять из многих раундов обмена сообщениями между P и V и должен удовлетворять двум условиям:

-полнота – если S действительно истинно, то пользователь P убедит пользователя V признать это;

-корректность – если S ложно, то пользователь P вряд ли убедит пользователя V , что S истинно.

Вопределенной выше системы (P,V,S) не допускалось, что V может быть противником. Если же принять это допущение, протокол аутентификации необходимо дополнить третьим условием:

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

Вкачестве примера рассмотрим протокол, основанный на доказательстве с нулевым разглашением.

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

пользователя А, выбирая числа ν, которые являются квадратичными вычетами mod n (т.е. уравнение λ2 =ν mod n имеет решение и обратное число ν-1 mod n

существует). Число ν объявляется

открытым ключом. Секретный ключ

определяется как наименьшее значение

е =

1

н

mod n

.

 

 

 

Протокол аутентификации выполняется по следующему алгоритму:

1)пользователь А берет случайное число r < n и вычисляет λ = r 2 mod n, после чего посылает его пользователю В;

2)пользователь В посылает пользователю А случайный бит b;

3)если бит равен 0, то пользователь А посылает пользователю В число r.

Если бит равен 1, то посылается y = r ε mod n;

4)если бит был равен 0, то пользователь В убеждается, что λ = r2 mod n, принимая доказательство, что пользователь А знает о необходимости

вычисления λ . Если бит был равен 1, то пользователь В убеждается, что

λ = y2 ν mod n,

принимая доказательство, что пользователь А знает о необходимости

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

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

74

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

Контрольные вопросы и задачи

1.Поясните принципы построения криптографических протоколов.

2.Напишите программу, реализующую алгоритм Диффи-Хеллмана.

3.Рассмотрите, как влияет на метод отметок времени вмешательство в протокол путем перевода часов отправителя вперед на любую величину.

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

5.Определите однонаправленную функцию в алгоритме протокола аутентификации с нулевым доказательством.

6.В чем состоит проблема дискретного логарифма ?

7.Сформулируйте концепцию управления ключами.

8.Составьте общую модель жизненного цикла ключа.

75