% Лекция 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$$ %% NOTE: Ручная нумерация формулы Тогда $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}$. %% NOTE: Ручная нумерация формулы Для шифра однозначной замены определение правила зашифрования можно уточнить в формуле (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: ПРИМЕР} %% NOTE: 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$-грамм криптограммы и открытого текста одинаковы. При этом используются частотные характеристики предполагаемого открытого текста, полученные с учётом <<характера переписки>>.