pri_cod2
.pdfВычисления в конечных полях упрощаются, если использовать понятия и результаты теории сравнений.
1.1Сравнения в кольце целых чисел
Определение 1. Пусть m ¸ 2 целое число. Целые числа a и b называются сравнимыми по модулю m, если разность a¡b делится (нацело) на m. Запись a ´ b(mod m).
Лемма 5 a ´ b(mod m) тогда и только тогда, когда a и b дают одинаковые остатки при делении на m.
Лемма 6 Отношение сравнимости двух чисел по данному модулю рефлексивно, симметрично и транзитивно, то есть
a)a ´ a(mod m) при всех a;
b)если a ´ b(mod m), то b ´ a(mod m);
c)если a ´ b(mod m) и b ´ c(mod m), то a ´ c(mod m).
Лемма 7 Сравнения по одному и тому же модулю можно почленно складывать, вычитать, умножать, возводить в целую положительную степень (сохраняя при этом модуль). Члены сравнения можно переносить в другую часть с противоположным знаком. Члены сравнения и модуль можно умножать на целое положительное число.
Пример 3. Найдем остаток r при делении на 23 числа
A = 213 ¢ 472 ¢ 76 ¢ 812 ¢ 494 + 3156:
Сомножители дают при делении на m = 23 остатки 6, 12, 7, 7 и 11 соответственно, а число 315 остаток 16. Поэтому
A ´ 6 ¢ 12 ¢ 7 ¢ 7 ¢ 11 + 166 = (6 ¢ 12) ¢ (7 ¢ 7) ¢ 11 + (16 ¢ 16)3 = 72 ¢ 49 ¢ 11 + 2563 ´
´ 3 ¢ 3 ¢ 11 + 33 = 99 + 27 = 126 ´ 11 (mod 23):
Следовательно, остаток r равен 11.
31
Другой способ решения задачи (не использующий теории сравнений): 1) Производим арифметические действия и находим десятичную запись
числа A:
A = 979 994 635 165 833:
2) Делим с остатком число A на 23:
979 994 635 165 833 = 23 ¢ 42 608 462 398 514 + 11:
В итоге получаем тот же остаток 11. |
|
|
Целое число b называют мультипликативным обратным для целого |
|
|
числа a по модулю m, если ab ´ 1(mod m). Этот элемент обозначается |
|
|
a¡1(mod m). Ясно, что если b = a¡1 (mod m), то a = b¡1 (mod m). Поэто- |
|
|
му a и b взаимно обратны по модулю m. Например, числа 5 и 7 взаимно |
|
|
обратны по модулю 17, поскольку 5 ¢ 7 = 35 ´ 1 |
(mod 17). |
|
Предложение 2 a¡1(mod m) существует тогда и только тогда, когда |
|
|
чис a и m взаимно просты. |
|
|
При небольших m найти a¡1(mod m) можно, давая числу b значения |
|
|
1, 2, 3, : : :, пока не придем к сравнению ab ´ 1 |
(mod m). Если b получило |
|
значение, большее m, то обратного элемента нет. При больших m для поиска |
N |
|
a¡1(mod m) надо применить расширенный алгоритм Евклида [.....] |
Сравнения по модулю m тесно связаны с кольцом Zm = f0; 1; 2; : : : ; m¡ 1g вычетов по модулю m. Пусть a; b; c 2 Zm. Тогда:
1) |
a + b = c в кольце Zm тогда и только тогда, когда |
||
|
a + b ´ c |
(mod m). |
|
2) a ¢ b = c в кольце Zm в том и только том случае, когда |
|||
|
a ¢ b ´ c |
(mod m). |
|
3) |
b = a¡1 |
в кольце Zm тогда и только тогда, когда |
|
|
b ´ a¡1 |
(mod m). |
|
Пример 4. |
Построим конечное поле из 52 = 25 элементов. Для этого |
выберем неприводимый над полем Z5 многочлен g(x) = x2 + 2. Элементами
32
поля являются многочленами первой степени с коэффициентами из Z5. Все они представлены в следующей таблице:
0 |
1 |
2 |
3 |
4 |
|
|
|
|
|
x |
x + 1 |
x + 2 |
x + 3 |
x + 4 |
|
|
|
|
|
2x |
2x + 1 |
2x + 2 |
2x + 3 |
2x + 4 |
|
|
|
|
|
3x |
3x + 1 |
3x + 2 |
3x + 3 |
3x + 4 |
|
|
|
|
|
4x |
4x + 1 |
4x + 2 |
4x + 3 |
4x + 4 |
|
|
|
|
|
Найдем сумму и произведение элементов a(x) = 2x + 3 и b(x) = 4x + 1. Имеем:
a(x) + b(x) = 6x + 4 ´ x + 4(mod 5), поэтому a(x) © b(x) = x + 4
a(x) ¢ b(x) = 8x2 + 14x + 3 ´ 3x2 + 4x + 3 = 3(x2 + 2) + (4x ¡ 3)
Остаток при делении a(x) ¢ b(x) на g(x) равен 4x ¡ 3. Так как 4x ¡ 3 ´ 4x + 2(mod 5), полуаем
a(x) ¯ b(x) = 4x + 2
В векторной форме полученные результаты можно записать так:
(2; 3) © (4; 1) = (1; 4); (2; 3) ¯ (4; 1) = (4; 2)
Замечание. Пусть a(x) = a0x + a1 и b(x) = b0x + b1 элементы поля F = GF (52), построенного по неприводимому над Z5 многочлену g(x) = x2 + 2. Тогда
a(x) + b(x) = |
(a0 + b0)x + (a1 + b1); |
a(x) ¢ b(x) = |
(a0b0)x2 + (a0b1 + a1b0)x + a1b1 = |
= |
(a0b0)(x2 + 2) + (a0b1 + a1b0)x + (a1b1 ¡ 2a0b0) |
Из последнего равенства вытекает, что остаток при делении многочлена a(x)¢b(x) на g(x) равен (a0b1+a1b0)x+(a1b1¡2a0b0). Поэтому поле F = GF (52) можно описать так:
33
Элементами поля F являются упорядоченные пары с компонентами из Z5, а сложение и умножение пар задается формулами
(a0; a1) © (b0; b1) = (a0 + b0; a1 + b1);
(a0; a1) ¯ (b0; b1) = (a0b1 + a1b0; a1b1 ¡ 2a0b0);
причем в правых частях равенств сложение и умножение производятся по модулю 5.
Например, (2; 3) © (4; 1) = (2 + 4; 3 + 1) = (1; 4), (2; 3) ¯ (4; 1) = (2 ¢ 1 + 3 ¢ 4; 3 ¢ 1 ¡ 2 ¢ 2 ¢ 4) = (14; ¡13) = (4; 2). Подобное описание допускает любое конечное поле. Эти описания полезны при создании компьютерных программ для вычислений в конечных полях.
1.2Проверка неприводимости многочлена над полем
Напомним, что многочлен f(x) положительной степени называется приводимым над некоторым полем P , если найдутся многочлены g(x) и h(x) положительной степени с коэффициентами из этого поля, для которых в этом поле верно равенство f(x) = g(x)h(x). Многочлен f(x) положительной степени называется неприводимым над полем P , если он не является приводимым над этим полем, то есть его нельзя представить в виде произведения двух многочленов положительной степени с коэффициентами из этого поля.
Если многочлен f(x) можно представить в виде произведения трех или более многочленов положительной степени, то он приводим, поскольку его можно представить в виде f(x) = g(x)h(x), где g(x) первый множитель, а h(x) произведение всех остальных сомножителей. Многочлены нулевой степени (то есть константы), а также нулевой многочлен не относят ни к приводимым ни к неприводимым многочленам.
Отметим, что для любых многочленов f(x), g(x) и h(x) с целыми коэффициентами и любого простого числа p эквивалентны следующие условия:
1)В поле Zp вычетов по простому модулю p верно равенство f(x) = g(x)h(x).
2)Справедливо сравнение f(x) ´ g(x)h(x)(mod p).
34
Пример 5. Многочен x2 + 6x + 1 приводим над полем Z7, так как имеет место сравнение x2 + 6x + 1 ´ (x + 2)(x + 4)(mod 7).
Приводимые многочлены во многом похожи на составные числа, а неприводимые на простые числа. Ряд результатов о простых и составных числах можно перенести на приводимые и неприводимые многочлены. Например, основная теорема арифметики утверждает, что любое целое число n ¸ 2 или является простым или разлагается в произведение простых чисел. Для многочленов верен аналогичный результат: любой многочлен положительной степени или неприводим или разлагется в произведение неприводимых многочленов.
При проверке приводимости или неприводимости многочлена полезно использовать следующие результаты:
Предложение 3 Многочен первой степени (вида ax+b, a =6 0) неприводим над любым полем.
Предложение 4 Пусть многочлен f(x) степени ¸ 2 имеет некоторый корень x0. Тогда f(x) приводим.
Доказательство. По теореме Безу f(x) делится на (x¡x0), то есть найдется многочлен g(x), для которого f(x) = (x ¡ x0)g(x). При этом степени множителей (x ¡ x0) и g(x) положительны.
Предложение 5 Пусть степень многочлена f(x) равна 2 или 3. Тогда f(x) приводим над некоторым полем тогда и только тогда, когда f(x) имеет корень в этом поле.
Доказательство. Если f(x) имеет корень, то он приводим по предыдущему предложению. Пусть теперь f(x) приводим. Тогда f(x) = g(x)h(x) для некоторых многочленов g(x), h(x) положительной степени. При этом хотя бы один из сомножителей имеет степень 1. Пусть, например, deg g(x) = 1. Тогда g(x) = ax + b, где a =6 0. В этом случае x0 = ¡a¡1b корень g(x). Но тогда f(x0) = g(x0)g(x0) = 0 ¢ h(x0) = 0, то есть x0 корень f(x).
35
Отметим, что существуют приводимые многочлены (степени ¸ 4), не имеющие корней. Таким является, например, f(x) = (x2 + 1)(x2 + 4) над полем Z7. Более общий результат: если многочен f(x) можно представить в виде произведения двух или более неприводимых многочленов, каждый из которых имеет степень ¸ 2, то f(x) приводим, но не имеет корней. N
Используя предложение 999, легко проверить, что порождающие образую щие многочлены в примерах неприводимы. Это предложение, однако, не позволяет доказывать неприводимость
многочленов степени ¸ 4. В связи с этим рассмотрим
Пример 6. Многочлен g(x) = x4 + x + 1 (из примера 7777) неприводим над Z2. Допустим, что он приводим. Тогда возможны два случая.
Случай 1. Для некоторых чисел ®, ¯, °, ®0, ¯0, °0, каждое из которых равно 0 или 1, справедливо сравнение
x4 + x + 1 ´ (®x2 + ¯x + °)(®0x2 + ¯0x + °0) (mod 2):
Раскрывая скобки и сравнивая старшие члены, а также свободные члены левой и правой частей сравнения, получим ®®0 ´ 1 (mod 2) и °°0 ´ 1 (mod 2), откуда ® = ®0 = ° = °0 = 1. Сравнивая теперь коэффициенты при x3, а также при x, придем к сравнениям ¯ + ¯0 ´ 1 (mod 2) и ¯ + ¯0 ´ 0 (mod 2). Полученные сравнения противоречат друг другу, поэтому этот случай невозможен.
Случай 2. Найдутся числа ® и ¯, каждое из которых равно 0 или 1, а также многочлен h(x) третьей степени, для которых справедливо сравнение
g(x) = x4 + x + 1 ´ (®x + ¯)h(x) (mod 2):
Ясно, что ® =6 0 (иначе степень g(x) была бы меньше 4). Поэтому ® = 1. Но тогда x0 = ¡¯ корень g(x). Однако g(0) = 1 6´0 (mod 2) и g(1) = 3 6´0 (mod 2). Полученное противоречие показывает, что и слечай 3 невоможен. Следовательно, многочлен g(x) = x4 + x + 1 неприводим над Z2.
Пример 7. Проверим, что многочлен f(x) = x3 + 6x2 + 8x + 4 приводим над полем Z11 и разложим его на непрводимые множители. Сначала выясним
36
имеет ли f(x) корни в этом поле. Найдем значения f(x) по модулю 11 при
x = 0; 1; 2; : : :: |
8 f(0) |
= |
4 |
´ |
4 |
(mod 11); |
|
||||||
|
> |
|
|
´ |
|
|
|
> |
|
|
|
|
|
|
> |
|
|
|
|
|
|
> |
= |
19 |
|
8 |
(mod 11); |
|
> f(1) |
|
||||
|
> |
|
|
|
|
|
|
> |
|
|
´ |
|
|
|
> |
|
|
|
|
|
|
> |
|
|
|
|
|
|
> |
= |
52 |
|
8 |
(mod 11); |
|
> f(2) |
|
||||
|
< |
|
|
|
|
|
|
> f(3) |
= |
109 |
|
10 |
(mod 11); |
|
> |
|
|
´ |
|
|
|
> |
|
|
|
|
|
|
> |
|
|
´ |
|
|
|
> |
= |
196 |
9 |
(mod 11); |
|
|
> f(4) |
|||||
|
> |
|
|
|
|
|
|
> |
|
|
´ |
|
|
|
> |
|
|
|
|
|
|
> |
|
|
|
|
|
|
> |
|
|
|
|
|
|
> |
= |
319 |
|
0 |
(mod 11): |
|
> f(5) |
|
||||
|
: |
|
|
|
|
|
Таким образом, x0 = 5 корень f(x). По предложению ..... многочлен f(x) приводим. Для разложения этого многочлена на множители разделим f(x) на (x ¡ 5) с остатком, рассматривая f(x) и (x ¡ 5) как многочлены с целыми коэффициентами: f(x) = (x¡5)(x2 +11x+63)+319. Заменяя коэффициенты многочленов остатками при делении на 11, получим f(x) ´ (x + 6)(x2 + 8)(mod 11), поэтому f(x) = (x + 6)(x2 + 8) над полем Z11. Теперь находим корень x0 = 5 многочлена x2+8 и делим g(x) с остатком на x¡5. Окончательный ответ таков: f(x) = (x + 6)2(x + 5) над полем Z11.
Замечание 1 При вычислении остатка при делении f(x0) на p полезно использовать свойства сравнений. Так, в примере 5 величину f(5)(mod 11) можно найти следующим образом:
f(5) = 53 + 6 ¢ 52 + 8 ¢ 5 + 4 = 25 ¢ 5 + 6 ¢ 25 + 40 + 4 ´
´3 ¢ 5 + 6 ¢ 3 + 7 + 4 = 15 + 18 + 11 ´
´4 + 7 + 0 ´ 0(mod 11)
Кроме того, при вычислении значения многочлена удобно использовать схему Горнера. Например, f(5)(mod 11) можно найти, заполняя клетки таблицы
|
1 |
6 |
8 |
4 |
|
|
|
|
|
x0 = 5 |
1 |
5 ¢ 1 + 6 ´ 0 |
5 ¢ 0 + 8 = 8 |
5 ¢ 8 + 4 ´ 0 |
Неприводимые многочлены используются, в частности, при построении конечных полей. Поэтому важно знать при каком простом p существуют неприводимые над полем Zp многочлены. В этой связи отметим
37
Предложение 6 Для любого простого p и любого целого r ¸ 1 существует неприводимый над Zp многочлен степени r.
Приведем список некоторых неприводимых многочленов степени r · 4 для небольших модулей p:
Таблица 1
p |
r = 2 |
r = 3 |
r = 4 |
|
|
|
|
|
|
|
|
2 |
x2 + x + 1 |
x3 + x + 1 |
x4 + x + 1 |
3 |
x2 + 1 |
x3 + 2x + 1 |
x4 + x + 2 |
5 |
x2 + 2 |
x3 + x + 1 |
x4 + 2 |
7 |
x2 + 1 |
x3 + 2 |
x4 + x + 2 |
11 |
x2 + 1 |
x3 + x + 4 |
x4 + x + 2 |
Задача. Найти все простые числа p < 100, для которых многочлен
x2 + 1 неприводим над полем Zp. 2 |
3 |
N |
Отметим, что “похожий“ на x |
+1 многочлен x |
+1 приводим над любым |
полем Zp это вытекает из разложения x3 + 1 = (x + 1)(x2 ¡ x + 1). Более общий результат: если многочлен степени ¸ 2 с целыми коэффициентами имеет целый корень, то он приводим над полем Zp при любом простом p.
1.3Линейный код, исправляющий 2 ошибки
Опишем линейный бинарный код C, исправляющий одну или две ошибки в кодовом слове. При построении кода используется конечное поле F из 16 элементов, которое было рассмотрено в примере 2. Это поле содержит нулевой элемент ®0 = 0 и 15 ненулевых элементов, которые обозначим ®1,
®2, : : :, ®15.
Проверочная матрица H кода C состоит из 15 столбцов высоты 8 из нулей и единиц. При j = 1; 2; : : : ; 15 столбец Hj соответствует элементу ®j и определяется следующим образом. Пусть
®j = a0x3 + a1x2 + a2x + a3
и
®j3 = ®j ¯ ®j ¯ ®j = b0x3 + b1x2 + b2x + b3:
38
Тогда столбец Hj состоит из элементов a0, a1, a2, a3, b0, b1, b2, b3 (в указанном порядке). Таким образом, для построения кода необходимо найти кубы всех ненулевых элементов поля F . Пусть, например, ®j = x3+x2+1. Рассматривая ®j = ®j(x) как многочлен с целыми коэффициентами, вычисляем
®j3 = x9 + 3x8 + 4x6 + 3x7 + 6x5 + 3x3 + 3x4 + 3x2 + 1:
При делении ®j3 на неприводимый многочлен g(x) = x4 + x + 1 (по которому построено поле F ) получаем остаток ¡3x3 ¡ 2x2 + x + 4. Заменив в остатке каждый коэффициент его остатком при делении на число p = 2, придем к многочлену x3 + x. Поэтому ®j ¯ ®j ¯ ®j = x3 + x. Следовательно, столбец Hj состоит из элементов 1, 1, 0, 1, 1, 0, 1, 0 (в указанном порядке).
Условно матрицу H можно записать так:
H = |
0 |
3 |
3 |
3 |
3 |
1 |
: |
|
@ |
®1 |
®2 |
®3 |
: : : ®15 |
A |
|
|
®1 |
®2 |
®3 |
: : : ®15 |
|
Отметим, что первые 4 строки матрицы содержат все ненулевые столбцы высоты 4, составленные из нулей и единиц.
Длина n кодовых строк рассматриваемого бинарного линейного кода C равна числу столбцов проверочной матрицы H, то есть 15. Число проверочных разрядов r равно 8 (числу столбцов). Поэтому число k информационных разрядов равно n ¡ r = 15 ¡ 8 = 7. Следовательно, C является линейным (15; 7)-кодом.
Поиск и исправление ошибок
Пусть по каналу связи отправлено кодовое слово u (из 15 двоичных разрядов), а получено слово v = u + e, где e вектор ошибок. Допустим, что при передаче произошло 2 ошибки в разрядах с номерами i и j. Тогда вектор ошибок e содержит две единицы в i-ой и j-ой позиции, а остальные его компоненты нули. Синдром s вектора v равен сумме i-го и j-го столбцов матрицы H. Пусть столбец с номером i построен по элементу a 2 F , а столбец с номером j по элементу b 2 F . Тогда справедливо матричное равенство
s = 0@ s1 1A = 0@ a3 1A + 0@ b3 1A ;
s2 a b
39
где s1 столбец из первых четырех компонент синдрома s, а s2 столбец из его последних четырех компонент. Это уравнение равносильно системе
уравнений |
8 a3+ b |
|
|
|
3 |
= s1; |
|
|
< a + b |
|
= s2; |
|
: |
|
|
где a и b неизвестные элементы поля F .
Вполе F верно равенство 2 = 1 + 1 = 0, поэтому s21 = (a + b)2 =
=a2 +2ab+b2 = a2 +b2, откуда s2 = a3 +b3 = (a+b)(a2 ¡ab+b2) = s1(s21 ¡ab),
что дает ab = s2 |
+ s2 |
. Следовательно, a и b корни квадратного уравнения |
||||
s1 |
1 |
t2 + s1t + |
Ãs1 + s12! |
= 0: |
||
|
|
|||||
|
|
|
|
s2 |
|
|
Первый корень находят подбором (подставляя вместо t элементы ®1, ®2, : : :), второй по теореме Виета. После того, как найдены корни, легко найти номера разрядов, в которых произошли ошибки, а затем исправить эти ошибки.
Случай одной ошибки рассматривается аналогично и приводит к такой
системе: |
8 a3 |
= s1; |
|
||
|
< a |
= s2: |
3 |
: |
существует и единственно. В противном |
Если (s2) |
= s1, то решение a = s1 |
случае решений нет.
Схема поиска ошибок
1)Если s1 = 0 и s2 = 0, то принимается решение, что ошибок нет.
2)Если s1 = 0, s2 6= 0, то число ошибок не меньше трех.
3)Если s1 6= 0 и s2 = s31, то ошибка одна (в позиции, соответствующей элементу поля F с векторным представле-
нием s1).
4)Если s1 6= 0 и s2 6= s31, то имеются 2 ошибки и находятся они путем решения описанного выше квадратного уравнения.
Замечание. Если нижняя строка матрицы H будет состоять из квадратов, а не кубов элементов верхней строки, то получится такая система
40