Введение
Цифровая подпись - реквизит электронного документа,
предназначенный для защиты данного электронного
документа от подделки, полученный в результате
криптографического преобразования информации
с использованием закрытого ключа электронной
цифровой подписи и позволяющий идентифицировать
владельца сертификата ключа подписи,
а также установить отсутствие искажения
информации в электронном документе.(Федеральный
закон "Об электронной цифровой подписи",
статья 3)
Электронно-цифровая подпись (ЭЦП) — электронный аналог
собственноручной подписи — используемый
в системах электронного документооборота
для придания электронному документу
юридической силы, равной бумажному документу,
подписанного собственноручной подписью
правомочного лица и/или скрепленного
печатью. Документ (файл), подписанный
ЭЦП, гарантированно защищен от изменений
— проверка подписи мгновенно выявит
расхождение. ЭЦП обеспечивает проверку
целостности документов, конфиденциальность,
установление лица, отправившего документ.
Это позволяет усовершенствовать процедуру
подготовки, доставки, учета и хранения
документов, гарантировать их достоверность.
Главное преимущество использование ЭЦП
— значительное сокращение временных
и финансовых затрат на оформление и обмен
документацией. Таким образом, по функциональности
ЭЦП даже превосходит обычную подпись.
Предположим, что две стороны (назовем
их условно «А» и «Б») решили организовать
между собой обмен документами на машинных
носителях. Как должен выстраиваться документооборот
между этими сторонами? В первую очередь,
стороны должны договориться об использовании
средств ЭЦП. Лучше, если это будет программный
или программно-аппаратный комплекс, сертифицированный
в нашей стране. После того, как средство
ЭЦП выбрано, стороны должны выполнить
генерирование ключей — по открытому
и секретному (личному) ключу ЭЦП для каждой
стороны.
Чтобы каждая сторона могла удостовериться
в подлинности ЭЦП, поставленной под документом
другой стороной, они должны обменяться
открытыми ключами. Однако этот процесс
не так прост, как может показаться. Ведь
в случае конфликтной ситуации одна из
сторон может заявить, что тот открытый
ключ, который был использован при проверке
ЭЦП под документом, не ее, а неизвестно
чей. Сначала для документа должна быть
выработана ЭЦП с использованием соответствующих
технических средств и секретного ключа
стороны «А».
Из исходного текста документа и его
ЭЦП формируется электронный документ.
Здесь нужно понимать, что электронный
документ — это не просто файл на магнитном
носителе с текстом документа, а файл,
состоящий из двух частей: общей (в которой
содержится текст) и особенной, содержащей
все необходимые ЭЦП. Текст документа
без ЭЦП — это не более чем обычный текст,
который не имеет юридической силы. Его
можно распечатать, передать по электронной
почте, отредактировать, но нельзя установить
его подлинность. ЭЦП без текста документа
вообще представляет собой непереводимую
игру букв. Восстановить документ по ЭЦП
невозможно точно так же, как невозможно
восстановить дворец по найденному кирпичу.
ЭЦП сама по себе не имеет ни ценности,
ни смысла.
История возникновения электронной
цифровой подписи.
В 1976 году Уитфилдом
Диффи и Мартином Хеллманом было
впервые предложено понятие «электронная
цифровая подпись», хотя они всего лишь
предполагали, что схемы ЭЦП могут существовать. В
1977 году, Рональд Ривест, Ади Шамир и Леонард Адлеманразработали
криптографический алгоритм RSA, который
без дополнительных модификаций можно
использовать для создания примитивных
цифровых подписей. Вскоре после RSA были разработаны другие
ЭЦП, такие как алгоритмы цифровой подписи Рабина,
Меркле. В 1984 году Шафи Гольдвассер, Сильвио
Микали и Рональд Ривест первыми строго
определили требования безопасности к
алгоритмам цифровой подписи. Ими были
описаны модели атак на алгоритмы ЭЦП,
а также предложена схема GMR, отвечающая
описанным требованиям.
В 1994 году Главным управлением безопасности
связи Федерального агентства правительственной
связи и информации при Президенте Российской
Федерации был разработан первый российский стандарт
ЭЦП — ГОСТ Р 34.10-94, основанный на вычислениях в группе
точек эллиптической кривой и
на хеш-функции, описанной в ГОСТ Р 34.11-94. В 2002 году для обеспечения большей криптостойкости
алгоритма взамен ГОСТ Р 34.10-94 был введен
стандарт ГОСТ Р 34.10-2001. В соответствии с этим стандартом термины
«электронная цифровая подпись» и «цифровая
подпись» являются синонимами.
Основные
характеристики и схемы ЭЦП
Основные
характеристики ЭЦП:
1. Для формирования
ЭЦП используется ассиметричная
ключевая система. Это значит, что
каждый абонент системы имеет
открытый ключ и закрытый ключ.
Закрытый ключ сохраняется абонентом
в тайне — именно это не
позволяет злоумышленнику выдать
свой документ за документ
абонента.
2. Длина ключа составляет
1024 бит. Сертификат ФСБ гарантирует невозможность
подделки электронной цифровой подписи.
3. Специальные алгоритмы
позволяют определить изменялся ли документ
(например, файл с декларацией) после его
подписания ЭЦП или не изменялся.
4. Для проверки ЭЦП
на электронном документе используется
открытый ключ абонента, поэтому этот
открытый ключ есть, например, в налоговой
инспекции абонента, а также у специализированного
оператора связи.
5. Практически все
действия по подписанию документов ЭЦП
выполняются автоматически. Абоненту
достаточно вставить дискету с личным
закрытым ключом непосредственно перед
отправкой сообщений.
Существует несколько
схем построения цифровой подписи:
На основе алгоритмов симметричного шифрования. Данная схема предусматривает наличие в системе третьего лица — арбитра, пользующегося
доверием обеих сторон. Авторизацией документа
является сам факт зашифрования его секретным ключом и передача его арбитру.
На основе алгоритмов асимметричного шифрования. На данный момент такие схемы ЭЦП наиболее распространены и находят широкое применение.
Кроме этого, существуют
другие разновидности цифровых подписей
(групповая подпись, неоспоримая подпись,
доверенная подпись), которые являются
модификациями описанных выше схем. Их
появление обусловлено разнообразием
задач, решаемых с помощью ЭЦП.
Общая схема электронной
подписи
Схема электронной подписи
обычно включает в себя:
1) Алгоритм генерации
ключевых пар пользователя;
2) Функцию вычисления
подписи;
3) Функцию проверки подписи.
Функция вычисления подписи
на основе документа и секретного ключа
пользователя вычисляет собственно подпись.
В зависимости от алгоритма функция вычисления
подписи может быть детерминированной
(точной) или вероятностной. Детерминированные
функции всегда вычисляют одинаковую
подпись по одинаковым входным данным.
Вероятностные функции вносят
в подпись элемент случайности, что усиливает
криптостойкость алгоритмов ЭЦП. Однако,
для вероятностных схем необходим надёжный
источник случайности (либо аппаратный
генератор шума, либо криптографически
надёжный генератор псевдослучайных бит),
что усложняет реализацию.
В настоящее время детерминированные
схемы практически не используются. Даже
в изначально детерминированные (точные)
алгоритмы сейчас внесены модификации,
превращающие их в вероятностные (так,
в алгоритм подписи RSA вторая версия
стандарта PKCS#1 добавила предварительное
преобразование данных (OAEP), включающее
в себя, среди прочего, зашумление). RSA стал первым
алгоритмом такого типа, пригодным и для
шифрования и для цифровой подписи. Алгоритм
используется в большом числе криптографических
приложений.
История RSA
Описание RSA было опубликовано
в 1977 году Рональдом Райвестом (Ronald Linn
Rivest), Ади Шамиром (Adi Shamir) и Леонардом Адлеманом
(Leonard Adleman) из Массачусетского Технологического
Института (MIT).Британский математик Клиффорд
Кокс (Clifford Cocks), работавший в центре правительственной
связи (GCHQ) Великобритании, описал аналогичную
систему в 1973 году во внутренних документах
центра, но эта работа не была раскрыта
до 1977 года и Райвест, Шамир и Адлеман разработали
RSA независимо от работы Кокса.
Описание алгоритма: Безопасность алгоритма электронной
подписи RSA основана на
трудности задачи разложения на множители.
Алгоритм использует два ключа — открытый
(public) и секретный (private), вместе открытый
и соответствующий ему секретный ключи
образуют пару ключей (keypair). Открытый ключ
не требуется сохранять в тайне, он используется
для зашифровывания данных. Если сообщение
было зашифровано открытым ключом, то
расшифровать его можно только соответствующим
секретным ключом.
Применение RSA
Система RSA используется для
защиты программного обеспечения и в схемах
цифровой подписи. Также она используется
в открытой системе шифрования PGP.
Из-за низкой скорости шифрования
(около 30 кбит/с при 512 битном ключе на процессоре
2 ГГц), сообщения обычно шифруют с помощью
более производительных симметричных
алгоритмов со случайным ключом (сеансовый
ключ), а с помощью RSA шифруют лишь сам ключ.
Алгоритм DSA (Digital Signature Algorithm):
Алгоритм с использованием
открытого ключа для создания электронной
подписи, но не для шифрования. Секретное
создание шифр - значения и публичная проверка
ее означает, что только один человек может
создать шифр - значение сообщения, но
любой может проверить ее корректность.
Основан алгоритм на вычислительной сложности
взятия логарифмов в конечных полях.
История DSA:
Алгоритм был предложен Национальным
Институтом Стандартов и Технологий (США)
в августе 1991 и является запатентованным
U.S. Patent 5231668 (англ.), но институт сделал
этот патент доступным для использования
без лицензионных отчислений.
Симметричные криптосистемы
Симметричные криптосистемы
(также симметричное шифрование, симметричные
шифры) — способ шифрования, в котором
для зашифровывания и расшифровывания
применяется один и тот же криптографический
ключ. До изобретения схемы асимметричного
шифрования единственным существовавшим
способом являлось симметричное шифрование.
Ключ алгоритма должен сохраняться в секрете
обеими сторонами. Ключ алгоритма выбирается
сторонами до начала обмена сообщениями.
В настоящее время симметричные
шифры - это:
1. Блочные шифры - обрабатывают информацию блоками
определенной длины (обычно 64, 128 бит), применяя
к блоку ключ в установленном порядке,
как правило, несколькими циклами перемешивания
и подстановки, называемыми раундами.
Результатом повторения раундов является
лавинный эффект - нарастающая потеря
соответствия битов между блоками открытых
и зашифрованных данных.
2. Поточные шифры - в которых шифрование проводится
над каждым битом либо байтом исходного
(открытого) текста с использованием гаммирования.
Поточный шифр может быть легко создан
на основе блочного (например, ГОСТ 28147-89
в режиме гаммирования), запущенного в
специальном режиме.
Криптографическая
система с открытым ключом
Криптографическая система
с открытым ключом (или Асимметричное
шифрование, Асимметричный шифр) — система
шифрования информации, при которой ключ,
которым зашифровывается сообщение и
само зашифрованное сообщение передаётся
по открытому, (то есть незащищённому,
доступному для наблюдения) каналу. Для
генерации открытого ключа и для прочтения
зашифрованного сообщения получатель
использует секретный ключ. Криптографические
системы с открытым ключом в настоящее
время широко применяются в различных
сетевых протоколах, в частности, в протоколе
SSL и основанных на нём протоколах прикладного
уровня HTTPS, SSH и т. д.
Рис. 1. Этапы шифровки с открытым ключом.
Этапы шифровки с
открытым ключом:
1. Получатель генерирует
ключ. Ключ разбивается на открытую
и закрытую часть. При этом
открытый ключ не должен передаваться
по открытому каналу. Либо его
подлинность должна быть гарантирована
некоторым сертифицирующим органом.
2.Отправитель с помощью
открытого ключа шифрует сообщение.
3.Получатель с помощью
закрытого ключа дешифрует сообщение.
Недостаток метода: хотя сообщение
надежно шифруется, но «засвечиваются»
получатель и отправитель самим фактом
пересылки шифрованного сообщения.
Общая идея криптографической
системы с открытым ключом заключается
в использовании при зашифровке сообщения
такой функции от открытого ключа и сообщения
(шифр -функции), которую алгоритмически
очень трудно обратить, то есть вычислить
по значению функции её аргумент, даже
зная значение ключа.
Особенности системы
Преимущество асимметричных шифров перед
симметричными шифрами состоит в отсутствии
необходимости передачи секретного ключа.
Сторона, желающая принимать зашифрованные
тексты, в соответствии с используемым
алгоритмом вырабатывает пару «открытый
ключ — закрытый ключ». Значения ключей
связаны между собой, однако вычисление
одного значения из другого должно быть
невозможным с практической точки зрения.
Открытый ключ публикуется в открытых
справочниках и используется для шифрования
информации контрагентом. Закрытый ключ
держится в секрете и используется для
расшифровывания сообщения, переданного
владельцу пары ключей. Начало асимметричным
шифрам было положено в 1976 году в работе
Уитфилда Диффи и Мартина Хеллмана «Новые
направления в современной криптографии».
Они предложили систему обмена общим секретным
ключом на основе проблемы дискретного
логарифма. Вообще, в основу известных
асимметричных криптосистем кладётся
одна из сложных математических проблем,
которая позволяет строить односторонние
функции и функции-ловушки. Например, криптосистема
Ривеста-Шамира-Адельмана использует
проблему факторизации больших чисел,
а криптосистемы Меркля-Хеллмана и Хора-Ривеста
опираются на так называемую задачу об
укладке рюкзака.