- •Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «воронежский государственный университет» ( фгбоу впо вгу)
- •Содержание
- •Список основных сокращений
- •Введение
- •Постановка задачи
- •Гпсп в системах защиты информации
- •1.1. Гпсп и шифрование мультимедийных данных [8]
- •1.2. Гпсп и хэширование
- •1.3. Гпсп и криптографические протоколы
- •1.4. Вероятностное шифрование и алгоритм эль-гамаля [1, 2]
- •Принципы построения и классификация гпсп
- •2.1. Два варианта построения гпсп
- •2.2. Криптографические гпсп
- •2.3. Линейные гпсп
- •2.4. Нелинейные гпсп [7]
- •Конечные поля и гпсп
- •3.1. Основные понятия теории конечных полей
- •3.2. Стохастические гпсп [3, 8]
- •Описание программы
- •4.1. Основные сведения
- •Инструкция по работе с программой
- •Графические тесты.
- •Оценочные тесты.
- •Заключение
- •Список использованных источников
- •Приложение
2.3. Линейные гпсп
Важнейшим классом ПСП являются последовательности, формируемые генераторами на основе регистров сдвига с линейными обратными связями - LFSR (Linear Feedback Shift Register) [8]. Используемый при их анализе математический аппарат - теория линейных последовательностных машин и теория конечных полей (полей Галуа). Основными достоинствами этих генераторов являются:
простота аппаратной и программной реализации;
максимальное быстродействие;
хорошие статистические свойства формируемых последовательностей;
возможность построения на их основе генераторов, обладающих свойствами, ценными при решении специфических задач защиты информации (формирование последовательностей произвольной длины, формирование последовательностей с предпериодом, формирование ПСП с произвольным законом распределения, построение генераторов, обладающих свойством самоконтроля и т. п.).
LFSR, к сожалению, не являются криптостойкими, поэтому применяются при решении задач защиты информации от умышленных деструктивных воздействий лишь в качестве строительных блоков.
Наиболее известные примеры использования LFSR и математического аппарата полей Галуа:
CRC-коды - идеальное средство контроля целостности информации при случайных искажениях информации;
реализация концепции самотестирования БИС и СБИС;
поточные шифры А5, PANAMA, SOBER, SNOW и др.;
блочный шифр RIJNDAEL, принятый в 2001 г. в качестве стандарта криптографической защиты XXI века - AES.
Исходная информация для построения двоичного LFSR - так называемый образующий многочлен. Степень этого многочлена определяет разрядность регистра сдвига, а ненулевые коэффициенты - характер обратных связей. Так, например, многочлену
Ф(х) = x8 + x7 + x5 + x3 + 1
соответствуют два устройства, показанные на рис. 2.10 и 2.11. В общем случае двоичному образующему многочлену степени N
Ф(х)
=
, aN=a0=1,
aj∈{0,1},
j=1,(N-1)
соответствуют устройства, показанные на рис. 2.12, a (LFSR1 – схема Фибоначчи) и б (LFSR2 - схема Галуа).

Рис. 2.10. Генератор Фибоначчи (LFSR1), соответствующий
Ф(х) = х8 + х7 + х5 + х3 + 1, и его диаграмма состояний

Рис. 2.11. Генератор Галуа (LFSR2), соответствующий
Ф(х) = х8 + х7 + х5 + х3 + 1, и его диаграмма состояний
Рассмотренные устройства могут использоваться только для генерации битовых ПСП. Если необходима n-разрядная последовательность, можно предложить два варианта действий. В первом случае выбираем образующий многочлен степени N > п (еще лучше N >> n), выбираем схему LFSR1 или LFSR2 и считываем очередной n-разрядный двоичный код с соседних разрядов регистра сдвига каждые п тактов работы LFSR. Во втором случае синтезируем схему устройства, работающего в п раз быстрее исходного LFSR (иначе говоря, выполняющего за один такт своей работы преобразования, которые в исходном LFSR выполняются за п тактов). Этот вариант особенно эффективен в тех случаях, когда образующий многочлен генератора Фибоначчи имеет вид Ф(х) = xN + xi + 1, а i кратно п (рис. 2.13).

Рис. 2.12. Общий вид LFSR, соответствующих
Ф(х) = хN + аN-1хN-1 + ... + аiхi + ... + а2х2 + а1х + 1:
a - схема генератора Фибоначчи; б - схема генератора Галуа.
БУ - блоки умножения на aj ∈ {0,1}; qj(t) ∈ {0,1};
при aj = 1 умножение на aj равносильно наличию связи; при aj = 0 умножение на aj равносильно отсутствию связи
Общий вид генератора двоичных последовательностей, соответствующего уравнению
Q(t + 1) = Tk Q(t),
где Q(t) и Q(t+1) - состояния регистра генератора ПСП соответственно в моменты времени t и t+1 (до и после прихода синхроимпульса); T - квадратная матрица порядка N вида
,
N - степень образующего многочлена

k - натуральное, показан на рис. 2.14. В частном случае при k = 1, получаем либо схему генератора Фибоначчи (T = T1), либо схему генератора Галуа (T = T2).

Рис. 2.13. Байтовый генератор ПСП:
а
- битовый генератор Фибоначчи,
соответствующий многочлену Ф(х)
=
х65
+x32
+1;
б
- байтовый генератор Фибоначчи,
соответствующий
Ф(х)
= х65
+ х32
+ 1, qi
-
состояние i-гo
разряда LFSR1,
i
=


Рис. 2.14. Генератор двоичных последовательностей, соответствующий уравнению Q(t +1) = TkQ(t)
Величина,
на которую происходит умножение в каждом
блоке умножения
(БУ), определяется соответствующим
коэффициентом
aij
сопровождающей
матрицы:

Если аij = 0, это эквивалентно отсутствию связи между выходом i-го разряда регистра генератора и входом j-го сумматора по модулю два. Если аij = 1, это эквивалентно наличию связи между выходом i-го разряда регистра генератора и входом j-го сумматора по модулю два.
Так как нулевое состояние регистра ГПК является запрещенным, максимально возможное число состояний устройства, а значит, и максимально возможная длина формируемой двоичной последовательности, снимаемой с выхода любого из триггеров, равны 2N - 1. В этом случае диаграмма состояний генератора состоит из одного тривиального цикла и цикла максимальной длины 2N - 1.
Многочлен Ф(х) степени N называется примитивным, если он не делит нацело ни один многочлен вида xS - 1, где S < 2N - 1. Примитивные многочлены существуют для любого N. Показателем многочлена Ф(х) называется наименьшее натуральное число е, при котором хе - 1 делится на Ф(х) без остатка.
Пусть Ф(х) - примитивный многочлен степени N, тогда справедливо следующее утверждение.
Свойство 1.1. Формируемая последовательность имеет максимальный период S = 2N - 1 тогда и только тогда, когда наибольший общий делитель чисел S и k равен 1 (т. е. S и k взаимно просты).
Следствие. При k = 1 примитивность Ф(х) является необходимым и достаточным условием получения последовательности максимальной длины.
Последовательность максимальной длины принято называть М-последовательностью, а формирующий ее генератор - генератором М-последовательности. Именно генераторы M-последовательностей обычно используются для формирования ПСП.
Каждая матрица V имеет характеристический многочлен φ(х) которым является определитель матрицы V - хЕ, т. е. φ(х) = |V - хЕ|, где Е - единичная матрица. Многочлен Ф(х) определяет только структуру генератора, свойства же последнего зависят именно от φ(х).
Свойство 1.2. Каждая квадратная матрица удовлетворяет своему характеристическому уравнению, т. е. φ(V) = 0.
Свойство 1.3. Характеристический и образующий многочлен генератора связаны следующим соотношением:
φ(х) = Ф(x-1)xN,
т. е. являются взаимно обратными.
Примитивность φ(x) автоматически означает примитивность Ф(х) и наоборот.
Децимацией последовательности {qi(t)} по индексу k называется формирование новой последовательности {q*i(t)}, состоящей из k-х элементов {qi(t)}, т. е. q*i(t) = qi(kt). Если период последовательности, полученной в результате децимации М-последовательности, равен максимальному, децимация называется собственной или нормальной.
Последовательность, снимаемая с выхода i-го триггера генератора, изображенного на рис. 2.14, является децимацией по индексу k последовательности, снимаемой с выхода i-го триггера генераторов, изображенных на рис. 2.12. Если Q - начальное состояние генератора, то последовательности состояний, в которых будут находиться устройства в следующие моменты времени, имеют вид
Q, QV, QV2, QV3, ...
(для устройства, изображенного на рис. 2.8) и
Q, QT, QT2, QT3, ...
(для устройств, изображенных на рис. 2.12, где Т = Т1 (а) или Т = Т2 (б)). Учитывая, что V = Tk, можно сделать вывод, что в генераторе, показанном на рис. 2.14, за один такт осуществляются преобразования, которые в генераторах, показанных на рис. 2.12, происходят за k тактов. Таким образом, устройство, показанное на рис. 2.14, в котором содержимое первых k триггеров (при k ≤ N) полностью обновляется в каждом такте, может использоваться для генерации последовательности k-разрядных двоичных кодов, что нельзя сказать про устройства, показанные на рис. 2.12, которые формируют лишь сдвинутые копии одной и той же двоичной последовательности.
