Электронные платежи с помощью цифровых денег(раздел практика электронной коммерции)
Центральным понятием протоколов электронных платежей с помощью цифровых денег протоколов являются понятия “цифрового конверта” и подписи “вслепую”. Схемы подписи “вслепую” позволяют получать документы, подписанные претендентом, который не знает содержания самих этих документов. Если претендентом на выставление
подписи является банк, а подписываемые им документы – это чеки на
предъявителя, то для нужд финансовой криптографии такие подписи
обеспечивают два важных аспекта:
? подпись банка на чеке является правильной и служит свидетельством того, что именно он заверил чек; такая подпись убедит банк в
том, что именно он заверил этот чек, когда тот впоследствии будет ему
предъявлен; разумеется, подпись “вслепую” обладает всеми остальными
свойствами электронной цифровой подписи;
? банк не сможет связать заверенный им чек с моментом его
подписания; даже если предположить, что банк фиксирует все подписи
“вслепую”, по предъявленному чеку он не сможет определить, кто и когда обратился к нему с просьбой подписать данный конкретный чек.
Ниже приведен базовый вариант платежной системы с цифровыми
деньгами (рис. NN).
Покупатель подготавливает чек с указанной на нем суммой, которую он хочет снять со своего счета в банке. Обозначим в протоколе этот
чек буквой m. Покупателю надо получить подпись на чеке, но так, чтобы
банк не увидел самого чека и не смог пометить его.
Для этого покупатель подготавливает большое число чеков на
нужную сумму и запечатывает их в конверты, а затем отправляет все их
в банк. Банк вскрывает все конверты, кроме одного, и убеждается в корректности чеков. Тогда он подписывает последний конверт, не распечатывая его, и списывает со счета покупателя требуемую сумму. Если покупатель заранее положит во все конверты копировальную бумагу, то
подпись банка автоматически окажется на чеке. Таким образом, банк
подписал чек, не видя его и не имея возможности пометить. Криптографическое преобразование с использованием схемы RSA, обеспечивающее процедуру формирования конверта и подписи выглядит следующим
образом. Пусть n – модуль шифрования, а e – открытый ключ банка.
Покупатель генерирует столько случайных чисел r , сколько конвертов
он будет отсылать в банк (чем больше конвертов, тем лучше). Далее каждое r шифруется с помощью открытого ключа банка и умножается на
значение чека: c = m? r e (mod n) . Для того чтобы вскрыть каждый из конвертов, банк должен обратиться к покупателю с просьбой сообщить ему
значение множителя r , так как вскрытие конверта означает получение
значения m = c r e (mod n) . Поэтому покупатель может быть уверен, что банк
не сможет вскрыть ни одного конверта без его ведома. Один из конвертов банк не вскрывает, а подписывает cd = md ? (r e )d (mod n) = md ? r(mod n) и отсылает назад покупателю. |