Научная статья на тему 'Об уязвимости одного криптографического протокола'

Об уязвимости одного криптографического протокола Текст научной статьи по специальности «Математика»

CC BY
53
7
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Об уязвимости одного криптографического протокола»

x / x \

7Г2 111 Ж V )+ ТГ2 J ln2i+ I J \ПН J

3/2 3/2 '

x

= ClLi(x2)+o(x2e-cln3/5~£^ , где Li(z) = /

2

С другой стороны, = Еп^^^-^тё = ¥>(Р - 1) + - !) = 5 + О (х I In ж) , так

к>2 V 7

з

как ^1р(рк — 1) ^ рк и Е ^ р^СжИпх. Таким образом, мы приходим к следующему утверждению. Теорема. Для любого е > 0 справедлива асимптотическая формула

Б = ^ Ф - 1) = сг Ы(х2) + О (х2в-с ы3/б- х) , х ^те,

р^х

где П(х)=/&, С1=п(1-^ту).

СПИСОК ЛИТЕРАТУРЫ

1. Постников А.Г. Введение в аналитическую теорию чисел. М.: Наука, 1971.

2. Карацуба А.А. Основы аналитической теории чисел. 2-е изд., испр. М.: УРСС, 2004.

3. Архипов Г.И., Садовничий В.А., Чубариков В.Н. Лекции по математическому анализу. 3-е изд., перераб. и доп. М.: Дрофа, 2003.

Поступила в редакцию 06.06.2008

УДК 511+003.26

ОБ УЯЗВИМОСТИ ОДНОГО КРИПТОГРАФИЧЕСКОГО ПРОТОКОЛА

Д. В. Копьев

В заметке изучаются возможности атаки и обмана для игрока, начинающего игру в известном криптографическом протоколе, называемом "Ментальный покер" [1]. Ранее была описана иная возможность атаки на протокол [2].

Пусть имеются два игрока A и B и три карты а, в и 7, необходимо раздать карты следующим образом: игроки A и B получают по одной карте и одна карта отправляется в прикуп. При этом соблюдаются следующие условия:

1) каждый игрок может получить любую из трех карт а, в и 7 с равными вероятностями;

2) каждый игрок знает только свою карту;

3) в случае спора можно пригласить судью и выяснить, кто прав, а кто виноват;

4) при раздаче карт никто не знает, кому какая карта досталась (хотя раздача происходит по открытой линии связи и наблюдатель E может записать все передаваемые сообщения).

Участники выбирают некоторое большое простое число p и три случайных числа а1,в1 и 71, которыми кодируются карты а, в и 7 соответственно, причем эта информация известна всем. Затем игрок A выбирает случайным образом число са, взаимно простое с p— 1, и строит такое число dA, что CAdA = 1 (modp— 1). Игрок B также аналогичным образом строит пару чисел Св и ds, такую, что свds = 1 (modp — 1). Эти числа каждый игрок держит в секрете.

После этого начинается собственно сама раздача.

Ш!аг 1. Игрок A вычисляет ui = а!^ (mod p), щ = в1А (mod p), U3 = Y\A (mod p) и высылает их игроку B, предварительно перемешав их случайным образом.

Ш!аг 2. Игрок B получает три числа, выбирает случайно одно из них, например U2, и отправляет его игроку A по линии связи. Это и будет та карта, которая досталась игроку A в процессе раздачи. Игрок A, получив это сообщение, может вычислить U2 = ufA = eCAdA = (mod p), т.е. он знает, что ему досталась карта в.

ШШаг 3. Игрок B вычисляет для оставшихся двух чисел v\ = uiB (mod p), V3 = (mod p) и отправляет их игроку A.

ШШаг 4. Игрок A выбирает случайно одно из полученных чисел, например vi, вычисляет wi = vfA (modp) и отправляет это число обратно игроку B. Игрок B вычисляет zi = wdíB (mod p) и узнает свою карту z = ufB = vfAdB = uiBdBdA = aCACBdAdB = ai (modp).

Карта, соответствующая v3, отправляется в прикуп.

Перейдем к атакам криптолога на данный протокол.

Помимо очевидных предосторожностей при выборе простого p (оно должно быть достаточно большим, чтобы задачу дискретного логарифмирования нельзя было решить быстро) следует соблюдать аккуратность и при выборе чисел ai ,в1 и 71. Ясно, что ^>(p) = p — 1 может довольно легко разлагаться на множители, по крайней мере 2|^>(p). Предположим, что среди ai,ei и 71 первые два числа являются квадратичными вычетами по модулю p, а последнее — квадратичным невычетом. Так как ca, Cb, dA и ds взаимно просты с ^>(p), то они нечетны, а возведение в нечетную степень оставляет квадратичный вычет

квадратичным вычетом, а квадратичный невычет — квадратичным невычетом. Следовательно, 7i будет

p— i

единственным числом, которое при возведении в степень - выдаст в качестве результата —1, значит, наблюдатель E легко отслеживает перемещения карты 7.

Пусть теперь ^>(p) = pi1 p22 ■ ■. pП. Наблюдатель E проверяет, сколько будет вычетов степени pi среди ai,ei и 7i; если такой вычет единственный или их два, то точно такие же рассуждения имеют место и для этого случая. Так как Ca,Cb,dA и ds взаимно просты с ^>(p), то возведение в эти степени оставит вычеты вычетами, а невычеты — невычетами, и с помощью формулы Эйлера наблюдатель E отслеживает перемещения карт. Более того, подобрав подходящим образом пару pipj, он может в точности определить распределение карт по игрокам. Следовательно, для надежности этого протокола следует брать в качестве ai,ei и 7i первообразные корни по модулю p.

Исследуем возможности обмана для игрока A, начинающего игру.

Даже если нам удалось найти первообразные корни и закодировать ими наши карты, тем не менее у игрока A есть возможность попытаться обмануть игрока B.

Игрок A подменяет квадратичным вычетом a один из первообразных корней ai,ei,7i, например ai. Игрок A вычисляет ui = aCA (modp), U2 = @iA (modp), U3 = 7CA (modp) и высылает эти числа игроку B. Посчитаем, с какой вероятностью игрок B выберет и отправит игроку A испорченную карту. Пусть Ta — это элементарное событие "Испорчена карта a", Ть — "Испорчена карта в", Tc — "Испорчена карта 7" и Т — элементарное событие "Игрок B отправил игроку A испорченную карту". Тогда P(Т) = Р{Та\А)Р(А) + Р(ТЬ\В)Р(В) + Р(Тс\С)Р{С) = | + | + | = Значит, с вероятностью f игрок В вышлет игроку A неиспорченную карту.

Игрок B вычисляет для оставшихся двух чисел vi = uiB (mod p), v3 = u3B (mod p) и отправляет их игроку A. Игрок A определяет карту a с помощью формулы Эйлера и отправляет ее в прикуп. Игрок B получает W3 = v3iA (mod p), далее он определяет свою карту и при этом не знает, что отправилось в прикуп. Игрок А полностью знает распределение карт в раздаче с вероятностью |.

Игрок B может устранить возможность подобного обмана: для этого ему следует проверить, являются ли ai ,ei и 7i первообразными корнями. Если одно из чисел окажется не первообразным корнем, то он отправляет его игроку A и игрок A уже не сможет определить распределение в двух оставшихся картах.

Автор выражает благодарность научному руководителю В. Н. Чубарикову и руководителю спецкурса по криптографии М. П. Минееву за постановку задачи, полезные замечания и дополнения.

СПИСОК ЛИТЕРАТУРЫ

1. Рябко Б.Я., Фионов А.Н. Криптографические методы защиты информации. М.: Горячая линия — Телеком, 2005.

2. Coppersmith D. Cheating at mental poker // Lect. Notes Comput. Sci. Advances in Cryptology. 1986. 218. 104-107.

Поступила в редакцию 06.06.2008

i Надоели баннеры? Вы всегда можете отключить рекламу.