-
Notifications
You must be signed in to change notification settings - Fork 210
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Добавлены разделы про имитовставку и про режим GCM
- Loading branch information
Showing
7 changed files
with
622 additions
and
179 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
\subsection{Счётчик с аутентификаций Галуа} | ||
\selectlanguage{russian} | ||
|
||
Режим счётчика с аутентификацией Галуа был предложен Девидом МакГрю и Джоном Виега в 2004 году (\langen{Galois/Counter Mode, GCM}, рис.~\ref{fig:GCM}, \cite{McGrew:Viega:2004}). Данный режим обеспечивает одновременно конфиденциальность и целостность, при условии правильного использования. | ||
|
||
\begin{figure}[bt] | ||
\centering | ||
\includegraphics[width=1\textwidth]{pic/GCM} | ||
\caption{Режим счётчика с аутентификаций Галуа. Пунктирной рамкой выделена область формирования \emph{гаммы}, независящей от открытого текста.} | ||
\label{fig:GCM} | ||
\end{figure} | ||
|
||
Результатом работы режима, кроме набора шифроблоков, является тег аутентификации, который должен быть использован принимающей стороной для проверки целостности сообщения. Как и в режиме выработки имитовставки, генерация данного тега возможна только легальным пользователем -- знающим секретный ключ, который был использован для шифрования данных. | ||
|
||
<<Верхняя>> часть режима является режимом работы счётчика. В качестве первого значения берётся дополнение нулями вектора инициализации до размера обрабатываемого блока. Потом, как и в режиме CTR, правая часть увеличивается на 1 для каждого следующего блока. Значения счётчика шифруются на секретном ключе $K$ для получения блоков гаммы. Самый первый блок полученной гаммы используется не для шифрования открытого текста, а для формирования тега аутентификации. | ||
|
||
Сам тег аутентификации вырабатывается следующим образом. На вход <<подрежима>> генерации тега сначала (опционально) подаются дополнительные данные (\langen{additional authenticated data, AAD}), которые не нужно шифровать в режиме GCM, но которым нужно обеспечить целостность. Например, это может быть заголовок передаваемого пакета данных. После того, как эти данные закончатся, на вход начнут подаваться блоки шифротекста $C_1, C_2, \dots, C_n$. Использование блоков шифротекста, а не открытого текста, позволяет получателю проверить целостность передаваемых данных до того, как приступит к расшифровке. В качестве последнего блока выступает конкатенация длин дополнительных данных и открытого текста. | ||
|
||
Формирование тега происходит через побитовое сложение результата предыдущего блока с новым блоком AAD или $C_j$ и умножение результата на константу $H$, которая в двоичном виде равна результату шифрования нулевого вектора (блока, заполненного нулями) на ключе $K$: | ||
|
||
\[ \begin{array}{l} | ||
H = E_K ( 0^{\{n\}} ) \\ | ||
\end{array} \] | ||
|
||
Умножение на константу $H$ происходит в поле Галуа $\GF{2^{n}}$. Рекомендуемый порождающий многочлен поля для шифра AES (с размером блока 128 бит): | ||
|
||
\[ \begin{array}{l} | ||
f(x) = x^{128} + x^7 + x^2 + x + 1. | ||
\end{array} \] | ||
|
||
Результат умножения самого последнего блока побитово складывается с первым блоком сформированной гаммы. | ||
|
||
Данный режим обеспечивает и конфиденциальность, и целостность. Шифровать отдельные блоки можно параллельно, а вычисление тега аутентификации делается намного быстрее, чем шифрование. Однако любая ошибка передачи приведёт к вычислению некорректного тега аутентификации, а отличить изменение текста в результате ошибки передачи от вмешательства злоумышленника принципиально невозможно. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
\subsection{Режим имитовставки}\index{имитовствка!(} | ||
\selectlanguage{russian} | ||
|
||
Режим выработки имитовставки (рис.~\ref{fig:GOST_MAC}, \cite{GOST-89}) принципиально отличается от рассмотренных ранее режимов тем, что призван обеспечивать не конфиденциальность, а целостность. Результатом является блок данных фиксированного размера (в ГОСТ 28147-89 -- до 32 бит), длина которого не зависит от длины исходного сообщения. | ||
|
||
\begin{figure}[bt] | ||
\centering | ||
\includegraphics[width=1\textwidth]{pic/GOST_MAC} | ||
\caption{Режим выработки имитовставки} | ||
\label{fig:GOST_MAC} | ||
\end{figure} | ||
|
||
Входное сообщение как и ранее разбивается на блоки равной длины $M_1, M_2, \dots, M_n$. Последний блок, при необходимости, дополняется (ГОСТ 28147-89 -- нулями). Формула выработки имитовставки выглядит следующим образом: | ||
|
||
\[ \begin{array}{l} | ||
X_1 = M_1; \\ | ||
Y_j = E_K ( X_j ), ~ j = 1, 2, \dots, n; \\ | ||
X_j = Y_{j-1} \oplus M_j, ~ j = 2, \dots, n; \\ | ||
\textbf{MAC} = Y_n. | ||
\end{array} \] | ||
|
||
В ГОСТ 28147-89 для режима выработки имитовставки функция шифрования использует 16 раундов вместо 32. | ||
|
||
Как уже было сказано, данный режим обеспечивает только целостность информации. Причём саму информацию необходимо передавать, и, возможно, шифровать отдельно. Режим не обеспечивает возможности параллельных вычислений для разных блоков открытого текста. | ||
|
||
Принципиальным недостатком является необходимость использовать секретный ключ\index{ключ!секретный} как для выработки имитовставки, так и для её валидации (путём повторной выработки на принимающей стороне и сравнения с результатом). Позже мы рассмотрим функциональных электронных цифровых подписей, которые по своему назначению схожи с имитовставкой, но обеспечивают вариант более гибкого использования -- без необходимости раскрытия ключа, используемого для генерации ЭЦП. | ||
|
||
\index{имитовствка!)} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -23,3 +23,7 @@ \section{Режимы работы блочных шифров}\label{section-bl | |
\input{CFB} | ||
|
||
\input{CTR} | ||
|
||
\input{GOST_MAC} | ||
|
||
\input{GCM} |
Oops, something went wrong.