forked from vlsergey/infosec
-
Notifications
You must be signed in to change notification settings - Fork 0
/
GOST_28147-89.tex
43 lines (31 loc) · 5.3 KB
/
GOST_28147-89.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
\section{ГОСТ 28147-89}\index{шифр!ГОСТ 28147-89|(}
\selectlanguage{russian}
Российский стандарт шифрования, получивший известность как ГОСТ 28147-89 (\cite{GOST-89}), относится к действующим симметричным одноключевым криптографическим алгоритмам. Он зарегистрирован 2 июня 1989 года и введён в действие Постановлением Государственного комитета СССР по стандартам от 02.06.89 \No1409. В настоящий момент шифр известен под названиями <<ГОСТ>> (<<GOST>>) и <<Магма>>. Последнее название появилось в стандарте ГОСТ Р 34.12-2015~\cite{GOST-R:34.12-2015}, описывающем как данный блочный шифр, так и более новый шифр <<Кузнечик>>, о котором будет рассказано в разделе \ref{section-grig}.
ГОСТ 28147-89 устанавливает единый алгоритм криптографических преобразований для систем обмена информацией в вычислительных сетях и определяет правила шифрования и расшифрования данных, а также выработки имитовставки\index{имитовставка}. Основные параметры шифра таковы: размер блока составляет 64 бита, число раундов $m=32$, имеется 8 ключей по 32 бита каждый, так что общая длина ключа -- 256 бит. Основа алгоритма -- цепочка ячеек Фейстеля\index{ячейка Фейстеля}.
\begin{figure}[!ht]
\centering
\includegraphics[width=0.6\textwidth]{pic/gost-28147-89}
\caption{Схема ГОСТ 28147-89\label{fig:gost-28147-89}}
\end{figure}
Структурная схема алгоритма шифрования представлена на рис.~\ref{fig:gost-28147-89} и включает:
\begin{itemize}
\item ключевое запоминающее устройство (КЗУ) на 256 бит, которое состоит из восьми 32-разрядных накопителей $(X_0, X_1, X_2, X_3, X_4, X_5, X_6, X_7)$ и содержит сеансовые ключи шифрования одного раунда;
\item 32-разрядный сумматор $\boxplus$ по модулю $2^{32}$;
\item сумматор $\oplus$ по модулю 2;
\item блок подстановки $(S)$;
\item регистр циклического сдвига на одиннадцать шагов в сторону старшего разряда $(R)$.
\end{itemize}
Блок подстановки $(S)$ состоит из 8 узлов замены -- s-блоков с памятью на 64 бита каждый. Поступающий на вход блока подстановки 32-разрядный вектор разбивается на 8 последовательных 4-разрядных векторов, каждый из которых преобразуется в 4-разрядный вектор соответствующим узлом замены. Узел замены представляет собой таблицу из 16 строк, содержащих по 4 бита в строке. Входной вектор определяет адрес строки в таблице, заполнение данной строки является выходным вектором. Затем 4-разрядные выходные векторы последовательно объединяются в 32-разрядный вектор.
При перезаписи информации содержимое $i$-го разряда одного накопителя переписывается в $i$-й разряд другого накопителя.
Ключ, определяющий заполнение КЗУ, и таблицы блока подстановки $K$ являются секретными элементами.
Стандарт не накладывает ограничений на степень секретности защищаемой информации.
ГОСТ 28147-89 удобен как для аппаратной, так и для программной реализаций.
Алгоритм имеет четыре режима работы:
\begin{itemize}
\item простой замены,
\item гаммирования,
\item гаммирования с обратной связью,
\item выработки имитовставки\index{имитовставка}.
\end{itemize}
Из них первые три -- режимы шифрования, а последний -- генерирования имитовставки\index{имитовставка} (другие названия: инициализирующий вектор, синхропосылка). Подробно данные режимы описаны в следующем разделе.
\index{шифр!ГОСТ 28147-89|)}