powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Немного о факторизации
25 сообщений из 163, страница 5 из 7
Немного о факторизации
    #39965536
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что мы знаем о числе N = x * y, которое необходимо факторизировать?

1. Корень из N - для начала поиска чисел А и В.

2. Длина в битах - можно использовать для поиска окрестностей единиц.

3. Последние цифры - для определения последних цифр чисел x и y, и для определения шага (x + y) или А.

А что ещё?
...
Рейтинг: 0 / 0
Немного о факторизации
    #39965538
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy Usov
А что мы знаем о числе N = x * y, которое необходимо факторизировать?

1. Корень из N - для начала поиска чисел А и В.

2. Длина в битах - можно использовать для поиска окрестностей единиц.

3. Последние цифры - для определения последних цифр чисел x и y, и для определения шага (x + y) или А.

А что ещё?
Остатки по любым простым модулям. Каждый остаток по простому модулю сокращает количество возможных значений x+y примерно в два раза: (x+y) 2 /4 - N mod p должно быть квадратичным вычетом.
...
Рейтинг: 0 / 0
Немного о факторизации
    #39965539
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Barlone
Gennadiy Usov
А что мы знаем о числе N = x * y, которое необходимо факторизировать?
1. Корень из N - для начала поиска чисел А и В.
2. Длина в битах - можно использовать для поиска окрестностей единиц.
3. Последние цифры - для определения последних цифр чисел x и y, и для определения шага (x + y) или А.
А что ещё?
Остатки по любым простым модулям. Каждый остаток по простому модулю сокращает количество возможных значений x+y примерно в два раза: (x+y) 2 /4 - N mod p должно быть квадратичным вычетом.
Есть одно но:
мы не можем найти все такие остатки для больших чисел.

А если пользуясь термином "сокращает количество ... примерно в два раза",
то, зная остатки по 140 простым числам, уменьшаем в 2^140 раз?
...
Рейтинг: 0 / 0
Немного о факторизации
    #39965577
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy Usov

А если пользуясь термином "сокращает количество ... примерно в два раза",
то, зная остатки по 140 простым числам, уменьшаем в 2^140 раз?
Ага. Только это сложно использовать. Мы знаем, что остаток по каждому модулю - один из нескольких возможных. Если выбрать по одному произвольному из допустимых остатку, и по китайской теореме собрать остаток по модулю произведения этих 140 простых - получим огромное число, гораздо больше N.
Можно попробовать использовать что-то типа решета: вычеркивать недопустимые остатки. Только нужен кусок памяти размером порядка квадратного корня из N. Если придумаете, как построить число, которое лежит в нужном диапазоне, и одновременно имеет остатки по простым модулям из числа допустимых - сможете сломать RSA :)
...
Рейтинг: 0 / 0
Немного о факторизации
    #39965585
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Barlone
Gennadiy Usov
А если пользуясь термином "сокращает количество ... примерно в два раза",
то, зная остатки по 140 простым числам, уменьшаем в 2^140 раз?
Ага. Только это сложно использовать.
Мы знаем, что остаток по каждому модулю - один из нескольких возможных.
Если выбрать по одному произвольному из допустимых остатку, и по китайской теореме собрать остаток по модулю произведения этих 140 простых -
получим огромное число, гораздо больше N.

Можно попробовать использовать что-то типа решета: вычеркивать недопустимые остатки.
Только нужен кусок памяти размером порядка квадратного корня из N.
Если придумаете, как построить число, которое лежит в нужном диапазоне,
и одновременно имеет остатки по простым модулям из числа допустимых - сможете сломать RSA :)
Я тут попробовал по китайской теореме смотрел остатки степеней 2 по модулю N, чтобы определить единицу.

Где-то после 2^20 идёт серьёзное увеличение по времени расчёта.
...
Рейтинг: 0 / 0
Немного о факторизации
    #39965802
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Barlone
Остатки по любым простым модулям. Каждый остаток по простому модулю сокращает количество возможных значений x+y примерно в два раза: (x+y) 2 /4 - N mod p должно быть квадратичным вычетом.
Видел публикации, где говорилось о более удобном модуле - 20.

Меньше выборок по остаткам.

А по разным простым модулям будут сложные построения.

Или все остатки собирать в одном массиве, чтобы число в массиве было равно количеству модулей.
...
Рейтинг: 0 / 0
Немного о факторизации
    #39965894
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlone,

было бы идеально если бы можно было свести задачу к другому модулю
...
Рейтинг: 0 / 0
Немного о факторизации
    #39966910
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Barlone
Каждый остаток по простому модулю сокращает количество возможных значений x+y примерно в два раза:
(x+y) 2 /4 - N mod p должно быть квадратичным вычетом.
То есть, должно выполняться уравнение по квадратичным вычетам:
(x+y) 2 /4 - N = (x-y) 2 /4 mod p
...
Рейтинг: 0 / 0
Немного о факторизации
    #39968758
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обычно, в тесте Ферма при определения остатков перебираются показатели степени для определённого основания степени.

А есть ли работы по перебору оснований степени?
...
Рейтинг: 0 / 0
Немного о факторизации
    #39971688
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlone
Gennadiy Usov

А если пользуясь термином "сокращает количество ... примерно в два раза",
то, зная остатки по 140 простым числам, уменьшаем в 2^140 раз?
Ага. Только это сложно использовать. Мы знаем, что остаток по каждому модулю - один из нескольких возможных. Если выбрать по одному произвольному из допустимых остатку, и по китайской теореме собрать остаток по модулю произведения этих 140 простых - получим огромное число, гораздо больше N.
Можно попробовать использовать что-то типа решета: вычеркивать недопустимые остатки. Только нужен кусок памяти размером порядка квадратного корня из N. Если придумаете, как построить число, которое лежит в нужном диапазоне, и одновременно имеет остатки по простым модулям из числа допустимых - сможете сломать RSA :)
не совсем понял
группа остатков по простым модулям это собственно "система остаточных классов", там как бы проблем то нет

если этим можно представить q^2|n=1 и q < n, то остатков то не так много нужно

за счёт чего " (x+y)2/4 - N mod p должно быть квадратичным вычетом " уменьшает количество значений вдвое?
...
Рейтинг: 0 / 0
Немного о факторизации
    #39971791
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)

за счёт чего " (x+y)2/4 - N mod p должно быть квадратичным вычетом " уменьшает количество значений вдвое?

Мы пытаемся представить нечетное составное N в виде N = s² - d² и, рассматривая это равенство по модулям маленьких простых чисел, получаем ограничения на возможные значения s или d. Ну например, допустим N mod 5 == 1. Тогда s mod 5 не может быть 2 или 3, потому что 3 - квадратичный невычет по модулю 5. А если N mod 5 == 3, то s mod 5 не может быть 0, 1 и 4.
...
Рейтинг: 0 / 0
Немного о факторизации
    #39971802
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Barlone
kealon(Ruslan)
за счёт чего " (x+y)2/4 - N mod p должно быть квадратичным вычетом " уменьшает количество значений вдвое?
Мы пытаемся представить нечетное составное N в виде N = s² - d² и, рассматривая это равенство по модулям маленьких простых чисел, получаем ограничения на возможные значения s или d. Ну например, допустим N mod 5 == 1. Тогда s mod 5 не может быть 2 или 3, потому что 3 - квадратичный невычет по модулю 5. А если N mod 5 == 3, то s mod 5 не может быть 0, 1 и 4.
А почему рассматривается только s или d?

Необходимо рассматривать комбинацию разностей остатков для s и d.
...
Рейтинг: 0 / 0
Немного о факторизации
    #39971914
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlone,

но так выходит дофига комбинаций, которые надо проверять
т.е. уменьшения в два раза то и нету

т.е. допустим для представления N нам достаточно СОК из K простых чисел

у нас выходит П(P i /2, i = 1..k) вариантов для перебора, что приблизительно равно N/ 2^K - и это очень дофига
...
Рейтинг: 0 / 0
Немного о факторизации
    #39974197
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В продолжение 22144685 :

4. Величину s = (х + y) mod 6
...
Рейтинг: 0 / 0
Немного о факторизации
    #39976548
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил поработать с р-методом логарифмирования.

Много разных публикаций с разными алгоритмами.
Скачал на Питоне программу, которая не всегда работает
https://ru.wikibooks.org/wiki/Реализации_алгоритмов/P-метод_Полларда_дискретного_логарифмирования

Было бы интересно обсудить данный метод.
...
Рейтинг: 0 / 0
Немного о факторизации
    #39985384
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Потерял сообщение (не помню топик), в котором говорилось о максимальном количестве простых чисел,
чтобы была реше сетка для факторизации.

А у меня вопрос:
на настоящий момент какое количество простых чисел удалось применить в одной сетке и какой размер ячеи такой сетки?
...
Рейтинг: 0 / 0
Немного о факторизации
    #39985863
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допустим, есть число n = x * y, где x и y – два простых числа.
Над числом n есть кольцо вычетов Zn.

Согласно алгоритму Гельфонда –Шенкса можно построить в кольце вычетов Zn две сетки чисел,
с помощью которых можно найти все вычеты для определённого некоторого числа q,
которых будет несколько в Zn.
Получается сетка чисел размером m = (n^(1/2) x (n^(1/2),
тогда, количество элементов сетки будет m.
И для определения числа q (или нескольких q) будет «шаг» на отрезке (1, n-1),
равный n/m .

Согласно 22097181 ищется число q = 1, и не каждое число, а только определённое число q =1,
на «расстоянии» (x + y) - 1 от последнего элемента кольца вычетов Zn.

Для этого вычета q = 1 достаточно ограничить отрезок (2*(n^(1/2), k*(n^(1/2)),
где k надо посчитать после учёта малых делителей.
Получается новая сетка чисел размером m1 = (((k-2)*(n^(1/2))^(1/2)) x (((k-2)*(n^(1/2))^(1/2)).

И «шаг» для определения числа A = (х + y)/2 будет равен 2*m / m1.

А какой «шаг» даст нам метод Ферма с перебором простых чисел?
...
Рейтинг: 0 / 0
Немного о факторизации
    #39986507
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У алгоритма Гельфонда -Шенкса есть одно неудобство:
необходимо сравнивать каждое число второй сетки с каждым числом первой сетки.

А если на первую сетку "наложить" третью сетку?
Некоторая сортировка.

Тогда в несколько раз можно уменьшить количество сравнений между первой и второй сетками.
...
Рейтинг: 0 / 0
Немного о факторизации
    #39986516
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy Usov, какую цель ты преследуешь?

Мы, программисты добиваемся того чтобы ответ от программы был получен за разумное время.
...
Рейтинг: 0 / 0
Немного о факторизации
    #39986561
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

почти во всех известных методах факторизации за основу берется уравнение n = A^2 - B^2.
(или во всех ?)

А если за основу методов факторизации взять 2^(x + y) = 2^(n + 1) mod n?

Или за основу взять лучшее от этих двух уравнений.

Второе уравнение применяется только про дискретном логарифмировании.(?)
...
Рейтинг: 0 / 0
Немного о факторизации
    #39986564
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy Usov
mayton,

почти во всех известных методах факторизации за основу берется уравнение n = A^2 - B^2.
(или во всех ?)
Не во всех. Есть же p-1 метод Полларда. Там как раз предполагая, что N=p*q, ищем такое x, что a x =1 mod p и a x ≠1 mod q. Тогда gcd(a x %N-1,N)=p
Для поиска x используется то, что если a x =1 mod p то и a x*y =1 mod p при любом y
Метод эллиптических кривых работает так же, только вместо вычетов по модулю N использует точки на эллиптической кривой.
...
Рейтинг: 0 / 0
Немного о факторизации
    #39986590
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy Usov,

не во всех, есть ещё Метод разложения Эйлера
...
Рейтинг: 0 / 0
Немного о факторизации
    #39986638
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kealon(Ruslan)
Gennadiy Usov,
не во всех, есть ещё Метод разложения Эйлера
Интересный метод, но в нём нет 2^.
Я это имел в виду, а есть там + или - , то это уже вторично.
...
Рейтинг: 0 / 0
Немного о факторизации
    #39989662
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заинтересовал метод факторизации (p-1) - метод Полларда.

И появилась задачка для выходных:

найти с помощью этого метода делители числа 3277.
То есть, выбрать с помощью этого метода набор простых делителей со степенями
для определения делителей числа 3277
...
Рейтинг: 0 / 0
Немного о факторизации
    #39996316
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
https://ru.wikipedia.org/wiki/P?1-метод_Полларда

В этой статье спутаны 2 понятия.

Сначала - "сильные простые числа"

А потом - "Пусть N B-гладкостепенное"

Разница есть?
...
Рейтинг: 0 / 0
25 сообщений из 163, страница 5 из 7
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Немного о факторизации
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]