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