Как найти первообразный корень: критерий и пример
Дано: модуль , кандидаты 2, 3, 5 и 6. Найти: наименьший первообразный корень по модулю 41.
Модуль простой, поэтому первообразный корень заведомо существует, а на проверку одного кандидата уходит не сорок возведений в степень, а всего два. Ответ: наименьший первообразный корень по модулю 41 равен 6, его порядок равен , а всего таких корней по этому модулю 16. Калькулятор сверху прогоняет ту же проверку для любого модуля до 200 и рисует, где замыкается цикл степеней.
Решение по шагам
Дано. . Найти: наименьшее , у которого степени пробегают все ненулевые вычеты по модулю 41.
Шаг 1. Считаем функцию Эйлера. Число 41 простое, значит, обратим каждый вычет от 1 до 40:
Порядок элемента - это наименьшая степень, дающая остаток 1. По теореме Лагранжа он всегда делит , а первообразный корень - это элемент, у которого порядок равен целиком.
Шаг 2. Раскладываем функцию Эйлера на простые множители.
Нужны только сами простые делители, кратности не играют роли: проверять 4 и 8 вместо двойки незачем. Если модуль большой, разложение удобно получать перебором простых множителей.
Шаг 3. Выписываем контрольные показатели. Их ровно столько, сколько простых делителей: и . Критерий выглядит так:
Если хотя бы одна из двух степеней даёт единицу, порядок кандидата меньше сорока, и он отпадает.
Шаг 4. Кандидат . Считаем обе степени через квадраты: , то есть - первое условие выполнено. Но , откуда . Двойка отпадает, её порядок равен 20.
Шаг 5. Кандидат . Здесь всё обрывается на первом же шаге: , значит . Тройка отпадает, её порядок равен 8 - она крутится всего по восьми вычетам из сорока.
Шаг 6. Четвёрку пропускаем без счёта. Полный квадрат никогда не бывает первообразным корнем по нечётному простому модулю: для имеем по малой теореме Ферма. Так что 4, 9, 16, 25 и 36 из перебора вычёркиваются сразу.
Шаг 7. Кандидат . , дальше и . Значит, , и пятёрка отпадает с порядком 20.
Шаг 8. Кандидат . Поднимаемся по квадратам:
Обе контрольные степени отличны от единицы, поэтому порядок шестёрки не может быть собственным делителем сорока - он равен сорока.
Ответ: наименьший первообразный корень по модулю 41 равен .
| Кандидат | Порядок | Вывод | ||
|---|---|---|---|---|
| 2 | 10 | 1 | 20 | отпадает |
| 3 | 1 | 40 | 8 | отпадает |
| 5 | 18 | 1 | 20 | отпадает |
| 6 | 10 | 40 | 40 | первообразный корень |
Формула и откуда она берётся
Формально называется первообразным корнем по модулю , если его порядок равен , то есть степени порождают всю группу обратимых вычетов. Критерий, которым мы пользовались, обычно записывают так:
Почему этого достаточно? Пусть порядок меньше . По теореме Лагранжа он делит , причём делит строго, значит, частное имеет хотя бы один простой делитель . Тогда делит , и степень обязана дать единицу - как раз то, что мы ловим. Обратное очевидно: если порядок равен , никакая меньшая степень единицы не даёт.
Отсюда и экономия. Наивная проверка «посчитать все степени, пока не вернётся 1» требует до умножений, критерий - столько возведений в степень, сколько у разных простых делителей. Для модуля 41 это два возведения вместо сорока, и каждое делается бинарным алгоритмом за десяток умножений.
Сколько корней и стоит ли надеяться на двойку
Если первообразный корень найден, все остальные получаются как , где взаимно просто с . Поэтому их количество равно , у нас - . Это почти 40 процентов всех вычетов, так что перебор снизу обычно заканчивается на первом десятке: по модулю 41 корнями служат 6, 7, 11, 12, 13, 15, 17, 19 и ещё восемь чисел.
Но гарантии, что подойдёт двойка, нет никакой, и на этом чаще всего спотыкаются. По модулям 11, 13, 19, 29, 37, 101 наименьший первообразный корень действительно равен 2, по модулю 41 - уже 6, а по модулю 191 - целых 19. Ничего кроме перебора с критерием тут не предложить: формулы для наименьшего корня не существует, есть только оценки сверху. Проверить очередного кандидата на взаимную простоту с модулем помогает алгоритм Евклида, а для простого модуля это условие выполняется автоматически.
Когда первообразного корня не существует
Для составного модуля вопрос не сводится к перебору: корня может не быть вовсе. Первообразный корень существует ровно по модулям
Возьмём : обратимые вычеты 1, 3, 5, 7, их четыре, то есть . Но , , - порядок каждого не больше двух, до четвёрки не дотягивает никто. А вот по модулю корень есть: , и степени пятёрки дают 5, 7, 17, 13, 11, 1 - все шесть обратимых вычетов. Так что перед перебором сначала проверь модуль на простоту или разложи его и убедись, что он нужного вида.
Таблица степеней и индексы
Когда корень найден, из него строят таблицу степеней - по сути, таблицу логарифмов в конечном поле. Для и модуля 41 начало выглядит так:
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
|---|---|---|---|---|---|---|---|---|---|---|
| 6 | 36 | 11 | 25 | 27 | 39 | 29 | 10 | 19 | 32 |
Обратная функция называется индексом, или дискретным логарифмом: - тот показатель , при котором . Индексы превращают умножение в сложение по модулю 40: , , и сумма ровно совпадает с , потому что .
Работает это и на корнях. Пусть надо решить . По таблице , значит , откуда и . Проверка: . Обратный ход - от к индексу - вычислительно тяжёл: на этом стоят обмен ключами Диффи-Хеллмана и подпись Эль-Гамаля, а быстрые методы вроде алгоритма Полига-Хеллмана работают, лишь когда раскладывается на мелкие множители.
Частые ошибки
- Раскладывают на множители сам модуль , а не . В критерий входят простые делители порядка группы, а не модуля: для 41 это делители сорока.
- Берут все делители , а не простые. Проверка и - лишняя работа, которая к тому же путает: для двойки среди делителей достаточно одного показателя 20.
- Забывают про условие для составного модуля. Число, имеющее с модулем общий делитель, не даёт единицу ни в какой степени, и порядок у него не определён.
- Считают степени наивно, перемножая по одному разу. При модуле в несколько сотен это терпимо, при криптографическом - нет: нужно возведение по двоичной записи показателя.
- Останавливаются, как только одна из проверок дала не единицу. Условие должно выполняться для всех простых делителей сразу: у тройки по модулю 41 первая проверка проходит, а вторая валит.
- Путают первообразный корень с квадратным корнем по модулю или с корнем многочлена. Здесь речь о порождающем элементе группы, а не о решении уравнения.
FAQ
Чем порядок элемента отличается от первообразного корня? Порядок есть у каждого обратимого вычета: это наименьший показатель, возвращающий остаток 1. Первообразный корень - частный случай, когда порядок дотянул до максимума . Скажем, по модулю 41 у тройки порядок 8, у двойки 20, а у шестёрки 40, и только шестёрка считается первообразным корнем.
Обязательно ли начинать перебор с двойки? Да, если нужен именно наименьший корень: кандидаты проверяются подряд, 2, 3, 5, 6 и так далее, а полные квадраты и другие степени можно пропускать. Если корень нужен любой, в криптографии часто берут простое вида : тогда у всего два простых делителя, и проверка занимает две операции.
Что делать, если не раскладывается? Это и есть узкое место метода: критерий требует знать простые делители . Для больших модулей поступают наоборот - сначала конструируют простое число с заранее известным разложением , а потом ищут корень.
Сколько первообразных корней по простому модулю ? Ровно штук. Для это , для уже . Найдя один корень, остальные получают как с , заново перебирать не нужно.
Коротко
- Проверь, что модуль имеет вид 2, 4, или : иначе первообразного корня не существует.
- Посчитай (для простого это ) и разложи её на простые множители: .
- Для каждого простого делителя посчитай ; здесь это показатели 20 и 8.
- Единица хотя бы в одной проверке - кандидат отпадает: так выбывают 2 (порядок 20), 3 (порядок 8) и 5 (порядок 20).
- Ответ: - наименьший первообразный корень по модулю 41, всего их .
Похожие задачи
Как найти функцию Эйлера: разбор на числе 7560
Как найти функцию Эйлера: разбор числа 7560 по шагам, каноническое разложение, формула через произведение скобок по простым делителям, проверка мультипликативностью и теорема Эйлера.
Теория чисел/криптографияКак найти обратное по модулю: расширенный алгоритм Евклида
Как найти обратное по модулю: разбор на числах 37 и 120, условие существования через НОД, таблица расширенного алгоритма Евклида, приведение коэффициента и проверка остатка.
Теория чисел/криптографияКак решить систему сравнений: китайская теорема об остатках
Как решить систему сравнений x = 2 (mod 3), x = 3 (mod 5), x = 2 (mod 7): проверка взаимной простоты модулей, сборка ответа по китайской теореме об остатках и проверка подстановкой.
Теория чисел/криптографияКак решить сравнение по модулю: 42x = 30 (mod 78)
Как решить сравнение по модулю на примере 42x = 30 (mod 78): критерий разрешимости через НОД, число решений, сокращение сравнения вместе с модулем и все шесть классов вычетов.
Теория чисел/криптографияКак найти НОК двух чисел: два способа с примером
Как найти НОК двух чисел на примере 126 и 120: разложение на простые множители со старшими степенями, формула через НОД, проверка ответа и задача про шестерни с зубьями.
Теория чисел/криптографияКак сгенерировать ключи RSA: пример на малых числах
Как сгенерировать ключи RSA: разбор на числах p = 43 и q = 59, расчёт модуля и функции Эйлера, выбор открытой экспоненты, поиск закрытой расширенным алгоритмом Евклида, проверка шифрованием.