From 5d8de74a3609fe5d453352923bc7daab6a8aaed4 Mon Sep 17 00:00:00 2001 From: Andrew Guschin 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