Введение
В теории чисел метод факторизации Диксона (также метод случайных квадратов Диксона или алгоритм Диксона) — алгоритм факторизации целых чисел общего назначения; он является прототипическим методом с использованием фактор-базы. В отличие от других методов с использованием фактор-базы, оценка времени его работы подкреплена строгим доказательством, не основанным на предположениях о свойствах гладкости значений, принимаемых полиномом. Алгоритм был разработан Джоном Д. Диксоном, математиком из Карлтонского университета, и опубликован в 1981 году.
Основная идея
Метод Диксона основан на поиске конгруэнтности квадратов по модулю целого числа N, которое требуется разложить на множители. Метод факторизации Ферма находит такую конгруэнтность, выбирая случайные или псевдослучайные значения x и надеясь, что целое число x² mod N является полным квадратом (в целых числах). Например, если (начиная с 292, первого числа больше √N и увеличивая счет), то 505² mod 84923 равно 256, что является квадратом 16. Следовательно, вычисление наибольшего общего делителя (НОД) между 505 – 16 и N с помощью алгоритма Евклида дает 163, который является делителем N.
For example, if , (by starting at 292, the first number greater than and counting up) the 5052 mod 84923 is 256, the square of 16. So Computing the greatest common divisor of 505 − 16 and N using Euclid's algorithm gives 163, which is a factor of N.
In practice, selecting random x values will take an impractically long time to find a congruence of squares, since there are only squares less than N.
Dixon's method replaces the condition "is the square of an integer" with the much weaker one "has only small prime factors"; for example, there are 292 squares smaller than 84923; 662 numbers smaller than 84923 whose prime factors are only 2,3,5 or 7; and 4767 whose prime factors are all less than 30. (Such numbers are called B smooth with respect to some bound B.) If there are many numbers whose squares can be factorized as for a fixed set of small primes, linear algebra modulo 2 on the matrix will give a subset of the whose squares combine to a product of small primes to an even power — that is, a subset of the whose squares multiply to the square of a (hopefully different) number mod N.
На практике, выбор случайных значений x потребует непрактично большого времени для нахождения конгруэнтности квадратов, поскольку существует только √N полных квадратов меньше N.
For example, if , (by starting at 292, the first number greater than and counting up) the 5052 mod 84923 is 256, the square of 16. So Computing the greatest common divisor of 505 − 16 and N using Euclid's algorithm gives 163, which is a factor of N.
In practice, selecting random x values will take an impractically long time to find a congruence of squares, since there are only squares less than N.
Dixon's method replaces the condition "is the square of an integer" with the much weaker one "has only small prime factors"; for example, there are 292 squares smaller than 84923; 662 numbers smaller than 84923 whose prime factors are only 2,3,5 or 7; and 4767 whose prime factors are all less than 30. (Such numbers are called B smooth with respect to some bound B.) If there are many numbers whose squares can be factorized as for a fixed set of small primes, linear algebra modulo 2 on the matrix will give a subset of the whose squares combine to a product of small primes to an even power — that is, a subset of the whose squares multiply to the square of a (hopefully different) number mod N.
Метод Диксона заменяет условие "является квадратом целого числа" на гораздо более слабое условие: "имеет только малые простые множители". Например, существует 292 полных квадрата меньше 84923; 662 числа меньше 84923, чьи простые множители – только 2, 3, 5 или 7; и 4767 чисел, чьи простые множители все меньше 30. (Такие числа называются B-гладкими относительно некоторой границы B). Если существует много чисел, квадраты которых можно разложить на множители, состоящие из фиксированного набора малых простых чисел, то линейная алгебра по модулю 2 над матрицей позволит найти подмножество чисел, квадраты которых в произведении дадут произведение малых простых чисел в четной степени – то есть, подмножество чисел, квадраты которых при умножении дадут квадрат (желательно другого) числа по модулю N.
For example, if , (by starting at 292, the first number greater than and counting up) the 5052 mod 84923 is 256, the square of 16. So Computing the greatest common divisor of 505 − 16 and N using Euclid's algorithm gives 163, which is a factor of N.
In practice, selecting random x values will take an impractically long time to find a congruence of squares, since there are only squares less than N.
Dixon's method replaces the condition "is the square of an integer" with the much weaker one "has only small prime factors"; for example, there are 292 squares smaller than 84923; 662 numbers smaller than 84923 whose prime factors are only 2,3,5 or 7; and 4767 whose prime factors are all less than 30. (Such numbers are called B smooth with respect to some bound B.) If there are many numbers whose squares can be factorized as for a fixed set of small primes, linear algebra modulo 2 on the matrix will give a subset of the whose squares combine to a product of small primes to an even power — that is, a subset of the whose squares multiply to the square of a (hopefully different) number mod N.