Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Электронная подпись на основе алгоритма 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 может читать это подписанное сообщение сначала при помощи закрытого ключа E, П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.

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

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

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

Управление ключами - информационный процесс, включающий в себя три элемента:

· генерацию ключей;

· накопление ключей;

· распределение ключей.

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

 

Генерация ключей

В серьезных ИС используются специальные аппаратные и программные методы генерации случайных ключей. Как правило, используют датчики ПСЧ. Однако степень случайности их генерации должна быть достаточно высоким. Идеальным генераторами являются устройства на основе "натуральных" случайных процессов. Например, появились серийные образцы генерации ключей на основе белого радиошума. Другим случайным математическим объектом являются десятичные знаки иррациональных чисел, например p или е, которые вычисляются с помощью стандартных математических методов.

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

Накопление ключей

Под накоплением ключей понимается организация их хранения, учета и удаления.

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

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

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

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

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

Вопрос обновления ключевой информации связан и с третьим элементом управления ключами - распределением ключей.

Распределение ключей

Распределение ключей - самый ответственный процесс в управлении ключами. К нему предъявляются два требования:

1.Оперативность и точность распределения

2.Скрытность распределяемых ключей.

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

Распределение ключей между пользователями реализуются двумя разными подходами:

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

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

В этом случае проблема состоит в том, чтобы надежно удостоверить подлинность субъектов.

В обоих случаях должна быть гарантирована подлинность сеанса связи. Это можно обеспечить двумя способами:

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

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

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

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

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

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

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

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

 Идея метода достаточно проста. После того, как ключ использован в одном сеансе по некоторому правилу он сменяется другим.

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

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

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

Наиболее доступным является использование полей Галуа. За счет возведения в степень порождающего элемента можно последовательно переходить от одного числа к другому. Эти числа принимаются в качестве ключей.

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

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



Поделиться:


Последнее изменение этой страницы: 2021-12-15; просмотров: 181; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.206.19 (0.011 с.)