как начать заново проходить курс, если уже пройдено несколько лекций со сданными тестами? |
Алгебраические системы
3.2 Индексы
Пусть - группа, - её элемент, . Число называется дискретным логарифмом элемента по основанию (пишут ). В случае, когда - примитивный корень по модулю , дискретный логарифм ещё называют индексом числа по модулю при основании . Пишут: . Когда примитивный корень фиксирован, можно также писать: .
Дискретное логарифмирование в произвольной группе является трудноразрешимой задачей. Приведём один из примеров, когда оно всё-таки легко осуществимо.
Пример 3.7 Вычислить дискретный логарифм числа по основанию по модулю .
Решение. Порядок мультипликативной группы поля вычетов по модулю 102673 равен . Число, являющееся произведением большого количества небольших чисел, называется гладким. Для дискретного логарифмирования в таком поле существует алгоритм Полига-Хэллмана, который мы сейчас применим.
Если - решение нашей задачи, и , , , - остатки от деления на , , и соответственно, то
где
Наоборот, если мы найдём , , и , а решение задачи всегда существует (так как - примитивный корень), то будет совпадать с единственным решением системы:
Итак, для решения задачи, по китайской теореме об остатках нужно найти:
Следовательно, нам нужно найти , , , .
Имеем:
Поскольку порядок группы равен 23, а группы - всего 31, то при различных , величины и пробегают, соответственно, по 23 и 31 различным значениям.
Тогда и можно найти полным перебором, проверив , . В нашем случае , . Числа и также можно искать полным перебором, но для них можно ещё уменьшить количество попыток. Будем искать
где
Имеем:
То есть . Отсюда
Далее,
Проверим оба варианта :
Отсюда .
Далее,
Опять, из двух вариантов выбираем верный: .
Наконец,
откуда Проверяем:
Аналогично находим .
По китайской теореме об остатках находим .
Для небольших бывает удобно вычислять все степени примитивного корня и строить на основе этих вычислений две таблицы, называемые таблицами индексов. Таблицы индексов используются для быстрого решения некоторых задач по модулю простого числа .
Приведем эти таблицы для примитивного корня 2 по модулю 37:
Например, чтобы определить индекс по числу 13, нужно в первой таблице перейти к столбцу "1" и строке "3". Итак, . Наоборот, для нахождения числа по его индексу 11 нужно во второй таблице перейти в столбец "1" строку "1". Имеем: .
Пример 3.8 Решим с помощью таблицы индексов сравнение:
Будем далее использовать примитивный корень и построенные для него выше таблицы. Правую часть сравнения заменяем положительным вычетом:
"Индексируем" левую и правую части сравнения:
Находим в первой таблице для простого числа 37 значение и и подставляем в сравнение. Получим:
Откуда
По второй таблице находим число, соответствующее индексу 9. Получим:
Пример 3.9 С помощью индексов решить сравнение:
Индексируем сравнение:
По первой таблице индексов находим: , . Отсюда: , или . Последнему сравнению удовлетворяют . Для каждого из них по второй таблице индексов найдем .