Разработка и программная реализация электронной цифровой подписи асимметричным методом шифрования данных
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
дать информацию абоненту под номером 9, он шифрует данные ключом шифрования E9 и отправляет ее абоненту 9. Несмотря на то, что все пользователи сети знают ключ E9 и, возможно, имеют доступ к каналу, по которому идет зашифрованное послание, они не могут прочесть исходный текст, так как процедура шифрования необратима по открытому ключу. И только абонент №9, получив послание, производит над ним преобразование с помощью известного только ему ключа D9 и восстанавливает текст послания. Заметьте, что если сообщение нужно отправить в противоположном направлении (от абонента 9 к абоненту 7), то нужно будет использовать уже другую пару ключей (для шифрования ключ E7, а для дешифрования - ключ D7).
Как мы видим, во-первых, в асимметричных системах количество существующих ключей связано с количеством абонентов линейно (в системе из N пользователей используются 2*N ключей), а не квадратично, как в симметричных системах. Во-вторых, при нарушении конфиденциальности k-ой рабочей станции злоумышленник узнает только ключ Dk: это позволяет ему читать все сообщения, приходящие абоненту k, но не позволяет вывадавать себя за него при отправке писем.
Технология применения
Технология применения систем ЭЦП рассчитана на сеть абонентов, посылающих друг другу электронные документы, например платежные поручения. Абонентами могут быть клиенты банка и сам банк в системах клиент банк или банки при обмене документами в межбанковской сети. Некоторые из этих абонентов могут только проверять подписанные другими сообщения, другие (назовем их абонентами с правом подписи) могут как проверять, так и подписывать сообщения. Кроме того, могут быть случаи, когда кто-либо может ставить свою ЭЦП только в качестве второй подписи после подписи определенного абонента-начальника (например, директор бухгалтер); это не меняет существа дела.
Далее, возможны две ситуации: либо в этой сети есть центр (абонент, наделенный особыми полномочиями), либо все абоненты с правом подписи равноправны. Не исключен, однако, и вариант, при котором функции центра рассредоточены по нескольким "локальным центрам". В сетях iентрами могут быть заложены разные степени "доверия" центра к абонентам. Образно говоря, сети могут быть "тоталитарными" и "демократическими", т.е. центры в сетях могут (потенциально) либо полностью контролировать абонента, либо выполнять чисто формальные функции администрирования, скажем, по приему в сеть новых абонентов.
Архитектура алгоритмов ЭЦП
Поскольку подпись под важным документом может иметь далеко идущие последствия, перед подписанием необходимо предусмотреть определенные меры предосторожности. В случае программной реализации, как правило, секретный ключ подписывающего хранится на его личной дискете, защищенной от копирования. Однако этого бывает недостаточно, ведь дискету могут похитить или просто потерять. Следовательно, необходима защита от несанкционированного доступа к секретной информации (ключу). Естественным решением этой проблемы является парольная защита. Паролем могут защищаться не только функции (опции) постановки подписи и генерации ключей, но и функции, изменяющие содержимое каталога открытых ключей абонентов сети, и др.
В случае программной реализации необходимо проверить, нет ли в системе "криптовирусов", которые могут нанести существенный вред. Например, в момент подписания "криптовирусы" могут перехватить секретные ключи (и скопировать их в нужное место). Кроме того, при проверке подписи они могут заставить систему "сказать", что подпись верна, хотя она на самом деле неверна. Можно представить себе "криптовирус", который, попав в систему лишь один-единственный раз в момент генерации ключей, "поможет" системе сгенерировать слабые ключи. Например, если ключи генерируются на основе датчика случайных чисел, который использует встроенный таймер, вирус может изменить показания таймера, а потом восстановить "статус кво". Впоследствии эти ключи могут быть легко вскрыты злоумышленником. Далее этот вирус уже не нужен, он сделал свое дело. Против таких "криптовирусов" имеется только одна защита - загрузка с "чистой" системной дискеты, и использование "чистого", "родного" программного продукта.
Постановка подписи
Чтобы поставить ЭЦП под конкретным документом, необходимо проделать довольно большой объем вычислительной работы. Эти вычисления разбиваются на два этапа.
. Генерация ключей. На этом этапе для каждого абонента генерируется пара ключей: секретный и открытый. Секретный ключ хранится абонентом в тайне. Он используется для формирования подписи. Открытый ключ связан с секретным особым математическим соотношением. Открытый ключ известен всем другим пользователям сети и предназначен для проверки подписи. Его следует рассматривать как необходимый инструмент для проверки, позволяющий определить автора подписи и достоверность электронного документа, но не позволяющий вычислить секретный ключ.
Возможны два варианта проведения этого этапа. Естественным представляется вариант, когда генерацию ключей абонент может осуществлять самостоятельно. Не исключено, однако, что в определенных ситуациях эту функцию целесообразно передать центру, который будет вырабатывать для каждого абонента пару ключей секретный и открытый и заниматься их распространением. Второй вариант имеет ряд преимуществ административного характера, однако обладает принципиальным недостатком у абонента нет г