% Лекция 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}

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

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

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