Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Протоколы информационного обмена

.pdf
Скачиваний:
102
Добавлен:
10.05.2014
Размер:
1.77 Mб
Скачать

Р а б о т а 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 = cr 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