Электронная подпись

Автор работы: Пользователь скрыл имя, 17 Марта 2013 в 13:29, курсовая работа

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

Цифровая подпись должна обладать следующими свойствами:
1. Должна быть возможность проверить автора, дату и время создания подписи.
2. Должна быть возможность аутентифицировать содержимое во время создания подписи.
3. Подпись должна быть проверяема третьей стороной для разрешения споров.

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

1. ОБЩИЕ СВЕДЕНИЯ
1.1. ОБЩАЯ СХЕМА РАБОТЫ
2. АЛГОРИТМЫ ЭЛЕКТРОННОЙ ПОДПИСИ
2.1 КОНТРОЛЬНЫЕ СУММЫ
2.2 КОНТРОЛЬ CRC
2.3 АЛГОРИТМ RSA
2.4 АЛГОРИТМ DSA
2.5 ОТЕЧЕСТВЕННЫЙ СТАНДАРТ ЦИФРОВОЙ ПОДПИСИ ПО ГОСТ 3410
2.6 ОБЩИЕ СВЕДЕНИЯ О ХЭШИРОВАНИИ
3. МЕТОДЫ ИСПОЛЬЗОВАНИЯ ФУНКЦИИ ЦИФРОВОЙ ПОДПИСИ
3.1 ПРЯМАЯ И АРБИТРАЖНАЯ ЦИФРОВЫЕ ПОДПИСИ
3.2 СИММЕТРИЧНОЕ ШИФРОВАНИЕ, АРБИТР ВИДИТ СООБЩЕНИЕ
3.3 СИММЕТРИЧНОЕ ШИФРОВАНИЕ, АРБИТР НЕ ВИДИТ СООБЩЕНИЕ
3.4 ШИФРОВАНИЕ ОТКРЫТЫМ КЛЮЧОМ: АРБИТР НЕ ВИДИТ СООБЩЕНИЕ
3.5 ОБЩИЕ КОМПОНЕНТЫ ПОДПИСЫВАНИЯ
4. СРЕДСТВА РАБОТЫ С ЭЕЛКТРОННОЙ ПОДПИСЬЮ
4.1 ПАКЕТ PGP
4.2 GNU Privacy Guard (GnuPG)
4.3 «КРИПТОН»
5. ПРАВОВОЕ РЕГУЛИРОВАНИЕ ЭЦП В РОССИИ
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

Файлы: 1 файл

Курсовая работа на тему Электронная подпись..docx

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

СОДЕРЖАНИЕ:

  1. ОБЩИЕ СВЕДЕНИЯ
    1. ОБЩАЯ СХЕМА РАБОТЫ
  2. АЛГОРИТМЫ ЭЛЕКТРОННОЙ ПОДПИСИ

2.1 КОНТРОЛЬНЫЕ  СУММЫ

2.2 КОНТРОЛЬ CRC

2.3 АЛГОРИТМ RSA

2.4 АЛГОРИТМ DSA

2.5 ОТЕЧЕСТВЕННЫЙ СТАНДАРТ ЦИФРОВОЙ ПОДПИСИ ПО ГОСТ 3410

2.6 ОБЩИЕ СВЕДЕНИЯ О ХЭШИРОВАНИИ

     3. МЕТОДЫ ИСПОЛЬЗОВАНИЯ ФУНКЦИИ ЦИФРОВОЙ ПОДПИСИ

3.1 ПРЯМАЯ И АРБИТРАЖНАЯ ЦИФРОВЫЕ ПОДПИСИ

 3.2  СИММЕТРИЧНОЕ ШИФРОВАНИЕ, АРБИТР ВИДИТ СООБЩЕНИЕ

3.3  СИММЕТРИЧНОЕ ШИФРОВАНИЕ, АРБИТР НЕ ВИДИТ СООБЩЕНИЕ

3.4 ШИФРОВАНИЕ ОТКРЫТЫМ КЛЮЧОМ: АРБИТР НЕ ВИДИТ СООБЩЕНИЕ

3.5 ОБЩИЕ КОМПОНЕНТЫ ПОДПИСЫВАНИЯ

4. СРЕДСТВА РАБОТЫ С ЭЕЛКТРОННОЙ ПОДПИСЬЮ

4.1 ПАКЕТ PGP

4.2 GNU Privacy Guard (GnuPG)

4.3 «КРИПТОН»

5. ПРАВОВОЕ РЕГУЛИРОВАНИЕ ЭЦП В РОССИИ

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

 

 

 

 

1. ОБЩИЕ СВЕДЕНИЯ

 

Представим себе следующую ситуацию: по электронной почте получен документ с конфиденциальной информацией по финансированию на следующий год. Получателю необходима абсолютная уверенность в том, что полученный файл совершенно идентичен оригиналу и содержащиеся в нем цифры не были изменены в пути. Подозрение, что документ в пути был подделан, появляется, если некоторые цифры не сходятся, а электронная передача велась через внешнюю почтовую систему. Как убедиться в том, что полученный документ - абсолютная копия необходимого оригинала?

Рассмотренная ситуация не настолько искусственна, как может показаться с первого взгляда. В век, когда цифровая коммерция быстро становится реальностью, доверие пользователей к подобного рода системам целиком зависит от безопасности таких транзакций. Если отправить по электронной почте или передать на гибком диске файл с электронной таблицей, то каким образом получатель узнает о том, что никто, через кого эта информация прошла, не внес каких-либо изменений? Если переслать по сети Internet номер своей кредитной карточки, то как адресат убедится в том, что именно вы сделали этот заказ?

Решение этих вопросов придется искать в специальном разделе математики, который называют криптографией. Часто под этим термином подразумевается обычное кодирование, однако область криптографии не ограничена лишь теорией шифрования данных. Она также охватывает вопросы, связанные с подменностью цифровых данных - как проверить достоверность цифровых данных и как по аналогии с рукописной подписью на бумаге проставить визу на электронных документах, имея в распоряжении лишь последовательности нулей и единиц [2].

Электронная цифровая подпись (ЭЦП)— реквизит электронного документа, предназначенный для защиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа электронной цифровой подписи и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе, а также обеспечивает неотказуемость подписавшегося [3].

Цифровая подпись должна обладать следующими свойствами:

1. Должна быть возможность проверить автора, дату и время создания подписи.

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

3. Подпись должна быть проверяема третьей стороной для разрешения споров.

На основании этих свойств можно сформулировать следующие требования к цифровой подписи:

1. Подпись должна быть битовым образцом, который зависит от подписываемого сообщения.

2. Подпись должна использовать некоторую уникальную информацию отправителя для предотвращения подделки или отказа.

3. Создавать цифровую подпись должно быть относительно легко.

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

5. Цифровая подпись должна быть достаточно компактной и не занимать много памяти.

Сильная хэш-функция, зашифрованная закрытым ключом отправителя, удовлетворяет перечисленным требованиям [1].

 

 

1.1 ОБЩАЯ СХЕМА РАБОТЫ

 

Схема электронной подписи обычно включает в себя:

Алгоритм генерации ключевых пар пользователя

Функцию вычисления подписи

Функцию проверки подписи

Функция вычисления подписи на основе документа и секретного ключа пользователя вычисляет собственно подпись. В зависимости от алгоритма функция вычисления подписи может быть детерминированной или вероятностной. Детерминированные функции всегда вычисляют одинаковую подпись по одинаковым входным данным. Вероятностные функции вносят в подпись элемент случайности, что усиливает криптостойкость алгоритмов ЭЦП. Однако, для вероятностных схем необходим надёжный источник случайности (либо аппаратный генератор шума, либо криптографически надёжный генератор псевдослучайных бит), что усложняет реализацию. В настоящее время детерминированные схемы практически не используются. Даже в изначально детерминированные алгоритмы сейчас внесены модификации, превращающие их в вероятностные (так, в алгоритм подписи RSA вторая версия стандарта PKCS#1 добавила предварительное преобразование данных (OAEP), включающее в себя, среди прочего, зашумление).

Функция проверки подписи проверяет, соответствует ли данная подпись данному документу и открытому ключу пользователя. Открытый ключ пользователя доступен всем, так что любой может проверить подпись под данным документом.

Поскольку подписываемые документы — переменной (и достаточно большой) длины, в схемах ЭЦП зачастую подпись ставится не на сам документ, а на его хэш. Для вычисления хэша используются криптографические хэш-функции, что гарантирует выявление изменений документа при проверке подписи. Хэш-функции не являются частью алгоритма ЭЦП, поэтому в схеме может быть использована любая надёжная хэш-функция.

Алгоритмы ЭЦП делятся на два больших класса: обычные цифровые подписи и цифровые подписи с восстановлением документа. Обычные цифровые подписи необходимо пристыковывать к подписываемому документу. К этому классу относятся, например, алгоритмы, основанные на эллиптических кривых (ECDSA, ГОСТ Р 34.10-2001, ДСТУ 4145-2002). Цифровые подписи с восстановлением документа содержат в себе подписываемый документ: в процессе проверки подписи автоматически вычисляется и тело документа. К этому классу относится один из самых популярных алгоритмов — RSA.

Алгоритмы ЭЦП делятся на два больших класса: обычные цифровые подписи и цифровые подписи с восстановлением документа. Обычные цифровые подписи необходимо пристыковывать к подписываемому документу. К этому классу относятся, например, алгоритмы, основанные на эллиптических кривых (ECDSA, ГОСТ Р 34.10-2001, ДСТУ 4145-2002). Цифровые подписи с восстановлением документа содержат в себе подписываемый документ: в процессе проверки подписи автоматически вычисляется и тело документа. К этому классу относится один из самых популярных алгоритмов — RSA [4].

 

 

2. АЛГОРИТМЫ ЭЛЕКТРОННОЙ ПОДПИСИ

 

Отсутствие электронного эквивалента подписи в 60-70 годы являлось фактором, сдерживавшим широкое применение безбумажной технологии обработки документов. Общепризнанные приемы установления подлинности физической подписи под документами абсолютно не пригодны при обработке документов в электронной форме. Необходимо было другое решение.

Такое решение впервые было предложено в 1977 году в виде так называемой системы «электронного подписывания документов» или, короче говоря, «электронной подписи».

Процедура электронной подписи включает в себя пару алгоритмов, один из которых (подписывание) хранится в секрете, а второй (проверка) выдается всем, кому будут адресоваться подписанные документы. Подписывание документа – файла состоит в вычислении с помощью программы «подпись» по содержимому файла некоторого большого числа, которое и называется его электронной подписью. Программа проверки по содержимому файла и его числу-подписи быстро и надежно удостоверяет, что подпись вычислена именно из этого документа-файла и именно данной конкретной программой подписывания. Принципиальным моментом в электронной подписи является невозможность ее подделывания без секретной программы подписывания [5].

 

 

 

 

 

 

 

 

2.1 КОНТРОЛЬНЫЕ СУММЫ

 

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

 

Checkssum = Total % (MaxVal + 1)

 

где Total - итоговая сумма, рассчитанная по входным данным, и MaxVal - максимально допустимое значение контрольной суммы, заданное заранее.

Допустим, документ, содержимое которого предстоит верифицировать, представляет собой следующую последовательность величин, длиной 10 байт: 36 211 163 4 109 192 58 247 47 92

Если контрольная сумма 1 байт величина, то максимальное число, которое она может содержать, равно 255.Для приведенного выше документа сумма всех его чисел равно 1159. Таким образом, 8-разрядов контрольной суммы будут содержать остаток от деления числа 1159 на 256, то есть 135. Если контрольная сумма, рассчитана отправителем документа, равнялась, скажем, 246, а после получения она имеет значение 135, значит, информация подверглась изменению. Метод контрольных сумм - это наиболее простая форма цифровой идентификации (digital fingerprint); то есть величина, полученная в результате подсчета содержимого некоторых других данных, изменяется при коррекции данных, на основе которых он получен. Использование алгоритма контрольных сумм началось еще на заре вычислительной техники и до сих пор он является базовым при проверке на ошибки в некоторых версиях широко распространенного протокола передачи данных XMODEM.

Недостаток метода контрольных сумм заключается в том, что хотя несовпадение значений этих сумм служит верным доказательством, что рассматриваемый документ подвергся изменению, равенство сравниваемых значений еще не дает гарантии, что информация осталась неизменной. Можно произвольным образом изменить порядок следования чисел в документе, а контрольная сумма при этом сохранит прежнее значение. И что еще хуже - можно изменить отдельные числа в документе и подогнать остальные таким образом, чтобы обеспечить прежнее значение контрольной суммы.

При использовании дл контрольных сумм 8-разрядной переменной вероятность того, что контрольные суммы двух совершенно случайно выбранных последовательностей данных будут одинаковы, равна 1/256. При увеличении длины переменной под контрольную сумму до 16 или 32 разрядов, вероятность совпадений уменьшается, однако этот механизм все равно слишком чувствителен к возможным ошибкам, чтобы обеспечить высокую степень доверия к представленным данным [2].

 

 

 

 

 

 

 

 

 

2.2 КОНТРОЛЬ CRC

 

Более совершенный способ цифровой идентификации некоторой последовательности данных - это вычисление контрольного значения ее циклического избыточного кода (cyclic redundancy check - CRC). Алгоритм контроля CRC уже в течение длительного времени широко используется в системах сетевых адаптеров, контроллеров жесткого диска и других устройств для проверки идентичности входной и выходной информации. А также этот механизм применяется во многих из ныне существующих коммуникационных программ для выявления ошибок при пакетной передаче по телефонным линиям связи.

Механизм CRC основан на полиномиальном распределении, где каждый разряд некоторой порции данных соответствует одному коэффициенту большого полиномиального выражения. Напомним, что полиномом называется математическое выражение, представленное следующим образом:

 

f(x) = 4x3 + x2 + 7

 

Для выполнения расчетов контроля CRC полином, представляющий байт данных со значением 85 (8-разрядный двоичный эквивалент которого - 01010101) выглядит так:

 

0x7 + 1x6 + 0x5 + 1x4 + 0x3 + 1x2 + 0x1 + 1x0

 

или просто

 

x6 + x4 + x2 + 1

 

Ключевым принципом вычислений для механизма CRC является то, что операции умножения и деления этих полиномов выполняются точно так же, как с обычными числами. Если некоторый "магический" полином (коэффициенты которого получены в соответствии с используемым алгоритмом CRC) разделить на полином, представляющий какую-то последовательность данных, то в результате получается полином-частное и полином-остаток. Второе из этих значений служит основой для создания контрольного параметра CRC. Так же, как и для контрольных сумм, параметром CRC не требуется много места (обычно их длина составляет 16 или 32 разряда); однако по сравнению с ними, надежность обнаружения небольших изменений входной информации теперь значительно выше. Если в некотором огромном блоке данных лишь один разряд стал другим, то и контрольный параметр CRC со 100-процентной вероятностью также будет иметь другое значение. Если же изменятся два разряда, то вероятность обнаружения ошибки при длине параметра CRC в 16-разрядов, составляет более 99,99%. В отличие от контрольных сумм метод CRC сможет распознать всякие фокусы с перестановкой двух байт либо с добавлением 1 к одному из них и вычитанием 1 из другого.

Механизм CRC чрезвычайно полезен для проверки файлов, загружаемых из сетевых информационных служб. Если кто-то сообщает мне, что переданная ему через сеть ZD Net утилита вдруг без видимой причины перестает работать, то первым делом я прошу его создать ее архивный файл с помощью программы PKZIP и набрать команду PKZIP -V для просмотра созданного .ZIP файла. Среди прочих параметров он увидит также 32-разрядное значение параметра CRC, рассчитанное программой PKZIP для несжатого файла. Если вычисленное значение параметра CRC для gjkextyyjq утилиты не совпадает со значением для исходного варианта файла, значит, при загрузке его произошла необнаруженная ошибка передачи данных (такое иногда случается).

Информация о работе Электронная подпись