Материал: Криптографические методы обеспечения информационной безопасности. методические указания к практическим занятиям по дисциплине Криптографические методы и средства ИБ. Радько Н.М., Мокроусов А.Н

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

При разумном накоплении промежуточных результатов потребуется только шесть умножений:

(((((((a2 mod n) * a) mod n)2 mod n)2 mod n)2 mod n) * a) mod n

Этот метод уменьшает трудоемкость вычислений до 1,5хк операций в среднем, где к - длина числа в битах. Поскольку многие алгоритмы шифрования основаны на возведении в степень по модулю n , целесообразно использовать алгоритмы быстрого возведения в степень.

Контрольные вопросы:

  1. Как можно выполнить вычисление степени числа а по модулю n?

  2. В чём смысл гомоморфного отображения из кольца целых в кольцо целых?

  3. Что такое приведение по модулю?

17

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №7

ВЫЧИСЛЕНИЯ В КОНЕЧНЫХ ПОЛЯХ

Поле F есть множество, на котором определены операции сложения и умножения, удовлетворяющие требованиям: ассоциативности, коммутативности, дистрибутивности, существования аддитивного 0 и мультипликативной 1, аддитивных обратных и мультипликативных обратных для всех элементов за исключением 0 [2,7].

Конечное поле F (p) с конечным числом р элементов играет важную роль в криптографии. В общем случае число элементов

P = qn,

где q - некоторое простое число и n≠1. Такие конечные поля называют полями Галуа и обозначают GF (qn) или GF (q) при n=1. (Эварист Галуа - французский математик начала XIX века.) Многие криптосистемы базируются на полях Галуа GF (q), где q - большое простое число.

Пример. Поле Галуа GF (5) имеет элементы 0, 1, 2, 3, 4 и описывается таблицами сложения и умножения (табл.6):

Таблица 6

+

0

1

2

3

4

X

1

2

3

4

0

0

1

2

3

4

1

1

2

3

4

1

1

2

3

4

0

2

2

4

1

3

2

2

3

4

0

1

3

3

1

4

2

3

3

4

0

1

2

4

4

3

2

1

4

4

0

1

2

3

 

 

 

 

 

Если q - простое число, то число a є [1, q - 1] является взаимно простым с q, и поэтому обратный элемент а-1 имеет единственное значение. Тем самым однозначно определяется операция деления.

О

18

бозначим через GF *(q) множество всех ненулевых элементов поля GF (q). Некоторый элемент g из GF *(q) называют образующим или порождающим элементом GF *(q), если для всех а из GF*(q) найдется такое целое х, что gx = a mod q. Всего имеется φ(q-1) образующих элементов g. Число х называют дискретным логарифмом элемента а по основанию g и модулю q. Вычисление дискретных логарифмов (когда заданы g, а и q) примерно такая же труднорешаемая задача, как и разложение на множители.

Еще один тип поля Галуа, используемый в криптографии, основывается на арифметике по модулю неприводимых многочленов степени n, чьи коэффициенты - целые числа по модулю q, где q - простое. Эти поля Галуа обозначают как GF (qn). Они имеют элементы, которые описываются многочленами степени не выше (n-1) в форме

а (х) = an-1Xn-1 + ... + a1, Х + а0.

Каждый элемент а (Х) является вычетом по модулю р(Х), где р(Х)- неприводимый многочлен степени n (т. е. р(Х) нельзя разложить на сомножители - многочлены степени меньше n).

Арифметические действия над коэффициентами ai выполняются по модулю q, а наивысшая степень X равна (n-1), так как выполняется приведение по модулю многочлена р(Х), имеющего старшую степень n.

Особый интерес представляют поля GF (2n). Здесь коэффициентами а, являются 0 и 1. Поэтому многочлен а(Х) степени не выше (n-1) можно представить как вектор из n двоичных цифр:

an-1an-2 ... a1a0

Каждый из n-битовых векторов соответствует конкретному элементу поля GF (2n).

Например, поле Галуа GF (23) имеет элементы:

Таблица 7

Многочлены

Двоичная форма

0

000

1

001

x

010

x + 1

 

011

x2

100

x2 + 1

101

x2 + x

110

x2 + x + 1

111

Организация вычислений в полях Галуа предполагает знание некоторых свойств многочленов и их корней в двоичном поле GF (2). Кратко приведем некоторые из них:

С

19

войство 1
. Ненулевые элементы поля GF (2n) являются корнями обобщенного многочлена .

Свойство 2. Каждый многочлен р(Х) степени n, неприводимый над полем GF (2), является делителем двучлена , и каждый делитель двучлена , неприводимый над полем GF (2), имеет степень, равную n и менее.

Свойство 3. Все элементы поля GF (2n) можно получить как совокупность остатков от деления 100...00 на неприводимый многочлен р (Х), входящий в разложение двучлена ( ). Эти остатки - корни двучлена ( ), т. е. обращают его в нуль. Число остатков равно (2n-1).

Свойство 4. В поле GF (2n) существует примитивный элемент α, такой, что каждый ненулевой элемент поля GF (2n) может быть представлен как некоторая степень α, т. е. мультипликативная группа GF (2n) является циклической.

Пример. Определение элементов αi поля GF (24). Согласно свойству 1 ненулевые элементы поля GF (24) являются корнями обобщенного двучлена ( ) = (X15+1). Двучлен (X15+1) можно представить в виде произведения неприводимых многочленов - сомножителей:

(X15+1) = P(Х1) * Р (Х2) * Р1(Х4) * Р2(Х4) * Р3(Х4),

где

P(Х1) = (X+1), Р(Х2) = Х2 + X + 1,

Р1(Х4) = Х4 + X + 1, Р2(Х4) = Х4 + Х3 +1,

Р3(Х4) = Х4 + Х3 + Х2 + X + 1

В соответствии со свойством 3 вычислим элементы αi поля GF (24) как совокупность остатков отделения 100...00 на неприводимый многочлен Р1(Х4) = Х4 + X + 1.

Процедура определения остатков

Делят на Р1(Х4) = Х4 + X + 1 <--> 10011 единицу с возрастающим числом нулей, т. е. делят одночлены Xj, где j = 0, 1, 2, 3 ... на многочлен (Х4 + X + 1). Степени одночленов Х0, Х1, Х2, Х3 меньше степени многочлена Р1(Х4), поэтому первые четыре остатка от деления на Р1(Х4) равны делимым, т. е. одночленам Х0, Х1, Х2, Х3. Для одночлена Х4 <--> 10000 получаем остаток

Для одночлена Х5 <--> 100000 получаем остаток

С

20

хема вычисления остатков:

Вычисленные остатки и нулевые элементы α0 - α14 поля Галуа GF (24) сведены в табл.8.

Таблица 8

Xi

Остаток

αi

Х0

0001

α0

X1

0010

α1

X2

0100

α2

X3

1000

α3

X4

0011

α4

X5

0110

α5

X6

1100

α6

X7

1011

α7

X8

0101

α8

X9

1010

α9

X10

0111

α10

X11

1110

α11

X12

1111

α12

X13

1101

α13

X14

1001

α14

Поле Галуа GF (24) построено как поле многочленов с коэффициентами 0 и 1 по модулю неприводимого многочлена:

Р

21

(Х4)=Х4 + Х + 1<--> 10011.

В поле Галуа GF (2n) определены четыре алгебраические операции. Операции сложения и вычитания выполняются как опера­ ции поразрядного сложения по модулю 2; операция умножения элементов поля выполняется как умножение соответствующих многочленов с приведением по модулю неприводимого многочлена Р (Х), т. е. многочлена, по модулю которого построены элементы поля GF (2n).

Пример. α5 = 0110, α6 = 1100, α5+ α6 = 1010, так как

Пример. α14 = 1001,

α14 * α14 = α214= α13 по mod Р1(Х4) <-->1 0 0 1 1.

Чтобы выполнить деление элемента b на элемент а в поле модулю Р (Х), сначала находят обратный элемент a-1(mod P (X)), а затем вычисляют

b * a-1(mod P (X)).

Каждый двоичный вектор длиной n, исключая 0, является взаимно простым с неприводимым многочленом Р (Х) независимо от значения Р (Х). Поэтому число вычетов, взаимно простых с Р(Х), равно φ(Р(Х)) = 2n - 1 (расширение функции Эйлера для многочленов). Поэтому

a-1= aφ(P(X))-1 mod Р(Х) = mod P(Х)

Пример. Пусть a = 100 и P(X) = 1011 в поле GF (23).

a-1= (mod 1011) = 1006 (mod 1011) = 1002 * 1004(mod 1011). 1002 (mod 1011) = 10000 10110 = 110

или

1

22

004 (mod 1011) = 1102 (mod 1011) = 010

или

1002 * 1004 (mod 1011)= 110 * 010 (mod 1011) = 1100 (mod 1011) = 111

или

Итак, a-1 = 111. Проверка: a=100, a-1 = 111, P(X)=1011, a*a-1=110*100=11100

т. е. a*a-1(mod 1011) = 1.

Достоинства вычислений в поле GF (2n):

•  Все элементы поля Галуа имеют конечный размер, деление элементов не имеет каких-либо ошибок округления.

•  Сложение и вычитание элементов поля GF (2n) не требует деления на модуль.

•  Алгоритмы вычислений в поле GF (2n) допускают парал­ лельную реализацию.

•  Для поля GF (2n) обычно применяют в качестве модуля трех­ член Р (Хn) = Хn + Х + 1.

Длинная строка нулей между коэффициентами при Xn и X обеспечивает более простую реализацию быстрого умножения (с приведением по модулю). Трехчлен Р (Хn ) должен быть неприводимым и примитивным.

Т

23

рехчлен Р (Хn)= Хn + Х + 1 является примитивным для следующих значений n (n<1000):

1, 3, 4, 6, 9, 15, 22, 28, 30, 46, 60, 63, 127, 153, 172, 303, 471, 532, 865, 900.

Контрольные вопросы:

  1. Что такое конечное поле?

  2. В чём смысл свойств многочленов и их корней в двоичном поле GF (2)?

  3. Каковы достоинства вычислений в поле GF (2n)?

24

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №8

ТЕСТИРОВАНИЕ ПРОСТОТЫ ЧИСЛА

МЕТОДОМ ПЕРЕБОРА ДЕЛИТЕЛЕЙ

Перебор делителей – это алгоритм, применяемый для определения, какое число перед нами: простое или составное [4].

Алгоритм заключается в последовательном делении заданного натурального числа на все целые числа, начиная с двойки и заканчивая значением меньшим или равным квадратному корню тестируемого числа. Если хотя бы один делитель делит тестируемое число без остатка, то оно является составным. Если у тестируемого числа нет ни одного делителя, делящего его без остатка, то такое число является простым. Блок-схема данного алгоритма представлена на рис.2.

Контрольные вопросы:

  1. В чем смысл алгоритма перебора делителей?

  2. Какова блок-схема алгоритма перебора делителей?

25

Источник: https://studfile.net/preview/16562607/