我知道KDF(Key derivation function)用于拉伸用户密码,基本上不适合用作密码算法中的密钥。
但是如果我创建一个随机密钥(随机 32 字节),我还需要在其上使用 KDF 以确保正确加密吗?
我知道KDF(Key derivation function)用于拉伸用户密码,基本上不适合用作密码算法中的密钥。
但是如果我创建一个随机密钥(随机 32 字节),我还需要在其上使用 KDF 以确保正确加密吗?
KDF 通常用于从诸如密码短语之类的东西中派生加密密钥,正如您正确地说的那样,它不适合直接使用。但它们也用于从主密钥派生其他密钥,这取决于您的整体方案,这可能很有用。
假设您使用了一个密钥协商协议,双方最终得到了一个随机共享的秘密。您可以使用 KDF 派生一个用于加密的密钥和一个用于消息完整性的密钥(例如,一个 HMAC 密钥)。
当各方共享一个秘密对称密钥时(例如,在成功执行1和 [2] 中指定的密钥建立方案时),通常需要额外的密钥(例如,如 [3] 中所述) . 不同的加密目的可能需要单独的密钥——例如,加密算法可能需要一个密钥,而另一个密钥用于完整性保护算法,例如消息验证码。在其他时候,多个实体所需的不同密钥可能由受信任方从单个主密钥生成。密钥派生函数用于派生此类密钥。
简短的回答是,不,假设您的密钥生成是正确的,您不需要使用 KDF。