Аутентификация сообщений
Целью аутентификации сообщения является подтверждение или отрицание следующих предположений: - сообщение исходит от законного абонента, - сообщение при передаче не изменилось, - сообщение доставлено по требуемому адресу, - последовательность принятых сообщений соответствует последовательности отправленных. Проверка подлинности особенно важна для шифрограмм, поскольку у получателя они вызывают больше доверия, чем открытый текст. Методы аутентификации разрабатываются в предположении, что установление подлинности производится исключительно по самому сообщению, без привлечения каких-либо внешних средств. Для этого на передающей стороне в сообщение x вводится дополнительно код хэш - функции, который также называют сигнатурой, контрольной комбинацией, имитовставкой, дайджестом или профилем сообщения. Как уже отмечалось ранее, сообщение x предварительно преобразуется в число или набор чисел. Хэш-функция отображает сообщение x произвольной длины l в последовательность символов фиксированной длины m. Чтобы снижение скорости передачи при таком дополнении не было значительным, естественно требование: Проверка подлинности сообщения заключается в сравнении вычисленного по принятому x, со значением выделенным из самого сообщения. Если они равны, то принимается решение, что при передаче сообщение не изменилось. В противном случае фиксируется искажение переданного сообщения. Так как , то возможно, что нескольким сообщениям , называемых коллизиями, соответствует одно значение хэш-функции . Ясно, что замена переданного сообщения на любую коллизию не будет обнаружена при проверке подлинности. Вероятность успешной подделки сообщения определяется разрядностью значения . На практике используются длины в 64 – 150 бит. Из рассмотренного становятся очевидными требования, предъявляемые к хэш-функциям: – чувствительность ко всевозможным изменениям в тексте (вставки, изъятия, перестановки и пр.), – отсутствие эффективных алгоритмов поиска коллизий, – однонаправленность, т.е. по данному значению функции вычислительно неосуществимо нахождение аргумента x, – простота вычислений значения . Предложено много способов хэширования. Разработан и государственный стандарт на имитовставку. В качестве примера рассмотрим хэш-функцию вида . Процедура вычисления значения является рекуррентной и применяется к сообщению x, разбитому на блоки фиксированной длины: , (14.1) где – значение функции на i -м шаге, – произвольное начальное число. Пример 14.1.1. Пусть , а сообщение x = "ДВА" представлено номерами букв в русском алфавите, т. е. . Выберем произвольно . Тогда согласно (14.1) в предположении , , получим , , . Сообщение после хэширования имеет вид или в буквенной форме "ДВАГ". ð Рис. 14.1. Схема шифрования хэш-функции На практике нашли применение следующие варианты построения хэш–функций. Алгоритм MD-5 (Message Digest 5) создает 128-битовый профиль сообщения. За четыре цикла данный алгоритм разбивает открытый текст на 512-битовые блоки. В каждом цикле используются разные нелинейные функции, включающие логические операторы И, ИЛИ, НЕ или исключающее ИЛИ. За цикл каждая функция применяется 16 раз. Кроме того, в каждом цикле используются сдвиги битов и скалярное сложение. Криптоаналитики определили, что в алгоритме MD-5 возможны конфликты, т.е. два различных аргумента могут дать одно и то же значение хэш-функции. В силу этих потенциальных недостатков был предложен алгоритм SHA-1 (Secure Hash Algoritm–1). Данный алгоритм оперирует с сообщениями, длиной меньшей бит, и создает 160-битовый профиль сообщения. Алгоритм SHA–1 подобен алгоритму MD-5 тем, что в каждом из четырех циклов использует различные нелинейные функции, причем каждая функция применяется 20 раз в течение цикла. Кроме того, как и в MD-5, алгоритм SHA-1 использует различные скалярные сложения и сдвиги битов. Рассмотренная процедура аутентификации предполагает наличие доверия между абонентами, обменивающимися информацией, т. е. защищает от обмана со стороны внешнего нарушителя. В жизни существует много ситуаций, когда доверие между абонентами отсутствует (обмен электронными документами между коммерческими организациями, между клиентом и банком и т.п.). В этом случае возможен обман со стороны законных абонентов. Например, отправитель абонент А может впоследствии отказаться от своего сообщения, получатель B может изменить (подменить) полученный документ и утверждать потом, что в таком виде его прислал абонент А. Прогнозы развития систем мобильной связи показывают, что наибольших успехов следует ожидать в области электронной коммерции. Предполагается, что с помощью мобильного телефона можно будет совершать всевозможные банковские операции. В этих условиях становится важной задача защиты от возможного обмана законными абонентами. Одним из возможных вариантов реализации проверки подлинности сообщения при отсутствии доверия может служить алгоритм, основанный на использовании метода RSA. Пусть и – секретный и открытый ключи абонентов A и B соответственно. Рис. 14.2 иллюстрирует применение криптосистемы с открытым ключом для проверки подлинности подписи. Абонент A «подписывает» свое сообщение, используя свой секретный ключ . Затем для шифрования y абонент A использует открытый ключ абонента B, в результате чего образуется сообщение , которое и передается через общедоступный канал. Получив сообщение u, абонент B первоначально расшифровывает его с помощью собственного секретного ключа, т.е. осуществляет преобразование , а затем применяет открытый ключ абонента A, в результате чего получает . Если в результате подобных преобразований получается вразумительное сообщение, то оно точно было послано абонентом A, поскольку больше никто не знает секретного ключа пользователя A, с помощью которого было выполнено преобразование . Следует также отметить, что сообщение y зависит и от открытого текста x и от подписи, т.е. ключей и . Последнее означает, что не только абонент B может быть уверен, что сообщение действительно приходит от абонента A, но и A уверен, что никто кроме B не сможет прочесть это сообщение. Поскольку алгоритмы с открытым ключом работают достаточно медленно, то вместо трудоемкого процесса шифрования всего открытого текста предлагается использовать шифрование только профиля сообщения фиксированной длины, созданного с помощью односторонней хэш–функции. Шифрование же профиля сообщения производится посредством алгоритма с открытым ключом. Данный метод, называемый цифровой (или электронной подписью), иллюстрирует рис. 14.3. Цифровая подпись используется для проверки подлинности как отправителя, так и сообщения. Ее назначение аналогично функциям ручной подписи на бумажных документах. Однако принадлежность ручной подписи данному тексту обеспечивается целостностью бумаги, на которой написан документ и поставлена подпись. В электронном виде единство документа и соответствующей ему подписи достигается за счет введения связи между текстом и видом подписи, так что если сообщение было изменено (т.е. было постороннее вмешательство), то его профиль будет другим. Постановка электронной подписи (ЭП) под открытым документом x заключается в его хэшировании, например, с использованием алгоритма MD-5, создающим 128-битовый профиль сообщения (или значение хэш–функции) открытого текста, и шифровании значения хэш-функции с помощью секретного ключа отправителя A. К могут добавляться идентификатор абонента А, номер сообщения, время отправления и другие сведения, предназначенные для защиты от возможного обмана. В результате подписанный документ имеет вид , где , т.е. содержит открытый текст и цифровую подпись. Проверка подписи абонента A абонентом B включает следующие операции: – расшифровку ЭП с помощью открытого ключа абонента A, т.е. осуществление преобразования , – вычисление по принятому открытому тексту x значения хэш-функции , – сравнение двух профилей сообщений и . Если эти значения равны, то принимается решение, что x – подлинное сообщение, исходящее от абонента А. Различие означает, что либо x изменено (может быть и из-за искажений в канале связи), либо отправлено другим абонентом. Следует подчеркнуть, что абонент А не может отказаться от y, так как только он, обладая секретным ключом, способен создать ЭП, при расшифровке которой с помощью его открытого ключа будет выполняться равенство. Абонент B не может изменить x и выдать его за истинное, так как, не зная ключа , не может создать ЭП, соответствующую измененному x. Выделение из y электронной подписи и присоединение ее к новому документу также будет обнаружено: фальшивому сообщению соответствует значение , не равное . Обман будет успешным, только если истинное x заменяется его коллизией. Следует указать на идейную общность методов защиты сообщений от помех и от злоумышленников. В обоих случаях в сообщение вводятся дополнительные символы, функционально связанные с сообщением. В помехоустойчивых кодах эти связи выбираются так, чтобы можно было обнаруживать и исправлять наиболее вероятные искажения в канале связи. Для защиты от злоумышленника функциональные зависимости делаются секретными, при этом учитываются интеллектуальные и технические возможности противника.
|