
- •Введение
- •Элементы теории чисел
- •Модулярная арифметика
- •Алгоритм Евклида для нахождения наибольшего общего делителя
- •Вычисление обратных величин
- •Основные способы нахождения обратных величин
- •Расширенный алгоритм Евклида
- •Китайская теорема об остатках
- •Квадратичные вычеты
- •Вычисления в конечных полях
- •Свойства многочленов в двоичном поле gf(2)
- •Достоинства вычислений в поле Галуа gf(2 n)
- •Кодирование
- •Оптимальное кодирование
- •Обнаружение и исправление ошибок
- •Общие понятия
- •Линейные групповые коды
- •Код Хэмминга
- •Циклические коды
- •Построение и декодирование конкретных циклических кодов
- •Циклические коды, исправляющие две и большее количество ошибок, d0 5
- •Сжатие информации
- •Исключение повторения строк в последующих строках
- •Алгоритм lzw
- •Задания для самостоятельного выполнения
- •Расчетно-графическая работа №1
- •Расчетно-графическая работа №2
- •Список рекомендуемой литературы
- •Рекомендованная литература
-
Свойства многочленов в двоичном поле gf(2)
-
Ненулевые элементы поля GF(2n) являются корнями
n
обобщенного многочлена X 2 – 1 + 1.
-
Каждый многочлен р (Х) степени n, неприводимый над полем
n
Галуа GF(2) является делителем двучлена X 2 – 1 + 1, и каждый
n
делитель двучлена X 2 – 1 + 1, неприводимый над полем GF(2), имеет степень, равную n и менее.
-
Все элементы поля GF(2 n) можно получить как совокупность остатков от деления 100…00 на неприводимый многочлен р (Х),
n
входящий в разложение двучлена (X 2 – 1 + 1). Эти остатки –
n
корни двучлена (X 2 – 1 + 1), т.е. обращают его в нуль. Число остатков равно (2 n – 1).
-
В поле GF(2 n) существует примитивный элемент , такой, что каждый ненулевой элемент поля GF(2 n) может быть представлен как некоторая степень , т.е. мультипликативная группа GF(2 n) является циклической.
Пример. Определение элементов i поля GF(2 4).
Согласно свойству 1 ненулевые элементы поля GF(2 4) являются
4
корнями обобщенного двучлена (X 2 – 1 + 1) = (Х 15 + 1). Двучлен (Х 15 + 1) можно представить в виде произведения неприводимых многочленов – сомножителей:
(Х 15 + 1) = Р (Х 1) • Р (Х 2) • Р1 (Х 4) • Р2 (Х 4) • Р3 (Х 4),
где:
Р (Х 1) = Х + 1,
Р (Х 2) = Х 2 + Х + 1,
Р1 (Х 4) = Х 4 + Х + 1,
Р2 (Х 4) = Х 4 + Х 3 + 1,
Р3 (Х 4) = Х 4 + Х 3 + Х 2 + Х + 1.
В соответствии со свойством 3 вычислим элементы i поля GF(2 4) как совокупность остатков от деления 100…00 на неприводимый многочлен Р1 (Х 4) = Х 4 + Х + 1.
Процедура определения остатков.
Делят на Р1 (Х 4) = Х 4 + Х + 1 10011 единицу с возрастающим числом нулей, т.е. делят одночлены Х j, где j = 0, 1, 2, 3, …, на многочлен Х 4 + Х + 1. Степени одночленов Х 0, Х 1, Х 2, Х 3 меньше степени многочлена Р1 (Х 4), поэтому первые четыре остатка от деления на Р1 (Х 4) равны делимым, т.е. одночленам Х 0, Х 1, Х 2, Х 3.
Для одночлена Х 4 10000 получаем остаток:
|
10000 |
10011 |
|
|
|
|
|
10011 |
|
|
|
0011 |
Х 4 |
|
Для одночлена Х 5 100000 получаем остаток:
|
100000 |
10011 |
|
|
|
|
|
10011 |
|
|
|
00110 |
Х 5 |
|
Таким образом, схема вычисления остатков:
|
1000000000000000 |
10011 |
|
|
|
10011 |
|
|
0011000 |
Х 4 |
|
10011 |
|
|
10110 |
Х 7 |
|
10011 |
|
|
010100 |
Х 8 |
|
10011 |
|
|
011100 |
Х 10 |
|
10011 |
|
|
11110 |
Х 12 |
|
10011 |
|
|
11010 |
Х 13 |
|
10011 |
|
|
10010 |
Х 14 |
|
10011 |
|
|
0001 |
Х 15 = Х 0 |
Результаты занесем в таблицу 1.9.1.
Таблица 1.9.1 – Вычисленные остатки и нулевые элементы 0 - 14 поля Галуа GF(2 4)
Х j |
Остаток |
i |
Х 0 |
0001 |
0 |
Х 1 |
0010 |
1 |
Х 2 |
0100 |
2 |
Х 3 |
1000 |
3 |
Х 4 |
0011 |
4 |
Х 5 |
0110 |
5 |
Х 6 |
1100 |
6 |
Х 7 |
1011 |
7 |
Х 8 |
0101 |
8 |
Х 9 |
1010 |
9 |
Х 10 |
0111 |
10 |
Х 11 |
1110 |
11 |
Х 12 |
1111 |
12 |
Х 13 |
1101 |
13 |
Х 14 |
1001 |
14 |
Поле Галуа GF(24) построено как поле многочленов с коэффициентами 0 и 1 по модулю неприводимого многочлена
Р1 (Х 4) = Х 4 + Х + 1 10011.
В поле Галуа GF(2 n) определены четыре алгебраические операции.
Операции сложения и вычитания выполняются как операции поразрядного сложения по модулю 2.
Операция умножения элементов поля выполняется как умножение соответствующих многочленов с приведением по модулю неприводимого многочлена Р (Х), т.е. многочлена, по модулю которого построены элементы поля GF(2 n).
Пример. 5 = 0110, 6 = 1100, 5 + 6 = 1010, так как
|
0110 |
|
|
1100 |
|
1010 |
Пример. 14 = 1001, 14 • 14 = 13 по mod P1 (X4) 10011.
|
• |
1001 |
|
||
1001 |
||
1001 1001 |
1000001
|
1000001 |
10011 |
|
|
|
10011 |
|
|
1101 |
13 |
Чтобы выполнить деление элемента b на элемент а в поле GF(2 n) по модулю Р(Х), сначала находят обратный элемент а – 1 (mod P (X)), а затем вычисляют
b • a – 1 (mod P (X)).
Каждый двоичный вектор длиной n, исключая 0, является взаимно простым с неприводимым многочленом Р (Х) независимо от значения
Р (Х). Поэтому число вычетов, взаимно простых с Р (Х), равно
(Р(Х)) = 2 n – 1 (расширение фугкции Эйлера для многочленов). Поэтому
n
a – 1 = a (Р(Х)) – 1 mod P (X) = a 2 – 2 mod P (X).
Пример. Пусть а = 100 и Р (Х) = 1011 в поле Галуа GF(2 3).
3
a – 1 = 100 2 – 2 (mod 1011) = 100 6 (mod 1011) = 100 2 •100 4 (mod 1011).
100 2 (mod 1011) = 10000 10110 = 110
или
|
10000 |
1011 |
|
|
|
1011 |
|
|
110 |
|
100 4 (mod 1011) = 110 2 (mod 1011) = 010
или
|
• |
110 |
|
||
110 |
||
000 110 100 |
10100
|
10100 |
1011 |
|
|
|
1011 |
|
|
010 |
|
100 2 •100 4 (mod 1011) = 110 • 010 (mod 1011) = 1100 (mod 1011) = 111
или
|
1100 |
1011 |
|
|
|
1011 |
|
|
111 |
|
Итак, а – 1 = 111.
Проверка: а = 100, а – 1 = 111, Р (Х) = 1011, а • а – 1 = 110 • 100 = 11100.
|
11100 |
1011 |
|
|
|
1011 |
|
|
1010 |
|
|
1011 |
|
|
001 |
|
т.е. а • а – 1(mod 1011) = 1.