URSS.ru Магазин научной книги
Обложка Крэндалл Р., Померанс К. Простые числа: Криптографические и вычислительные аспекты. Пер. с англ. Обложка Крэндалл Р., Померанс К. Простые числа: Криптографические и вычислительные аспекты. Пер. с англ.
Id: 123740
1499 р.

Простые числа:
Криптографические и вычислительные аспекты. Пер. с англ. №5

Richard Crandall, Carl Pomerance. Prime Numbers
URSS. 2011. 664 с. ISBN 978-5-397-02060-2.
Белая офсетная бумага
  • Твердый переплет

Аннотация

Простые числа дразнят воображение начинающего математика: ведь даже ребенку можно объяснить, что такое простое число, но в то же время есть ряд несложных на вид задач, над которыми лучшие умы человечества ломают головы на протяжении нескольких тысячелетий. Во второе английское издание книги "Простые числа" авторы Ричард Крэндалл и Карл Померанс включили актуальный материал из теоретической, вычислительной и алгоритмической областей. Это издание... (Подробнее)


Оглавление
top
От редактора перевода
Предисловие
Глава 1. Простые числа!
 1.1.Прогресс и проблемы
  1.1.1.Основные проблемы и теоремы
  1.1.2.Технологический и алгоритмический прогресс
  1.1.3.Бесконечность множества простых чисел
  1.1.4.Асимптотические соотношения и порядковая терминология
  1.1.5.Распределение простых чисел
 1.2.Знаменитые гипотезы и загадки
  1.2.1.Простые близнецы
  1.2.2.k-кортежи простых и гипотеза H
  1.2.3.Проблема Гольдбаха
  1.2.4.Проблема выпуклости
  1.2.5.Формула для простых чисел
 1.3.Простые числа специального вида
  1.3.1.Числа Мерсенна
  1.3.2.Числа Ферма
  1.3.3.Некоторые предположительно редкие простые числа
 1.4.Аналитическая теория чисел
  1.4.1.Дзета-функция Римана
  1.4.2.Вычислительные достижения
  1.4.3.L-функции Дирихле
  1.4.4.Тригонометрические суммы
  1.4.5.Гладкие числа
 1.5.Упражнения
 1.6.Проблемы для исследования
Глава 2. Аппарат теории чисел
 2.1.Модулярная арифметика
  2.1.1.Наибольший общий делитель и обратный элемент
  2.1.2.Степени
  2.1.3.Китайская теорема об остатках
 2.2.Полиномиальная арифметика
  2.2.1.Наибольший общий делитель многочленов
  2.2.2.Конечные поля
 2.3.Квадраты и корни
  2.3.1.Квадратичные вычеты
  2.3.2.Квадратные корни
  2.3.3.Поиск корней многочленов
  2.3.4.Представление числа квадратичной формой
 2.4.Упражнения
 2.5.Проблемы для исследования
Глава 3. Распознавание простых и составных чисел
 3.1.Метод пробных делений
  3.1.1.Признаки делимости
  3.1.2.Метод пробных делений
  3.1.3.Практические соображения
  3.1.4.Теоретические соображения
 3.2.Просеивание
  3.2.1.Просеивание для распознавания простых чисел
  3.2.2.Псевдокод для решета Эратосфена
  3.2.3.Просеивание для создания таблицы делителей
  3.2.4.Просеивание для полного разложения на множители
  3.2.5.Просеивание для распознавания гладких чисел
  3.2.6.Просеивание многочлена
  3.2.7.Теоретические соображения
 3.3.Распознавание гладких чисел
 3.4.Псевдопростые числа
  3.4.1.Псевдопростые числа Ферма
  3.4.2.Числа Кармайкла
 3.5.Вероятно простые числа и свидетели
  3.5.1.Наименьший свидетель для n
 3.6.Псевдопростые числа Люка
  3.6.1.Псевдопростые числа Фибоначчи и Люка
  3.6.2.Тест Грэнтхэма–Фробениуса
  3.6.3.Реализация теста Люка и квадратичного теста Фробениуса
  3.6.4.Теоретические соображения и более сильные тесты
  3.6.5.Общий тест Фробениуса
 3.7.Подсчет простых чисел
  3.7.1.Комбинаторный метод
  3.7.2.Аналитический метод
 3.8.Упражнения
 3.9.Проблемы для исследования
Глава 4. Доказательство простоты чисел
 4.1.(n-1)-тест
  4.1.1.Теорема Люка и тест Пепена
  4.1.2.Частичное разложение на множители
  4.1.3.Краткие сертификаты
 4.2.(n+1)-тест
  4.2.1.Тест Люка–Лемера
  4.2.2.Улучшенный (n+1)-тест и объединенный (n2-1)-тест
  4.2.3.Делители в классах вычетов
 4.3.Проверка чисел на простоту при помощи конечного поля
 4.4.Суммы Гаусса и Якоби
  4.4.1.Тест, основанный на суммах Гаусса
  4.4.2.Тест, основанный на суммах Якоби
 4.5.Тест на простоту Агравала, Кайала и Саксены (AKS-тест)
  4.5.1.Проверка на простоту с помощью корней из единицы
  4.5.2.Сложность алгоритма 4.5.1
  4.5.3.Проверка на простоту с помощью гауссовых периодов
  4.5.4.Квартичный тест на простоту
 4.6.Упражнения
 4.7.Проблемы для исследования
Глава 5. Экспоненциальные алгоритмы разложения на множители
 5.1.Метод квадратов
  5.1.1.Метод Ферма
  5.1.2.Метод Лемана
  5.1.3.Отсев делителей
 5.2.Методы Монте-Карло
  5.2.1.Ро-метод Полларда для разложения на множители
  5.2.2.Ро-метод Полларда для вычисления дискретных логарифмов
  5.2.3.Лямбда-метод Полларда для вычисления дискретных логарифмов
 5.3.Детские шаги, гигантские шаги
 5.4.(p-1)-метод Полларда
 5.5.Метод вычисления значений многочлена
 5.6.Бинарные квадратичные формы
  5.6.1.Основы теории квадратичных форм
  5.6.2.Разложение на множители при помощи представления квадратичными формами
  5.6.3.Композиция и группа классов
  5.6.4.Амбиговы формы и разложение на множители
 5.7.Упражнения
 5.8.Проблемы для исследования
Глава 6. СУбэкспоненциальные алгоритмы разложения на множители
 6.1.Разложение с помощью метода квадратичного решета
  6.1.1.Базовый метод QS
  6.1.2.Базовый алгоритм QS. Резюме
  6.1.3.Быстрые матричные методы
  6.1.4.Вариации больших простых
  6.1.5.Многие полиномы
  6.1.6.Автоматическая инициализация
  6.1.7.Специальное квадратичное решето Жанга
 6.2.Решето числового поля
  6.2.1.Базовый алгоритм NFS: стратегия
  6.2.2.Базовый метод NFS: векторы показателей
  6.2.3.Базовый метод NFS: сложность
  6.2.4.Базовый метод NFS: затруднения
  6.2.5.Базовый метод NFS: квадратные корни
  6.2.6.Базовый метод NFS: итоговый алгоритм
  6.2.7.NFS: дальнейшие соображения
 6.3.Строгое разложение на множители
 6.4.Метод индекс-исчисления для дискретных логарифмов
  6.4.1.Дискретные логарифмы в простых конечных полях
  6.4.2.Вычисление дискретных логарифмов посредством гладких полиномов и гладких целых алгебраических чисел
 6.5.Упражнения
 6.6.Проблемы для исследования
Глава 7. Арифметика эллиптических кривых
 7.1.Основы теории эллиптических кривых
 7.2.Арифметика эллиптических кривых
 7.3.Теоремы Хассе, Дойринга и Ленстры
 7.4.Метод эллиптических кривых
  7.4.1.Базовый алгоритм ECM
  7.4.2.Оптимизации алгоритма ECM
 7.5.Подсчет числа точек на эллиптической кривой
  7.5.1.Метод Шенкса–Местре
  7.5.2.Метод Шуфа
  7.5.3.Метод Аткина–Морейна
 7.6.Доказательство простоты при помощи эллиптических кривых
  7.6.1.Тест на простоту Гольдвассер–Килиана
  7.6.2.Тест на простоту Аткина–Морейна
  7.6.3.Быстрое доказательство простоты при помощи эллиптических кривых (fastECPP)
 7.7.Упражнения
 7.8.Проблемы для исследования
Глава 8. Эти вездесущие простые числа
 8.1.Криптография
  8.1.1.Обмен ключом по Диффи–Хеллману
  8.1.2.Криптосистема RSA
  8.1.3.Криптосистемы на эллиптических кривых (криптосистемы ECC)
  8.1.4.Протокол подбрасывания монеты
 8.2.Генерирование случайных чисел
  8.2.1.Модулярные методы
 8.3.Методы квази-Монте-Карло
  8.3.1.Теория дискрепанса
  8.3.2.Специальные qMC-последовательности
  8.3.3.Простые числа на Уолл-стрит?
 8.4.Диофантов анализ
 8.5.Квантовые вычисления
  8.5.1.Квантовые машины Тьюринга (QTM) и интуиция
  8.5.2.Квантовый алгоритм факторизации Шора
 8.6.Простые числа в смежных областях, забавные и любопытные факты
 8.7.Упражнения
 8.8.Проблемы для исследования
Глава 9. Быстрые алгоритмы для работы с большими числами
 9.1.Обзор "школьных" методов
  9.1.1.Умножение
  9.1.2.Возведение в квадрат
  9.1.3.Операции div и mod
 9.2.Усовершенствования в модулярной арифметике
  9.2.1.Метод Монтгомери
  9.2.2.Методы Ньютона
  9.2.3.Модули особого вида
 9.3.Возведение в степень
  9.3.1.Простые двоичные схемы
  9.3.2.Улучшения схем возведения в степень
 9.4.Улучшения для НОД и поиска обратного элемента
  9.4.1.Двоичные алгоритмы для НОД
  9.4.2.Особые алгоритмы обращения
  9.4.3.Рекурсивные алгоритмы для НОД в случае очень больших операндов
 9.5.Умножение больших чисел
  9.5.1.Методы Карацубы и Тоома–Кука
  9.5.2.Алгоритмы вычисления преобразования Фурье
  9.5.3.Теория сверток
  9.5.4.Методы взвешенного дискретного преобразования (ВДП)
  9.5.5.Теоретико-числовые преобразования
  9.5.6.Метод Шёнхаге
  9.5.7.Метод Нюссбаумера
  9.5.8.Сложность алгоритмов умножения
  9.5.9.Приложение к китайской теореме об остатках
 9.6.Операции с многочленами
  9.6.1.Умножение многочленов
  9.6.2.Быстрое обращение многочленов и деление с остатком
  9.6.3.Вычисление значений многочлена в наборе точек
 9.7.Упражнения
 9.8.Проблемы для исследования
Приложение. Псевдокод книги
Список литературы
Работы на русском языке
Список литературы, добавленной при переводе
Именной указатель
Предметный указатель

От редактора перевода
top

Книга американских математиков Р.Крэндалла и К.Померанса "Простые числа: вычислительные и криптографические аспекты" посвящена важному современному направлению теории чисел  – вычислительной (или алгоритмической) теории чисел. Данное направление стало интенсивно развиваться с 70-х  гг. XX в., после открытия асимметричных криптосистем Диффи–Хеллмана и RSA. Этому развитию во многом способствовал бурный прогресс в области вычислительной техники. Тем не менее, как неоднократно подчеркивают авторы, в этой книге мы находим идеи, восходящие к великим математикам прошлого  – к Ферма, Эйлеру, Гауссу, Чебышёву.

Книга охватывает следующую тематику:

классическая теория простых чисел;
классические алгоритмы теории чисел;
проверка простоты (больших) целых чисел;
разложение целых чисел на множители;
дискретное логарифмирование;
эллиптические кривые;
приложения простых чисел в криптографии и других областях;
арифметические операции с большими целыми числами и вещественными числами высокой точности.

Неудивительно, что на первом месте стоит классическая теория простых чисел  – как мы уже упоминали, многие идеи современных алгоритмов восходят к классикам. Кроме того, без фундаментальных результатов аналитической теории чисел, к которым относится, например, асимптотический закон распределения простых чисел, открытый Ж.Адамаром и Ш.Валле Пуссеном в 1896 г., по существу невозможно провести анализ сложности теоретико-числового алгоритма.

С другой стороны, умение вычислить теоретико-числовую величину или построить теоретико-числовой объект позволяет лучше понять, как они устроены. Это может помочь пониманию сути теоретического понятия и даже привести к новым открытиям. К примеру, Л.  Эйлер был, кстати, и непревзойденным вычислителем.

Авторы отмечают, что эта двойственность помогала им в работе над книгой. Объединившись, они представили оригинальный взгляд на вычислительные и криптографические аспекты теории чисел. Многие важнейшие теоретико-числовые алгоритмы, описанные в книге, созданы ее авторами. Для книги характерна идейная ясность, простота и "многоуровневость" изложения, благодаря которой читатель сможет пройти путь от самых основ теории до самых последних результатов и проблем. Книга содержит тексты всех представленных алгоритмов (их более 100) и конкретные примеры их работы.

Таким образом, читатель, знакомый с основами теории чисел и основами программирования, освоив эту книгу, получит полное представление о современном состоянии вычислительной теории чисел.

Мы уже упоминали, что бурное развитие вычислительной теории чисел и ее активное проникновение в различные сферы жизнедеятельности, включая сферу экономики и финансов, связаны с криптографией. Читатель, интересующийся приложениями теории чисел в области криптографии, найдет в этой книге основные понятия и алгоритмы.

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

Работа по переводу книги на русский язык была выполнена сотрудниками механико-математического факультета МГУ им.М.В.Ломоносова  – А.В.Бегунцем (гл.1, 3), Я.В.Вегнером (гл.2 (2.3–2.5), 9, Приложение), В.В.Кнотько (гл. 4, 5), С.Н.Преображенским (гл. 6, 7), И.С.Сергеевым (гл. 2 (2.1–2.2), 8).

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

Авторы включили в книгу обстоятельный список литературы на английском языке. Редактором перевода составлен дополнительный список литературы о  простых числах. Он приведен в конце книги.

Редактор перевода и переводчики считают своим приятным долгом поблагодарить авторов, любезно приславших уточнения и исправления, которые были учтены при подготовке русского издания.

В.Н.Чубариков

Предисловие
top
Мы посвящаем этот труд нашим
родителям – Дженис, Гарольду,
Хильде и Леону, каждый из которых
по-своему прекрасно и самобытно
научил детей тому, как следует
рассуждать.

На страницах этой книги мы постарались построить связующее звено (надеемся, что даже мост) между "теорией" и "практикой" в области простых чисел. Разумеется, речь идет о теории чисел и о вычислительной практике. Созданы великие книги, рассказывающие об абстрактных свойствах простых чисел, и каждый из нас обращается к ним как к любимой классике. Однако экспериментальная сторона этого вопроса относительно молода, ведь несмотря на небеспочвенные утверждения о том, что теория вычислительных машин и систем ни в коем случае не является новой (к настоящему времени в ней уже произошли четыре или пять "революций"), необходимо принять во внимание многовековую и даже тысячелетнюю историю теоретических исследований в области простых чисел. Поэтому мы полагаем, что для научных трудов, основанных одновременно на знаменитых классических методах и современных вычислительных подходах, все еще остается место.

Замысел и тематика этой книги

Книга сочетает по сути взаимно дополняющие области компетенции обоих авторов (Р.Крэндалл  – скорее компьютерщик, а К.Померанс  – скорее теоретик). Первые главы носят более теоретический характер, хотя в них и описано несколько явных алгоритмов, а алгоритмическая составляющая существенно возрастает по мере дальнейшего продвижения читателя вглубь книги. Как в теоретических, так и в вычислительных сторонах вопроса мы старались продемонстрировать наиболее современный взгляд на теорию чисел. Чего мы не делали  – это не стремились к обоснованию всех тонкостей каждой детали. Это не только потребовало бы гораздо большего объема книги, но, как мы указываем в начале первой главы, можно сказать, что ни один человеческий ум не в состоянии охватить полной картины знаний о простых числах. Видимо, и команда из двух исследователей тоже не может обладать таким всеведением, по крайней мере именно так обстоит дело с нашей парой. Своей задачей мы сочли обеспечение ссылок на огромное число источников, содержащих подробное описание тех аспектов, которых нам не удалось раскрыть в достаточном объеме. Кроме того, совершенно ясно, что к моменту выхода книги в свет многие теоретико-числовые рекорды, отраженные в ней, будут уже побиты. На самом деле, некоторые из них были превзойдены даже пока мы писали это предисловие. Завершая работу над книгой, мы, можно сказать, жили в том состоянии, которое инженеры-электронщики называют "состояние гонок", поскольку и через Интернет, и устно новые результаты о простых числах сообщались нам даже быстрее, чем мы могли вносить правку в эту книгу. Поэтому в некоторый момент мы приняли решение поставить точку, указав в книге адреса сайтов, на которых можно найти наиболее актуальные на данный момент результаты. Состояние гонок стало естественной частью игры особенно в последние годы, когда в дело включилась мощная вычислительная техника.

Упражнения и проблемы для исследования

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

Алгоритмы и псевдокод

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

В поисках равновесия в качестве базы для псевдокода нашей книги мы выбрали стиль языка C. В приложении описаны явные примеры того, как перевести на машинный язык различные блоки приведенных в тексте алгоритмов. Мы будем полагать, что наш подход к псевдокоду удался, если произойдут две вещи:

(1) программисты смогут на основе наших алгоритмов с легкостью создавать программы;

(2) все читатели сочтут изложение алгоритмов понятным.

Мы дошли даже до того, что обратились к нескольким талантливым программистам с просьбой перевести алгоритмы нашей книги в настоящие программы, тем самым до какой-то степени проверяя нашу цель (1) (тексты этих программ доступны в разделе Mathematica на сайте http://www.perfsci.com). Тем не менее, как было сказано выше, удовлетворяющий всех симбиоз математики и псевдокода может возникнуть не ранее наступления той эры, когда машины станут более "человекоподобными".

Примечание ко второму изданию

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

ПРИМЕРЫ ДОПОЛНЕНИЙ, СВЯЗАННЫХ С ВЫЧИСЛИТЕЛЬНЫМИ УСПЕХАМИ

  • Обновлено значение самого большого известного простого числа (на апрель 2005 г.), а также данные о поиске простых чисел Мерсенна.
  • Приведены последние результаты поиска простых близнецов, длинной арифметической прогрессии, состоящей из простых чисел, новые успехи в области распознавания простоты и т.д.
  • Описаны недавние достижения в области разложения на множители, большинство из которых (но не все) связаны с субэкспоненциальными методами.
  • Приведены недавние рекорды в области дискретного логарифмирования и дискретного логарифмирования на эллиптических кривых (DL и EDL, соответственно).
  • Приведены новые границы справедливости гипотезы Римана.

ПРИМЕРЫ ДОПОЛНЕНИЙ, СВЯЗАННЫХ С АЛГОРИТМИЧЕСКИМ ПРОГРЕССОМ

  • Добавлен теоретический материал и приведены алгоритмы нового AKS-метода и его усовершенствованных вариантов, которые позволяют установить простоту за полиномиальное время.
  • Представлен новый быстрый алгоритм Бернштейна для нахождения чисел, все простые делители которых малы, в большом множестве, даже если это множество не имеет регулярной структуры, что позволяет ускорить методы решета.
  • Описан новейший и эффективный алгоритм нахождения наибольшего общего делителя Штеле–Циммермана.
  • Даны ссылки на новые результаты в области "промышленных алгоритмов", таких как подсчет числа точек на эллиптической кривой, алгебраические операции на эллиптических кривых, находящие применение в смарт-картах, и "гигаэлементные" быстрые преобразования Фурье (БПФ), т.е. преобразования, способные принимать на входе миллиарды комплексных элементов.
  • Неоднородное БПФ, играющее растущую роль в вычислительной теории чисел, включено во второе издание в виде алгоритма alg-drfft.

ПРИМЕРЫ ДОСТИЖЕНИЙ В ТЕОРИИ, ДОБАВЛЕННЫХ ВО ВТОРОЕ ИЗДАНИЕ

  • Обсуждается новая сенсационная теорема Грина и Тао о существовании сколь угодно длинной арифметической прогрессии, состоящей исключительно из простых чисел.
  • Рассматриваются последние результаты, связанные с гипотезой Ферма–Каталана о том, что существует не более чем конечное множество взаимно простых натуральных чисел xp, yq, zr, для которых xp + yq = zr и 1/p + 1/q + 1/r <= 1. Описан также частный случай, когда одно из этих чисел равно 1: тогда существует единственное решение 8 + 1 = 9, как следует из недавнего чудесного результата Михайлеску, который тем самым решил исходную проблему Каталана.

Разнообразные изменения коснулись списка упражнений. Включены новые упражнения, часто связанные с добавленными алгоритмами. Некоторые упражнения усовершенствованы. Например, в том месте, где в первом издании, по существу, говорилось "Найдите метод для реализации X", во втором издании значится: "Развейте приведенный план алгоритма для реализации X. Расширьте этот метод для решения (более трудной) задачи Y".

Ричард Крэндалл
Карл Померанс
Портленд, штат Орегон, США
Ганновер, штат Нью-Гемпшир, США
Декабрь 2000
Декабрь 2001 (дополнительный тираж, с исправлениями)
Апрель 2005 (второе издание)

Об авторах
top
photoКрэндалл Ричард
Выдающийся ученый, специалист в области компьютерных наук. Ранее занимал должности главного криптографа в компании Apple, главного специалиста в компании NeXT, Inc., возглавлял кафедру имени Воллюма в Рид-колледже. Основная область интересов — междисциплинарные научные вычисления. Является автором многочисленных теоретических работ по квантовой физике, биологии, математике и химии, обладателем различных патентов в инженерных областях.
photoПомеранс Карл
Профессор математики в Дартмут-колледже. Защитил диссертацию по математике в Гарвардском университете в 1972 г. Долгое время работал в университете штата Джорджия; заслуженный профессор этого университета. Работал в техническом департаменте компании Bell Labs—Lucent Technologies. Карл Померанс — популярный лектор и обладатель многочисленных премий, в том числе премии Шовене и Конанта за обзорные математические работы. Он широко известен своими исследованиями по вычислительной теории чисел, а также по созданию важнейших алгоритмов, активно используемых в настоящее время.