ВУЗ:
Составители:
Глава 2. Простые алгоритмы факторизации 64
Пусть последовательность {u
n
} состоит из разностей
|x
i
− x
j
|, проверяемых в ходе работы алгоритма. Определим новую
последовательность {z
n
}, где z
n
= u
n
mod q, q – меньший из делителей
n. Все члены последовательности {z
n
} меньше
√
n. Если рассматривать
{z
n
} как случайную последовательность чисел, меньших q , то, согласно
парадоксу близнецов, вероятность того, что среди первых l + 1 ее членов
попадутся два одинаковых, превысит 1/2 при λ ≈ 0, 69, тогда l должно
быть не меньше
√
2λq ≈
√
1.4q ≈ 1, 18
√
q .
Если z
i
= z
j
, тогда x
i
− x
j
≡ 0 mod q → x
i
− x
j
= kq для некоторого
k ∈ Z. Если x
i
6= x
j
, что выполняется с большой вероятностью, то искомый
делитель q числа n будет найден как Н.О.Д.(n, x
i
− x
j
). Поскольку
√
q ≤
n
1/4
, то с вероятностью, превышающей 0,5, делитель n может быть найден
за 1, 18 · n
1/4
итераций.
Таким образом, ρ-метод Полларда является вероятностным методом,
позволяющим найти нетривиальный делитель q числа n за O(q
1/2
) ≤
O(n
1/4
) итераций. Сложность вычисления нетривиального делителя в этом
методе зависит только от размера этого делителя, а не от размера числа n.
Поэтому, ρ–метод Полларда применим в тех случаях, когда другие методы
факторизации, зависящие от размера n, становятся не эффективными.
Отметим, что в некоторых случаях, последовательность {y
n
} может
зацикливаться (т.е. на некотором шаге t появляется x
t
= x
0
, после чего
последовательность повторяется), тогда надо поменять исходный элемент x
0
или полином F (x) на какой–нибудь другой.
Упражнения.
1. Подберите несколько составных чисел n одинаковой длины, и
выполните пробное разложение этих чисел методом Полларда.
Вычислите среднее время (количество итераций) до нахождения
нетривиального делителя n. Как сильно отличается время вычисления
для различных n?
2. Выполните упражнение 1 с алгоритмом Флойда. Сравните среднее
время вычисления делителя в первом и втором случаях.
Глава 2. Простые алгоритмы факторизации 64 Пусть последовательность {un } состоит из разностей |xi − xj |, проверяемых в ходе работы алгоритма. Определим новую последовательность {zn }, где zn = un mod q , q – меньший из делителей √ n. Все члены последовательности {zn } меньше n. Если рассматривать {zn } как случайную последовательность чисел, меньших q , то, согласно парадоксу близнецов, вероятность того, что среди первых l + 1 ее членов попадутся два одинаковых, превысит 1/2 при λ ≈ 0, 69, тогда l должно √ √ √ быть не меньше 2λq ≈ 1.4q ≈ 1, 18 q . Если zi = zj , тогда xi − xj ≡ 0 mod q → xi − xj = kq для некоторого k ∈ Z. Если xi 6= xj , что выполняется с большой вероятностью, то искомый √ делитель q числа n будет найден как Н.О.Д.(n, xi − xj ). Поскольку q ≤ n1/4 , то с вероятностью, превышающей 0,5, делитель n может быть найден за 1, 18 · n1/4 итераций. Таким образом, ρ-метод Полларда является вероятностным методом, позволяющим найти нетривиальный делитель q числа n за O(q 1/2 ) ≤ O(n1/4 ) итераций. Сложность вычисления нетривиального делителя в этом методе зависит только от размера этого делителя, а не от размера числа n. Поэтому, ρ–метод Полларда применим в тех случаях, когда другие методы факторизации, зависящие от размера n, становятся не эффективными. Отметим, что в некоторых случаях, последовательность {yn } может зацикливаться (т.е. на некотором шаге t появляется xt = x0 , после чего последовательность повторяется), тогда надо поменять исходный элемент x0 или полином F (x) на какой–нибудь другой. Упражнения. 1. Подберите несколько составных чисел n одинаковой длины, и выполните пробное разложение этих чисел методом Полларда. Вычислите среднее время (количество итераций) до нахождения нетривиального делителя n. Как сильно отличается время вычисления для различных n? 2. Выполните упражнение 1 с алгоритмом Флойда. Сравните среднее время вычисления делителя в первом и втором случаях.
Страницы
- « первая
- ‹ предыдущая
- …
- 61
- 62
- 63
- 64
- 65
- …
- следующая ›
- последняя »