Рейтинг:1

Увеличивает ли время жизни главного ключа получение ключа из главного ключа, а затем шифрование с помощью AES-GCM?

флаг cn

Предположим, что у нас есть симметричный 256-битный мастер-ключ, и мы хотим зашифровать его с помощью AES-GCM со случайными IV. Я понимаю, что со случайными IV срок жизни главного ключа составляет 2 ^ 32, чтобы соответствовать требованиям NIST.

Предположим, что мы хотим увеличить время жизни мастер-ключа. Можем ли мы сделать это, добавив шаг получения ключа перед фактическим шифрованием? Предполагая, что мы используем мастер-ключ в качестве входного ключевого материала и случайный одноразовый номер в HKDF, можем ли мы продлить время жизни мастер-ключа?

Другими словами, это AES-GCM(HKDF(MasterKey,...), IV,...) предлагая какое-либо преимущество в отношении общего количества сообщений по сравнению с AES-GCM(MasterKey, IV, ...)?

В частности, если предположить, что HKDF имеет фиксированную соль и случайный 128-битный одноразовый номер в качестве входных данных, а GCM использует 96-битный случайный IV, то я предполагаю, что (WK, IV) имеют более низкую вероятность коллизии, чем (IV). Если это предположение верно, как можно вычислить границу времени жизни главного ключа?

Swashbuckler avatar
флаг mc
«Я понимаю, что при случайных IV время жизни главного ключа составляет 2 ^ 32, чтобы соответствовать требованиям NIST». Да, но... GCM основан на режиме CTR, и есть исследования, которые предполагают, что вы должны ограничить общий объем данных, зашифрованных с помощью одного ключа (независимо от того, сколько IV используется), примерно до 64 ГБ (в зависимости от вашей терпимости к риску). «В частности, мы показываем, что атаки с восстановлением сообщений в режиме CTR могут быть организованы примерно с такими же требованиями и той же сложностью, что и атаки в режиме CBC». См. https://eprint.iacr.org/2018/159.pdf.
kelalaka avatar
флаг in
Здесь выполняются некоторые расчеты столкновений; [Множественное получение ключа AES от главного ключа] (https://crypto.stackexchange.com/questions/76588/multiple-aes-key-derivation-from-a-master-key/76589#76589) также возможно ли использовать AES-GCM-SIV?
Рейтинг:1
флаг in

Предположим, что мы хотим увеличить время жизни мастер-ключа.Можем ли мы сделать это, добавив шаг получения ключа перед фактическим шифрованием? Предполагая, что мы используем мастер-ключ в качестве входного ключевого материала и случайный одноразовый номер в HKDF, можем ли мы продлить время жизни мастер-ключа?

Да, конечно, когда речь идет о требованиях GCM. Конечно, могут быть и другие соображения, потому что один и тот же главный ключ по-прежнему защищает, возможно, большое количество сообщений.

Другими словами, это AES-GCM(HKDF(MasterKey, ...), IV, ...), предлагающие какое-либо преимущество в отношении общего количества сообщений по сравнению с AES-GCM(MasterKey, IV, ...)?

Потенциально да, это, конечно, зависит от других входных данных HKDF, но пока входные данные для HKDF уникальны, у вас есть безопасная односторонняя функция, которая делает производные ключи независимыми друг от друга.

В частности, если предположить, что HKDF имеет фиксированную соль и случайный 128-битный одноразовый номер в качестве входных данных, а GCM использует 96-битный случайный IV, то я предполагаю, что (WK, IV) имеют более низкую вероятность коллизии, чем (IV).

В качестве входного параметра для HKDF не определено значение «одноразовый номер», но вы можете использовать его в Информация поле.

«Фиксированная соль» практически бесполезна. Однако вы можете использовать пустой параметр соли и использовать одноразовый номер как часть Информация параметр и быть достаточно безопасным.

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

На самом деле, вы можете пропустить шаг если вы хотите, и просто используйте HKDF-Expand, если ваш мастер-ключ имеет достаточную энтропию. В таком случае нет Соль обязательный параметр.

Я бы порекомендовал иметь дополнительную постоянную строку в поле «Информация», которую также можно использовать для получения ключей от мастера для дополнительных вариантов использования. Например, Информация поле может использовать метку, называемую "Ключ Энкап". Это просто указывает, каков вариант использования производных подразделов — это обеспечивает некоторое разделение предметной области.

Если это предположение верно, как можно вычислить границу времени жизни главного ключа?

Предположим, что вы выводите 256-битные ключи и используете как минимум SHA-256 в качестве базового хэша. Тогда дополнительную вероятность столкновения можно считать пренебрежимо малой; это полностью зависит от свойств коллизии предоставляемого одноразового номера.

Как указано, могут быть и другие причины, по которым вы хотите время от времени обновлять свой главный ключ, потому что безопасность сообщений по-прежнему зависит от этого единственного ключа.

user13129201 avatar
флаг cn
Спасибо за ваш ответ. Я все еще немного смущен по этому поводу. В https://rwc.iacr.org/2018/Slides/Gueron.pdf авторы придерживаются аналогичного подхода, но их вычисленные границы отличаются. Кроме того, в исходной статье они заявляют, что AES-GCM с выводом ключа не позволяет шифровать больше сообщений, когда IV выбирается случайным образом (только более длинные сообщения). В своем ответе вы подразумеваете, что это полностью зависит от вывода HKDF, или я неправильно понял? Ввод HKDF зависит от того же источника энтропии, что и IV, поэтому проблема дня рождения возникает как в информации, так и в IV.
Maarten Bodewes avatar
флаг in
Ах, извините, да, если вы используете 128-битный **случайный** одноразовый номер, то вам, очевидно, нужно учитывать день рождения для этого. Я был поставлен не на ту ногу, когда вы различали соль и одноразовый номер в своем вопросе. Можете ли вы указать, в чем, по вашему мнению, разница между этими двумя терминами?
user13129201 avatar
флаг cn
Под nonce я в основном имел в виду размещение 16 случайных байтов в информации. Однако я хотел бы обобщить этот вопрос за пределами выбора KDF.Теоретически, делает ли добавление шага KDF перед шагом AESGCM, что система может безопасно обрабатывать более 2^32 сообщений? И если да, то не потому ли, что парные коллизии (WK, IV) найти труднее, чем простые IV-коллизии (т. е. случай простого GCM с шагом KDF)?
Maarten Bodewes avatar
флаг in
Да, коллизия будет полностью связана с генерацией подключаемого ключа. По мере изменения ключа вам вообще не нужен случайный IV, поскольку заданный ключ IV теперь будет почти полностью зависеть от силы ключа. Так что в этом смысле имеет смысл поместить все случайные биты в вашу `Info`. Я не думаю, что это имеет большое значение, но для меня имеет смысл поместить все эти биты в соль — в конце концов, это случайное значение для каждого производного — а затем использовать некоторую метку в поле «Информация». Недостатком этого является то, что вам придется использовать полный HKDF.
millenseed avatar
флаг in
Почему это должно основываться на выводе подраздела? Разве нам не пришлось бы умножать вероятности коллизии как подключа, так и IV, происходящих вместе?
Maarten Bodewes avatar
флаг in
Да, я использовал кое-какие расчеты, которые пришли мне в голову, и я думаю, что это не имеет большого значения, так как в конце концов вам придется их перемножить, как вы сказали. Однако коллизия в используемом ключе мне кажется более опасной, чем просто в комбинации.

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

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