Используя один ключ для Шифрования и HMAC

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

Я видел, что существует проблема, когда она используется в качестве CBC-MAC, но я не нашел доказательства, это - плохая практика для HMACs.

Спасибо, Vladimir

5
задан Vladimir 23 March 2010 в 15:45
поделиться

2 ответа

Я считаю, что в настоящее время он относится к категории «кажется, наверное, нормально, но зачем рисковать?».

Лучше всего, чтобы каждая сторона сгенерировала два новых ключа из общего секретного ключа:

encryption-key := HMAC(shared-key, "Encryption Nonce")
hmac-key := HMAC(shared-key, "Authenticity Nonce")
6
ответ дан 14 December 2019 в 04:35
поделиться

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

Например:

enc-key = HASH(shared-key || 1)
hmac-key = HASH(share-key || 2)

Это дает преимущество в том, что не нужно передавать 2 дополнительных одноразовых номера, а также его легко реализовать.

Я бы НЕ использовал один и тот же ключ в разных функциях (enc + hmac). Это напрашивается на неприятности и плохая идея.

2
ответ дан 14 December 2019 в 04:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: