Лучшие вопросы
Таймлайн
Чат
Перспективы
SM4
алгоритм блочного шифрования Из Википедии, свободной энциклопедии
Remove ads
SM4 — алгоритм блочного шифрования используемый в Китае как национальный стандарт для беспроводных локальных сетей (WLAN Authentication and Privacy Infrastructure (WAPI)).
Первоначально алгоритм назывался SMS4, однако в тексте стандарта GM/T 0002-2012 SM4 Block Cipher Algorithm от 21 марта 2012 года был официально переименован в SM4.[1]
SM4 был предложен как шифр используемый в стандарте IEEE 802.11i, но был быстро заменён ISO. Одной из причин этого была оппозиция WAPI fast-track продвигаемая IEEE.
Алгоритм SM4 был разработан профессором Лю Шу-ваном (LU Shu-wang(???)). Алгоритм был рассекречен в январе 2006. Несколько характеристик SM4:
- Размер блока составляет 128 бит.
- Используется 8 — битный S-box
- Размер ключа 128 бит.
- Используются только операции типа XOR, кругового сдвига и приложения S-Box
- Выполняется 32 раунда для обработки одного блока
- Каждый раунд обновляет четверть (32 бита) внутреннего состояния.
- Используется не линейное составление ключа (key schedule) для создания раундовых ключей.
- При расшифровке используются те же ключи что и при шифровании, но в обратном порядке.
Remove ads
Термины и определения
Суммиров вкратце
Перспектива
Слово и байт
Множество определено как вектор из e бит.
это слово.
это байт.
S-box
S-box фиксируется 8 — битами на входе и 8 — битами на выходе, записывается как Sbox().
Ключи и ключевые параметры
Длина шифрованного ключа составляет 128-бит, и представлена как , в каждой содержится слово.
Раундовый ключ представлен как . Он создаётся ключом шифрования.
это система параметров.
фиксированный параметр.
и это слова, используемые для расширения алгоритма.
Remove ads
Раундовая функция F
Суммиров вкратце
Перспектива
SM4 использует нелинейную структуру подстановки, за раз шифруется 32 бита. Это так называемая однораундовая замена. Для наглядного примера рассмотрим однораундовую подстановку:
Представим 128-битный входной блок как четыре 32-битных элемента
, с , тогда имеет вид:
Смешанная подстановка Т
это подстановка которая создаёт 32 бита из 32 бит Эта подстановка обратима, и содержит в себе нелинейную подстановку, τ, и линейную подстановку L, то есть
Нелинейная подстановка τ
обрабатывает параллельно четыре S-box.
Пусть 32-битным входным словом будет , где каждая это 8-битный символ.
Пусть 32-битным выходным словом будет ), имеет вид
= (Sbox(), Sbox(), Sbox(), Sbox())
Линейная подстановка L
, 32-битное слово нелинейной подстановки будет выводить слово линейной подстановки L. Пусть будет 32-битным выходным словом создаваемым L. Тогда
S box
Все Sbox числа в шестнадцатеричной записи.
Например, если на входе Sbox принимает значение «ef», тогда найдя строку «e» и столбец «f», получаем Sbox(«ef») = «84».
Шифрование и расшифрование
Пусть обратной подстановкой будет:
Пусть текст, который подается на входе будет
,
на выходе зашифрованный текст будет
,
и ключ шифрования будет
Тогда шифрование будет происходить следующим образом:
Алгоритм шифрования и расшифрования имеют одну и ту же структуру, за исключением того что порядок, в котором используются раундовые ключи обратный.
Порядок ключа при шифровании:
Порядок ключа при расшифровании:
Remove ads
Key expansion
Раундовый ключ используемый для шифрования, получается из ключа шифрования MK.
Пусть : вывод следующий:
Во-первых,
Тогда для :
Записи:
(1) подстановка использует ту же что и при шифровании, за исключением линейной подстановки L, она заменена на :
(2) Система параметров , приведена в шестнадцатеричной записи
(3) Параметр константа получается:
Пусть тогда 32 константы в шестнадцатеричной записи представлены ниже:
| 00070e15 | 1c232a31 | 383f464d | 545b6269 |
| 70777e85 | 8c939aa1 | a8afb6bd | c4cbd2d9 |
| e0e7eef5 | fc030a11 | 181f262d | 343b4249 |
| 50575e65 | 6c737a81 | 888f969d | a4abb2b9 |
| c0c7ced5 | dce3eaf1 | f8ff060d | 141b2229 |
| 30373e45 | 4c535a61 | 686f767d | 848b9299 |
| a0a7aeb5 | bcc3cad1 | d8dfe6ed | f4fb0209 |
| 10171e25 | 2c333a41 | 484f565d | 646b7279 |
Remove ads
Пример шифрования
Суммиров вкратце
Перспектива
Ниже представлен пример шифрования. Мы используем его для проверки правильности шифрования. Числа проверяются в шестнадцатеричной записи.
Пример № 1. Шифрование один раз
| plaintext: | 01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10 |
| encrypting key: | 01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10 |
и выходная информация в каждом раунде:
| rk[ 0] | = | f12186f9 | X[ 4] | = | 27fad345 |
| rk[ 1] | = | 41662b61 | X[ 5] | = | a18b4cb2 |
| rk[ 2] | = | 5a6ab19a | X[ 6] | = | 11c1e22a |
| rk[ 3] | = | 7ba92077 | X[ 7] | = | cc13e2ee |
| rk[ 4] | = | 367360f4 | X[ 8] | = | f87c5bd5 |
| rk[ 5] | = | 776a0c61 | X[ 9] | = | 33220757 |
| rk[ 6] | = | b6bb89b3 | X[ 10] | = | 77f4c297 |
| rk[ 7] | = | 24763151 | X[ 11] | = | 7a96f2eb |
| rk[ 8] | = | a520307c | X[ 12] | = | 27dac07f |
| rk[ 9] | = | b7584dbd | X[ 13] | = | 42dd0f19 |
| rk[10] | = | c30753ed | X[14] | = | b8a5da02 |
| rk[11] | = | 7ee55b57 | X[15] | = | 907127fa |
| rk[12] | = | 6988608c | X[16] | = | 8b952b83 |
| rk[13] | = | 30d895b7 | X[17] | = | d42b7c59 |
| rk[14] | = | 44ba14af | X[18] | = | 2ffc5831 |
| rk[15] | = | 104495a1 | X[19] | = | f69e6888 |
| rk[16] | = | d120b428 | X[20] | = | af2432c4 |
| rk[17] | = | 73b55fa3 | X[21] | = | ed1ec85e |
| rk[18] | = | cc874966 | X[22] | = | 55a3ba22 |
| rk[19] | = | 92244439 | X[23] | = | 124b18aa |
| rk[20] | = | e89e641f | X[24] | = | 6ae7725f |
| rk[21] | = | 98ca015a | X[25] | = | f4cba1f9 |
| rk[22] | = | c7159060 | X[26] | = | 1dcdfa10 |
| rk[23] | = | 99e1fd2e | X[27] | = | 2ff60603 |
| rk[24] | = | b79bd80c | X[28] | = | eff24fdc |
| rk[25] | = | 1d2115b0 | X[29] | = | 6fe46b75 |
| rk[26] | = | 0e228aeb | X[30] | = | 893450ad |
| rk[27] | = | f1780c81 | X[31] | = | 7b938f4c |
| rk[28] | = | 428d3654 | X[32] | = | 536e4246 |
| rk[29] | = | 62293496 | X[33] | = | 86b3e94f |
| rk[30] | = | 01cf72e5 | X[34] | = | d206965e |
| rk[31] | = | 9124a012 | X[35] | = | 681edf34 |
Шифр текст: 68 1e df 34 d2 06 96 5e 86 b3 e9 4f 53 6e 42 46
Пример № 2: Использование ключа шифрования такого же как и текст для шифрования 1.000.000 раз
| Текст: | 01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10 |
| Ключ шифрования: | 01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10 |
| Шифрованный текст: | 59 52 98 c7 c6 fd 27 1f 04 02 f8 04 c3 3d 3f 66 |
Remove ads
Примечания
Ссылки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads
