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

Электронная цифровая подпись. Асимметричные алгоритмы шифрования. Сценарий распределения открытых ключей, обмен сертификатами. Выбор программных средств. Математическая модель. Скорости Эль-Гамаля для различных длин модулей. Программная реализация.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 22.09.2011
Размер файла 461,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Дипломная работа

на тему:

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

Введение

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

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

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

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

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

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

Данная работа посвящена проблемам

· распределения ключей для криптографических алгоритмов;

· обмена информации защищенной от фальсификаций и незаконных пользователей.

1. Информационный обзор

1.1 Электронная цифровая подпись

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

Системы электронной цифровой подписи (далее - ЭЦП) являются разделом криптографии.

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

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

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

Предположим, что абонент A уже сформировал свою пару секретного и открытого ключей и на их основе построил функции DKA(x) и EKA(x). Причем для любого x должно выполнятся равенство EKA(DKA(x)) = x. Функцию DKA(x) будем называть функцией подписи сообщения x, а функцию EKA(x) функцией проверки подписи для сообщения x. В дальнейшем будем отождествлять функции DKA(x) и EKA(x) с секретным и открытым ключами пользователя A соответственно. Надо заметить, что функции DKA(x) и EKA(x) связаны (так как связаны секретный и открытый ключи), однако по опубликованной функции EKA(x) вычислительно невозможно восстановить функцию DKA(x).

Рассмотрим схему взаимодействия отправителя (A) и получателя (B), которая позволяет B проверить подлинность передаваемого сообщения.

1. A создает сообщение x, которое он собирается подписать и вычисляет подпись DKA(x).

2. A передает B пару (x,DKA(x)).

3. B проверяет равенство EKA(DKA(x)) = x. В случае совпадения обоих величин B принимает решение о подлинности сообщения x, в противном случае B принимает решение считать сообщение x искаженным.

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

Напомним определение хэш-функции.

Функция h:X -> M называется хэш функцией, если выполнены следующие условия:

1. Постоянство размера - для входного массива данных любого размера результатом должен быть блок данных фиксированного размера.

2. Функция h(x) легко вычислима

3. Функцию h(x) трудно инвертировать, то есть почти для всех m из M трудно найти x из X такой, что h(x) = m.

4. Для данного x сложно найти x' неравный x такой, что h(x) = h(x').

5. Сложно найти пару (x, x') из X2 такую, что x неравен x' и h(x) = h(x').

Где M - множество векторов фиксированной длины, а X - вектора произвольной длины. Пара (x, x') из X2 такая, что x неравно x' и h(x) = h(x') называется коллизией хэш-функции h.

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

x = (x1,..,xk) \to ( (x1,DKA(x1)),.., (xk,DKA(xk))).

Где x1,..,xk - вектора фиксированной длины, совпадающей с длиной входа функций EKA(x) и DKA(x). Подобная подпись обладает следующими недостатками:

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

· злоумышленник может набрать достаточно большой набор пар (xi, DKA(xi)) и сам формировать сообщения из фрагментов.

Модифицированный протокол выглядит таким образом:

1. A создает сообщение x, которое он собирается подписать и вычисляет его хэш h(x), после чего подписывает DKA(h(x)).

2. A передает B пару (x,DKA(h(x))).

3. B проверяет равенство EKA(DKA(h(x))) = h(x). В случае совпадения обоих величин B принимает решение о подлинности сообщения x, в противном случае B принимает решение считать сообщение x искаженным.

В этом протоколе возможность подделки подписи может быть основана на нахождении коллизии хэш-функции, то есть по известному значению h(x) найти x' такой, что h(x) = h(x'). Для предотвращения этой возможности нельзя использовать непроверенные функции. Как правило, стойкие к коллизиям хэш-функции описаны в государственном стандарте. В Российской Федерации этот стандарт носит название ГОСТ Р 34.11-94, в США - описывается документами FIPS 180-1 и FIPS 180-2, а в Евросоюзе рекомендуется использование стандарта Whirlpool. Отечественный стандарт хэширования был принят в 1994 году и с тех пор не изменялся, размер хэш-блока для него составляет 256 бит. В США изначально действовал стандарт SHS (secure hash standard), где размер хэш-блока был равен 160 бит. Однако в 2002 году стандарт был пересмотрен: прежний остался действовать и получил обозначение SHA-1, но к нему были добавлены три новых алгоритма, вырабатывающие хэш-блоки размером 256,384 и 512 бит, названные SHA-256/384/512 соответственно.

Рисунок 1.1-Алгоритм электронной цифровой подписи.

1.2 Асимметричные алгоритмы шифрования

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

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

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

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

В целом система переписки при использовании асимметричного шифрования выглядит следующим образом. Для каждого из N абонентов, ведущих переписку, выбрана своя пара ключей: "открытый" Ej и "закрытый" Dj, где j - номер абонента. Все открытые ключи известны всем пользователям сети, каждый закрытый ключ, наоборот, хранится только у того абонента, которому он принадлежит. Если абонент, скажем под номером 7, собирается передать информацию абоненту под номером 9, он шифрует данные ключом шифрования E9 и отправляет ее абоненту 9. Несмотря на то, что все пользователи сети знают ключ E9 и, возможно, имеют доступ к каналу, по которому идет зашифрованное послание, они не могут прочесть исходный текст, так как процедура шифрования необратима по открытому ключу. И только абонент №9, получив послание, производит над ним преобразование с помощью известного только ему ключа D9 и восстанавливает текст послания. Заметьте, что если сообщение нужно отправить в противоположном направлении (от абонента 9 к абоненту 7), то нужно будет использовать уже другую пару ключей (для шифрования ключ E7, а для дешифрования - ключ D7).

Как мы видим, во-первых, в асимметричных системах количество существующих ключей связано с количеством абонентов линейно (в системе из N пользователей используются 2*N ключей), а не квадратично, как в симметричных системах. Во-вторых, при нарушении конфиденциальности k-ой рабочей станции злоумышленник узнает только ключ Dk: это позволяет ему читать все сообщения, приходящие абоненту k, но не позволяет вывадавать себя за него при отправке писем.

Технология применения

Технология применения систем ЭЦП рассчитана на сеть абонентов, посылающих друг другу электронные документы, например платежные поручения. Абонентами могут быть клиенты банка и сам банк в системах клиент банк или банки при обмене документами в межбанковской сети. Некоторые из этих абонентов могут только проверять подписанные другими сообщения, другие (назовем их абонентами с правом подписи) могут как проверять, так и подписывать сообщения. Кроме того, могут быть случаи, когда кто-либо может ставить свою ЭЦП только в качестве второй подписи после подписи определенного абонента-начальника (например, директор бухгалтер); это не меняет существа дела.

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

Архитектура алгоритмов ЭЦП

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

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

Постановка подписи

Чтобы поставить ЭЦП под конкретным документом, необходимо проделать довольно большой объем вычислительной работы. Эти вычисления разбиваются на два этапа.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Атаки на ЭЦП

Стойкость большинства схем ЭЦП зависит от стойкости асимметричных алгоритмов шифрования и хэш-функций.

Существует следующая классификация атак на схемы ЭЦП:

- атака с известным открытым ключом.

- Атака и известными подписанными сообщениями - противник, кроме открытого ключа имеет и набор подписанных сообщений.

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

- Направленная атака с выбором сообщения

- Адаптивная атака с выбором сообщения.

Каждая атака преследует определенную цель, которые можно разделить на несколько классов:

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

- универсальная подделка. Противник находит алгоритм, функционально аналогичный алгоритму генерации ЭЦП

- селективная подделка. Подделка подписи под выбранным сообщением.

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

На практике применение ЭЦП позволяет выявить или предотвратить следующие действия нарушителя:

- Отказ одного из участников авторства документа.

- Модификация принятого электронного документа.

- Подделка документа.

- Навязывание сообщений в процессе передачи - противник перехватывает обмен сообщениями и модифицирует их.

- Имитация передачи сообщения.

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

Некоторые средства работы с ЭЦП

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

PGP

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

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

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

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

3. Бесплатность. Готовые базовые продукты PGP (равно как и исходные тексты программ) доступны в Интернете в частности на официальном сайте PGP Inc.

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

5.Удобство программного интерфейса. PGP изначально создавалась как продукт для широкого круга пользователей, поэтому освоение основных приемов работы отнимает всего несколько часов

Текущая версия - 7.0.3 для платформ Windows 9x/NT/2000, MacOS.

GNU Privacy Guard (GnuPG)

GnuPG (www.gnupg.org) - полная и свободно распространяемая замена для пакета PGP. Этот пакет не использует патентованный алгоритм IDEA, и поэтому может быть использован без каких-нибудь ограничений. GnuPG соответствует стандарту RFC2440 (OpenPGP).

Текущая версия - 1.0.4, платформы - Unices, Windows 9x/NT

Криптон

Пакет программ КРИПТОН®Подпись (http://www.ancud.ru/crypto/crpodpis.htm) предназначен для использования электронной цифровой подписи (ЭЦП) электронных документов.

Программы пакета КРИПТОН®Подпись функционируют на компьютере, удовлетворяющем следующим требованиям:

· наличие операционной системы Windows-98 или Windows NT 4.0;

· наличие УКЗД серии КРИПТОН с соответствующим драйвером для Windows-98/NT или его программного драйвера-эмулятора для Windows - Crypton Emulator версии 1.3 или выше.

· наличие Crypton API для Windows версии 2.2 или выше (входит в поставку УКЗД серии КРИПТОН и содержит также драйвер поставляемого УКЗД);

· наличие манипулятора "мышь".

В стандартной поставке для хранения файлов открытых ключей используются дискеты. Помимо дискет, пакет КРИПТОН®Подпись дает возможность использования всех типов ключевых носителей (смарт-карт, электронных таблеток Touch Memory и др.), поддерживаемых текущей версией интерфейса SCApi, входящего в поставку Crypton API v2.2 и выше

Управление ключами

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

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

0дной из главных сфер применения схемы шифрования с открытым ключом является решение проблемы распределения ключей. Имеется две совершенно различные области использования шифрования с открытым ключом в этой сфере:

– распределение открытых ключей;

– использование шифрования с открытым ключом для распределения секретных ключей.

Рассмотрим каждую из этих областей использования данной схемы шифрования по порядку .

Распределение открытых ключей

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

– публичное объявление;

– публично доступный каталог;

– авторитетный источник открытых ключей;

– сертификаты открытых ключей.

Публичное объявление открытых ключей

Одной из основных составляющих шифрования с открытым ключом является то, что открытый ключ является общедоступным. Таким образом, при наличии широко используемого алгоритма (например, RSA) любая участвующая в обмене данными сторона может предоставить свой открытый ключ любой другой стороне или передать ключ по средствам коммуникаций для всех вообще (рис. 1.2). Например, из-за возрастающей популярности PGP в которой используется RSA, многие пользователи PGP приняли практику присоединения своих открытых ключей к сообщениям, которые они посылают в открытые форумы, например в группы новостей USENET или списки рассылки Internet.

Рисунок 1.2 - Неконтролируемое распределение открытых ключей

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

Размещено на http://www.allbest.ru/

Рисунок 1.3 - Публикация открытых ключей

Публично доступный каталог

Более высокую степень защиты можно обеспечить с помощью создания и обслуживания некоторого публично доступного динамичного каталога открытых ключей. За сопровождение и распространение публичного каталога должен отвечать некоторый надежный центр или надежная организация (рис. 1.3). Такая схема должна включать следующие элементы.

Уполномоченный объект поддерживает каталог с записями вида {имя, открытый ключ} для каждого из участников.

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

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

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

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

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

Авторитетный источник открытых ключей

Лучшая защита распределения открытых ключей может быть достигнута путем более строгого контроля за распределением открытых ключей из каталога. Типичный сценарий представлен схемой (рис. 1.3), в основу которого положен один из рисунков из [РОРЕ79]. Как и прежде, сценарий предполагает наличие некоторого центрального объекта, уполномоченного поддерживать динамический каталог открытых ключей всех участников обмена данными. Кроме того, каждому из участников достоверно известен открытый ключ центра, но только центр знает соответствующий личный ключ. При этом выполняются следующие действия (их номера согласованы с номерами на рис. 1.3).

Инициатор А посылает сообщение с меткой даты/времени авторитетному источнику открытых ключей с запросом о текущем открытом ключе участника В.

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

- открытый ключ участника В, KUb, который участник А может использовать для шифрования сообщений, предназначенных для получателя В;

- оригинальный запрос, чтобы сторона А имела возможность сопоставить ответ с ранее отправленным запросом и убедиться, что запрос не был изменен на пути к авторитетному источнику;

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

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

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

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

Респондент В посылает сообщение инициатору А, шифрованное с помощью KU. и содержащее оказию отправителя А (N1), а также новую оказию, сгенерированную участником В (N2). Ввиду того что только он и мог де шифровать сообщение (3), присутствие N1 в сообщении (6) убеждает участника А в том, что отправителем полученного сообщения был В.

Размещено на http://www.allbest.ru/

Рисунок 1.4 - Сценарий распределения открытых ключей

Инициатор А возвращает N2, шифрованное с помощью открытого ключа участника В, чтобы тот мог убедиться в том, что отправителем ответа является А.

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

Сертификаты открытых ключей

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

Альтернативный подход, который предложил Конфельдер (Kohnfelder) [KOHN78], основан на сертификатах, которые могут использоваться участниками для обмена ключами без контакта с авторитетным источником открытых ключей и должны обеспечивать способ обмена, такой же надежный, как способ получения ключей непосредственно от авторитетного источника открытых ключей. Каждый сертификат содержит открытый ключ и другую информацию, создается авторитетным источником сертификатов и выдается участнику вместе с соответствующим личным ключом. Один участник передает информацию о своем ключе другом; с помощью передачи своего сертификата. Другие участники мо гут проверить, что сертификат был создан авторитетным источником. Можно сформулировать следующие требования к этой схеме:

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

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

Только авторитетный источник сертификатов должен иметь возможность создавать и изменять сертификаты.

Все эти требования удовлетворялись первоначальной схемой из [KOHN78]. Деннинг (Denning) добавил к ним следующее дополнительное требование [DENN83].

4. Любой участник должен иметь возможность проверить срок действия сертификата.

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

CA=EKRauth[T, IDA, KUa],

где KR.auth обозначает личный ключ, используемый авторитетным источником. Теперь участник А может переслать этот сертификат любому другому участнику, который прочитывает и проверяет сертификат:

D KUauth [CA] = DKUauth[EKRauth[T, IDA, KUa] = (Т, IDA, KUa ).

Получатель использует открытый ключ авторитетного источника сертификатов KUauth , чтобы дешифровать сертификат. Ввиду того, что сертификат можно прочитать только с помощью открытого ключа авторитетного источника сертификатов это дает гарантию того, что сертификат пришел именно от авторитетного источника сертификатов. Элементы IDA и KUa сообщают получателю имя и открытый ключ владельца сертификата. Наконец, метка даты/времени Т определяет срок действия сертификата. Метка даты/времени должна быть защищена от следующей последовательности действий. Противник узнает личный ключ А. По этой причине А генерирует новую пару ключей (личный и открытый) и обращается к авторитетному источнику сертификатов за новым сертификатом. Тем временем противник воспроизводит сообщение со старым сертификатом и отсылает его В. Если В будет шифровать сообщения, используя старый скомпрометированный открытый ключ, противник сможет прочитать эти сообщения.

Размещено на http://www.allbest.ru/

Рисунок 1.5- Обмен сертификатами открытых ключей

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

Распределение секретных ключей с помощью системы с открытым ключом

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

Простое распределение секретных ключей

Исключительно простую схему предложил Меркл (Merkle) [MERK79], рис. 1.6. Если инициатор А намерен обменяться данными с пользователем В, для этого предполагается следующая процедура.

Размещено на http://www.allbest.ru/

Рисунок 1.6 -- Простое использование шифрования с открытым ключом при выборе сеансового ключа

Сторона А генерирует пару открытый/личный ключи {KUа, KRа} и передает сообщение стороне В, содержащее KUа и идентификатор отправителя A, IDA .

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

Пользователь А вычисляет DKRа[EKUa[Ka]], чтобы восстановить секретный ключ. Поскольку только пользователь А может дешифровать это сообщение, только участника обмена данными А и В будут знать значение Кa.

Участник А выбрасывает ключ KRa , а участник В -- выбрасывает ключ KUa.

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

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

Участник А генерирует пару открытый/личный ключи {KUa, KRa} и передает сообщение адресату В, содержащее KUa и идентификатор участника А IDА.

Противник Е перехватывает сообщение, создает собственную пару открытый/личный ключи {KUe, KRe} и передает сообщение адресату В, содержащее KUe || IDA .

В генерирует секретный ключ Кa и передает ЕKUe[Кa].

Противник Е перехватывает это сообщение и узнает Кa , вычисляя DKRe [EKUe [Ka]] .

Противник Е передает участнику А сообщение ЕKUa[Кa].

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

Распределение секретных ключей с обеспечением конфиденциальности и аутентификации

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

Размещено на http://www.allbest.ru/

Рисунок 1.7 -- Распределение секретных ключей с помощью шифрования с открытым ключом

Сторона А использует открытый ключ стороны В, чтобы переслать стороне В шифрованное сообщение, содержащее идентификатор участника A (IDA) и оказию (N1), используемую для идентификации данной конкретной транзакции.

Пользователь В посылает сообщение пользователю А, зашифрованное с помощью KUa и содержащее полученную от него оказию (N1) и новую оказию (N2), сгенерированную пользователем В. Ввиду того что только участник В мог дешифровать сообщение (1), присутствие N1 в сообщении (2) убеждает участника А в том, что респондентом является сторона В.

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

Участник А выбирает секретный ключ Кa посылает участнику В сообщение М = EKUb[EKRa[Ka]]. Шифрование этого сообщения открытым ключом стороны В гарантирует, что только участник В сможет прочитать его, а шифрование личным ключом участника А -- что только участник А мог послать его.

Сторона В вычисляет DKUa [EKRb [M]], чтобы восстановить секретный ключ.

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

Гибридная схема

Еще одна схема использования шифрования с открытым ключом при распределении секретных ключей представляет гибридный подход, применяемый на мэйнфреймах IBM [LE93]. Эта схема предполагает участие центра распределения ключей (ЦРК), с которым каждый пользователь использует свой главный секретный ключ, и распределение секретных сеансовых ключей, шифруемых главным ключом. Схема шифрования с открытым ключом служит для распределения главных ключей. В основе такого трехуровневого подхода лежит следующая логика.

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

2. Обратная совместимость. Гибридную схему можно легко реализовать в виде расширения уже имеющейся схемы, предполагающей использование ЦРК, с минимальными изменениями предусмотренной процедуры и программного обеспечения.

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

Итогом, все перечисленные методы обмена ключами наряду с индивидуальными недостатками имеют один общий: все существующие системы обмена ключами являются закрытыми, недоступными для анализа ПО и использования в разрабатываемых системах

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

Таким образом, в работе необходимо разработать программное приложение, осуществляющее:

создание электронной цифровой подписи в электронном документе с использованием закрытого ключа электронной цифровой подписи;

создание закрытых и открытых ключей электронных цифровых подписей.

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

Для разработки программного приложения будем использовать программную среду Delphi 7.0.

2. Выбор метода решения

2.1 Выбор программных средств

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

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

Пакет Delphi - продолжение линии компиляторов языка Pascal корпорации Borland. Pascal как язык очень прост, а строгий контроль типов данных способствует раннему обнаружению ошибок и позволяет быстро создавать надежные и эффективные программы. Корпорация Borland постоянно обогащала язык. Когда-то в версию 4.0 были включены средства раздельной трансляции, позже, начиная с версии 5.5, появились объекты, а в состав шестой версии пакета вошла полноценная библиотека классов Turbo Vision, реализующая оконную систему в текстовом режиме работы видеоадаптера. Это был один из первых продуктов, содержавших интегрированную среду разработки программ.

В классе инструментальных средств для начинающих программистов продуктам компании Borland пришлось конкурировать со средой Visual Basic корпорации Microsoft, где вопросы интеграции и удобства работы были решены лучше. Когда в начале 70-х годов Н. Вирт опубликовал сообщение о Pascal, это был компактный, с небольшим количеством основных понятий и зарезервированных слов язык программирования, нацеленный на обучение студентов. Язык, на котором предстоит работать пользователю Delphi, отличается от исходного не только наличием множества новых понятий и конструкций, но и идейно: в нем вместо минимизации числа понятий и использования самых простых конструкций (что, безусловно, хорошо для обучения, но не всегда оправдано в практической работе), предпочтение отдается удобству работы профессионального пользователя. Как язык Turbo Pascal естественно сравнивать с его ближайшими конкурентами - многочисленными вариациями на тему языка Basic (в первую очередь с Visual Basic корпорации Microsoft) и с C++. Я считаю, что Turbo Pascal существенно превосходит Basic за счет полноценного объектного подхода, включающего в себя развитые механизмы инкапсуляции, наследование и полиморфизм. Последняя версия языка, применяемая в Delphi, по своим возможностям приближается к C++. Из основных механизмов, присущих C++, отсутствует только множественное наследование. (Впрочем, этим красивым и мощным механизмом порождения новых классов пользуется лишь небольшая часть программистов, пишущих на С++.) Плюсы применения языка Pascal очевидны: с одной стороны, в отличие от Visual Basic, основанного на интерпретации промежуточного кода, для него имеется компилятор, генерирующий машинный код, что позволяет получать значительно более быстрые программы. С другой - в отличие от C++ синтаксис языка Pascal способствует построению очень быстрых компиляторов.

Среда программирования напоминает пакет Visual Basic. В вашем распоряжении несколько отдельных окон: меню и инструментальные панели, Object Inspector (в котором можно видеть свойства объекта и связанные с ним события), окна визуального построителя интерфейсов (Visual User Interface Builder), Object Browser (позволяющее изучать иерархию классов и просматривать списки их полей, методов и свойств), окна управления проектом (Project Manager) и редактора.


Подобные документы

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

    реферат [20,6 K], добавлен 09.10.2014

  • Симметричные и асиметричные методы шифрования. Шифрование с помощью датчика псевдослучайных чисел. Алгоритм шифрования DES. Российский стандарт цифровой подписи. Описание шифрования исходного сообщения асимметричным методом с открытым ключом RSA.

    курсовая работа [101,1 K], добавлен 09.03.2009

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

    контрольная работа [34,5 K], добавлен 30.09.2013

  • История криптографии. Сравнение алгоритмов шифрования, применение в операционной системе. Анализ продуктов в области пользовательского шифрования. Включение и отключение шифрования на эллиптических кривых. Использование хеш-функции. Электронная подпись.

    курсовая работа [492,6 K], добавлен 18.09.2016

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

    реферат [27,8 K], добавлен 13.09.2011

  • Основы криптографических систем. Алгоритм создания открытого и секретного ключей. Схема передачи шифрованной информации и алгоритм для цифровой подписи. Преимущества и недостатки системы RSA. Основные формулы для создания RSA-ключей шифрования.

    курсовая работа [683,6 K], добавлен 18.12.2011

  • Организационно-правовое обеспечение электронной цифровой подписи. Закон "Об электронной цифровой подписи". Функционирование ЭЦП: открытый и закрытый ключи, формирование подписи и отправка сообщения. Проверка (верификация) и сфера применения ЭЦП.

    курсовая работа [22,9 K], добавлен 14.12.2011

  • Назначение и применение электронной цифровой подписи, история ее возникновения и основные признаки. Виды электронных подписей в Российской Федерации. Перечень алгоритмов электронной подписи. Подделка подписей, управление открытыми и закрытыми ключами.

    курсовая работа [604,0 K], добавлен 13.12.2012

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

    презентация [883,5 K], добавлен 18.05.2017

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

    контрольная работа [180,1 K], добавлен 29.11.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.