Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Эл-ты_криптологии-лек.doc
Скачиваний:
24
Добавлен:
24.11.2019
Размер:
757.76 Кб
Скачать

3.7. Криптографические протоколы

Понятие криптографического протокола мы, фактически, уже рассматривали в рамках анализа различных криптосистем с открытым ключом. В общем случае под криптографическим протоколом понимается система правил обмена информацией по открытым каналам связи, реализация которых обеспечивает выполнение ряда конкретных требований по сокрытию секретной информации.

В настоящее время в криптологии разработано много протоколов, используемых в самых различных сферах: заключение коммерческих сделок в режиме удаленного взаимодействия участников, денежные расчеты по сети (электронные деньги), проведение выборов по компьютерным сетям и т.д. При этом криптографические протоколы не просто обеспечивают большую скорость обмена информацией и большие удобства клиентам, чем традиционные формы взаимодействия, но и, зачастую, они обеспечивают большую надежность сделок. Так, например, электронную банкноту, в отличие от обычной бумажной, практически невозможно поделать.

Мы для примера рассмотрим два протокола.

3.7.1. Протокол для доказательства с нулевым знанием

Рассмотрим следующий класс криптографических задач: пусть некто A знает решение какой-то сложной задачи и хочет убедить в этом R, но так, чтобы R не узнал самого решения. Несмотря на внешнюю противоречивость, такая задача имеет вполне осмысленное решение, то есть R убедится в том, что A знает решение задачи, но при этом после доказательства будет обладать нулевым знанием о самом решении. Предполагается, что протокол должен работать и в условиях, когда каждый участник может вести "нечестную" игру, то есть может попытаться обмануть другого.

Подчеркнем, что большая сложность задачи, которую обсуждают A и R, в протоколе также принципиально необходима, как и сложность вычисления функции, обратной по отношению к односторонней функции, используемой в шифре, который, в свою очередь применяется в рамках протокола.

Рассмотрим такие задачи на примере одной из классических NP-полных задач – задачи о раскраске графа. Известно, что такие задачи имеют экспоненциальный порядок роста временной сложности. Предположим, что задан конкретный граф с большим числом вершин и ребер. Пусть A знает его правильную раскраску и хочет доказать это R, не раскрывая, однако, самой раскраски.

Для наглядности во всех дальнейших построениях будем иметь ввиду следующий граф G = (X, V) с хроматическим числом8 (G) = 3 (рис. 3.1).

v2 (ж)

v1 (к) v3 (к)

v4 (к) v5 (с) v6 (ж)

Рис. 3.1. В скобках рядом с именем вершины указан ее цвет.

Протокол доказательства состоит из множества одинаковых этапов. Каждый этап включает следующую последовательность шагов.

Шаг 1. A выбирает случайную перестановку цветов {к, с, ж} и перекрашивает вершины в соответствии с этой перестановкой (очевидно, что раскраска останется правильной).

Шаг 2. Для каждой вершины v из множества V вершин графа A генерирует большое случайное число rv и заменяет в нем два последних бита: на 00, если вершина окрашена в красный цвет, 01 – в синий, 10 – в желтый.

Шаг 3. Для каждой вершины v A формирует данные, используемые в криптосистеме RSA: Pv, Qv, Nv = PvQv, cv и dv.

Шаг 4. A вычисляет Zv = mod Nv и посылает R значения Nv, dv и Zv vV.

Шаг 5. R выбирает случайно одно из ребер из множества X и сообщает A, какое именно ребро он выбрал. В ответ A высылает числа и , соответствующие вершинам, инцидентным выбранному ребру. После этого R вычисляет

= mod = ; = mod =

и сравнивает два младших бита в полученных числах. При правильной раскраске графа два младших бита в числах и должны быть различны. После этого процесс возвращается к шагу 1 и повторяется а|X| раз, где а ℕ выбирается стороной R . Если же на каком-то повторении шагов указанные младшие биты совпали, то это значит, что A пытался обмануть R и, соответственно, доказательство не засчитывается.

Теорема 3.1. Если A не располагает правильной раскраской графа, то вероятность того, что он сможет обмануть R , не превышает е а.

Д о к а з а т е л ь с т в о.

Пусть A не располагает правильной раскраской графа. Значит, хотя бы для одного ребра из Х инцидентные ему вершины окрашены в один и тот же цвет. Если A будет действовать по протоколу, то вероятность того, что R на данном этапе выберет именно это ребро, будет равна 1/|X| и тогда A будет разоблачен. Значит вероятность того, что A не будет разоблачен на данном этапе равна (1 – 1/|X|), а вероятность того, что он не будет разоблачен за а|X| этапов равна (1 – 1/|X|)а|X|. Используя неравенство (1 – x)  е x, получим:

(1 – 1/|X|)а|X|  (е 1/|X|)а|X| = е а.

Проверим реализацию всех необходимых свойств для протокола доказательства с нулевым знанием.

1). Вероятность возможности обмана мы можем сделать сколь угодно малой, увеличивая a.

2). Покажем, что R действительно не получает никаких знаний о правильной раскраске графа, которой располагает A. Из-за того, что цвета переставляются случайно на каждом этапе (шаг 1), R не сможет узнать истинную раскраску перебирая все ребра одно за другим. Далее, то, что на шаге 2 для каждой вершины выбирается случайное число rv, не позволяет R по имеющимся значениям Nv и dv вычислить коды соответствующих красок. Он не сможет декодировать полученные числа Zv потому, что он не знает числа cv для всех вершин (вычислить cv он не сможет, так как не знает чисел Pv и Qv).

3). Рассмотрим возможность обмана, которая, в принципе, есть у A. Он может попытаться подменить числа и , если ему это выгодно. Однако это невозможно в силу того, что любое число cv, удовлетворяющее равенству

cvdv mod (Pv  1)(Qv  1) = 1

(инверсия по отношению к dv) единственно.

Таким образом, реализуются все свойства.

Рассмотрим еще одну попытку обмана со стороны обоих участников – когда они пытаются отклониться от протокола, выбирая свои параметры не случайно.

Пусть, например, R выбирает ребро не случайно, а по какому-то простому правилу, например, в порядке их нумерации. В этом случае, если у A нет правильной раскраски и он знает обманную стратегию R, то он может обмануть R , "правильно" раскрашивая те вершины, которые задает R на данном этапе.

В целом стойкость протокола определяется стойкостью шифра RSA.