Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Реализация базовых операций защиты информации на сигнальных процессорах. Ч. 3. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
703 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

Московский технический университет связи и информатики

С.С.Шаврин, Т.Н.Зуйкова, О.Ю.Мусатова

РЕАЛИЗАЦИЯ БАЗОВЫХ ОПЕРАЦИЙ ЗАЩИТЫ ИНФОРМАЦИИ

НА СИГНАЛЬНЫХ ПРОЦЕССОРАХ

Часть 3

Учебное пособие для направления 11.03.02

Москва 2018

УДК 621.327.8

Шаврин С.С., Зуйкова Т.Н., Мусатова О.Ю. Реализация базовых операций защиты информации на сигнальных процессорах. Ч. 3: Учебное пособие / МТУСИ. – М., 2018. – 36 с.

Настоящее пособие является логическим продолжением первой и второй частей, посвященным реализации базовых математических операций криптографии с помощью сигнального процессора ADSP-2181. Рассмотрены вопросы реализации базовых математических операций – сложения, вычитания, умножения, деления и возведения в степень в простых и расширенных полях Галуа. Целью настоящего пособия является попытка «сгладить» горб сопротивления в восприятии при обучении студентов начальным навыкам и базовым принципам разработки и реализации средств криптографической техники.

Ил. 13, табл. 4, список лит. 9 назв.

Издание утверждено Методическим советом университета в качестве учебного

пособия. Протокол № 4 от 16.05.17г.

Рецензенты: А.С. Кремер, к.т.н., зав. кафедрой (МТУСИ)

А.Б. Пивоваров, нач. лаборатории (НИИР)

© Московский технический университет связи и информатики, 2018

2

1.МАТЕМАТИЧЕСКИЕ МЕХАНИЗМЫ, ИСПОЛЬЗУЕМЫЕ

ВКРИПТОГРАФИЧЕСКИХ АЛГОРИТМАХ

Математические методы являются в настоящее время наиболее мощной

основой криптографической защиты информации.

 

 

Вся

математика

цифровой

обработки

сигналов,

включая

криптографические приложения, зиждется, – помимо логических, – на четырех основных арифметических операциях – сложении, вычитании, умножении и делении (естественно, кроме деления на ноль).

В отличие от ранее рассмотренных логических операций [1], выполняющихся поразрядно, арифметические могут поддерживать базовую криптографическую функцию рассеяния за счет межразрядных переносов. Этот механизм рассеяния используется, например, в алгоритме криптозащиты IDEA [2; 3], который рассматривается далее в разделе 2.

Важно тем не менее отметить, что стандартные арифметические операции в привычном («бытовом») виде достаточно редко используются в криптографических приложениях. Связано это прежде всего именно с влиянием межразрядных переносов, и, в частности, переносов, выходящих за пределы разрядной сетки обрабатываемых операндов.

Как известно, при выполнении характерных для криптографии арифметических операций над целочисленными операндами без знака (натуральные положительные числа) разрядность результатов операций будет превышать разрядность операндов и может быть вычислена в соответствии с описанными ниже правилами.

При сложении двух чисел, каждое из которых требует для представления N разрядов (символов в данной системе счисления), результат для представления без потери точности требует ( N + 1 ) - разрядной сетки.

Накопление k чисел, представленных в системе счисления по основанию m, каждое из которых занимает N разрядов, для представления без потери

точности требует разрядной сетки длиной [ N +

logm k ] разрядов.

Умножение двух чисел по N разрядов может быть выполнено без

потери точности в пределах разрядной

сетки длиной 2N разрядов,

а возведение в степень V, эквивалентное V-кратному умножению, потребует

( V * N ) - разрядной сетки.

Приложения цифровой обработки сигналов можно условно разделить на две категории по отношению к размеру разрядной сетки и формату результата обработки.

3

Одна из таких категорий не накладывает строгих ограничений на размер разрядной сетки и формат результата, или, во всяком случае, допускает превышение размера разрядной сетки результата над размером разрядной сетки операндов при одинаковом формате. К таким приложениям относятся, прежде всего, измерения значений физических величин, корреляционный прием и другие. Обычно подобные приложения оперируют с информационными блоками известного объема и при этом разрядность результата, определяющая точность обработки, заранее известна. Во многих случаях для удобства обработки и представления при вычислениях и выводе результата используется формат с плавающей точкой, ограничивающий разрядную сетку по критерию заданной (постоянной) относительной погрешности.

Альтернативная категория приложений предъявляет строгие требования к размеру разрядной сетки и формату результата. К приложениям этой категории относятся все типы внутриканальной обработки сигналов систем передачи – цифровая фильтрация, подавление эхосигналов и др. Часто обработка сигналов в таких приложениях проводится над непрерывным информационным потоком теоретически бесконечной длины – например, при реализации фильтров с бесконечной импульсной характеристикой. Поскольку результат обработки подлежит дальнейшей передаче в том же канале, по которому приняты (получены) операнды, обычно размер разрядной сетки и формат результата приводят к размеру разрядной сетки и формату операндов, искусственно его ограничивая. Выход разрядности результата за пределы принятой разрядной сетки в сторону старших разрядов чреват появлением искажений перегрузки (часто традиционно ошибочно называемых шумами перегрузки), обладающих большой мощностью, поэтому все значения результата, превышающие по модулю предельно допустимое, заменяют на предельно допустимое с соответствующим знаком. Такая операция называется ограничением по переполнению (saturation). Отброс младших разрядов, выходящих за пределы выходной разрядной сетки, приводит к некоторому повышению уровня шумов квантования; эта составляющая шума называется шумами округления. Для снижения шума обычно используется операция округления результата по значению отбрасываемых младших разрядов по общепринятым правилам.

К сожалению, криптографические приложения совмещают в себе проблемы обеих категорий.

С одной стороны, в отличие от многих других видов цифровой обработки сигналов, криптографические операции выполняются над целыми числами и исключают использование алгоритмов приближенных вычислений и вычислительных операций в формате с плавающей запятой.

4

В грамотно спроектированной криптосистеме изменение значения одного бита в исходном (шифруемом) блоке приводит к изменению значений примерно половины битов в зашифрованном. Следствием такого подхода является изменение значений примерно половины битов в расшифрованном блоке при изменении значения одного бита в зашифрованном. Таким образом, операции округления и ограничения по переполнению не представляются допустимыми в криптографических алгоритмах, в которых потеря даже одного бита приводит к критическим последствиям.

С другой стороны, размер зашифрованного блока, как правило, соответствует размеру шифруемого, или, во всяком случае, выбирается не по критерию количества арифметических операций.

Решением сложившихся противоречий явилось использование при реализации криптографических алгоритмов некоторого особого аппарата, арифметические операции в котором, обладая свойством обратимости, не приводят к изменению разрядности обрабатываемой информации – полей Галуа. В основе этого аппарата лежит операция modn – вычисление остатка от деления на n.

Для вычисления остатка от деления на n некоторой функции

x = F mod n

необходимо сначала вычислить значение функции F (в рассматриваемом математическом аппарате целочисленной без знака), а затем разделить вычисленное значение на n по законам деления целых чисел и определить таким образом остаток от деления. Естественно, что остаток при этом может принимать значения 0 ≤ х < n.

Операции по модулю mod n подчиняются коммутативному, дистрибутивному и ассоциативному законам, которые применительно к практической реализации функций могут быть сформулированы в виде

следующих выражений:

 

(a + b) mod n = ((a mod n) + (b mod n)) mod n;

 

(a – b) mod n = ((a mod n) – (b mod n)) mod n;

(1.1)

(a * b) mod n = ((a mod n) * (b mod n)) mod n;

 

(a * (b + c)) mod n = ((a * b) mod n + (a * c) mod n) mod n.

 

Эти свойства операций модульной математики очень важны в приложениях практической реализации средств криптозащиты, когда значение

5

F может достигать весьма больших величин и требовать нереализуемой в рамках доступной элементной базы разрядной сетки.

В рамках модульной арифметики операции сложения и умножения выполняются обычным порядком; если же результат операции превышает или равен n, вычисляется его остаток от деления на n.

Операция вычитания выполняется обычной процедурой, однако, если результат вычисления получается отрицательным, к нему прибавляется n, поскольку

(n + x) mod n = (n mod n + x mod n) mod n = 0 + x mod n = x mod n.

Операция деления в модульной арифметике решается несколько сложнее – чаще как умножение на обратное (по модулю) число. Вычисление значения числа, обратного данному, тоже не всегда является простой задачей.

По определению, числом, обратным числу Х, называется такое число А, умножение которого на Х по модулю n обеспечивает равенство произведения единице:

(А * Х) mod n = 1

=>

А ≡ Х – 1mod n.

Число, обратное данному, не всегда существует.

Если Х и n – взаимно простые числа (не имеют общих множителей, кроме 1, или, иначе говоря, наибольший общий делитель НОД (Х, n ) чисел Х и n равен 1), то число А , обратное числу Х по модулю n, существует, и притом только одно. Если же числа Х и n имеют общие множители, то числа, обратного Х по модулю n, не существует.

Для аналитического вычисления обратного числа обычно используют формулу Эйлера:

А = Х Ф ( n ) – 1mod n ,

где Ф ( n ) – количество членов в сокращенном наборе остатков по модулю n.

В сокращенный набор остатков по модулю n входят остатки, взаимно простые с числом n (не считая 0). Так, например, полный набор остатков mod 12 содержит все числа от 0 до 11, при этом числа 2, 3, 4, 6, 8, 9 и 10 имеют общие множители с числом 12 и не входят (также как и 0) в сокращенный набор остатков. Таким образом, сокращенный набор остатков mod 12 содержит числа 1, 5, 7 и 11, и тогда

Ф (12) = 4.

6

Если n – простое число, то все остатки от деления на него, кроме нуля, входят в сокращенный набор остатков, и тогда

Ф (n) = n – 1.

Так, например, если необходимо найти число А, обратное числу Х = 31 по модулю n = 61, т.е. А = Х – 1mod n = 31 – 1 mod 61, следует сначала определить количество членов сокращенного набора остатков по модулю 61.

Число 61 является простым, поэтому

Ф(61) = 60,

ичисло А будет существовать; его значение будет равно

А= ХФ( n ) – 1 mod n = 31 60 – 1 mod 61 = 31 59 mod 61.

Для вычисления значенияА целесообразно разложить показатель степени 59 по степени двойки:

59 = 32 + 16 + 8 + 2 + 1,

представить вычисление А = (31 * 312 * 318 * 3116 * 3132) mod 61

и выполнить его рекурсивным вычислением:

a= 31 mod 61 = 31;

b= 312 mod 61 = 46;

c = 318 mod 61 = b4 mod 61 = (b2 mod 61)2 mod 61 = 56;

d = c2 mod 61 = 25;

e = d2 mod 61 = 15;

А = (((((a * b ) mod 61 * с) mod 61 * d) mod 61) * e) mod 61 = 2.

Для проверки: ( А * Х ) mod n = ( 2 * 31) mod 61 = 1.

Использование законов (1.1) может обеспечить возможность выполнения любых операций модульной математики mod n в 2N - разрядной сетке, если N – длина разрядной сетки, необходимой для представления числа n.

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

7

По определению, поле представляет собой множество (упорядоченный набор) элементов, в котором определены операции сложения, вычитания, умножения и деления, за исключением деления на 0. Операции сложения (вычитания) и умножения должны подчиняться коммутативному, дистрибутивному и ассоциативному законам в соответствии с (1.1).

Кроме того, должны существовать элементы 0 и 1 такие, чтобы для любого а существовало единственное обратное а– 1 и противоположное по знаку – а, удовлетворяющие уравнениям:

а + 0 = а; ( – а ) + а = 0;

а* 1 = а;

а* 0 = 0;

а* ( а – 1 ) = 1, если а ≠ 0.

Конечное поле содержит конечное количество элементов; это количество называется порядком поля.

Так, например, известное из старого институтского гимна «поле по модулю пять» имеет пятый порядок и содержит пять элементов: 0, 1, 2, 3, 4. Для этого поля определены операции сложения, вычитания, умножения и деления по модулю пять. Таблица сложения, каждый элемент которой представляет собой сумму чисел а и b (может интерпретироваться и как таблица вычитаний), представлена в табл. 1.1.

Таблица 1.1 - Таблица сложения чисел а и b по модулю пять

b \ a

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

 

 

 

 

 

 

Таблица умножения, каждый элемент которой представляет собой произведение чисел а и b по модулю пять (может быть использована и как таблица деления), представлена в таблице 1.2.

Каждому из чисел, составляющих поле, соответствует единственное обратное (единицы в таблице умножения) и единственное противоположное (нули в таблице сложения) – за исключением 0 – см. таблицу 1.3.

8

Таблица 1.2 - Таблица умножения чисел а и b по модулю пять

b \ a

0

1

2

3

4

 

 

 

 

 

 

 

 

 

 

 

0

0

0

0

0

0

 

 

 

 

 

 

1

0

1

2

3

4

 

 

 

 

 

 

2

0

2

4

1

3

 

 

 

 

 

 

3

0

3

1

4

2

 

 

 

 

 

 

4

0

4

3

2

1

 

 

 

 

 

 

Таблица 1.3 - Противоположные и обратные числа в поле по модулю пять

а

– а

а – 1

 

 

 

1

4

1

 

 

 

2

3

3

 

 

 

3

2

2

 

 

 

4

1

4

 

 

 

Аналогичными свойствами будут обладать поля, составленные из остатков от деления на любое простое число.

Поля, составленные из остатков от деления на простые числа, называются простыми полями Галуа и обозначаются GF(p), где p – простое число. При вычислениях в полях Галуа – особенно на первых порах обучения – следует помнить три момента.

1.Арифметические действия в полях Галуа, за исключением деления на ноль, невзирая на экзотику, обладают строгой математической корректностью. Не следует пытаться привязывать какой-либо физический смысл к результатам вычислений (яблок, Вольт, долларов и пр.) с целью проверки, лучше относиться

кним как к некоторой математической абстракции.

2.Арифметические действия в полях Галуа, за исключением деления на ноль, не приводят к расширению разрядной сетки. Если же вдруг такое происходит, следует немедленно на любом этапе вычислений воспользоваться

операцией mod n, и результат сразу же будет приведен в диапазон 0 ≤ х < n. 3. Важно также помнить, что в отличие от традиционной («бытовой»)

арифметики, в которой главным результатом деления является частное, в

арифметике Галуа главным и единственным результатом деления является остаток, а частное игнорируется как явление.

9

Следует сразу же отметить, что вычислительные процедуры в простых полях Галуа достаточно редко используются в практической криптографии. Этот момент имеет следующее объяснение.

Объектом криптозащиты обычно является массив или поток двоичных символов – битов. Реализация блочного алгоритма криптозащиты предполагает криптографические преобразования блока из m бит, причем возможна любая из 2m комбинаций, т.е. количество элементов поля равно 2m и всегда кратно степени двойки.

Отмеченный факт противоречит правилам формирования простого поля Галуа, поскольку максимальное простое число, способное образовывать поле, кратное степени двойки, равно 2.

Для преодоления сложившегося противоречия используются поля, имеющие порядок степени простого числа, которые называют расширенными полями Галуа и обозначаются как GF(pn).

Если попытаться составить поле из остатков от деления на степень простого числа, то действия в нем по модулю степени простого числа не будут гарантировать обратимости операции умножения, и составленная таким образом совокупность элементов не будет удовлетворять требованиям, предъявляемым к полю. Так, например, остатки от деления на 16 (степень простого числа 2) не могут составлять поле, поскольку четные числа, не являясь взаимно простыми с модулем 16, не будут иметь обратных значений.

В расширенных полях Галуа GF(pn) обратимость операций обеспечивается полиномиальным представлением чисел и выполнением операций по правилам действий над полиномами по модулю некоторого неприводимого полинома степени n, являющимся характеристикой поля. Таким образом, для построения расширенного поля Галуа GF(pn), помимо значений n и p должен быть задан вид неприводимого полинома q степени n, остатки от деления на который будут составлять поле и являться его элементами.

Неприводимый полином – это такой полином, который не может быть выражен через произведение многочленов меньшей степени над этим же полем.

Элементы расширенного поля Галуа GF(pn) представляются в виде полиномов степени (n – 1); для этого число должно быть разложено по степеням числа p и основание р должно быть формально заменено на х. Так,

например, число 10, равное ( 23 + 21 ) в поле GF(2n) представится как полином ( х3 + х ), а число 7, равное ( 22 + 21 + 20 ), – как полином ( х2+х+1 ).

В качестве неприводимого полинома q степени n чаще всего используют полином (хn + х + 1), который является неприводимым для многих значений n

(n = 3, 4, 6, 9, 15, 22, 28, 30, 46, 60, 63, 127, 153 ... ). Неприводимый полином, не

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]