Электронная подпись на основе алгоритма RSA
С широким распространением в современном мире электронных форм документов (в том числе и конфиденциальных) и средств их обработки особо актуальной стала проблема установления подлинности и авторства безбумажной документации.
Существует ряд достаточно эффективных криптографических средств для проверки целостности информации.
Являясь самым простым механизмом проверки целостности, простая процедура расчета контрольной суммы может вычислить ее значение для системного файла и сравнить его с эталонным значением. Если они равны, то файл, скорее всего, не изменялся. Если нет, то кто-то изменил файл. Хотя ее и очень легко реализовать, контрольная сумма имеет серьезный недостаток, заключающийся в том, что она проста, и атакующий может легко добавить несколько символов к файлу для того, чтобы получить корректное значение. Специфический вид контрольной суммы, называемый циклической контрольной суммой (ЦКС) значительно более надежен, чем простая контрольная сумма. Она незначительно сложнее в реализации и обеспечивает большую степень обнаружения ошибок. Тем не менее, она тоже может быть скомпрометирована атакующим. Контрольные суммы могут использоваться для обнаружения изменения информации. Тем не менее, они не защищают активно от изменений. Для этого следует использовать другие механизмы, такие как управление доступом и шифрование.
При использовании криптографических контрольных сумм (цифровой подписью) файл делится на небольшие части, для каждой вычисляются ККС, а затем все ККС собираются вместе. В зависимости от используемого алгоритма это может дать достаточно надежный метод определения того, был ли изменен файл.
Другой аналогичный механизм, называемый однопроходной хэш-функцией (или кодом обнаружения манипуляций, КОМ), может также использоваться для уникальной идентификации файла. Идея состоит в том, что не существует двух значений входных данных для которых выходные данные были бы одинаковыми, поэтому модифицированный файл не будет иметь то же самое значение хэш-функции. Однопроходные хэш-функции могут быть эффективно реализованы в ряде АС, что делает возможным существование надежной проверки целостности. Именно хэш-функция легла в основу алгоритма цифровой подписи, описанного в ГОСТе.
Хэш-функции являются одним из важных элементов криптосистем на основе ключей. Их относительно легко вычислить, но почти невозможно расшифровать. Хэш-функция имеет исходные данные переменной длины и возвращает строку фиксированного размера (иногда называемую дайджестом сообщения - MD), обычно 128 бит. Хэш-функции используются для обнаружения модификации сообщения (то есть для электронной подписи).
Некоторые типы хэш-функций приведены в таблице:
Таблица 3
Хэш-функции
Тип | Описание |
MD2 | Самая медленная, оптимизирована для 8-битовых машин |
MD4 | Самая быстрая, оптимизирована для 32-битных машин Не так давно взломана |
MD5 | Наиболее распространенная из семейства MD-функций. Похожа на MD4, но средства повышения безопасности делают ее на 33% медленнее, чем MD4. Обеспечивает целостность данных. Считается безопасной |
SHA (Secure Hash Algorithm) | Создает 160-битное значение хэш-функции из исходных данных переменного размера. Предложена NIST и принята правительством США как стандарт Предназначена для использования в стандарте DSS |
Практически все эти механизмы объединяют различные реализации электронной подписи.
Электронная подпись может быть создана при помощи криптографии с открытыми или секретными ключами. При использовании системы с открытыми ключами документы в компьютерной системе подписываются с помощью электронной подписи путем применения секретного ключа отправителя документа. Добавление временных меток к электронной подписи позволяет обеспечить ограниченную форму контроля участников взаимодействия. Полученная электронная подпись и документ могут быть затем сохранены или переданы. Электронная подпись может шифроваться вместе с документом при необходимости сохранения данных в тайне. Подпись может быть проверена при помощи открытого ключа создателя документа. Если подпись подтверждается должным образом, получатель может быть уверен в том, что документ был подписан с использованием секретного ключа его создателя и что сообщение не было изменено после того, как оно было подписано. Поскольку секретные ключи известны только их владельцам, это делает также возможным проверку личности отправителя сообщения третьим лицом. Поэтому электронная подпись обеспечивает две различных службы: контроль участников взаимодействия и целостность сообщения.
Наиболее надежные и распространенные алгоритмы электронной цифровой подписи приведены в таблице:
Таблица 4
Алгоритмы электронной цифровой подписи
Тип | Комментарии |
DSA (Digital Signature Authorization) | Алгоритм с использованием открытого ключа для создания электронной подписи, но не для шифрования. Секретное создание хэш-значения и публичная проверка ее - только один человек может создать хэш-значение сообщения, но любой может проверить ее корректность. Основан на вычислительной сложности взятия логарифмов в конечных полях. |
RSA | Запатентованная RSA электронная подпись, которая позволяет проверить целостность сообщения и личность лица, создавшего электронную подпись. Отправитель создает хэш-функцию сообщения, а затем шифрует ее с использованием своего секретного ключа. Получатель использует открытый ключ отправителя для расшифровки хэша, сам рассчитывает хэш для сообщения, и сравнивает эти два хэша. |
MAC (код аутентификации сообщения) | Электронная подпись, использующая схемы хэширования, аналогичные MD или SHA, но хэш-значение вычисляется с использованием как данных сообщения, так и секретного ключа. |
DTS (служба электронных временных меток) | Выдает пользователям временные метки, связанные с данными документа, криптографически стойким образом. |
Итак, пусть имеются два пользователя П1 и П2. От каких нарушений и действий злоумышленника должна защищать система аутентификации.
* Отказ (ренегатство). - П1 заявляет, что он не посылал сообщение П2, хотя на самом деле он все-таки посылал.
* Модификация (переделка). -П2 изменяет сообщение и утверждает, что данное (измененное) сообщение послал ему П1.
* Подделка. -П2 формирует сообщение и утверждает, что данное (измененное) сообщение послал ему П1.
* Активный перехват. -П3 перехватывает сообщения между П1 и П2 с целью их скрытой модификации.
* Маскировка (имитация). - П3 посылает П2 сообщение от имени П1.
* Повтор. -П3 повторяет ранее переданное сообщение, которое П1 посылал ранее П2.
Наиболее простым и распространенным инструментом электронной подписи является уже знакомый алгоритм RSA. Ниже оно будет рассмотрена в качестве примера. Кроме этого существуют еще десятки других схем цифровой подписи.
Предположим, что
d,р,q - секретные, а е, n=рq - открытые.
2. Из e и d можно найти кратность (n); кратность (n) позволяет определить делители n.
Пусть DATA - передаваемое П1 для А2 сообщение.
П1 подписывает DATA для П2 при передаче :
EeB,nB { EdA,nA {DATA}}.
При этом он использует:
* закрытый ключ EdA,nA П1,
* открытый ключ EeB,nB П2.
П2 может читать это подписанное сообщение сначала при помощи закрытого ключа EdВ,nВ П2 с целью получения
EdA,nA {DATA} = EdB,nB {EeB,nB {EdA,nA {DATA}}}
и затем - открытого ключа EeA,nA П1 для получения
DATA = EeA,nA { EdA,nA {DATA}}.
Таким образом, у П2 появляется сообщение DATA, посланное ему П1.
Очевидно, что данная схема позволяет защититься от нескольких видов нарушений.
П1 не может отказаться от своего сообщения, если он признает, что секретный ключ известен только ему. Нарушитель без знания секретного ключа не может ни сформировать, ни сделать осмысленное изменение сообщения, передаваемого по линии связи.
Иногда нет необходимости зашифровывать передаваемое сообщение, но нужно его скрепить электронной подписью. В этом случае текст шифруется закрытым ключом отправителя и полученная цепочка символов прикрепляется к документу. Получатель с помощью открытого ключа отправителя расшифровывает подпись и сверяет ее с текстом. Либо шифруется не весь текст, а его хэш-функция.
В 1991 г. Национальный институт стандартов и технологии (NIST) предложил для появившегося тогда алгоритма цифровой подписи DSA (Digital Signature Algorithm) стандарт DSS (Digital Signature Standard), в основу которого положены алгоритмы Эль-Гамаля и RSA.
Дата добавления: 2015-08-26; просмотров: 1350;