- •Глава 1. Информационная безопасность компьютерных систем
- •1.1. Основные понятия и определения
- •1.2. Основные угрозы безопасности асои
- •Пути реализации угроз безопасности асои
- •1.3. Обеспечение безопасности асои
- •1.4. Принципы криптографической защиты информации
- •1.5. Аппаратно-программные средства защиты компьютерной информации
- •Физиологические параметры человека (отпечатки пальцев, рисунок радужной оболочки глаза и т.П.) или особенности поведения человека (особенности работы на клавиатуре и т. П.).
- •Системы "прозрачного" шифрования;
- •Системы, специально вызываемые для осуществления шифрования.
- •Глава2. Традиционные симметричные криптосистемы
- •2.1. Основные понятия и определения
- •Соответствие между русским алфавитом и множеством целых
- •2.2. Шифры перестановки
- •Оирм еосю втаь лгоп
- •2.3. Шифры простой замены
- •Ассоциативность. Оба способа заключения в скобки произведения подстановок щп2пз.
- •Существование единичного элемента. Подстановка 5, определенная как
- •Существование обратных элементов. Для каждой подстановки я имеется взаимно однозначно определенная обратная подстановка, обозначаемая я-1, которая удовлетворяет соотношению:
- •Последовательность биграмм открытого текста преобразуется с помощью шифрующей таблицы в последовательность биграмм шифртекста по следующим правилам:
- •Заменяя в биграммах шифртекста числа на соответствующие буквы согласно табл.2.2, получаем 12-грамму шифртекста
- •2.4. Шифры сложной замены
- •Глава 3. Современные симметричные криптосистемы
- •Глава 9. Защита информации 227
- •Глава 4. Асимметричные криптосистемы
- •Глава 5. Идентификация и проверка подлинности
- •Глава 6. Электронная цифровая подпись
- •6.1. Проблема аутентификации данных и электронная цифровая подпись
- •Глава 7. Управление криптографическими ключами
- •Глава 8. Методы и средства защиты от удаленных атак через сеть Internet
- •Глава 9. Защита информации
- •9.6. Универсальная электронная платежная система ueps
- •Распределение ключей и паролей по картам банка, торговца и клиента
- •9.7. Обеспечение безопасности электронных платежей через сеть Internet
- •Глава 10. Отечественные аппаратно- программные средства криптографической защиты информации серии криптон
- •10.1. Концептуальный подход фирмы анкад к защите информации в компьютерных системах и сетях
- •Аппаратные устройства криптографической защиты данных серии криптон
- •10.2. Основные элементы и средства защиты от несанкционированного доступа
- •Устройства для работы со смарт-картами
- •10.3. Системы защиты информации от несанкционированного доступа
- •Scat-200 или sa-101i коннектор
- •Программные средства скзи серии Crypton
- •11.1. Абонентское шифрование и электронная цифровая подпись
- •Глава 9. Защита информации 227
- •Крипто- маршрутизатор
- •Устройство защиты от нсд
- •Устройство защиты от нсд I
- •Внутренний внешний фильтр фильтр
- •Глава 12. Обеспечение безопасности платежных систем на основе смарт-карт и программно- аппаратных средств фирмы анкад
- •Глава 9. Защита информации 227
- •Зубанов ф. Windows nt-броня крепка // Конфидент.-1996.- №2.-с. 31-38.
- •Глава 9. Защита информации 227
Глава 9. Защита информации 227
В ЭЛЕКТРОННЫХ ПЛАТЕЖНЫХ СИСТЕМАХ 227
9.1. Принципы функционирования электронных платежных систем 228
9.2. Электронные пластиковые карты 234
9.3. Персональный идентификационный номер 240
9.4. Обеспечение безопасности систем POS 243
9.5. Обеспечение безопасности банкоматов 247
9.6. Универсальная электронная платежная система UEPS 253
9.7. Обеспечение безопасности электронных платежей через сеть Internet 263
Основные методы защиты информации 264
Особенности функционирования протокола SET 265
Технологические решения для электронной торговли 272
Полностью контролируемые компьютерные системы 274
Частично контролируемые компьютерные системы 278
10.2. Основные элементы и средства защиты от несанкционированного доступа 279
Устройства криптографической защиты данных 281
серии КРИПТОН 281
Устройства для работы со смарт-картами 282
Программные эмуляторы функций шифрования устройств КРИПТОН 284
10.3. Системы защиты информации от несанкционированного доступа 287
Система криптографической защиты информации от НСД КРИПТОН-ВЕТО 287
4- 288
Комплекс КРИПТОН-ЗАМОК для ограничения доступа к компьютеру 292
Система защиты конфиденциальной информации 295
Secret Disk 295
Система защиты данных Crypton Sigma 296
11.1. Абонентское шифрование и электронная цифровая подпись 303
Программы АШ и ЭЦП для MS-DOS 303
пароль; 303
Программа электронной цифровой подписи Crypton Sign. 305
11.2. Пакетное шифрование 322
11.3. Защита компонентов ЛВС от НСД Защита абонентских пунктов 327
11.4. Технология работы с ключами 334
11.5. Программные продукты ЗАСТАВА фирмы "ЭЛВИС+" для защиты корпоративной сети 336
12.2. Основные принципы обеспечения безопасности платежной системы 346
ЭЛЕМЕНТЫ ТЕОРИИ ЧИСЕЛ Модулярная арифметика 358
Алгоритм Евклида для нахождения наибольшего общего делителя 361
Вычисление обратных величин 363
Расширенный алгоритм Евклида 369
(щ, и2, и3), 369
Китайская теорема об остатках 370
Квадратичные вычеты 372
Вычисления в конечных полях 373
^ Р = q . 373
Список литературы 379
Оглавление 386
Если НОД (а, п)=1, тогда существует обратное число а-1, 0<а"1<п, такое, что
а * а"1 И (mod п).
Действительно, a*i(modn) является перестановкой 0,1,...,п-1, поэтому существует i, такое, что
а * i =1(mod п).
Как уже отмечалось, набор целых чисел от 0 до п-1 называют полным набором вычетов по модулю п. Это означает, что для любого целого числа а(а>0) его вычет r=a(modn)-3To некоторое целое число в интервале от 0 до п-1.
Выделим из полного набора вычетов подмножество вычетов, взаимно простых с п. Такое подмножество называют приведенным набором вычетов.
Пример. Пусть модуль п =11 — простое число. Полный набор вычетов по модулю 11
{0,1, 2 10}.
При формировании приведенного набора вычетов из них удаляется только один элемент-0. Приведенный набор вычетов по модулю 11 имеет 11-1=10 элементов.
Вообще приведенный набор вычетов по модулю простого числа п имеет п-1 элементов.
Пример. Пусть модуль п=10. Полный набор вычетов по модулю п=10
{0,1, 2, 3, 4, 5, 6, 7, 8, 9}.
Из них только 1, 3, 7, 9 не имеют общего сомножителя с числом 10. Поэтому приведенный набор вычетов по модулю 10 равен {1, 3, 7, 9}. При формировании этого приведенного набора были исключены элементы:
0 (1 элемент), кратные 2 (4 элемента), кратные 5 (1 элемент),
т.е. всего шесть элементов. Вычитая их из 10, получаем 10-1-4-1=4, т.е. четыре элемента в приведенном наборе.
Для произведения простых чисел p*q=n приведенный набор вычетов имеет (р—1)(q—1) элементов. При n = p*q=2*5=10 число элементов в приведенном наборе
(p-1)(q-1) = (2-1)(5-1) = 4.
Пример. Приведенный набор вычетов по модулю 27= З3 имеет 18 элементов:
{1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17, 19, 20, 22, 23, 25, 26}.
Из полного набора вычетов исключены элементы, кратные 3 (всего девять элементов).
Для модуля в виде простой степени пг приведенный набор вычетов имеет п' "1(п-1) элементов.
При п = 3, г=3 получаем 35"'(3-1)=32*2=18.
Функция Эйлера ф(п) характеризует число элементов в приведенном наборе вычетов (табл. П.1).
Таблица П.1
Модуль п |
Функция 1,1 (п) |
п - простое |
п-1 |
п2 |
п (п — 1) |
п' |
пг~1(п -1) |
р * q (р, q - простые) |
(p-1)(q -1) |
г fjpj®' (Pi - простые) |
ПРгвМ(Р:-1) |
1=1 |
|
Иначе говоря, функция ср(п)-это количество положительных целых, меньших п, которые взаимно просты с п [123].
Малая теорема Ферма: если п - простое и НОД (а, п)=1, то
an_1Hl(mod п).
Согласно обобщению Эйлером малой теоремы Ферма имеем: если НОД(а,п)=1, то
a^lOnod п).
Если п-простое число, то предыдущий результат, учитывая, что ф(п)=п-1, приводится к виду (малой теоремы Ферма)
а"-1 = 1 (mod л).
Основные способы нахождения обратных величин
a~1 = 1(mod п).
Проверить поочередно значения 1,2,...,п-1, пока не будет найден a"1sl(modn), такой, что a*a_1(modn)=1.
Если известна функция Эйлера ф(п), то можно вычислить
a"1 (mod n)ea"(l°"1(mod п),
используя алгоритм быстрого возведения в степень.
Если функция Эйлера ф(п) не известна, можно использовать расширенный алгоритм Евклида.
Проиллюстрируем эти способы на числовых примерах. 1. Поочередная проверка значений 1,2,...,п-1, пока не будет найден x=a"1(modn), такой что a*x=1(modn).
Пусть п=7, а=5. Требуется найти x=a"1(modn).
a*x=1(modn) или 5*x = 1(mod7). п-1=7-1 = 6.
Получаем x=5"1(mod7)=3. Результаты проверки сведены в табл. П.2.
Таблица П.2
x |
5»х |
5 • х (mod 7) |
1 |
5 |
5 |
2 |
10 |
3 |
3 |
15 |
1 |
4 |
20 |
6 |
5 |
25 |
4 |
6 |
30 |
2 |
Алгоритм Евклида можно обобщить способом, который имеет большое практическое значение. При этом способе во время вычисления НОД(а,Ь) можно попутно вычислить такие целые числа Ui и и2, что
а * щ + b * u2 = НОД (а, Ь).
Это обобщение (расширение) алгоритма Евклида удобно описать, используя векторные обозначения [45].
Расширенный алгоритм Евклида
При заданных неотрицательных целых числах а и b этот алгоритм определяет вектор
(Ui, u2, u3),
такой, что
а * Ui + b * u2 = u3 = НОД (a, b).
В процессе вычисления используются вспомогательные векторы ^Лг.Уз), (t1.t2.t3). Действия с векторами производятся таким образом, что в течение всего процесса вычисления выполняются соотношения
а * ti + b * t2 = t3, a * Ui + b * u2 = u3, a * Vi + b * v2 = v3.
Для вычисления обратной величины a~1(modn) используется частный режим работы расширенного алгоритма Евклида, при котором b=n, НОД(а,п)=1, и этот алгоритм определяет вектор
(щ, и2, и3),
такой, что
u3 = 1, а * Ui + п * и2 = НОД (а, п) = 1, (а * Ui + п * u2) mod п = а * u^mod п) = 1, a~1(mod п) = u^mod п).
Шаги алгоритма:
Начальная установка. Установить (u1t u2, u3):=(0,1, п),
(Vi, v2, v3): = (1, 0, a).
u3 = 1?. Если u3 = 1, то алгоритм заканчивается.
Разделить, вычесть. Установить q:=[u3/v3]. Затем установить
(ti, t2, t3): = (u1f u2, u3) - (v-i, v2, v3) * q, (u1t u2, u3): = (Vi, v2, v3), (Vi, v2, v3): = (t,, t2, t3). Возвратиться к шагу 2.
Пример.Заданы
модуль п=23 и число а = 5. Найти обратное
число a"1
(mod23), т.е. x=5"1(mod23).
Используя
расширенный алгоритм Евклида, выполним
вычисления, записывая результаты
отдельных шагов в табл. П.З.
Таблица
П.З
q
"1
"2
U2
V,
V2
V3
— .
0
1
п
= 23
1
0
a
= 5
4
1
0
5
-4
1
3
1
-4
1
3
5
-1
2
1
5
-1
2
-9
2
1
-
-9
2
1
При
и3 = 1, и, =—9, и2= 2
(а
* u, + п * и2) mod
п = (5 * (-9) + 23 * 2) mod 23 = =
5* (-9) mod 23=1, a"'
(mod п) = 5"' (mod 23) = (-9)
mod 23 = (-9 + 23) mod
23 = 14. Итак, x = 5"'
(mod 23) s14 (mod 23)
=14.
Для решения более сложных сравнений
a*x = b(modn), т.е. b*1, х=? используется следующий прием. Сначала решают сравнение
а * у И (mod п),
т.е. определяют
у = a"1(mod п),
а затем находят
х = a~1b (mod п) = у * b (mod n). Пример. Найти х для сравнения
5 * х s 9 (mod 23).
Сначала решаем сравнение
5 * у И (mod 23). Получаем у = 5"'(mod 23) =14. Затем находим
х = 5"' * 9 (mod 23) =14 * 9 (mod 23) =126 (mod 23) е 11 (mod 23),
х = 11.
Китайская теорема об остатках
Любое неотрицательное целое число, не превосходящее произведения модулей, можно однозначно восстановить, если известны его вычеты по этим модулям. Этот результат был известен еще в древнем Китае и носит название китайской теоремы об остатках. Теорема была предложена китайским математиком первого века Сун Це. Китайская теорема об остатках является мощным криптографическим инструментом.
Китайская теорема об остатках формулируется следующим образом.
Пусть m-i, m2,..., mt-модули (целые числа, большие 1), которые являются попарно взаимно простыми, т.е. НОД(т„ rrij)=1 при i * j. Пусть a-i, а2,..., at-тоже целые числа, 0 < а,< т,. Пусть М=т1*т2*...*т1-произведение всех гд. Обозначим Mi = M/mi.
И пусть Ni будет обратным к Mj(modmi), i=1,2,...,t, т.е. Mj*NjE= И (mod mi).
Так как НОД(М*,гд)=1, то обратный элемент Nj существует и легко находится из алгоритма Евклида из соотношения
Mj * Nj +mi * П| =1, i = 1, 2, ..., t.
Сравнения x=aj(modmj), i=1,2,...,t, имеют в интервале [О, М-1] единственное общее решение
i
х =Eai * Nj * Mj (mod M).
i=1
Рассмотрим частный случай. Пусть М=т!*т2, где ггц, т2- взаимно простые числа. Тогда для произвольных целых a^mi и а2<т2 существует единственное число х, х<М, такое, что
xsa^modm!) и xsa2(modm2).
Чтобы найти значение решения х, сначала используют алгоритм Евклида для вычисления значений Ni и N2, таких, что
N-i * Мт = 1 (mod mO и N2 * М2 = 1 (mod m2).
. .. М m/m, М
Здесь М^—= — -=m2; М2= — = пн
т1 т1 т2
Затем вычисляют значение
х = (ai * N-i * Mi + а2 * N2 * M2)(mod М).
Алгоритм нахождения решения системы сравнений, использующий Китайскую теорему об остатках
{возврат хе[0, М -1], такого что xmod mi = ai(1<i<t)}
begin
for i: = 1 to t do
Nj: = inv(Mj mod mj, mj); x: = 0;
for i: = 1 to t do x : = [x + Mj * Nj * aj] mod n; crt: = x {crt - результат}
end
Пример. Решить систему из двух сравнений
xsl(mod 5), х ее 10 (mod 11)
а нвйти общее решение х по модулю 55. Здесь mi=5; nrii=11; M=m1*m2=5*11=55; ai=1; a2=10; м1=МЛп1=т2=11; М2=МЛп2=т1=5.
Найдем значения N, и N2, обратные к М, и М2 соответственно по modm, и ■nod m2:
М, * N, =1 (mod m,), 11 * N, И (mod 5) => N, =1, M2 * N2 si (mod m2), 5 * N2 (mod 11) => N2 = 9. Вычисляем общее значение
x = (a,M,N, + a2M2N2)(mod N) = (1 *11 *1 +10 * 5 * 9)(mod 55) = = (11 + 450)(mod 55) = 461 (mod 55) = 21 (mod 55).
Итак, x=21(mod 55).
Квадратичные вычеты
Рассмотрим некоторое простое р>2 и число а<р. Если число а сравнимо с квадратом некоторого числа х по модулю р, т.е. выполняется сравнение x2sa(modp), тогда а называют квадратичным вычетом по модулю р. В противном случае а называют квадратичным невычетом по модулю р.
Если а-квадратичный вычет, сравнение x2 = a(modp) имеет два решения: +х и -х, т.е. а имеет два квадратных корня по модулю р.
Все квадратичные вычеты находят возведением в квадрат элементов 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), б2 = 36=1 (mod 7).
Заметим, что каждый квадратичный вычет появляется в этом списке дважды. Не существует никаких значений х, которые удовлетворяли бы любому из следующих уравнений:
x2 = 3(mod 7),
х2 = 5(mod 7),
x2 = 6(mod 7).
Числа 3, 5 и 6 - квадратичные невычеты по модулю 7. Можно доказать, что существует точно (р-1)/2 квадратичных вычетов по модулю р и (р—1)/2 квадратичных невычетов по модулю р.
Если а-квадратичный вычет по модулю р, то а имеет точно два квадратных корня: один корень между 0 и (р-1)/2, другой корень между (р-1)/2 и (р-1).
Один из этих квадратных корней также является квадратичным вычетом по модулю р; он называется главным квадратным корнем.
Вычисление квадратных корней при р=7 представлено в табл.П.4.
Таблица П.4
х2 я a (mod 7) |
Корни |
|
Xl |
*2 |
|
12э i(mod 7) |
+1 |
-1 = -1 + 7 = 6 |
22 = 4(mod 7) |
+2 |
-2 = -2 + 7 = 5 |
З2 a 2(mod 7) |
+3 |
-3 = -3 + 7 = 4 |
Если п - произведение двух простых р и q, т.е. n=p*q, то существуют точно
(p-1)(q-1)/4
квадратичных вычетов по модулю п, взаимно простых с п. Например, по модулю 35(р=5, q=7, л = 5*7=35) существуют (5 - 7)(7 -1)_4*6_q 4 4
квадратичных вычетов: 1, 4, 9,11,16, 29, взаимно простых с 35.
Вычисления в конечных полях
Поле F есть множество, на котором определены операции сложения и умножения, удовлетворяющие требованиям: ассоциативности, коммутативности, дистрибутивности, существования аддитивного 0 и мультипликативной 1, аддитивных обратных и мультипликативных обратных для всех элементов за исключением 0.
Конечное поле F(p) с конечным числом р элементов играет важную роль в криптографии. В общем случае число элементов
и. -
^ Р = q .
где q-некоторое простое число и п>1. Такие конечные поля называют полями Галуа и обозначают GF(q") или GF(q) при п=1. (Эва- рист Галуа-французский математик начала XIX века.) Многие криптосистемы базируются на полях Галуа GF(q), где q-большое простое число. 360
Пример. Поле Галуа GF(5) имеет элементы 0,1, 2, 3, 4 и описывается таблицами сложения и умножения (табл. П.5):
Таблица П.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 |
x |
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-простое число, то число ae[1,q-1] является взаимно Простым с q, и поэтому обратный элемент а"1 имеет единственное ^значение. Тем самым однозначно определяется операция деления.
Обозначим через GF*(q) множество всех ненулевых элементов поля GF(q). Некоторый элемент g из GF*(q) называют образующим или порождающим элементом GF*(q), если для всех а из ;GF*(q) найдется такое целое х, что gx=amodq. Всего имеется *<p(q-1) образующих элементов д. Число х называют дискретным логарифмом элемента а по основанию g и модулю q. Вычисление •дискретных логарифмов (когда заданы д, а и q) примерно такая же труднорешаемая задача, как и разложение на множители.
Еще один тип поля Галуа, используемый в криптографии, основывается на арифметике по модулю неприводимых многочленов степени п; чьи коэффициенты-целые числа по модулю q, где q- простое. Эти поля Галуа обозначают как GF(qn). Они имеют элементы, которые описываются многочленами степени не выше (п-1) в форме
а (х) = an_iXn"1 +... + aiX + а0.
Каждый элемент а(Х) является вычетом по модулю р(Х), где р(Х) - неприводимый многочлен степени п (т.е. р(Х) нельзя разложить на сомножители-многочлены степени меньше п).
Арифметические действия над коэффициентами ai выполняются по модулю q, а наивысшая степень X равна (п-1), так как выполняется приведение по модулю многочлена р(Х), имеющего старшую степень п.
Особый интерес представляют поля GF(2n). Здесь коэффициентами а, являются 0 и 1. Поэтому многочлен а(Х) степени не выше (п-1) можно представить как вектор из п двоичных цифр:
an-ian-2 ■•• а^о.
Каждый из n-битовых векторов соответствует конкретному элементу поля GF(2").
Например, поле Галуа GF(23) имеет элементы:
Многочлены Двоичная форма
ООО
001 х 010 х +1 011 х2 100 х2 + 1 101 х2+х 110 х2 + х +1 111
Организация вычислений в полях Галуа предполагает знание некоторых свойств многочленов и их корней в двоичном поле GF(2). Кратко приведем некоторые из них:
Свойство 1. Ненулевые элементы поля GF(2n) являются корнями обобщенного многочлена X2 "1+1.
Свойство 2. Каждый многочлен р(Х) степени п, неприводимый
над полем GF(2), является делителем двучлена X2 ~1+1, и каждый
делитель двучлена X2 ~1+1, неприводимый над полем GF(2), имеет степень, равную п и менее.
Свойство 3. Все элементы поля GF(2n) можно получить как совокупность остатков от деления 100...00 на неприводимый многочлен р(Х), входящий в разложение двучлена (X2 ~1+1). Эти остатки-
корни двучлена (X2 ~1+1), т.е. обращают его в нуль. Число остатков равно (2п-1).
Свойство 4. В поле GF(2n) существует примитивный элемент а, такой, что каждый ненулевой элемент поля GF(2n) может быть представлен как некоторая степень а, т.е. мультипликативная группа GF(2n) является циклической.
Пример. Определение элементов а, поля GF(24). Согласно свойству 1 ненулевые элементы поля GF(24) являются корнями обобщенного двучлена (X2 ""+1) = (Х15+1). Двучлен (Х,5+1) можно представить в виде произведения неприводимых многочленов - сомножителей:
(X15 +1) = Р(Х') * Р(Х2) * Р,(Х4) * Р2(Х4) * Р3(Х4),
где
P(X1) = (X +1), Р(Х2) = X2 + X +1, P,(X4) = X4 + X +1, Р2(Х4) = Х4+Х3+1, Рз(Х4) = Х4+Х3+Х2 + Х+1.
В соответствии со свойством 3 вычислим элементы а, поля GF(24) как совокупность остатков отделения 100...00 на неприводимый многочлен Pi(X4)=X4+X+1.
Процедура определения остатков Делят на Р,(Х4)=Х4+Х+1<-»10011 единицу с возрастающим числом нулей, т.е.
делят одночлены X', где j = 0,1,2,3 на многочлен (Х4+Х+1). Степени одночленов
Х°, X1, X2, X3 меньше степени многочлена Pi(X4), поэтому первые четыре остатка от деления на Р,(X4) равны делимым, т.е. одночленам X , X1, X2, Х°. Для одночлена X4 <->10000 получаем остаток
000011 00 1 1 001 ll 0 0 1 1 X4.
Для одночлена X5 <->100000 получаем остаток
Ш1 0000011 00 1 1 W1 0 01 1 I
0 1 1 0 о- X5.
Схема вычисления остатков:
00000000000000 0| 10011 W1 0011 I
Х4<-> m 0 0 1 1 0 0 0 10 0 1 1 X7 д\ 10 110 W 10 0 11 Х8^ ж 0 1010 0 ® ' 1 00 1"1 Х10^ m 0 1 1 1 0 0
® "looli
X12 ф 11110
"16011"
X13 <-> д\ 11010 ® 100 11 X14 д\ 10010
® Tb'oTi
Х15^ 0 0 0 1 (= Х°).
Вычисленные остатки и нулевые элементы ао-аи поля Галуа GF(24) сведены в табл. П. 6.
Таблица П.6
X' |
Остаток |
ОС, |
Х° |
000 1 |
а0 |
X' |
00 10 |
а( |
X2 |
0 100 |
аг |
X3 |
1000 |
аз |
V4 |
0011 |
С£4 |
х° |
0 110 |
а5 |
X6 |
1100 |
|
X7 |
10 11 |
0С7 |
Xs |
0 10 1 |
а ь |
X9 |
10 10 |
а9 |
X10 |
0 111 |
а)0 |
X" |
1110 |
- an |
X12 |
1111 |
ai2 |
X13 |
110 1 |
an |
X14 |
1 001 |
ак |
Поле Галуа GF(24) построено как поле многочленов с коэффициентами 0 и 1 по модулю неприводимого многочлена:
Р(Х4)=Х4 + Х+1<->100 11.
В поле Галуа GF(2n) определены четыре алгебраические операции. Операции сложения и вычитания выполняются как операции поразрядного сложения по модулю 2; операция умножения
элементов поля выполняется как умножение соответствующих многочленов с приведением по модулю неприводимого многочлена Р(Х), т.е. многочлена, по модулю которого построены элементы поля GF(2n).
Пример. а5=0110, а6=1100, а5+аб=1010, так как
m 0 1 1 0 Ш 1 100 10 10.
Пример. cti4 =1001,
ан ■ ан= a2H= сиз no mod Р,(Х4) <->1 0 0 1 1.
1001 /Т\ 1 000 00 11 1 00 1 1
1001 Ш1 001 1 I
ш 1001 an «-» 110 1.
100 1
1 00000 1.
Чтобы выполнить деление элемента b на элемент а в поле GF(2n) по модулю Р(Х), сначала находят обратный элемент а-1 (mod Р(Х)), а затем вычисляют
b * а"1 (mod Р(Х)).
Каждый двоичный вектор длиной п, исключая 0, является взаимно простым с неприводимым многочленом Р(Х) независимо от значения Р(Х). Поэтому число вычетов, взаимно простых с Р(Х), равно ф(Р(Х))=2п-1 (расширение функции Эйлера для многочленов). Поэтому
а-1 _ ач>(Р(х))-1 mQd р(Х) _ a2n-2mod р(Х)
Пример. Пусть а=100 и Р(Х)=1011 в поле GF(23).
а"1 =10023"2 (mod 1011) =1006 (mod 1011) =1002 * ЮО4 (mod 1011).
ЮО2 (mod 1011) =10000 ©10110=110 1 0 0 0 0! 1011 или W 10 11 !
1.1.0
ЮО4 (mod 1011) =1102 (mod 1011) = 010
1 1 0 1 1 0
110
0 10 1
00
10 100
10
11
ffi1 100 w 10 11
111
Итак, a"1=111.
11
о 1 о 1 од 10 11
10
11 I
дч 1 1 1 0 ol 1 О 1 1
01 1 I 01 о Ш1 01 1 .00.1
т.е. а * a~1(mod 1011)=1.
Достоинства вычислений в поле GF(2n):
Все элементы поля Галуа имеют конечный размер, деление элементов не имеет каких-либо ошибок округления.
Сложение и вычитание элементов поля GF(2n) не требует деления на модуль.
Алгоритмы вычислений в поле GF(2n) допускают параллельную реализацию.
Для поля GF(2n) обычно применяют в качестве модуля трехчлен Р(Хп)=Хп+Х+1.
Длинная строка нулей между коэффициентами при X" и X .обеспечивает более простую реализацию быстрого умножения (с приведением по модулю). Трехчлен Р(ХП) должен быть неприводимым и примитивным.
Трехчлен Р(Хп)=Хп+Х+1 является примитивным для следующих значений п(п<1000):
1, 3, 4, 6, 9, 15, 22, 28, 30, 46, 60, 63, 127, 153, 172, 303, 471, 532, 865, 900.
Список литературы
