Key Derivation
这一章节的主要目标是通过一个source key生成许多满足伪随机性质的keys.
image
当key值是均匀分布的时候,我们可以通过下面的方法来构建. CTX的目的是为了让不同应用之间密钥都相互独立.
image
但如果key值不是均匀分布的,那么对应PRF的输出不会是随机的. 在实际生活中,source key经常不是随机分布的,比如在key exchange protocol中,key值只在的一个子集中均匀分布;在hardware RNG中,它可能会输出带有偏置的输出结果.
HKDF
- extract: use
- 然后用HMAC作为PRF去扩展key
Password-based KDF
密码具有很低的熵,不适合生成随机的key,因此,不应该使用HKDF来根据密码生成对应的key值. 另外,派生出来的key也容易收到 dictionary attack. 这里,PBKDF采用的方法是 salt 和 slow hash function.通过slow hash 使得计算成本提升,让攻击者需要更多的计算资源进行攻击.
网友评论