- •Введение
- •Элементы теории чисел
- •Модулярная арифметика
- •Алгоритм Евклида для нахождения наибольшего общего делителя
- •Вычисление обратных величин
- •Основные способы нахождения обратных величин
- •Расширенный алгоритм Евклида
- •Китайская теорема об остатках
- •Квадратичные вычеты
- •Вычисления в конечных полях
- •Свойства многочленов в двоичном поле gf(2)
- •Достоинства вычислений в поле Галуа gf(2 n)
- •Кодирование
- •Оптимальное кодирование
- •Обнаружение и исправление ошибок
- •Общие понятия
- •Линейные групповые коды
- •Код Хэмминга
- •Циклические коды
- •Построение и декодирование конкретных циклических кодов
- •Циклические коды, исправляющие две и большее количество ошибок, d0 5
- •Сжатие информации
- •Исключение повторения строк в последующих строках
- •Алгоритм lzw
- •Задания для самостоятельного выполнения
- •Расчетно-графическая работа №1
- •Расчетно-графическая работа №2
- •Список рекомендуемой литературы
- •Рекомендованная литература
-
Квадратичные вычеты
Рассмотрим некотрое простое p < q и число a < p. Если число а сравнимо с квадратом некоторого числа х по модулю p, т.е. выполняется сравнение х2 а (mod p), тогда а называют квадратичным вычетом по модулю p. В противном случае а называют квадратичным невычетом по модулю p.
Если а – квадратичный вычет, сравнение х2 а (mod p) имеет два решения: +х и –х, т.е. а имеет два квадратных корня по модулю р.
Все квадратичные вычеты находят возведением в квадрат элементов 1, 2, 3, … , (р – 1) /2.
Не все значения а < р являются квадратичными вычетами.
Пример. При р = 7 квадратичные вычеты это 1, 2, 4:
12 = 1 1 (mod 7),
22 = 4 4 (mod 7),
32 = 9 2 (mod 7),
42 = 16 2 (mod 7),
52 = 25 4 (mod 7),
62 = 36 1 (mod 7).
Каждый квадратичный вычет появляется в этом списке дважды.
Не существует никаких значений х, которые удовлетворяли бы любому из следующих уравнений:
х2 3 (mod 7),
х2 5 (mod 7),
х2 6 (mod 7).
Числа 3, 5 и 6 – квадратичные невычеты по модулю 7.
Можно доказать, что существует точно (р – 1) / 2 квадратичных вычетов по модулю р и (р – 1) / 2 квадратичных невычетов по модулю р.
Если а – квадратичный вычет по модулю р, то а имеет точно два квадратных корня: один корень между 0 и (р – 1) / 2, другой корень между (р – 1) / 2 и (р – 1).
Один из этих квадратных корней также является квадратичным вычетом по модулю р. Он называется главным квадратичным корнем.
Вычисление квадратных корней при р = 7 представлено в таблице 1.7.1.
Таблица 1.7.1 Вычисление квадратных корней при р = 7
|
х2 а (mod 7) |
Корни |
|
|
х 1 |
х 2 |
|
|
12 1 (mod 7) 22 4 (mod 7) 32 2 (mod 7) |
+1 +2 +3 |
-1 = -1 + 7 = 6 -2 = -2 + 7 = 5 -3 = -3 + 7 = 4 |
Если n – призведение двух простых р и q, т.е. n = p • q, то существует точно
(p – 1) • (q – 1) / 4
квадратичных вычетов по модулю n, взаимно простых n.
Пример. По модулю 35 (р = 5, q = 7, n = 5 • 7 = 35) существуют
(5 – 1) • (7 – 1) 4 • 6

=
= 6
4 4
квадратичных вычетов: 1, 4, 9, 11, 16, 29, взаимно простых с 35.
-
Вычисления в конечных полях
Поле F есть множество, на котором определены операции сложения и умножения, удовлетворяющие требованиям:
-
ассоциативности,
-
коммутативности,
-
дистрибутивности,
-
существования аддитивного 0,
-
существования мультипликативной 1,
-
существования аддитивных обратных и мультипликативных обратных для всех элементов за исключением 0.
Конечное поле F (p) с конечным числом р элементов играет важную роль в криптографии.
В общем случае число элементов р = q n, где q – некотрое простое число и n 1.
Такие конечные поля называют полями Галуа и обозначают GF(q n) или GF(q) при n = 1. (Эварист Галуа – французский математик начала ХIX века.) Многие криптосистемы базируютс на полях Галуа GF(q), где q – большое простое число.
Пример. Поле Галуа GF(5) имеет элементы 0, 1, 2, 3, 4 и описывается таблицами сложения и умножения (таблицы 1.8.1 и 1.8.2):
Таблица 1.8.1 – сложение в поле Галуа GF(5)
|
+ |
0 |
1 |
2 |
3 |
4 |
|
0 |
0 |
1 |
2 |
3 |
4 |
|
1 |
1 |
2 |
3 |
4 |
0 |
|
2 |
2 |
3 |
4 |
0 |
1 |
|
3 |
3 |
4 |
0 |
1 |
2 |
|
4 |
4 |
0 |
1 |
2 |
3 |
Таблица 1.8.2 – умножение в поле Галуа GF(5)
|
× |
1 |
2 |
3 |
4 |
|
1 |
1 |
2 |
3 |
4 |
|
2 |
2 |
4 |
1 |
3 |
|
3 |
3 |
1 |
4 |
2 |
|
4 |
4 |
3 |
2 |
1 |
Если q – простое число, то число а [1, q – 1] является взаимно простым с q, и поэтому обратный элемент а –1 имеет единственное значение. Тем самым обнозначно определяется операция деления.
Обозначим через GF*(q) множество ненулевых элементов поля GF(q). Некоторый элемент g из GF*(q) называют образующим или порождающим элементом GF*(q), если для всех а из GF*(q) найдется такое целое х, что g x = a mod q. Всего имеется (q – 1) образующих элементов g. Число х называется дискретным логарифмом элемента а по основанию g и модулю q. Вычисление дискретных логарифмов (когда заданы g, a и q) примерно такая же труднорешаемая задача, как и разложение на множители.
Еще один тип поля Галуа, используемый в криптографии, основывается на арифметике по модулю неприводимых многочленов степени n, чьи коэффициенты – целые числа по модулю q, где q – простое. Эти поля Галуа обозначаются как GF(q n). Они имеют элементы, которые описываются многочленами степени не выше (n – 1) в форме
а (Х) = а n – 1 X n – 1 + … + а 1 X + а 0.
Каждый элемент а (Х) является вычетом по модулю р (Х), где р (Х) – неприводимый многочлен степени n, т.е. р (Х) нельзя разложить на сомножители – многочлены степени меньше n.
Арифметические действия над коэффициентами аi выполняются по модулю q, а наивысшая степень Х равна (n – 1), так как выполняется приведение по модулю многочлена р (Х), имеющего старшую степень n.
Особый интерес представляют поля GF(2 n). Здесь коэффициентами аi являются 0 и 1. Поэтому многочлен а (Х) степени не выше (n – 1) можно представить как вектор из n двоичных цифр:
а n – 1 а n – 2 … а 1 а 0.
Каждый из n – битовых векторов соответствует конкретному элементу поля GF(2 n).
Пример. Поле Галуа GF(2 3) имеет элементы:
|
Многочлены |
Двоичная форма |
|
0 |
000 |
|
1 |
001 |
|
х |
010 |
|
х + 1 |
011 |
|
х 2 |
100 |
|
х 2 + 1 |
101 |
|
х 2 + х |
110 |
|
х 2 + х + 1 |
111 |
Организация вычислений в полях Галуа предполагает знание некоторых свойств многочленов и их корней в двоичном поле GF(2).
