随机字节的密钥派生函数?

时间:2012-12-27 07:55:50

标签: encryption password-encryption pbkdf2

我知道KDF(密钥派生函数)用于扩展用户密码,这些密码基本上不适合用作加密算法中的密钥。

但是如果我创建一个随机密钥(随机32字节),我还需要在其上使用KDF以确保正确加密吗?

1 个答案:

答案 0 :(得分:3)

KDF通常用于从密码短语等内容中导出加密密钥,正如您所说的那样,它不适合直接使用。但它们也用于从主密钥中获取其他密钥,这取决于您的整体方案,可能很有用。

假设您使用了密钥协商协议,其中双方都以随机共享密钥结束。您可以使用KDF导出加密密钥,并使用一个密钥完整性(例如,HMAC密钥)。

来自NIST SP800-108

  

当各方共享秘密对称密钥时(例如,成功时)   执行1和{{3}}中规定的密钥建立方案   [2]),通常需要额外的密钥(例如,   如[3]中所述。不同可能需要单独的键   加密目的 - 例如,可能需要一个密钥   加密算法,而另一个密钥打算供a。使用   完整性保护算法,如消息认证   码。在其他时候,多个实体所需的不同密钥   可以由可信方从单个主密钥生成。键   派生函数用于导出这样的密钥。

简短的回答是,不,你不需要使用KDF,假设您的密钥生成是正确的。