Понадобилось больше теории, чтобы перейти к композитным полям. Но все попадаются сатьи индусов с ведической алгеброй или индусов из исследовательского центра IBM в Индии. В единственном нормальном учебнике, который мне попался по теории Галуа и кодам Рида-Соломона, слово "корень" употребляется всего один раз, вообще один раз на все сто-пятьсот страниц, и без определения.
Допустим A -- один из корней образующего полинома p(x) = x8+x4+x3+x+1. При сложении коэффициентов при степенях используется арифметика по модулю 2. Степени A образуют полиномиальный базис [1,A,A2,A3,A4,A5,A6,A7], который далее может использоваться для вычисления матриц изоморфных преобразований и представления элементов поля.
Что значит корень? Это значит, что подстановка "корня" в образующий поле полином (8-ого порядка) дает ноль:
P(A) = с8A8 + с7A7 + ... + c2A2 + c1A1 + c0=0.
Здесь коэффициенты при степенях (ck) те же, что и в образующем полиноме.
Как найти корень? Чтобы найти в одно действие какой-то корень надо отбросить от образующего полинома степень 8, получим полином 7й степени – это один из корней (x4+x3+x+1). Отбрасывание старшего порядка равносильно операции A = x8 mod P(x). Остальные корни находим методом возведения полученного корня в квадрат, рекурсивно. Всего будет 8 корней для полинома 8 порядка.
// Проверка на корень
int gf2p8_is_root(uint8_t a, uint32_t Poly)
{
uint8_t v=1, r=0;
uint32_t p = Poly;
while (p) {
if(p&1) r ^= v;
v = gf2p8_mul(v, a, Poly);
p>>=1;
}
return (r==0);
}
Полином поля можно представить иначе, с учетом знания о корнях, как произведение:
P(x)= (x-A)(x-A2)(x-A4)(x-A8)(x-A16)(x-A32)(x-A64)(x-A128).
Все корни образующего полинома поля GF(2m)образуют циклическую группу по операции возведения в квадрат.
Для полинома восьмого порядка сразу можно выделить четыре корня: A =x1, x2, x4, x8 mod P(x). Остальные четыре корня надо считать.
Свойства поля Галуа GF(pm):
- Существует порождающий примитивный элемент поля (геренатор поля), такой что любой не нулевой элемент поля может быть выражен, как степень порождающего элемента поля. Мультипликативная группа циклична.
- Для любого элемента (g) поля GF(pm) справедливо: gpm-1 = 1, g-1 = gpm-2.
- Любой элемент поля может быть выражен суммой из m элементов поля. Для выражения элементов поля используются m элементов, составляющих полиномиальный базис. Элемент поля можно представить через полиномиальный базис: a0 +a1A +a2A2 +...+am−1Am−1.
- В поле GF(pm) выполняется равенство: (a + b)p = ap + bp (mod p)
- Если элемент A поля GF(pm) - корень нередуцируемого полинома P(x) степени m, то остальными корнями P(x) будут элементы: Ap, Ap2, . . . , Apm-1.
- Для любого простого числа p и любого нередуцируемого полинома P(x) степени m существует только одно поле Галуа GF(pm). Поля Галуа GF(pm), образованные различными нередуцируемыми полиномами степени m изоморфны.
Ниже привожу все корни от 30 нередуцируемых полиномов 8-ого порядка, и корни для полиномов 4-ого порядка.
Таблица корней полинома 8-ого порядка 11B: 02 04 10 1B 5E E4 4D FA 11D: 02 04 10 1D 4C 9D 5F 85 12B: 02 04 10 2B E9 EE FB C1 12D: 02 04 10 2D E5 5D F6 75 139: 02 04 10 39 9C 4E 8F 72 13F: 02 04 10 3F 96 91 84 AA 14D: 02 04 10 4D F8 E3 EB AB 15F: 02 04 10 5F 86 9A 95 C0 163: 02 04 10 63 F3 F4 E1 93 165: 02 04 10 65 8B 8C 99 ED 169: 02 04 10 69 03 05 11 68 171: 02 04 10 71 F3 2F E0 5B 177: 02 04 10 77 8B 3A 98 48 17B: 02 04 10 7B 03 05 11 7A 187: 02 04 10 87 6F 1D D6 34 18B: 02 04 10 8B AA 1A CF E3 18D: 02 04 10 8D 3D 7F 60 B8 19F: 02 04 10 9F 7D 59 94 38 1A3: 02 04 10 A3 70 CD 4A 43 1A9: 02 04 10 A9 18 E9 CD 82 1B1: 02 04 10 B1 66 5F B8 27 1BD: 02 04 10 BD 95 E6 A1 78 1C3: 02 04 10 C3 1F 96 A0 FD 1CF: 02 04 10 CF 76 A0 58 56 1D7: 02 04 10 D7 EB 9E CC 79 1DD: 02 04 10 DD 61 4D D3 35 1E7: 02 04 10 E7 7D 4B EA 2C 1F3: 02 04 10 F3 C1 1C A3 9A 1F5: 02 04 10 F5 28 7E 67 D3 1F9: 02 04 10 F9 6F 1B BC 26
Таблица корней полинома 4-ого порядка 13: 2 4 3 5 19: 2 4 9 E 1F: 2 4 F 8
Комментариев нет:
Отправить комментарий