【问题标题】:AES key derivationAES 密钥派生
【发布时间】:2011-01-02 12:35:04
【问题描述】:

从 DH 协商中派生的秘密派生出 128 位 AES 密钥的正确(可接受)方法是什么?

  • 使用前 128 位
  • 散列秘密并使用前 128 位
  • 使用一些更复杂的推导函数

您将如何以“正确”的方式派生一组密钥?

【问题讨论】:

    标签: encryption cryptography aes


    【解决方案1】:

    我会使用标准。一种这样的标准是NIST Special Pub 800-56A。具体参见第 5.8 节。

    【讨论】:

    • 我正在寻找这一步之后的步骤。我已经根据 DH 协商了一个秘密。现在我必须根据这个材料推导出一个对称密钥。最好的方法是什么?
    • 本标准第 5.8 节有你所需要的。
    【解决方案2】:

    例如,在 TLS 中使用了伪随机函数,它基于共享密钥(即 DH 密钥交换值)上的 SHA1 和 MD5 散列,字符串标签(用于区分生成密钥的不同情况、HMAC、密码和以此类推),并共享随机参数(客户端和服务器都生成自己的一半随机参数)。

    所以,我建议添加一些客户端和服务器生成的随机数据,并将其与 DH 密钥交换值一起散列。

    【讨论】:

    • 那么,sha256(DH 秘密 || 使用字符串 || 随机 A || 随机 B),前 128 位是否适合 AES 密钥?为什么我们要为新随机添加额外的协商往返行程?
    • 是的,这就够了。随机数据不需要另一次往返,因为它可以与其他与密钥交换相关的数据一起发送。那是为了保护免受某些攻击之王的攻击,我不确定是哪些攻击。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-31
    • 2015-06-17
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多