Рациональное сито - Rational sieve

В математике , то рациональное сито представляет собой общий алгоритм для факторизации целых чисел на простые множители . Это частный случай сита общего числового поля . Хотя он менее эффективен, чем общий алгоритм, он концептуально проще. Он служит полезным первым шагом в понимании того, как работает сито общего числового поля.

Методика

Предположим, мы пытаемся разложить составное число n на множители . Мы выбираем грань B , а также определить коэффициент базы (который мы будем называть Р ), множество всех простых чисел меньше или равно B . Далее, мы ищем положительные целый г такой , что и г и г + п является B - гладким - то есть все их главных факторов в P . Поэтому мы можем написать, подходящие показатели ,

и аналогично для подходящего имеем

.

Но и являются конгруэнтными по модулю , и поэтому каждое такое целое число z, которое мы находим, дает мультипликативное отношение (по модулю n ) между элементами P , т. Е.

(где a i и b i - неотрицательные целые числа.)

Когда мы сгенерировали достаточно этих отношений (обычно достаточно, чтобы количество отношений было на несколько больше, чем размер P ), мы можем использовать методы линейной алгебры, чтобы перемножить эти различные отношения таким образом, чтобы показатели степени все простые числа четные. Это даст нам сравнение квадратов вида a 2 ≡b 2 (mod n ), которое можно превратить в факторизацию n = gcd ( a - b , n ) × gcd ( a + b , n ). Эта факторизация может оказаться тривиальной (например, n = n × 1), и в этом случае мы должны повторить попытку с другой комбинацией отношений; но если повезет, мы получим нетривиальную пару множителей n , и алгоритм завершится.

Пример

Мы разложим на множители целое число n = 187, используя рациональное сито. Мы произвольно попробуем значение B = 7, получив факторную базу P  = {2,3,5,7}. Первый шаг - проверить n на делимость каждым из членов P ; ясно, что если n делится на одно из этих простых чисел, то мы уже закончили. Однако 187 не делится на 2, 3, 5 или 7. Затем мы ищем подходящие значения z ; первые несколько - 2, 5, 9 и 56. Четыре подходящих значения z дают четыре мультипликативных отношения (mod 187):

  • 2 1 3 0 5 0 7 0 = 2 ≡ 189 = 2 0 3 3 5 0 7 1 ............. (1)
  • 2 0 3 0 5 1 7 0 = 5 ≡ 192 = 2 6 3 1 5 0 7 0 ............. (2)
  • 2 0 3 2 5 0 7 0 = 9 ≡ 196 = 2 2 3 0 5 0 7 2 ............. (3)
  • 2 3 3 0 5 0 7 1 = 56 ≡ 243 = 2 0 3 5 5 0 7 0 ............. (4)

Теперь существует несколько существенно разных способов их комбинирования и получения четных показателей. Например,

  • (1) × (4): после их умножения и сокращения общего множителя 7 (что мы можем сделать, поскольку 7, будучи членом P , уже было определено как взаимно простое с n ), это сокращается до 2 4 ≡ 3 8 (mod n ) или 4 2 ≡ 81 2 (mod n ). Результирующая факторизация: 187 = НОД (81-4 ​​187) × НОД (81 + 4 187) = 11 × 17.

В качестве альтернативы, уравнение (3) уже находится в правильной форме:

  • (3): Это говорит о 3 2 ≡ 14 2 (mod n ), что дает факторизацию 187 = НОД (14-3,187) × НОД (14 + 3,187) = 11 × 17.

Ограничения алгоритма

Рациональное решето, как и решето общего числового поля, не может разложить на множители числа вида p m , где p - простое число, а m - целое число. Однако это не большая проблема - такие числа статистически редки, и, кроме того, существует простой и быстрый процесс проверки того, имеет ли данное число такую ​​форму. Вероятно, самый элегантный метод - проверить, выполняется ли какое-либо 1 <b <log (n), используя целочисленную версию метода Ньютона для извлечения корня.

Самая большая проблема - найти достаточное количество z , чтобы и z, и z + n были B- гладкими. Для любого данного B доля чисел, которые являются B- гладкими, быстро уменьшается с размером числа. Таким образом, если n большое (скажем, сто цифр), будет сложно или невозможно найти достаточно z для работы алгоритма. Преимущество сита общего числового поля состоит в том, что нужно искать только гладкие числа порядка n 1 / d для некоторого положительного целого числа d (обычно 3 или 5), а не порядка n, как здесь требуется.

Рекомендации

  • AK Lenstra, HW Lenstra, Jr., MS Manasse, JM Pollard, Факторизация девятого числа Ферма, Math. Комп. 61 (1993), 319-349. Доступно на [2] .
  • А.К. Ленстра, Х.В. Ленстра младший (ред.) Развитие сита числового поля, Конспект лекций по математике 1554, Springer-Verlag, Нью-Йорк, 1993.

Сноски