Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Пока неизвестно никаких действительно практичных доказательств того, что п =pq, где р и q - простые числа, конгруэнтные 3 по модулю 4. Однако если п имеет форму/?1, где г и s нечетны, то у числа п сохраняются свойства, которые делают числа Блюма полезными для криптографии. И тогда существует доказательство с нулевым знанием того, что п имеет такую форму.
Предположим, что Алисе известно разложение на множители числа Блюма и, где п обладает рассмотренной выше формой. Вот как она может доказать Бобу, что п имеет такую форму [660].
(1) Алиса посылает Бобу число и, чей символ Якоби равен -1 по модулю п.
(2) Алиса и Боб совместно выбирают случайные биты: Ьи Ъ2,... Ък.
(3) Алиса и Боб совместно выбирают случайные числа: хь х2,... Ху
(4) Для каждого i = 1, 2,... к Алиса посылает Бобу квадратный корень по модулю п для одного из четырех чисел: х„ -х„ их,, - их,. Символ Якоби квадратного корня должен быть равен &,.
Вероятность удачного мошенничества Алисы равна 1/2*
23.12 Слепые подписи
Понятие слепых подписей (см. раздел 5.3) было придумано Дэвидом Чаумом (David Chaum) [317, 323], который также предложил и первую реализацию этого понятия [318]. Она использует алгоритм RSA.
У Боба есть открытый ключ е, закрытый ключ d и открытый модуль п. Алиса хочет, чтобы Боб вслепую, не читая, подписал сообщение от.
(1) Алиса выбирает случайное число к из диапазона от 1 до п. Затем она маскирует от, вычисляя t = mke mod n
(2) Боб подписывает t td = (mke)d mod n
(3) Алиса снимает маскировку с t, вычисляя
s = td/k mod n (4) Результатом является s = md mod n Это можно легко показать
/ s {mh?y s „л (mod й); поэтому <*/ifc = „/м s „/ (mod и).
Чаум придумал целое семейство более сложных алгоритмов слепой подписи [320, 324], называемых неожиданными слепыми подписями. Схемы этих подписей сложнее, но они дают больше возможностей.
23.13 Передача с забыванием
В этом протоколе, предложенном Майклом Рабином (Michael Rabin) [1286], Алиса с вероятностью 50 процентов удается передать Бобу два простых числа,/; и q. Алиса не знает, успешно ли прошла передача (См. раздел 5.5.) (Этот протокол можно использовать для передачи Бобу любого сообщения с 50-процентной вероятностью успешной передачи, если/; и q раскрывают закрытый ключ RSA.)
(1) Алиса посылает Бобу произведение двух простых чисел: n = pq.
(2) Боб выбирает случайное число х, меньшее п и взаимно простое с п. Он посылает Алисе: a = x2 mod n
(3) Алиса, зная/; и q, вычисляет четыре квадратных корня а: х, п-х, у и п-у. Она случайным образом выбирает любой из этих корней и посылает его Бобу.
(4) Если Боб получает у или п-у, он может вычислит наибольший общий делитель х+у и п, которым будет либо/;, либо q. Затем, конечно же, nip = q. Если Боб получает х или п-х, он не может ничего вычислить.
У этого протокола может быть слабое место: возможна ситуация, когда Боб может вычислить такое число а, что при известном квадратном корне а он сможет все время раскладывать я на множители.
23.14 Безопасные вычисления с несколькими участниками
Этот протокол взят из [1373]. Алиса знает целое число i, а Боб - целое число/ Алиса и Боб вместе хотят узнать, что правильно - i<j или i>j, но ни Алиса, ни Боб не хочет раскрыть свое число партнеру. Этот особый случай безопасных вычислений с несколькими участниками (см. раздел 6.2) иногда называют проблемой миллионера Яо [162, 7].
В приводимом примере предполагается, что i nj выбираются из диапазона от 1 до 100. У Боба есть открытый и закрытый ключи.
(1) Алиса выбирает большое случайное число х и шифрует его открытым ключом Боба. с = Ев{х)
(2) Алиса вычисляет c-j и посылает результат Бобу.
(3) Боб вычисляет следующие 100 чисел: уи = DB(c-i+u), для 1<и<100
DB обозначает дешифрирование закрытым ключом Боба.
Он выбирает большое случайное число р. (Размер р должен быть немного меньше х. Боб не знает х, но Алиса может легко сообщить ему размер х.) он вычисляет следующие 100 чисел:
zu = (уи mod/;), для 1<и<100
Далее он проверяет, что для всех u*v
\zu - zM\>2
и что для всех и
0 < zu < p-l
Если это не так, то Боб выбирает другое простое число и пробует снова.
(4) Боб посылает Алисе эту последовательность чисел, соблюдая их точный порядок:
Zh Z2,... Zj, Zj+l + \, Zy+2+1,... ZW0+l, p
(5) Алиса проверяет, конгруэнтен ли г'-ый член последовательности х mod/;. Если это так, она делает вывод, что i<j. В противном случае она решает, что i> j.
(6) Алиса сообщает Бобу свои выводы.
Проверка, которую Боб выполняет на этапе (3), должна гарантировать, что ни одно число не появится дважды в последовательности, генерированной на этапе (4). В противном случае, если za = zb, Алиса узнает, что a <j <Ъ.
Недостатком этого протокола является то, что Алиса узнает результаты вычислений раньше Боба. Ничто не помешает ей завершить протокол на этапе (5), отказавшись сообщать Бобу результаты. Она даже может солгать Бобу на этапе (6).
Дата публикования: 2014-11-18; Прочитано: 457 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!