|
||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[6] Адлемана. Померанца и Рамели [15]. Для доказательства простоты или непростоты числа N этот алгоритм требует (In А)с1п1п1пЛГ арифметических операций. Здесь с - некоторая положительная абсолютная постоянная. Функция lnlnln N хоть и медленно, но всё же возрастает с ростом N. поэтому алгоритм не является полиномиальным. Но всё же его практические реализации позволяют достаточно быстро тестировать числа на простоту. Существенные усовершенствования и упрощения в первоначальный вариант алгоритма были внесены в работах X. Ленстры и А. Коена [16. 17]. Мы будем называть описываемый ниже алгоритм алгоритмом Адлемана - Ленстры. В основе алгоритма лежит использование сравнений типа малой теоремы Ферма, но в кольцах целых чисел круговых полей, т. е. полей, порождённых над полем Q числами (р = e2mlp - корнями из 1. Пусть q - простое нечётное число и с - первообразный корень по модулю q. т. е. образующий элемент мультипликативной группы поля ¥q. которая пиклична. Для каждого целого числа х, не делящегося на q, можно определить его индекс. indg х 6 Z/(g- 1)Z. называемый также дискретным логарифмом, с помощью сравнения х = cmdqX (mod q). Рассмотрим далее два простых числа р, q с условием, что q - 1 делится на р, но не делится на р2. Следующая функция, определённая на множестве целых чисел. 0. если q\x, Qp , если (x,q) = 1 является характером по модулю q и порядок этого характера равен р. Сумма r(x) = -E*W ez[cP!C9] называется суммой Гаусса. Формулируемая ниже теорема 3 представляет собой аналог малой теоремы Ферма, используемый в алгоритме Адлемана - Ленстры. Теорема 3. Пусть N - нечётное простое число. (N,pq) = 1. Тогда б кольце Zi[(p.Xq] выполняется сравнение t(X)n = x(N)-N t(xn) (mod NZ[(P, q). Если при каких-либо числах р, q сравнение из теоремы 3 нарушается, можно утверждать, что N составное число. В противном случае, если сравнение выполняется, оно даёт некоторую информацию о возможных простых делителях числа N. Собрав такую информацию для различных p. q. в конце концов удаётся установить, что N имеет лишь один простой делитель и является простым. В случае р = 2 легко проверить, что сравнение из теоремы 3 равносильно хорошо известному в элементарной теории чисел сравнению q =(mod N).(13) где [jJ - так называемый символ Якоби. Хорошо известно также, что последнее сравнение выполняется не только для простых q. но и для любых целых q. взаимно простых с N. Заметим также, что для вычисления символа Якоби существует быстрый алгоритм, основанный на законе взаимности Гаусса и. в некотором смысле, подобный алгоритму Евклида вычисления наибольшего обшего делителя. Следующий пример показывает, каким образом выполнимость нескольких сравнений типа (13) даёт некоторую информацию о возможных простых делителях числа N. Пример (X. Ленстра). Пусть N - натуральное число. (N.6) = 1, для которого выполнены сравнения = (jJ (mod N). при а = -1.2,3.(14) а кроме того с некоторым целым числом Ь имеем Ь~ = -1 (mod N).(15) Как уже указывалось, при простом N сравнения (14) выполняются для любого а. взаимно простого с N. а сравнение (15) означает, что Ь есть первообразный корень по модулю N. Количество первообразных корней равно (f(N - 1), т. е. достаточно велико. Таким образом, число Ь с условием (15) при простом N может быть найдено достаточно быстро с помошью случайного выбора и последующей проверки (15). Докажем, что из выполнимости (14-15) следует, что каждый делитель г числа N удовлетворяет одному из сравнений г = 1 (mod 24) или г = N (mod 24).(16) Не уменьшая общности, можно считать, что г - простое число. Введем теперь обозначения N - 1 = и 2k. г - 1 = v 2Ш. где и и v - нечётные числа. Из (15) и сравнения Ъг~1 = 1 (mod г) следует, что m к. Далее, согласно (14), выполняются следующие сравнения \ / \ v/ \ / а * а *-,nv2k-x / „л \а\а \ - „uv2 означающие (в силу того, что символ Якоби может равняться лишь - 1 или +1), что NJ ~ При то > к это равенство означает, что -J = 1 при а = -1.2.3. и. следовательно, г = 1 (mod 24). Если же то = /г. то имеем (jj = - г = N (mod 24). Этим (16) доказано. Информация такого рода получается и в случае произвольных простых чисел р и q с указанными выше свойствами. Опишем (очень грубо) схему алгоритма Адлемана - Ленстры для проверки простоты N: 1)выбираются различные простые числа р\,.. .,р\. и различные простые нечётные q\..... qs такие, что а)для каждого j все простые делители числа qj - 1 содержатся среди pi,... ,рк и qj - 1 не делятся на квадрат простого числа; б)S = 2gi • ... • qs > л/N. 2)для каждой пары выбранных чисел p. q проводятся тесты, подобные сравнению из теоремы 3. Если N не удовлетворяет какому-либо из этих тестов - оно составное. В противном случае 3)определяется не очень большое множество чисел, с которыми только и могут быть сравнимы простые делители N. А именно, каждый простой делитель г числа N должен удовлетворять сравнению вида г = N3 (mod S), 0 . j < Т = pi ... pk- 4)проверяется, содержит ли найденное множество делители N. Если при этом делители не обнаружены, утверждается, что N - простое число. Если число N составное, оно обязательно имеет простой делитель г. меньший y/N < S, который сам содержится среди возможных остатков. Именно на этом свойстве основано применение пункта 4) алгоритма. Пример. Если выбрать следующие множества простых чисел {р} = {2,3,5,7} и {q} = {3,7,11,31,43,71,211}, то таким способом удается проверять простоту чисел N < 8,5 • 1019. Отметим, что в работе [15] для тестирования использовались не сравнения теоремы 3, а закон взаимности для степенных вычетов и так |
Среды: Smalltalk80 MicroCap Local bus Bios Pci 12С ML Микроконтроллеры: Atmel Intel Holtek AVR MSP430 Microchip Книги: Емкостный датчик 500 схем для радиолюбителей часть 2 (4) Структура компьютерных программ Автоматическая коммутация Кондиционирование и вентиляция Ошибки при монтаже Схемы звуковоспроизведения Дроссели для питания Блоки питания Детекторы перемещения Теория электропривода Адаптивное управление Измерение параметров Печатная плата pcad pcb Физика цвета Управлении софтверными проектами Математический аппарат Битовые строки Микроконтроллер nios Команды управления выполнением программы Перехода от ahdl к vhdl Холодный спай Усилители hi-fi Электронные часы Сердечники из распылённого железа Анализ алгоритмов 8-разрядные КМОП Классификация МПК История Устройства автоматики Системы и сети Частотность Справочник микросхем Вторичного электропитания Типы видеомониторов Радиобиблиотека Электронные системы Бесконтекстный язык Управление техническими системами Монтаж печатных плат Работа с коммуникациями Создание библиотечного компонента Нейрокомпьютерная техника Parser Пи-регулятор ч.1 ПИ-регулятор ч.2 Обработка списков Интегральные схемы Шина ISAВ Шина PCI Прикладная криптография Нетематическое: Взрывной автогидролиз Нечеткая логика Бытовые установки (укр) Автоматизация проектирования Сбор и защита Дискретная математика Kb радиостанция Энергетика Ретро: Прием в автомобиле Управление шаговым двигателем Магнитная запись Ремонт микроволновки Дискретные системы часть 2 | ||