SM3 — криптографическая хэш-функция, являющаяся частью национального криптографического стандарта Китая. Она была опубликована Государственным управлением криптографии 17 декабря 2010 под названием «GM/T 0004-2012: криптографический хэш алгоритм SM3». SM3 в основном используется в электронных подписях, имитовставках и генераторах псевдослучайных чисел.

Определяющий стандарт Функция SM3 определена в стандарте «GM/T 0004-2012: криптографический хэш алгоритм SM3».

Приказом от 2016 года Национальное управление криптографии утвердило SM3 как один из отраслевых стандартов.

История создания SM3 — 256-битный хэш алгоритм. Он является модификацией SHA-2. Создательница алгоритма — , которая известна открытием новых способов атак для разных криптографических хэш-функций (MD5 и SHA-1). SM3 был опубликован в 2010 году. SM3 использует структуру Меркла — Дамгора.

Описание алгоритма

Общее описание

Алгоритм принимает на вход сообщение длины . После процедуры пэддинга и нескольких итераций компрессии на выходе получится 256-битное значение хэш-функции.

Значения вектора инициализации Значения для инициализации следующие:

Константы

Булевы функции

Перестановки

Пэддинг Сообщение сосостоит из бит. Добавим бит 1 к концу сообщения, а также нулевых бит, где  — наименьшее неотрицательное число, удовлетворяющее соотношению . Затем к полученному сообщению необходимо добавить 64-битную строку, являющуюся двоичным представлением числа , изначальной длины сообщения. В результате будет получена строка , длина которой кратна 512.

Процедура повторения функции компрессии Сообщение , уже прошедшее пэддинг, разделяется на 512-битные блоки (в обозначениях , где ).

Далее алгоритм следующий:

Здесь  — функция компрессии,  — 256-битный вектор инициализации. Результат после итерации есть .

Расширение сообщения Блок сообщения расширяется до 132 слов , которые добавлены к компрессионной функции :

Делим блок на 16 слов.

Компрессионная функция Пусть  — 8 слов регистров,  — 4 промежуточные переменные. Вычислительная процедура следующая:

Значение хэш-функции Итого, . Отсюда окончательное значение хэш-функции .

Примеры работы алгоритма на разных сообщениях

Пример 1 Для входного сообщения «abc» (и его ASCII версии 616263 соответственно) значение хэш-функции равно: 66c7f0f4 62eeedd9 d1f2d46b dc10e4e2 4167c487 5cf2f7a2 297da02b 8f4ba8e0

Пример 2 Для входного сообщения с кодом длиной 512 бит: 61626364 61626364 61626364 61626364 61626364 61626364 61626364 61626364 61626364 61626364 61626364 61626364 61626364 61626364 61626364 61626364 Хэш-функция будет равна: debe9ff9 2275b8a1 38604889 c18e5a4d 6fdb70e5 387e5765 293dcba3 9c0c5732

Аппаратная оптимизация и оценка эффективности Результаты сравнения эффективности алгоритма SM3, оригинального и 2 его оптимизаций, а также SHA-256 представлены в таблице ниже. Эффективность оценивается для параметров, которые указаны в заглавии колонок. + Сравнение эффективности SM3 и его модификаций с алгоритмом SHA-256 Название алгоритма Девайс Slices Максимальная частота (MHz) Бит/цикл Пропускная способность (Mbps) Пропускная способность/slice Стандартный SM3 Virtex-5 384 214 7.53 1611 4.20 C-SM3 Virtex-5 234 215 7.53 1619 6.92 T-SM3 Virtex-5 328 362 7.53 2726 8.31 SHA-256 Virtex-5 319 221 7.76 1714 5.37

Криптоанализ Не существует никаких формальных доказательств относительно качества этого алгоритма, тем не менее, не зарегистрировано успешных атак на SM3.

Криптоаналитические результаты для различных атак на алгоритм SM3 агрегированы в следующей таблице. + Результаты криптоаналитических атак на алгоритм SM3 Тип атаки Число шагов Сложность Ссылка на исследование Коллизионная атака 20 2^117.1 Коллизия инициализации 24 2^249 Атака нахождения прообраза 28 2^241.5 Атака нахождения прообраза 30 2^249 Атака нахождения прообраза 29 2^245 Атака нахождения прообраза 30 2^251.1 Псевдоатака нахождения прообраза 31 2^245 Псевдоатака нахождения прообраза 32 2^251.1 Методом бумеранга 33 2^125 Методом бумеранга 35 2^117.1 Методом бумеранга 35 2^33.6 Методом бумеранга 37 2^192

Реализация и применение Алгоритм является открытым и, по утверждениям Китайского информационного интернет-центра, является аналогом SHA-256 в вопросах безопасности и эффективности.

Так как SM3 является единственной функцией, разрешенной для использования в Китае Национальным управлением криптографии, ее реализация в аппаратуре необходима для применения в китайском оборудовании.

Примеры прикладного применения SM3 указаны в таблице: Область применения Детали X.509 Существует реализация SM3 для создания электронной цифровой подписи сертификата PGP SM3 наряду с SM2 и SM4 реализован в расширении PGP для использования на территории Китая IPSec Реализация IPSec IKEv1 поддерживает SM3 Financial IC Card China Financial Integrated Circuit (IC) Card Specifications Одним из методов обеспечивания безопасности банковских карт, основанных на чипах, является SM3 . OpenSSL В криптографической библиотеке OpenSSL реализован алгоритм SM3 Hash Crypto Engine BA413 BA413 является блоком для проектирования микросхем, который используется для задачи формирования ключа и применения цифровой подписи. Для применения на территории Китая в нем внедрен SM3.

См. также SHA-2

Примечания

Категория:Криптографические хеш-функции