From 5d8de74a3609fe5d453352923bc7daab6a8aaed4 Mon Sep 17 00:00:00 2001
From: Andrew Guschin <guschin.drew@gmail.com>
Date: Mon, 27 Mar 2023 23:17:04 +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=D0=BB=D0=B5=D0=BA=D1=86=D0=B8=D0=B8=20=D0=BF=D0=BE=20=D0=BA?=
 =?UTF-8?q?=D1=80=D0=B8=D0=BF=D1=82=D0=BE=D0=B3=D1=80=D0=B0=D1=84=D0=B8?=
 =?UTF-8?q?=D0=B8=20=D0=B2=D1=82=D0=BE=D1=80=D0=BE=D0=B3=D0=BE=20=D1=81?=
 =?UTF-8?q?=D0=B5=D0=BC=D0=B5=D1=81=D1=82=D1=80=D0=B0=20=D0=B4=D0=BE=20?=
 =?UTF-8?q?=D0=BA=D0=BE=D0=BD=D1=82=D1=80=D0=BE=D0=BB=D1=8C=D0=BD=D0=BE?=
 =?UTF-8?q?=D0=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 cryptography/lectures/lecture17.tex | 234 ++++++++++++++++++++++++++++++++++++
 1 file changed, 234 insertions(+)
 create mode 100644 cryptography/lectures/lecture17.tex

(limited to 'cryptography/lectures/lecture17.tex')

diff --git a/cryptography/lectures/lecture17.tex b/cryptography/lectures/lecture17.tex
new file mode 100644
index 0000000..b5fa730
--- /dev/null
+++ b/cryptography/lectures/lecture17.tex
@@ -0,0 +1,234 @@
+% Лекция 17 (10.02.23)
+
+\paragraph{Cipher Feedback.}
+
+Режим CFB (Cipher Feedback, гаммирование с обратной связью по шифротексту)
+удобен в ситуациях, когда требуется шифровать символы поступающего потока, не
+дожидаясь формирования целого блока данных.
+
+Через CFB-m обозначается режим шифрования, в котором блоки открытого и
+шифрованного текстов имеют длину $m$ битов ($m$ --- параметр), $1 \leq m \leq
+2n$. Для сообщения, состоящего из байтов, удобно взять $m = 8$.
+
+% Уточнение
+
+[Автоматные модели симметричных криптосистем. \emph{Шифрующим автоматом}
+называется система $A_\text{ш} = (X, S, Y, K, z, g, h, f)$, где конечные
+множества
+\begin{itemize}
+  \item $X$ --- алфавит открытого текста;
+  \item $S$ --- множество состояний (внутренний алфавит);
+  \item $Y$ --- алфавит шифрованного текста;
+  \item $K$ --- ключевое множество шифрующего автомата;
+\end{itemize}
+и заданы функции шифрующего автомата
+\begin{itemize}
+  \item $x \to K \to S$, называется \emph{функцией инициализации};
+  \item $g : S \times K \times X \to K$ --- функцией обновления ключа;
+  \item $h : S \times K \times X \to S$ --- функцией переходов;
+  \item $f : S \times K \times X \to Y$ --- функцией выходов.
+\end{itemize}
+
+Элементы множества $K$ называются \emph{ключами шифрующего автомата}.
+
+Если функция $g(s, k, x)$ отлична от тождественного отображения множества $K$,
+то есть значение ключа шифрующего автомата зависит от номера такта, то шифрующий
+автомат называется \emph{мультиключевым}. В противном случае шифрующий автомат
+называется \emph{моноключевым}.]
+
+% Конец уточнения
+
+Блочный шифр в режиме CFB-m моделируется моноключевым шифрующим автоматом
+$A_\text{CFB}^m = (X, S, Y, K, z, h, f_m)$, где $X = Y = V_m, S = V_{2n}, z =
+s1$ --- не зависящая от ключа $k$ синхропосылка, а функции $f_m$ и $h$ имеют вид
+\begin{align*}
+  f_m &= (s_t, k, x_t) = y_t = v^m(E_k(s_t)) \oplus x_t; \\
+  h(s_t, k, x_t) &= s_{t + 1} = (w^m(s_t), y_t), t = 1, 2, \dots
+\end{align*}
+
+На рисунке показана схема зашифрования (в левой части) и расшифрования (в
+правой части) в режиме CFB-m. В обеих процедурах базовый режим используется
+только для шифрования (реализации подстановки $E^{-1}_k$ не требуется).
+
+% TODO: рис.1
+
+Как и в режиме CBC, синхропосылка может передаваться в линию связи в открытом
+виде. Однако необходимо исключить повторение синхропосылки в различных
+сообщениях, шифруемых одинаковым ключом.
+
+Искажение одного бита в блоке $x_t$ влечёт искажение одного бита в $y_t$ и в
+среднем половины битов во всех блоках шифротекста, начиная с $y_{t + 1}$, но
+при расшифровании получается открытый текст с той же единственной ошибкой.
+
+Искажение $i$-го бита в блоке $y_t$ влечёт искажение $i$-го бита в блоке $x_t$.
+Затем ошибка поступает в регистр состояний и искажает в среднем половину битов
+в каждом из следующих $l$ блоков, где $\left[\frac{2n}{m}\right] \leq l \leq
+\left] \frac{2n}{m} \right[$.
+
+В дальнейшем блоки расшифровываются корректно.
+
+Режим CFB самостоятельно восстанавливается после ошибок синхронизации.
+
+
+\paragraph{Output Feedback.}
+
+Блочный шифр в режиме OFB (Output Feedback, \emph{гаммирование} или
+\emph{внутренняя обратная связь}) можно рассматривать как синхронный шифр
+гаммирования, обрабатывающий $m$-битовые блоки открытого или шифрованного текста
+(обозначение --- OFB-m).
+
+Этот шифр моделируется моноключевым шифрующим автоматом $A_\text{OFB}^m = (X, S,
+Y, K, z, h, f_m)$, где $X = Y = V_m, S = V_{2n}, z = s_1$ --- не зависящая от
+ключа $k$ синхропосылка, а функции выходов $f_m$ и переходов $h$ имеют вид
+\begin{align*}
+  f_m &= (s_t, k, x_t) = y_t = v^m(E_k(s_t)) \oplus x_t; \\
+  h(s_t, k) &= s_{t + 1} = (w^m(s_t), v^m(E_k(s_t))), t = 1, 2, \dots
+\end{align*}
+
+На рисунке показана схема зашифрования (в левой части) и расшифрования (в правой
+части) в режиме OFB-m. В обеих процедурах базовый режим используется только для
+зашифрования.
+
+% TODO: рис. 2
+
+При использовании режима OFB важно сохранять синхронизм. Для этого необходимо
+предусмотреть средство контроля над синхронизмом и средство восстановления
+синхронизма в случае его потери.
+
+Рекомендации по синхропосылке те же, что и в режимах CBC и CFB-m.
+
+В режиме OFB ошибки не распространяются.
+
+
+\subsection{Методы анализа блочных шифрсистем}
+
+Рассмотрим эксплуатацию блочных шифров в режиме простой замены.
+
+\begin{enumerate}
+  \item
+    Серьёзным недостатком режима простой замены является то, что зашифрование
+    одинаковых блоков исходного текста даёт идентичных блоки шифротекста.
+
+    В результате криптоаналитик лишь на основе шифрованных данных может делать
+    выводы о свойствах исходного текста.
+
+    Если некоторые блоки открытого текста повторились, то во всех зашифрованных
+    сообщениях сообщениях, независимо от используемых ключей, на одинаковых
+    местах будут встречаться повторяющиеся блоки шифрованных текстов.
+
+    Другой пример --- передача ключей в зашифрованном виде по линиям связи.
+  \item
+    При достаточно большой длине шифртекста можно применять методы анализа,
+    использующие статистические характеристики открытых текстов.
+
+    Например, вычисляя частоты появления блоков в шифрованном тексте и проводя
+    опробование часто повторяющихся блоков, начиная с наиболее вероятных
+    сочетаний в открытом тексте, можно составить словарь соответствия между
+    блоками открытого и шифрованного текстов.
+
+    Далее, развивая текст по смыслу с учётом избыточности открытых текстов,
+    найденные блоки открытого текста можно дополнять соседними блоками.
+
+    При этом одновременно восстанавливается открытый текст и дополняется словарь
+    соответствия. Этот метод эффективен, когда наблюдается стандартность
+    переписки.
+  \item
+    При шифровании осмысленных текстов в открытом тексте могут появляться
+    не все сочетания знаков, что проявляется в фактическом сокращении числа
+    используемых соответствий между блоками открытого и шифрованного текстов.
+
+    Однако эта слабость легко устранима, если перед шифрованием применить к
+    открытому тексту процедуру сжатия информации.
+  \item
+    Проблема последнего неполного блока данных при шифровании текстов, длины
+    которых не кратны размеру блока. При использовании блочного шифра этот
+    неполный блок должен быть каким-либо дополнен до стандартной длины.
+
+    Если при этом алгоритм дополнения выбран неудачно, то при определении
+    соответствующего блока открытого текста у криптоаналитика появляются
+    дополнительные возможности.
+  \item
+    С помощью метода встречи посередине, Р. Меркель и М. Хеллман показали, как
+    можно схему двукратного шифрования.
+
+    Предположим, что известны блок $M$ открытого текста и соответствующий ему
+    блок $C$ шифрованного текста. Алгоритм вскрытия неизвестных ключей $k_1$ и
+    $k_2$ состоит из двух этапов.
+
+    На первом этапе перебираются все возможные варианты ключа $k_1$. Для каждого
+    варианта $k$ ключа $k_1$ вычисляются значения $A(k) = E_k(M)$, после чего
+    значения $k$ помещаются в память по адресу $A(k)$.
+
+    На втором этапе опробуются
+
+  \item
+    Предположим, что известны блок $M$ открытого текста и соответствующий ему
+    блок $C$ шифрованного текста. Алгоритм вскрытия неизвестных ключей $k_1$ и
+    $k_2$ состоит из двух этапов.
+
+    На первом этапе перебираются все возможные варианты ключа $k_1$. Для каждого
+    варианта $k$ ключа $k_1$ вычисляются значения $A(k) = E_k(M)$, после чего
+    значения $k$ помещаются в память по адресу $A(k)$.
+
+    На втором этапе опробуются возможные варианты ключа $k_2$. Для опробуемого
+    варианту $k'$ ключа $k_2$ вычисляются значения $A(k') = D_{k'}(C)$ и
+    производится обращение в память по адресу $A(k')$. Если по этому адресу 
+    памяти записи отсутствуют, то происходит переход к опробованию следующего
+    варианта $k'$ ключа $k_2$. Если же по адресу $A(k')$ в память хранится
+    ключ $k$, то образуется допустимая пара ключей $(k, k')$, удовлетворяющая
+    равенству $C = E_{k'}(E_k(M))$.
+
+    Таким образом, вместо $|K|^2$ операций требуется $2|K|$ опробований и
+    столько же обращений к памяти, таким образом затраты метода встречи
+    посередине составляют порядка $4|K|$ операций.
+
+  \item
+    Идея метода \emph{линейного анализа} состоит в \emph{линеаризации}
+    уравнений шифрования, то есть замене сложных преобразований, описывающих
+    алгоритм шифрования, их приближениями в классе линейных функций. Под
+    приближением в классе линейных функций (или \emph{линейным аналогом})
+    понимается линейная функция, значения которой для достаточно большого
+    числа наборов аргументов совпадают со значениями данной функции шифрования.
+
+    Таким образом, линейный анализ сводит задачу определения ключей к решению
+    системы линейных уравнений, в которой правые части уравнений известны с
+    некоторой вероятностью. Если распределение значений правых частей уравнений
+    системы отлично от равномерного распределения, и имеется достаточно большое
+    число уравнений, то решение такой системы линейных уравнений может быть
+    найдено статистическими методами.
+
+    Проблема построения блочных шифров, для которых удаётся доказать отсутствие
+    линейных аналогов, является весьма сложной задачей современной прикладной
+    криптографии.
+
+  \item
+    Методы \emph{дифференциального (разностного) анализа} строятся в
+    предположении, что криптоаналитик имеет для анализа несколько текстов,
+    зашифрованных на одном ключе, и дополнительно предполагается известной
+    информация о том, как различаются между собой открытые тексты.
+
+    В этом случае криптоаналитик получает информацию о том, как заданные отличия
+    в открытых текстах проявляются в шифротекстах, или, другими словами, как
+    разность аргументов шифрующего преобразования отражается на изменении его
+    значений.
+
+    Поскольку шифрующее преобразование однозначно определяется ключом, то
+    информация о зависимостях между разностями значений аргументов и разностями
+    соответствующих значений функции шифрования может быть использована при
+    построении алгебраических и статистических методов вскрытия ключей алгоритма
+    шифрования.
+
+    Аналогичная ситуация возникает в случае, когда криптоаналитику удаётся
+    получить результат зашифрования некоторого сообщения на разных ключах с
+    дополнительной информацией о различных использованных ключей.
+
+    Блочные шифры редко используются в режиме простой замены для шифрования
+    длинных сообщений.
+
+    Режим простой замены применяется в основном в системах передачи ключей и в
+    платёжных системах, где сообщения состоят из небольшого числа блоков.
+
+    Чаще блочные шифры используются в режиме шифрования с обратной связью, когда
+    очередной блок шифра зависит не только от ключа, но и от предшествующих
+    блоков шифротекста.
+\end{enumerate}
-- 
cgit v1.2.3

