Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 [ 4 ] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

(5) Алиса расшифровывает сообщение, получая Ra. Если полученная от Боба строка Ra совпадает с той, которую она посылала Бобу на этапе (3), протокол завершается. Теперь стороны могут обмениваться сообщениями, используя K в качестве сеансового ключа .

Усиление EKE

Белловин (Bellovin) и Мерритт (Merritt) предложили улучшение запросно-ответной части алгоритма , которое позволяет избежать возможного вскрытия при обнаружении криптоаналитиком ста рого значения K.

На базовый протокол EKE. На этапе (3) Алиса генерирует другое случайное число SA и посылает Бобу

Ek(Ra, Sa)

На этапе (4), Боб генерирует другое случайное число SB и посылает Алисе ek(Ra. ,Rb,sb)

Теперь Алиса и Боб могут вычислить истинный сеансовый ключ, SA © SB. Этот ключ в дальнейшем используется для сообщений, которыми обмениваются Алиса и Боб, K используется в качестве ключа обмена ключами.

Посмотрим на уровни защиты, предоставляемые EKE. Восстановленное значение S не дает Еве никакой информации о P, так как P никогда не используется для шифрования чего-то такого, что ведет непосредственно к S. Криптоаналитическое вскрытие K также невозможно, K используется только для шифрования случайных данных, а S никогда не шифруется отдельно.

Расширенный EKE

Протокол EKE страдает одним серьезным недостатком: он требует, чтобы обе стороны знали P. В большинстве систем авторизации доступа хранятся значения однонаправленной хэш-функции паролей пользователей, а не сами пароли (см. раздел 3.2). Протокол Расширенный EKE (Augmented EKE, A-EKE) использует в варианте EKE на базе Diffie-Hellman значение однонаправленной хэш-функции пароля пользователя в качестве ключа сверхшифрования. Затем пользователь посылает дополнительное сообщение, основанное на реальном пароле, это сообщение удостоверяет заново выбранный сеансовый ключ .

Вот как это работает. Как и обычно, Алиса и Боб хотят проверить подлинность друг друга и генерировать общий ключ. Они выбирают какую-нибудь схему цифровой подписи, в которой в качестве закрытого ключа может использоваться любое число , а открытый ключ получается из закрытого, а не генерируется отдельно . Прекрасно подходят алгоритмы ElGamal и DSA. Пароль Алисы P (или, может быть, какое-нибудь простое хэш-значение этого пароля) будет использоваться в качестве закрытого ключа и как P.

(1) Алиса выбирает случайный показатель степени Ra и отправляет Ep( grB mod n)

(2) Боб, который знает только P и не может получить из него P, выбирает Rb и посылает Ep( grB mod n)

(3) Алиса и Боб вычисляют общий сеансовый ключ K=grA*rB mod n. Наконец Алиса доказывает, что она сама знает P, а не только P, посылая

Ek(Sp(K))

Боб, который знает K и P, может расшифровать и проверить подпись. Только Алиса могла прислать это сообщение, так как только она знает P. Самозванец, добывший копию файла паролей Боба, может попытаться P, но он не сможет подписать сеансовый ключ.

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

Применения EKE

Белловин и Мерритт предлагают использовать этот протокол для безопасной телефонной связи [109]:

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

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



введения PIN-кода. Так как PIN-код не хранится в телефоне, его невозможно извлечь из украденного экземпляра.

Главная сила EKE состоит в том, что криптография с открытыми ключами и симметричная криптография объединяются и усиливают друг друга:

В общей перспективе EKE работает как зсилишель секрешиосши. То есть, его можно использовать для усиления сравнительно слабых симметричнгх и асимметричнгх систем, используемых вместе . Рассмотрим, например, размер ключа, необходимый для обеспечения безопасности при использовании обмена ключом - показателем степени . Как показали ЛаМачча (LaMacchia) и Одлыжко (Odlyzko) [934], даже модули с размерами, считавшимися безопасными, (а именно, 192 бита) чувствительны к вскрытию, занимающему несколько минут компьютерного времени . Но их вскрытие становится невозможным, если необходимо перед применением вскрытия угадать п ароль.

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

EKE запатентован [111].

22.6 Защишенные переговоры о ключе

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

H(x,y) = H(H(k,x) mod 2m, x), где H(k,x) - обычная функция k и x

Вот как выглядит этот протокол. Алиса и Боб используют общий секретный пароль P и уже обменялись секретным ключом K, используя обмен ключом Dime-Hellman. Они используют P для проверки, что их сеансовые ключи одинаковы (и что Ева не предприняла вскрытие "человек в середине" ), не позволяя Еве получить P.

(1) Алиса посылает Бобу

(2) Боб вычисляет H(P,K) и сравнивает результат со значением, присланным Алисой. Если они совпадают, он посылает Алисе

Я(Я(P,K))

(3) Алиса вычисляет H(H(P,K)) и сравнивает результат со значением, полученным от Боба.

Если Ева пытается выполнить вскрытие "человек в середине", она использует один ключ, K1, общий с Алисой, и другой, K2, общий с Бобом. Чтобы обмануть Боба на этапе (2), ей придется вычислить общий пароль и затем послать Бобу H(P,K2). При использовании обычной хэш-функции она может перебирать часто встреча ю-щиеся пароли, пока не угадает правильный , и затем успешно проникнуть в протокол. Но при использовании предлагаемой хэш-функции, многие пароли дают одно и то же значение при хэшировании с ключом K1. Поэтому, когда она находит совпадение, то скорее всего это неправильный пароль, и в этом случае Боба обмануть не удастся.

22.7 Распределение ключа для конференции и секретная широковещательная передача

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

Алиса может использовать для каждого получателя отличный ключ (секретный или открытый) . Она шифрует сообщение каким-нибудь случайным ключом K. Затем она шифрует копию K каждым из ключей выбранных получателей сообщения. Наконец она широковещательно посылает зашифрованное сообщение , а затем все зашифрованные K. Слушающий передачу Боб либо пытается расшифровать все K своим секретным ключом, пытаясь найти правильный, либо, если Алиса не забыла перечислить получателей своего сообщения, он ищет свое имя, сопровождаемое зашифрованным ключом . Также будет работать и ранее рассмотренная криптография с несколькими ключами.

Другой способ предлагается в [352]. Сначала каждый из получателей договаривается с Алисой об общем для них двоих ключе, который длиннее любого возможного шифрованного сообщения . Все эти ключи должны быть взаимно простыми. Она шифрует сообщение случайным ключом K. Затем она вычисляет одно целое число R, которое по модулю секретного ключа конгруэнтно K, если этот секретный ключ предполагается использовать для расшифровки сообщения, и конгруэнтно нулю в противном сл учае.

Например, если Алиса хочет, чтобы секрет получили Боб, Кэрол и Эллен, но не Дэйв и Фрэнк, она шифрует



сообщение ключом K и затем вычисляет такое R, что R = K (mod KB) R = K (mod Kc) R = 0 (mod KD) R = K (mod Ke) R = 0 (mod KF)

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

Еще один, третий, путь, использующий пороговую схему (см. раздел 3.7), предлагается в [141]. Как и в других способах каждый потенциальный получатель получает секретный ключ . Этот ключ является тенью в еще не созданной пороговой схеме. Алиса сохраняет ряд секретных ключей для себя, внося некоторую непредсказу е-мость в систему. Пусть всего существует k возможных получателей. Тогда для широковещательной передачи M Алиса шифрует M ключом K и делает следующее.

(1) Алиса выбирает случайное число j. Это число призвано замаскировать количество получателей сообщения. Оно не должно быть слишком большим и даже может равняться нулю .

(2) Алиса создает пороговую схему (k + j + 1, 2k + j + 1), в которой: K - это секрет.

Секретные ключи адресатов сообщения служат тенями .

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

(3) Алиса широковещательно передает k + j случайно выбранных теней, ни одна из которых не совпадает с тенями этапа (2).

(4) Каждый из слушателей, принявших широковещательное сообщение, добавляет свою тень к полученным k + j теням. Если добавление своей тени позволяет пользователю вычислить секрет, то ему удалось открыть ключ. В противном случае - не удалось.

Другой подход можно найти в [885, 886, 1194]. И еще один - в [1000].

Распределение ключей для конференции

Этот протокол позволяет группе из n пользователей договориться о секретном ключе, используя только н е-секретные каналы. Группа использует два общих больших простых числа p и q, а также генератор g той же длины, что и q.

(1) Пользователь где , от 1 до n, выбирает случайное число r,, меньшее q, и широковещательно отправляет

z; = gr mod p

(2) Каждый пользователь проверяет, что z, = 1 (mod p) для всех , от 1 до n.

(3) ,-ый пользователь широковещательно передает x, = (z,-+l/z,-.l)r- mod ,p

(4) ,-ый пользователь вычисляет

K = (z,.1) nr- *x,n-1*x,+1n-2* . . . *x,-2 modp

Все вычисления индексов в приведенном протоколе - ,-1, ,-2 и ,+1 - проводятся mod n. По окончании протокола у всех честных пользователей окажется один и тот же K. А все остальные ничего не получат. Однако этот протокол не может устоять перед вскрытием "человек в середине" . Другой протокол, не такой хороший, приведен в [757].

Tateboyashi-Matsuzaki-Newman

Этот протокол распределения ключей подходит для использования в сетях [1521]. Алиса хочет с помощью Трента, KDC, генерировать ключ для сеанса связи с Бобом. Всем участникам известен открытый ключ Трента



0 1 2 3 [ 4 ] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25