% Лекция 6 (10.10.22)
\begin{table}[H]
  \centering
  \begin{tabular}{l}
    палец $\to$ ЕПЦЛА \\
    волна $\to$ НВАЛО \\
    Ключ: 41532 \\
  \end{tabular}
\end{table}

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

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

Если ключ зашифрования совпадает с ключом расшифрования, то такие шифры называют
\emph{симметричными}, иначе --- \emph{асимметричными}.

\subsection{Шифры простой замены}

\subsubsection{Шифр замены}

\emph{Шифр замены} --- шифр, при котором фрагменты открытого текста (отдельные
буквы или группы букв) заменяются некоторыми их эквивалентами в криптограмме.

Определим модель $\Sigma_A = (X, K, Y, E, D)$ произвольного шифра замены.

Будем считать, что открытые и шифрованные тексты являются словами в алфавитах A
и B соответственно. $X \subset A^*, \, Y \subset B^*, \, |A| = n, \, |B| = m$.

Перед зашифрованием открытый текст предварительно представляется в виде
последовательностей подслов, называемых \emph{шифровеличинами} (слова из
$A^*$).

При зашифровании шифрвеличины заменяются некоторыми их эквивалентами в
шифртексте, которые называются \emph{шифробозначениями} (слова из $B^*$).

Пусть
$U = (u_1, \dots, u_N)$ --- множество возможных шифрвеличин.
$V = (v_1, \dots, v_M)$ --- множество возможных шифробозначений.
При этом $N \geq n, \, M \geq m, \, M \geq N$.

Для определения правила зашифрования $E_k(x)$ в общем случае понадобится ряд
обозначений и понятие \emph{распределителя}, который, по сути, и будет выбирать
в каждом такте шифрования замену соответствующей шифровеличине.

Поскольку $M \geq N$, множество $V$ можно представить в виде объединения $V =
\bigcup_{i = 1}^{N} V^{(i)}$ непересекающихся непустых подмножеств $V^{(i)}$.

Рассмотрим произвольное семейство, состоящее из $r$ таких разбиений множества
$V$: $$V = \bigcup_{i = 1}^{N} V^{(i)}_\alpha, \, \alpha = \overline{1, r}, \,
r \in N,$$ и соответствующее семейство биекций: $$\varphi_\alpha : U \to \set{
V^{(1)}_\alpha, \dots, V^{(N)}_\alpha},$$ для которых $\varphi_\alpha (u_i) =
V^{(i)}_\alpha, \, i = \overline{1, N}$.

Рассмотрим также произвольное отображение $\psi : K \times \N \to \N^*_r$,
где $\N^*_r = \set{1, 2, \dots, r}$, такое, что для любых $k \in K, \, l \in
\N$ $$\psi(k, l) = a^{(k)}_1 \dots a^{(k)}_l, \, a^{(k)}_j \in \N^*_r, \, j =
\overline{1, l}$$

Последовательность $\psi(k, l)$ называется \emph{распределителем}, отвечающим
данным значениям $k \in K,\, l \in \N$.

Теперь можно определить правило зашифрования произвольного шифра замены. Пусть
$$x \in X, x = x_1 \dots x_l, x_i \in U, i = \overline{1, l}, k \in K, \quad
\psi(k, l) = a^{(k)}_1 \dots a^{(k)}_l$$

% Ручная нумерация формулы
Тогда $E_k(x) = y$, где $y = y_1 \dots y_l, y_j \in \varphi_{\alpha^{(k)}}(x_j),
j = \overline{1, l} \quad (1)$.

В качестве $y_j$ можно выбрать любой элемент множества
$\varphi_{\alpha^{(k)}}(x_j)$.

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

Для однозначных шифров замены, у которых правило дешифрования $E_k(x)$ является
однозначной функцией, например, шифр гаммирования, справедливо свойство
\begin{equation*}
  \forall \alpha, i : |V^{(i)}_\alpha| = 1
\end{equation*}

Для многозначных шифров замены, например, шифров пропорциональной замены:
\begin{equation*}
  \exists \alpha, i : |V^{(i)}_\alpha| > 1
\end{equation*}

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

Итак, далее $M = N$ и $\varphi_\alpha(u_i) = v^{(i)}_\alpha, i = \overline{1,
M}$.

% Ручная нумерация формулы
Для шифра однозначной замены определение правила зашифрования можно
уточнить в формуле (1): включение следует заменить равенством $$y_j =
\varphi_{\alpha_j^{(k)}} (x_j), j = \overline{1, l} \quad (1')$$

Если для некоторого числа $q \in \N$ выполняются включения $v_i \in B^q, i
= \overline{1, N}$, то соответствующий шифр замены называется \emph{шифром
равнозначной замены}, в противном случае --- \emph{шифром разнозначной замены}.

В подавляющем большинстве случаев используются шифры замены, для которых $U \in
A^p$ для некоторого $p \in \mathbb{N}$.

При $p = 1$ говорят о \emph{поточных шифрах замены}, при $p > 1$ --- о
\emph{блочных шифрах замены}.

В случае $r = 1$ шифр замены называют \emph{одноалфавитным шифром замены} или
\emph{шифром простой замены}. В противном случае --- \emph{многоалфавитным
шифром замены}.

\subsubsection{Шифры простой замены}

Одноалфавитные однозначные замены называются \emph{шифрами простой замены}.

Введём шифр простой замены в алфавите $A$.

Пусть $X = Y = \bigcup_{i = 1}^L A^i, \, K \subseteq S(A)$, где $S(A)$ ---
симметрическая группа подстановок множества $A$.

Для любого ключа $k \in K$, открытого текста $x = (x_1, \dots, x_l)$ и
шифрованного текста $y = (y_1, \dots, y_l)$ правила зашифрования и расшифрования
шифра простой замены в алфавите $A$ определяются формулами:
\begin{align*}
  E_k(x) &= (k(x_1), \dots, k(x_l)), \\
  D_k(x) &= (k^{-1}(y_1), \dots, k^{-1}(y_l)),
\end{align*}
где $k^{-1}$ --- подстановка, обратная к $k$.

Например, в рассказе Артура Конана Дойля "Пляшущие человечки", бандит Аб Слени
использовал шифр, где заменялись схематическими человеческими фигурками в разных
позах, при этом каждая поза этих человечков является отдельной буквой.

\subsubsection{Лозунговый шифр}

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

\emph{TODO: ПРИМЕР}

\subsubsection{Шифр простой неравнозначной замены}

\emph{TODO: ПРИМЕР}

% http://elibrary.sgu.ru/uch_lit/622.pdf
Пример --- шифр Марк (пример с шифротекстом взят из учебника В.~Н.~Салия).

\begin{table}[H]
  \centering
  \begin{tabular}{c|cccccccccc}
      & 1 & 2 & 3 & 4 & 5 & 6     & 7 & 8 & 9 & 0 \\ \hline
      & с & е & н & о & в & а     & л &   &   &   \\
    8 & б & г & д & ж & з & и     & й & к & м & п \\
    9 & р & т & у & ф & х & ц     & ч & ш & щ & ъ \\
    0 & ы & ь & э & ю & я & \cdot & / &   &   &   \\
  \end{tabular}
\end{table}

Буквы, стоящие во второй строке таблицы при шифровании заменяются стоящими над
ними, остальные буквы --- двузначными числами <<строка-столбец>>.

Косая черта --- знак начала и окончания числового массива в открытом тексте
(цифры при шифровании сохраняются).

\begin{itemize}
  \item \textbf{Шифротекст}: 07607 89605 19380 91938 28650 12956 78689 28818 68893
  \item \textbf{Расшифровка}: маясупругивыехалимексику
\end{itemize}

\subsubsection{Анализ шифров простой замены}

\paragraph{}
Методы вскрытия шифра простой однобуквенной замены основаны на том, что с
точностью до переобозначений частотные характеристики $m$-грамм криптограммы и
открытого текста одинаковы.

При этом используются частотные характеристики предполагаемого открытого текста,
полученные с учётом <<характера переписки>>.
