如何将 HKDF 与 ECDiffieHellmanCng 一起使用
How to use HKDF with ECDiffieHellmanCng
我正在尝试使用 ECDiffieHellmanCng class 在桌面和通过 BLE 连接的设备之间执行密钥交换操作。系统规范要求使用 HKDF 来派生密钥。这似乎不是 ECDiffieHellmanCng class 中散列函数的选项。有没有办法做到这一点?然后我需要获取生成的密钥并将其传递给 AesCng 对象。
ECDiffieHellmanCng 很糟糕,因为它迫使您使用三个预定义 post 处理密钥派生函数(Hash、Hmac 或 Tls)之一。如果其中 none 个符合您的协议,那您就不走运了。
您也许可以使用 Hmac 变体,因为这是 HKDF ("extract") 的第一个内部操作。只需将 HmacKey 属性 设置为 HKDF 中的盐即可。然后自己手动进行第二次Hmac操作("expand")得到最终的HKDF结果
我正在尝试使用 ECDiffieHellmanCng class 在桌面和通过 BLE 连接的设备之间执行密钥交换操作。系统规范要求使用 HKDF 来派生密钥。这似乎不是 ECDiffieHellmanCng class 中散列函数的选项。有没有办法做到这一点?然后我需要获取生成的密钥并将其传递给 AesCng 对象。
ECDiffieHellmanCng 很糟糕,因为它迫使您使用三个预定义 post 处理密钥派生函数(Hash、Hmac 或 Tls)之一。如果其中 none 个符合您的协议,那您就不走运了。
您也许可以使用 Hmac 变体,因为这是 HKDF ("extract") 的第一个内部操作。只需将 HmacKey 属性 设置为 HKDF 中的盐即可。然后自己手动进行第二次Hmac操作("expand")得到最终的HKDF结果