Элементы теории чисел


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

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

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

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

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

Пример 5.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, то есть нахождение можно легко выполнить как ряд умножений. Особенно легко возводить в степень по модулю, если - степень двойки.

Пример 5.2

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

Например,

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

Пример 5.3

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

Тогда

.

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

 



Дата добавления: 2020-10-14; просмотров: 400;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.012 сек.