Символ Лежандра: квадратичные вычеты по простому модулю

Символ Лежандра - это базовый объект элементарной теории чисел, который коротко отвечает на вопрос «является ли число квадратом по простому модулю ». За одной короткой записью скрывается целая инфраструктура: критерий Эйлера, мультипликативность, квадратичный закон взаимности Гаусса и быстрый алгоритм, который по скорости сопоставим с алгоритмом Евклида. Адриен-Мари Лежандр ввёл этот символ в 1798 году в Essai sur la théorie des nombres, доказательство закона взаимности - целиком заслуга Карла Фридриха Гаусса, который представил восемь разных доказательств в Disquisitiones Arithmeticae (1801).
Определение через квадратичные вычеты
Пусть - нечётное простое число, - произвольное целое. Число называется квадратичным вычетом по модулю , если существует такое, что , и квадратичным невычетом в противном случае. Символ Лежандра - это компактная индикаторная функция, которая различает три случая:
Условие принципиально: ноль формально квадрат (), но его обычно исключают из числа вычетов, чтобы получить мультипликативный гомоморфизм . На ненулевых вычетах символ ведёт себя как характер группы порядка два.
В мультипликативной группе порядка ровно половина элементов - квадраты, а половина - нет. Это видно из того, что отображение имеет ядро , поэтому образ имеет порядок . Значит, квадратичных вычетов ровно штук, и столько же невычетов - на каждом нечётном простом сумма .
Маленький пример помогает закрепить определение. Возьмём . Перебираем квадраты ненулевых классов: , , , , , - все по модулю . Различных квадратов получилось ровно три: , как и положено по формуле . Остальные ненулевые классы - невычеты. Значит , , . Эта таблица из шести значений - самый прямой способ убедиться, что символ Лежандра вообще существует как объект.
Критерий Эйлера
Самая прямая формула, переводящая символ Лежандра в арифметику по модулю, - критерий Эйлера:
Доказательство держится на малой теореме Ферма: если , то , то есть - корень уравнения . У этого уравнения над полем ровно два решения, . Поэтому принимает только значения . Если - квадрат, то . Среди квадратов уже все корни уравнения исчерпаны (полином степени имеет ровно столько корней), значит остальные ненулевых классов дают - это и есть невычеты.
Критерий хорош тем, что превращает абстрактный вопрос «есть ли корень?» в задачу быстрого возведения в степень: для длиной бит вычисление методом «возведение в квадрат и умножение» занимает битовых операций - это полиномиально. Для маленьких годится и в уме: , значит - квадрат по модулю (действительно, ).
Мультипликативность
Прямое следствие критерия Эйлера - символ Лежандра мультипликативен по числителю:
Действительно, , и обе части по модулю совпадают со значениями символов. Мультипликативность экономит работу: чтобы посчитать , разложим и получим , поскольку . То же самое работает для отрицательных : .
Из мультипликативности и периодичности по модуль () сразу следует: достаточно уметь считать символ от , и нечётных простых . Дальше любое редуцируется по модулю , раскладывается на простые множители и собирается обратно.
Частные значения для -1 и 2
Для ответ читается с критерия Эйлера: . Это даёт правило:
Минус единица - квадрат по простому модулю тогда и только тогда, когда даёт остаток при делении на . Это утверждение восходит к Ферма и связано с теоремой о представлении простого числа в виде суммы двух квадратов: возможно для нечётного ровно тогда, когда .
Для двойки формула чуть длиннее, доказывается через лемму Гаусса или через сумму Гаусса:
Эти две формулы - «дополнения» к основному квадратичному закону взаимности и используются на каждом шаге его применения.
Квадратичный закон взаимности Гаусса
Главная теорема, превращающая вычисление символа Лежандра в эффективный алгоритм, - квадратичный закон взаимности (Гаусс, 1796). Для различных нечётных простых и :
Иначе говоря, всегда, кроме случая когда оба простых сравнимы с - тогда символы противоположны по знаку. Гаусс называл этот результат «золотой теоремой» (theorema aureum) и за полтора десятилетия дал восемь разных доказательств - через суммы Гаусса, через лемму о подсчёте точек решётки, через теорию циклотомических полиномов. На сегодня известно больше двухсот доказательств, и многие из них работают для разных обобщений (закон взаимности Артина в теории классовых полей - прямой потомок).
Закон взаимности позволяет «поменять числитель и знаменатель местами», после чего числитель обычно становится меньше и можно его редуцировать по новому модулю - задача стремительно сжимается.
Алгоритм вычисления через закон взаимности
Сводя всё вместе, получаем алгоритм, по структуре похожий на алгоритм Евклида:
- Редуцировать: . Если , ответ .
- Вынести знак: если .
- Вынести двойки: с нечётным , тогда .
- Если , ответ . Иначе - нечётное , в обозримых задачах оно простое; если нет - разложить и идти по множителям.
- Применить закон взаимности: , знак считается по чётности .
- Шаги 1–5 повторяются для меньшего символа.
Пример: . По взаимности (оба ) . Получили , значит - квадратичный невычет по модулю . Время работы - битовых операций для -битных чисел, быстрее, чем критерий Эйлера с возведением в степень.
Отличие от символа Якоби
Символ Лежандра определён только для простого знаменателя. Чтобы алгоритм взаимности работал и для составного , его обобщают до символа Якоби для нечётных : , и по определению
Внешне символ Якоби ведёт себя так же - мультипликативен, удовлетворяет аналогичному закону взаимности, тем же формулам для и . Но, в отличие от символа Лежандра, не означает, что - квадрат по модулю : например, , но не является квадратом ни по модулю , ни по модулям и по отдельности. Символ Якоби - про чётность числа невычетов в разложении, не про факт квадратичности.
Зато символ Якоби можно считать тем же алгоритмом взаимности, не зная разложения . Это критически важно для криптографии: разложение большого - трудная задача, а вычисляется за .
Применение в криптографии и тест Соловея-Штрассена
Символы Лежандра и Якоби - основа нескольких криптографических протоколов и тестов простоты. Из практики:
- Тест простоты Соловея-Штрассена (1977): для нечётного и случайного проверяется сравнение , где слева - степень, справа - символ Якоби. Если простое, по критерию Эйлера сравнение верно для всех . Если составное, по крайней мере половина нарушает сравнение, поэтому после независимых проб вероятность ложного «простое» не больше . Алгоритм даёт вероятностный тест простоты Монте-Карло, исторически - один из первых.
- Криптосистема Голдвассер–Микали (1982) - первая семантически безопасная схема шифрования: бит кодируется случайным квадратичным вычетом по модулю , бит - невычетом с символом Якоби . Безопасность сводится к гипотезе о трудности задачи квадратичных вычетов (QRP).
- Псевдослучайные генераторы на квадратичных вычетах (Blum–Blum–Shub) - извлекают младший бит , последовательность вычислительно неотличима от случайной при стандартных предположениях о QRP.
- Доказательства с нулевым разглашением - символ Якоби часто служит «бесплатным наблюдаемым», на котором строятся интерактивные протоколы.
Частые ошибки
- Путать с символом Якоби. Если знаменатель составной, перестаёт означать «квадрат». Для решения уравнения Якоби только необходимый признак, не достаточный.
- Забывать про случай . Тогда , а не . Этот случай обычно отбрасывают на старте, потому что иначе формула ломается.
- Применять закон взаимности к . Закон взаимности - про нечётные простые. Двойка обрабатывается отдельной формулой .
- Не вынести знак минус. в общем случае. Правильно: , и первый множитель зависит от .
- Считать критерий Эйлера в обычной арифметике. для больших - астрономическое число. Нужно возводить в степень по модулю , используя «square-and-multiply» и редукцию на каждом умножении.
FAQ
Чем символ Лежандра отличается от символа Якоби? Лежандр требует простого знаменателя и тогда - точная индикаторная функция квадратичных вычетов. Якоби - мультипликативное расширение на любые нечётные , но равенство уже не гарантирует, что - квадрат по модулю . Алгоритмически их считают одной и той же процедурой (бинарный закон взаимности), но интерпретации разные.
Как быстро считать в уме? Свести к малому представителю , вынести знак и степени двойки по формулам и , дальше применить закон взаимности. Это аналог алгоритма Евклида: на каждом шаге числа уменьшаются, и общее число шагов - . Через критерий Эйлера в уме считать сложнее: требует длинной цепочки умножений.
Что даёт закон взаимности для алгоритма? Возможность «перевернуть дробь» со знаком, зависящим от . После переворота числитель можно редуцировать по новому модулю , и задача сжимается. Без закона взаимности пришлось бы каждый раз поднимать в степень , что медленнее.
Коротко
Символ Лежандра - индикатор квадратичного вычета по простому модулю, принимает значения , или . Критерий Эйлера выражает его через степень , мультипликативность по числителю и формулы для и позволяют разложить задачу на маленькие куски, а квадратичный закон взаимности Гаусса превращает вычисление в алгоритм типа Евклида за шагов. Обобщение до символа Якоби даёт ту же арифметику без знания разложения модуля и лежит в основе теста простоты Соловея-Штрассена и схемы Голдвассер–Микали.
Читайте также

Квадратичный закон взаимности: золотая теорема Гаусса
Квадратичный закон взаимности Гаусса для символов Лежандра: точная формулировка, два дополнения, восемь доказательств, обобщения Якоби, Эйзенштейна и Артина, алгоритм вычисления.

Символ Якоби: обобщение Лежандра и тест простоты
Символ Якоби для нечётного составного : определение через произведение символов Лежандра, обобщённый закон взаимности и тест простоты Соловея–Штрассена.

Теорема Вильсона: критерий простоты и факториал по модулю
Теорема Вильсона: формулировка , доказательство через спаривание обратных, обратное утверждение Лагранжа, обобщение Гаусса и почему это не практический тест простоты.