Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Алфёров А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии

.pdf
Скачиваний:
4126
Добавлен:
28.03.2016
Размер:
7.75 Mб
Скачать

Идентификация

Получив сообщение, пользователь В проверяет, что Ы (В) соответствует его идентификатору и что цифровая подпись под строкой (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 доказывающего А, а ответ = 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