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

(1) Боб генерирует два случайных числа, a и b, и вычисляет c = 7Tmagb mod p и посылает результат Алисе.

(2) Алиса генерирует случайное число k и вычисляет h1 = cgk mod p и h2 = h1z mod а затем посылает оба числа Бобу.

(3) Боб посылает Алисе a и b.

(4) Алиса проверяет, что c = 7Tmagb mod p. Она пос1лает k Бобу.

(5) Боб проверяет, что 1 = 7Tmagb+k mod p, и что h2 = yrarsaub+k mod p.

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

Схемы неотрицаемых подписей можно объединить со схемами разделения секрета, создав распределенные преобразуемые неотрицаемые подписи [1235]. Кто-нибудь может подписать сообщение, а затем распределить возможность подтверждения правильности подписи. Он может, например, потребовать, чтобы в протоколе убеждения Боба в правильности подписи участвовали трое из пяти обладателей возможность подтверждения пр а-вильности. В [700, 1369] предложены улучшения, позволяющие отказаться от необходимости доверенного лица - распределителя.

23.5 Подписи, подтверждаемые доверенным лицом

Вот как Алиса может подписать сообщение, а Боб проверить его так , чтобы и Кэрол немного позже могла доказать Дэйву правильность подписи Алисы (см. раздел 4.4) [333].

Сначала опубликовываются большое простое число p и примитивный элемент g, которые будут совместно использоваться группой пользователей. Также опубликовывается n, произведение двух простых чисел. У Кэрол есть закрытый ключ z и открытый ключ h = gx mod p.

В этом протоколе Алиса может подписать m так, чтобы Боб мог проверить правильность ее подписи, но не мог убедить в этом третью сторону.

(1) Алиса выбирает случайное x и вычисляет a = gx mod p

b = hx mod p

Она вычисляет хэш-значение m, H(m), и хэш-значение объединения a и b, H(a,b), а затем j = (H(m) © H(a,b))1/3 mod n и посылает a, b и j Бобу.

(2) Боб выбирает два случайных числа, s и t, меньших p, и посылает Алисе c = gsht mod p

(3) Алиса выбирает случайное q, меньшее p, и посылает Бобу d = gq mod p

e = (cd)x mod p

(4) Боб посылает Алисе s и t.

(5) Алиса проверяет, что gsht - c (mod

затем она посылает Бобу q.

(6) Боб проверяет d - gq mod p

e/aq - asbt (mod ,p)

(H(m) © H(a,b)) = j1/3 mod n

Если все тождества выполняются, то Боб считает подпись истинной .

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



(1) Дэйв выбирает случайные м и v, меньшие p, и пос1лает Кэрол k = g"av mod p

(2) Кэрол выбирает случайное w, , меньшее p, и посылает Дэйву l = gw mod p

y = (k/)z mod p

(3) Дэйв посылает Кэрол м и v.

(4) Кэрол проверяет, что g"av = k (mod

Затем она посылает Дэйву w.

(5) Дэйв проверяет, что gw = / (mod

y/hw = h"bv (mod

Если все тождества выполняются, то Дэйв считает подпись истинной.

В другом протоколе Кэрол может преобразовать протокол доверенного лица в обычную цифровую подпись . Подробности в [333].

23.6 Вычисления с зашифрованными данными

Проблема дискретного логарифма

Существует большое простое число p и генератор g. Алиса хочет для конкретного x найти такое e, для которого

ge = x (mod p)

Это трудная проблема, и Алисе не хватает вычислительных мощностей для вычисления результата . У Боба есть такие возможности - он представляет правительство, или мощный вычислительный центр, или еще какую-нибудь влиятельную организацию. Вот как Алиса может получить помощь Боба, не раскрыв ему x [547, 4]:

(1) Алиса выбирает случайное число r, меньшее p.

(2) Алиса вычисляет x = xgr mod p

(3) Алиса просит Боба решить ge = x (mod

(4) Боб вычисляет e и посылает его Алисе.

(5) Алиса восстанавливает e, вычисляя e = (e - r) mod (p - 1)

Аналогичные протоколы для проблем квадратичных остатков и примитивных корней приведены в [3, 4]. (См. также раздел 4.8.)

23.7 Бросание "честной" монеты

Следующие протоколы позволяют Алисе и Бобу бросать честную монету в сети передачи данных (см. раздел 4.9) [194]. Это пример бросания монеты в колодец (см. раздел 4.10). Сначала только Боб узнает результат броска и сообщает его Алисе. Затем Алиса может проверить, что Боб сообщил правильный результат броска .

Бросание "честной"монеты с помощью квадратных корней

Подпротокол бросания честной монеты:

(1) Алиса выбирает два больших простых числа, p и q, и посылает их произведение n Бобу.

(2) Боб выбирает случайное положительное целое число r, меньшее n/2. Боб вычисляет z = г2 mod n



и посылает z Алисе.

(3) Алиса вычисляет четыре квадратных корня z (mod n). Она может сделать это, так как она знает разложение n на множители. Назовем их +x, -x, +y и -y. Обозначим как x меньшее из следующих двух чисел:

x mod n

-x mod n

Аналогично, обозначим как у меньшее из следующих двух чисел: y mod n -у mod n

Обратите внимание, что r равно либо x, либо y.

(4) Алиса делает пытается угадать, какое из значений равно r - x или у, и пос1лает свою догадку Бобу.

(5) Если догадка Алисы правильна, результатом броска монеты является "орел", а если неправильна -"решка". Боб объявляет результат броска монеты.

Подпротокол проверки:

(6) Алиса посылает p и q Бобу.

(7) Боб вычисляет x и y и посылает их Алисе.

(8) Алиса вычисляет r.

У Алисы нет возможности узнать r, поэтому она действительно угадывает. Она на этапе (4) сообщает Бобу только один бит своей догадки, не давая Бобу получить и x, и y. Если Боб получит оба этих числа, он сможет изменить r после этапа (4).

Бросание "честной" монеты с помощью возведения в степень по модулюp

В этом протоколе в качестве однонаправленной функции используется возведение в степень по модулю пр о-стого числа p [1306]:

Подпротокол бросания честной монеты:

(1) Алиса выбирает простое число p так, чтобы множители p-1 были известны, и среди них было по крайней мере одно большое простое число.

(2) Боб выбирает два примитивных элемента, h и t, в GF(p). Он посылает их Алисе.

(3) Алиса убеждается, что h и t являются примитивными элементами, и затем выбирает случайное число x, взаимно простое с p-1. Затем она вычисляет одно из двух значений:

у = hx mod p, или у = tx mod p

Она посылает y Бобу.

(4) Боб пытается угадать, вычислила Алиса у как функцию h или как функцию t, и посылает свое предположение Алисе.

(5) Если догадка Боба правильна, результатом бросания монеты является "орел", в противном случае -"решка". Алиса объявляет результат броска монеты.

Подпротокол проверки:

(6) Алиса раскрывает Бобу значение x. Боб вычисляет hx mod p и tx mod p, убеждаясь, что Алиса играла честно и проверяя результат броска. Он также проверяет, что x и p-1 - взаимно простые числа.

Чтобы Алиса могла смошенничать, она должна знать два целых числа, x и x, для которых выполняется hx-tx mod p. Для того, чтобы узнать эти значения, ей нужно вычислить :

logth =xx-1 mod p-1 и logth =xx-1 mod p-1.

Это трудные проблемы.

Алиса смогла бы сделать это, если бы она знала logth, но Боб выбирает h и t на этапе (2). У Алисы нет другого способа кроме, как попытаться вычислить дискретный логарифм . Алиса может также попытаться смоше н-ничать, выбрав x, которое не является взаимно простым с p-1, но Боб обнаружит это на этапе (6).

Боб может смошенничать, если h и t не являются примитивными элементами в поле in GF(p), но Алиса сможет легко проверить это после этапа ( 2), так как ей известно разложение p-1 на простые множители.



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