Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методы и средства защиты информации.doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
1.58 Mб
Скачать
  1. Элементы теории чисел

    1. Модулярная арифметика

Пусть m – целое число. Тогда при делении любых целых чисел на m возможно получение ровно m остатков – 0,1,2,…,m-1.

Целые числа a и b называют сравнимыми по модулю m, если их разность a-b делится без остатка на m, или, что то же самое, остатки, получаемые при делении чисел a и b на m, равны между собой. В этом случае число b называют вычетом числа a по модулю m.

Если a сравнимо с b по модулю m, то это записывают как .

Пример 4.1

Целые числа 17 и 12 сравнимы между собой по модулю 5, то есть , кроме этого .

Существует бесконечное количество чисел, сравнимых с числом a по модулю m, но только одно из них расположено в диапазоне от 0 до m-1.

Обычно, для целого числа a>0 предпочитают использовать вычеты . Набор целых чисел от 0 до (m-1) называют полным набором вычетов по модулю m.

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

Основные свойства сравнений:

  1. Рефлексивность: .

  2. Симметричность: .

  3. Транзитивность: .

  4. Если , - произвольные целое число, то .

  5. Если , наибольший общий делитель , то .

  6. Если , , то .

  7. Если , , то .

  8. Если , то .

  9. Если , - произвольные целое число, то .

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

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

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

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

Пример 4.2

Пусть, например, требуется вычислить . В этом случае не следует выполнять серию умножений и одно приведение по модулю большого числа. Вместо этого выполняют три малых умножения и три малых приведения по модулю.

Например,

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

Пример 4.3

Пусть x=25(10)=11001(2), тогда 25=24+23+20.

Тогда

.

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