Метод Берлекэмпа

Поделись знанием:
Перейти к: навигация, поиск

Метод Берлекэмпа(Berlekamp) - вероятностный метод решения сравнений второй степени с полиномиальной сложностью. При этом вероятность решения ½.



Описание метода

Задача: решить сравнение вида x² - a = 0(mod p) при простом p, a - квадратичный вычет. Обозначим решения как β и -β. F(x)=x² - a = (x-β)(x+β).

Рассмотрим произвольное число z, принадлежащее полю вычетов по модулю p. Обозначим Fz(x)=F(x-z)=(x-z)2 - a = (x-z-β)(x-z+β) Рассмотрим Gz(x) = НОД(Fz(x);x(p-1)/2 - 1), при этом учитывая, что x(p-1)/2 - 1 можно представить в виде произведения мономов (x-t), где t - вычет по модулю p. Далее, если НОД равен 1, значит (z-β) и (z+β) не вычеты.

Если НОД равен Fz(x) оба вычеты, но выразить x не удастся.

Если НОД равен некоторому (x - t), который в свою очередь равен (x-z-β) или (x-z+β), мы можем выразить через него решение x.

В итоге, так как x произвольное получаем вероятностный метод решения сравнения 2-й степени с вероятностью решения 1/2 и полиномиальной сложностью решения (нахождение НОД имеет полиномиальную сложность).
Метод хорош тем, что позволяет не решать задачу дискретного логарифмирования.

Пример

x² - 5 = 0(mod 11) Выберем случайное z, например z=3

        (x-3)2 - 5 = 0(mod 11);
         x2 - 6x + 4 = 0(mod 11);
         Gz(x) = НОД( x2 - 6x + 4 ; x5 - 1) = 1;

Ничего определенного сказать нельзя. Выберем другое z, например z=2

        (x-2)2 - 5 = 0(mod 11);
         x2 - 4x - 1 = 0(mod 11);
         Gz(x) = НОД( x2 - 4x - 1 ; x5 - 1) = 8x + 5 = x + 2 = x - 9;
         x - 9 = x - 2 + β => β = 7 и β = -7 = 4.

Проверяем

         72= 49 = 5(mod 11)
         42= 16 = 5(mod 11).


Напишите отзыв о статье "Метод Берлекэмпа"

Отрывок, характеризующий Метод Берлекэмпа

– Ну, а мальчик что?
– Весенний то? Он там, в сенцах, завалился. Со страху спится. Уж рад то был.
Долго после этого Петя молчал, прислушиваясь к звукам. В темноте послышались шаги и показалась черная фигура.
– Что точишь? – спросил человек, подходя к фуре.
– А вот барину наточить саблю.
– Хорошее дело, – сказал человек, который показался Пете гусаром. – У вас, что ли, чашка осталась?
– А вон у колеса.
Гусар взял чашку.
– Небось скоро свет, – проговорил он, зевая, и прошел куда то.
Петя должен бы был знать, что он в лесу, в партии Денисова, в версте от дороги, что он сидит на фуре, отбитой у французов, около которой привязаны лошади, что под ним сидит казак Лихачев и натачивает ему саблю, что большое черное пятно направо – караулка, и красное яркое пятно внизу налево – догоравший костер, что человек, приходивший за чашкой, – гусар, который хотел пить; но он ничего не знал и не хотел знать этого. Он был в волшебном царстве, в котором ничего не было похожего на действительность. Большое черное пятно, может быть, точно была караулка, а может быть, была пещера, которая вела в самую глубь земли. Красное пятно, может быть, был огонь, а может быть – глаз огромного чудовища. Может быть, он точно сидит теперь на фуре, а очень может быть, что он сидит не на фуре, а на страшно высокой башне, с которой ежели упасть, то лететь бы до земли целый день, целый месяц – все лететь и никогда не долетишь. Может быть, что под фурой сидит просто казак Лихачев, а очень может быть, что это – самый добрый, храбрый, самый чудесный, самый превосходный человек на свете, которого никто не знает. Может быть, это точно проходил гусар за водой и пошел в лощину, а может быть, он только что исчез из виду и совсем исчез, и его не было.