Государственный стандарт РФ ГОСТ Р ИСО/МЭК 10116-93
"Информационная технология. Режимы работы для алгоритма n-разрядного блочного шифрования"
(утв. постановлением Госстандарта РФ от 28 декабря 1993 г. N 272)
Information technology. Modes of operation for an n-bit block cipher algorithm
Дата введения 1 июля 1994 г.
Введен впервые
Приказом Росстандарта от 19 июня 2015 г. N 750-ст взамен настоящего ГОСТа с 1 января 2016 г. введен в действие ГОСТ Р 34.13-2015 "Информационная технология. Криптографическая защита информации. Режимы работы блочных шифров" для добровольного применения в РФ
1 Область применения
Настоящий стандарт описывает четыре режима работы для алгоритма n-разрядного блочного шифрования.
Примечание 1 - Приложение А содержит пояснения характеристик каждого режима.
Настоящий стандарт устанавливает четыре определенных режима так, что при применении алгоритма n-разрядного блочного шифрования (например, защиты передачи данных, хранения данных, подтверждения подлинности) этот стандарт представляет полезную справку, например для требований к режиму работы и значениям параметров (соответственно).
Для некоторых режимов набивка может требовать гарантий, чтобы все переменные открытого текста были необходимой длины.
Примечание 2 - Для режима работы шифрования с обратной связью - CFB (Cipher Feedback) (см. раздел 6) определяются два параметра: j и k. Для режима работы с обратной связью по выходу - OFB (Output Feedback) (см. раздел 7) задается один параметр j. При использовании одного из этих режимов работы значение(я) параметров должно быть выбрано и применено всеми сторонами при передаче сообщений.
2 Определения
В настоящем стандарте использованы следующие определения.
2.1 Открытый текст - незашифрованная информация.
2.2 Шифротекст - зашифрованная информация.
2.3 Алгоритм n-разрядного блочного шифрования - алгоритм блочного шифрования, в котором блоки открытого текста и блоки шифротекста имеют длину n разрядов.
2.4 Связывание блоков - такое шифрование информации, при котором каждый блок шифротекста является криптографически зависимым от предшествующего блока шифротекста.
2.5 Начальное значение - IV (Initializing Value) - значение, используемое в определении начальной точки процесса шифрования.
2.6 Запускающая переменная - SV (Starting Variable) - переменная, полученная от начального значения и используемая в определении запускающей точки режимов работы.
Примечание 3 - Метод получения запускающей переменной от начального значения не определен в настоящем стандарте. Он требует описания при любом использовании режимов работы.
2.7 Криптографическая синхронизация - согласование процесса шифрования и дешифрования.
3 Обозначения
В настоящем стандарте функциональное отношение, определяемое алгоритмом блочного шифрования, записывается как
С = еK(Р),
где Р - блок открытого текста;
С - блок шифротекста;
K - ключ.
Выражение еK является операцией шифрования, использующей ключ K.
Соответствующая функция дешифрования записывается как
P=dK(C).
Переменная, обозначенная заглавной буквой, как например вышеуказанными буквами Р и С, представляет собой одномерный массив разрядов.
Например,
и
представляют собой массивы m разрядов, пронумерованных от 1 до m. Все массивы разрядов записываются с наибольшего значащего разряда в левой позиции.
Операция сложения по модулю 2, известная также как функция "исключающее или", представляется символом . Операция, относящаяся к массивам, например к А и В, определяется как
.
Операция выбора совокупности j старших слева разрядов массива А, чтобы генерировать j-разрядный массив, записывается как
.
Эта операция определена только для , где m - число разрядов в массиве А.
"Функция сдвига" определяется следующим образом.
Для заданных m-разрядной переменной X и k-разрядной переменной F, где , действие функции сдвига (X|F) таково, что образует m-разрядную переменную
при k<m.
В результате происходят сдвиг разрядов массива X влево на k позиций с отбрасыванием , ..., и размещение массива F на самых правых k позициях массива X. Если k=m, происходит полное замещение массива X на F.
Используется особый случай этой функции, в котором берется m-разрядная переменная I(m) из последующих "1" битов и сдвигается переменной F из k разрядов, где .
В результате:
при k<m;
при k=m,
где m-k наиболее старших разрядов представляют собой "1".
4 Режим электронного кодового справочника - ЕСВ (Electronic Codebook)
4.1 Переменные, используемые для режима шифрования ЕСВ:
a) последовательность из q блоков открытого текста , , ..., каждый по n разрядов;
b) ключ K;
c) получающаяся в результате последовательность q блоков шифротекста , , ..., каждый по n разрядов.
5 Режим последовательного блочного шифрования - СВС (Cipher Block Chaining)
5.1 Переменные, используемые для режима СВС при шифровании:
a) последовательность q блоков открытого текста , , ..., , каждый по n разрядов;
b) ключ K;
c) запускающая переменная SV из n разрядов;
d) последовательность q блоков шифротекста , , ..., , каждый по n разрядов.
5.2 Режим СВС при шифровании описывается следующим образом:
шифрование первого блока открытого текста
, (3)
далее
для i=2, 3, ..., q. (4)
Данная процедура показана в верхней части рисунка 1. Запускающая переменная SV используется для генерации первых выходных данных шифротекста. Затем шифротекст суммируется по модулю 2 к последующему открытому тексту перед шифрованием.
5.3 Режим СВС при дешифровании описывается следующим образом:
дешифрование первого зашифрованного блока
, (5)
далее
для i=2, 3, ..., q. (6)
Эта процедура показана в нижней части рисунка 1.
6 Режим шифрования с обратной связью - CFB (Cipher Feedback)
6.1 Работу режима CFB определяют два параметра:
- размер переменной обратной связи k, где ;
- размер переменной открытого текста j, где .
Переменные, используемые при работе в режиме CFB, следующие:
a) входные переменные:
1) последовательность q переменных открытого текста , , ..., , каждая по j разрядов;
2) ключ K;
3) запускающая переменная SV, имеющая n разрядов;
b) промежуточные результаты:
1) последовательность q входных блоков алгоритма , , ..., , каждый по n разрядов;
2) последовательность q выходных блоков алгоритма , , ..., , каждый по n разрядов;
3) последовательность q переменных , , ..., , каждая по n разрядов;
4) последовательность q-1 переменных обратной связи , , ..., , каждая по k разрядов;
с) выходные переменные, т.е. последовательность q переменных шифротекста , , ..., , каждая по j разрядов.
6.2 Входной блок X представляет собой ряд его начальных значений
. (7)
Операция шифрования каждой переменной открытого текста включает в себя пять этапов:
е) функцию сдвига
. (12)
Эти этапы повторяются для i=1, 2, ..., q, заканчиваясь уравнением (12) на последнем цикле. Процедура представлена на левой стороне рисунка 2. Старшие слева j битов выходного блока Y алгоритма шифрования используются для шифрования j-разрядной переменной открытого текста сложением по модулю 2. Оставшиеся разряды блока Y отбрасываются. Переменные открытого текста и шифротекста имеют разряды, пронумерованные от 1 до j.
Переменная шифротекста дополняется размещением k-j битов "1" в позиции ее старших слева разрядов так, чтобы она стала k-разрядной переменной обратной связи F. Затем разряды входного блока X сдвигаются влево на k позиций и F вставляется в самые правые k позиций, чтобы образовать новое значение X. В этой операции сдвига самые левые k разрядов блока X отбрасываются.
6.3 Переменные, используемые для дешифрования, являются такими же, как и те, которые используются для шифрования. Входной блок X представляет собой начальные значения .
Операция дешифрования каждой переменной шифротекста включает в себя пять этапов:
е) функцию сдвига
. (17)
Эти этапы повторяются для i=1, 2, ..., q, заканчиваясь уравнением (17) в последнем цикле. Процедура представлена в правой части рисунка 2. Самые левые j разрядов выходного блока Y алгоритма шифрования используются для дешифрования j-разрядной переменной шифротекста сложением по модулю 2. Оставшиеся разряды блока Y отбрасываются. Переменные открытого текста и шифротекста имеют разряды, пронумерованные от 1 до j.
Переменная шифротекста дополняется размещением k-j битов "1" в позициях самых левых разрядов так, чтобы она стала k-разрядной переменной обратной связи F. Затем разряды входного блока X сдвигаются влево на k позиций и F вставляется в самые правые k позиций, чтобы образовать новое значение X. В этой операции сдвига самые левые k разрядов блока X отбрасываются.
6.4 Рекомендуется, чтобы режим CFB использовался с равными значениями j и k. При этой рекомендации (j=k) уравнений (11) и (16) могут быть записаны в виде
(подставлено j=k).
7 Режим с обратной связью по выходу - OFB (Output Feedback)
7.1 Режим работы OFB определяет один параметр, т.е. размер переменной открытого текста j, где .
Переменные, используемые при работе в режиме OFB:
a) входные переменные:
1) последовательность q переменных открытого текста , , ..., по j разрядов каждая;
2) ключ K;
3) запускающая переменная SV из n разрядов;
b) промежуточные результаты:
1) последовательность q входных блоков алгоритма , , ..., , по n разрядов каждый;
2) последовательность q выходных блоков алгоритма , , ..., , по n разрядов каждый;
3) последовательность q переменных , , ..., , по j разрядов каждая;
с) выходные переменные, т.е. последовательность q переменных шифротекста , , ..., , по j разрядов каждая.
7.2 Входной блок X представляет собой ряд его начальных значений
. (18)
Операция шифрования каждой переменной открытого текста включает в себя четыре этапа:
d) операцию обратной связи
. (22)
Эти этапы повторяются для i=1, 2, ..., q, заканчиваясь уравнением (21) на последнем цикле. Процедура показана в левой части рисунка 3. Результат каждого применения алгоритма шифрования, которым является блок , используется для обратной связи и становится следующим значением , а именно . Самые левые j разрядов в используются для шифрования входной переменной.
7.3. Переменные, используемые для дешифрования, являются такими же, как и используемые для шифрования. Входной блок X представляет собой ряд его начальных значений .
Операция дешифрования каждой переменной шифротекста включает в себя четыре этапа:
d) операцию обратной связи
. (26)
Эти этапы повторяются для i=1, 2, ..., q, заканчиваясь уравнением (26) на последнем цикле. Процедура представлена в правой части рисунка 3. Значения и , используемые как для дешифрования, так и для шифрования, одинаковы; отличается только уравнение (25).
Если вы являетесь пользователем интернет-версии системы ГАРАНТ, вы можете открыть этот документ прямо сейчас или запросить по Горячей линии в системе.
Государственный стандарт РФ ГОСТ Р ИСО/МЭК 10116-93 "Информационная технология. Режимы работы для алгоритма n-разрядного блочного шифрования" (утв. постановлением Госстандарта РФ от 28 декабря 1993 г. N 272)
Текст ГОСТа приводится по официальному изданию Госстандарта России, 1994 г.
Дата введения 1 июля 1994 г.
Приказом Росстандарта от 19 июня 2015 г. N 750-ст взамен настоящего ГОСТа с 1 января 2016 г. введен в действие ГОСТ Р 34.13-2015 "Информационная технология. Криптографическая защита информации. Режимы работы блочных шифров" для добровольного применения в РФ
1 Разработан и внесен Техническим комитетом ТК 22 "Информационная технология"
2 Утвержден и введен в действие Постановлением Госстандарта России от 28.12.93 N 272
Настоящий стандарт подготовлен на основе применения аутентичного текста международного стандарта ИСО/МЭК 10116-91 "Информационная технология. Режимы работы для алгоритма n-разрядного блочного шифрования"
3 Введен впервые