Символ Якоби: обобщение Лежандра и тест простоты

Символ Якоби - это естественное обобщение символа Лежандра на нечётный составной знаменатель. Карл Густав Якоби ввёл его в 1837 году, и главный смысл расширения чисто алгоритмический: квадратичный закон взаимности и формулы для и переносятся «как есть», поэтому для составного значение удаётся посчитать за шагов без знания факторизации . Цена обобщения - потеря прямой интерпретации: для составного равенство уже не означает, что - квадрат по модулю . Именно это «расщепление» алгоритма и семантики дало одну из самых ранних схем вероятностного теста простоты - алгоритм Соловея–Штрассена.
Определение через произведение символов Лежандра
Пусть - нечётное целое с разложением на простые множители , а - произвольное целое. Символ Якоби определяется как произведение символов Лежандра по простым делителям с учётом кратностей:
Каждый множитель в произведении - это уже знакомый символ Лежандра по простому , принимающий значения , или . Поэтому весь символ Якоби принимает значения из , и ровно тогда, когда . Дополнительно по соглашению для любого - это удобно для рекурсии.
Если простое, произведение состоит из одного множителя в первой степени, и символ Якоби совпадает с символом Лежандра - никакого расхождения определений нет. Совместимость намеренная: Якоби строится как мультипликативное продолжение Лежандра с одного простого знаменателя на все нечётные составные.
Маленький пример. Возьмём . Тогда . Несмотря на ответ , не является квадратом по модулю : квадраты по - это , и двойки в этом списке нет. Этот пример сразу показывает, почему символ Якоби - не «индикатор вычета», а формальная мультипликативная конструкция.
Принципиальный нюанс: не гарантирует квадрата
Этот момент - главное отличие от символа Лежандра, и его пропуск регулярно ломает контрольные. Для простого значение ровно эквивалентно тому, что - квадратичный вычет по модулю . Для составного такой эквивалентности нет: - квадрат по модулю тогда и только тогда, когда - квадрат по модулю каждого простого делителя (по китайской теореме об остатках), то есть для всех . Символ Якоби же отслеживает лишь чётность числа невычетов в произведении: «минус на минус даёт плюс», и информация о том, какие именно множители дали , теряется.
Иными словами, для составного верны вложения: квадрат , но обратное неверно. Группа квадратичных вычетов по модулю - это подгруппа индекса в , а ядро символа Якоби - подгруппа индекса . В кольце есть ненулевых класса с символом , но квадратов всего два. Эта «лишняя половина» - невычеты с символом Якоби - лежит в основе криптосистемы Голдвассер–Микали и задачи квадратичных вычетов QRP, на трудности различения этих двух подгрупп без знания факторизации .
Мультипликативность по числителю и по знаменателю
Из определения через произведение символов Лежандра наследуется мультипликативность по числителю: для любых целых . Это - следствие того, что у символа Лежандра мультипликативность уже есть, а произведение мультипликативных функций мультипликативно.
Есть и менее очевидная вторая мультипликативность - по знаменателю: для нечётных взаимно простых . Она прямо следует из определения через произведение по простым множителям: простые делители - объединение простых делителей и . Эта двусторонняя мультипликативность позволяет «дробить» и числитель, и знаменатель независимо.
Из мультипликативности и периодичности по следует: чтобы посчитать символ Якоби, достаточно уметь обрабатывать случай через знак, степени двойки в числителе, и собственно сам символ от нечётного числа к нечётному числу.
Обобщённый закон взаимности и дополнения
Главная теорема, оправдывающая всё построение, - обобщённый квадратичный закон взаимности для символа Якоби. Для нечётных взаимно простых :
По форме - буква в букву как у Лежандра, только теперь оба аргумента могут быть составными. Доказательство сводится к закону взаимности для Лежандра: разложить и на простые, расписать произведение пар, сосчитать сумму экспонент. Дополнения работают так же:
Это и есть инфраструктура для быстрого алгоритма: после редукции , вынесения знака и степеней двойки, остаётся пара нечётных чисел, к которой применяется взаимность.
Алгоритм вычисления без факторизации
Решающий для практики момент: алгоритм работает с как с «чёрным ящиком» - никакого разложения на простые не требуется. Формально структура та же, что и для Лежандра, но шаги выполняются над символом Якоби напрямую:
- Редукция: . Если и - ответ (т.е. ).
- Знак: если , заменить и домножить ответ на .
- Двойки: вынести из все степени двойки , домножить ответ на .
- Если - текущий накопленный знак и есть ответ.
- Взаимность: поменять местами и , домножив на . Теперь символ выглядит как с .
- Вернуться к шагу 1.
На каждом цикле либо числитель сокращается по модулю меньшего знаменателя, либо роли меняются местами - поведение точно как у бинарного алгоритма Евклида. Общее число итераций - , битовая сложность - . Для -битных , типичных для криптографии, это миллисекунды.
Пример: , где . Выносим двойку: , , остаётся . По взаимности , чётно, знак не меняется: . Итог: .
Отличие от символа Лежандра
Подытоживая: алгоритмически символы Лежандра и Якоби считаются одной и той же процедурой (бинарный закон взаимности), и для простого их значения совпадают. Различие - в семантике результата:
- Лежандр : точная индикаторная функция квадратичных вычетов по простому модулю. означает «есть корень», - «нет корня».
- Якоби : мультипликативный характер группы порядка , не различающий квадраты и «двойные невычеты». необходимо для квадратичности, но не достаточно; всё ещё надёжно означает «не квадрат».
Алгоритмическое сходство - фича, а не баг. Якоби - это инструмент для быстрого вычисления выражений, в которые Лежандр входит как сомножитель, и для криптографических протоколов, где факторизация скрыта.
Тест простоты Соловея–Штрассена
Самое известное приложение символа Якоби - вероятностный тест простоты Соловея–Штрассена (1977). Идея опирается на критерий Эйлера для символа Лежандра. Если простое, то для любого , взаимно простого с , выполнено сравнение
где справа - символ Лежандра (= символ Якоби, для простого это одно и то же). Если же составное, то существует хотя бы один , нарушающий сравнение, и более того - таких «свидетелей составности» не меньше половины из обратимых элементов .
Алгоритм: выбрать случайный , посчитать левую часть (быстрое возведение в степень за ) и правую часть (быстрый Якоби за ), сравнить. Если не равны - точно составное. Если равны - «вероятно простое». После независимых проверок вероятность ошибки (когда составное прошло тест) не превосходит : при это ниже, чем вероятность аппаратного сбоя.
Тест Соловея–Штрассена исторически - один из первых вероятностных алгоритмов в духе Монте-Карло, до него простоту проверяли детерминированными перечислениями, экспоненциальными по длине входа - например, через теорему Вильсона с факториалом по модулю. На практике сегодня его вытеснил тест Миллера–Рабина (тот же принцип, но меньше ложноположительных и более компактная проверка), но идея «свидетеля составности» родилась именно здесь, и символ Якоби был ключевым «бесплатным наблюдаемым», на котором всё построилось.
Приложения в криптографии
Помимо теста простоты, символ Якоби встроен в несколько криптографических конструкций:
- Голдвассер–Микали (1982) - первая семантически безопасная схема шифрования с открытым ключом. Открытый ключ , секретный - . Бит кодируется случайным квадратичным вычетом по модулю , бит - невычетом с символом Якоби . Различать эти два множества без знания факторизации - это и есть QRP, гипотетически трудная задача.
- Blum–Blum–Shub - псевдослучайный генератор для со специальным выбором простых . Безопасность опирается на ту же QRP.
- Доказательства с нулевым разглашением - символ Якоби - типичный публично проверяемый «протокольный наблюдаемый» в задачах вида «докажи, что знаешь , не раскрывая корня».
Типовые задачи
Контрольные обычно сводятся к трём типам. Первый - посчитать конкретный символ Якоби пошагово, демонстрируя владение алгоритмом. Второй - сравнить два пути вычисления: через факторизацию знаменателя (как произведение символов Лежандра) и через бинарный алгоритм взаимности (без факторизации) - ответы должны совпасть. Третий - построить контрпример к импликации « - квадрат» для составного , и обычно это или близкие варианты.
Частые ошибки
- Считать доказательством квадратичности. Для простого знаменателя - да, для составного - нет. Контрпример при отсутствии с - стандартная ловушка.
- Применять закон взаимности к чётному знаменателю. Символ Якоби определён только для нечётных . Для чётных модулей используют расширения вроде символа Кронекера.
- Забывать, что при . Если в процессе вычисления обнулилось - это сигнал, что , а не «случайный ».
- Считать символ Якоби «через определение» в задаче, где факторизация неизвестна. Бинарный алгоритм взаимности работает быстрее и не требует разложения; именно для этого Якоби и придуман.
- Путать знак в дополнении для или . Формулы и зависят от вычета по модулю и соответственно - лучше держать в голове готовые таблицы.
FAQ
Чем символ Якоби отличается от символа Лежандра? Лежандр определён только для простого знаменателя и тогда ровно когда - квадрат по модулю . Якоби обобщает Лежандра на нечётные составные через произведение символов Лежандра по простым делителям; алгоритмически считается тем же бинарным законом взаимности, но равенство для составного уже не гарантирует квадратичности.
Почему символ Якоби можно считать без факторизации ? Закон взаимности и дополнения для и зависят только от и - а это вычисляется напрямую по , без знания простых множителей. Алгоритм меняет местами числитель и знаменатель, уменьшая их по модулю Евклида, и за шагов сводится к тривиальному случаю . Факторизация всплыла бы только при определении «через произведение», но в работающем алгоритме она не используется.
Что такое тест Соловея–Штрассена и при чём тут Якоби? Это вероятностный тест простоты, основанный на сравнении , где справа - символ Якоби. Для простого сравнение выполнено для любого по критерию Эйлера. Для составного нарушается минимум для половины , поэтому случайных проб дают вероятность ошибки . Якоби здесь критичен: его быстро считают за , не зная разложения - иначе тест был бы бесполезен.
Коротко
Символ Якоби - мультипликативное расширение символа Лежандра на нечётные составные . Он наследует мультипликативность по числителю и знаменателю, обобщённый закон взаимности и формулы для и , но теряет прямую связь с квадратичной вычетностью: для составного не означает «есть корень». Ключевое алгоритмическое свойство - вычисление за без знания факторизации , что лежит в основе теста простоты Соловея–Штрассена и криптосистем Голдвассер–Микали и Blum–Blum–Shub.
Читайте также

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

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

Формула обращения Мёбиуса: вывод и применения
Формула обращения Мёбиуса: если , то . Доказательство, тотиент Эйлера, неприводимые многочлены, ряды Дирихле.