Амелин Р.В.Информационная безопасностьэлектронный учебник |
Оглавление
Установочный модуль
Модуль 1 Глава 1.Введение в информационную безопасность Глава 2. Принципы построения защищенной АИС Глава 3. Модели безопасности Тест к модулю 1 Модуль 2 Глава 4.Введение в криптографию. Симметричное шифрование Тест к модулю 2 Модуль 3 Глава 5.
Глава 6.Шифрование с открытым ключом. ЭЦП Криптографические протоколы Тест к модулю 3 Модуль 4 Глава 7.Парольная защита Глава 8. Компьютерные вирусы и борьба с ними Глава 9. Средства защиты сети Тест к модулю 4 Практические задания Глоссарий Список литературы Актуальные проблемы уголовно-правовой борьбы с посягательствами на компьютерную информацию по УК РФ |
|
Глава 5. Шифрование с открытым ключом. ЭЦП5.1. Алгоритмы шифрования с открытым ключомВ алгоритмах шифрования с открытым ключом каждый пользователь имеет пару ключей, связанных друг с другом некоторой зависимостью. Ключи обладают свойством: текст, зашифрованный одним ключом, может быть расшифрован только с помощью парного ему ключа. Один ключ называется секретным (закрытым) ключом. Пользователь хранит свой секретный ключ в надежном месте и никому его не передает. Второй ключ называется открытым ключом, и пользователь, напротив, сообщает его всем желающим (а также может опубликовать в любом общедоступном источнике). Если пользователь A хочет отправить зашифрованное послание пользователю B, он шифрует его с помощью открытого ключа B. Теперь текст не сможет прочесть никто, кроме B (даже сам A), поскольку для дешифрования нужен закрытый ключ. Схему шифрования можно записать в следующем виде: M' = E(M, Kоткр) M = D(M', Kзакр), где Е — функция шифрования (encrypt), D — функция дешифрования (decrypt), а Kоткр и Kзакр — соответственно открытый и закрытый ключи получателя сообщения. Принципиальный метод шифрования с открытым ключом впервые был публично предложен в 1976 году Диффи и Хеллманом. При этом они не смогли придумать конкретного алгоритма, но сформулировали принципиальные условия, которым такие алгоритмы должны удовлетворять:
Кроме этого желательно, чтобы операции шифрования и дешифрования выполнялись в любом поряке, т.е. можно было бы зашифровать текст закрытым ключом, а расшифровать открытым. Преимущества этой возможности будут рассмотрены позже. 5.2. Алгоритм RSARSA — один из первых алгоритмов шифрования с открытым ключом — разработан в 1977 году, название составлено из первых букв имен его авторов (Райвест, Шамир и Адлеман). На протяжении двадцати лет он был самым опулярным и практически единственным широко использующимся алгоритмом с открытым ключом. Рассмотрим этот алгоритм подробно. Для генерации ключей выбираются два больших случайных простых числа p и q и вычисляется их произведение n = pq. Затем вычисляется функция Эйлера: Далее выбирается целое число e, такое что и e взаимно просто с . Находится число d такое, что . Это может быть сделано, например, при помощи расширенного алгоритма Евклида. Открытым ключом является пара чисел (n, e), а закрытым ключом — пара (n, d). Как видно, для того, чтобы по открытому ключу определить закрытый, необходимо вычислить , а для этого большое (на практике порядка 1024 битов) число n необходимо разложить на простые множители. Но эффективного алгоритма разложения числа на простые множители не существует. RSA предназначен для шифрования двоичных текстов. Открытый текст разбивается на блоки и каждый блок рассматривается как двоичное число M. При этом должно соблюдаться ограничение M < n, исходя из этого условия выбираются длина блока и минимально возможные значения p и q. Для того, чтобы зашифровать сообщение, вычисляется M' = Me mod n Для дешифрования необходимо вычислить M= M'd mod n Убедимся в корректности алгоритма. Т.к. , то для некоторого целого k. Отсюда: По теореме Эйлера . Т.о.: Получили M'd mod n = M, что и требовалось доказать. Очевидно, что открытый и закрытый ключ в алгоритме RSA взаимозаменяемы: то, что зашифровано одним из них, расшифровывается другим. Недостатком алгоритмов с открытым ключом является низкая скорость выполняемых операций. Так, в алгоритме RSA шифрование и дешифрование заключается в возведении очень большого числа в очень большую степень, а это достаточно ресурсоемкая операция. Поэтому на практике чаще всего используется комбинация двух алгоритмов. Сообщение шифруется с помощью симметричного алгоритма шифрования (например, AES). При этом каждый раз генерируется новый случайный ключ. Этот ключ зашифровывается открытым ключом получателя (например, с помощью RSA) и отправляется вместе с сообщением. Такая гибридная схема обеспечивает как скорость операций шифрования/дешифрования, так и надежность. 5.3. Электронная цифровая подписьКак отмечалось выше, многие алгоритмы шифрования с открытым ключом работают со взаимозаменяемой парой ключей, т.е. любым из них можно зашифровать текст и тогда расшировываться он будет вторым ключом. Для целей конфиденциальности текст шифруется открытым ключом получателя. Рассмотрим ситуацию, когда сообщение шифруется закрытым ключом отправителя. В этом случае расшифровать его сможет кто угодно, поскольку открытый ключ общедоступен. Однако получатель сообщения может быть уверен в том, что подлинный автор сообщения — владелец закрытого ключа, поскольку никто другой не имеет возможности его создать (при условии, что закрытый ключ не скомпрометирован, т.е. не украден). Таким образом, достигается аутентичность (подлинность) сообщения. С юридической точки зрения это означает, что автор сообщения не сможет от него отказаться (апеллируемость). Эта идея нашла свое воплощение в концепции электронной цифровой подписи. Электронная цифровая подпись (ЭЦП) — реквизит электронного документа, предназначенный для защиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа электронной цифровой подписи и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе. Такое определение приводится в ст. 3 федерального закона «Об электронной цифровой подписи». В качестве электронной цифровой подписи может выступать сам текст сообщения, зашифрованный закрытым ключом отправителя. Однако такой вариант не используется в силу его неэффективности. Во-первых, шифрование/дешифрование всего текста занимает очень много времени. Во-вторых, длина ЭЦП в этом случае будет равна (и даже превышать) длину исходного сообщения, что создает неудобство при пересылке. Поэтому современные алгоритмы электронной цифровой подписи основаны на использовании хэш-функций. Хэш-функцией называется функция (H), которая принимает на входе сообщение M произвольной длины, а на выходе выдает значение H(M) фиксированной длины, называемое хэшем или профилем сообщения М. При этом в криптографии (в частности, в алгоритмах ЭЦП) используются функции, обладающие следующими свойствами:
Среди наиболее известных алгоритмов хэширования можно назвать MD5, SHA-512, ГОСТ Р34.11-94 (российский стандарт вычисления хэш-функции). Электронная цифровая подпись, основанная на применении хэш-функций, вычисляется следующим образом:
Чтобы убедиться в подлинности полученного сообщения, необходимо проделать шаги алгоритма в обратном порядке:
Свойства криптографически стойкой хэш-функции обеспечивают надежность электронной цифровой подписи. Действительно, если изменить в оригинальном сообщении хотя бы один символ, его хэш (а следовательно, и ЭЦП) изменится, а подобрать другое сообщение с таким же хэшем невозможно. При этом, очевидно, что, поскольку длина хэша фиксирована (например, 512 бит), а различных сообщений — бесконечное число, то для любого сообщения найдется бесконечно много сообщений, имеющих точно такой же хэш. Но вероятность случайно выбрать такое сообщение обратно пропорциональная числу всевозможных хэшей и при длине 512 бит равна: , то есть практически ничтожна. Таким образом, алгоритм электронной цифровой подписи может представлять собой простое объединение некоторого алгоритма шифрования с открытым ключом и некоторого алгоритма (функции) хэширования. При этом, если новые исследования криптоанализа обнаруживают слабость в одном из этих алгоритмов, его легко заменить на более современный и надежный. Но при всей надежности этих алгоритмов электронная цифровая подпись имеет одну серьезную организационную слабость. Дело в том, что получатель сообщения не всегда может надежно удостовериться, что открытый ключ, который он использует для проверки ЭЦП действительно принадлежит лицу, называющему себя автором сообщения. А при этом никто не мешает злоумышленнику разместить, например, на сайте свой открытый ключ от имени другого человека, а затем отправлять сообщения, подписанные электронной цифровой подписью его от же имени. Эффективное функционирование ЭЦП в глобальном масштабе (когда необходимость в аутентичном обмене сообщениями постоянно появляется у множества лично не знакомых друг с другом людей) возможно лишь с участием третьей стороны — посредника, которому доверяют все участники обмена сообщениями. Эта сторона выполняет роль удостоверяющего центра. В федеральном законе «Об электронной цифровой подписи» устанавливаются правовой статус удостоверяющих центров (УЦ) и их функции. В частности, удостоверяющий центр выдает так называемые сертификаты ключа подписи, содержащие следующие сведения (ст. 6):
УЦ обязан вести реестр сертификатов ключей подписей и обеспечивать участникам информационного обмена свободный доступ к содержащимся в нем сведениям. Удостоверяющий центр должен подтверждать подлинность электронной цифровой подписи в электронном документе в отношении выданных им сертификатов ключей подписей. Таким образом, каждому участнику обмена сообщениями достаточно быть уверенным в подлинности «своего» удостоверяющего центра. Забота о защите своего закрытого ключа от компрометации возлагается законом на его владельца. Согласно ст. 12 ФЗ «Об электронной цифровой подписи», он обязан хранить закрытый ключ в тайне и немедленно требовать приостановления действия сертификата ключа подписи при наличии оснований полагать, что тайна закрытого ключа ЭЦП нарушена. В противном случае на него возлагается возмещение причиненных убытков. На практике это чаще всего означает, что он считается автором отправленных от его имени сообщений со всеми вытекающими юридическими последствиями. 5.4. Российский стандарт электронной цифровой подписи ГОСТ Р 34.10—2001Отечественный стандарт ГОСТ Р 34.10—2001 «Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи» определяет схему электронной цифровой подписи, процессы формирования и проверки цифровой подписи под заданным сообщением (документом), передаваемым по незащищенным телекоммуникационным каналам общего пользования в системах обработки информации различного назначения. В алгоритме, утвержденном данным стандартом, хэш сообщения обрабатывается алгоритмом, основанном на математике эллиптических кривых. Пусть задано простое число p > 3. Тогда эллиптической кривой E, определенной над конечным простым полем Fp, называется множество пар чисел, удовлетворяющих тождеству: y2 = x3 + ax + b (mod p), где a, b < p и 4a3 + 27b2 не делится на p. Суммой двух точек эллиптической кривой Q1 и Q2 с координатами (x1, y1) и (x2, y2) назовем точку Q3, координаты которой определяются сравнениями: в случае, если , и сравнениями: в противном случае. Если выполнено условие x1 = x2, y1= -y2, то сумма точек Q1 и Q2 называется нулевой точкой O (без уточнения ее координат). В алгоритме используются следующие параметры:
Для формирования электронной цифровой подписи сообщения M применяется следующая последовательность шагов:
Для проверки электронной цифровой подписи сообщения M применяется следующая последовательность шагов:
Доказательство правильности алгоритма выходит за рамки настоящего учебника и может быть выведено самостоятельно после более подробного ознакомления с математикой эллиптических кривых. Следует отметить, что криптосистемы на основе эллиптических кривых занимают все большее место в схемах ЭЦП, асимметричного шифрования и выработки пар связанных ключей. 5.5. Российский стандарт хэширования ГОСТ Р 34.11—94Отечественый стандарт хэширования ГОСТ P 34.11—94 является обязательным для применения в системах защиты государственных и ряда коммерческих организаций РФ. Он используется в рассмотренном выше стандарте электронной цифровой подписи и, в свою очередь, сам базируется на алгоритме симметричного шифрования ГОСТ 28147—89. Коротко алгоритм хэширования можно представить следующим образом:
назад | оглавление | вперед
|