125 Кібербезпека / 5 Курс / 5.2_Методи побудови і аналізу криптосистем / Література / пiдручник
.pdf3. Системы электронныхплатежей |
199 |
банка в таких платежах нет. Обменные транзакции с банком можно использовать для того, чтобы анонимно обменивать одну монету на несколько монет меньшего достоинства и наоборот.
3.5. Анонимные автономные СЭП
Осталось ознакомиться с самым сложным классом СЭП, соеди няющим в себе обе основные технические трудности: СЭП должны обеспечивать анонимность в условиях автономной работы участни ков системы. В этом разделе мы вначале рассмотрим проблемы по строения СЭП, основанных на взломозащищенных устройствах, а затем СЭП с идентификацией повторной траты монеты. Одна из лучших систем в этом классе - СЭП Брандса. Она будет рассмотре на самым подробным образом.
3.5.1. езп, основанные на взломозащнщенныхустройствах
Если можно было бы целиком полагаться на взломозащищен
ность аппаратных средств, выдаваемых участникам системы, то ста
ло бы возможным использовать систему, подобную той, что описана в подразд. 3.3.2, где все устройства имеют одинаковый криптогра фический ключ. Если вдобавок устройства не имеют номеров, по ко торым их можно различить, такая система может быть анонимной.
В настоящее время никто не доверяет аппаратным средствам на столько, чтобы основывать безопасность всей СЭП исключительно на предположении о технической защищенности аппаратуры. Банк как минимум хотел бы иметь некоторый механизм отображения у себя счетов, с помощью которых можно было бы мониторировать баланс каждого участника системы и обнаруживать повторную тра ту монеты. Это значит, что всякий раз, когда устройства имеют кон такт с банком (для снятия «электронной монеты» со счета или вы полнения депозита), они должны посылать все свои записи транзак ций в банк, который сортирует их по счетам и проверяет, не потратило ли устройство больше денег, чем сняло со счета. Это, очевидно, не может быть сделано без идентификации устройства.
Анонимность также отягчает проблему со взломозащищенностью устройств, конструкцию которых банк может хранить в секрете. Вла делец устройства никогда не может быть уверен в том, что оно не со-
3. Системы электронныхплатежей |
201 |
а именно во время снятия со счета, когда банк может проверить идентификатор будущего плательщика.
Еще одна проблема связана с реализацией протокола «запрос - ответ» при платеже. Что случится, если плательщик и два получате ля сотрудничают и объединились в коалицию против банка? Оба
получателя могут направить одному плательщику одинаковые за просы. Банк, естественно, не может выдать одну и ту же монету обоим получателям при выполнении депозита. Возникает вопрос: как определить приоритет выдачи монеты одному из них? Можно было бы установить, что монету получает первый получатель по по рядку обращения за депозитом в банк. Но тогда плательщик и вто рой получатель могли бы обмануть первого получателя путем по вторного использования его запроса и более быстрого выполнения депозита. Такой способ не годится. Следовательно, каждый запрос получателя к плательщику должен включать идентификатор получа теля и депозит должен быть возможен только на счет этого получа
теля.
Итак, мы пришли к выводу, что в СЭП необходимо ввести иден тификаторы получателей платежей, которые в обязательном порядке включаются в каждый запрос получателя к плательщику. Теперь по является следующий вопрос: какова должна быть структура ответов плательщика на эти запросы? Как было отмечено выше, их нужно сконструировать таким образом, чтобы один ответ плательщика ос тавлял его анонимным, а два - уже разглашали бы его идентичность. Один возможный способ заключается в том, что в качестве первого ответа берется случайное число k, в качестве второго - величина id Ее k. Тогда каждый ответ по отдельности не дает никакой ин формацииоб id, но оба ответа полностью разглашают id. Однако та кой способ оставляет возможность только для двух запросов полу чателей. Другой возможный способ - представлять ответ в виде ли нейного уравнения с двумя переменными, одна из которых id, например в такой форме: c\id +c2k . Это дает большой набор воз можных запросов, формируемыхкак пары (с), С2), Тогда один ответ все еще оставляетвозможнымлюбой id, тогда как два уравнения оп ределяют обе переменные однозначно (предполагая, что уравнения линейно независимы). Аналогичная идея и используется в СЭП Брандса, которую мы будем рассматривать ниже. Только в ней каж-
202 |
Запечников С. В. Криптографические протоколы u ихприменение |
дый ответ состоит из двух уравнений в четырех переменных, что по зволяет использовать эффективный способ проверки корректности
ответов.
Мы обозначили проблемы, которые необходимо решить в ано нимной автономной СЭП. Рассмотрим теперь конструкцию такой системы, предложенную Брандсом.
3.5.3. СЭПБрандса
СЭП Брандса - лучшая из известных анонимных автономных СЭП. Она достаточно эффективна, но ее свойства не сформулирова ны в терминах модели доказательной безопасности, и в этом ее сла бость. СЭП Брандса использует затемненную цифровую подпись, основанную на задаче дискретного логарифмирования - расширение схемы Шаума - Педерсена (Chaum - Pedersen). Ее можно рассмат ривать как расширение схемы цифровой подписи Шнорра. Чтобы понять устройство такой затемненной цифровой подписи, вспомним факт, который отмечался в ГЛ. 1: любой протокол аутентификации, основанный на доказательствах с нулевым разглашением знания, может быть стандартным образом преобразован в схему цифровой подписи. Не является исключением и рассмотренный там же прото кол аутентификации Шнорра, который легко преобразуется в схему цифровой подписи Шнорра, показанную в табл. 3.1.
В СЭП Брандса используется следующее свойство схемы аутен тификации Шнорра: если доказывающий Р может успешно пройти аутентификацию с вероятностью, существенно отличающейся от
нуля, тогда он должен знать величину х.
Для схемы цифровой подписи Шнорра выбираются два больших простых числа р.а, таких, что qlp-l, ge Gq - образующий элемент
подгруппы |
z; порядка q. |
Случайное число хЕ Zq - |
секретный |
ключ схемы цифровой подписи. Открытый ключ схемы - |
набор чи |
||
сел (P.q.g,h), |
где h =gX; т - |
подписываемое сообщение. Подписы- |
|
вающий выбирает WE R 2(/, |
вычисляет с = Н (m,а)е 21}' r = w+cx |
||
И посылает |
[т.с.r] проверяющему. Последний должен |
сравнить: |
?
в' =aht:mod р. в случае положительного результата он принимает подпись, в противном случае - отвергает.
|
|
3. Системы электронных платежей |
203 |
|||
|
|
Таблица 3.1. Схема цифровой подписи Шнорра |
||||
|
|
|
|
|
|
|
|
|
|
Предваоительный этап |
|
|
|
|
р |
|
|
Центр доверия |
V |
|
|
|
|
|
|
|
|
ХЕЛ' {l,...,q} |
|
p,q - простые числа, qlp-l. |
|
|
||
/1;:: я' mod р |
|
gE Zp :gf} =l(modp) |
|
|
||
|
|
|
|
|
||
|
|
|
|
|
|
|
р, а, К, /z |
|
|
|
|
|
|
|
|
|
Генерапия подписи |
|
|
|
|
|
р |
|
V |
|
|
|
|
|
|
|
|
|
1 |
ИJЕR Zf}' |
а ;::glY |
|
|
|
|
12 |
т - подписываемое |
|
|
|
||
сообщение, с;:: haslt(m,a) |
|
|
|
|||
|
|
|
|
|||
3 |
r =J-v+cx |
|
|
[т, С, r]~ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Проверка "од/шеи |
|
|
|
4 |
|
|
|
|
я' =а/{ modp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
На основе схемы цифровойПОДПИСИ Шнорра легко строитсяИН терактивнаясхема цифровой подписи Шаума- Педерсена с сокры тием подписанного сообщения (табл. 3.2).
Таблица 3.2. Схема цифровой подписи Шаума - Педерсена с сокрытием подписаиного сообщения
Предварительный этап
р |
|
|
Центр доверия |
V |
|
||
|
|
|
|
|
|
|
|
XE R [г,...• q}, |
|
p,q - |
простые числа, qlp-l, |
|
|
||
h= g~·modp |
|
g Е Zр : gq == 1(modр) |
|
|
|||
|
|
|
|
|
|
|
|
р, q,g, h |
|
|
|
|
|
|
|
|
|
Генерация подписи |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
р |
|
|
V |
|
|
|
|
|
|
|
|
|
О. Сокрытие |
т, z = mХ |
|
[т, z]~ |
|
|
||
|
|
|
|
|
|
|
|
подписи |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. Выбор случай- |
WE"" Zq, |
|
|
|
|
|
|
ного варианта |
а;:: я". Ь;:: т" |
[а, Ь]7 |
|
|
|||
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
2. Запрос |
|
|
|
|
~[c ] |
сЕн Zq |
|
3. Ответ |
r =w+cx |
|
|
[ r]~ |
|
|
|
|
|
Проверка подписи |
|
|
|||
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
? |
о |
|
|
|
|
|
я' =ah'"; mГ ~bz'" |
204 Запечников С. В. Криптографические протоколы 11 их применение
Основное новшество этой схемы по сравнению с предыдущей заключается в добавлении шага- (О): величину z, передаваемую от
подписывающего к проверяющему, как и саму подпись, можно сге
нерировать, только имея секретную величину .г, но проверить кор ректность z после выполнения шага (О) получатель сам не может. Оставшиеся обмены сообщениями нужны, чтобы убедить получате
ля в том, что Z корректно.
На шаге (1) выбирается величина w, которая носит название слу чайного варианта величины Х. Так как здесь есть дополнительная открытая величина Z, основанная на х, есть и такая же величина Ь, основанная на w. Шаг (2) представляет собою обычный случайный запрос проверяющего подписывающему. На шаге (3) проверка отве- 'та выполняется по основанию g и по основанию т в отдельности.
Эта схема является примером интерактивных схем цифровой подписи, в которых подписание текста происходит при участии (бу дущего) проверяющего, в то время как традиционная схема предпо лагает совершенно независимую генерацию 'н проверку подписей.
Схема затемненной подписи Шаума - Педерсена (табл. 3.3) строится на базе предыдущей. Для этого добавляем в нее шаги, где проверяющий (получатель) трансформирует подпись.
Таблица 3.3. Схема затемненной подписи Шаума - Педерсена
Предварительный зтап
р |
|
|
Центр доверия |
|
|
|
|
V |
|
|
|
|
|
|
|
|
|
|
|
ХЕл {1, ...,q}, |
|
p.q - простые числа, qjp-l, |
|
|
|
|
|||
1I = я' modp |
|
g Е Zр : g q =1(mod р) |
|
|
|
|
|
||
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
р, а, д, h |
|
|
|
|
|
|
|
|
|
|
|
Геllерация подписи |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
р |
|
|
|
|
V |
|
||
|
|
|
|
|
|
|
|
||
О. Сокрытие |
m,z==mх |
|
[ т, z J-7 |
s,t,u,VЕл |
Z",s*O~ |
||||
|
|||||||||
подписи |
|
|
|
т' = т'в', |
z' == ZShl |
||||
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
1. Выбор |
WE R Zq' |
|
|
|
|
|
|
|
|
случайного |
а == в". Ь;;; т" |
|
[а, Ь]-7 |
а' =а 11 V |
ь' |
|
ь"аш ( т'У |
||
варианта |
|
|
|
|
|||||
|
|
|
|
|
g; |
|
== |
|
|
З. Системы электронных платежей |
205 |
|||
|
|
Предварительный 'J111Q1t |
|
||
|
|
Генерация подписи |
|
|
|
|
|
|
|
|
|
|
р |
|
|
|
V |
|
|
|
|
|
|
2. Запрос |
|
|
|
с' =::: |
llasll(m', z',a',b') , |
|
|
|
~[ с] |
се; г, |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
3. Ответ |
r = w+cx |
|
[ г]~ |
|
|
|
|
Проверки подписи |
|
|
|
4 |
|
|
|
? |
? |
|
|
|
е' ~aJ{; т' ~bz(' ; |
||
|
|
|
|
||
|
|
|
|
г' = uг+v |
в этой схеме сообщение т будет соответствовать «белой» форме монеты, изображенной на рис. 3.3-3.6, а т' - «шгрихованной» ее форме. Затемненной подписью является набор величин о ;;:;; (г,а,Ь,с, r), пересылаемых от подписывающего к проверяюще
му; обычной подписью (подписью со снятым затемнением) - набор
|
(J,= ('z, а, |
, r'). |
особенность, которая делает только |
величин |
, ь',С, |
«штрихованную»монету пригоднойдля оплаты, заключаетсяв том, что только в этой форме имеет место равенство с' = lzaslz(m',
z',a',b') .
Величины (s,t, и,v) называются затемняющими факторами. ДЛЯ СЭП Брандса мы всегда будем полагать t == О, НО В общем случае в схеме Шаума - Педерсена возможно t '# О •
Продемонстрируем корректность этой, схемы цифровой подпи-
си, а именно покажем, что результат а - корректная подпись
Шаума - Педерсена для т' алгоритмически точно такая же, как и в предыдущей схеме подписи. Очевидно, что по конструкции схемы выполняется равенство с' == haslz (т', г', а',Ь') . Мы должны проверить,
что g" =а'./{ и (m'у' = ь'·(z')(". Это можно сделать, просто под
ставляя уравнения одно в другое. Но идея подписи станет еще по нятнее, если мы покажем, что все величины в левой части уравнений
имеют ту же структуру, что и справа.
В самом деле, z' = ZS • hl = т" .gXI = (ms я' у = (т'У - точнотак и
должно быть. Далее: а' = g WII+V • Здесь wu+v играеттуже рольдля а' ,
1,,1
з. Системыэлектронных платежей |
207 |
|
Существо метода заключается в следующем: т необходимо |
||
представить в форме т =8ft' |
• 82' где g" 82 - образующие элементы, |
|
которые отличаются от g, |
использовавшегося до сих |
пор, т. е. |
g, ::j:. g2 ::j:. g Е Gq , и плательщик должен знать id. Тогда, если затем-
нение осуществлено корректно, результат будет таким: т' = т'gl = g:tf-S . g~ . gl. Протокол платежа будет каким-то образом
принуждатьплательщикапродемонстрироватьзнание экспонентXI,
Х2, таких, что т';::: gjrj • g;2. Кроме того, можно показать, что тройное экспоненцирование, т. е. функция (Xl'x2,.\j )~ gi~' g;1 я" , не имеет коллизий. Таким образом, два представления т', используя тройки (id's,s,t) и (Хl'х2,О) , должны быть одними и теми же. Следова
тельно, для затемнения плательщикдолжен выбрать t = О. Тогда мы имеем: (х" Х2)= (id . s, s). Отсюда видно, что идентификатор i{l вы-
числяется таким образом: id =..:5..-. Теперь повторная трата будет
Х1
разглашать все секретные величины, в частности Xl, Х2, и следова тельно id.
Основные протоколы СЭП Брандса. Эта система электронных платежей полностью описывается комплектом из шести протоколов,
которые мы и рассмотрим ниже.
Протокол инициализации выполняется однократно ПрИ вводе СЭП в эксплуатацию. Банк генерирует ключи дЛЯ схемы затемнен ной подписи Шаума - Педерсена, т. е. p,q,g,x и /1 =g.r, где Х - секрет но, а остальные параметры публикуются. Точнее, банку для каждого номинала монет, используемых в системе, нужно выбрать одинако вые p,q,g,X, но различные Xj, hj • В дальнейшем мы для простоты рас суждений будем опускать индекс <<j», считая, что в системе обраща ются «электронные монеты» только одного номинала. Кроме того, с ключами схемы могут быть ассоциированы определенные сроки действия: монеты, подписанные этими ключами, действительны
только означенное время.
Банк также генерирует два случайных образующих элемента g, и g2. Каждый из участников системы должен доверять банку в том, что последний не умеет вычислять дискретные логарифмы по осно-
208 Запечников С. В. Криптографическиепротоколы и их примененив
ванию g]. Если банк выбираетp,q,gl случайнымобразом, то можно верить, что это условиесоблюдается.Однако MO~HOдополнительно гарантироватьих случайность,используяпроизвольнуюслучайную строку r, пользующуюся публичным доверием (например, выбирае мую из таблиц случайных чисел), и генерируя желаемые величины из r посредством детерминированных процедур. В частности, gI мо-
р-l
жет выбираться как lj--;; , где J'J - ПОДС1рока r, интерпретируемая как элемент z;.
Протокол открытия счета (табл. 3.4) выполняется однажды ДЛЯ каждого нового плательщика при вводе его в СЭП. Протокол со
стоит из следующих шагов.
Для безопасного снятия средств со счета мы должны предпола гать, что плательщик имеет пару ключей pkp ) произвольной схемы цифровой подписи, при помощи которой можно подтвер ждать действия, относящиеся к его личному банковскому счету. Ключ pkp может быть зарегистрирован в момент выполнения этого протокола или быть выработан заранее.
|
|
|
Таблица 3.4. Протокол открытия счета |
|
|
Банк В |
|
|
Плательшик Р |
|
|
|
|
|
О |
Cert(pkp ) |
|
(sk p , pk p ) - секр. и откр. КЛЮЧ любой схемы |
|
|
|
|
цифровой подписи |
|
|
|
|
|
|
1 |
|
|
id Е/1 Zq - идентификатор плательщика |
|
|
|
|
(секр. случайное число), |
|
|
|
|
I"t :::; g:d - должно быть уникально для каж- |
|
|
|
~[11/ ] |
дого плательщика |
|
|
|
|
|
|
2 |
Протокол аутентификации Шнорра: |
|||
|
(\1) |
~~ |
|
(Р) [id] |
3 |
|
~[SigK, (111)] |
т = h\82 |
|
|
|
|
|
|
На шаге (1) плательщик выбирает секретное случайное число
id (mod q) и передает ~ = gi id В банк. Здесь id - идентификатор, ко
торый служит доказательством идентичности плательщика. Если у кого-то уже есть ht , банк просит плательщика повторить свой выбор.