From d07c4227e4be97220a6f944c6d49161cadd438db Mon Sep 17 00:00:00 2001 From: Andrew Guschin Date: Wed, 14 Dec 2022 01:34:52 +0400 Subject: =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B?= =?UTF-8?q?=20=D1=80=D0=B8=D1=81=D1=83=D0=BD=D0=BA=D0=B8=20=D0=B2=2014=20?= =?UTF-8?q?=D0=B8=2015=20=D0=BB=D0=B5=D0=BA=D1=86=D0=B8=D1=8F=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cryptography/lectures/lecture15.tex | 49 +++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 15 deletions(-) (limited to 'cryptography/lectures/lecture15.tex') diff --git a/cryptography/lectures/lecture15.tex b/cryptography/lectures/lecture15.tex index f7c93bf..ad5785e 100644 --- a/cryptography/lectures/lecture15.tex +++ b/cryptography/lectures/lecture15.tex @@ -35,11 +35,12 @@ $S_0 = 0, S_1 = 1, \dots S_{255} = 255$. k_{255}$. Счётчик $j$ устанавливается в 0. После этого производятся следующие действия: -% TODO: оформить алгоритм -for i = 0 to 255 - j = (j + k_i + S_i) \pmod{256} - переставить $S_i$ и $S_j$. - +\begin{algorithm} + \For {$i = 0$ \to 255} { + $j = (j + k_i + S_i) \pmod{256}$\; + Переставить $S_i$ и $S_j$\; + } +\end{algorithm} \subsection{Методы анализа поточных шифров} @@ -121,8 +122,11 @@ for i = 0 to 255 \paragraph{Сеть Фейстеля.} Для построения алгоритмов часто используется \emph{Сеть Фейстеля} (см. рисунок). - -% TODO: Рисунок 1 (везде индексы i) +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{lecture15/feistel} + \caption{Сеть Фейстеля} +\end{figure} Преобразование, реализуемое сетью Фейстеля в $i$-м цикле шифрования имеет вид \begin{equation*} @@ -164,8 +168,11 @@ RC5. Обработка данных сводится в основном к заменам и перестановкам зависящим от ключа $k_i$ (см. рисунок). - -% TODO: Рисунок 2 +\begin{figure}[H] + \centering + \includegraphics[width=0.6\textwidth]{lecture15/sp} + \caption{SP-сеть} +\end{figure} SP-сети являются гораздо менее распространёнными, чем сети Фейстеля. На их базе, например, основаны алгоритмы шифрования Serpent, SAFER+. @@ -203,9 +210,21 @@ S-боксы делятся на линейные и нелинейные. В л В нелинейном S-боксе нельзя задать линейные соотношения для каждого выхода. -Пример S-бокса представлен на рисунке, где первый бит входа определяет строку, -два следующих бита входа определяют столбец. - -Два бита на выходе --- это значение на пересечении выбранных строки и столбца. - -% TODO: Рисунок 3 +Пример S-бокса представлен в таблице, где первый бит входа определяет строку, +два следующих бита входа определяют столбец. Два бита на выходе --- это значение +на пересечении выбранных строки и столбца. +\begin{table}[H] + \centering + \begin{tabular}{|c|c|c|c|c|} + \cline{2-5} + \multicolumn{1}{c|}{} & + \textbf{00} & \textbf{01} & \textbf{10} & \textbf{11} \\ \hline + \textbf{0} & 00 & 01 & 10 & 11 \\ \hline + \textbf{1} & 00 & 01 & 10 & 11 \\ \hline + \end{tabular} + \caption{Пример S-блока} +\end{table} + +\begin{example} + Вход --- 110; Выход --- 11. +\end{example} -- cgit v1.2.3