расширение ключа
Имеется мастер ключ размером 128 бит. Его требуется расширить, например, до 168 бит для использования в 3DES, или до 256 бит для ГОСТ-28147, или до какого еще произвольного размера.
Существует ли стандартная общепринятая процедура для расширения ключа?
комментариев: 9796 документов: 488 редакций: 5664
Key Derivation Function, HMAC-based Extract-and-Expand Key Derivation Function (HKDF), Key stretching.
См. например, pkf.cpp из исходников zas communicator.
Можно использовать, например, ANSI 9.31, но хотелось бы более эффективного. Вариантов реализации легко придумать много всяких разных. Пригоден любой CPRNG с 128-битной стойкостью. Вопрос в том, есть ли общепринятый способ.
комментариев: 393 документов: 4 редакций: 0
Я могу ошибаться, но вроде это подразумевают под PKDF.
А KDF обычно как раз и используется для:
– сжатия/расширения ключа;
– получения нескольких ключей из общего секрета.
комментариев: 9796 документов: 488 редакций: 5664
Да всё правильно. Вообще, если особо жёстких требований нет (например протокол согласования ключа с недоверяемым противником, который используется не просто для шифрования, а для какого-то голосования и пр.), то можно просто и похэшировать.