Введение

Блок-шифр, используемый в китайских стандартах беспроводной связи.

ShāngMì 4 (SM4, 商密4) (ранее SMS4) — это блок-шифр, используемый в китайском национальном стандарте для беспроводных локальных сетей WAPI (WLAN Authentication and Privacy Infrastructure), а также в протоколе Transport Layer Security. SM4 был предложен в качестве шифра для стандарта IEEE 802.11i, но до настоящего времени был отклонен. Одной из причин отклонения стало противодействие предложению о быстром принятии WAPI со стороны IEEE. SM4 был опубликован в 2021 году. Алгоритм SM4 был разработан Центром обеспечения безопасности данных и связи Китайской академии наук (CAS) и Центром тестирования коммерческой криптографии Национального управления криптографии. Основной разработчик алгоритма — Лю Шуван (吕述望). Алгоритм был рассекречен в январе 2006 года и утвержден в качестве национального стандарта (GB/T 32907 2016) в августе 2016 года.

Детали шифра

Шифр SM4 имеет размер ключа и размер блока по 128 бит. Шифрование или расшифрование одного блока данных состоит из 32 раундов. Нелинейное построение ключа используется для генерации ключей раундов, а расшифрование использует те же ключи раундов, что и шифрование, но в обратном порядке.

Ключи и ключевые параметры

Длина ключей шифрования составляет 128 бит, представленных как , где – 32-битное слово. Круговые ключи представлены , где каждый – это слово. Они генерируются ключом шифрования и следующими параметрами: и – слова, используемые для генерации круговых ключей.

С-коробка

S-коробка фиксирована для 8-битного ввода и 8-битного вывода и обозначается как Sbox. Как и в AES, S-коробка основана на мультипликативной инверсии в [[конечном поле]]. Аффинные преобразования и полиномиальные базисы отличаются от используемых в AES, но благодаря аффинному изоморфизму её можно эффективно вычислить, используя S-коробку AES Rijndael.

Замечание

21 марта 2012 года правительство Китая опубликовало отраслевой стандарт "GM/T 0002 2012 Алгоритм блочного шифрования SM4", официально переименовав SMS4 в SM4. SM4 входит в состав расширения ARMv8.4 A для архитектуры ARM. Поддержка SM4 для архитектуры RISC V была утверждена в 2021 году в виде расширения Zksed.