2

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

4

1 回答 1

2

ECDiffieHellmanCng 很糟糕,因为它迫使您使用三个预定义的后处理密钥派生函数(哈希、Hmac 或 Tls)之一。如果这些都不符合您的协议,那么您就不走运了。

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

于 2019-03-05T18:20:58.653 回答