Рейтинг:4

Является ли KMAC просто SHA-3-256 (KEY || сообщение)

флаг ng

Согласно с сильные стороны кечака у тебя есть:

В отличие от SHA-1 и SHA-2, Keccak не имеет слабости длины-расширения, поэтому не нуждается во вложенной конструкции HMAC. Вместо этого вычисление MAC может быть выполнено путем простого добавления ключа к сообщению.

Это означает, что я могу получить MAC-адрес сообщение просто вычислив $\operatorname{SHA-3-256}(KEY \mathbin\| сообщение)$. Если это так, то почему тогда $\имя_оператора{KMAC}$ существовать?

Является $\имя_оператора{KMAC}$ то же, что просто $\operatorname{SHA-3-256}(KEY \mathbin\| сообщение)$? Если нет, то как используется $\имя_оператора{KMAC}$ для создания тега аутентификации, отличного от вычисления $\operatorname{SHA-3-256}(KEY \mathbin\| сообщение)$?

Рейтинг:5
флаг in

Стандартный KMAC больше, чем это благодаря разделение доменов префиксы; НИСТ СП 800-185

KMAC128 (К, Х, Л, С):

Условия действия: $\text{len}(K) < 2^{2040}$ и $0 \le L < 2^{2040}$ и $\text{len}(S) < 2^{2040}$

  1. newX = bytepad(encode_string(K), 168) || Х || право_кодировать (L).
  2. вернуть cSHAKE128 (новыйX, L, «КМАК», С).

и

cSHAKE128 (X, L, N, S):

Условия действия: $\text{len}(N) < 2^{2040}$ и $\text{len}(S) < 2^{2040}$

  1. Если N = "" и S = ​​"": вернуть SHAKE128 (X, L);
  2. Еще: return KECCAK[256](bytepad(encode_string(N) || encode_string(S), 168) || X || 00, л)

и НИСТ ФИПС 202

SHAKE128(M, d) = KECCAK[256] (M || 1111, г),


информация NIST о суффиксах;

Суффикс поддерживает домен разделение; т. е. различает входные данные для KECCAK[c], возникающие из хеш-функций SHA-3. из входных данных, возникающих из XOF SHA-3, определенных в разд. 6.2, а также другие домены, которые могут быть определены в будущем.

То есть, у нас разные случайные оракулы на разделение доменов. SHA3 ​​и Blake2 более близки к случайным оракулам, чем SHA256, поскольку они свободны от атаки расширения длины.

kelalaka avatar
флаг in
Другие функции (Keccak и Sponge) можно увидеть [здесь] (https://crypto.stackexchange.com/a/89665/18298)
Finlay Weber avatar
флаг ng
Под «префиксами разделения доменов» вы подразумеваете настраиваемую строку, которую принимает cSHAKE?
kelalaka avatar
флаг in
Точно, с [разделением доменов] (https://crypto.stackexchange.com/a/83307/18298) ядро ​​​​хеш-функции может вести себя как разные случайные оракулы.
kelalaka avatar
флаг in
Под заказом они фиксируются NIST во время стандартизации. Я вставил правильный cSHAKE128, есть и 256 версии тоже.
Finlay Weber avatar
флаг ng
Хорошо спасибо! Я медленно перевариваю это. Что приходит на ум, так это: если эта пользовательская строка действительно исправлена ​​NIST, в чем преимущество использования KMAC по сравнению с простым ручным выполнением SHA-3-256 (KEY || сообщение)?
kelalaka avatar
флаг in
SHA3 ​​имеет естественную устойчивость к атакам длины, и вы, очевидно, ожидаете спросить об этом. Вы используете SHA-3-256 напрямую как тот же случайный оракул. Со временем мы поняли, что не стоит этого делать, пока мы можем разделить домены.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.