Рейтинг:1

Данные HMAC и обмен ключами

флаг au

В некоторых контекстах (HKDF (RFC-5869 sec 2.2) и BIP32 Биткойн (генерация главного ключа)) я видел, как ключ и данные обменивались для HMAC. Например, пусть HMAC будет функцией $h:\{0,1\}^c \times \{0,1\}^b \to \{0,1\}^c$ (обычное обозначение), определенное для ключа $к$ и данные $м$ как $ч(к, м)$. Ну, некоторые люди позволяют $к$ быть фиксированным общедоступным значением (например, Семя биткойнов) и кодировать секретные байты в $м$.

Я понимаю Почему они хотели бы сделать это, например, входной материал (который может быть секретным ключом) может иметь любую заданную длину $с$. Я предполагаю, что они не ожидают целостности, они хотят только случайности.

Я ожидаю, что безопасность (или, по крайней мере, целостность) будет зависеть от секретности $к$ и свойства базовой хэш-функции. Действительно, используя результаты «Новых доказательств для NMAC и HMAC» Беллара 1, у нас есть PRF, как только функция сжатия хеш-функции является PRF, и если разработчики поступили правильно, это на самом деле не зависят от секретности $к$.

Но мне кажется, что доказательство предполагает равномерно случайный, секретный ключ. Сохраняется ли доказательство PRF, если мы раскрываем $к$ к нападающему?

(Примечание: это было бы очевидно, если бы $к$ и $м$ играли симметричные роли в построении HMAC - это тоже не так.)


kelalaka avatar
флаг in
Если я правильно понял ваш вопрос; Если вы фиксируете ключ HMAC, вы выбираете PRF из семейства HMAC. Теперь у вас есть PRF для использования.
Рейтинг:0
флаг tr

Я буду обращаться только к части HKDF.

HKDF был представлен в следующем документе: https://eprint.iacr.org/2010/264.pdf

В этом контексте HMAC используется для двух несколько разных целей: 1) извлечение случайности и 2) переменная (входная/выходная) длина PRF.

Замена ключа происходит для извлечения случайности. Ситуация здесь такова, что нам дан ключевой материал $ИКМ$ который не является (псевдо) однородным случайным и хочет создать ключ $PRK$ то есть псевдослучайное (т. е. вычислительно неотличимое от случайного).

Как вы заметили, HMAC также показан как PRF. Однако мы не можем полагаться на безопасность PRF, чтобы доказать безопасность $PRK$. Но в документе утверждается, что такое использование HMAC подходит для предоставления экстрактора случайности вычислений (см. раздел 6).

Говоря о PRF, интересно отметить, что некоторые доказательства безопасности, такие как TLS, фактически полагаются на так называемое предположение PRF-ODH (https://eprint.iacr.org/2017/517.pdf). Применительно к использованию HKDF в TLS: напомните, что две стороны обмениваются акциями DH. $(г^х, г^у)$; предположение (по варианту) примерно говорит, что: функция $F(K, X) = HMAC (X, K) $ является PRF в предположении, что основная функция сжатия является случайным оракулом; даже если злоумышленнику был предоставлен доступ к оракулу $\mathcal{O}(T,v) = F(T^x,v) $. (Здесь опущены: ограничения на значения $(Т,х)$ и максимальное количество запросов).

Обратите внимание, что функция $F$ выше есть ключевое пространство $\лэнгле Г \рангле$, группа, используемая для обмена DH. Итак, мы имеем дело с однородным случайным ключом в пространстве ключей в контексте PRF-ODH.

P.S: рассмотрите возможность прочтения и этого ответа https://crypto.stackexchange.com/a/30461/58690

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

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