Несколько подписей

Что если несколько человек захотят подписать один и тот же документ ? Проще всего, чтобы они подписали его порознь, но рассматриваемая схема подписи делает это лучше . Пусть Алиса и Боб подписывают документ, а Кэрол проверяет подписи, но в процесс подписания может быть вовлечено произвольное количество людей . Как и раньше, Алиса и Боб обладают уникальными значениями /иВ: (JA,BA) и (JB,BB). Значения п и v являются об­щими для всей системы.

(1) Алиса выбирает случайное целое гА, находящееся в диапазоне от 1 до и-1. Она вычисляет ТА = г/ mod n и посылает ТА Бобу.

(2) Боб выбирает случайное целое гв, находящееся в диапазоне от 1 до и-1. Он вычисляет Тв = г/ mod n и по­сылает Тв Алисе.

(3) Алиса и Боб, каждый вычисляет Т= (ТАВ) mod п.

(4) Алиса и Боб, каждый вычисляет d = ЩМ,Т), где М - подписываемое сообщение, а Щх) - однонаправлен­ная хэш-функция. Значение d, полученное с помощью хэш-функции, должно быть в диапазоне от 0 до v-1 [1280]. Если выход хэш-функции выходит за этот диапазон, он должен быть приведен по модулю v.

(5) Алиса вычисляет DA = rABAd mod n и посылает DA Бобу.

(6) Боб вычисляет DB = rBBBd mod n и посылает DB Алисе.

(7) Алиса и Боб, каждый вычисляет D = DA DB mod п. Подпись состоит из сообщения М, двух вычисленных значений, d and D, и атрибутов обоих подписывающих: JA и JB.

(8) Кэрол вычисляет J = JA JB mod n.

(9) Кэрол вычисляет Т = Dvj mod п. Затем она вычисляет d' = Н(М,Т). Если d = d', то множественная под­пись действительна.

Этот протокол может быть расширен на любое количество людей. Для этого подписывающие сообщение люди должны перемножить свои значения Г, на этапе (3), и свои значения Д на этапе (7). Чтобы проверить множественную подпись, нужно на этапе (8) перемножить значения У, подписывающих (8). Либо все подписи правильны, либо существует по крайней мере одна неправильная подпись .


21.3 SCHNORR

Безопасность схемы проверки подлинности и подписи Клауса Шнорра [1396,1397] опирается на трудность вычисления дискретных логарифмов. Для генерации пары ключей сначала выбираются два простых числа, р и q так, чтобы q было сомножителем р-1. Затем выбирается а, не равное 1, такое что aq = 1 (mod/;). Все эти числа могут быть свободно опубликованы и использоваться группой пользователей .

Для генерации конкретной пары ключей выбирается случайное число, меньшее д. Оно служит закрытым ключом, s. Затем вычисляется открытый ключ v = ds mod/;.