Помощь в написании студенческих работ
Антистрессовый сервис

Электронные платежи. 
Криптографические методы защиты информации

РефератПомощь в написанииУзнать стоимостьмоей работы

Безопасность банка основывается на невозможности подделать его подпись для создания фальшивой банкноты, или, более общим образом, на невозможности, получив набор подлинных электронных банкнот, подделать подпись еще хотя бы для одной банкноты. Для неотслеживаемости покупателя необходимо, чтобы банк, получив банкноту в транзакции платежа, не мог установить, кому она была выдана. То же относится и… Читать ещё >

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

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

Безопасность банка основывается на невозможности подделать его подпись для создания фальшивой банкноты, или, более общим образом, на невозможности, получив набор подлинных электронных банкнот, подделать подпись еще хотя бы для одной банкноты. Для неотслеживаемости покупателя необходимо, чтобы банк, получив банкноту в транзакции платежа, не мог установить, кому она была выдана. То же относится и к «сдаче». Это, казалось бы, парадоксальное требование удовлетворяется с помощью схемы затемненной подписи: в транзакции снятия со счета банк подписывает не банкноту, а некоторую «абракадабру», из которой покупатель восстанавливает подписанную банкноту. Таким образом, неотслеживаемость гарантируется тем, что банк просто не знает, что именно он подписал. Пример схемы затемненной подписи приведен в подпараграфе 4.5.7.

Схемы Чома. Здесь мы приводим описание двух схем из работы Чома[1]. В этой работе они описаны очень кратко, однако эти схемы достаточно просты и хорошо иллюстрируют основные идеи и методы, лежащие в основе банковских криптографических протоколов.

В обеих схемах банк вырабатывает два больших простых числа р и q и публикует их произведение N = pq} сохраняя множители в секрете (инициализация схемы электронной подписи RSA). Кроме того, выбирается и публикуется некоторая однонаправленная функция/: Zv—? Zv. Устанавливается соглашение, согласно которому экспоненте, равной г-му нечетному простому числу, соответствует номинал в 2f1, скажем, центов (т.е. предъявитель пары (/7,/(я)1/3(то (1 N)) является владельцем электронной банкноты достоинством в 1 цент). Если в этой паре вместо корпя кубического присутствует корень 7-й степени, то банкнота имеет достоинство 4 цента, а если 21-й степени — то 5 центов. Иными словами, для банкноты достоинством S центов необходим корень степени, равной произведению всех простых, соответствующих единицам в двоичном представлении числа S.

В первой схеме все банкноты, выдаваемые банком, имеют одинаковое достоинство. Для простоты изложения будем предполагать, что оно равно 15 центам. Тогда подпись банка на банкноте, это — корень h-й степени, где h = 3 • 5 • 7 • 11. Для этой схемы нужен также еще дополнительный модуль RSA Nv который используется в работе с так называемой копилкой (см. ниже). Этот модуль выбирается и публикуется таким же образом, как и модуль N.

В транзакции снятия со счета покупатель выбирает случайное значение п{ е ZN и вычисляет f (nx). Ему нужно получить подпись банка на этой банкноте, т. е. вычислить /(я,)1/Л. Но просто послать значение /(/?,) банку покупатель не может, поскольку для снятия денег со счета он должен идентифицировать себя. Поэтому если банк получает/(и,), он в дальнейшем всегда узнает данную банкноту и неотслеживаемость будет потеряна.

Решение проблемы состоит в использовании затемненной подписи: покупатель выбирает случайное значение г, е Zv, гх ^ 0, вычисляет (mod N) и посылает это значение байку. Множитель rf часто называют затемняющим множителем. Банк вычисляет значение /(и,)1/Аг, (mod N) и возвращает его покупателю. Покупатель легко «снимает» затемняющий множитель и получает подписанную банкноту /(Wj)1/A(mod N).

Предположим, теперь, что покупатель желает заплатить продавцу 5 центов. Для этого он вычисляет i (mod N), просто возводя полученную банкноту в 55-ю степень, и создает копилку, выбирая случайное значение j и вычисляя /(/)si «(modiV,). Здесь опять sf'11 — затемняющий множитель. Транзакция платежа начинается с пересылки значений nv /(rc,)I/3'7(mod N), /(/У*5 «(modAT,), а также суммы платежа (5 центов) продавцу. Продавец, в свою очередь, передает всю эту информацию банку. Банк легко проверяет, что пара (nv /(я,)1/3 7(modN)) представляет собой подлинную банкноту достоинством 5 центов. Он проверяет по специальному регистру, не была ли банкнота с номером пЛ потрачена ранее. Если нет, записывает в регистр вновь полученную банкноту и посылает продавцу уведомление о завершении транзакции платежа, а также «сдачу» 10 центов для покупателя, возвращаемую через копилку: f (jy/5 Us{(mod N{).

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

Необходимость депозита полученной от банка «сдачи» нарушает неотслеживаемость: банк запоминает все платежи, а значит, и все «сдачи» и при выполнении транзакции депозита может «вычислить» клиента, выполнившего данный платеж. Эта проблема частично может быть решена за счет многократного использования копилки в транзакциях платежа.

Предположим, что покупатель получил в банке вторую банкноту с номером п2 и желает заплатить тому же или другому продавцу сумму в 3 цента. Тогда в транзакции платежа он может использовать копилку со «сдачей», оставшейся после первого платежа и послать продавцу п2, /(я9),/35(тос1 ЛГ), /(/)1/5Ils2 «(modiV,). Платеж выполняется таким же образом, как было описано выше, и в результате покупатель получит копилку /(/)1/5,11 7 11 (mod Лг1).

В транзакции депозита покупатель кладет накопленную в копилке сумму на свой счет в банке. Для этого он посылает банку значения 7,/(/)1/5 11 7 11 (mod N,) и указывает сумму. Банк проверяет копилку так же, как банкноту, т. е. устанавливает наличие всех корней с объявленными покупателем кратностями, а также проверяет, что копилка с номером ] не использовалась ранее ни в одной транзакции депозита. Если все условия выполнены, банк вычисляет сумму, находящуюся в копилке, и зачисляет ее на счет покупателя.

Чем больше платежей выполняется с одной и той же копилкой и чем больше клиентов в системе, тем ниже шансы банка отследить действия каждого из них.

Вторая схема, предложенная в той же работе Чома, основывается на тех же идеях, поэтому здесь описываются только ее отличия от предыдущей. Во-первых, используется только один модуль (в описаниях мы его опускаем). Во-вторых, банк может выдавать банкноты различного достоинства. А именно, пусть h, как и выше, соответствует максимальному достоинству банкноты и gh. Тогда банк может выдать банкноту, достоинство которой соответствует числу g. Кроме того, пусть d соответствует сумме платежа, где d |g и с = g/d «сдача».

Транзакция снятия со счета выполняется так же, как в предыдущей схеме. В транзакции платежа покупатель посылает продавцу, а тот банку, следующие значения: /?,/(^)1АУ, с, msc. Банк возвращает покупателю (через продавца) значение th1/c-s-f (f (n)i/c).

Число т может быть выбрано как /(/?,) для некоторого нового значения nv что позволяет в дальнейшем использовать «сдачу» в новом платеже без необходимости промежуточного депозита и снятия со счета (т.е. «сдача» становится такой же электронной банкнотой, как и сумма, снятая со счета).

Множитель f (f (n)l/c) в значении, возвращаемом банком, необходим для того, чтобы покупатель мог вычислить т{/столько тогда, когда он знает Транзакция депозита в данной схеме ничем не отличается (с криптографической точки зрения) от транзакции платежа.

«Сдача», возвращенная в транзакции платежа, может быть разделена на несколько банкнот. Предположим, например, что в последнем платеже было rf = 511, c = 3 -7, а значение т было сформировано как т = /(^|)3/(^2)7— Тогда после снятия затемняющих множителей со значения, возвращенного банком, будет получена величина а = mi/2i. После этого покупатель вычисляет и = 3-1 (mod 7), v = 3M (div7),/(«,)' 7 = (a3f (n2) l)"f (n{yv, f (n2)l/3 = «/(и,)177.

В результате получены две банкноты достоинством в 1 и 4 цента соответственно.

При условии что банк выпускает большое количество банкнот каждого достоинства, данная схема обеспечивает практическую неотслсживаемость клиентов.

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

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

Для размышления Основной вид спора, который возможен в платежных системах, — это спор клиента с банком о состоянии счета. Здесь арбитр должен установить истину путем сопоставления подписанных банком сообщений о зачислении на счет (предоставляемых клиентом) и подписанных клиентом запросов на снятие со счета (предоставляемых банком).

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

Запрос клиента — это сообщение, которое содержит номер счета, снимаемую сумму и число f (n)rh. Сообщение должно быть заверено подписью клиента. Если клиент отказывается признать этот запрос, то выполняется процедура арбитража, обычная для споров о подлинности электронной подписи. В том случае, когда клиент признает запрос, но утверждает, что деньги до него почему-то не дошли, арбитр не разбирает ситуацию дальше, а, пользуясь одним из замечательных свойств электронных денег, постановляет: банк должен выдать клиенту банкноту на запрошенную сумму! Даже если клиент нечестен, он всего лишь еще раз получит ту же электронную банкноту f (n)iA/h. Это один из примеров того, что электронные деньги обладают некоторыми необычными и неожиданными свойствами, которых нет у обычных бумажных денег.

Следует заметить, что любой разбор спора по платежу в арбитраже лишает покупателя анонимности. Поэтому нечестный банк всегда может объявить, что данная банкнота уже была потрачена и тем самым установить «личность» покупателя.

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

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

Определяют два типа законной затемненной подписи.

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

Тип 2: по заданной парс (сообщение, подпись) арбитр выдаст информацию, позволяющую подписывающему эффективно определить, в каком из сеансов выполнения протокола затемненной подписи это сообщение было подписано.

Предлагается следующая схема законной затемненной подписи. Пусть (п, е) — открытый ключ схемы RSA, секретный ключ которой известен подписывающему; ЕЛ) функция шифрования криптосистемы с открытым ключом, секретный ключ которой известен арбитру; Н — криптографически стойкая хэш-функция; к — параметр безопасности. Участник протокола, желающий получить затемненную подпись, называется отправителем. Знак || обозначает конкатенацию; ID — идентификатор сеанса выполнения протокола; т — подписываемое сообщение.

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

  • 1. Отправитель для всякого г = 1,…, 2k выбирает наудачу г е Zn и строки а, р-. Вычисляет щ= ЕЛта^у vt= EX1Dр,), т = rfH (u.||uf.) (mod п). Посылает тх подписывающему.
  • 2. Подписывающий выбирает наудачу подмножество 5<= {1,…, 2к). Посылает S отправителю.
  • 3. Отправитель для всех i е S посылает подписывающему г., ujy р.
  • 4. Подписывающий для всех i е S проверяет, что тх = = г-Н (их||Ej (IDр^))(modп). Если хотя бы одно из этих сравнений не выполнено, останавливается. В противном случае вычисляет

b = П т}х/е) (mod п) и посылает его отправителю.

  • 16 5
  • 5. Отправитель вычисляет s = b/Yl r; (mod;?). Подпись состоит

ieS

из s и множества Т= {(a, v{) | i е 5}.

Верификация подписи состоит в проверке сравнения se = = П [H (Ef(ma)v)](modn).

((a, v)eT)

Этот протокол является схемой законной затемненной подписи одновременно типа 1 и типа 2, поскольку:

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

Если вместо указанных в описании протокола вычислений положить vi = H (ID ||р;) (соответственно, г/, = H (m||ау)), то протокол будет схемой законной затемненной подписи только типа 1 (соответственно, только типа 2).

  • [1] Chaum D. Online cash checkers // Adv. in Cryptology — EUROCRYPT89: LNCS. 1990. Vol. 434. P. 288−293.
Показать весь текст
Заполнить форму текущей работой