如何在ECDiffieHellmanCng中使用HKDF

时间:2019-03-05 16:56:50

标签: c# encryption cryptography diffie-hellman hkdf

我正在尝试使用ECDiffieHellmanCng类在台式机和通过BLE连接的设备之间执行密钥交换操作。系统的规范要求使用HKDF来导出密钥。这似乎不是ECDiffieHellmanCng类中的哈希函数的选项。有没有办法做到这一点?然后,我需要获取生成的密钥并将其传递给AesCng对象。

1 个答案:

答案 0 :(得分:1)

ECDiffieHellmanCng很烂,因为它强制您使用三个预定义的后处理键派生函数(哈希,Hmac或Tls)之一。如果这些都不符合您的协议,那么您很不幸。

但是,您可能可以使用Hmac变体,因为这是HKDF的第一个内部操作(“提取”)。只需将HmacKey属性设置为HKDF中的盐即可。然后自己手动执行第二次Hmac操作(“扩展”),以得到最终的HKDF结果。