Защита информации в электронных платежных системах

Электронные платежные системы на основе цифровых денег

Разбить на страницы
Показывать лекцию целиком

Уже достаточно давно банки и другие коммерческие структуры используют при проведении деловых операций электронный обмен данными EDI (Electronic Data Interchange) и электронный перевод денежных средств EFT (Electronic Funds Transfer). В современных платежных системах весь процесс от начала до конца происходит в электронной (цифровой) форме. При этом для обеспечения безопасности и признания законности (конфиденциальности пересылаемых электронных документов, аутентификации участников информационного обмена) повсеместно используются криптосистемы с открытым ключом для шифрования и формирования электронной подписи.

Учитывая, что традиционные денежные купюры суть не что иное как защищенный от подделки документ, логичным представляется переход к использованию цифровых денег. Защиту от подделки при этом может обеспечить электронная подпись банка, которая безусловно имеет большую надежность, чем традиционные водяные знаки, металлические полосы и т.п.

При осуществлении платежей с помощью популярной на западе кредитной карточки всегда, когда владелец карточки с ее помощью делает покупки, оплачивает налоги и т.д., где-то в базе данных делается отметка об этом событии. Соединив эти в отдельности малозначимые данные, можно собрать большое количество информации об отдельном человеке. При этом последний не в состоянии выяснить, кому и что известно о его частной жизни; не в состоянии управлять точностью этой информации или определять, кто может ее получать. Необходимо реализовать такую систему доступа к ресурсам и услугам, в которой одновременно с решением задач идентификации, аутентификации и авторизации клиента, обеспечивалась бы и анонимность последнего.

Обычные бумажные деньги отвечают всем этим свойствам. Если запрашиваемым ресурсом является какой-либо товар, то наличие у покупателя достаточного количества купюр является доказательством его права на доступ к ресурсу. Хотя каждая из купюр имеет уникальный номер, отслеживать купюры по номерам практически невозможно. Итак, проблема состоит в том, чтобы сделать электронные платежи в такой же степени анонимными, как и расчет с помощью обычных денег. Иначе говоря, возникает задача обеспечения неотслеживаемостиэлектронных документов и, в частности, электронных денег.

В этой главе представлено наиболее рациональное на сегодня решение для централизованных (online) платежных систем - технология цифровых денег или цифровой наличности, которая использует скорость и повсеместное распространение компьютерных сетей, при этом цифровые деньги сохраняют все свойства классических денег, основанных на общественном доверии (конфиденциальность и анонимность платежей, трудность подделки). Отличие цифровых денег от "обычных" заключается в том, что средства поддержки этой технологии являются "виртуальными", "ценности" хранятся в памяти компьютера (на жестком диске пользователя) или в микропроцессорной карте в форме алгоритмов.

Банк обменивает цифровые деньги на обычные после их проверки, используя информацию из специальной базы данных, которая может быть централизованной или распределенной. Обмен цифровыми деньгами между участниками осуществляется в реальном времени через сеть, финансовые расчеты с банком могут осуществляться не только в реальном времени.

Одна из особенностей системы цифровых денег по сравнению с другими (например, основанными на использовании кредитных карт) заключается в полной анонимности транзакций, не требующих от владельца купюры предъявления удостоверения личности, как это происходит в случае операций с физическими деньгами.[3GPP TR 21.905: Vocabulary for 3GPP Specifications.]

Рассмотрим основные криптографические алгоритмы, используемые при создании ЭПС на основе цифровых денег. Полная информация об используемых алгоритмах и протоколах содержится в главе 3.

8.1. Слепая электронная цифровая подпись

В протоколе слепой ЭЦП, представленной на рис 8.1, принимают участие две стороны: абоненты А и C. Задачей абонента А является получить подпись абонента C на документе М, не раскрывая при этом содержимого документа М.

(рис 8.1) Протокол слепой ЭЦП RSA

Схема слепой электронной подписи RSA

  • Абонент А формирует документ М.
  • Абонент А формирует случайное число R - затемняющий множитель, единственное требование к которому - существование обратного $$R^{–1} mod N$$. Затем А шифрует затемняющий множитель на открытом ключе абонента С, умножает результат на M и посылает получившееся сообщение $$y_A = M * R^e mod N$$ абоненту C.
  • Абонент С, получив сообщение $$y_A$$ ,подписывает его на своем секретном ключе и посылает сформированное сообщение $$y_c = (M * R^e mod N)^d mod N = M^d * R^{ed} mod N = M{d} * R mod N$$ обратно абоненту А.
  • Абонент А снимает действие затемняющего множителя, вычисляя $$y_c * R^{–1} mod N = M^d mod N,$$ и получает в результате документ M, подписанный С, при этом абонент С ничего не узнал о содержимом подписанного им документа.
  • 8.2. Цифровые наличные

    Можно выделить следующие свойства, которыми должна обладать система цифровых наличных:

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

  • протокол снятия со счета, позволяющий пользователю получать цифровые наличные у банка;
  • платежный протокол, с помощью которого пользователь оплачивает покупки, обменивая их на цифровые купюры;
  • депозитный протокол, позволяющий продавцу сдавать цифровые деньги в банк для перечисления средств на свой счет.
  • В информационном взаимодействии принимают участие трое:

  • пользователь (будущий покупатель), применяющей цифровые наличные при осуществлении платежа;
  • продавец, обменивающий некоторый товар на цифровые деньги;
  • банк, выдающий цифровые наличные в обмен на обычные деньги, и наоборот.
  • Предположим, вышеупомянутые протоколы могут иметь следующий вид:

    Протокол снятия со счета:

  • пользователь сообщает банку, что он желает снять со своего счета некоторую сумму, например 100 дол.;
  • банк в ответ на запрос отправляет цифровую купюру, имеющую следующий формат: $$\{номинал купюры: 100 дол.; номер купюры: 260577\} SK_b,$$
    где $$SK_b$$ - секретный ключ банка.
  • пользователь проверяет подпись банка и если она верна принимает купюру.
  • Платежный протокол:

  • пользователь оплачивает товар, предъявляя купюру;
  • продавец проверяет подпись банка и, если она верна, принимает купюру в качестве платы.
  • Депозитный протокол:

  • продавец пересылает купюру банку;
  • банк проверяет свою подпись и, если она верна, начисляет на счет продавца сумму, равную номиналу купюры.
  • Описанные протоколы не решают проблемы, так как имеют следующие уязвимости:

  • банк может связать имя пользователя с серийным номером купюры при ее выдаче и отслеживать все его действия;
  • полученные от банка купюры можно дублировать и многократно использовать.
  • Анонимность покупателя обеспечивает применение слепой подписи в протоколе снятия со счета. Для предотвращения повторной траты банк должен поддерживать список номеров ранее потраченных купюр.

    8.3. Строительные блоки

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

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

    Работа системы основывается на механизме слепой подписи, принципы которой были рассмотрены ранее. Подобный механизм позволяет плательщику самому "чеканить цифровые монеты", а банку "ставить печать" без получения информации о серийном номере монеты. При этом обмен сообщениями происходит с использованием обычных механизмов обеспечения конфиденциальности (шифрование с открытым ключом) и аутентичности (схема классической ЭЦП) информации. Эти механизмы были рассмотрены ранее, поэтому для простоты изложения в последующих разделах главы им не будет уделяться внимания.

    8.3.1. Неотслеживаемость абонента А (дебитора)

    Процесс обеспечения неотслеживаемости платежа дебитора в виде схемы представлен на рис 8.2.

    (рис 8.2) Цифровые деньги: а - простейшая схема обеспечения неотслеживаемости покупателя; б - цифровая купюра

    Рассмотрим действия участника, желающего, чтобы банк подписал цифровую купюру вслепую. Банк имеет открытый ключ проверки подписи e, секретный ключ формирования подписи d, а также модуль N (N = pq, где p и q - различные простые числа) разрядностью 1024 или 2048 бит.

    Шаг 1. Для получения цифровой купюры без разглашения ее серийного номера s, клиент А (дебитор) выбирает случайное число r, равномерно распределенное между 1 и (N – 1):

    1 r (N – 1).

    Только дебитор знает это число r, которое называется затемняющим множителем. Его роль заключается в том, чтобы скрыть серийный номер s купюры. Операция скрытия осуществляется путем умножения номера s на множитель r, зашифрованный на открытом ключе банка:

    $$s * r^e$$.

    Здесь и далее подразумевается, что все операции выполняются по модулю N.

    Этот запрос пересылается банку (рис 8.2а).

    В общем случае сообщение, посылаемое банку, состоит из нескольких полей, включая серийный номер s. Эти поля содержат, в частности, тип банковской операции, номер счета дебитора. Все эти поля подписываются с использованием секретного ключа дебитора, например:

    $$(withdrawal, an_A, s * r^e)a,$$

    где withdrawal - операция снятия денег со счета;
    $$an_A$$ (account number A) - номер счета клиента;
    a - секретный ключ клиента.

    Соответствующий открытый ключ включается в сертификат, подписанный центром сертификации ключей.

    Шаг 2. Банк заверяет купюру, подписывая полученное сообщение с использованием своего секретного ключа

    $$(s * r^e)^d = s^d * r$$

    и возвращает ее абоненту А (дебитору). Затем банк снимает со счета дебитора сумму, соответствующую номиналу купюры.

    Купюра анонимна, так как включает в себя только серийный номер, зашифрованный банковским секретным ключом. Банк знает только номер счета и, так как номер s затемнен, не в состоянии соотнести запрос продавца на перевод денежных средств после совершения факта покупки с конкретной цифровой купюрой, ранее вслепую им подписанной.

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

    $$(s^d * r) / r = s^d$$.

    Используя банковский открытый ключ, дебитор проверяет соответствие полученной купюры, той, которая была послана на шаге 1, вычисляя

    $$(s^d)^e = s.$$

    Шаг 3. Покупатель посылает подписанную купюру продавцу (абоненту В).

    Шаг 4. Для перевода соответствующей суммы на свой счет (осуществления операции депозита) абонент В (продавец) посылает в банк следующее сообщение:

    $$(deposit, an_B, s^d)^b,$$

    где deposit - операция перевода денег на счет;
    $$an_B$$ (account number B) - номер счета продавца;
    b - секретный ключ продавца.

    После проверки серийного номера купюры банк переводит эквивалентную сумму на счет продавца, изымает данную купюру из обращения, занося ее номер в список номеров купюр, изъятых из обращения. Банк может также послать расписку своему клиенту В в следующей форме:

    $$(deposit, an_B, s^d)^d.$$

    Банк поддерживает список номеров купюр, изъятых из обращения, для защиты от повторного предъявления одной и той же купюры при выполнении операции депозита.

    8.3.2. Усиление защиты

    В некоторых случаях клиент может быть заинтересован в потере неотслеживаемости для защиты своих прав (например, в случае спора с продавцом или кражи купюр). Формирование случайного числа r происходит путем применения хеш-функции к числу r`, который клиент держит в секрете. Предъявляя r` арбитру, дебитор может доказать, если это необходимо, что именно он владелец купюры, которую банк подписал вслепую. В отличие от продавца, который отказывается выполнять свои обязательства, или мошенника, укравшего купюру, которые не в состоянии сделать то же самое.

    Подобным же образом может быть сформирован серийный номер s. Если s` есть случайное число, номер купюры s может быть получен так:

    $$s = h (s`),$$

    где h (x) - хеш-функция.

    Дебитор должен предоставить прекурсор s` арбитру, чтобы доказать аутентичность купюры, которую продавец депонировал (положил в банк).

    Использование прекурсора позволяет клиенту подтвердить банку, что он действительно является владельцем купюры. На рис 8.3 приведена схема подобного подтверждения.

    (рис 8.3) Использование прекурсора s` для защиты покупателя

    Шаг 5. Банк проверяет, что серийный номер купюры не содержится в списке ранее использованных купюр, и посылает продавцу заверение в законности сделки. Продавец пересылает это сообщение абоненту В (покупателю). Заверение о законности сделки включает в себя дату истечения срока действия купюры и может быть подписано с использованием секретного ключа банка, в результате и покупатель, и продавец могут удостовериться в целостности и подлинности этого сообщения.

    Шаг 6. Абонент В пересылает полученное на предыдущем шаге заверение абоненту А.

    Шаг 7. Если абонент А убедился в аутентичности заверения, он посылает прекурсор s` для банка абоненту В.

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

    8.3.3. Неотслеживаемость абонента В (кредитора)

    Процедура, необходимая для обеспечения неотслеживаемости кредитора, представлена на рис 8.4.

    (рис 8.4) Обеспечение неотслеживаемости кредитора

    Шаг 1. Для обеспечения собственной неотслеживаемости абонент В формирует "полуфабрикат" цифровой купюры $$s * r^e$$, затем посылает его абоненту А.

    Шаг 2. Абонент А пересылает ее банку, чтобы тот поставил свою слепую подпись и снял соответствующую сумму со счета абонента В (кредитора).

    Шаг 3. Подписав вслепую купюру, банк возвращает ее абоненту А.

    Шаг 4. Абонент А пересылает ее абоненту В.

    Шаг 5. Когда кредитор получает подписанную купюру, он использует открытый ключ банка, чтобы проверить, что данная купюра получена именно из того полуфабриката, который был ранее послан в банк:

    $$(s^d * r)^e = s * r^e$$.

    После удаления затемняющего множителя абонент В посылает купюру в банк. Банк переводит на счет В соответствующую сумму.

    В результате банк не в состоянии выяснить, кто из участников - А или В - является инициатором информационного обмена.

    8.3.4. Неотслеживаемость дебитора и кредитора

    Технология, основанная на двойном затемнении, и соответствующие обмены показаны на рис 8.5.

    (рис 8.5) Обеспечение взаимной неотслеживаемости дебитора и кредитора

    Взаимная неотслеживаемость обеспечивается за счет слияния двух предыдущих схем.

    Шаг 1. Абонент В формирует "полуфабрикат" цифровой купюры, затем посылает его абоненту А.

    Шаг 2. Абонент А после получения купюры, произведенной клиентом В, добавляет другой затемняющий множитель, выбирая случайное число x, равномерно распределенное между 1 и (N – 1). Купюра посылается в банк для постановки слепой подписи в виде:

    $$s * (r * x)^e$$.

    Шаг 3. Банк подписывает вслепую полученную купюру и возвращает ее абоненту А.

    Шаг 4. Абонент А снимает свой затемняющий множитель и отправляет полученное сообщение абоненту В.

    Шаг 5. Абонент В снимает свой затемняющий множитель и получает полноценную цифровую купюру, которую предъявляет банку.

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

    8.3.5. Номинал (достоинство) цифровых банкнот

    Рассмотрим двоичное представление стоимости купюры, показанное на рис 8.6.

    (рис 8.6) Двоичное представление номинала цифровой купюры

    В этом случае номинал купюры может принимать любое значение от 1 до $$2^j – 1$$. Каждому разряду соответствует одно из простых чисел, делителей банковской открытой экспоненты криптосистемы RSA.

    Таким образом, для представления стоимости, равной 1, используется экспонента, равная 3. Аналогично стоимость, равная 2 в десятичном представлении (или 10 в двоичном), соотносится с открытой экспонентой, равной 5; стоимость, равная 4 в десятичном представлении (или 100 в двоичном), соотносится с открытой экспонентой, равной 7 и т.д. В результате при использовании открытой экспоненты 11 #215; 7 #215; 5 #215; 3 купюра с 4-разрядным кодом стоимости может иметь номинал, принимающий любое значение от 1 до 15 условных единиц (между 0001 и 1111 в двоичном представлении). Следующий пример, схематично отраженный на рис 8.7, показывает, как при вышеописанной схеме представления достоинства купюры решается проблема обмена.

    (рис 8.7) Обмен с использованием купюр различного достоинства и получением сдачи

    Предположим, стоимость представлена 4-разрядным двоичным кодом. Допустим, клиент хочет приобрести две цифровые купюры, каждая достоинством 15 условных единиц. Каждая купюра имеет свой собственный серийный номер, соответственно $$s_1$$ и $$s_2$$. Соответствующие затемняющие множители равны $$r_1$$ и $$r_2$$.

    Банковская открытая экспонента для представления купюры максимального достоинства равна

    $$h = 11 \times 7 \times 5 \times 3.$$

    Шаг 1. Абонент А производит две купюры, скрывая их номера с использованием затемняющих множителей, и посылает их в банк для простановки слепой подписи. Сообщение, посылаемое в банк, суть конкатенация двух запросов:

    Шаг 2. Банк снимает со счета абонента А соответствующую сумму (30 условных единиц), подписывает вслепую купюры и затем возвращает составное сообщение

    Инверсия 1 / h суть банковская секретная экспонента, которая вычисляется по формуле

    $$h \times (1 / h) = 1 mod [ (p – 1) (q – 1) ].$$

    Эта экспонента, также как и открытая, определяет общую стоимость купюры.

    Шаг 3. При выполнении платежа первой купюрой за товар (или услугу) стоимостью 10 единиц (двоичное представление 1010) абонент А использует экспоненту $$7 \times 3$$ в своем запросе. Он составляет сообщение для отправки абоненту В (продавцу) в следующем виде:

    Для получения "сдачи" абонент А становится неотслеживаемым кредитором для банка в соответствии с вышеописанным протоколом. Абоненту А необходимо удержать остаток в 5 условных единиц. Для этого он формирует число t (по сути вторую цифровую купюру) и скрывает его с помощью затемняющего множителя $$r_{a1}$$, зашифрованного с использованием экспоненты $$7 \times 3$$, соответствующей сумме в 5 условных единиц:

    Покупатель (абонент А) желает заплатить продавцу (абоненту В) 10 условных единиц. Для этого абонент А формирует составное сообщение

    и посылает его абоненту В.

    Шаг 4. Абонент В пересылает это сообщение банку.

    Шаг 5. Банк возвращает абоненту В купюру t, подписанную с использованием экспоненты $$1 / (7 \times 3)$$:

    $$t^{1/ (7 \times 3)} \times r_{a1}$$.

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

    $$t^{1/ (7 \times 3)} \times r_{a1} : r_{a1} = t^{1/ (7 \times 3)}$$.

    Рассмотрим еще один возможный вид платежа.

    Шаг 1. Допустим, второй платеж осуществляется на сумму в 12 условных единиц (двоичное представление 1100), открытая экспонента в этом случае равна 11 #215; 7. Составное сообщение от А к В с использованием затемняющего множителя $$r_{a2}$$ в этом случае будет иметь вид:

    Шаг 2. Абонент В пересылает это сообщение банку.

    Шаг 3. Банк возвращает абоненту В купюру t, подписанную с использованием экспоненты $$1 / (5 \times 3)$$:

    $$t^{1/ (7 \times 3) (5 \times 3)} \times r_{a2}$$.

    Шаг 4. Абонент В пересылает это сообщение абоненту А. Абонент А снимает действие затемняющего множителя и получает подписанную банком купюру с "накопленным" достоинством (5 + 3) условных единиц:

    $$t^{1/ (7 \times 3) (5 \times 3)} \times r_{a2} : r_{a2} = t^{1/ (7 \times 3) (5 \times 3)}.$$

    Шаг 5. В транзакции депозита абонент А может положить накопленную сумму на свой счет. Для этого он посылает в банк сообщение:

    $$t^{1/ (7 \times 3) (5 \times 3)}$$,

    указывая при этом значение накопленной суммы.

    Шаг 6. Банк проверяет, не использовалась ли ранее купюра-накопитель, вычисляет накопленную сумму и переводит ее на счет абонента А.

    8.3.6. Обнаружение подделки

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

    Следующий алгоритм, предложенный Д. Чаумом, определяет мошенника без идентификации подлинного дебитора.

    Формирование цифровой купюры. Рассмотрим дебитора (В), который имеет в банке счет u, с которым связан счетчик v.

    Шаг 1. Дебитор формирует k затемненных сообщений:

    При этом $$s_i = f (x_i, y_i)$$,

    где $$x_i$$ = $$g (a_i, c_i)$$;
    $$y_i$$ = $$g\{a_i$$ $$[u || (v + i)], w_i\}$$.

    Независимые переменные $$a_i$$, $$c_i$$ и $$w_i$$ равномерно распределены в интервале $$[1, (N – 1)]$$. Эти k сообщений отправляются банку в качестве кандидатов на получение на их основе цифровых купюр. Функции f ( ) и g ( ) - функции двух аргументов, не имеющие коллизий, иначе говоря, каждой паре входных значений соответствует определенное значение результата.

    Шаг 2. Банк случайным образом выбирает k / 2 кандидатов для проверки и просит дебитора предъявить соответствующие переменные $$a_i$$, $$c_i$$, $$r_i$$ и $$w_i$$. Пусть R - набор этих k / 2 кандидатов.

    Шаг 3. Если банк завершил все проверки и не обнаружил никаких нарушений, он отправляет обратно произведение k / 2 кандидатов, подписанных своим секретным ключом d:

    Шаг 4. Банк снимает со счета дебитора соответствующую сумму.

    Шаг 5. Как и в предыдущих схемах, дебитор удаляет затемняющие множители и получает цифровую купюру в виде:

    Вероятность обнаружения мошенничества, очевидно, будет зависеть от числа k (по сути, параметра безопасности) и частоты фактов обмана.

    Покупка. Когда дебитор посылает продавцу цифровую купюру, последний начинает проверочную процедуру для предотвращения мошенничества. Эта процедура состоит из последовательных действий.

    Шаг 1. Продавец выбирает случайную двоичную строку:

    $$Z = \{z_1, z_2, \ldots, z_{k/2}\},$$

    где $$z_i$$ $$\{0, 1\}, 1$$ $$i$$ $$k/2$$.

    Шаг 2. Для всех элементов $$z_i$$ строки Z,

    если $$z_i = 1$$, продавец просит клиента послать сообщение:

    $$a_i, c_i и y_i = g\{a_i$$ $$[u || (v + i)], w_i\}$$;

    если $$z_i = 0$$, продавец просит клиента послать сообщение:

    $$x_i = g (a_i, c_i), a_i$$ $$[u || (v + i)]$$ и $$w_i$$.

    Шаг 3. Продавец проверяет, имеет ли полученная цифровая купюра требуемый формат, а затем посылает купюру, строку Z и ответы клиента банку с запросом финансового расчета.

    8.4. DigiCash

    Примером платежной системы, использующей цифровые наличные, является DigiCash.

    В 1990 г. Д. Чаум организовал в Нидерландах и США коммерческую фирму DigiCash. Mark Twain Bank Сент-Луиса согласился поддерживать конвертацию цифровой наличности в доллары США. Он поддерживал специальный счет для принятия сумм, циркулирующих в цифровом виде до операций депонирования на обычные банковские счета кредиторов.

    Одноименная платежная система DigiCash создавалась в рамках европейского проекта Esprit. При этом целью являлось обеспечение цифрового денежного обращения с использованием идей Д. Чаума и его команды. DigiCash использует цифровую наличность, называемую eCash, заменяющую обычные монеты и купюры и обеспечивающую анонимность платежей и неотслеживаемость.

    ECash - это виртуальная валюта, предназначенная для оплаты товаров и услуг через компьютерные сети. В рамках системы DigiCash пользователь формирует eCash и посылает их в банк на подпись. Цифровые деньги, полученные из банка, в дальнейшем хранятся на жестком диске клиента, куда с помощью клиентского программного обеспечения "закачиваются" со счета клиента в некоем виртуальном банке (digital bank), созданном компанией DigiCash в сети Интернет. Для пересылки eCash необходимо соединение между продавцом и покупателем в режиме он-лайн, предполагался также выпуск ПО, позволяющего проводить платежи по электронной почте. Цифровые деньги могут быть истрачены в любом торговом предприятии, принимающем их к оплате, причем никаких сведений о клиенте продавцу не требуется. Таким образом, eCash представляет собой полный аналог наличных для "электронного рынка". Банк к своей роли посредника в финансовых расчетах может добавить роль доверенной третьей стороны. На рис 8.8 показаны отношения, которые DigiCash устанавливает между участниками транзакций.

    (рис 8.8) DigiCash: участники информационного взаимодействия

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

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

    С целью обеспечения аутентичности обменов участники взаимодействия используют свои секретные ключи для подписывания сообщений. Для обеспечения конфиденциальности участники взаимодействия используют секретные сеансовые ключи, которые в свою очередь будут зашифрованы банковским открытым ключом.

    Для защиты от сбоев (терминальных или сетевых) банк может хранить копии n последних запросов каждого клиента (например, n = 16). Это создает условия для восстановления информации в случае неполадок в работе.

    Клиент eCash. Клиент eCash может быть установлен на любом компьютере, имеющем полномасштабный доступ к Интернету. Установка клиента не требует никаких особых навыков. Пользовательский интерфейс клиента eCash представляет собой окно (в терминах интерфейса MS Windows), постоянно находящееся "наверху" рабочего пространства (desktop). В "свернутом" виде это окно содержит лишь указание на количество находящейся "на руках" у пользователя цифровой наличности, а также может содержать пиктограмму и (или) окно микроанимации для указания на осуществляемые клиентом в настоящий момент действия. В "развернутом" виде окно содержит пять кнопок.

  • Связь с банком(eCash Withdraw/Deposit). При нажатии этой кнопки открывается окно, и пользователь должен указать тип транзакции (снятие "наличных" со счета либо помещение "наличных" на счет) и сумму.
  • Проведение платежа (eCash Payment). Эта кнопка открывает окно, в котором задаются характеристики проводимого "вручную" платежа. Следует отметить, что в большинстве случаев связь двух клиентов осуществляется в автоматическом режиме: покупатель выбирает нужный ему товар, пролистывая страницы гипертекста обычным браузером, а эта программа просмотра вызывает клиента eCash, и от пользователя требуется лишь подтвердить свою готовность совершить покупку (см. пример ниже). Однако некоторые версии позволяют осуществить либо принять платеж непосредственно из eCash, открывающего для этого сеанс IP-связи с другим клиентом (который также должен находиться на компьютере в режиме он-лайн), и даже по электронной почте. В открываемом окне можно указать имя счета контрагента (для платежей по электронной почте), имя хост-компьютера (для платежа по IP), сумму и снабдить платеж примечанием.
  • Просмотр списка осуществленных платежей (eCash Payment Log). При нажатии этой кнопки открывается окно, позволяющее просмотреть список осуществленных и принятых платежей, включая информацию об имени счета контрагента и сумме платежа.
  • Состояние клиента (eCash Status). Эта кнопка открывает окно с информацией об установленном клиенте, включая баланс счета в банке, адрес банка и имя счета. Нажатие еще одной кнопки позволяет взглянуть на имеющиеся "на руках" цифровые монеты.
  • Пользовательские установки (eCash Preferences). Открывает окно, в котором устанавливаются пользовательские параметры, включая деноминацию валюты, метод соединения с банком и некоторые другие.
  • 8.5 Перспективы

    Можно выделить три группы обсуждаемых последствий широкого принятия цифровой наличности в качестве платежного инструмента.

  • Увеличение скорости обращения денежной массы.
  • Увеличение скорости исполнения принятых экономическими агентами решений о перемещении средств.При этом следует учитывать, что критическим является не увеличение скорости принятия и исполнения решений как таковой, а соотношение между ней и скоростью реагирования на принятые решения систем, формирующих финансовые индексы. Проблема заключается, таким образом, скорее в технологическом отставании традиционных банковских, финансовых и информационных систем.
  • Изменение роли банков в национальных и мировой финансовых системах.Надежность, доступность и дешевизна современных электронных коммуникаций - одна из важнейших составляющих возможного распространения цифровой наличности. В реализации любой крупной системы наличных электронных платежей ключевое место будет принадлежать фирмам, специализирующимся на обеспечении связи, - телефонным компаниям и поставщикам сетевых услуг. Есть мнение, что в случае разворачивания систем цифровой наличности коммерческие банки могут потерять свое центральное место в денежно-финансовой системе.
  • Страницы:

    Уже достаточно давно банки и другие коммерческие структуры используют при проведении деловых операций электронный обмен данными EDI (Electronic Data Interchange) и электронный перевод денежных средств EFT (Electronic Funds Transfer). В современных платежных системах весь процесс от начала до конца происходит в электронной (цифровой) форме. При этом для обеспечения безопасности и признания законности (конфиденциальности пересылаемых электронных документов, аутентификации участников информационного обмена) повсеместно используются криптосистемы с открытым ключом для шифрования и формирования электронной подписи.

    Учитывая, что традиционные денежные купюры суть не что иное как защищенный от подделки документ, логичным представляется переход к использованию цифровых денег. Защиту от подделки при этом может обеспечить электронная подпись банка, которая безусловно имеет большую надежность, чем традиционные водяные знаки, металлические полосы и т.п.

    При осуществлении платежей с помощью популярной на западе кредитной карточки всегда, когда владелец карточки с ее помощью делает покупки, оплачивает налоги и т.д., где-то в базе данных делается отметка об этом событии. Соединив эти в отдельности малозначимые данные, можно собрать большое количество информации об отдельном человеке. При этом последний не в состоянии выяснить, кому и что известно о его частной жизни; не в состоянии управлять точностью этой информации или определять, кто может ее получать. Необходимо реализовать такую систему доступа к ресурсам и услугам, в которой одновременно с решением задач идентификации, аутентификации и авторизации клиента, обеспечивалась бы и анонимность последнего.

    Обычные бумажные деньги отвечают всем этим свойствам. Если запрашиваемым ресурсом является какой-либо товар, то наличие у покупателя достаточного количества купюр является доказательством его права на доступ к ресурсу. Хотя каждая из купюр имеет уникальный номер, отслеживать купюры по номерам практически невозможно. Итак, проблема состоит в том, чтобы сделать электронные платежи в такой же степени анонимными, как и расчет с помощью обычных денег. Иначе говоря, возникает задача обеспечения неотслеживаемостиэлектронных документов и, в частности, электронных денег.

    В этой главе представлено наиболее рациональное на сегодня решение для централизованных (online) платежных систем - технология цифровых денег или цифровой наличности, которая использует скорость и повсеместное распространение компьютерных сетей, при этом цифровые деньги сохраняют все свойства классических денег, основанных на общественном доверии (конфиденциальность и анонимность платежей, трудность подделки). Отличие цифровых денег от "обычных" заключается в том, что средства поддержки этой технологии являются "виртуальными", "ценности" хранятся в памяти компьютера (на жестком диске пользователя) или в микропроцессорной карте в форме алгоритмов.

    Банк обменивает цифровые деньги на обычные после их проверки, используя информацию из специальной базы данных, которая может быть централизованной или распределенной. Обмен цифровыми деньгами между участниками осуществляется в реальном времени через сеть, финансовые расчеты с банком могут осуществляться не только в реальном времени.

    Одна из особенностей системы цифровых денег по сравнению с другими (например, основанными на использовании кредитных карт) заключается в полной анонимности транзакций, не требующих от владельца купюры предъявления удостоверения личности, как это происходит в случае операций с физическими деньгами.[3GPP TR 21.905: Vocabulary for 3GPP Specifications.]

    Рассмотрим основные криптографические алгоритмы, используемые при создании ЭПС на основе цифровых денег. Полная информация об используемых алгоритмах и протоколах содержится в главе 3.

    8.1. Слепая электронная цифровая подпись

    В протоколе слепой ЭЦП, представленной на рис 8.1, принимают участие две стороны: абоненты А и C. Задачей абонента А является получить подпись абонента C на документе М, не раскрывая при этом содержимого документа М.

    (рис 8.1) Протокол слепой ЭЦП RSA

    Схема слепой электронной подписи RSA

  • Абонент А формирует документ М.
  • Абонент А формирует случайное число R - затемняющий множитель, единственное требование к которому - существование обратного $$R^{–1} mod N$$. Затем А шифрует затемняющий множитель на открытом ключе абонента С, умножает результат на M и посылает получившееся сообщение $$y_A = M * R^e mod N$$ абоненту C.
  • Абонент С, получив сообщение $$y_A$$ ,подписывает его на своем секретном ключе и посылает сформированное сообщение $$y_c = (M * R^e mod N)^d mod N = M^d * R^{ed} mod N = M{d} * R mod N$$ обратно абоненту А.
  • Абонент А снимает действие затемняющего множителя, вычисляя $$y_c * R^{–1} mod N = M^d mod N,$$ и получает в результате документ M, подписанный С, при этом абонент С ничего не узнал о содержимом подписанного им документа.
  • 8.2. Цифровые наличные

    Можно выделить следующие свойства, которыми должна обладать система цифровых наличных:

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

  • протокол снятия со счета, позволяющий пользователю получать цифровые наличные у банка;
  • платежный протокол, с помощью которого пользователь оплачивает покупки, обменивая их на цифровые купюры;
  • депозитный протокол, позволяющий продавцу сдавать цифровые деньги в банк для перечисления средств на свой счет.
  • В информационном взаимодействии принимают участие трое:

  • пользователь (будущий покупатель), применяющей цифровые наличные при осуществлении платежа;
  • продавец, обменивающий некоторый товар на цифровые деньги;
  • банк, выдающий цифровые наличные в обмен на обычные деньги, и наоборот.
  • Предположим, вышеупомянутые протоколы могут иметь следующий вид:

    Протокол снятия со счета:

  • пользователь сообщает банку, что он желает снять со своего счета некоторую сумму, например 100 дол.;
  • банк в ответ на запрос отправляет цифровую купюру, имеющую следующий формат: $$\{номинал купюры: 100 дол.; номер купюры: 260577\} SK_b,$$
    где $$SK_b$$ - секретный ключ банка.
  • пользователь проверяет подпись банка и если она верна принимает купюру.
  • Платежный протокол:

  • пользователь оплачивает товар, предъявляя купюру;
  • продавец проверяет подпись банка и, если она верна, принимает купюру в качестве платы.
  • Депозитный протокол:

  • продавец пересылает купюру банку;
  • банк проверяет свою подпись и, если она верна, начисляет на счет продавца сумму, равную номиналу купюры.
  • Описанные протоколы не решают проблемы, так как имеют следующие уязвимости:

  • банк может связать имя пользователя с серийным номером купюры при ее выдаче и отслеживать все его действия;
  • полученные от банка купюры можно дублировать и многократно использовать.
  • Анонимность покупателя обеспечивает применение слепой подписи в протоколе снятия со счета. Для предотвращения повторной траты банк должен поддерживать список номеров ранее потраченных купюр.

    8.3. Строительные блоки

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

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

    Работа системы основывается на механизме слепой подписи, принципы которой были рассмотрены ранее. Подобный механизм позволяет плательщику самому "чеканить цифровые монеты", а банку "ставить печать" без получения информации о серийном номере монеты. При этом обмен сообщениями происходит с использованием обычных механизмов обеспечения конфиденциальности (шифрование с открытым ключом) и аутентичности (схема классической ЭЦП) информации. Эти механизмы были рассмотрены ранее, поэтому для простоты изложения в последующих разделах главы им не будет уделяться внимания.

    8.3.1. Неотслеживаемость абонента А (дебитора)

    Процесс обеспечения неотслеживаемости платежа дебитора в виде схемы представлен на рис 8.2.

    (рис 8.2) Цифровые деньги: а - простейшая схема обеспечения неотслеживаемости покупателя; б - цифровая купюра

    Рассмотрим действия участника, желающего, чтобы банк подписал цифровую купюру вслепую. Банк имеет открытый ключ проверки подписи e, секретный ключ формирования подписи d, а также модуль N (N = pq, где p и q - различные простые числа) разрядностью 1024 или 2048 бит.

    Шаг 1. Для получения цифровой купюры без разглашения ее серийного номера s, клиент А (дебитор) выбирает случайное число r, равномерно распределенное между 1 и (N – 1):

    1 r (N – 1).

    Только дебитор знает это число r, которое называется затемняющим множителем. Его роль заключается в том, чтобы скрыть серийный номер s купюры. Операция скрытия осуществляется путем умножения номера s на множитель r, зашифрованный на открытом ключе банка:

    $$s * r^e$$.

    Здесь и далее подразумевается, что все операции выполняются по модулю N.

    Этот запрос пересылается банку (рис 8.2а).

    В общем случае сообщение, посылаемое банку, состоит из нескольких полей, включая серийный номер s. Эти поля содержат, в частности, тип банковской операции, номер счета дебитора. Все эти поля подписываются с использованием секретного ключа дебитора, например:

    $$(withdrawal, an_A, s * r^e)a,$$

    где withdrawal - операция снятия денег со счета;
    $$an_A$$ (account number A) - номер счета клиента;
    a - секретный ключ клиента.

    Соответствующий открытый ключ включается в сертификат, подписанный центром сертификации ключей.

    Шаг 2. Банк заверяет купюру, подписывая полученное сообщение с использованием своего секретного ключа

    $$(s * r^e)^d = s^d * r$$

    и возвращает ее абоненту А (дебитору). Затем банк снимает со счета дебитора сумму, соответствующую номиналу купюры.

    Купюра анонимна, так как включает в себя только серийный номер, зашифрованный банковским секретным ключом. Банк знает только номер счета и, так как номер s затемнен, не в состоянии соотнести запрос продавца на перевод денежных средств после совершения факта покупки с конкретной цифровой купюрой, ранее вслепую им подписанной.

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

    $$(s^d * r) / r = s^d$$.

    Используя банковский открытый ключ, дебитор проверяет соответствие полученной купюры, той, которая была послана на шаге 1, вычисляя

    $$(s^d)^e = s.$$

    Шаг 3. Покупатель посылает подписанную купюру продавцу (абоненту В).

    Шаг 4. Для перевода соответствующей суммы на свой счет (осуществления операции депозита) абонент В (продавец) посылает в банк следующее сообщение:

    $$(deposit, an_B, s^d)^b,$$

    где deposit - операция перевода денег на счет;
    $$an_B$$ (account number B) - номер счета продавца;
    b - секретный ключ продавца.

    После проверки серийного номера купюры банк переводит эквивалентную сумму на счет продавца, изымает данную купюру из обращения, занося ее номер в список номеров купюр, изъятых из обращения. Банк может также послать расписку своему клиенту В в следующей форме:

    $$(deposit, an_B, s^d)^d.$$

    Банк поддерживает список номеров купюр, изъятых из обращения, для защиты от повторного предъявления одной и той же купюры при выполнении операции депозита.

    8.3.2. Усиление защиты

    В некоторых случаях клиент может быть заинтересован в потере неотслеживаемости для защиты своих прав (например, в случае спора с продавцом или кражи купюр). Формирование случайного числа r происходит путем применения хеш-функции к числу r`, который клиент держит в секрете. Предъявляя r` арбитру, дебитор может доказать, если это необходимо, что именно он владелец купюры, которую банк подписал вслепую. В отличие от продавца, который отказывается выполнять свои обязательства, или мошенника, укравшего купюру, которые не в состоянии сделать то же самое.

    Подобным же образом может быть сформирован серийный номер s. Если s` есть случайное число, номер купюры s может быть получен так:

    $$s = h (s`),$$

    где h (x) - хеш-функция.

    Дебитор должен предоставить прекурсор s` арбитру, чтобы доказать аутентичность купюры, которую продавец депонировал (положил в банк).

    Использование прекурсора позволяет клиенту подтвердить банку, что он действительно является владельцем купюры. На рис 8.3 приведена схема подобного подтверждения.

    (рис 8.3) Использование прекурсора s` для защиты покупателя

    Шаг 5. Банк проверяет, что серийный номер купюры не содержится в списке ранее использованных купюр, и посылает продавцу заверение в законности сделки. Продавец пересылает это сообщение абоненту В (покупателю). Заверение о законности сделки включает в себя дату истечения срока действия купюры и может быть подписано с использованием секретного ключа банка, в результате и покупатель, и продавец могут удостовериться в целостности и подлинности этого сообщения.

    Шаг 6. Абонент В пересылает полученное на предыдущем шаге заверение абоненту А.

    Шаг 7. Если абонент А убедился в аутентичности заверения, он посылает прекурсор s` для банка абоненту В.

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

    8.3.3. Неотслеживаемость абонента В (кредитора)

    Процедура, необходимая для обеспечения неотслеживаемости кредитора, представлена на рис 8.4.

    (рис 8.4) Обеспечение неотслеживаемости кредитора

    Шаг 1. Для обеспечения собственной неотслеживаемости абонент В формирует "полуфабрикат" цифровой купюры $$s * r^e$$, затем посылает его абоненту А.

    Шаг 2. Абонент А пересылает ее банку, чтобы тот поставил свою слепую подпись и снял соответствующую сумму со счета абонента В (кредитора).

    Шаг 3. Подписав вслепую купюру, банк возвращает ее абоненту А.

    Шаг 4. Абонент А пересылает ее абоненту В.

    Шаг 5. Когда кредитор получает подписанную купюру, он использует открытый ключ банка, чтобы проверить, что данная купюра получена именно из того полуфабриката, который был ранее послан в банк:

    $$(s^d * r)^e = s * r^e$$.

    После удаления затемняющего множителя абонент В посылает купюру в банк. Банк переводит на счет В соответствующую сумму.

    В результате банк не в состоянии выяснить, кто из участников - А или В - является инициатором информационного обмена.

    8.3.4. Неотслеживаемость дебитора и кредитора

    Технология, основанная на двойном затемнении, и соответствующие обмены показаны на рис 8.5.

    (рис 8.5) Обеспечение взаимной неотслеживаемости дебитора и кредитора

    Взаимная неотслеживаемость обеспечивается за счет слияния двух предыдущих схем.

    Шаг 1. Абонент В формирует "полуфабрикат" цифровой купюры, затем посылает его абоненту А.

    Шаг 2. Абонент А после получения купюры, произведенной клиентом В, добавляет другой затемняющий множитель, выбирая случайное число x, равномерно распределенное между 1 и (N – 1). Купюра посылается в банк для постановки слепой подписи в виде:

    $$s * (r * x)^e$$.

    Шаг 3. Банк подписывает вслепую полученную купюру и возвращает ее абоненту А.

    Шаг 4. Абонент А снимает свой затемняющий множитель и отправляет полученное сообщение абоненту В.

    Шаг 5. Абонент В снимает свой затемняющий множитель и получает полноценную цифровую купюру, которую предъявляет банку.

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

    8.3.5. Номинал (достоинство) цифровых банкнот

    Рассмотрим двоичное представление стоимости купюры, показанное на рис 8.6.

    (рис 8.6) Двоичное представление номинала цифровой купюры

    В этом случае номинал купюры может принимать любое значение от 1 до $$2^j – 1$$. Каждому разряду соответствует одно из простых чисел, делителей банковской открытой экспоненты криптосистемы RSA.

    Таким образом, для представления стоимости, равной 1, используется экспонента, равная 3. Аналогично стоимость, равная 2 в десятичном представлении (или 10 в двоичном), соотносится с открытой экспонентой, равной 5; стоимость, равная 4 в десятичном представлении (или 100 в двоичном), соотносится с открытой экспонентой, равной 7 и т.д. В результате при использовании открытой экспоненты 11 #215; 7 #215; 5 #215; 3 купюра с 4-разрядным кодом стоимости может иметь номинал, принимающий любое значение от 1 до 15 условных единиц (между 0001 и 1111 в двоичном представлении). Следующий пример, схематично отраженный на рис 8.7, показывает, как при вышеописанной схеме представления достоинства купюры решается проблема обмена.

    (рис 8.7) Обмен с использованием купюр различного достоинства и получением сдачи

    Предположим, стоимость представлена 4-разрядным двоичным кодом. Допустим, клиент хочет приобрести две цифровые купюры, каждая достоинством 15 условных единиц. Каждая купюра имеет свой собственный серийный номер, соответственно $$s_1$$ и $$s_2$$. Соответствующие затемняющие множители равны $$r_1$$ и $$r_2$$.

    Банковская открытая экспонента для представления купюры максимального достоинства равна

    $$h = 11 \times 7 \times 5 \times 3.$$

    Шаг 1. Абонент А производит две купюры, скрывая их номера с использованием затемняющих множителей, и посылает их в банк для простановки слепой подписи. Сообщение, посылаемое в банк, суть конкатенация двух запросов:

    Шаг 2. Банк снимает со счета абонента А соответствующую сумму (30 условных единиц), подписывает вслепую купюры и затем возвращает составное сообщение

    Инверсия 1 / h суть банковская секретная экспонента, которая вычисляется по формуле

    $$h \times (1 / h) = 1 mod [ (p – 1) (q – 1) ].$$

    Эта экспонента, также как и открытая, определяет общую стоимость купюры.

    Шаг 3. При выполнении платежа первой купюрой за товар (или услугу) стоимостью 10 единиц (двоичное представление 1010) абонент А использует экспоненту $$7 \times 3$$ в своем запросе. Он составляет сообщение для отправки абоненту В (продавцу) в следующем виде:

    Для получения "сдачи" абонент А становится неотслеживаемым кредитором для банка в соответствии с вышеописанным протоколом. Абоненту А необходимо удержать остаток в 5 условных единиц. Для этого он формирует число t (по сути вторую цифровую купюру) и скрывает его с помощью затемняющего множителя $$r_{a1}$$, зашифрованного с использованием экспоненты $$7 \times 3$$, соответствующей сумме в 5 условных единиц:

    Покупатель (абонент А) желает заплатить продавцу (абоненту В) 10 условных единиц. Для этого абонент А формирует составное сообщение

    и посылает его абоненту В.

    Шаг 4. Абонент В пересылает это сообщение банку.

    Шаг 5. Банк возвращает абоненту В купюру t, подписанную с использованием экспоненты $$1 / (7 \times 3)$$:

    $$t^{1/ (7 \times 3)} \times r_{a1}$$.

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

    $$t^{1/ (7 \times 3)} \times r_{a1} : r_{a1} = t^{1/ (7 \times 3)}$$.

    Рассмотрим еще один возможный вид платежа.

    Шаг 1. Допустим, второй платеж осуществляется на сумму в 12 условных единиц (двоичное представление 1100), открытая экспонента в этом случае равна 11 #215; 7. Составное сообщение от А к В с использованием затемняющего множителя $$r_{a2}$$ в этом случае будет иметь вид:

    Шаг 2. Абонент В пересылает это сообщение банку.

    Шаг 3. Банк возвращает абоненту В купюру t, подписанную с использованием экспоненты $$1 / (5 \times 3)$$:

    $$t^{1/ (7 \times 3) (5 \times 3)} \times r_{a2}$$.

    Шаг 4. Абонент В пересылает это сообщение абоненту А. Абонент А снимает действие затемняющего множителя и получает подписанную банком купюру с "накопленным" достоинством (5 + 3) условных единиц:

    $$t^{1/ (7 \times 3) (5 \times 3)} \times r_{a2} : r_{a2} = t^{1/ (7 \times 3) (5 \times 3)}.$$

    Шаг 5. В транзакции депозита абонент А может положить накопленную сумму на свой счет. Для этого он посылает в банк сообщение:

    $$t^{1/ (7 \times 3) (5 \times 3)}$$,

    указывая при этом значение накопленной суммы.

    Шаг 6. Банк проверяет, не использовалась ли ранее купюра-накопитель, вычисляет накопленную сумму и переводит ее на счет абонента А.

    8.3.6. Обнаружение подделки

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

    Следующий алгоритм, предложенный Д. Чаумом, определяет мошенника без идентификации подлинного дебитора.

    Формирование цифровой купюры. Рассмотрим дебитора (В), который имеет в банке счет u, с которым связан счетчик v.

    Шаг 1. Дебитор формирует k затемненных сообщений:

    При этом $$s_i = f (x_i, y_i)$$,

    где $$x_i$$ = $$g (a_i, c_i)$$;
    $$y_i$$ = $$g\{a_i$$ $$[u || (v + i)], w_i\}$$.

    Независимые переменные $$a_i$$, $$c_i$$ и $$w_i$$ равномерно распределены в интервале $$[1, (N – 1)]$$. Эти k сообщений отправляются банку в качестве кандидатов на получение на их основе цифровых купюр. Функции f ( ) и g ( ) - функции двух аргументов, не имеющие коллизий, иначе говоря, каждой паре входных значений соответствует определенное значение результата.

    Шаг 2. Банк случайным образом выбирает k / 2 кандидатов для проверки и просит дебитора предъявить соответствующие переменные $$a_i$$, $$c_i$$, $$r_i$$ и $$w_i$$. Пусть R - набор этих k / 2 кандидатов.

    Шаг 3. Если банк завершил все проверки и не обнаружил никаких нарушений, он отправляет обратно произведение k / 2 кандидатов, подписанных своим секретным ключом d:

    Шаг 4. Банк снимает со счета дебитора соответствующую сумму.

    Шаг 5. Как и в предыдущих схемах, дебитор удаляет затемняющие множители и получает цифровую купюру в виде:

    Вероятность обнаружения мошенничества, очевидно, будет зависеть от числа k (по сути, параметра безопасности) и частоты фактов обмана.

    Покупка. Когда дебитор посылает продавцу цифровую купюру, последний начинает проверочную процедуру для предотвращения мошенничества. Эта процедура состоит из последовательных действий.

    Шаг 1. Продавец выбирает случайную двоичную строку:

    $$Z = \{z_1, z_2, \ldots, z_{k/2}\},$$

    где $$z_i$$ $$\{0, 1\}, 1$$ $$i$$ $$k/2$$.

    Шаг 2. Для всех элементов $$z_i$$ строки Z,

    если $$z_i = 1$$, продавец просит клиента послать сообщение:

    $$a_i, c_i и y_i = g\{a_i$$ $$[u || (v + i)], w_i\}$$;

    если $$z_i = 0$$, продавец просит клиента послать сообщение:

    $$x_i = g (a_i, c_i), a_i$$ $$[u || (v + i)]$$ и $$w_i$$.

    Шаг 3. Продавец проверяет, имеет ли полученная цифровая купюра требуемый формат, а затем посылает купюру, строку Z и ответы клиента банку с запросом финансового расчета.

    8.4. DigiCash

    Примером платежной системы, использующей цифровые наличные, является DigiCash.

    В 1990 г. Д. Чаум организовал в Нидерландах и США коммерческую фирму DigiCash. Mark Twain Bank Сент-Луиса согласился поддерживать конвертацию цифровой наличности в доллары США. Он поддерживал специальный счет для принятия сумм, циркулирующих в цифровом виде до операций депонирования на обычные банковские счета кредиторов.

    Одноименная платежная система DigiCash создавалась в рамках европейского проекта Esprit. При этом целью являлось обеспечение цифрового денежного обращения с использованием идей Д. Чаума и его команды. DigiCash использует цифровую наличность, называемую eCash, заменяющую обычные монеты и купюры и обеспечивающую анонимность платежей и неотслеживаемость.

    ECash - это виртуальная валюта, предназначенная для оплаты товаров и услуг через компьютерные сети. В рамках системы DigiCash пользователь формирует eCash и посылает их в банк на подпись. Цифровые деньги, полученные из банка, в дальнейшем хранятся на жестком диске клиента, куда с помощью клиентского программного обеспечения "закачиваются" со счета клиента в некоем виртуальном банке (digital bank), созданном компанией DigiCash в сети Интернет. Для пересылки eCash необходимо соединение между продавцом и покупателем в режиме он-лайн, предполагался также выпуск ПО, позволяющего проводить платежи по электронной почте. Цифровые деньги могут быть истрачены в любом торговом предприятии, принимающем их к оплате, причем никаких сведений о клиенте продавцу не требуется. Таким образом, eCash представляет собой полный аналог наличных для "электронного рынка". Банк к своей роли посредника в финансовых расчетах может добавить роль доверенной третьей стороны. На рис 8.8 показаны отношения, которые DigiCash устанавливает между участниками транзакций.

    (рис 8.8) DigiCash: участники информационного взаимодействия

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

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

    С целью обеспечения аутентичности обменов участники взаимодействия используют свои секретные ключи для подписывания сообщений. Для обеспечения конфиденциальности участники взаимодействия используют секретные сеансовые ключи, которые в свою очередь будут зашифрованы банковским открытым ключом.

    Для защиты от сбоев (терминальных или сетевых) банк может хранить копии n последних запросов каждого клиента (например, n = 16). Это создает условия для восстановления информации в случае неполадок в работе.

    Клиент eCash. Клиент eCash может быть установлен на любом компьютере, имеющем полномасштабный доступ к Интернету. Установка клиента не требует никаких особых навыков. Пользовательский интерфейс клиента eCash представляет собой окно (в терминах интерфейса MS Windows), постоянно находящееся "наверху" рабочего пространства (desktop). В "свернутом" виде это окно содержит лишь указание на количество находящейся "на руках" у пользователя цифровой наличности, а также может содержать пиктограмму и (или) окно микроанимации для указания на осуществляемые клиентом в настоящий момент действия. В "развернутом" виде окно содержит пять кнопок.

  • Связь с банком(eCash Withdraw/Deposit). При нажатии этой кнопки открывается окно, и пользователь должен указать тип транзакции (снятие "наличных" со счета либо помещение "наличных" на счет) и сумму.
  • Проведение платежа (eCash Payment). Эта кнопка открывает окно, в котором задаются характеристики проводимого "вручную" платежа. Следует отметить, что в большинстве случаев связь двух клиентов осуществляется в автоматическом режиме: покупатель выбирает нужный ему товар, пролистывая страницы гипертекста обычным браузером, а эта программа просмотра вызывает клиента eCash, и от пользователя требуется лишь подтвердить свою готовность совершить покупку (см. пример ниже). Однако некоторые версии позволяют осуществить либо принять платеж непосредственно из eCash, открывающего для этого сеанс IP-связи с другим клиентом (который также должен находиться на компьютере в режиме он-лайн), и даже по электронной почте. В открываемом окне можно указать имя счета контрагента (для платежей по электронной почте), имя хост-компьютера (для платежа по IP), сумму и снабдить платеж примечанием.
  • Просмотр списка осуществленных платежей (eCash Payment Log). При нажатии этой кнопки открывается окно, позволяющее просмотреть список осуществленных и принятых платежей, включая информацию об имени счета контрагента и сумме платежа.
  • Состояние клиента (eCash Status). Эта кнопка открывает окно с информацией об установленном клиенте, включая баланс счета в банке, адрес банка и имя счета. Нажатие еще одной кнопки позволяет взглянуть на имеющиеся "на руках" цифровые монеты.
  • Пользовательские установки (eCash Preferences). Открывает окно, в котором устанавливаются пользовательские параметры, включая деноминацию валюты, метод соединения с банком и некоторые другие.
  • 8.5 Перспективы

    Можно выделить три группы обсуждаемых последствий широкого принятия цифровой наличности в качестве платежного инструмента.

  • Увеличение скорости обращения денежной массы.
  • Увеличение скорости исполнения принятых экономическими агентами решений о перемещении средств.При этом следует учитывать, что критическим является не увеличение скорости принятия и исполнения решений как таковой, а соотношение между ней и скоростью реагирования на принятые решения систем, формирующих финансовые индексы. Проблема заключается, таким образом, скорее в технологическом отставании традиционных банковских, финансовых и информационных систем.
  • Изменение роли банков в национальных и мировой финансовых системах.Надежность, доступность и дешевизна современных электронных коммуникаций - одна из важнейших составляющих возможного распространения цифровой наличности. В реализации любой крупной системы наличных электронных платежей ключевое место будет принадлежать фирмам, специализирующимся на обеспечении связи, - телефонным компаниям и поставщикам сетевых услуг. Есть мнение, что в случае разворачивания систем цифровой наличности коммерческие банки могут потерять свое центральное место в денежно-финансовой системе.
  • Вернуться к учебному плану