"То, что изобретено одним человеком,
может быть понято другим", - сказал Холмс
А. Конан Доил. Пляшущие человечки
Сегодня я собираюсь поведать вам, что такое и зачем нужна электронно-цифровая подпись (ЭЦП). Слово подпись наверное всем понятно: расписываемся на различных бумажках частенько. А что за электронно-цифровая? Инфа, передаваемая по различным сетям очень уязвима (это всем известно). ЭЦП является одним из многих средств защиты от несанкционированного доступа к вашей информации.
Давайте перечислим несколько преимуществ ЭЦП:
- подпись аутентична, то есть с ее помощью получателю документа можно доказать, что она принадлежит подписывающему;
- подпись неподделываема; то есть служит доказательством, что только тот человек, чей автограф стоит на документе, мог подписать данный документ, и никто иной.
- подпись непереносима, то есть является частью документа и поэтому перенести ее на другой документ невозможно.
- документ с подписью является неизменяемым.
- подпись неоспорима.
- любое лицо, владеющее образцом подписи может удостоверится, что документ подписан владельцем подписи.
Развитие современных средств безбумажного документооборота, средств электронных платежей немыслимо без развития средств доказательства подлинности и целостности документа. Таким средством является электронно-цифровая подпись (ЭЦП), которая сохранила основные свойства обычной подписи.
Существует несколько методов построения ЭЦП, а именно:
- шифрование электронного документа (ЭД) на основе симметричных алгоритмов. Данная схема предусматривает наличие в системе третьего лица - арбитра, пользующегося доверием обеих сторон. Авторизацией документа в данной схеме является сам факт
зашифровки ЭД секретным ключом и передача его арбитру.
- использование асимметричных алгоритмов шифрования. Фактом подписания документа является
зашифровка на секретном ключе отправителя.
- развитием предыдущей идеи стала наиболее
распространенная схема ЭЦП - шифрование окончательного результата обработки ЭД хеш-функцией при помощи
асимметричного алгоритма.
Кроме перечисленных, существуют и другие методы построения схем ЭЦП:
групповая подпись, неоспариваемая подпись, доверенная подпись и др. Появление этих разновидностей обусловлено разнообразием задач, решаемых с помощью электронных технологий передачи и обработки электронных документов.
Существует несколько стандартов цифровой подписи, приведём пример одного из них: Алгоритм DSA
В 1991 г. в США был опубликован проект федерального стандарта цифровой подписи - DSS (Digital Signature Standard, [DSS91], описывающий систему цифровой подписи DSA (Digital Signature Algorithm)). Одним из основных критериев при создании проекта была его патентная чистота.
Его надежность основана на практической неразрешимости определенного частного случая задачи вычисления дискретного логарифма. Современные методы решения этой задачи имеют приблизительно ту же эффективность, что и методы решения задачи факторизации; в связи с этим предлагается использовать ключи длиной от 512 до 1024 бит. Длина подписи в системе DSA составляет 320 бит.
С момента опубликования проект получил много критических отзывов, многие из которых были учтены при его доработке. Одним из главных аргументов против DSA является то, что, в отличие от общей задачи вычисления дискретного логарифма, ее частный случай, использованный в данной схеме, мало изучен и, возможно, имеет существенно меньшую сложность вскрытия. Кроме того, стандарт не специфицирует способ получения псевдослучайных чисел, используемых при формировании цифровой подписи, и не указывает на то, что этот элемент алгоритма является одним из самых критичных по криптографической стойкости.
Генерация ЭЦП
При генерации ЭЦП используются параметры трех групп:
- общие параметры
- секретный ключ
- открытый ключ
Общие параметры необходимы для функционирования системы в целом. Секретный ключ используется для формирования ЭЦП, а открытый - для проверки ЭЦП. Общими параметрами системы являются простые целые числа p,q,g, удовлетворяющие следующим условиям:
p: 2^511<p<2^512
q: простой делитель числа (p-1), который удовлетворяет условию
2^159<q<2^160
g: так называемый генератор, удовлетворяющий
равенству g=h^((p-1)/q)mod p >1.
Параметры p,q,g публикуются для всех участников обмена ЭД с ЭЦП.
Секретный ключ x случайно выбирается из диапазона [1,q] и держится в секрете.
Открытый ключ вычисляется: y=g^x mod p.
Также при описании данной схемы будут использоваться следующие обозначения и дополнительные параметры: m - входное сообщение пользователя для схемы с ЭЦП; k - случайное число, удовлетворяющее условию 0<k<q, хранящееся в секрете и меняющееся от одной подписи к другой; H - хэш-функция, h - хэш-код сообщения.
Процесс генерации ЭЦП состоит из нескольких этапов:
1.Вычисляется хэш-код сообщения m h=H(m)
2.Из диапазона [1,q] случайным образом выбирается значение k и вычисляется r= (g^k mod p) mod q
3. Вычисляется S= (k^-1(h+xr)) mod q, где k^-1 удовлетворяет условию (k^-1*k) mod q =1
Значения r,s являются ЭЦП сообщения m и передаются вместе с ним по каналам связи.
Проверка ЭЦП
Пусть принято сообщение m1 и его подпись s1,r1.
Проверка ЭЦП происходит следующим образом:
- проверяется выполнение условий 0<r1<q, 0<s1<q, и если хотя бы одно из них нарушено, подпись отвергается.
- Вычисляются значения:
w= s1^-1 mod q
u1 = (H(m1)w) mod q
u2 = ((r1/w) mod q
v = (( g^u1y^u2) mod p ) mod q
- проверяется равенство v = r1
Если последнее равенство выполняется, то подпись принимается. В данном стандарте специфицируется также процедура генерации основных параметров системы и проводится доказательство того, что если v=r1, то m1=m, r1=r, s1=s.
Атаки на ЭЦП
Стойкость большинства схем ЭЦП зависит от стойкости
асимметричных алгоритмов шифрования и хэш-функций.
Существует следующая классификация атак на схемы ЭЦП:
- атака с известным открытым ключом.
- Атака и известными подписанными сообщениями - противник, кроме открытого
ключа имеет и набор подписанных сообщений.
- Простая атака с выбором подписанных сообщений - противник имеет возможность выбирать сообщения, при этом открытый ключ он получает после выбора сообщения.
- Направленная атака с выбором сообщения
- Адаптивная атака с выбором сообщения.
Каждая атака преследует определенную цель, которые можно разделить на несколько классов:
- полное раскрытие. Противник находит секретный ключ пользователя
- универсальная подделка. Противник находит алгоритм, функционально аналогичный алгоритму генерации ЭЦП
- селективная подделка. Подделка подписи под выбранным сообщением.
- Экзистенциальная подделка. Подделка подписи хотя бы для одного случайно выбранного сообщения.
На практике применение ЭЦП позволяет выявить или предотвратить следующие действия нарушителя:
- отказ одного из участников авторства документа.
- Модификация принятого электронного документа.
- Подделка документа.
- Навязывание сообщений в процессе передачи - противник перехватывает обмен сообщениями и модифицирует их.
- Имитация передачи сообщения.
Так же существуют нарушения, от которых невозможно оградить систему обмена сообщениями - это повтор передачи сообщения и фальсификация времени отправления сообщения.
Противодействие данным нарушениям может
основываться на использовании временных вставок и строгом учете входящих сообщений.
Некоторые средства работы с ЭЦП
В настоящее время существует большое
количество комплексов для работы с электронной подписью, или использующие ее.
Приведем некоторые из них:
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 и выше.
Ну чё немного подгрузил? Это нормально, пройдёт. Зато представь какой апгрейд получил твой мозг. Ну ладно хватит приколов, вообще знание электронно-цифровой подписи и различных алгоритмов шифрования очень нужная вещь. Мне кажется это более надёжная защита от несанкционированного доступа к вашей инфе по сравнению с другими прогами (может я ошибаюсь).