САНКТ – ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Факультет технической кибернетики
Кафедра информационных и управляющих систем
Реферат
«Цифровая подпись»
Студент Барташевич Е.Е.
Преподаватель Чистяков И.В.
Санкт-Петербург
2001
Содержание
1. Ассиметричные алгоритмы шифрования 3
1.1. Стандарт ассимметричного шифрования RSA 4
1.1.1. Генерация ключей 4
1.1.2. Шифрование/расшифрование 5
1.2. Алгоритм ЭльГамаля 6
1.2.1. Общие сведения 6
1.2.2. Шифрование сообщений 6
1.2.3. Подтверждение подлинности отправителя 6
1.3. Алгоритм Шамира 7
1.3.1. Общее описание 7
1.3.2. Передача сообщений 7
1.3.3. Пример использования 8
1.4. Кpиптосистемы на основе эллиптических уpавнений 8
2. Электронно-цифровая подпись 9
2.1. Общие положения 9
3. Алгоритм DSA 10
3.1. Генерация ЭЦП 11
3.2. Проверка ЭЦП 12
4. Стандарт на процедуры ЭЦП ГОСТ Р 34.10-94 12
4.1. Генерация ЭЦП 13
4.2. Проверка ЭЦП 13
5. Цифровые подписи, основанные на симметричных криптосистемах 13
6. Атаки на ЭЦП 22
7. Некоторые средства работы с ЭЦП 23
7.1. PGP 23
7.2. GNU Privacy Guard (GnuPG) 24
7.3. Криптон 24
7.4. ВербаО 24
8. Литература и ссылки 26
Ассиметричные алгоритмы шифрования
Развитие основных типов криптографических протоколов (ключевой обмен, электронно-цифровая подпись (ЭЦП), аутентификация и др) было бы невозможно без создания открытых ключей и построенных на их основе ассиметричных протоколов шифрования.
Основная идея асимметричных криптоалгоритмов состоит в том, что для шифрования сообщения используется один ключ, а при дешифровании – другой.
Кроме того, процедура шифрования выбрана так, что она необратима даже по известному ключу шифрования – это второе необходимое условие асимметричной криптографии. То есть, зная ключ шифрования и зашифрованный текст, невозможно восстановить исходное сообщение – прочесть его можно только с помощью второго ключа – ключа дешифрования. А раз так, то ключ шифрования для отправки писем какому-либо лицу можно вообще не скрывать – зная его все равно невозможно прочесть зашифрованное сообщение. Поэтому, ключ шифрования называют в асимметричных системах "открытым ключом", а вот ключ дешифрования получателю сообщений необходимо держать в секрете – он называется "закрытым ключом".
Таким образом, мы избавляемся от необходимости решать сложную задачу обмена секретными ключами.
Напрашивается вопрос : "Почему, зная открытый ключ, нельзя вычислить закрытый ключ ?" – это третье необходимое условие асимметричной криптографии – алгоритмы шифрования и дешифрования создаются так, чтобы зная открытый ключ, невозможно вычислить закрытый ключ.
В целом система переписки при использовании асимметричного шифрования выглядит следующим образом. Для каждого из N абонентов, ведущих переписку, выбрана своя пара ключей : "открытый" Ej и "закрытый" Dj, где j – номер абонента. Все открытые ключи известны всем пользователям сети, каждый закрытый ключ, наоборот, хранится только у того абонента, которому он принадлежит. Если абонент, скажем под номером 7, собирается передать информацию абоненту под номером 9, он шифрует данные ключом шифрования E9 и отправляет ее абоненту 9. Несмотря на то, что все пользователи сети знают ключ E9 и, возможно, имеют доступ к каналу, по которому идет зашифрованное послание, они не могут прочесть исходный текст, так как процедура шифрования необратима по открытому ключу. И только абонент №9, получив послание, производит над ним преобразование с помощью известного только ему ключа D9 и восстанавливает текст послания. Заметьте, что если сообщение нужно отправить в противоположном направлении (от абонента 9 к абоненту 7), то нужно будет использовать уже другую пару ключей (для шифрования ключ E7, а для дешифрования – ключ D7).
Как мы видим, во-первых, в асимметричных системах количество существующих ключей связано с количеством абонентов линейно (в системе из N пользователей используются 2*N ключей), а не квадратично, как в симметричных системах. Во-вторых, при нарушении конфиденциальности k-ой рабочей станции злоумышленник узнает только ключ Dk : это позволяет ему читать все сообщения, приходящие абоненту k, но не позволяет вывадавать себя за него при отправке писем.
1 Стандарт ассимметричного шифрования RSA
Самым распространенным алгоритмом ассиметричного шифрования является алгоритм RSA. Он был предложен тремя исседователями-математиками
Рональдом Ривестом (R.Rivest) , Ади Шамиром (A.Shamir) и Леонардом
Адльманом (L.Adleman) в 1977-78 годах. Разработчикам данного алгоритма удалось эффективно воплотить идею односторонних функций с секретом.
Стойкость RSA базируется на сложности факторизации больших целых чисел.
В 1993 году метод RSA был обнародован и принят в качестве стандарта
(PKCS #1: RSA Encryption standart). RSA можно применять как для шифрования/расшифрования, так и для генерации/проверки электронно- цифровой подписи.
1 Генерация ключей
Первым этапом любого асимметричного алгоритма является создание пары ключей : открытого и закрытого и распространение открытого ключа "по всему миру". Для алгоритма RSA этап создания ключей состоит из следующих операций :
Выбираются два простых (!) числа p и q
Вычисляется их произведение n(=p*q)
Выбирается произвольное число e (e