Статьи

8.1.2. Тест Ферма

Наиболее развитые вероятностные алгоритмы проверки чисел на простоту основаны на теореме, обратной малой теореме Ферма. Напомним, что если G — мультипликативная группа порядка #G, то ввиду теоремы Лагранжа = 1 для любого элемента aG. Следовательно, если G = (Z/NZ)* — мультипликативная группа кольца вычетов по модулю N, т.е. группа порядка(), то для любого ее элемента а имеет место равенство


8.1.3. Тест Миллера - Рабина

Из-за существования чисел Кармайкла тест Ферма применяют крайне неохотно. Существует модификация теста Ферма, называемая тестом Миллера - Рабина, которая обходит проблему составных чисел, для которых не находится свидетеля. Это не означает, что легко найти свидетеля для каждого составного числа, это значит, что такой свидетель в принципе должен быть. Кроме того, тест Миллера-Рабина принимает составное число за простое с вероятностью 1/4 ,для любого случайного основания а. Поэтому многократное повторение теста позволяет уменьшить вероятность ошибки до любой наперед заданной величины. Приведем тест Миллера - Рабина на псевдокоде.


8.1.4. Доказательство простоты

До сих пор мы говорили только о свидетелях делимости чисел и интерпретировали наличие свидетелей как доказательство того, что тестируемое число является составным. Кроме того, у нас были методы, говорящие о том, что данное число правдоподобно простое, но стопроцентной уверенности в простоте чисел у нас не было (за исключением алгоритма пробного деления). Вероятностные ответы вполне приемлемы, поскольку вероятность того, что составное число выдержит тест Миллера - Рабина с двадцатью основаниями примерно равна, чего никогда не встречается на практике. Но с теоретической точки зрения (и может быть с практической, если Вы одержимы паранойей) этого может оказаться недостаточным. Точнее говоря, нам может потребоваться по-настоящему простое число, а не только правдоподобно простое.


8.2. Алгоритмы факторизации

Методы разложения на множители (или факторизации) можно разделить на средневековые методы, такие как

- пробное деление,

- (Р - 1)-метод,

- (Р + 1)-метод,

- р-метод Полларда;

и современные:

- метод непрерывных дробей (CFRAC),

- квадратичного решета,


8.2.1. Пробное деление

Пробное деление — это самый элементарный алгоритм факторизации. Для разложения числа N на множители поступают следующим образом:

for (p=1l; p<sqrt(N); р++) { е=0;

if ((N mod p)==0) then { while ((N mod p)==0)

{ e=e+l; N=N/p;

}

вывести (р,е);

} }


8.2.2. Гладкие числа

Для факторизации больших чисел хотелось бы иметь на вооружении что-то более быстрое, чем пробное деление. Практически все остальные алгоритмы используют вспомогательные числа, называемые гладкими. По существу, к гладким относят те числа, которые легко раскладываются на множители методом пробного деления. Уточним этот термин.


8.2.3. (Р — 1)-метод Полларда

Самое известное имя конца двадцатого века, связанное с алгоритмами факторизации, — это имя Джона Полларда. Практически все важные продвижения в факторизации были сделаны им, например,

- (Р — 1)-метод,

- р-метод,

- метод квадратичного решета в числовом поле.

В этом параграфе обсуждается (Р — 1)-метод, а в следующем мы рассмотрим метод квадратичного решета в числовом поле, оставив остальные методы в качестве упражнений.


8.2.4. Разность квадратов

Основной прием в алгоритмах факторизации, известный уже много веков, заключается в генерировании двух целых чисел х и у приблизительно той же величины, что и N, удовлетворяющих условию

(modN).

Применяя формулу сокращенного умножения, получим


8.3. Современные методы факторизации

Современные методы разложения чисел на множители построены на следующей стратегии, основанной на разности квадратов, о чем мы с Вами только что говорили.

- Выбирают границу гладкости В.

- Вычисляют базу простых чисел, не превосходящих В (или факторбазу F).

- Находят большое количество пар В-гладких чисел х и у, удовлетворяющих условию х — у (mod N). Такие пары называют соотношениями на факторбазе.


8.3.1. Комбинирование соотношений

Алгоритм приведения матрицы к нормальной форме Смита слишком сложен для тех алгоритмов факторизации, в которых используются более элементарные методы линейной алгебры, что мы сейчас и собираемся продемонстрировать. Предположим, что у нас есть такие соотношения:


8.4. Метод решета в числовом поле

Квадратичное решето в числовом поле — самый быстрый из известных алгоритмов разложения на множители. Основная его идея состоит в поиске целых чисел х и у, разность квадратов которых делится на N. Как уже было сказано, после этого можно надеяться, что НОД (х — y, N) — нетривиальный делитель числа N.


  1. 8.4.1. Линейное решето
  2. 8.4.2. Решето в числовом поле
  3. 8.4.3. Как найти множество S?
  4. 8.4.4. Как извлекать квадратные корни?
  5. 8.4.5. Выбор начальных многочленов
  6. 8.4.6. Пример
  7. 9.2. Метод Полига-Хеллмана
  8. 9.2.1. Определяем
  9. 9.2.2. Ищем
  10. 9.2.3. Определяем
  11. 9.3. Шаги младенца/шаги гиганта
  12. 9.4. Методы Полларда
  13. 9.4.1. р-метод Полларда
  14. 9.4.2. ?-метод Полларда
  15. 9.4.3. Параллельный р-метод
  16. 9.5. Суб-экспоненциальные методы в числовых полях
  17. 9.6. Специальные методы для эллиптической кривой
  18. 10.1. Распределение ключей Диффи-Хеллмана
  19. 10.2. Схемы цифровой подписи
  20. 10.3. Хэш-функции
  21. 10.3.1. Семейство MD4
  22. 10.3.2. Хэш-функции и блочные шифры
  23. 10.4. Алгоритмы цифровой подписи
  24. 10.5. Подпись Шнорра
  25. 10.6. Подпись Ниберга-Руппеля
  26. 10.7. Соглашение об аутентифицированном ключе
  27. Реализация операций
  28. 11.2. Алгоритмы возведения в степень
  29. 11.3. Потенцирование в RSA
  30. 11.3.1. Шифрование (проверка подписи) в RSA
  31. 11.3.2. Расшифровывание (подписывание) в RSA
  32. 11.5. Арифметика многократной точности
  33. 12. Изменяйтесь сами, и другие изменятся
  34. 13. Страдания из-за упрямства
  35. 14. «У меня всегда все хорошо!»
  36. 15. Избавляйтесь от навязчивых мыслей
  37. 16. С протянутой рукой
  38. 17. Неоправданные надежды
  39. 18. Учитесь делать комплименты
  40. 19. Будьте самим собой!
  41. 20. Нежелание «играть в игры»
  42. 21. Зависть — не самое приятное чувство
  43. 22. Не подавляйте своих желаний
  44. 23. А разве жизнь не удалась?
  45. 24. На что мы тратим свои силы?
  46. 25. Не занимайтесь самоедством
  47. 26. Начинайте, чтобы победить!
  48. 27. Удача ждет вас
  49. 28. В плену у страха
  50. 29. Не делайте себе больно!
  51. 30. Боль уйдет!
  52. 31. Невысказанные просьбы
  53. 32. Притормозить, пока не поздно
  54. 33. Устраняйте излишние волнения
  55. 34. Жизнь прекрасна!
  56. 35. Лучше действовать, чем реагировать
  57. Причины непонимания
  58. Стили мышления и их диагностика
  59. Краткие характеристики стилей
  60. Сопоставление стилей и типов
  61. 4. Регулярные и сингулярные возмущения.
  62. 5. Осреднение быстро колеблющихся исходных зависимостей.
  63. 6. Анализ влияния упрощений.
  64. 1. Методы построения и исследования решений.
  65. 2. Асимптотические разложения.
  66. 3. Интегральные представления решений.
  67. 4. Автомодельные решения.
  68. 5. Решения типа бегущих и стоячих волн.
  69. 6. Фазовый портрет.
  70. 7. Обобщенные решения.
  71. 8. Выбор степени точности решения.
  72. Окулярный узел
  73. Труба
  74. Крепление узлов к трубе
  75. Узлы простой монтировки
  76. Крепление тяжелой трубы к оси склонений
  77. Оси немецкой монтировки
  78. Вилка и ее детали
  79. Оси других монтировок
  80. Тормоза и механизмы тонких движений
<< [Первая] < [Предыдущая] 1 2 3 4 5 6 7 8 [Следующая] > [Последняя] >>

Результаты 92 - 182 из 667


Линейная алгебра
Линейная алгебра – это направление в области математики, в основе которого лежит теория линейной структуры. Аксиоматическая обработка линейной структуры основана в вою очередь на понятиях линейного ...

Математический анализ
Математический анализ – это отрасль математики, в которой функции и их свойства подвергаются изучению с помощью метода предельных значений (лимитов). Понятие лимита тесно связано с тем, что в соврем...

Календарь
Календарь — это система организации дней в соответствии с социальной, религиозной, коммерческой или административной составляющими общественной жизнедеятельности. Такая система подразумевает опреде...


17 мая Recon Scout XT представляет собой портативного робота, которого можно отправлять в неизвестную среду.
16 мая Благодаря Makey Makey любые объекты можно превратить в клавиши компьютерной клавиатуры или мыши и использовать их для управления игрой
15 мая Новая охлаждающая технология подходит не только для бронежилетов, но и для других подобных вариантов, в том числе камуфляжа и рюкзаков.