Криптография

Автор работы: Пользователь скрыл имя, 10 Декабря 2012 в 10:43, реферат

Описание работы

Разработать алгоритмы, реализующий криптографический протокол обмена несекретным документом со слепой цифровой подписью на основе алгоритма RSA взаимодействия удаленных абонентов на основе асимметричных криптосистем.
Хеширование выполнять на основе любого блочного сим¬мет¬ричного алгоритма (с использованием алгоритма/программы из предыдущих лаб. работ) по одной из схем, данных в лекциях.

Содержание работы

Постановка задачи. 3
Теоретические сведения. 3
Алгоритм создания открытого и секретного ключей 3
Слепая цифровая подпись. 4
Алгоритм слепой подписи. 4
Пример работы программы. 6
Вывод. 7

Файлы: 1 файл

Отчет.Криптография..docx

— 89.39 Кб (Скачать файл)

 

 

 

 

 

 

 

 

Оглавление

Постановка задачи. 3

Теоретические сведения. 3

Алгоритм создания открытого и секретного ключей 3

Слепая цифровая подпись. 4

Алгоритм слепой подписи. 4

Пример работы программы. 6

Вывод. 7

 

 

Постановка  задачи.

 

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

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

Проверить правильность выполнения протокола  для малых значений параметров криптосистемы (контрольный пример).

Теоретические сведения.

Алгоритм создания открытого и секретного ключей

RSA-ключи генерируются  следующим образом: 

  1. Выбираются два различных случайных простых числа p и q заданного размера (например, 1024 бита каждое).
  2. Вычисляется их произведение n = pq, которое называется модулем.
  3. Вычисляется значение функции Эйлера от числа n:

φ(n) = (p − 1)(q − 1).

  1. Выбирается целое число e (1 < e < φ(n)), взаимно простое со значением функции φ(n). Обычно в качестве e берут простые числа, содержащие небольшое количество единичных битов в двоичной записи, например, простые числа Ферма 17, 257 или 65537.
    • Число e называется открытой экспонентой (англ. public exponent)
    • Время, необходимое для шифрования с использованием быстрого возведения в степень, пропорционально числу единичных бит в e.
  2. Слишком малые значения e, например 3, потенциально могут ослабить безопасность схемы RSA.
  3. Вычисляется число d, мультипликативно обратное к числу e по модулю φ(n), то есть число, удовлетворяющее условию:

 или: de = 1 + kφ(n), где k — некоторое целое число.

    • Примечание: Можно вычислять и так (e*d) mod ((p-1)*(q-1)) = 1. Результат операции i mod j — остаток от целочисленного деления i на j, то есть если имеем (d*3) mod 20 = 1. Значит d будет, например 7. (Может быть и другим, например 27).
    • Число d называется секретной экспонентой.
    • Обычно, оно вычисляется при помощи расширенного алгоритма Евклида.
  1. Пара e, n публикуется в качестве открытого ключа RSA (англ. RSA public key).
  1. Пара d, n играет роль секретного ключа RSA (англ. RSA private key) и держится в секрете.

Слепая цифровая подпись.

Слепая подпись (Blind Signature) — разновидность ЭЦП, особенностью которой является то, что подписывающая сторона не может точно знать содержимое подписываемого документа. Понятие слепой подписи придумано Дэвидом Чаумом, им же предложена первая реализация через алгоритм RSA.

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

Эту схему можно сравнить с конвертом, в котором размещён документ и копировальный лист. Если подписать конверт, то подпись отпечатается на документе, и при вскрытии конверта документ уже будет подписан.

Цель слепой подписи состоит  в том, чтобы воспрепятствовать  подписывающему лицу В ознакомиться с сообщением стороны А, которое он подписывает, и с соответствующей подписью под этим сообщением. Поэтому в дальнейшем подписанное сообщение невозможно связать со стороной А.

Алгоритм слепой подписи.

Полностью слепая подпись

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

  1. Алиса берёт документ и умножает его на случайное число. Оно называется маскирующим множителем.
  2. Алиса отсылает документ Бобу
  3. Боб подписывает документ и отсылает обратно
  4. Алиса удаляет маскирующий множитель и получает свой документ с подписью.

Этот протокол работает только если функции подписи и умножения коммутативны.

Слепая подпись

  1. Боб готовит n документов на каждом из которых написано некоторое уникальное слово (чем больше n, тем меньше у Боба шансов смошенничать).
  2. Боб маскирует каждый документ уникальным маскирующим множителем и отправляет их Алисе.
  3. Алиса получает все документы и случайным образом выбирает n-1 из них.
  4. Алиса просит Боба выслать маскирующие множители для выбранных документов.
  5. Боб делает это.
  6. Алиса вскрывает n-1 документов и убеждается что они корректны.
  7. Алиса подписывает оставшийся документ и отсылает Бобу.
  8. Теперь у Боба есть подписанный Алисой документ с уникальным словом, которое Алиса не знает.

Алгоритм для протокола RSA

Первая реализация слепых подписей была осуществлена Чаумом с помощью криптосистемы RSA:

  1. Алиса выбирает случайным образом число из диапазона от 1 до n. Затем она маскирует m, вычисляя: 
  2. Боб подписывает t: 
  3. Алиса снимает маскировку с td, вычисляя 
  4. Результатом является 

Чаум придумал целое семейство более сложных алгоритмов слепой подписи под общим названием неожиданные слепые подписи. Их схемы ещё сложнее, но они дают больше возможностей.

Применение.

 

Банковские системы

Наиболее широкое применение протокол слепых подписей нашёл в  сфере цифровых денег. Например, чтобы вкладчик не обманул банк, может использоваться такой протокол: вкладчик пишет одинаковый номинал купюр на ста документах с разными номерами и депонирует в зашифрованном виде у банка. Банк выбирает случайным образом и требует раскрыть 99 (или n-1) конвертов, убеждается, что везде написано $10, а не $1000, тогда подписывает оставшийся конверт вслепую, не видя номера купюры.

Может быть предусмотрен более  простой вариант: за каждым номиналом  купюры у банка закреплена своя пара открытых ключей. Тогда под подпись  присылается только номер купюры и необходимость проверки номинала перед подписью отпадает.

Тайное голосование

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

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

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

 

Пример  работы программы.

 

рис 1.  Алгоритм слепой ЭЦП. Содержимое файлов совпадает.

 

 

 

 

рис 2.  Алгоритм слепой ЭЦП. Содержимое файлов различно.

Вывод.

 

В данной курсовой работе реализован  алгоритм криптографического протокол  обмена несекретным документом со слепой цифровой подписью на основе алгоритма  RSA взаимодействия удаленных абонентов на основе асимметричных криптосистем с применением 128-ми битного алгоритма хэширования MD5.

 

 


Информация о работе Криптография