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

Автор работы: Пользователь скрыл имя, 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 Кб (Скачать файл)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

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

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

Более высокой надежности, чем при контроле CRC, можно достичь при использовании односторонних алгоритмов хеширования; результатом их работы являются особые "хешированные" значения. Под термином "односторонние" понимается следующее: имея на входе А, можно без особого труда получить на выходе В, но сделать обратное - то есть из В получить А - невозможно, или, во всяком случае, практически невозможно. Важная отличительная особенность любого хорошего алгоритма хеширования заключается в том, что генерируемые с его помощью значения настолько уникальны и трудноповторимы, что вряд ли кто-то даже с помощью серии суперкомпьютеров, затратив колоссальное количество времени, сможет найти два набора входных данных, имеющих одинаковые значение хеширования. Как правило, эти параметры занимают не менее 128 разряды. Чем больше их длина, тем труднее воспроизвести входной набор данных, то есть найти последовательность, обеспечивающую соответствующий результат.

Среди односторонних алгоритмов хэширования наибольшей известностью пользуются два из них: алгоритм MD5 (message digest), разработанный профессором Массачусетского технологического института Роном Ривестом (Ron Rivest) (один из авторов популярной криптосистемы с ключом общего пользования RSA), и алгоритм Secure Hash Algorithm (SHA), созданный совместными усилиями Национального института по стандартизации и технологическим разработкам (NIST) и Управления национальной безопасности США (NSA). Результат анализа последовательности входных данных с помощью алгоритма MD5 - 128-разрядный цифровой идентификатор, а при использовании алгоритма SHA - 160-разрядное значение. Учитывая, что пока никому не удалось подобрать ключ ни к одному из названных алгоритмов, можно считать, что восстановление исходных данных по некоторому хешированному значению, являющемуся результатом работы алгоритма SNA либо по некоторому коэффициенту алгоритма MD5 нереально.

Таким образом, если вам отправили какой-то файл и идентификатор, полученный в результате применения к нему алгоритма MD5 или SHA, и если вы выполнили с ним тот же алгоритм хеширования и ваш результат совпал с исходным значением, определенно можно быть уверенным, что принятый вами файл не подвергся искажениям [2].

 

 

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

 

Существует несколько подходов к использованию функции цифровой подписи. Все они могут быть разделены на две категории: прямые и арбитражные.

 

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

 

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

Конфиденциальность может быть обеспечена дальнейшим шифрованием всего сообщения вместе с подписью открытым ключом получателя (асимметричное шифрование) или разделяемым секретным ключом (симметричное шифрование). Заметим, что обычно функция подписи выполняется первой, и только после этого выполняется функция конфиденциальности. В случае возникновения спора некая третья сторона должна просмотреть сообщение и его подпись. Если функция подписи выполняется над зашифрованным сообщением, то для разрешения споров придется хранить сообщение как в незашифрованном виде (для практического использования), так и в зашифрованном (для проверки подписи). Либо в этом случае необходимо хранить ключ симметричного шифрования, для того чтобы можно было проверить подпись исходного сообщения. Если цифровая подпись выполняется над незашифрованным сообщением, получатель может хранить только сообщение в незашифрованном виде и соответствующую подпись к нему.

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

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

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

Арбитр играет важную роль в подобного рода схемах, и все участники должны ему доверять.

Рассмотрим некоторые возможные технологии арбитражной цифровой подписи.

 

 

 

 

 

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

 

Х A: M || EKxa [ IDX || H (M)]

Предполагается, что отправитель Х и арбитр А разделяют секретный ключ KАY и что А и Y разделяют секретный ключ KАY. Xсоздает сообщение М и вычисляет его хэш-значение Н (М). Затем Х передает сообщение и подпись А. Подпись состоит из идентификатора Х и хэш-значения, все зашифровано с использованием ключа KХА. А дешифрует подпись и проверяет хэш-значение.

 

A Y: ЕКay [ IDX || M ||

 

EKxa [IDX || H (M)], T ]

 

Затем А передает сообщение к Y, шифруя его KAY.. Сообщение включает IDX, первоначальное сообщение от Х, подпись и отметку времени. Y может дешифровать его для получения сообщения и подписи. Отметка времени информирует Y о том, что данное сообщение не устарело и не является повтором. Y может сохранить М и подпись к нему. В случае спора Y, который утверждает, что получил сообщение М от Х, посылает следующее сообщение к А:

 

ЕКay [ IDX || M || EKxa [IDX || H (M)] ]

 

Арбитр использует KAY для получения IDХ, М и подписи, а затем, используя KХА, может дешифровать подпись и проверить хэш-код. По этой схеме Y не может прямо проверить подпись Х; подпись используется исключительно для разрешения споров. Y считает сообщение от Х аутентифицированным, потому что оно прошло через А. В данном сценарии обе стороны должны иметь высокую степень доверия к А:

1. Х должен доверять А в том, что тот не будет раскрывать KХА и создавать фальшивые подписи в форме

 

ЕKка [IDX || H (M)].

 

2. Y должен доверять А в том, что он будет посылать

 

ЕKay [ IDX || M || EKxa [IDX || H (M)] ]

 

только в том случае, если хэш-значение является корректным и подпись была создана Х.

3.Обе стороны должны доверять А в решении спорных вопросов [1].

 

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

 

Если арбитр не является такой доверенной стороной, то Х должен добиться того, чтобы никто не мог подделать его подпись, а Y должен добиться того, чтобы Х не мог отвергнуть свою подпись.

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

 

X A: IDX || EKхy [M] ||

EKxa [IDX || H (EKXY [M]) ]

 

Х передает А свой идентификатор, сообщение, зашифрованное KXY, и подпись. Подпись состоит из идентификатора и хэш-значения зашифрованного сообщения, которые зашифрованы с использованием ключа KХА. А дешифрует подпись и проверяет хэш-значение. В данном случае А работает только с зашифрованной версией сообщения, что предотвращает его чтение.

 

A Y: EKay [ IDX || EKXY[M] ||

EKxa [ IDX || H ( EKXY [M])], T]

 

А передает Y все, что он получил от Х плюс отметку времени, все шифруя с использованием ключа KAY.

Хотя арбитр и не может прочитать сообщение, он в состоянии предотвратить подделку любого из участников, Х или Y. Остается проблема, как и в первом сценарии, что арбитр может сговориться с отправителем, отрицающим подписанное сообщение, или с получателем, для подделки подписи отправителя [1].

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

Все обсуждаемые проблемы могут быть решены с помощью схемы открытого ключа.

 

X A: IDX || EKRх [ IDX || EKUy [EKRx [M] ] ]

 

В этом случае Х осуществляет двойное шифрование сообщения М, сначала своим закрытым ключом KRX, а затем открытым ключом Y KUY. Получается подписанная секретная версия сообщения. Теперь это подписанное сообщение вместе с идентификатором Х шифруется KRX и вместе с IDX посылается А. Внутреннее, дважды зашифрованное, сообщение недоступно арбитру (и всем, исключая Y). Однако А может дешифровать внешнюю шифрацию, чтобы убедиться, что сообщение пришло от Х (так как только Х имеет KRX). Проверка дает гарантию, что пара закрытый/открытый ключ законна, и тем самым верифицирует сообщение.

A Y: EKRa [ IDX || EKUy [EKRx [M] ] || T ]

 

Затем А передает сообщение Y, шифруя его KRА. Сообщение включает IDX, дважды зашифрованное сообщение и отметку времени.

Эта схема имеет ряд преимуществ по сравнению с предыдущими двумя схемами. Во-первых, никакая информация не разделяется участниками до начала соединения, предотвращая договор об обмане. Во-вторых, некорректные данные не могут быть посланы, даже если KRX скомпрометирован, при условии, что не скомпрометирован KRА. В заключение, содержимое сообщения от Х к Y неизвестно ни А, ни кому бы то ни было еще [1].

 

 

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

 

Существует три параметра, которые являются открытыми и могут быть общими для большой группы пользователей.

160-битное простое число: q, т.е. 2159 < q < 2160.

Простое число р длиной между 512 и 1024 битами должно быть таким, чтобы q было делителем (р - 1), т.е. . 2L-1 < p < 2L, где 512 < L < 1024 и (p-1)/q является целым.

 

g = h(p-1)/q mod p,

 

где h является целым между 1и (р-1), и g должно быть больше, чем 1,10.

Зная эти числа, каждый пользователь выбирает закрытый ключ и создает открытый ключ.

Закрытый ключ х должен быть числом между 1 и (q-1) должен быть выбран случайно или псевдослучайно: x - случайное или псевдослучайное целое, 0 < x < q.

Открытый ключ вычисляется из закрытого ключа как

 

у = gx mod p.

 

Вычислить у по известному х довольно просто. Однако, имея открытый ключ у, вычислительно невозможно определить х, который является дискретным логарифмом у по основанию g:

 

y = gx mod p.

 

K - случайное или псевдослучайное целое, 0 < k < q, для каждого подписывания.

Подписывание

Для создания подписи отправитель вычисляет две величины, r и s, которые являются функцией от компонент открытого ключа (p, q, g), закрытого ключа пользователя (х), хэш-кода сообщения Н (М) и целого k, которое должно быть создано случайно или псевдослучайно и должно быть уникальным при каждом подписывании:

 

r = (gk mod p) mod q

s = [ k-1 (H (M) + xr) ] mod q

 

Подпись = (r, s)

Проверка подписи

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

 

w = s-1 mod q

u1 = [ H (M) w ] mod q

u2 = r w mod q

v = [ (gu1 yu2) mod p ] mod q

подпись корректна, если v = r [1].

 

 

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

 

4.1 ПАКЕТ PGP

 

Наиболее известный - это пакет PGP (Pretty Good Privacy), – без сомнений являющийся на сегодня самым распространенным программным продуктом, позволяющим использовать современные надежные криптографические алгоритмы для защиты информации в персональных компьютерах.

К основным преимуществам данного пакета, выделяющим его среди других аналогичных продуктов следует отнести следующие:

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