% Лекция 10 (07.11.22)

\begin{example}
  \begin{enumerate}
    \item
      Любая группа является также и квазигруппой, так как $$a \cdot x = b \iff x
      = a^{-1} \cdot b,\, y \cdot a = b \iff y = b \cdot a^{-1}$$
    \item Целые числа $\Z$ с операцией вычитания ($-$) являются квазигруппой.
  \end{enumerate}
\end{example}

С алгебраической точки зрения буква $a_k$ есть результат применения к буквам
$a_i$ и $a_j$ квазигрупповой операции $\cdot$, табличным заданием которой
является латинский квадрат $L : a_k = a_i \cdot a_j$.

% TODO: Убрать 8.1?
В случае шифра Виженера квазигруппа $(A, \cdot)$ является группой $(Z_n, +)$.
При этом уравнение шифрования имеет вид $$b_i = (a_i + \gamma_i) \pmod{n} \quad
(8.1),$$ а $\gamma_i$ представляет собой периодическую последовательность,
образованную повторением некоторого ключевого слова.

Наряду со сложением используется и вычитание знаков гаммы. Соответствующие
уравнения шифрования принимают вид $$b_i = (a_i - \gamma_i) \pmod{n} \quad
(8.2)$$ или $$b_i = (\gamma_i - a_i) \pmod{n} \quad (8.3)$$

Шифры гаммирования с уравнениями шифрования (8.1)--(8.3) называют \emph{шифрами
модульного гаммирования}.

\paragraph{О равновероятной гамме.}
Рассмотрим Основные идеи анализа на примере шифра с уравнением (8.1). Занумеруем
буквы алфавита $A$ числами от $0$ до $n - 1$. Пусть $p_i, r_i, s_i$ ---
вероятности появления знака $i$ в открытом тексте, гамме и в криптограмме
соответственно.

Тогда задание вероятностных распределений на знаках открытого текста и гаммы
индуцирует распределение вероятностей знаков шифротекста по формуле:
\begin{equation*}
  s_j = \sum_{i = 0}^{n - 1} p_{((j - i) \pmod{n})} \cdot r_i \quad (8.4)
\end{equation*}
при этом $$\sum_{j = 0}^{n - 1} s_j = 1.$$

Из формулы (8.4) следует, что если $r_i = \frac{1}{n}$ при всех $i =
\overline{0, n - 1}$, то $s_j = \frac{1}{n}$ при всех $j = \overline{0, n - 1}$.

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

% TODO: Новая подсекция, а не секция???
\section{Надёжность шифров}

% TODO: В оригинале оформлено как \paragraph???
\subsection{Энтропия языка}

Выдающиеся результаты в применении математических методов в криптографии
принадлежат Клоду Шеннону (1916--2001).

\emph{Энтропия} определяется функцией от вероятностного распределения и
характеризуется количеством неопределённости или информации в случайном
эксперименте.

К.~Шеннон предложил формулу <<прирост информации = устранённой
неопределённости>>, на основании которой неопределённости и информация должны
измеряется одной и той же мерой.

К такому выводу можно прийти на примере эксперимента с монетой.

Если монета дефектна и всегда выпадает орёл, то нет никакой неопределённости и
при этом при проведении эксперимента мы не получим никакой информации (мы заранее
знали о его исходе, количество информации равно нулю).

Максимальные неопределённость и количество получаемой информации будет в случае,
когда <<орёл>> и <<решка>> равновероятны.

Пусть независимые испытания случайной величины $\xi$ с распределением
вероятностей $\xi = \begin{pmatrix}
  a_1 & \cdots & a_n \\
  p_1 & \cdots & p_n \\
\end{pmatrix}$, тогда энтропия $H(\xi)$ определяется формулой $$H(\xi) =
-\sum_{i = 1}^n p_i \cdot \log_2 p_i \quad (9.1)$$

Единицу измерения энтропии вероятностной схемы предлагает так называемая теорема
кодирования, утверждающая, что любой исход можно закодировать символами 0 и 1
так, что полученная длина кодового слова будет сколь угодно близка сверху к
$H(\xi)$.

На основании этого единицей количества информации считают 1 бит. Например,
количество информации, полученное при бросании монеты равно 1 бит, так как
орёл можно закодировать единицей, решку --- нулём.

Если $p_i = \frac{1}{n}$ при всех $i = \overline{1, n}$, то $H_0 = H(\xi)
= \log_2 n$. Под $H_0 = \log_2 n$ понимается абсолютная энтропия языка ---
величина, равная максимуму информации, которую можно передать единицей данного
языка (данная величина не учитывает возможную непроизносимость полученных
<<слов>>).

В общем случае $H(\xi) \geq 0$, причём $H(\xi) = 0$ в том и только том случае,
когда $p_i = 1$ для некоторого $i$ и $p_j = 0$ для всех $j \neq i$.

Мерой среднего количества информации, приходящейся на одну букву открытого
текста языка $\Lambda$ служит величина $H_\Lambda$, называемая \emph{энтропией}
языка $\Lambda$.

Вычисляется она последовательными приближениями: $H_0, H_1$, где $H_1$ ---
энтропия позначной модели открытого текста, то есть величина (9.1), в которой
$p_i$ совпадает с вероятностью появления буквы $a_i$ в открытом тексте.

Для английского языка $H_0 \approx 4.70, H_1 = H(\xi) \approx 4.14$.

Энтропия языка $H_\Lambda$ языка $\Lambda$ определяется как $$H_\Lambda =
\lim_{r \to \infty} \frac{H_r}{r}$$ где $H_r$ --- энтропия вероятностной схемы
на $r$-граммах (для осмысленных текстов $\frac{H_r}{r}$ --- угадывание $r$-й
буквы текста при условии, что предшествующие буквы известны).

При этом формула $R_\Lambda = 1 - \frac{H_\Lambda}{\log_2 n}$ определяет
\emph{избыточность языка $\Lambda$}.

Например, русский язык имеет избыточность 72.6\%, что означает, что при
оптимальном кодировании текста (например, код Фано) его можно сжать практически
до четверти длины без потери информации.

\subsection{Расстояние единственности}

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

Найдём оценку для числа ложных ключей.

\emph{Условная энтропия} --- это величина, характеризующая степень
неопределённости в предсказании исхода эксперимента, если известен исход
некоторого другого эксперимента.

Пусть имеются дискретные величины $\xi$ и $\eta$, заданные вероятностными
распределениями $P(\xi), P(\eta)$.

Для них можно вычислить совместное распределение $P(\xi, \eta)$ и условные
распределения $P(\xi/y), P(\eta/x)$ для любых фиксированных значений $x \in \xi,
y \in \eta$.

Тогда условная энтропия $H(\xi/y)$ определяется формулой:
\begin{equation*}
  H(\xi/y) = -\sum_{x \in \xi} p(x/y) \cdot \log_2 p(x/y)
\end{equation*}

% TODO: Перенумеровать?
Усреднённая (по всем $y \in \eta$) величина $H(\xi/y)$ называется \emph{условной
энтропией двух вероятностных определений}:
\begin{equation*}
  H(\xi/\eta) = -\sum_{y \in \eta} \sum_{x \in \xi} p(y) \cdot p(x/y) \cdot
  \log_2 p(x/y) \quad (9.2)
\end{equation*}

Величина (9.2) измеряет среднее количество информации $\xi$, обнаруживаемое с
помощью $\eta$.

Известно, что $H(\xi/\eta) \leq H(\xi)$, причём $H(\xi/\eta) = H(\xi) \iff \xi,
\eta$ --- независимые случайные величины.

% TODO: Какой индекс у \Sigma?
Условная энтропия $H(K/Y)$ называется \emph{неопределённостью шифра $\Sigma_B$
по ключу}. Она измеряет среднее количество информации о ключе, которую даёт
криптограмма. Аналогично вводится \emph{неопределённость шифра по открытому
тексту $H(X/Y)$}. Эти величины являются мерой теоретической стойкости шифра.
Идеально является ситуация, когда $H(X/Y) = H(X)$.

В этом случае шифр можно назвать \emph{идеальным} или \emph{совершенным}, то
есть такой шифр не даёт криптоаналитику никакой дополнительной информации об
открытом тексте при изучении перехваченной криптограммы.

Связь между энтропиями компонент шифра даёт формула для неопределённости шифра
по ключу: $$H(K/Y) = H(X) + H(K) - H(Y)$$.
