6.9. Электронные платежи с помощью цифровых денег
Центральным понятием протоколов электронных платежей с помощью цифровых денег протоколов являются понятия “цифрового конверта” и подписи “вслепую”. Схемы подписи “вслепую” позволяют получать документы, подписанные претендентом, который не знает содержания самих этих документов. Если претендентом на выставление подписи является банк, а подписываемые им документы – это чеки на предъявителя, то для нужд финансовой криптографии такие подписи обеспечивают два важных аспекта:
- подпись банка на чеке является правильной и служит свидетельством того, что именно он заверил чек; такая подпись убедит банк в том, что именно он заверил этот чек, когда тот впоследствии будет ему предъявлен; разумеется, подпись “вслепую” обладает всеми остальными свойствами электронной цифровой подписи;
- банк не сможет связать заверенный им чек с моментом его подписания; даже если предположить, что банк фиксирует все подписи “вслепую”, по предъявленному чеку он не сможет определить, кто и когда обратился к нему с просьбой подписать данный конкретный чек.
Ниже приведен базовый вариант платежной системы с цифровыми деньгами (рис. NN).
Покупатель подготавливает чек с указанной на нем суммой, которую он хочет снять со своего счета в банке. Обозначим в протоколе этот чек буквой m. Покупателю надо получить подпись на чеке, но так, чтобы банк не увидел самого чека и не смог пометить его.
Для этого покупатель подготавливает большое число
чеков на нужную сумму и запечатывает их в конверты, а затем отправляет все их в
банк. Банк вскрывает все конверты, кроме одного, и убеждается в корректности
чеков. Тогда он подписывает последний конверт, не распечатывая его, и списывает
со счета покупателя требуемую сумму. Если покупатель заранее положит во все
конверты копировальную бумагу, то подпись банка автоматически окажется на чеке.
Таким образом, банк подписал чек, не видя его и не имея возможности пометить.
Криптографическое преобразование с использованием схемы RSA, обеспечивающее
процедуру формирования конверта и подписи выглядит следующим образом. Пусть – модуль шифрования, а
– открытый ключ банка. Покупатель генерирует столько
случайных чисел
, сколько конвертов он будет отсылать в банк (чем больше
конвертов, тем лучше). Далее каждое
шифруется с помощью
открытого ключа банка и умножается на значение чека:
. Для того чтобы вскрыть каждый из конвертов, банк должен
обратиться к покупателю с просьбой сообщить ему значение множителя
, так как вскрытие конверта означает получение значения
. Поэтому покупатель может быть уверен, что банк не сможет
вскрыть ни одного конверта без его ведома. Один из конвертов банк не вскрывает,
а подписывает
и отсылает назад
покупателю.
Покупатель проверяет подпись банка на конверте
равенством , и если оно соблюдается, то вскрывает конверт и извлекает из
него подписанный чек
.
Подписанный чек покупатель передает продавцу. Продавец
проверяет подпись банка и затем пересылает чек
в банк.
Банк проверяет точно таким же образом свою собственную подпись на полученном чеке, и если она правильная, то перечисляет сумму, указанную в чеке, на счет продавца.
Из приведенного выше протокола хорошо видно, на каких именно механизмах строятся действующие платежные системы. Однако данный протокол практически никак не решает вопросов, связанных с возможностью мошенничества со стороны покупателя или продавца, например путем повторного использования полученного подписанного чека и невозможности идентифицировать мошенника и т.д. Все эти проблемы решаются некоторыми модификациями базового варианта протокола [Шна2002].
Назад к разделу "6.8. Управление ключами"
Вперед к разделу "Глава 7. Анализ безопасности платежных Интернет-систем (ПИС)"