Алфёров А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии
.pdfИдентификация
Получив сообщение, пользователь В проверяет, что Ы (В) соответствует его идентификатору и что цифровая подпись под строкой (2а, 2в9Ш (В)) верна.
3. Взаимная идентификация с использованием случайных чисел:
(1)А<—В : г в,
(2)А В : 2 А,М(В), 8 А(гА, 2в ,Ш(В)),
(3)А < - В :Ш(А),8в (2н,2а,1с1(А)).
§12.4. Протоколы с нулевым разглашением
Недостатком протоколов с фиксированным паролем яв ляется то, что доказывающий А передает проверяющему В свой пароль, вследствие чего В может в последующем выдать себя за А. Протоколы типа “запрос-ответ” ликвидируют этот недостаток. При их выполнении А отвечает на запросы В, меняющиеся во времени, не давая В информации, которую тот может использовать, чтобы выступать от имени А. Тем не менее А может выдать некоторую частичную информацию о своем секрете.
Протоколы с нулевым разглашением призваны решить эту проблему, давая возможность доказывающему продемонстриро вать знание секрета, не выдавая о нем никакой информации. Точ нее говоря, выдается только один бит информации, обозначающий то, что доказывающий знает секрет.
В протоколах с нулевым разглашением термин “доказательст во” имеет смысл, отличный от традиционно принятого в матема тике. Доказательство имеет вероятностный характер. Это означает, что утверждение имеет место с некоторой вероятностью, которая может быть выбрана сколь угодно близкой к единице.
Примером такого протокола является протокол Фиата — Шамира. Он основывается на сложности задачи извлечения квад ратного корня по модулю большого составного числа п с неиз
341
I лава 12
вестным разложением на множители. Как известно, эта задача эквивалентна задаче разложения числа п на множители.
А доказывает В знание секрета 5 с помощью I итераций сле дующего трехшагового протокола.
Доверенный центр Т выбирает модуль п = р ^ и сообщает его всем доказывающим. При этом числар и д остаются секретными.
Каждый доказывающий А выбирает секрет 5, которым являет ся число, взаимно простое с п , 1 < 5 < п - 1, вычисляет значение V = 82тоб п и объявляет Vсвоим открытым ключом.
Следующие три шага производятся независимо / раз, причем В принимает доказательство владения А секретом 8, если все эти итерации приводят к положительному ответу.
1. А выбирает случайно 2, 1 < 2 < и - 1, и посылает В число х =
г2то <1п.
2.В случайно выбирает бит с и направляет егоА.
3.А вычисляет и направляет В числоу, равное либо 2, если с =
О, либо 28 шод п , если с - 1 .
В дает положительный ответ, еслиу Ф0 и
у 2 = хус(тос1 п ).
Заметим, что в зависимости от значения бита с выполнено од но из двух условий: у 2 = х (то <1 п) или у 2 = хг(тос1 п) , так как V = 82(тос!п) . Проверка равенства у = 0 исключает случай г
= 0.
Корректность протокола может быть обоснована следующи ми рассуждениями.
Наличие запроса с требует, чтобы А был в состоянии ответить на любой из двух вопросов, ответ на один из которых требует зна ния секрета лг, а ответ на другой предотвращает попытку обмана. Противник, выдающий себя за А, может попытаться обмануть проверяющего, выбрав любое число г и передав В число х = 2%.
342
Идентификация
Тогда он сможет ответить на запрос “с = 1”, направив правильный ответ “у = г”, но не сможет ответить на запрос “с = 0”, ответ на который требует знания корня квадратного из числах по модулю п.
Доказывающий А, знающий 5, в состоянии ответить на оба вопроса. Если же он не знает $, то в лучшем случае — на один из двух вопросов. Таким образом, обман удается с вероятностью, не превышающей 1/2. При /-кратной итерации протокола вероятность обмана может быть доведена до величины, не превышающей 2 .
Ответ “у = 2” не зависит от секрета 5 доказывающего А, а ответ 6у = 28 тоб я” также не несет информации о 5, так как случайное 2 не известно проверяющему В.
Идеи, лежащие в основе протоколов с нулевым разглашением, могут быть сформулированы следующим образом.
Доказывающий А выбирает случайный элемент из заранее оговоренного множества, как свой секретный ключ для данной итерации протокола, вычисляет, используя его как аргумент неко торой однонаправленной функции, ее значение, и предъявляет это значение проверяющему. Этим обеспечивается случайность и независимость различных итераций протокола и определяется набор вопросов, на каждый из которых доказывающий готов дать ответ. Протокол построен так, что только доказывающий А, вла деющий секретом $9в состоянии ответить на все эти вопросы, и ни один ответ не дает информации о секрете. На следующем этапе В выбирает один из этих вопросов и А дает на него ответ, который затем проверяется В. Осуществляется необходимое число итера ций протокола с целью снизить до приемлемого уровня вероят ность обмана.
Другими словами, в основе протоколов с нулевым разглаше нием лежит комбинация идей протоколов типа “режь и выбирай” (этот термин происходит от стандартного метода, которым дети делят кусок пирога: один режет, а другой выбирает) и протоколов типа “запрос-ответ”.
343
I лава 12
§12.5. Атаки на протоколы идентификации
Взаключение приведем перечень атак на протоколы иденти фикации и методов их отражения, часть из которых уже упомина лась выше.
1.Подмена — попытка подменить одного пользователя дру
гим.
Методы противодействия состоят в сохранении в тайне от противника информации, определяющей алгоритм идентифика ции.
2.Повторное навязывание сообщения (гер1ау) — подмена или другой метод обмана, использующий информацию ранее прове денного протокола идентификации того же самого или другого пользователя.
Методы противодействия включают использование протоко лов типа “запрос-ответ”, использование временных меток, случай ных чисел или возрастающих последовательностей чисел.
3.Комбинированная атака {\п1ег1еахчщ аПаск) — подмена или другой метод обмана, использующий комбинацию данных из ранее выполненных протоколов, в том числе протоколов, ранее навязанных противником.
Метод противодействия состоит в обеспечении целостности проводимых протоколов и отдельных сообщений.
4.Атака отражением — комбинированная атака, исполь зующая посылку части информации только что проведенного про токола доказывающему.
Методы противодействия включают введение в протокол идентификационной информации проверяющего, использование различных ключей для приема и передачи сообщений.
5.Задержка передачи сообщения (/огсес/ с/е1ау) — перехват противником сообщения и навязывание его в более поздний мо мент времени.
Методы противодействия включают использование случай ных чисел совместно с ограничением временного промежутка для ответа, использование временных меток.
344
ИОентификация
6. Атака с использованием специально подобранных тек стов—• атака на протоколы типа “запрос-ответ”, при которой противник по определенному правилу выбирает запросы с целью получить информацию о долговременном ключе доказывающего. Эта атака может включать специально подобранные открытые тексты, если доказывающий должен подписать или зашифровать запрос, и специально подобранные шифрованные тексты, если доказывающий должен расшифровать запрос.
Методы противодействия этой атаке состоят во включении случайных чисел в запросы или ответы, а также в использовании протоколов с нулевым разглашением.
7. Использование противником своих средств в качестве части телекоммуникационной структуры — атака, при которой в протоколе идентификации между А и В противник С входит в телекоммуникационный канал и становится его частью при реали зации протокола между А и В. При этом противник может подме нить информацию, передаваемую между А и В. Эта атака особенно опасна в случае установления А и В общего ключа по протоколу Диффи — Хеллмана.
Противодействие этой атаке состоит в использовании защи щенного канала для установления общего ключа между
Аи В.
Взаключение заметим следующее. Идентификация может быть гарантирована только в момент времени после завершения протокола. При этом имеется опасность того, что противник под ключится к линии связи после окончания процесса идентифика ции, выдавая себя за законного пользователя. Для исключения этой возможности следует совместить процесс идентификации с процессом установления общего сеансового ключа, который дол жен быть использован для защиты передаваемой информации до следующей реализации протокола идентификации.
345
I лава 12
Контрольные вопросы
1.На какие группы могут быть разбиты алгоритмы идентифика ции?
2.В чем состоят недостатки систем с фиксированными пароля ми?
3.За счет чего повышается надежность идентификации при ис пользовании пластиковой карты и личного идентификацион ного номера?
4.Каковы возможные схемы использования одноразовых паро лей?
5.Для каких целей используется временная метка в протоколе типа “запрос-ответ”?
6. Чем могут быть заменены временные метки в протоколах типа “запрос-ответ”?
7.Какая идея лежит в основе протоколов с нулевым разглашени ем?
8. Какие типы атак могут бьггь использованы при нападении на протоколы идентификации?
346
Глава 13
Криптографические хэш-функции
§13.1. Функции хэширования и целостность данных
Хэш-функции — это функции, предназначенные для “сжатия” произвольного сообщения или набора данных, запи санного, как правило, в двоичном алфавите, в некоторую би товую комбинацию фиксированной длины, называемую сверткой. Хэш-функции имеют разнообразные применения при проведении статистических экспериментов, при тестиро вании логических устройств, при построении алгоритмов бы строго поиска и проверки целостности записей в базах дан ных (см., например, [Кну99]). Например, для осуществления быстрого поиска нужного сообщения в большом списке со общений различной длины удобнее сравнивать друг с другом не сами сообщения, а короткие значения их сверток, играю щих одновременно роль контрольных сумм. Основным требо ванием к таким хэш-функциям является равномерность рас пределения их значений при случайном выборе значений ар гументов.
В криптографии хэш-функции применяются для решения следующих задач:
—построения систем контроля целостности данных при их передаче или хранении,
—аутентификации источника данных.
При решении первой задачи для каждого набора данных вычисляется значение хэш-функции (называемое кодом ау тентификации сообщения или имитовставкой), которое пе редается или хранится вместе с самими данными. При полу чении данных пользователь вычисляет значение свертки и
347
I лава 13
сравнивает его с имеющимся контрольным значением. Несов падение говорит о том, что данные были изменены.
Хэш-функция, служащая для выработки имитовставки, должна позволять (в отличие от обычной контрольной суммы) осуществлять обнаружение не только случайных ошибок в наборах данных, возникающих при их хранении и передаче, но и сигнализировать об активных атаках злоумышленника, пытающегося осуществить навязывание ложной информации. Для того чтобы злоумышленник не смог самостоятельно вы числить контрольное значение свертки и тем самым осущест вить успешную имитацию или подмену данных, хэш-функция должна зависеть от секретного, не известного злоумышлен нику, параметра —- ключа пользователя. Этот ключ должен быть известен передающей и проверяющей сторонам. Такие хэш-функции будем называть ключевыми.
Имитовставки, формируемые с помощью ключевых хэшфункций, не должны позволять противнику создавать под дельные (сфабрикованные) сообщения (/ЪЬпсаНоп) при ата ках типа имитация (трегяопаНоп) и модифицировать переда ваемые сообщения (мосИ/юаИоп) при атаках типа “подмена” (зиЫШийоп).
При решении второй задачи — аутентификации источни ка данных — мы имеем дело с не доверяющими друг другу сторонами. В связи с этим подход, при котором обе стороны обладают одним и тем же секретным ключом, уже неприме ним. В такой ситуации применяют схемы цифровой подписи, позволяющие осуществлять аутентификацию источника дан ных. Как правило, при этом сообщение, прежде чем быть подписано личной подписью, основанной на секретном ключе пользователя, “сжимается” с помощью хэш-функции, выпол няющей функцию кода обнаружения ошибок (см. далее). В данном случае хэш-функция не зависит от секретного ключа и может быть фиксирована и известна всем. Основными требо ваниями к ней являются гарантии невозможности подмены подписанного документа, а также подбора двух различных
348
Хэш-функции
сообщений с одинаковым значением хэш-функции (в этом случае говорят, что такая пара сообщений образует коллизию).
Формализуя сказанное, введем следующее определение. Обозначим через X множество, элементы которого будем на зывать сообщениями. Обычно сообщения представляют собой последовательности символов некоторого алфавита, как пра вило, двоичного. Пусть У — множество двоичных векторов фиксированной длины.
Хэш-функцией называется всякая функция Н :Х —> К,
легко вычислимая и такая, что для любого сообщения М зна чение Н(М) = Н (свертка) имеет фиксированную битовую длину.
Обычно число возможных сообщений значительно пре восходит число возможных значений сверток, в силу чего для каждого значения свертки имеется большое множество про образов, то есть сообщений с заданным значением хэшфункции. Заметим, что при случайном и равновероятном выборе сообщений условие равномерности распределения значений хэш-функции эквивалентно наличию одинакового числа прообразов для каждого значения свертки.
Как правило, хэш-функции строят на основе так называе мых одношаговых сжимающих функций у = / ( х п х 2) двух
переменных, где х, и у — двоичные векторы длины т и п соответственно, причем п — длина свертки. Для получения значения Н{М) сообщение М сначала разбивается на блоки длины т (при этом если длина сообщения не кратна /??, то по следний блок неким специальным образом дополняется до полного), а затем к полученным блокам М 1? М 2,.., М м
применяют следующую последовательную процедуру вычис ления свертки:
Я 0 = у, |
|
Н, =/(М„//,_,), 1 = |
(1) |
И М ) = н ы.
349
I лава 13
Здесь V — некоторый фиксированный начальный вектор. Если функция / зависит от ключа, то этот вектор можно по ложить равным нулевому вектору. Если же функция / не за висит от ключа, то для исключения возможности перебора коротких сообщений (при попытках обращения хэш-функции) этот вектор можно составить из фрагментов, указывающих дату, время, номер сообщения и т. п.
При таком подходе свойства хэш-функции к полностью определяются свойствами одношаговой сжимающей функ ции/
Особо выделяют два важных типа криптографических хэш-функций — ключевые и бесключевые. Первые применя ются в системах с симметричными ключами. Ключевые хэшфункции называют кодами аутентификации сообщений (КАС) (тезза^е аШкепИсаИоп соде (МАС)). Они дают возмож ность без дополнительных средств гарантировать как пра вильность источника данных, так и целостность данных в системах с доверяющими друг другу пользователями.
Бесключевые хэш-функции называются кодами обнару жения ошибок (тодфсаИоп де1есИоп соде (МВС) или татриШюп де(есИоп соде, тезза§е Ше%гНу соде (М/С)). Они дают возможность с помощью дополнительных средств (на пример, шифрования, использования защищенного канала или цифровой подписи) гарантировать целостность данных. Эти хэш-функции могут применяться в системах как с дове ряющими, так и не доверяющими друг другу пользователями. Рассмотрим их более подробно.
§13.2. Ключевые функции хэширования
Вкриптографических приложениях к ключевым функци ям хэширования предъявляются следующие основные требо вания:
—невозможность фабрикации;
—невозможность модификации.
350
