【发布时间】:2011-01-02 12:35:04
【问题描述】:
从 DH 协商中派生的秘密派生出 128 位 AES 密钥的正确(可接受)方法是什么?
- 使用前 128 位
- 散列秘密并使用前 128 位
- 使用一些更复杂的推导函数
您将如何以“正确”的方式派生一组密钥?
【问题讨论】:
标签: encryption cryptography aes
从 DH 协商中派生的秘密派生出 128 位 AES 密钥的正确(可接受)方法是什么?
您将如何以“正确”的方式派生一组密钥?
【问题讨论】:
标签: encryption cryptography aes
我会使用标准。一种这样的标准是NIST Special Pub 800-56A。具体参见第 5.8 节。
【讨论】:
例如,在 TLS 中使用了伪随机函数,它基于共享密钥(即 DH 密钥交换值)上的 SHA1 和 MD5 散列,字符串标签(用于区分生成密钥的不同情况、HMAC、密码和以此类推),并共享随机参数(客户端和服务器都生成自己的一半随机参数)。
所以,我建议添加一些客户端和服务器生成的随机数据,并将其与 DH 密钥交换值一起散列。
【讨论】: