МЕЖГОСУДАРСТВЕННЫЙ СТАНДАРТ
ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ
КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ
РЕЖИМЫ РАБОТЫ БЛОЧНЫХ ШИФРОВ
Information technology. Cryptographic data security. Modes of operation for block ciphers
ГОСТ 34.13-2018
Дата введения
1 июня 2019 года
Предисловие
Цели, основные принципы и основной порядок проведения работ по межгосударственной стандартизации установлены в ГОСТ 1.0-2015 "Межгосударственная система стандартизации. Основные положения" и ГОСТ 1.2-2015 "Межгосударственная система стандартизации. Стандарты межгосударственные, правила и рекомендации по межгосударственной стандартизации. Правила разработки, принятия, обновления и отмены"
Сведения о стандарте
1 РАЗРАБОТАН Центром защиты информации и специальной связи ФСБ России с участием Открытого акционерного общества "Информационные технологии и коммуникационные системы" (ОАО "ИнфоТеКС")
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 26 "Криптографическая защита информации"
3 ПРИНЯТ Межгосударственным советом по метрологии, стандартизации и сертификации (протокол от 29 ноября 2018 г. N 54)
За принятие проголосовали:
| Краткое наименование страны по МК (ИСО 3166) 004-97 | Код страны по МК (ИСО 3166) 004-97 | Сокращенное наименование национального органа по стандартизации |
| Армения | AM | Минэкономики Республики Армения |
| Киргизия | KG | Кыргызстандарт |
| Россия | RU | Росстандарт |
| Таджикистан | TJ | Таджикстандарт |
| Туркмения | TM | Главгосслужба "Туркменстандартлары" |
4 Приказом Федерального агентства по техническому регулированию и метрологии от 4 декабря 2018 г. N 1062-ст межгосударственный стандарт ГОСТ 34.13-2018 введен в действие в качестве национального стандарта Российской Федерации с 1 июня 2019 г.
5 Настоящий стандарт подготовлен на основе применения ГОСТ Р 34.13-2015
6 ВЗАМЕН ГОСТ 28147-89 в части раздела 2 "Режим простой замены"; раздела 3 "Режим гаммирования"; раздела 4 "Режим гаммирования с обратной связью"; раздела 5 "Режим выработки имитовставки"
Информация об изменениях к настоящему стандарту публикуется в ежегодном информационном указателе "Национальные стандарты", а текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ежемесячном информационном указателе "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)
Введение
Настоящий стандарт содержит описание режимов работы блочных шифров. Данные режимы работы блочных шифров определяют правила криптографического преобразования данных и выработки имитовставки для сообщений произвольного размера.
Необходимость разработки настоящего стандарта вызвана потребностью в определении режимов работы блочных шифров, соответствующих современным требованиям к криптографической стойкости.
Настоящий стандарт терминологически и концептуально увязан с международными стандартами ИСО/МЭК 9797-1 [1], ИСО/МЭК 10116 [2], ИСО/МЭК 10118-1 [3], ИСО/МЭК 18033-1 [4], ИСО/МЭК 14888-1 [5].
Примечание - Основная часть стандарта дополнена приложением А "Контрольные примеры".
1 Область применения
Настоящий стандарт распространяется на криптографическую защиту информации и определяет режимы работы блочных шифров.
Режимы работы блочных шифров, определенные в настоящем стандарте, рекомендуется использовать при разработке, производстве, эксплуатации и модернизации средств криптографической защиты информации в системах обработки информации различного назначения.
2 Термины, определения и обозначения
2.1 Термины и определения
В настоящем стандарте применены следующие термины с соответствующими определениями:
2.1.1 алгоритм зашифрования (encryption algorithm): Алгоритм, реализующий зашифрование, т.е. преобразующий открытый текст в шифртекст.
Примечание - Адаптировано из ИСО/МЭК 18033-1 [4].
2.1.2 алгоритм расшифрования (decryption algorithm): Алгоритм, реализующий расшифрование, т.е. преобразующий шифртекст в открытый текст.
Примечание - Адаптировано из ИСО/МЭК 18033-1 [4].
2.1.3 базовый блочный шифр (basic block cipher): Блочный шифр, реализующий при каждом фиксированном значении ключа одно обратимое отображение множества блоков открытого текста фиксированной длины в блоки шифртекста такой же длины.
2.1.4 блок (block): Строка бит определенной длины.
Примечание - Адаптировано из ИСО/МЭК 18033-1 [4].
2.1.5 блочный шифр (block cipher): Шифр из класса симметричных криптографических методов, в котором алгоритм зашифрования применяется к блокам открытого текста для получения блоков шифртекста.
Примечания
1 Адаптировано из ИСО/МЭК 18033-1 [4].
2 В настоящем стандарте установлено, что термины "блочный шифр" и "алгоритм блочного шифрования" являются синонимами.
2.1.6 дополнение (padding): Приписывание дополнительных бит к строке бит.
Примечание - Адаптировано из ИСО/МЭК 10118-1 [3].
2.1.7 зацепление блоков (block chaining): Шифрование информации таким образом, что каждый блок шифртекста криптографически зависит от предыдущего блока шифртекста.
2.1.8 зашифрование (encryption): Обратимое преобразование данных с помощью шифра, который формирует шифртекст из открытого текста.
Примечание - Адаптировано из ИСО/МЭК 18033-1 [4].
2.1.9 имитовставка (message authentication code): Строка бит фиксированной длины, полученная применением симметричного криптографического метода к сообщению, добавляемая к сообщению для обеспечения его целостности и аутентификации источника данных.
Примечание - Адаптировано из ИСО/МЭК 9797-1 [1].
2.1.10 ключ (key): Изменяемый параметр в виде последовательности символов, определяющий криптографическое преобразование.
Примечания
1 Адаптировано из ИСО/МЭК 18033-1 [4].
2 В настоящем стандарте рассматриваются ключи только в виде последовательности двоичных символов (битов).
2.1.11 начальное значение (starting variable): Значение, возможно, полученное из синхропосылки и используемое для задания начальной точки режима работы блочного шифра.
Примечание - Адаптировано из ИСО/МЭК 10116 [2].
2.1.12 открытый текст (plaintext): Незашифрованная информация.
Примечание - Адаптировано из ИСО/МЭК 10116 [2].
2.1.13 расшифрование (decryption): Операция, обратная к зашифрованию.
Примечания
1 Адаптировано из ИСО/МЭК 18033-1 [4].
2 В настоящем стандарте в целях сохранения терминологической преемственности по отношению к нормативным документам, действующим на территории государства, принявшего настоящий стандарт, и опубликованным ранее на русском языке научно-техническим изданиям применяется термин "шифрование", объединяющий операции, определенные терминами "зашифрование" и "расшифрование". Конкретное значение термина "шифрование" определяется в зависимости от контекста упоминания.
2.1.14 симметричный криптографический метод (symmetric cryptographic technique): Криптографический метод, использующий один и тот же ключ для преобразования, осуществляемого отправителем, и преобразования, осуществляемого получателем.
Примечание - Адаптировано из ИСО/МЭК 18033-1 [4].
2.1.15 синхропосылка (initializing value): Комбинация знаков, передаваемая по каналу связи и предназначенная для инициализации алгоритма шифрования.
2.1.16 сообщение (message): Строка бит произвольной конечной длины.
Примечание - Адаптировано из ИСО/МЭК 14888-1 [5].
2.1.17 счетчик (counter): Строка бит длины, равной длине блока блочного шифра, используемая при шифровании в режиме гаммирования.
Примечание - Адаптировано из ИСО/МЭК 10116 [2].
2.1.18 шифр (cipher): Криптографический метод, используемый для обеспечения конфиденциальности данных, включающий алгоритм зашифрования и алгоритм расшифрования.
Примечание - Адаптировано из ИСО/МЭК 18033-1 [4].
2.1.19 шифртекст (ciphertext): Данные, полученные в результате зашифрования открытого текста в целях скрытия его содержания.
Примечание - Адаптировано из ИСО/МЭК 10116 [2].
2.2 Обозначения
В настоящем стандарте применены следующие обозначения:
V* - множество всех двоичных строк конечной длины, включая пустую строку;
- множество всех двоичных строк длины s, где s - целое неотрицательное число; нумерация подстрок и компонент строки осуществляется справа налево, начиная с нуля;
|A| - число компонент (длина) строки AV* (если A - пустая строка, то |A|=0);
A||B - конкатенация строк A, BV* т.е. строка из
, в которой подстрока с большими номерами компонент из
, совпадает со строкой A, а подстрока с меньшими номерами компонент из
, совпадает со строкой B;
- строка, состоящая из r нулей;
- операция покомпонентного сложения по модулю 2 двух двоичных строк одинаковой длины;
- кольцо вычетов по модулю
;
- операция сложения в кольце
;
x modl - операция вычисления остатка от деления целого числа x на целое положительное число l;
- отображение, ставящее в соответствие строке
, m
s, строку
,
, i=0,1,...,m-1;
- отображение, ставящее в соответствие строке
, m
s, строку
,
, i=0,1,...,m-1;
- операция логического сдвига строки A на r компонент в сторону компонент, имеющих
номера. Если
, то
, причем
;
- отображение, ставящее в соответствие строке
многочлен
;
- биективное отображение, сопоставляющее элементу кольца
его двоичное представление, т.е. для любого элемента z
, представленного в виде
где
, i=0,1,...,s-1, выполнено равенство
;
- отображение, обратное к отображению
, т.е.
;
k - параметр алгоритма блочного шифрования, называемый длиной ключа;
n - параметр алгоритма блочного шифрования, называемый длиной блока;
- отображение, реализующее базовый алгоритм блочного шифрования и осуществляющее преобразование блока открытого текста
с использованием ключа (шифрования)
в блок шифртекста
;
- отображение, реализующее зашифрование с использованием ключа
, т.е.
для всех
;
- отображение, реализующее расшифрование с использованием ключа
, т.е.
.
3 Общие положения
Настоящий стандарт определяет следующие режимы работы алгоритмов блочного шифрования:
- режим простой замены (ECB, англ. Electronic Codebook);
- режим гаммирования (CTR, англ. Counter);
- режим гаммирования с обратной связью по выходу (OFB, англ. Output Feedback);
- режим простой замены с зацеплением (CBC, англ. Cipher Block Chaining);
- режим гаммирования с обратной связью по шифртексту (CFB, англ. Cipher Feedback);
- режим выработки имитовставки (англ. Message Authentication Code algorithm).
Данные режимы могут использоваться в качестве режимов для блочных шифров с произвольной длиной блока n.
4 Вспомогательные операции
4.1 Дополнение сообщения
4.1.1 Общие положения
Отдельные из описанных ниже режимов работы (режим гаммирования, режим гаммирования с обратной связью по выходу, режим гаммирования с обратной связью по шифртексту) могут осуществлять криптографическое преобразование сообщений произвольной длины. Для других режимов (режим простой замены, режим простой замены с зацеплением) требуется, чтобы длина сообщения была кратна некоторой величине l. В последнем случае при работе с сообщениями произвольной длины необходимо применение процедуры дополнения сообщения до требуемой длины. Ниже приведены три процедуры дополнения.
Пусть PV* исходное сообщение, подлежащее зашифрованию.
4.1.2 Процедура 1
Пусть r=|P|modl. Положим
,
Примечание - Описанная процедура в некоторых случаях не обеспечивает однозначного восстановления исходного сообщения. Например, результаты дополнения сообщений , такого что
для некоторого q, и
будут одинаковы. В этом случае для однозначного восстановления необходимо дополнительно знать длину исходного сообщения.
4.1.3 Процедура 2
Пусть r=|P|modl. Положим
.
Примечание - Данная процедура обеспечивает однозначное восстановление исходного сообщения. При этом если длина исходного сообщения кратна l, то длина дополненного сообщения будет увеличена.
4.1.4 Процедура 3
Пусть r=|P|modl.
В зависимости от значения r возможны случаи:
- если r=l, то последний блок не изменяется P*=P;
- если r<l, то применяется процедура 2.
Примечания
1 Данная процедура обязательна для режима выработки имитовставки (5.6) и не рекомендуется для использования в других режимах (5.1 - 5.5).
2 Выбор конкретной процедуры дополнения предоставляется разработчику информационной системы и/или регламентируется другими нормативными документами.
4.2 Выработка начального значения
В некоторых режимах работы используются величины, начальное значение которых вычисляется на основании синхропосылки IV; обозначим через m суммарную длину указанных величин. Будем обозначать процедуру выработки начального значения через и называть процедурой инициализации. Будем называть процедуру инициализации тривиальной, если
. Если не оговорено иное, будем считать, что используется тривиальная процедура инициализации на основе синхропосылки необходимой длины.
Во всех описываемых в настоящем стандарте режимах работы не требуется обеспечение конфиденциальности синхропосылки. Вместе с тем процедура выработки синхропосылки должна удовлетворять одному из следующих требований:
- значения синхропосылки для режимов простой замены с зацеплением и гаммирования с обратной связью по шифртексту необходимо выбирать случайно, равновероятно и независимо друг от друга из множества всех допустимых значений. В этом случае значение каждой используемой синхропосылки IV должно быть непредсказуемым (случайным или псевдослучайным): зная значения всех других используемых синхропосылок, значение IV нельзя определить с вероятностью большей, чем ;
- все значения синхропосылок, выработанных для зашифрования на одном и том же ключе в режиме гаммирования, должны быть уникальными, т.е. попарно различными. Для выработки значений синхропосылок может быть использован детерминированный счетчик;
- значение синхропосылки для режима гаммирования с обратной связью по выходу должно быть либо непредсказуемым (случайным или псевдослучайным), либо уникальным.
Примечание - Режим простой замены не предусматривает использования синхропосылки.
4.3 Процедура усечения
В некоторых режимах используется усечение строк длины n до строк длины s, sn, с использованием функции
, т.е. в качестве операции усечения используется операция взятия бит с номерами.
5 Режимы работы алгоритмов блочного шифрования
5.1 Режим простой замены
5.1.1 Общие положения
Длина сообщений, зашифровываемых в режиме простой замены, должна быть кратна длине блока базового алгоритма блочного шифрования n, поэтому при необходимости к исходному сообщению должна быть предварительно применена процедура дополнения.
Зашифрование (расшифрование) в режиме простой замены заключается в зашифровании (расшифровании) каждого блока текста с помощью базового алгоритма блочного шифрования.
5.1.2 Зашифрование
Открытый и при необходимости дополненный текст PV*,
, представляется в виде:
,
, i = 1, 2, ..., q. Блоки шифртекста вычисляют по следующему правилу:
, i = 1, 2, ..., q. (1)
Результирующий шифртекст имеет вид:
.
Зашифрование в режиме простой замены показано на рисунке 1.
Рисунок 1 - Зашифрование в режиме простой замены
5.1.3 Расшифрование
Шифртекст представляется в виде: ,
, i = 1, 2, ..., q. Блоки открытого текста вычисляются по следующему правилу:
, i = 1, 2, ..., q. (2)
Исходный (дополненный) открытый текст имеет вид:
.
Примечание - Если к исходному открытому тексту была применена процедура дополнения, то после расшифрования следует провести обратную процедуру. Для однозначного восстановления сообщения может потребоваться знание длины исходного сообщения.
Расшифрование в режиме простой замены показано на рисунке 2.
Рисунок 2 - Расшифрование в режиме простой замены
5.2 Режим гаммирования
5.2.1 Общие положения
Параметром режима гаммирования является целочисленная величина s, 0<sn. При использовании режима гаммирования не требуется применение процедуры дополнения сообщения.
Для зашифрования (расшифрования) каждого отдельного открытого текста на одном ключе используется значение уникальной синхропосылки .
Зашифрование в режиме гаммирования заключается в покомпонентном сложении открытого текста с гаммой шифра, которая вырабатывается блоками длины s путем зашифрования последовательности значений счетчика , i = 1, 2, ..., базовым алгоритмом блочного шифрования с последующим усечением. Начальным значением счетчика является
. Последующие значения счетчика вырабатываются с помощью функции
следующим образом:
. (3)
5.2.2 Зашифрование
Открытый текст PV* представляется в виде
,
, i = 1, 2, ..., q - 1,
, r
s. Блоки шифртекста вычисляются по следующему правилу:
(4)
Результирующий шифртекст имеет вид:
.
Зашифрование в режиме гаммирования показано на рисунке 3.
Рисунок 3 - Зашифрование в режиме гаммирования
5.2.3 Расшифрование
Шифртекст представляется в виде: ,
, i = 1, 2, ..., q - 1,
, r
s.
Блоки открытого текста вычисляются по следующему правилу:
(5)
Исходный открытый текст имеет вид:
.
Расшифрование в режиме гаммирования показано на рисунке 4.
Рисунок 4 - Расшифрование в режиме гаммирования
5.3 Режим гаммирования с обратной связью по выходу
5.3.1 Общие положения
Параметрами режима гаммирования с обратной связью по выходу являются целочисленные величины s и m, 0<sn,
, z
1 - целое число.
При использовании режима гаммирования с обратной связью по выходу не требуется применение процедуры дополнения сообщения.
При шифровании на одном ключе для каждого отдельного открытого текста используется значение уникальной или непредсказуемой (случайной или псевдослучайной) синхропосылки .
При шифровании в режиме гаммирования с обратной связью по выходу используется двоичный регистр сдвига R длины m. Начальным заполнением регистра является значение синхропосылки IV.
Зашифрование в режиме гаммирования с обратной связью по выходу заключается в покомпонентном сложении открытого текста с гаммой шифра, которая вырабатывается блоками длины s. При вычислении очередного блока гаммы выполняется зашифрование n разрядов регистра сдвига с номерами базовым алгоритмом блочного шифрования. Затем заполнение регистра сдвигается на n бит в сторону разрядов с номерами, при этом в разряды с меньшими номерами записывается полученный выход базового алгоритма блочного шифрования. Блок гаммы вычисляется путем усечения выхода базового алгоритма блочного шифрования.
5.3.2 Зашифрование
Открытый текст PV* представляется в виде
,
, i = 1, 2, ..., q - 1,
, r
s. Блоки шифртекста вычисляются по следующему правилу:
,
(6)
,
.
Результирующий шифртекст имеет вид:
.
Зашифрование в режиме гаммирования с обратной связью по выходу показано на рисунке 5.
Рисунок 5 - Зашифрование в режиме гаммирования с обратной связью по выходу
5.3.3 Расшифрование
Шифртекст представляется в виде: ,
, i = 1, 2, ..., q - 1,
, r
s.
Блоки открытого текста вычисляются по следующему правилу:
,
(7)
,
.
Исходный открытый текст имеет вид:
.
Расшифрование в режиме гаммирования с обратной связью по выходу показано на рисунке 6.
Рисунок 6 - Расшифрование в режиме гаммирования с обратной связью по выходу
5.4 Режим простой замены с зацеплением
5.4.1 Общие положения
Параметром режима простой замены с зацеплением является целочисленная величина m, , z
1 - целое число.
Длина сообщений, зашифровываемых в режиме простой замены с зацеплением, должна быть кратна длине блока базового алгоритма блочного шифрования n, поэтому при необходимости к исходному сообщению должна быть предварительно применена процедура дополнения.
При шифровании на одном ключе для каждого отдельного открытого текста используется значение непредсказуемой (случайной или псевдослучайной) синхропосылки .
При шифровании в режиме простой замены с зацеплением используется двоичный регистр сдвига R длины m. Начальным заполнением регистра является значение синхропосылки IV.
В режиме простой замены с зацеплением очередной блок шифртекста получается путем зашифрования результата покомпонентного сложения значения очередного блока открытого текста со значением n разрядов регистра сдвига с номерами. Затем регистр сдвигается на один блок в сторону разрядов с
номерами. В разряды с меньшими номерами записывается значение блока шифртекста.
5.4.2 Зашифрование
Открытый и при необходимости дополненный текст PV*, |P|= n
q, представляется в виде:
,
, i = 1, 2, ..., q. Блоки шифртекста вычисляются по следующему правилу:
,
(8)
.
Результирующий шифртекст имеет вид:
.
Зашифрование в режиме простой замены с зацеплением показано на рисунке 7.
Рисунок 7 - Зашифрование в режиме простой замены с зацеплением
5.4.3 Расшифрование
Шифртекст представляется в виде ,
, i = 1, 2, ..., q. Блоки открытого текста вычисляются по следующему правилу:
,
(9)
.
Исходный (дополненный) открытый текст имеет вид:
.
Примечание - Если к исходному открытому тексту была применена процедура дополнения, то после расшифрования следует провести обратную процедуру. Для однозначного восстановления сообщения может потребоваться знание длины исходного сообщения.
Расшифрование в режиме простой замены с зацеплением показано на рисунке 8.
Рисунок 8 - Расшифрование в режиме простой замены с зацеплением
5.5 Режим гаммирования с обратной связью по шифртексту
5.5.1 Общие положения
Параметрами режима гаммирования с обратной связью по шифртексту являются целочисленные величины s и m, 0<sn, n
m.
В конкретной системе обработки информации на длину сообщения P может как накладываться ограничение |P|=sq, так и не накладываться никаких ограничений. В случае если такое ограничение накладывается, к исходному сообщению при необходимости должна быть предварительно применена процедура дополнения.
При шифровании на одном ключе для каждого отдельного открытого текста используется значение непредсказуемой (случайной или псевдослучайной) синхропосылки .
При шифровании в режиме гаммирования с обратной связью по шифртексту используется двоичный регистр сдвига R длины m. Начальным заполнением регистра является значение синхропосылки IV.
Зашифрование в режиме гаммирования с обратной связью по шифртексту заключается в покомпонентном сложении открытого текста с гаммой шифра, которая вырабатывается блоками длины s. При вычислении очередного блока гаммы выполняется зашифрование n разрядов регистра сдвига с номерами базовым алгоритмом блочного шифрования с последующим усечением. Затем заполнение регистра сдвигается на s разрядов в сторону разрядов с номерами, при этом в разряды с меньшими номерами записывается полученный блок шифртекста, являющийся результатом покомпонентного сложения гаммы шифра и блока открытого текста.
5.5.2 Зашифрование
Открытый текст PV* представляется в виде
,
, i = 1, 2, ..., q - 1,
, r
s. Блоки шифртекста вычисляются по следующему правилу:
,
(10)
.
Результирующий шифртекст имеет вид:
.
Зашифрование в режиме гаммирования с обратной связью по шифртексту показано на рисунке 9.
Рисунок 9 - Зашифрование в режиме гаммирования с обратной связью по шифртексту
5.5.3 Расшифрование
Шифртекст представляется в виде: ,
, i = 1, 2, ..., q - 1,
, r
s. Блоки открытого текста вычисляются по следующему правилу:
,
(11)
.
Исходный открытый текст имеет вид:
.
Примечание - Если к исходному открытому тексту была применена процедура дополнения, то после расшифрования следует провести обратную процедуру. Для однозначного восстановления сообщения может потребоваться знание длины исходного сообщения.
Расшифрование в режиме гаммирования с обратной связью по шифртексту показано на рисунке 10.
Рисунок 10 - Расшифрование в режиме гаммирования с обратной связью по шифртексту
5.6 Режим выработки имитовставки
5.6.1 Общие положения
Режим выработки имитовставки, описание которого представлено ниже, реализует конструкцию OMAC1 (стандартизован в ISO под названием CMAC [1]).
Параметром режима является длина имитовставки (в битах) 0<sn.
5.6.2 Выработка вспомогательных ключей
При вычислении значения имитовставки используются вспомогательные ключи, которые вычисляются с использованием ключа K. Длины вспомогательных ключей равны длине блока n базового алгоритма блочного шифрования.
Процедура выработки вспомогательных ключей может быть представлена в следующем виде:
;
,
,
где ,
.
Если значение n отлично от 64 и 128, необходимо использовать следующую процедуру определения значения константы . Рассмотрим множество примитивных многочленов степени n над полем GF(2) с наименьшим количеством ненулевых коэффициентов. Упорядочим это множество лексикографически по возрастанию векторов коэффициентов и обозначим через
первый многочлен в этом упорядоченном множестве.
Рассмотрим поле , зафиксируем в нем степенной базис и будем обозначать операцию умножения в этом поле символом . Вспомогательные ключи
и
вычисляются следующим образом:
(12)
Примечание - Вспомогательные ключи и
и промежуточное значение R наряду с ключом K являются секретными параметрами. Компрометация какого-либо из этих значений приводит к возможности построения эффективных методов анализа всего алгоритма.
5.6.3 Вычисление значения имитовставки
Процедура вычисления значения имитовставки похожа на процедуру зашифрования в режиме простой замены с зацеплением при m=n и инициализации начального заполнения регистра сдвига значением : на вход алгоритму шифрования подается результат покомпонентного сложения очередного блока текста и результата зашифрования на предыдущем шаге. Основное отличие заключается в процедуре обработки последнего блока: на вход базовому алгоритму блочного шифрования подается результат покомпонентного сложения последнего блока, результата зашифрования на предыдущем шаге и одного из вспомогательных ключей. Конкретный вспомогательный ключ выбирается в зависимости от того, является ли последний блок исходного сообщения полным или нет. Значением имитовставки MAC является результат применения процедуры усечения к выходу алгоритма шифрования при обработке последнего блока.
Исходное сообщение PV*, для которого требуется вычислить имитовставку, представляется в виде:
,
где , i = 1, 2, ..., q - 1,
, r
n.
Процедура вычисления имитовставки описывается следующим образом:
,
(13)
где
- последний блок сообщения, полученного в результате дополнения исходного сообщения с помощью процедуры 3.
Примечание - Настоятельно рекомендуется не использовать ключ режима выработки имитовставки в других криптографических алгоритмах, в том числе в режимах, обеспечивающих конфиденциальность, описанных в 5.1 - 5.5.
Процедура вычисления имитовставки показана на рисунках 11 - 13.
Рисунок 11 - Вычисление значения имитовставки - общий вид
Рисунок 12 - Вычисление значения имитовставки - случай полного последнего блока
Рисунок 13 - Вычисление значения имитовставки - случай с дополнением последнего блока
КОНТРОЛЬНЫЕ ПРИМЕРЫ
А.1 Общие положения
Настоящее приложение носит справочный характер и не является частью нормативных положений настоящего стандарта.
В настоящем приложении содержатся примеры для зашифрования и расшифрования сообщений, а также выработки имитовставки с использованием режимов работы шифра, определенных в настоящем стандарте. Параметр s выбран равным n в целях упрощения проводимых вычислений, а параметр m выбирался из соображений демонстрации особенностей каждого режима шифрования. Двоичные строки из V*, длина которых кратна 4, записываются в шестнадцатеричном виде, а символ конкатенации ("||") опускается. Таким образом, строка будет представлена в виде
, где
, i = 0, 1, ..., r - 1.
В А.2 приведены примеры для блочного шифра с длиной блока n=128 бит ("Кузнечик"). В А.3 приведены примеры для блочного шифра с длиной блока n=64 бит ("Магма").
А.2 Блочный шифр с длиной блока n = 128 бит
А.2.1 Параметры процессов
Примеры используют следующие параметры:
Ключ
K=8899aabbccddeeff0011223344556677fedcba98765432100123456789abcdef.
Открытый текст - четыре 128-битных блока:
=1122334455667700ffeeddccbbaa9988,
=00112233445566778899aabbcceeff0a,
=112233445566778899aabbcceeff0a00,
=2233445566778899aabbcceeff0a0011.
А.2.2 Режим простой замены
Таблица А.1
Зашифрование в режиме простой замены
А.2.3 Режим гаммирования
А.2.3.1 Зашифрование
s=n=128,
IV=1234567890abcef.
Таблица А.2
Зашифрование в режиме гаммирования
А.2.3.2 Расшифрование
С использованием приведенных значений K, IV и C с помощью операции расшифрования воспроизводятся исходные значения ,
,
,
.
А.2.4 Режим гаммирования с обратной связью по выходу
А.2.4.1 Зашифрование
s=n=128, m=2n=256,
IV=1234567890abcef0a1b2c3d4e5f0011223344556677889901213141516171819.
Таблица А.3
Зашифрование в режиме гаммирования с обратной связью по выходу
А.2.4.2 Расшифрование
С использованием приведенных значений K, IV и C с помощью операции расшифрования воспроизводятся исходные значения ,
,
,
.
А.2.5 Режим простой замены с зацеплением
А.2.5.1 Зашифрование
m=2n=256,
IV=1234567890abcef0a1b2c3d4e5f0011223344556677889901213141516171819.
Таблица А.4
Зашифрование в режиме простой замены с зацеплением
А.2.5.2 Расшифрование
С использованием приведенных значений K, IV и C с помощью операции расшифрования воспроизводятся исходные значения ,
,
,
.
А.2.6 Режим гаммирования с обратной связью по шифртексту
А.2.6.1 Зашифрование
s=n=128, m=2n=256,
IV=1234567890abcef0a1b2c3d4e5f0011223344556677889901213141516171819.
Таблица А.5
Зашифрование в режиме гаммирования с обратной связью по шифртексту
А.2.6.2 Расшифрование
С использованием приведенных значений K, IV и C с помощью операции расшифрования воспроизводятся исходные значения ,
,
,
.
А.2.7 Режим выработки имитовставки
А.2.7.1 Выработка вспомогательных ключей
R=94bec15e269cf1e506f02b994c0a8ea0,
,
=297d82bc4d39e3ca0de0573298151d40
87=297d82bc4d39e3ca0de0573298151dc7,
,
=297d82bc4d39e3ca0de0573298151dc
1=52fb05789a73c7941bc0ae65302a3b8e,
,
.
А.2.7.2 Вычисление имитовставки
s=64.
Таблица А.6
Вычисление имитовставки
А.3 Блочный шифр с длиной блока n = 64 бит
А.3.1 Используемые параметры
Примеры используют следующие параметры:
Ключ
K=ffeeddccbbaa99887766554433221100f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff.
Открытый текст - четыре 64-битных блока:
=92def06b3c130a59,
=db54c704f8189d20,
=4a98fb2e67a8024c,
=8912409b17b57e41.
А.3.2 Режим простой замены
яТаблица А.7
Зашифрование в режиме простой замены
А.3.3 Режим гаммирования
А.3.3.1 Зашифрование
s=n=64,
IV=12345678.
Таблица А.8
Зашифрование в режиме гаммирования
А.3.3.2 Расшифрование
С использованием приведенных значений K, IV и C с помощью операции расшифрования воспроизводятся исходные значения ,
,
,
.
А.3.4 Режим гаммирования с обратной связью по выходу
А.3.4.1 Зашифрование
s=n=64, m=2n=128,
IV=1234567890abcdef234567890abcdef1.
Таблица А.9
Зашифрование в режиме гаммирования с обратной связью
А.3.4.2 Расшифрование
С использованием приведенных значений K, IV и C с помощью операции расшифрования воспроизводятся исходные значения ,
,
,
.
А.3.5 Режим простой замены с зацеплением
А.3.5.1 Зашифрование
m=3n=192,
IV=1234567890abcdef234567890abcdef134567890abcdef12.
Таблица А.10
Зашифрование в режиме простой замены с зацеплением
А.3.5.2 Расшифрование
С использованием приведенных значений K, IV и C с помощью операции расшифрования воспроизводятся исходные значения ,
,
,
.
А.3.6 Режим гаммирования с обратной связью по шифртексту
А.3.6.1 Зашифрование
s=n=64, m=2n=128,
IV=1234567890abcdef234567890abcdef1.
Таблица А.11
Зашифрование в режиме гаммирования с обратной связью по шифртексту
А.3.6.2 Расшифрование
С использованием приведенных значений K, IV и C с помощью операции расшифрования воспроизводятся исходные значения ,
,
,
.
А.3.7 Режим выработки имитовставки
А.3.7.1 Выработка вспомогательных ключей
R=2fa2cd99a1290a12,
,
=5f459b3342521424,
, следовательно
=be8b366684a42848,
,
.
А.3.7.2 Вычисление имитовставки
s=32.
Таблица А.12
Вычисление имитовставки
БИБЛИОГРАФИЯ
Примечание - Оригиналы международных стандартов ИСО/МЭК находятся в национальных (государственных) органах по стандартизации <*> государств, принявших настоящий стандарт.
<*> В Российской Федерации оригиналы международных стандартов ИСО/МЭК находятся в Федеральном информационном фонде стандартов.