Протоколы информационного обмена
.pdf
Р а б о т а 10
ЦИФРОВЫЕ ДЕНЬГИ
Цель: практическое изучение протокола электронных платежей с помощью цифровых денег.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Цифровые деньги – суть специальным образом подготовленные данные. Прикладные криптографические протоколы, обеспечивающие такую подготовку данных, их передачу между абонентами и гарантию эквивалентности операций с обычными деньгами, получили название протоколов электронных платежей с помощью цифровых денег.
Существует несколько основных критериев, которым в идеале должны удовлетворять системы цифровых денег [11].
1.Анонимность покупателя. Способ оплаты товара с помощью цифровых денег не должен позволять проследить, кто именно купил данный товар.
2.Независимость от места хранения. Поскольку цифровые деньги передаются по открытым каналам связи, и потенциально любой желающий может получить копию чужих наличных, то необходимо, чтобы безопасность цифровых денег не зависела от места их физического хранения на каких-либо носителях информации.
3.Защита от мошенничества. Состояние в цифровых наличных нельзя увеличивать простым копированием, т.е. даже точную копию цифровой монеты нельзя использовать второй раз.
4.Автономность. Желательно, чтобы при осуществлении электронного платежа между покупателем и продавцом не возникало необходимости обращаться в некоторый центр для осуществления всех необходимых проверок, связанных с платежом.
5.Делимость. Если сумма в электронных наличных превосходит стоимость товара, то она может быть разделена на более мелкие части, т.е. покупатель должен иметь возможность получать «сдачу» после осуществления платежа.
69
Центральным понятием протоколов электронных платежей с помощью цифровых денег протоколов являются понятия «цифрового конверта» и подписи «вслепую». Схемы подписи «вслепую» позволяют получать документы, подписанные претендентом, который не знает содержания самих этих документов [11, 12]. Если претендентом на выставление подписи является банк, а подписываемые им документы – это чеки на предъявителя, то для нужд финансовой криптографии такие подписи обеспечивают два важных аспекта:
1)подпись банка на чеке является правильной и служит свидетельством того, что именно он заверил чек; такая подпись убедит банк в том, что именно он заверил этот чек, когда тот впоследствии будет ему предъявлен; разумеется, подпись «вслепую» обладает всеми остальными свойствами электронной цифровой подписи;
2)банк не сможет связать заверенный им чек с моментом его подписания; даже если предположить, что банк фиксирует все подписи «вслепую», по предъявленному чеку он не сможет определить, кто и когда обратился к нему с просьбой подписать данный конкретный чек.
Ниже приведен базовый вариант платежной системы с цифровыми деньгами (рис.10.1).
1. Покупатель подготавливает чек с указанной на нем суммой, которую он хочет снять со своего счета в банке. Обозначим в протоколе этот чек буквой m. Покупателю надо получить подпись на чеке, но так, чтобы банк не увидел самого чека и не смог пометить его.
2. Для этого покупатель подготавливает большое число чеков на нужную сумму и запечатывает их в конверты, а затем отправляет все их в банк. Банк вскрывает все конверты, кроме одного, и убеждается в корректности чеков. Тогда он подписывает последний конверт, не распечатывая его, и списывает со счета покупателя требуемую сумму. Если покупатель заранее положит во все конверты копировальную бумагу, то подпись банка автоматически окажется на чеке. Таким образом, банк подписал чек, не видя его и не имея возможности пометить. Криптографическое преобразование с использованием схемы RSA, обеспечивающее процедуру формирования конверта и подписи выглядит следующим образом. Пусть n – модуль шифрования, а e – открытый ключ банка. Покупатель
генерирует столько случайных чисел r , сколько конвертов он будет отсылать в банк (чем больше конвертов, тем лучше). Далее каждое r шифруется с помощью открытого ключа банка и умножается на значение чека:
c = m r e (mod n) . Для того чтобы вскрыть каждый из конвертов, банк
должен обратиться к покупателю с просьбой сообщить ему значение множителя r , так как вскрытие конверта означает получение значения
m = c
r e (mod n) . Поэтому покупатель может быть уверен, что банк не
70
сможет вскрыть ни одного конверта без его ведома. Один из конвертов банк не вскрывает, а подписывает
cd = md (r e )d (mod n) = md r(mod n) и отсылает назад покупателю. 3. Покупатель проверяет подпись банка на конверте равенством
(cd )e = c , и если оно соблюдается, то вскрывает конверт и извлекает из
него подписанный чек md = cd
r (mod n) .
4. Подписанный чек покупатель передает продавцу. Продавец проверяет подпись банка (md )e = m(mod n) и затем пересылает чек в
бан5к. Банк проверяет точно таким же образом свою собственную подпись на полученном чеке, и если она правильная, то перечисляет сумму, указанную в чеке, на счет продавца.
Банк
Чек: m |
|
|
Вскрытие n-1 |
|
|
|
конверта: |
||
Конверт: |
e |
|
m = c re (modn) |
|
c = m r |
(mod n) |
|||
|
Подпись вслепую n-го |
|||
|
|
|
||
Извлечение |
конверта: |
|||
|
||||
Алиса подписанного чека: |
cd = md (r e )d (mod n) = md r(mod n) |
|||
md = cd
r (mod n)
Подписанный чек: md
Проверка подписи банка:
Алиса |
Боб (md )e = m(mod n) |
Рис.10.1
Из приведенного выше протокола хорошо видно, на каких именно механизмах строятся действующие платежные системы. Однако данный протокол практически никак не решает вопросов, связанных с возможностью мошенничества со стороны покупателя или продавца, например путем повторного использования полученного подписанного чека и невозможности идентифицировать мошенника и т.д. Все эти проблемы решаются некоторыми модификациями базового варианта протокола [4].
71
ЗАДАНИЕ
1.Оператор банка генерирует свой открытый и закрытый ключи. Оператор банка отсылает свой открытый ключ абонентам, исполняющим роли покупателя и продавца.
2.Покупатель выбирает число, соответствующее сумме, на которую он хочет
получить чек, случайным образом выбирает пять чисел ri, где i = [1, 5] и 1 < r < n. Подготавливает пять различных цифровых конвертов с одинаковым чеком. Отправляет все конверты оператору банка.
3.Оператор банка случайным образом выбирает четыре из пяти полученных конвертов. Запрашивает у покупателя четыре соответствующих маскирующих
числа rj , где j = [1, 4]. Вскрывает все выбранные конверты. Все чеки должны быть одинаковыми, т.е. все значения mj должны быть одинаковыми. В противном случае банк отказывается подписывать последний конверт и запрашивает пять новых конвертов у покупателя. Если все чеки в распечатанных конвертах – одинаковые, то последний чек оператор банка подписывает «вслепую» и отправляет покупателю.
4.Покупатель проверяет подпись банка. Если подпись неверна, то абонент отказывается извлекать чек и просит оператора банка еще раз прислать ему подписанный «вслепую» конверт. Если подпись верна, то покупатель извлекает из конверта подписанный «вслепую» чек и посылает продавцу число, соответствующее подписанному чеку.
5.Продавец, проверяет подпись банка аналогично тому, как это делал покупатель. Если подпись неверна, то продавец отказывается принять чек и просит повторить пересылку подписанного чека. Если проверка подписи прошла успешно, то продавец высылает сообщение покупателю: «Перевод получен. Ждите товар». После этого посылает оператору банка имеющийся подписанный чек для обналичивания.
6.Оператор банка проверяет подпись банка, извлекает число m, соответствующее чеку, и сравнивает его с числом, полученным от покупателя. Эти числа должны совпасть.
7.Оформить и сдать отчет о выполнении лабораторной работы. Форма отчета приведена в приложении 1 для работы 10.
ПРАКТИЧЕСКОЕ РУКОВОДСТВО
Работа 10 выполняется группами по три человека. Работа происходит по протоколу «Цифровые деньги». Возможные роли: покупатель, продавец, оператор банка. Выберите роль для работы по протоколу. Договоритесь о том, кто создает сессию для работы по протоколу, и о времени начала работы.
72
ЛИТЕРАТУРА
1.Акритас А. Основы компьютерной алгебры с приложениями. М.:
Мир, 1994.
2.Алферов А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии: Учебное пособие. М.: Гелиос АРВ, 2001.
3.Иванов М.А. Криптографические методы защиты информации в компьютерных системах и сетях. М.: КУДИЦ-ОБРАЗ, 2001.
4.Коблиц Н. Курс теории чисел и криптографии. М.: Научное изд-во ТВП, 2001.
5.Коутинхо С. Введение в теорию чисел. Алгоритм RSA. М.: Постмаркет, 2001.
6.Манин Ю.И. Классическое вычисление, квантовое вычисление и алгоритм факторизации Шора // Библиотека «Квантовый компьютер и квантовые вычисления». Т.2 Ижевск: Ижевская республиканская типография, 1999.
7.Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в компьютерных системах и сетях. М.: Радио и связь, 1999.
8.Ростовцев А.Г. О выборе эллиптической кривой над простым полем для построения криптографических алгоритмов // Проблемы информационной безопасности. Компьютерные системы. СПб., 1999. № 3.
9.Сапегин Л.Н. Типичные дефекты в криптографических протоколах // Специальная техника средств связи. 1996.
10.Соловьев Ю.П. Рациональные точки на эллиптических кривых // Соросовский образовательный журнал. 1997. № 10.
11.Чмора А.Л. Современная прикладная криптография. М.: Гелиос АРВ, 2001.
12.Ященко В.В. Введение в криптографию. М.: МЦНМО «ЧеРо», 1998.
13.ГОСТ Р 34.10-2001. Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи. М., Госстандарт России.
14.Федеральный закон от 10.01.2002 № 1-ФЗ «Об электронной цифровой подписи» // Российская газета. 2002. № 006.
15.Diffie W., Hellman M.E. New Directions in Cryptography // IEEE Transaction on Information Theory. 1976. V.IT-22. № 6. Р.644-654.
73
16.ElGamal T. A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms // IEEE Transaction on Information Theory. 1985. V.31. № 4. Р.569-472.
17.Escott A., Sager J., Selkirk A., Tsapakidis D. Attacking Elliptic Curve Cryptosystems Using Parallel Pollard rho Method // RSA Labs. Cryptobytes. 1999. Vol.4. № 2.
18.Jonson D., Menezes A. Elliptic Curve DSA (ECDSA): An Enhanced DSA // Certicom Corp. White Papers
(http://www.certicom.com/pdfs/whitepapers/ecdsa.pdf)
19.Koblitz N. Elliptic Curve Cryptosystems // Math. Comp. 1987. V.48. Р.203-209.
20.Miller V. Use of Elliptic Curves in Cryptography // Abstracts for Crypto’85.
21.Rivest R.L., Shamir A., Adleman L.M. A Method for Obtaining Digital Signatures and Public-Key Cryptosystems // Comm. ACM. 1978. V.21. № 2.
74
ПРИЛОЖЕНИЕ 1
ФОРМЫ ОТЧЕТОВ О ВЫПОЛНЕНИИ ЛАБОРАТОРНЫХ РАБОТ
ОТЧЕТ ПО РАБОТЕ 1
Ф.И.О. ______________________________________________
Группа ______________________________________________
Дата выполнения л/р «_____» ___________________ 20 г. Логин в системе ИКАМ ________________________________
Идентификатор сессии _________________________________
Роль ________________________________________________
Задание 1
Сгенерированные параметры криптосистемы RSA
p |
q |
Модуль n |
|
Функция |
Открытый |
Секретный |
|
|
|
|
Эйлера ϕ(n) |
ключ e |
ключ d |
|
|
|
|
|
|
|
Задание 2 |
|
|
|
|
|
|
Исходный текст |
|
|
|
|||
Числовое представление исходного текста |
|
|
||||
(по блокам) |
|
|
|
|
|
|
Криптограмма (по блокам) |
|
|
|
|||
Полученная криптограмма (по блокам) |
|
|
||||
Числовое представление дешифрованной |
|
|
||||
криптограммы (по блокам) |
|
|
|
|||
Открытый текст |
|
|
|
|||
Найденный секретный ключ |
|
|
|
|||
Основная идея выполнения работы |
|
|
||||
Задание 3 |
|
|
|
|
|
|
Секретный ключ |
|
|
|
|||
Числовое представление дешифрованной |
|
|
||||
криптограммы (по блокам) |
|
|
|
|||
Открытый текст |
|
|
|
|||
Основная идея выполнения работы |
|
|
||||
Отметка о выполнении ___________________________ |
|
|||||
Подпись преподавателя __________________________ |
|
|||||
75
ОТЧЕТ ПО РАБОТЕ 2
Ф.И.О. ______________________________________________
Группа ______________________________________________
Дата выполнения л/р «_____» ___________________ 20 г. Логин в системе ИКАМ ________________________________
Идентификатор сессии _________________________________
Роль ________________________________________________
Данные абонентов информационного обмена:
Значение p |
|
|
|
Ваш секретный ключ d1 |
|
|
Значение q |
|
|
|
Открый ключ другого |
|
|
|
|
|
|
абонента e2 |
|
|
Модуль шифрова- |
|
|
|
Открытый текст M |
|
|
ния |
|
|
|
(символьное/численное |
|
|
n = p*q |
|
|
|
значения) |
|
|
Функция Эйлера |
|
|
|
Отправленная вами |
|
|
ϕ(n) |
|
|
|
криптограмма C12 |
|
|
Ваш открытый |
|
|
|
Полученная вами |
|
|
ключ e1 |
|
|
|
криптограмма C21 |
|
|
Данные злоумышленника: |
|
|
|
|
||
Модуль |
|
|
Криптограмма, отправ- |
|
||
шифрования n |
|
|
ленная 2-м абонентом, |
|
||
|
|
|
|
С21 |
|
|
Открытый ключ 1-го |
|
|
Число x, полученное из |
|
||
абонента e1 |
|
|
расширенного алго- |
|
||
|
|
|
|
ритма Евклида |
|
|
Открытый ключ 2-го |
|
|
Число y, полученное из |
|
||
абонента e2 |
|
|
расширенного алго- |
|
||
|
|
|
|
ритма Евклида |
|
|
Криптограмма, от- |
|
|
Открытый текст M |
|
||
правленная 1-м |
|
|
(символьное/численное |
|
||
абонентом, С12 |
|
|
значения) |
|
||
Отметка о выполнении ___________________________
Подпись преподавателя __________________________
76
ОТЧЕТ ПО РАБОТЕ 3
Ф.И.О. ______________________________________________
Группа ______________________________________________
Дата выполнения л/р «_____» ___________________ 20 г. Логин в системе ИКАМ ________________________________
Идентификатор сессии _________________________________
Роль ________________________________________________
Значение p1 |
|
Значение p2 |
|
Значение q1 |
|
Значение q2 |
|
Значение x |
|
Значение y2 |
|
Значение y1 |
|
Полученное сооб- |
|
|
|
щение M 21 |
|
Сообщение M11 |
|
Полученное сооб- |
|
|
|
щение M 22 |
|
Сообщение M12 |
|
Хэш-функция m21 |
|
Номер выбранного |
|
Хэш-функция m22 |
|
сообщения |
|
|
|
Хэш-функция m1 |
|
Значение a2 |
|
Значение a1 |
|
Значение b2 |
|
Значение b1 |
|
Значение V21 |
|
|
|
Значение W21 |
|
|
|
Значение V22 |
|
|
|
Значение W22 |
|
|
|
Номер полученного |
|
|
|
корректного сооб- |
|
|
|
щения |
|
Отметка о выполнении ___________________________
Подпись преподавателя __________________________
77
ОТЧЕТ ПО РАБОТЕ 4
Ф.И.О. ______________________________________________
Группа ______________________________________________
Дата выполнения л/р «_____» ___________________ 20 г. Логин в системе ИКАМ ________________________________
Идентификатор сессии _________________________________
Роль ________________________________________________
Данные 1-го абонента
Открытый ключ e1 |
|
Модуль шифрования |
|
|
|
|
2-го абонента n2 |
|
|
Закрытый ключ d1 |
|
Открытый текст M |
|
|
Модуль шифрования |
|
Криптограмма С2 |
|
|
1-го абонента n1 |
|
|
|
|
Открытый ключ 2-го |
|
Криптограмма С21 |
|
|
абонента e2 |
|
|
|
|
Данные 2-го абонента |
|
|
|
|
Открытый ключ e2 |
|
Модуль шифрования |
|
|
|
|
злоумышленника n3 |
|
|
Закрытый ключ d2 |
|
Криптограмма C23 |
|
|
Модуль n2 |
|
Криптограмма C21 |
|
|
Открытый e1 |
|
Криптограмма C22 |
|
|
Модуль n1 |
|
Открытый текст |
M1 |
|
|
|
(число/текст) |
|
|
Открытый ключ зло- |
|
Открытый текст |
M2 |
|
умышленника e3 |
|
(число/текст) |
|
|
Данные злоумышленника |
|
|
|
|
Открытый ключ e3 |
|
Открытый ключ e2 |
|
|
Закрытый ключ d3 |
|
Модуль n2 |
|
|
Модуль n3 |
|
Криптограмма C2 |
|
|
Открытый ключ e1 |
|
Криптограмма С21 |
|
|
Модуль n1 |
|
Криптограмма С23 |
|
|
Отметка о выполнении ___________________________
Подпись преподавателя __________________________
78
