summaryrefslogtreecommitdiff
path: root/cryptography/lectures/lecture13.tex
blob: cc9ee50b606e420e63be810553dab4352061fcf2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
% Лекция 13 (28.11.22)

Таким образом, задача построение рассматриваемого шифра сводится к выбору
множества шифрующих преобразований $\set{\varphi_\alpha}$ и отображения $\psi$,
задающего распределитель.

В соответствии с этим поточная шифрсистема представляется в виде двух основных
блоков:
\begin{itemize}
  \item
    \emph{Управляющий блок} --- отвечает за выработку распределителя, то есть
    вырабатывает последовательность номеров шифрующих преобразований, которая
    называется \emph{управляющей последовательностью} (или \emph{управляющей
    гаммой});
  \item
    \emph{Шифрующий блок} --- в соответствии со знаком управляющей
    последовательности реализует алгоритм шифрования текущего знака.
\end{itemize}

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

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

В общем случае рекуррентная последовательность на заданном множестве $A$
определяется формулой $$x(i + m) = f(x(i), \dots, x(i + m - 1)),\, i \geq 0,$$
в которой $f : A^m \to A$ --- некоторая функция от $m$ переменных.

Для получения рекуррентных последовательностей используются различные датчики
псевдослучайных чисел, например:
\begin{enumerate}
  \item
    Линейный конгруэнтный генератор над кольцом или полем:
    $$x(i + 1) = a \cdot x(i) + b,\, i \geq 0$$
  \item
    Обобщение линейного генератора: $$x(i + 1) = f(x(i)),\, i \geq 0,$$ где
    $f : A \to A$ --- произвольное отображение, легко вычисляемое для любого
    аргумента;
  \item
    Линейные регистры сдвига (ЛРС), на которых основаны большинство датчиков.
\end{enumerate}

Требования к управляющему блоку:
\begin{itemize}
  \item
    Период управляющей гаммы должен превышать максимально возможную длину
    открытых сообщений, подлежащих шифрованию;
  \item
    Статистические свойства управляющей гаммы должны приближаться к свойствам
    случайной равновероятной последовательности;
  \item
    В управляющей гамме должны отсутствовать простые аналитические зависимости
    между близко расположенными знаками;
  \item
    Криптографический алгоритм получения знаков управляющей гаммы должен
    обеспечивать высокую сложность определения секретного ключа.
\end{itemize}

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


\subsection{Линейные регистры сдвига}

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

\emph{Последовательностью} над полем $P$ называется любая функция $u : \N_0 \to
P$, заданная на множестве целых неотрицательных чисел и принимающая значения в
поле.

Последовательность $u$ называется \emph{линейной рекуррентной
последовательностью (ЛРП) порядка $m > 0$ над полем $P$}, если существуют
константы $f_0, \dots, f_{m - 1} \in P$ такие, что
\begin{equation*}
  u(i + m) = \sum_{j = 0}^{m - 2} f_j \cdot u(i + j),\, i \geq 0.
\end{equation*}

ЛРП реализуется схемой линейного регистра сдвига, изображённой на рисунке.
\begin{figure}[H]
  \centering
  \includegraphics[width=0.8\textwidth]{lecture13/linear_registry.pdf}
  \caption{Линейный регистр сдвига}
\end{figure}

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

Равенство, выражающее зависимость между знаками линейной рекуррентной
последовательности, называется \emph{законом рекурсии}, многочлен $F(x) = x^m -
\sum_{j = 0}^{m - 1} f_j \cdot x^j$ --- \emph{характеристическим многочленом}
ЛРП $u$, а вектор $u(\overline{0, m - 1}) = (u(0), \dots, u(m - 1))$ --- \emph{%
начальным вектором} ЛРП (или \emph{начальным заполнением} ЛРС).

Характеристический многочлен ЛРП $u$, имеющий наименьшую степень, называется её
\emph{минимальным многочленом}, а степень минимального многочлена --- \emph{%
линейной сложностью} ЛРП $u$ (она определяет минимальную длину ЛРС, реализующую
данную последовательность).

\emph{Периодом} последовательности $u$ называется наименьшее натуральное число
$t$, для которого существует натуральное число $\lambda > 0$ такое, что для всех
$i \geq 0$ справедливо равенство $u(\lambda + i + t) = u(\lambda + i)$.

Когда $P$ --- конечное поле из $q$ элементов, максимальное значение периода ЛРП
порядка $m$ равно $q^m - 1$.

Последовательности, имеющие максимально возможный период, называются линейными
рекуррентными последовательностями \emph{максимального периода} или просто
\emph{максимальными линейными рекуррентными последовательностями}.

Значения периодов ЛРП определяется свойствами их минимальных многочленов. В
частности, для того, чтобы ЛРП порядка $m$ над полем из $q$ элементов имела
максимальный период, необходимо и достаточно, чтобы её минимальный многочлен был
\emph{примитивным}, то есть
\begin{enumerate}
  \item $F(x)$ --- неприводимый над полем $P$;
  \item
    $\text{ord}\, F(x) = q^m - 1$, то есть $F(x)$ делит многочлен $x^{q^m - 1} -
    1$ и не делит ни один из многочленов вида $x^d - 1$, где $d$ делит $q^m - 1$
    и $d \neq q^m - 1$.
\end{enumerate}

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

Пусть $p = GF(q)$ и $Q$ --- поле из $q^m$ элементов, являющееся расширением поля
$P$. Тогда функцией \emph{<<след>> из поля $Q$ в поле $P$} называется
отображение $\text{tr}_q^{q^m}(a) : Q \to P$ вида
\begin{equation*}
  \text{tr}_q^{q^m}(a) = a + a^q + a^{q^2} + \dots + a^{q^{m - 1}}
\end{equation*}

\begin{theorem}
  Пусть $F(x) = x^m - \sum_{j = 0}^{m - 1} f_j \cdot x^j$ --- неприводимый
  многочлен над полем $P$ степени $m$, $\theta$ --- корень $F(x)$ в поле $Q$.
  Тогда для ЛРП $\set{u(i)}$ с характеристическим многочленом $F(X)$
  существует единственная константа $\alpha \in P$ такая, что
  \begin{equation*}
    u(i) = \text{tr}_q^{q^m} (\alpha \cdot \theta^i),\, i \geq 0
  \end{equation*}
\end{theorem}

Пусть $u$ --- ЛРП минимального периода над полем $P$ и $\nu(\alpha_1, \dots,
\alpha_k)$ --- число решений системы уравнений
\begin{equation*}
  \begin{cases}
    u(i + j) = \alpha_j,\, j = \overline{1, k} \\
    0 \leq i < q^m - 1
  \end{cases}
\end{equation*}
то есть число появлений мультиграммы $\alpha_1, \dots, \alpha_k$ на периоде
последовательности $u$.

% NOTE: Утверждение 5
\begin{statement}
  Пусть $F(x)$ --- примитивный многочлен степени $m$ над полем $P$ и $\theta$
  --- корень $F(x)$ в поле $Q$. Тогда любая ненулевая мультиграмма $(\alpha_1,
  \dots, \alpha_k)$ встречается на периоде ЛРП $u$ ровно $\nu(\alpha_1, \dots,
  \alpha_k) = q^{m - 1}$ раз, а число вхождений нулевой мультиграммы на единицу
  меньше.
\end{statement}

Таким образом, ЛРП над полем позволяет обеспечить первые два из трёх требований
к псевдослучайным последовательностям, используемым при построении управляющих
блоков поточных шифрсистем.

За счёт выбора закона рекурсии можно также гарантировать достаточную величину
периода получаемой псевдослучайной последовательности и хорошие статистические
качества. Вместе с тем аналитическое строение ЛРП оказывается достаточно
простым.

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