Анимация
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

t=(t1* t2* t3* t4* t5) mod ,p

Если это так, KDC признает открытый ключ.

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

Работы Микали [1084, 1085] также содержат последовательность действия для создания честного RSA и для объединения пороговой схемы с честной криптосистемой , позволяющей m доверенным лицам из n восстановить закрытый ключ.

Отказоустойчивая схема Diffie-Hellman

Как и в предыдущем протоколе у группы пользователей есть общие простое число p и генератор g. Закрытым ключом Алисы является s, а ее открытым ключом t = gs mod p.

(1) KDC выбирает случайное число B из диапазона от 0 до p-2 и вручает B с помощью протокола вручения битов (см. раздел 4.9).

Алиса выбирает случайное число A из диапазона от 0 до p-2. Она пос1лает KDC gA mod p.

(2) Пользователь "разделяет" A с каждым доверенным лицом, используя схему подтверждаемого совместного использования секрета (см. раздел 3.7).

(3) KDC раскрывает B Алисе.

(4) Алиса проверяет вручение этапа (1). Затем она устанавливает свой открытый ключ равным t = gA gB mod p

а закрытый ключ равным s = (A + B) mod (p-1)

Доверенные лица могут восстановить A. Так как KDC знает B, этого достаточно для восстановления s. И Алиса не сможет использовать никаких подсознательных каналов для передачи несанкционированной информации. Этот протокол, рассмотренный в [946, 833] в настоящее время патентуется.

23.11 ZERO-KNOWLEDGE PROOFS OF KNOWLEDGE

Доказательство с нулевым знанием для дискретного логарифма

Пегги хочет доказать Виктору, что ей известно x, являющееся решением

Ax - B (mod p)

где p - простое число, а x - произвольное число, взаимно простое с p-1. Числа A, B и p общедоступны, а x хранится в секрете. Вот как Пегги, не раскрывая значения x, может доказать, что оно ей известно (см. раздел 5.1) [338, 337].

(1) Пегги генерирует t случайных чисел, rl, r2, . . . rt, причем все Г; меньше p-1.

(2) Пегги вычисляет h; = Ar mod p для всех значений , и пос1лает их Виктору.

(3) Пегги и Виктор, воспользовавшись протоколом бросания монеты генерируют t битов: b1, b2, . . . bt.

(4) Для всех t битов Пегги выполняет одну из следующих операций :

a) Если b, = 0, она посылает Виктору r,

b) Если b; = 1, она посылает Виктору s; = (г; - Г/) mod (p-1), где j - наименьшее значение индекса, при котором bj = 1

(5) Для всех t битов Виктор проверяет одно из следующих условий:

a) При b; = 0 что Ar - h; (mod p)

b) При b,- = 1 что As - h,-hj-1 (mod ,p)

(6) Пегги пос1лает Виктору Z, где Z = (x - Г/) mod (p-1)

(7) Виктор проверяет, что AZ - Bh/-1 (mod p)



Вероятность удачного мошенничества Пегги равна 1/2.

Доказательство с нулевым знанием для возможности вскрыть RSA

Алиса знает закрытый ключ Кэрол. Может быть она взломала RSA, а может она взломала дверь квартиры Кэрол и выкрала ключ. Алиса хочет убедить Боба, что ей известен ключ Кэрол. Однако она не хочет ни сообщать Бобу ключ, ни даже расшифровать для Боба одно из сообщений Кэрол . Далее приведен протокол с нулевым знанием, с помощью которого Алиса убеждает Боба, что она знает закрытый ключ Кэрол [888]. Пусть открытый ключ Кэрол - e, ее закрытый ключ - d, а модуль RSA - n.

(1) Алиса и Боб выбирают случайное k и т, для которых km = e (mod n)

Числа они должны выбирать случайным образом, используя для генерации k протокол бросания монеты, а затем вычисляя m. Если и k, и m больше 3, протокол продолжается. В противном случае числа выбираются заново.

(2) Алиса и Боб генерируют случайный шифротекст C. И снова они должны воспользоваться протоколом бр о-сания монеты.

(3) Алиса, используя закрытый ключ Кэрол, вычисляет M = Cd mod n

Затем она вычисляет

X = Mk mod n

и посылает X Бобу.

(4) Боб проверяет, что X*" mod n = C. Если это так, то он убеждается в правильности заявления Алисы .

Аналогичный протокол можно использовать для демонстрации возможности вскрытия проблемы дискретн ого логарифма [888].

Доказательство с нулевым знанием того, что n является числом Блюма

Пока неизвестно никаких действительно практичных доказательств того, что n =pq, где p и q - простые числа, конгруэнтные 3 по модулю 4. Однако если n имеет форму prqs, где r и s нечетны, то у числа n сохраняются свойства, которые делают числа Блюма полезными для криптографии . И тогда существует доказательство с нулевым знанием того, что n имеет такую форму.

Предположим, что Алисе известно разложение на множители числа Блюма n, где n обладает рассмотренной выше формой. Вот как она может доказать Бобу, что n имеет такую форму [660].

(1) Алиса посылает Бобу число м, чей символ Якоби равен -1 по модулю n.

(2) Алиса и Боб совместно выбирают случайные биты: b1, b2, . . . bk.

(3) Алиса и Боб совместно выбирают случайные числа: x1, x2, . . . xk.

(4) Для каждого i = 1, 2, . . . k Алиса пос1лает Бобу квадратный корень по модулю n для одного из четырех чисел: xi, -xi, Mxi, - Mxi. Символ Якоби квадратного корня должен быть равен bi.

Вероятность удачного мошенничества Алисы равна 1/2k.

23.12 Слепые подписи

Понятие слепых подписей (см. раздел 5.3) было придумано Дэвидом Чаумом (David Chaum) [317, 323], который также предложил и первую реализацию этого понятия [318]. Она использует алгоритм RSA.

У Боба есть открытый ключ e, закрытый ключ d и открытый модуль n. Алиса хочет, чтобы Боб вслепую, не читая, подписал сообщение т.

(1) Алиса выбирает случайное число k из диапазона от 1 до n. Затем она маскирует т, вычисляя t = mke mod n

(2) Боб подписывает t td = (mke)d mod n

(3) Алиса снимает маскировку с td, вычисляя



s = td/k mod n (4) Результатом является s = md mod n

Это можно легко показать

td - (mke)d - mdk (mod n), поэтому td/k = mdk/k - md (mod n).

Чаум придумал целое семейство более сложных алгоритмов слепой подписи [320, 324], называемых неожиданными слепыми подписями. Схемы этих подписей сложнее, но они дают больше возможностей .

23.13 Передача с забыванием

В этом протоколе, предложенном Майклом Рабином (Michael Rabin) [1286], Алиса с вероятностью 50 процентов удается передать Бобу два простых числа, p и q. Алиса не знает, успешно ли прошла передача (См. раздел 5.5.) (Этот протокол можно использовать для передачи Бобу любого сообщения с 50-процентной вероятностью успешной передачи, если p и q раскрывают закрытый ключ RSA.)

(1) Алиса посылает Бобу произведение двух простых чисел: n = pq.

(2) Боб выбирает случайное число x, меньшее n и взаимно простое с n. Он посылает Алисе: a = x2 mod n

(3) Алиса, зная p и q, вычисляет четыре квадратных корня a: x, n-x, у и n-у. Она случайным образом выбирает любой из этих корней и посылает его Бобу.

(4) Если Боб получает у или n-у, он может вычислит наибольший общий делитель x+у и n, которым будет либо p, либо q. Затем, конечно же, n ; = q. Если Боб получает x или n-x, он не может ничего вычислить.

У этого протокола может быть слабое место : возможна ситуация, когда Боб может вычислить такое число a, что при известном квадратном корне a он сможет все время раскладывать n на множители.

23.14 Безопасные вычисления с несколькими участниками

Этот протокол взят из [1373]. Алиса знает целое число а Боб - целое число j. Алиса и Боб вместе хотят узнать, что правильно - ,</ или ,>/, но ни Алиса, ни Боб не хочет раскрыть свое число партнеру. Этот особый случай безопасных вычислений с несколькими участниками (см. раздел 6.2) иногда называют проблемой миллионера Яо [162, 7].

В приводимом примере предполагается, что , и j выбираются из диапазона от 1 до 100. У Боба есть открытый и закрытый ключи.

(1) Алиса выбирает большое случайное число x и шифрует его открытым ключом Боба. c = Eb(x)

(2) Алиса вычисляет c-j и посылает результат Бобу.

(3) Боб вычисляет следующие 100 чисел: yu = DB(c-,+u), для 1<u<100

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

Он выбирает большое случайное число p. (Размер p должен быть немного меньше x. Боб не знает x, но Алиса может легко сообщить ему размер x.) он вычисляет следующие 100 чисел:

zu = (yu mod p), для 1<u<100

Далее он проверяет, что для всех uv

zu - zj > 2

и что для всех u

0 < zu < /7-1

Если это не так, то Боб выбирает другое простое число и пробует снова.

(4) Боб посылает Алисе эту последовательность чисел, соблюдая их точный порядок:

zl, z2, . . . z/, zj+1 + 1, zj+2+1, . . . z100+1, P



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