Технологии цифровых подписей
Как оказалось, теория асимметричного шифрования позволяет очень красиво решать еще одну проблему информационной безопасности – проверку подлинности автора сообщения и целостности самого сообщения. С помощью асимметричного алгоритма создать алгоритм проверки подлинности автора и неизменности сообщения достаточно просто.
Предположим, что нам нужно передать какой-либо текст, не обязательно секретный, но важно то, чтобы в него при передаче по незащищенному каналу не были внесены изменения. К таким текстам обычно относятся различные распоряжения, справки, и тому подобная документация, не представляющая секрета. Вычислим от нашего текста какую-либо хеш-функцию. Результатом вычислений (дайджестом хэш-функции) будет некоторое число, которое более или менее уникально характеризует данный текст.
В принципе, можно найти другой текст, который дает то же самое значение дайджеста (построить коллизию хэш-функции), но изменить в нашем тексте десять-двадцать байт так, чтобы текст остался полностью осмысленным, да еще и изменился в выгодную нам сторону (например, уменьшил сумму к оплате в два раза) – чрезвычайно сложно.
Построение коллизий хэш-функций, нахождение алгоритмов построения коллизий – одна из основных задач криптоанализа. Именно для устранения этой возможности хеш-функции создают такими же сложными, как и криптоалгоритмы – если текст с аналогичным значением дайджеста можно будет подобрать только методом полного перебора, то для поиска подобного текста злоумышленнику потребуется такое количество времени, что операция может потерять всякий смысл.
Таким образом, если мы сможем передать получателю защищенным от изменения методом (например, в зашифрованном виде) дайджест хеш-функции от пересылаемого текста, то у него всегда будет возможность (зная наш алгоритм вычисления) самостоятельно вычислить дайджест от текста уже на приемной стороне и сверить его с присланным нами. Если хотя бы один бит в вычисленной им самостоятельно контрольной сумме текста не совпадет с соответствующим битом в полученном от нас дайджесте, значит, текст по ходу пересылки подвергся несанкционированному изменению.
Таким образом, при использовании асимметричного шифрования, манипуляции с хеш-функцией текста представляют из себя «асимметричное шифрование наоборот»: при отправке, для закрытия информации используется секретный ключ отправителя, а для проверки сообщения – открытый ключ отправителя. Подобная технология получила название «электронная цифровая подпись». Информацией, которая уникально идентифицирует отправителя (его виртуальной подписью), является его секретный ключ. А сам дайджест хеш-функции идентифицирует целостность отправленного сообщения.
Примеры хэш-функций:
MD2 (Message Digest) | Самая медленная, оптимизирована для 8-битовых машин. Алгоритм разработан профессором Рональдом Ривестом. (Устарела). |
MD4 | Самая быстрая, оптимизирована для 32-битных машин. (Устарела). |
MD5 | Наиболее распространенная из семейства MD-функций. Основана на алгоритме MD4, с усиленными функциями безопасности. (Взломана в 2004 г.) |
MD6 | Алгоритм хеширования переменной разрядности, разработанный профессором Рональдом Ривестом из Массачусетского Технологического Института в 2008 г. Предназначен для создания дайджестов сообщений произвольной длины. Предлагается на смену менее совершенному MD5. |
SHA-1 (Secure Hash Algorithm версии 1) | Создает 160-битное значение хэш-функции из исходных данных переменного размера. Основана на алгоритме MD4. (Принята правительством США как стандарт в 1993 году). |
SHA-2 (Secure Hash Algorithm версии 2) | Семейство хеш-функций, включающее в себя алгоритмы SHA-224, SHA-256, SHA-384 и SHA-512. Хеш-функции предназначены для создания дайджестов сообщений произвольной битовой длины. (В 2006 году приняты в качестве стандарта). |
SHA-3 (Secure Hash Algorithm версии 3) | Основой функции является алгоритм «Keccak» (читается «кетчак»), созданный командой криптологов из Италии и Бельгии. Алгоритм принципиально отличается от SHA-2. (В октябре 2012 г. Национальный институт стандартов и технологий США (NIST) выбрал алгоритм Keccak в качестве стандарта хэш-функции SHA-3). |
ГОСТ Р 34.11-2012 | Информационная технология. Криптографическая защита информации. Функция хэширования. Размер дайджеста составляет 256 или 512 бит. Название хэш-функции «Стрибог» (в честь славянского языческого божества) иногда используется вместо официального названия стандарта [8]. (Принят и введен в действие Приказом Федерального агентства по техническому регулированию и метрологии от 7 августа 2012 г. N 216-ст взамен ГОСТ Р 34.11-94). |
Whirlpool | Хеш-функция, разработанная Vincent Rijmen и Paulo S. L. M. Barreto. Впервые опубликована в ноябре 2000 года. Осуществляет хеширование входного сообщения с длиной до 2256 бит. Значение дайджеста хеш-функции составляет 512 бит. |
Tiger | Хеш-функция, разработанная Росом Андерсоном и Эли Бихамом в 1995 году. Tiger был предназначен для особенно быстрого выполнения на 64-разрядных компьютерах. Tiger не имеет патентных ограничений, может использоваться свободно как с эталонной реализацией, так и с ее модификациями. Размер значения дайджеста – 192 бита. |
Подобный обмен местами открытого и закрытого ключей для создания из процедуры асимметричного шифрования алгоритма электронной подписи возможен только в тех системах, где выполняется свойство коммутативности ключей. Т.е., в нашем случае – то, что шифруется одним ключом, можно расшифровать с помощью другого ключа.
Коммутативность (лат. commutativus — меняющий(ся)), или коммутативный (переместительный) закон, свойство сложения и умножения, выражаемое формулами:
a + b = b + a, ab = ba
ЭЦП (пример):
Рис. 24. Схема алгоритма ЭЦП
Если «В» хочет передать «А» сообщение М, он:
- вычисляет значение хэш-функции F(M) сообщения М по алгоритму F;
- создает ЭЦП сообщения (шифрует F(M)) при помощи своего секретного ключа KВс, и добавляет к сообщению;
- передает сообщение по открытому каналу.
«А» приняв сообщение, проверяет подлинность ЭЦП:
- расшифровывает F(M) при помощи открытого ключа КВо;
- вычисляет хэш-функцию F(M) сообщения М (алгоритм хэш-функции известен обоим);
- сравнивает полученную и принятую F(M);
- в случае совпадения – ЭЦП верна.