c# - 如何将 HKDF 与 ECDiffieHellmanCng 一起使用

标签 c# encryption cryptography diffie-hellman hkdf

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

最佳答案

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

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

关于c# - 如何将 HKDF 与 ECDiffieHellmanCng 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55007915/

相关文章:

c# - 重建 CryptoStream 需要多少开销?

javascript - Node 加密解密最终失败

encryption - j2me 的充气城堡提供者 jar

c# - 3D Secure 2.0 与 Braintree 订阅集成

c# - 剪贴板的不同数字格式?

java - 加密 key 大小 DES Java

javascript - 凯撒密码移位javascript问题

encryption - 如何以编程方式解密 PGP 自解密存档?

c# - 自定义组件上的 Blazor 双向绑定(bind)

c# - 无需外部存储就地合并