Научная литература
booksshare.net -> Добавить материал -> Математика -> Коблиц Н. -> "Курс теории чисел и криптографии" -> 87

Курс теории чисел и криптографии - Коблиц Н.

Коблиц Н. Курс теории чисел и криптографии — Москва: Научное изд-во ТВП, 2001. — 254 c.
Скачать (прямая ссылка): theory-chisel-kriptographii.djvu
Предыдущая << 1 .. 81 82 83 84 85 86 < 87 > 88 89 90 91 92 93 .. 125 >> Следующая


4. Предполагая, что р — такое нечетное простое число, что п — квадратичный вычет по модулю р (случай р = 2 разберем далее от-дельно), решаем уравнение t = п (mod р ) для ? = 1,2,... методом упражнения 20 к § П. 2. Берем значения ? в порядке возрастания, пока не окажется, что уравнение не имеет решений t, сравнимых по модулю р^ с каким-либо из чисел в области [-\/тї] + 1 ^ t ^ [-^/тг] + А. Обозначим через ? наибольшее из таких чисел, для которых в указанной области

2 в

найдется число t со свойством t = п (mod р ). Пусть i1 и i2 — два решения i2 = п (mod р13) и i2 = -i1 (mod p0) (мы не требуем, чтобы i1 и i2 принадлежали отрезку [[у/п\ 4 1, + А]).

5. При том же самом значении р просматриваем список значений t - п, полученный в п. 2. В столбце, соответствующем р, ставим 1 против всех значений t — п, для которых t отличается от t\ на некоторое кратное р, после этого заменяем 1 на 2 для всех таких значений і — п, что t отличается от i1 на кратное р , затем заменяем 2 на 3 у

2 3

всех значений t — п, для которых t отличается от i1 на кратное р , и так далее до р^. Затем делаем то же самое- с i2 вместо i1. Наибольшим числом, которое появляется в этом стожэце, будет ?.

6. Когда производим действия в пл5, каждый раз, когда ставим

1 или заменяем 1 на 2, 2 на 3 и т.д., делим соответствующее число

,2

t — п на р и сохраняем полученный результат.

7. В столбце под р = 2 при п ф 1 (mod 8) просто ставим 1 против

2 2

t —пс нечетным t и делим соответствующее і - її на 2. При п =

2 Q

1 (mod 8) решаем уравнение / = п (mod 2 ) и продолжаем в точности так же, как в случае нечетного р (за исключением того, что при /3^3 уравнение будет иметь 4 различных решения t1,t2,t3,t4).

8. Когда указанные действия будут проведены для всех простых чисел, не превосходящих Р, отбросим все і — п, кроме тех, которые обратились в 1 после деления на все степени р, не превосходящих Р. Тогда получится таблица того же вида, что в примере 9 из § 3, в которой столбец, помеченный bi, будет содержать все такие значения t из интервала [[\/п\ + 1, [у/п\ + А], что і2 — п есть Б-число, а остальные столбцы будут соответствовать тем значениям р ^ Р, для которых п — квадратичный вычет.

9. Оставшаяся часть процедуры в точности совпадает с процедурой из § 3.

§ 5. МЕТОД КВАДРАТИЧНОГО РЕШЕТА

183

Пример. Давайте попытаемся разложить на множители п = 1042387, выбрав границы P = 50 и А = 500. Здесь [у/п[ = 1020. Наша факторная база состоит из 8 простых чисел {2,3,11,17,19,23,43,47}, для которых 1042387 — квадратичный вычет. Так как п ф 1 (mod 8), то в столбце, соответствующем р = 2, стоят лишь 0 и 1, причем 1 проставляется во всех случаях, когда Z нечетно, 1021 ^ Z ^ 1520.

Опишем подробно, как образуется столбец для р = 3. Мы хо-

2 в — 1

тим найти решение Z1 = Zlj0 + іідЗ + 23 + • • • + h,?-i^ сравне-

2 в

ния Z = 1042387 (mod 3 ), где Z1^ є {0,1,2} (за другое решение Z2

МОЖНО ПРИНЯТЬ I2 = З13 — Z1). MbI МОЖеМ, ОЧеВИДНО, ВЗЯТЬ Z1 0 = 1.

(Для каждого из наших 8 простых чисел первый шаг — решение сравнения t = 1042387 (mod р) — можно сделать быстро методом проб и ошибок; если бы мы работали с большими простыми числами, мы могли бы использовать процедуру, описанную в конце §11.2.) За-тем мы работаем по модулю 9: (1 + 3Ziд) = 1042387 = 7 (mod 9), откуда 6Z11 = 6 (mod 9), т.е. 2Z1^1 = 2 (mod 3) и д = 1. Далее, по модулю 27: (1 + 3 + 9Zli2)2 = 1042387 = 25 (mod 27), т.е. 16 + 18^i 2 = 25 (mod 27) и 2ti2 = 1 (mod 3), так что f1]2 = 2. Затем по модулю 81: (1 + 3 + 18 + 27^,3)2 = 1042387 = 79 (mod 81), откуда еле-дует, что Z1 з = 0. Продолжая действовать так же до 3 , мы находим решение (в обозначениях § I. 1 для чисел, записываемых в троичной системе): Z1 = (21021I)3 (mod З7) и Z2 = (2012012)3 (mod З7). Однако в интервале между 1021 и 1520 нет числа Z, сравнимого с Z1 или Z2 по модулю 3 . Таким образом, мы имеем ? = 6, и можно взять Z1 = (21021I)3 = 589 = 1318 (mod З6) и Z2 = З6 - Z1 = 140 = 1112 (mod З5) (заметим, что в отрезке [1021,1520] нет числа Z, сравнимого с Z2 по модулю З6).

Построим теперь наше «решето» для р = 3. Начиная с 1318, делаем «прыжки» на 3 вниз, пока не достигнем 1021, и такие же «прыжки» вверх, пока не достигнем 1519; каждый раз ставим 1 в столбец, если Z2 — п делится на 3, и записываем результат деления (на самом деле

2

для нечетного Z число, которое мы делим на 3, равно (Z — п)/2, так 2

как мы уже делили Z - п пополам, когда формировали столбец из 0 и 1 для р = 2). Затем мы делаем то же самое, «прыгая» на 9, изменяя каждый раз 1 на 2 в столбце под 3, деля еще раз на 3 то, что осталось от соответствующего Z2 —п, и записывая результат. Проделываем аналогичную процедуру со скачками на 27, 81, 243, 729 (для 729 скачка не существует — мы только изменяем 5 на 6 в графе, соответствующей 1318, и делим еще раз на 3 то, что осталось от 1318 - 1042387). Наконец, мы проделываем те же шаги с Z2 = 1112 вместо Z1 = 1318, на

184

ГЛ. V. ПРОСТОТА И ФАКТОРИЗАЦИЯ
Предыдущая << 1 .. 81 82 83 84 85 86 < 87 > 88 89 90 91 92 93 .. 125 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed