Схемы слепой подписи

В отличие от обычных схем цифровой подписи, описанных в разделе 6.3, схемы слепой подписи (иногда называемые схемами подписи вслепую) являются двусторонними протоколами между отправителем А и стороной В, подписывающей документ.

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

Цель слепой подписи состоит в том, чтобы воспрепятствовать подписывающему лицу В ознакомиться с сообщением стороны А, которое он подписывает, и с соответствующей подписью под этим сообщением. Поэтому в дальнейшем подписанное сообщение невозможно связать со стороной А.

Приведем пример применения слепой подписи. Схема слепой подписи может найти применение в тех случаях, когда отправитель А (клиент банка) не хочет, чтобы подписывающая сторона В (банк) имела возможность в дальнейшем связать сообщение m и подпись sB(m) c определенным шагом выполненного ранее протокола.

В частности, это может быть важно при организации анонимных безналичных расчетов, когда сообщение m могло бы представлять денежную сумму, которую А хочет потратить. Когда сообщение m c подписью sB(m) предъявляется банку В для оплаты, банк В не сможет проследить, кто именно из клиентов предъявляет подписанный документ. Это позволяет пользователю А остаться анонимным. Принципы организации системы анонимных безналичных расчетов с использованием так называемой “электронной наличности” (“цифровых денег”) на базе протоколов слепой подписи рассмотрены в.

Для построения протокола слепой подписи необходимы следующие компоненты:

1. Механизм обычной цифровой подписи для подписывающей стороны В. Пусть sB(Х) обозначает подпись стороны В на документе Х.

2. Функции f (×) и g (×) (известные только отправителю) такие, что

g (sB (f (m))) = sm (m),

при этом f (×) - маскирующая (blinding) функция,

g (×) - демаскирующая (unblinding) функция,

f (m) - замаскированное (blinded) сообщение m.

При выборе sB, f и g существует ряд ограничений.

Выберем в качестве алгоритма подписи sB для стороны В схему цифровой подписи RSA (см. п.6.3) с открытым ключом (N, E) и секретным ключом D, причем

N = P * Q - произведение двух больших случайных простых чисел.

Пусть k - некоторое фиксированное целое число, взаимно простое с N, т.е. НОД (N, k) = 1.

Маскирующая функция f: Zn ® Zn

определяется как f (m)= m * kE mod N,

а демаскирующая функция g: Zn ® Zn

определяется как g (m) = k-1m mod N. При таком выборе f, g и s получаем

g (sB (f (m))) = g (sB (m kE mod N)) = g (mD k mod N) = mD mod N = sB (m),

что соответствует требованию 2.

Согласно протоколу слепой подписи, который предложил Д.Чом [121], отправитель А сначала получает подпись стороны В на замаскированном сообщении m*. Используя эту подпись, сторона А вычисляет подпись В на заранее выбранном сообщении m, где 0 £ m £ N-1. При этом стороне В ничего неизвестно ни о значении m, ни о подписи, связанной с m.

Пусть сторона В имеет для подписи по схеме RSA открытый ключ (N, E) и секретный ключ D. Пусть k - случайное секретное целое число, выбранное стороной А и удовлетворяющее условиям 0 £ k £ N-1 и НОД (N, k) = 0.

Протокол слепой подписи Д.Чома включает следующие шаги:

(1) Отправитель А вычисляет замаскированное сообщение m* = m kE mod N и посылает его стороне В.

(2) Подписывающая сторона В вычисляет подпись s* = (m*)D mod N и отправляет эту подпись стороне А.

Сторона А вычисляет подпись s = k-1 s*mod N, которая является подписью В на сообщение m.

Нетрудно видеть, что

(m*)D º (mkE)D º mDk (mod N),

поэтому

k-1 s* º mD k k-1 º mD (mod N).

Д.Чом разработал несколько алгоритмов слепой подписи для создания системы анонимных безналичных электронных расчетов eCash [49, 108].


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: