УДК 681.32.512
Б. А. Савельев, Г. В. Бобрышева
ВЫЧИСЛЕНИЯ В КОНЕЧНЫХ ПОЛЯХ МАЛОЙ РАЗМЕРНОСТИ
В статье предложен алгоритм вычисления операций умножения, деления и сложения для конечных полей Галуа. Алгоритм позволяет упростить вычисления для полей небольшой размерности за счет исключения операции логарифмирования .
Процессы вычислений для систем помехоустойчивой и криптографиче-
степень расширения поля; р - характеристика поля. При этом элементы поля могут быть представлены в полиномиальном или нормальном базисах.
Вычислительные устройства (ВУ) элементов в полиномиальном базисе имеют меньшую сложность [1-3], однако ВУ элементов нормального базиса имеют более регулярную структуру [3-5]. Процессы оптимизации вычислений продолжают быть актуальными в современной теории помехоустойчивой и криптографической защиты информации. Один из методов упрощения
т
вычислений для полей 0Е(2 ) анализируется ниже.
Перемножаемые элементы в нормальном базисе можно представить в виде полиномов от фиктивной переменной х:
Набор базисных элементов позволяет получить все элементы конечного поля в соответствующем базисе. Кроме того, базис позволяет перейти от одного представления элементов поля к другому. Например, чтобы перейти к
Введение
ской защиты информации осуществляются в конечных полях 0¥(рт"), где т -
Алгоритм вычислений в конечных полях
т-1
т-1
(1)
1=0
і=0
а элементы в полиномиальном базисе:
т-1
т-1
(2)
і=0
і=0
Здесь аі, Ьі є {0, 1, ..., р - 1}.
Нормальный базис можно записать в виде
соответственно, полиномиальный базис:
т
где а - примитивный элемент поля 0Е(2 ).
элементам нормального базиса от полиномиального, можно использовать выражение
Фн = ф 'Тн, (3)
где фн - элементы нормального базиса; Тн - базисный набор элементов нормального базиса; ф - элементы полиномиального базиса.
В теории компьютерных сетей важное значение имеют параметры сложности и быстродействия основных математических операций [2, 3, 5]. В полях с малой размерностью поля (m = 8, 16) широкое распространение получили табличные методы расчетов на основе постоянных запоминающих устройств [6-8].
Так, в работе [6] операции умножения и деления элементов полей а и а! заменяются более простыми операциями сложения и вычитания показателей i и j. Для указанных целей используют операции логарифмирования и антилогарифмирования. Так, если элементы
А = а! и В = а,
то
m
loga А • B = i • loga + j • loga = (i + j) mod (2 - 1), (4)
и операция деления
А/В = aW = a1 ! и
m
loga А/В = i • loga - j • loga = (i - j) mod (2 - 1). (5)
Для реализации вычислений в полях GF(2m) в [7] используют блоки
памяти логарифмов и антилогарифмов и модульный корректор по модулю 2m - 1.
Блок антилогарифмов вычисляет
aloga (loga А • B) = а +! или
aloga (loga А/B) = а ! (6)
и возвращает результаты вычислений в элементы соответствующего поля
m
GF(2m).
В авторском свидетельстве [7] дополнительно в устройство вычисления добавлена операция сложения по модулю 2, расширяющая функциональные возможности по вычислениям. Чтобы упростить вычислительное устройство и одновременно расширить функциональные возможности, предлагается исключить операцию логарифмирования (т.е. таблицу соответствия элементов конечного поля и показателей степеней примитивного элемента поля.
Обычно в вычислительных средствах информация представляется в коде ASCII (двоично-десятичном коде). Поэтому, чтобы исключить часть преобразований и эффективно применить существующие интегральные схемы,
целесообразно проводить вычисления в десятичной арифметике. Поскольку
i
имеется однозначное соответствие между элементом конечного поля а и его показателями, то умножение элементов ai и aj целесообразно проводить по
формулам (4), (5) в двоично-десятичном коде как сложение и вычитание показателей i и j.
Для сложения элементов поля GF(2m) используется функция Зеха [9], по которой сумма
г^ ../ .л ^ ^ ../ - к г - г)
а
© а = ai (1 © a7 i) = а • а
(7)
где Z(j - i) = Log (1 © a7 i) - логарифм Зеха,
Z(! - «).
а “ ' = (1 © а г) - функция Зеха. (8)
Для иллюстрации приведенных выше теоретических сведений приведем примеры выполнения операций умножения, деления и сложения по мо-
8
дулю 2. Предположим, элементы поля GF(2 ) представлены в нормальном базисе и сгенерированы с помощью порождающего полинома g(x) = X8 + X1 + + X6 + X + 1 (таблица 1). В таблице 1 элементы поля представлены в порядке возрастания степеней примитивного элемента а, т.е.
20 21 2^
у = а2 +а2 +... + а2 .
Таблица 1
8 8 7 6
Элементы нормального базиса поля GF(2 ), g(х) = х + х + х + х +1
0 - 1 1 1 1 1 1 1 1 86 - 1 0 1 0 1 1 0 0 171 - 0 0 1 0 1 1 0 0
1 - 1 0 0 0 0 0 0 0 87 - 0 0 0 1 0 1 1 0 172 - 0 1 0 1 0 1 1 0
2 - 0 1 0 0 0 0 0 0 88 - 0 0 0 0 1 1 1 0 173 - 0 0 0 1 1 0 0 1
3 - 0 0 0 1 0 1 1 1 89 - 0 0 1 0 1 0 1 1 174 - 0 0 0 0 1 0 1 1
4 - 0 0 1 0 0 0 0 0 90 - 0 1 0 0 0 0 1 0 175 - 1 0 1 0 0 1 0 0
5 - 1 1 1 0 0 1 1 0 91 - 1 0 0 0 1 1 0 0 176 - 0 0 0 0 0 1 1 1
6 - 1 0 0 0 1 0 0 1 92 - 1 1 1 1 0 0 0 0 178 - 1 0 0 1 0 1 0 1
7 - 1 1 1 0 0 1 0 0 93 - 1 0 0 0 0 1 0 1 177 - 0 0 0 1 0 1 0 0
8 - 0 0 0 1 0 0 0 0 94 - 1 1 0 0 1 1 1 1 179 - 1 1 1 1 1 0 1 1
9 - 0 0 1 1 0 1 0 0 95 - 0 1 0 1 0 0 1 0 180 - 0 0 1 0 0 0 0 1
10 - 0 1 1 1 0 0 1 1 96 - 1 0 1 1 1 0 0 0 181 - 1 1 0 0 1 0 0 0
11 - 0 1 1 1 0 0 0 0 97 - 1 0 0 0 0 0 1 1 182 - 0 1 0 0 0 1 1 0
12 - 1 1 0 0 0 1 0 1 98 - 1 1 1 1 0 1 0 1 183 - 0 0 1 0 1 1 0 1
13 - 1 1 0 1 1 0 0 0 99 - 0 0 0 0 1 0 1 0 184 - 0 1 1 1 1 0 0 0
14 - 0 1 1 1 0 0 1 0 100 - 1 0 0 0 1 0 1 0 186 - 1 1 0 0 0 0 1 0
15 - 0 1 0 1 1 1 1 0 101 - 1 1 0 0 1 0 1 0 185 - 1 1 0 1 0 1 0 0
16 - 0 0 0 0 1 0 0 0 102 - 1 1 0 1 1 1 0 1 187 - 1 1 0 0 1 1 0 0
17 - 0 0 0 1 0 0 0 0 103 - 1 1 1 1 1 1 0 1 188 - 1 1 1 0 0 1 1 1
18 - 0 0 0 1 1 0 1 0 104 - 0 0 0 1 1 0 1 1 189 - 1 0 1 0 0 1 0 1
19 - 1 0 1 1 1 1 1 0 105 - 1 0 0 1 0 0 0 0 190 - 0 0 1 0 1 0 0 1
20 - 1 0 1 1 1 0 0 1 106 - 0 1 1 1 0 1 0 0 191 - 1 1 0 1 1 0 0 1
21 - 1 0 1 0 1 1 0 1 107 - 0 1 1 0 0 1 0 0 192 - 0 1 0 1 1 1 0 0
22 - 0 0 1 1 1 0 0 0 108 - 0 1 0 1 0 0 0 0 193 - 1 0 0 1 0 0 1 1
23 - 1 1 0 0 0 0 1 1 109 - 0 0 1 0 0 0 1 1 194 - 1 1 0 0 0 0 0 1
24 - 1 1 1 0 0 0 1 0 110 - 0 1 0 1 0 0 1 1 195 - 0 1 1 1 1 0 0 1
25 - 0 0 1 0 1 0 1 0 111 - 1 0 0 1 0 1 1 0 196 - 1 1 1 1 1 0 1 0
26 - 0 1 1 0 1 1 0 0 112 - 0 1 0 0 1 1 1 0 197 - 0 0 0 0 1 1 1 1
27 - 0 1 0 0 0 0 0 1 113 - 0 0 1 1 1 1 0 0 198 - 0 0 0 0 0 1 0 1
28 - 0 0 1 1 1 0 0 1 114 - 0 1 1 0 0 0 1 0 199 - 1 0 0 0 1 1 1 1
29 - 1 1 1 0 1 1 0 1 115 - 0 1 1 0 1 0 1 0 200 - 0 1 0 0 0 1 0 1
30 - 0 0 1 0 1 1 1 1 116 - 0 1 1 1 1 0 1 1 201 - 1 0 0 1 1 0 0 0
31 - 1 1 1 0 0 0 1 1 117 - 0 1 1 0 0 0 0 1 202 - 0 1 1 0 0 1 0 1
32 - 0 0 0 0 0 1 0 0 118 - 1 1 0 1 1 1 1 1 203 - 0 1 1 1 1 1 1 0
33 - 1 0 1 0 0 0 0 1 119 - 0 1 1 0 0 1 1 0 204 - 1 1 1 0 1 1 1 0
34 - 1 0 0 0 1 0 0 0 120 - 1 1 0 0 1 0 1 1 205 - 1 0 0 1 1 0 1 0
35 - 0 1 0 1 0 0 0 1 121 - 1 1 1 1 0 0 1 1 206 - 1 1 1 1 1 1 1 0
36 - 0 0 0 0 1 1 0 1 122 - 0 0 1 1 0 0 0 0 207 - 1 0 1 0 1 1 1 0
37 - 1 0 0 1 1 1 1 0 123 - 1 1 0 1 0 0 1 0 208 - 1 0 0 0 1 1 0 1
38 - 0 1 0 1 1 1 1 1 124 - 1 1 1 1 1 0 0 0 209 - 1 1 0 1 1 1 1 0
39 - 0 0 1 0 0 1 1 0 125 - 1 0 0 1 0 1 0 0 211 - 0 0 0 0 0 1 1 0
40 - 1 1 0 1 1 1 0 0 126 - 1 1 0 1 0 1 0 1 210 - 0 1 0 0 1 0 0 0
41 - 1 1 0 1 0 0 1 1 127 - 1 1 1 0 1 1 0 0 212 - 0 0 1 1 1 0 1 0
42 - 1 1 0 1 0 1 1 0 128 - 0 0 0 0 0 0 0 1 213 - 0 1 0 1 1 0 0 0
43 - 0 1 0 1 1 0 0 1 129 - 0 0 1 0 1 1 1 0 214 - 0 0 1 1 0 0 1 0
44 - 0 0 0 1 1 1 0 0 130 - 1 1 0 0 1 1 0 1 215 - 0 1 0 0 1 0 0 1
45 - 1 0 0 0 0 1 0 0 131 - 1 1 0 0 1 0 0 1 216 - 0 0 1 0 1 0 0 0
46 - 1 1 1 0 0 0 0 1 132 - 0 1 1 0 1 0 0 0 217 - 1 1 1 1 0 1 1 1
47 - 1 0 0 1 1 1 1 1 133 - 1 1 1 0 0 0 0 0 218 - 1 0 0 1 0 0 0 1
48 - 0 1 1 1 0 0 0 1 134 - 1 0 1 1 0 0 0 1 219 - 0 1 0 1 1 0 1 0
49 - 1 1 1 0 1 0 1 1 135 - 1 0 1 1 1 1 0 0 220 - 1 0 1 0 1 0 0 1
50 - 0 0 0 1 0 1 0 1 136 - 0 0 1 0 0 0 1 0 221 - 1 0 0 1 1 0 0 1
51 - 1 0 1 1 1 0 1 1 137 - 0 1 1 1 1 1 0 1 222 - 0 1 0 0 1 0 1 1
52 - 0 0 1 1 0 1 1 0 138 - 0 1 0 1 1 0 1 1 223 - 1 0 1 1 0 0 1 1
53 - 1 1 1 0 1 0 0 0 139 - 1 0 0 0 0 1 1 1 224 - 0 0 1 0 0 1 1 1
54 - 1 0 1 0 0 0 0 0 140 - 0 1 0 1 0 1 0 0 225 - 1 1 1 1 0 0 1 0
55 - 1 0 1 0 0 1 1 0 141 - 1 0 0 0 0 0 1 0 226 - 0 0 0 1 1 1 1 0
56 - 1 0 0 1 1 1 0 0 142 - 1 1 0 1 1 0 1 1 227 - 0 0 0 1 1 1 1 1
57 - 1 1 0 0 0 1 0 0 143 - 1 1 0 0 0 1 1 1 228 - 0 0 1 1 0 0 0 1
58 - 1 1 1 1 0 1 1 0 144 - 0 1 0 0 0 0 1 1 229 - 1 1 1 1 1 1 0 0
59 - 1 0 1 1 1 1 1 1 145 - 1 0 1 0 0 0 1 0 230 - 0 0 1 1 0 1 0 1
60 - 1 0 0 1 0 1 1 1 146 - 0 0 1 1 1 1 0 1 231 - 0 1 0 1 1 1 0 1
61 - 0 1 1 0 0 0 0 0 147 - 0 1 0 0 1 1 0 0 232 - 1 0 1 1 1 1 0 1
62 - 1 1 1 1 0 0 0 1 148 - 1 0 1 0 0 1 1 1 233 - 0 0 0 0 1 1 0 0
63 - 1 0 1 0 1 0 1 1 149 - 1 0 1 1 0 0 1 0 234 - 1 0 1 1 0 0 0 0
64 - 0 0 0 0 0 0 1 0 150 - 0 0 0 0 1 0 0 1 235 - 1 0 0 1 0 0 1 0
65 - 1 0 0 1 1 0 1 1 151 - 0 0 1 1 1 1 1 1 236 - 1 1 1 0 1 1 1 1
66 - 1 1 0 1 0 0 0 0 152 - 1 1 0 1 0 1 1 1 237 - 1 0 1 1 0 1 0 0
67 - 0 1 1 0 0 0 1 1 153 - 0 1 1 1 0 1 1 1 238 - 0 0 1 1 0 0 1 1
68 - 0 1 0 0 0 1 0 0 154 - 1 1 0 1 0 0 0 1 239 - 0 1 1 0 0 1 1 1
69 - 1 0 1 1 0 1 1 0 155 - 0 1 0 0 1 1 0 1 240 - 1 1 1 0 0 1 0 1
70 - 1 0 1 0 1 0 0 0 156 - 1 0 0 0 1 0 0 1 241 - 0 0 1 1 1 1 1 0
71 - 1 0 1 1 0 1 1 1 157 - 0 1 1 1 1 1 1 1 242 - 1 1 1 1 1 0 0 1
72 - 1 0 0 0 0 1 1 0 158 - 1 1 0 0 0 0 0 0 243 - 1 0 1 1 1 0 1 0
73 - 0 1 1 1 1 0 1 0 159 - 0 1 0 1 0 1 1 1 244 - 0 0 0 1 1 0 0 0
74 - 0 1 0 0 1 1 1 1 160 - 0 0 1 1 0 1 1 1 245 - 0 0 1 0 0 1 0 1
75 - 0 0 0 1 0 0 1 0 161 - 1 1 0 0 0 1 1 0 246 - 0 1 1 0 1 0 0 1
76 - 1 0 1 0 1 1 1 1 162 - 0 1 1 0 1 1 0 1 247 - 1 1 0 0 1 1 1 0
77 - 1 0 1 0 0 0 1 1 163 - 0 1 1 0 1 1 1 1 248 - 0 1 1 1 1 1 0 0
78 79 - 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 1 164 165 - 1 1 1 1 0 1 0 0 0 0 1 0 0 1 0 0 249 250 - 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0
Окончание табл. 1
80 - 0 1 1 0 1 1 1 0 I 166 - 0 1 0 0 0 1 1 1 I 251 - 1 0 0 1 1 1 0 1 I
81 - 1 1 0 1 1 0 1 0 167 - - 0 0 0 0 0 0 1 1 252 - 1 1 1 0 1 0 1 0
82 - 1 1 1 0 1 0 0 1 168 - 1 0 1 1 0 1 0 1 253 - 0 0 1 1 1 0 1 1
83 - 1 0 0 0 1 1 1 0 169 - 0 0 0 1 1 1 0 1 254 - 0 1 1 1 0 1 1 0
84 - - 0 1 1 0 1 0 1 1 170 - 1 0 1 0 1 0 1 0 255 - 1 1 1 1 1 1 1 1
85 - - 0 1 0 1 0 1 0 1
Примечание. В таблице 1 десятичные числа являются степенью а .
Структурная схема вычислительного устройства приведена на рисунке 1. На рисунке 1 схема контроля управляет процессами вычислений. По входу «Опер» задается вид операции: умножение, деление или сложение а! © а!.
Рис. 1 Вычислительное устройство в поле Галуа
Предположим, что на вход вычислительного устройства (рис. 1) для умножения последовательно подаются элементы, представленные в коде
8
ЛБСП, и они являются степенью элементов поля ОГ(2 ) у и ф в двоичнодесятичном коде. Если один из элементов или оба равны 0, то блок 1 (схема контроля на 0) выдает на выход устройства нулевую комбинацию. В противном случае они последовательно поступают на блок 3 (сумматор-вычитатель) через коммутатор 2.
Предположим,
у = 100010112 = 20910 ^ а6;
23
ф = 110000112 = 19510 ^ а .
8
После сложения и приведения по модулю 2 - 1 = 255 получим
220
у + ф = ¥с = 100010112 + 0000112 = 101010012 = 14910 ^ а .
Если необходимо произвести деление у /ф, то оно заменяется на вычитание, т.е.
у - ф = ¥в = 100010112 - 110000112 = 011100002 = 1410 ^ а11.
8
Для поля 0¥(2 ), элементы которого в нормальном базисе представлены в таблице 1, по формуле (8) рассчитаем элементы функции Зеха. Результаты расчетов представлены в таблице 2.
Таблица 2
8
Логарифм от функции Зеха для поля Галуа ОГ(2 )
255 - 0 1 - 157 2 - 59 3 - 53
68 - 51 69 - 215 70 - 159 71 - 210
72 - 195 73 - 93 74 - 234 75 - 29
44 - 31 45 - 116 46 - 226 47 - 62
76 - 108 77 - 192 78 - 127 79 - 203
80 - 218 81 - 245 82 - 87 83 - 48
84 - 125 85 - 170 86 - 110 87 - 82
88 - 62 89 - 185 90 - 232 91 - 10
92 - 197 93 - 73 94 - 122 95 - 21
96 - 166 97 - 248 98 - 99 99 - 98
100 - 249 101 - 230 102 - 136 103 - 64
104 - 7 105 - 163 106 - 6 107 - 65
108 - 76 109 - 40 110 - 86 111 - 246
112 - 134 113 - 23 114 - 251 115 - 178
116 - 45 117 - 37 118 - 4 119 - 221
120 - 9 121 - 233 122 - 94 123 - 183
4 - 118 5 - 173 6 - 106 7 - 104
56 - 67 57 - 253 58 - 150 59 - 2
124 - 176 125 - 84 126 - 25 127 - 78
128 - 206 129 - 154 130 - 214 131 - 52
48 - 83 49 - 177 50 - 252 51 - 68
132 - 60 133 - 227 134 - 112 135 - 144
136 - 102 137 - 141 138 - 175 139 - 184
140 - 63 141 - 137 142 - 165 143 - 22
144 - 135 145 - 231 146 - 186 147 - 223
148 - 213 149 - 155 150 - 58 151 - 158
40 - 109 41 - 171 42 - 190 43 - 55
152 - 216 153 - 34 154 - 129 155 - 149
156 - 254 157 - 1 158 - 151 159 - 70
160 - 181 161 - 28 162 - 235 163 - 105
164 - 174 165 - 142 166 - 96 167 - 229
64 - 103 65 - 107 66 - 30 67 - 56
168 - 250 169 - 24 170 - 85 171 - 41
172 - 220 173 - 5 174 - 164 175 - 138
176 - 124 177 - 49 178 - 115 179 - 32
180 - 209 181 - 160 182 - 20 183 - 123
52 - 131 53 - 3 54 - 38 55 - 43
184 - 139 185 - 89 186 - 146 187 - 238
188 - 244 189 - 219 190 - 42 191 - 39
28 - 161 29 - 75 30 - 66 31 - 44
60 - 132 61 - 47 62 - 88 63 - 140
192 - 77 193 - 26 194 - 241 195 - 72
24 - 169 25 - 126 26 - 193 27 - 19
196 - 198 197 - 92 198 - 196 199 - 11
Окончание табл. 2
200 - 243 201 - 239 202 - 205 203 - 79
20 - 182 21 - 95 22 - 143 23 - 113
204 - 17 205 - 202 206 - 128 207 - 35
208 - 14 209 - 180 210 - 71 211 - 242
32 - 179 33 - 15 34 - 153 35 - 207
212 - 12 213 - 148 214 - 130 215 - 69
216 - 152 217 - 16 218 - 80 219 - 189
220 - 172 221 - 119 222 - 237 223 - 147
12 - 212 13 - 224 14 - 208 15 - 33
224 - 13 225 - 36 226 - 46 227 - 133
228 - 247 229 - 167 230 - 101 231 - 145
232 - 90 233 - 121 234 - 74 235 - 162
16 - 217 17 - 204 18 - 240 19 - 27
236 - 8 237 - 222 238 - 187 239 - 201
240 - 18 241 - 194 242 - 211 243 - 200
8 - 236 9 - 120 10 - 91 11 - 199
244 - 188 245 - 81 246 - 111 247 - 228
248 - 97 249 - 100 250 - 168 251 - 114
252 - 50 253 - 57 254 - 156 255 - 0
36 - 225 37 - 117 38 - 54 39 - 191
Примечание. В таблице 2 слева приведены показатели степени поля Галуа, а справа - показатели степени Х(] -1) функции Зеха.
Теперь с помощью полученной таблицы 2 произведем сложение по модулю 2 элементов поля Галуа:
ау = а © а! .
Возьмем, например, а! = а235 = 100100102, а = а10 = 011100112;
ау = 100100102 © 011100112 = 111000012 = а46; і - і 10 - 235 - 225 30 ПП1П1111
а = а = а = а = 001011112,
а2(! -і) = 1 © а30 = 110100002 = а66,
у 235 66 46
т.е. а = а • а = а .
Приведенное на рисунке 1 вычислительное устройство позволяет осуществлять операции умножения, деления и сложения по модулю 2.
При выполнении операций умножения элементов поля Галуа А = а и В = а! показатели і и ! в двоично-десятичной форме последовательно подаются на схему 1 контроля 0, и если одна из степеней і, ! или обе равны 0, то на выход блока выдачи 5 поступает последовательность, состоящая из одних 0. Если і Ф 0 и ! Ф 0, то они проходят через коммутатор 2 на сумматор-вычитатель 3, где осуществляется сложение і + ! по модулю 2т - 1. Приведение по модулю производится путем обратной связи с выхода сумматора-вычитателя 3 на его вход. Сигнал обратной связи устанавливает его в 1. Результат сложения поступает на выход устройства через блок выдачи 5.
Вычитание показателей i - j при делении а! на а/ происходит аналогично сложению. При этом сумматор-вычитатель работает на вычитание по модулю 2m - 1. В качестве этого блока используется универсальное устройство на основе выпускаемой промышленностью микросхемы, работающей на сложение и вычитание.
Как отмечено выше, сложение по модулю 2 осуществляется на основе функции Зеха по формулам (7), (8) с помощью таблицы 2. Вначале вычисляется разность показателей i в двоично-десятичном коде в сумматоре-вычитателе 3. Предварительно по формуле (8) составляется таблица соответ-
8
ствия функции Z(j - i) показателям элементов поля GF(2 ), представленным в таблице 1. Таблица значений функции Z(j - i) записывается в постоянное ЗУ блока памяти логарифма Зеха 4. При подаче с выхода сумматора-вычитателя 3 на адресный вход блока 4 разности (i - j) на выходе блока 4 будет получено значение показателя Z(j - i). Это значение подается на вход сумматора-вычитателя 3 для сложения с показателем j. Полученная на выходе блока 3 сумма Z(j - i) + j выдается через блок выдачи 5 на выход вычислительного устройства.
В случае сложения по модулю 2 двух одинаковых элементов поля а Є а 1 = 0. Это состояние контролируется схемой 5 контроля 0 и а Є а 1 = 0, которая при сложении по модулю 2 осуществляет поразрядное сравнение i с j и при их равенстве на выход блока 5 выдается нулевая последовательность.
При операции деления aг I aг = а показатель 0 с выхода сумматора-вычитателя поступает на блок памяти логарифма Зеха 4, с выхода которого схема контроля через блок 5 выдает элемент поля 11111111.
Заключение
Таким образом, предложенный алгоритм вычислений в конечных полях Галуа GF(2m) позволяет обойтись без логарифмирования, что уменьшает объем вычислительных операций. Его целесообразно применять при небольшой степени расширения поля GF(2) (m = 8.. .16).
Список литературы
1. Wang, C. C. VLSI architecturer for computing Multiplications and inverses in GF(2m) I C. C. Wang, T. K. Truong, H. M. Shao [et al.] II IEEE Trans. - 1985. -С. 17-34.
2. Савельев, Б. А. Повышение быстродействия коррекции искажений в системах хранения информации I Б. А. Савельев II Качество информации : тез. докл. III Всерос. научн. техн. конф. - М. : МИИТ, 1992. - С. 64.
3. Mastrovito Edoardo D. VLSI Architectures for Computations in Galois Fields I Mastrovito Edoardo D. II Linkoping Sweden. - 1991. - С. 15-25.
4. Савельев, Б. А. Теоретические основы вычислений в полиномиальном базисе I Б. А. Савельев II Вычислительные системы и информационные технологии : меж-вуз. сб. науч. тр. - Вып. 3 (29) I под ред. В. И. Волчихина. - Пенза : Изд-во Пенз. гос. ун-та., 2005. - С.18-28.
5. А. с. 1.635.193 СССР, MKM, GO6F 15I31. Вычислительное устройство в поле Галуа GF(2n) I Б. А. Савельев, В. А. Зиновьев, А. В. Толов, А. М. Дудкин, Б. А. Ми-гунов. - 1991, Бюл. изоб. № 10.
6. Заявка 60-14434, Япония, МКИ 3 О 06 Б 11/10. Арифметическое устройство для действий на элементами конечного поля / Норихисе Сирота ; заявл. 30.12.83 ; опубл. 31.07.85.
7. А. с. 1.753.470 СССР, МКИ4, 006Б 7/49. Устройство для вычисления в поле Галуа ОБ(2п) / А. В. Толов, Б. А. Савельев, Н. Б. Залялов, С. Н. Комраков, Н. И. Басманова. - 1992, Бюл. изоб. № 29.
8. Савельев, Б. А. Вычисления в конечных полях с помощью ПЗУ / Б. А. Савельев // Информационные процессы и системы : межвуз. сб. науч. тр. - Вып. 1. - Пенза : Изд-во Пенз. гос. ун-та, 2000. - С. 45-54.
9. Вильямс, Мак. Теория кодов, исправляющих ошибки / Мак. Вильямс, Дж. Слоэн. - М. : Мир, 1979. - 744 с.