Введен в действие
Приказом Федерального
агентства по техническому
регулированию и метрологии
от 4 декабря 2018 г. N 1061-ст
МЕЖГОСУДАРСТВЕННЫЙ СТАНДАРТ
ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ
КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ
БЛОЧНЫЕ ШИФРЫ
Information technology.
Cryptographic data security. Block ciphers
ГОСТ 34.12-2018
МКС 35.040
Дата введения
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 Таджикстандарт
4 Приказом Федерального агентства по техническому регулированию и метрологии от 4 декабря 2018 г. N 1061-ст межгосударственный стандарт ГОСТ 34.12-2018 введен в действие в качестве национального стандарта Российской Федерации с 1 июня 2019 г.
5 Настоящий стандарт подготовлен на основе применения ГОСТ Р 34.12-2015
6 ВЗАМЕН ГОСТ 28147-89 в части раздела 1 "Структурная схема алгоритма криптографического преобразования"
Информация об изменениях к настоящему стандарту публикуется в ежегодном информационном указателе "Национальные стандарты", а текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ежемесячном информационном указателе "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)
Введение
Настоящий стандарт содержит описание алгоритмов блочного шифрования, которые применяются в криптографических методах защиты информации.
Необходимость разработки стандарта вызвана потребностью в создании блочных шифров с различными длинами блока, соответствующих современным требованиям к криптографической стойкости и эксплуатационным качествам.
Настоящий стандарт терминологически и концептуально увязан с международными стандартами ИСО/МЭК 10116 [1] и стандартами серии ИСО/МЭК 18033 [2], [3].
Примечание - Основная часть стандарта дополнена приложением А "Контрольные примеры".
1 Область применения
Настоящий стандарт определяет алгоритмы базовых блочных шифров, которые применяются в криптографических методах обработки и защиты информации, в том числе для обеспечения конфиденциальности, аутентичности и целостности информации при ее передаче, обработке и хранении в автоматизированных системах.
Определенные в настоящем стандарте алгоритмы криптографического преобразования предназначены для аппаратной или программной реализации, удовлетворяют современным криптографическим требованиям и по своим возможностям не накладывают ограничений на степень секретности защищаемой информации.
Стандарт рекомендуется использовать при создании, эксплуатации и модернизации систем обработки информации различного назначения.
2 Термины, определения и обозначения
2.1 Термины и определения
В настоящем стандарте применены следующие термины с соответствующими определениями:
2.1.1 алгоритм зашифрования (encryption algorithm): Алгоритм, реализующий зашифрование, т.е. преобразующий открытый текст в шифртекст.
Примечание - Адаптировано из ИСО/МЭК 18033-1 [2].
2.1.2 алгоритм расшифрования (decryption algorithm): Алгоритм, реализующий расшифрование, т.е. преобразующий шифртекст в открытый текст.
Примечание - Адаптировано из ИСО/МЭК 18033-1 [2].
2.1.3 базовый блочный шифр (basic block cipher): Блочный шифр, реализующий при каждом фиксированном значении ключа одно обратимое отображение множества блоков открытого текста фиксированной длины в блоки шифртекста такой же длины.
2.1.4 блок (block): Строка бит определенной длины.
Примечание - Адаптировано из ИСО/МЭК 18033-1 [2].
2.1.5 блочный шифр (block cipher): Шифр из класса симметричных криптографических методов, в котором алгоритм зашифрования применяется к блокам открытого текста для получения блоков шифртекста.
Примечания
1 Адаптировано из ИСО/МЭК 18033-1 [2].
2 В настоящем стандарте установлено, что термины "блочный шифр" и "алгоритм блочного шифрования" являются синонимами.
2.1.6 зашифрование (encryption): Обратимое преобразование данных с помощью шифра, которое формирует шифртекст из открытого текста.
Примечание - Адаптировано из ИСО/МЭК 18033-1 [2].
2.1.7 итерационный ключ (round key): Последовательность символов, вычисляемая в процессе развертывания ключа шифра и определяющая преобразование на одной итерации блочного шифра.
2.1.8 ключ (key): Изменяемый параметр в виде последовательности символов, определяющий криптографическое преобразование.
Примечания
1 Адаптировано из ИСО/МЭК 18033-1 [2].
2 В настоящем стандарте рассматриваются ключи только в виде последовательности двоичных символов (битов).
2.1.9 открытый текст (plaintext): Незашифрованная информация.
Примечание - Адаптировано из ИСО/МЭК 10116 [1].
2.1.10 развертывание ключа (key schedule): Вычисление итерационных ключей из ключа шифра.
2.1.11 расшифрование (decryption): Операция, обратная к зашифрованию.
Примечания
1 Адаптировано из ИСО/МЭК 18033-1 [2].
2 В настоящем стандарте в целях сохранения терминологической преемственности по отношению к нормативным документам, действующим на территории государства, принявшего настоящий стандарт, и опубликованным ранее на русском языке научно-техническим изданиям применяется термин "шифрование", объединяющий операции, определенные терминами "зашифрование" и "расшифрование". Конкретное значение термина "шифрование" определяется в зависимости от контекста упоминания.
2.1.12 симметричный криптографический метод (symmetric cryptographic technique): Криптографический метод, использующий один и тот же ключ для преобразования, осуществляемого отправителем, и преобразования, осуществляемого получателем.
Примечание - Адаптировано из ИСО/МЭК 18033-1 [2].
2.1.13 шифр (cipher): Криптографический метод, используемый для обеспечения конфиденциальности данных, включающий алгоритм зашифрования и алгоритм расшифрования.
Примечание - Адаптировано из ИСО/МЭК 18033-1 [2].
2.1.14 шифртекст (ciphertext): Данные, полученные в результате зашифрования открытого текста в целях скрытия его содержания.
Примечание - Адаптировано из ИСО/МЭК 10116 [1].
2.2 Обозначения
В настоящем стандарте применены следующие обозначения:
V* - множество всех двоичных строк конечной длины, включая пустую строку;
Vs - множество всех двоичных строк длины s, где s - целое неотрицательное число; нумерация подстрок и компонент строки осуществляется справа налево, начиная с нуля;
U x W - прямое (декартово) произведение множества U и множества W;
|A| - число компонент (длина) строки (если A - пустая строка, то |A| = 0);
A||B - конкатенация строк , т.е. строка из V|A|+|B|, в которой подстрока с номерами компонент из V|A| совпадает со строкой A, а подстрока с меньшими номерами компонент из V|B| совпадает со строкой B;
- циклический сдвиг строки на 11 компонент в сторону компонент, имеющих номера;
- операция покомпонентного сложения по модулю 2 двух двоичных строк одинаковой длины;
- кольцо вычетов по модулю 2s;
- операция сложения в кольце ;
- конечное поле GF(2)[x]/p(x), где ; элементы поля представляются целыми числами, причем элементу соответствует число z0 + 2·z1 +...+ 27·z7, где , i = 0, 1, ..., 7, и обозначает класс вычетов по модулю p(x), содержащий x;
- биективное отображение, сопоставляющее элементу кольца его двоичное представление, т.е. для любого элемента , представленного в виде z = z0 + 2·z1 +...+ 2s-1·zs-1, где , i = 0, 1, ..., s - 1, выполнено равенство Vecs(z) = zs-1||...||z1||z0;
- отображение, обратное к отображению Vecs, т.е. ;
- биективное отображение, сопоставляющее двоичной строке из V8 элемент поля следующим образом: строке z7||...||z1||z0, , i = 0, 1, ..., 7 соответствует элемент ;
- отображение, обратное к отображению , т.е. ;
- композиция отображений, при которой отображение действует первым;
- композиция отображений и , причем .
3 Общие положения
В настоящем стандарте приведено описание двух базовых блочных шифров с длинами блоков n = 128 бит и n = 64 бит и длинами ключей k = 256 бит.
Примечания
1 На описанный в настоящем стандарте шифр с длиной блока n = 128 бит можно ссылаться как на блочный шифр "Кузнечик" ("Kuznechik").
2 На описанный в настоящем стандарте шифр с длиной блока n = 64 бит можно ссылаться как на блочный шифр "Магма" ("Magma").
4 Алгоритм блочного шифрования с длиной блока n = 128 бит
4.1 Значения параметров
Для просмотра документа целиком скачайте его >>>