Рейтинг:1

Почему RFC-версия HKDF-Expand запускает счетчик с 1?

флаг in

В RFC 5869, определение HKDF-Expand дается следующим образом, с конечным значением счетчика в диапазоне от 1 до (предположительно) 255:

Выходной ОКМ рассчитывается следующим образом:

   N = ceil(L/HashLen)
   Т = Т(1) | Т(2) | Т(3) | ... | Т(Н)
   OKM = первые L октетов T

   куда:
   T(0) = пустая строка (нулевая длина)
   T(1) = HMAC-хэш(PRK, T(0) | информация | 0x01)
   T(2) = HMAC-хэш(PRK, T(1) | информация | 0x02)
   T(3) = HMAC-хэш(PRK, T(2) | информация | 0x03)
   ...

Однако в пункте 4.2. Бумага HKDF вместо этого та же функция определяется со значением счетчика, начинающимся с 0. Есть ли какая-то тонкая причина избегать значения 0 в этом байте счетчика терминала?

DannyNiu avatar
флаг vu
Это не единственная модификация алгоритма, которую когда-либо вносили сотрудники IETF. Академическая версия шифра ChaCha20 имела 64-битный IV и 64-битный счетчик, они изменили его на 96-битный IV и 32-битный счетчик, чтобы он лучше подходил для интернет-протоколов.
DannyNiu avatar
флаг vu
Мой последний комментарий здесь заключается в том, что такие вопросы лучше задавать людям, принявшим решение. С составителями RFC, вероятно, все еще можно связаться по контактам, указанным на последней странице этого RFC. Один из них является [членом](https://crypto.stackexchange.com/users/86083/hugo-krawczyk) этого сообщества (хотя и неактивным).
Maarten Bodewes avatar
флаг in
Прикомандирован, но я добавлю, что было бы полезно, если бы они могли ответить здесь или, если вы получите ответ, опубликовать его как самостоятельный ответ.
Marc Ilunga avatar
флаг tr
Только предположение, но с точки зрения безопасности я думаю, что разница не имеет значения, поскольку безопасность зависит от безопасности PRF HMAC. Но, может быть, make «легко» реализовать наивно, поскольку счетчик циклов такой же, как и значение счетчика, и нет необходимости делать «-1»?
флаг in
Хорошо, я спрошу в списке рассылки CFRG, поскольку они могут знать. Кажется немного странным ограничить его одним байтом, а затем убрать 1/256 емкости!
Marc Ilunga avatar
флаг tr
с sha256 счетчик 255 составляет около 7 МБ случайных данных.
kelalaka avatar
флаг in
Это дело вкуса...
Maarten Bodewes avatar
флаг in
Разве это не будет $255 \cdot 32$ байт, что составляет $(2^8 - 1) \cdot (2^5) = 2^{13} - 32 = 8 Ки - 32$ байт данных?
Рейтинг:1
флаг in

Хьюго Кравчик ответил в списке рассылки CFRG что версия RFC была скорректирована для совместимости с АЙК, который запускает счетчик с 1:

Хороший вопрос. Я верю (я проверил свою старую электронную почту с Паси), что это было сделано для совместимости с определением HKDF в IKE (которое когда я изначально проектировал HKDF, правда без имени и опубликованный анализ). Я не был слишком доволен тем, что меня ограничивали обратным совместимость, но в то время это считалось одним препятствием для принятия меньше.

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

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