From d07c4227e4be97220a6f944c6d49161cadd438db Mon Sep 17 00:00:00 2001
From: Andrew Guschin <guschin.drew@gmail.com>
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

