Компьютерные сети. 6-е изд.
Шрифт:
К счастью, здесь нам поможет шифрование с открытым ключом. Предположим, такие алгоритмы шифрования и дешифрования, помимо обычного свойства D(E(P)) = P, обладают свойством E(D(P)) = P. Например, оно есть у алгоритма RSA, так что это предположение вполне обоснованно. В этом случае Алиса может отправить Бобу подписанное открытое сообщение P, переслав ему EB(DA(P)). Обратите внимание, что она знает свой собственный (закрытый) ключ дешифрования DA, так же как и открытый ключ Боба EB, поэтому сформировать такое сообщение ей по силам.
Приняв сообщение,
Чтобы понять, как в данном случае работает цифровая подпись, предположим, что впоследствии Алиса отрицает отправку Бобу сообщения P. Когда дело доходит до суда, Боб предъявляет P и DA(P). Судья легко может убедиться, что у Боба есть подлинное сообщение, зашифрованное ключом DA, просто применив к нему ключ EA. Боб не знает закрытого ключа Алисы, следовательно, получить зашифрованное этим ключом сообщение он мог только от нее. Сидя в тюрьме за лжесвидетельство и мошенничество, Алиса сможет заняться разработкой новых интересных алгоритмов с открытым ключом.
Илл. 8.22. Цифровая подпись, полученная при помощи шифрования с открытым ключом
Хотя схема шифрования с открытым ключом довольно элегантна, у нее есть серьезные недостатки. Правда, они скорее связаны не с самим алгоритмом, а со средой, в которой он работает. Прежде всего, Боб может доказать, что сообщение было отправлено Алисой, только пока ключ DA хранится в тайне. Если Алиса раскроет свой секретный ключ, этот аргумент потеряет актуальность, так как в этом случае нельзя определить источник сообщения (им может быть кто угодно, включая самого Боба).
Например, проблема может возникнуть, если Боб является биржевым брокером Алисы. Она заказывает ему покупку определенных акций. Сразу после этого их цена резко падает. Чтобы отречься от своего запроса, Алиса сообщает в полицию, что ее дом был обворован, и в том числе украден компьютер вместе с секретным ключом. В зависимости от законов ее страны или штата Алиса может понести (или нет) юридическую ответственность, особенно если она заявляет, что обнаружила проникновение в квартиру, только вернувшись с работы, — через несколько часов после того, как это якобы произошло.
Другая проблема этой схемы цифровой подписи возникает, если Алиса поменяет свой ключ. Это абсолютно законно, более того, рекомендуется периодически менять ключ, чтобы гарантировать его высокую надежность. В этом случае, если дело дойдет до судебного разбирательства, судья попытается применить к подписи DA(P) текущий ключ EA и обнаружит, что в результате сообщение P не получается. При этом Боб будет выглядеть довольно глупо.
В принципе, для цифровых подписей можно использовать любой алгоритм с открытым ключом. Стандартом фактически является RSA. Он применяется во многих программах, предназначенных для обеспечения безопасности. Однако в 1991 году NIST предложил использовать для нового Стандарта цифровой подписи (Digital Signature Standard, DSS) вариант алгоритма с открытым ключом Эль-Гамаля. Он основан не на трудности
Как обычно, попытка правительства навязать новые криптографические стандарты вызвала много шума. Стандарт DSS критиковали за то, что он:
1) слишком засекречен (протокол, использующий алгоритм Эль-Гамаля, разрабатывался АНБ);
2) слишком медленный (при проверке подписей он работает в 10–40 раз медленнее алгоритма RSA);
3) слишком новый (алгоритм Эль-Гамаля еще не был тщательно проанализирован);
4) слишком ненадежен (фиксированная длина ключа — 512 бит).
При последующей переработке четвертый пункт утратил значение, так как было разрешено применять ключи длиной до 1024 бит. Однако первые два пункта актуальны и по сей день.
8.7.3. Профили сообщений
Многие методы цифровых подписей критикуют за то, что в них совмещаются две разные функции: аутентификация и секретность. Чаще всего требуется лишь первая функция. К тому же получить лицензию на экспорт обычно проще, если система обеспечивает только аутентификацию. Ниже описана схема аутентификации, не требующая шифрования всего сообщения.
Она основана на идее необратимой хеш-функции, которая принимает на входе участок открытого текста произвольной длины и по нему вычисляет строку битов фиксированной длины. Эта хеш-функция, которую часто называют профилем сообщения (message digest, MD), обладает четырьмя важными свойствами:
1. На основе заданного сообщения P можно легко вычислить MD(P).
2. На основе MD(P) практически невозможно определить P.
3. Для заданного сообщения P невозможно подобрать сообщение P', для которого будет выполняться равенство MD(P?) = MD(P).
4. Изменение даже одного бита входной последовательности приводит к совершенно другому результату.
Чтобы удовлетворять требованию 3, результат хеш-функции должен обладать длиной по крайней мере 128 бит (а желательно больше). Чтобы соответствовать требованию 4, хеш-функция должна очень сильно искажать входные значения, как и алгоритмы шифрования с симметричным ключом, рассмотренные выше.
Вычислить профиль сообщения по фрагменту открытого текста гораздо быстрее, чем зашифровать все сообщение с помощью алгоритма с открытым ключом. Поэтому профили сообщений могут использоваться для ускорения работы алгоритмов цифровых подписей. Чтобы понять, как это работает, мы вновь обратимся к протоколу цифровой подписи на илл. 8.21. Вместо передачи открытого текста P вместе с KBB(A, t, P) теперь BB вычисляет профиль сообщения MD(P), применяя функцию хеширования MD к открытому тексту P. Затем он помещает KBB(A, t, MD(P)) как пятый элемент в список, зашифрованный ключом KB, и отправляет его Бобу вместо KBB(A, t, P).
В случае возникновения спора Боб может предъявить на суде как открытый текст P, так и KBB(A, t, MD(P)). По просьбе судьи BB расшифровывает KBB(A, t, MD(P)). В результате суду также предъявляется цифровая подпись MD(P), подлинность которой гарантируется BB, и сам открытый текст P, подлинность которого суд должен выяснить. Поскольку создать другой открытый текст, соответствующий данной цифровой подписи, практически невозможно, суд убеждается в том, что Боб говорит правду. Использование профиля сообщения экономит время шифрования и затраты на транспортировку и хранение.