Конгруэнция квадратов в теории чисел: метод факторизации целых чисел. Построение на основе фактор-базы для поиска гладких чисел и разложения на простые множители.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
В теории чисел конгруэнтность квадратов — это конгруэнтность, часто используемая в алгоритмах факторизации целых чисел.
In number theory, a congruence of squares is a congruence commonly used in integer factorization algorithms.
Использование коэффициентной базы
Метод, впервые примененный в методе факторизации Диксона и усовершенствованный методом непрерывных дробей, решетом квадратов и общим решетом числового поля, заключается в построении сравнения квадратов с использованием фактор-базы. Вместо поиска одной пары напрямую, мы находим множество "отношений", где значения y имеют только малые простые делители (являются гладкими числами), и перемножаем некоторые из них, чтобы получить квадрат в правой части. Множество малых простых чисел, на которые все y разлагаются, называется фактор-базой. Строим булеву матрицу, где каждая строка описывает одно значение y, каждый столбец соответствует одному простому числу в фактор-базе, а элемент матрицы представляет собой четность (четное или нечетное) количества раз, которое данный фактор встречается в y. Наша цель – выбрать строки для сложения, чтобы получить строку, состоящую из нулей. Это соответствует набору значений y, которые нужно перемножить, чтобы получить произведение, все факторы которого встречаются четное число раз, то есть квадрат числа. Перемножение соответствующих значений x даст сравнение квадратов. Это классическая задача системы линейных уравнений, которую можно эффективно решить с помощью метода Гаусса, как только число строк превысит число столбцов. Каждая дополнительная строка предоставляет дополнительное решение, в случае если первое решение приводит к тривиальному сравнению. Значительным преимуществом этой техники является то, что поиск отношений легко распараллеливается: большое количество компьютеров можно задействовать для поиска в различных диапазонах значений x и попыток разложения полученных y. Только найденные отношения необходимо сообщать центральному компьютеру, и делать это не нужно срочно. Компьютерам, выполняющим поиск, даже не обязательно доверять: достоверность сообщенного отношения можно проверить с минимальными усилиями. Существует множество усовершенствований этой техники. Например, помимо отношений, где y полностью разлагается на факторы в фактор-базе, вариант с "большим простым числом" также собирает "частичные отношения", где y разлагается полностью, за исключением одного большего множителя. Второе частичное отношение с тем же большим множителем можно перемножить с первым, чтобы получить "полное отношение".
A technique pioneered by Dixon's factorization method and improved by continued fraction factorization, the quadratic sieve, and the general number field sieve, is to construct a congruence of squares using a factor base. Instead of looking for one pair directly, we find many "relations" where the y have only small prime factors (they are smooth numbers), and multiply some of them together to get a square on the right hand side. The set of small primes which all the y factor into is called the factor base. Construct a Boolean matrix where each row describes one y, each column corresponds to one prime in the factor base, and the entry is the parity (even or odd) of the number of times that factor occurs in y. Our goal is to choose rows to add together to make an all zero row. This corresponds to a set of y values to multiply together to produce a product whose factors all appear an even number of times, i. e. a square number. Multiplying together the corresponding x values will produce a congruence of squares. This is a classic system of linear equations problem, and can be efficiently solved using Gaussian elimination as soon as the number of rows exceeds the number of columns. Each additional row provides an additional solution, in case the first solution produces a trivial congruence. A great advantage of this technique is that the search for relations is embarrassingly parallel; a large number of computers can be set to work searching different ranges of x values and trying to factor the resultant ys. Only the found relations need to be reported to a central computer, and there is no particular hurry to do so. The searching computers do not even have to be trusted; a reported relation can be verified with minimal effort. There are numerous elaborations on this technique. For example, in addition to relations where y factors completely in the factor base, the "large prime" variant also collects "partial relations" where y factors completely except for one larger factor. A second partial relation with the same larger factor can be multiplied by the first to produce a "complete relation".