summaryrefslogtreecommitdiff
path: root/cryptography/lectures/lecture17.tex
diff options
context:
space:
mode:
authorAndrew Guschin <guschin.drew@gmail.com>2023-03-27 23:17:04 +0400
committerAndrew Guschin <guschin.drew@gmail.com>2023-03-27 23:17:04 +0400
commit5d8de74a3609fe5d453352923bc7daab6a8aaed4 (patch)
treee1ea840fc8fbdef22a726b050933a16d7311c0bb /cryptography/lectures/lecture17.tex
parent7a61d8748bd4a8024f8efb59f494d58d1e4d2aff (diff)
Добавлены лекции по криптографии второго семестра до контрольной
Diffstat (limited to 'cryptography/lectures/lecture17.tex')
-rw-r--r--cryptography/lectures/lecture17.tex234
1 files changed, 234 insertions, 0 deletions
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}