Разработка и программная реализация электронной цифровой подписи асимметричным методом шифрования данных

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



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

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

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

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

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

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

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

Если рассматриваемое соотношение оказывается выполненным, то подпись признается правильной, а сам документ подлинным, в противном случае документ считается измененным, а подпись под ним недействительной.

Стандарты и сертификаты

Система ЭЦП должна решать задачу предотвращения подделки подписи. Не так давно (после долгих споров, продвинувших науку вперед) в США был принят стандарт на электронную подпись. Для чего он нужен? Во-первых, для получения уверенности в том, что сделанное в соответствии со стандартом средство реализации ЭЦП является криптостойким. Во-вторых, стандарт обеспечивает патентную чистоту. В частности, алгоритм RSA запатентован в США.

Некоторые банки используют в качестве основы своей системы ЭЦП известный пакет программ Pretty Good Privacy (PGP), созданный под руководством Филипа Циммермaннa (Philip Zimmermann). Хотя он свободно рaспрострaняется по сетям, это не означает, что его можно безнаказанно использовать существует патентное законодательство. Кроме того, в банках обнаружено несколько закладок (в частности против систем, построенных на основе пакета программ PGP), при помощи которых были подделаны электронные документы (см. статью А.Щербакова, упомянутую выше).

Попросту говоря, стандарт это достаточно подробное описание алгоритмов, по которым вычисляется и проверяется подпись.

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

В России приняты стандарты: ГОСТ Р 34.10-94 "Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма" и ГОСТ Р 34.11-94 "Функция хеширования". В основу ГОСТ Р 34.10-94 положена однонаправленная функция, основанная на дискретном возведении в степень.

Можно быть вполне уверенным, что алгоритм из стандарта ГОСТ Р 34.10-94 обладает высокой криптографической стойкостью. Однако пользователя мало интересуют премудрости криптографии. Он должен быть убежден, что его подпись никто подделать не сможет и если программа определила, что такое-то сообщение подписал А. Б. Иванов, то его на самом деле подписал именно А. Б. Иванов и он не сможет от этого отпереться.

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

Гарантией надежности может служить сертификация продукта Федеральным агентством правительственной связи и информации (ФАПСИ). Сертификация - это процесс, в результате которого подтверждается соответствие требованиям стандарта. Однако в данном случае имеется тонкость, состоящая в том, что стандарт определяет процедуру выработки и проверки электронной цифровой подписи, а сертифицируется средство, реализующее эту процедуру. При сертификации необходимо проверять соответствие сертифицируемого средства требованиям не только стандарта, но и целому ря