gpt4 book ai didi

cryptography - 我正在为 Diffie-Hellman 使用 Wincrypt——我可以以纯文本格式导出共享 key 吗?

转载 作者:行者123 更新时间:2023-12-04 03:57:55 26 4
gpt4 key购买 nike

好的——感谢 Mike ,我能够让 Wincrypt 生成一个 Diffie-Hellman key 对。我想通了导出公钥,以及如何导入对方的公钥。根据文档,在导入对方的公钥后,共享的 secret 就被计算出来了。伟大的。

我现在需要掌握那个共享的 secret ,但我认为这是不可能的。只需调用CryptExportKey类型为 PLAINTEXTKEYBLOB除非我调用 CryptSetKeyParam 否则失败从 CALG_AGREEDKEY_ANY 更改算法 ID到某事……别的。但我不想要别的东西,我想要共享的 secret 。然而,API 似乎旨在阻止这种情况。

有什么想法吗?我应该注意到这里的问题是我只写了 WiFi 保护设置实现的一个方面。所以协议(protocol)是为我定义的,对方没有给我HCRYPTKEYs。

最佳答案

这看起来像你需要的...
来自:http://msdn.microsoft.com/en-us/library/aa381969(VS.85).aspx

导入 Diffie-Hellman 公钥并计算 secret session key

  • 调用CryptAcquireContext函数来获取 Microsoft Diffie-Hellman Cryptographic Provider 的句柄。
  • 通过调用 CryptGenKey 创建 Diffie-Hellman key 创建新 key 的函数,或调用 CryptGetUserKey检索现有 key 的函数。
  • 要将 Diffie-Hellman 公钥导入 CSP,请调用 CryptImportKey函数,传递指向 pbData 中的公钥 BLOB 的指针参数,dwDataLen 中 BLOB 的长度参数,以及 hPubKey 中 Diffie-Hellman 键的句柄范围。这导致计算,(Y^X) mod P , 被执行,从而创建共享的 secret key 并完成 key 交换。此函数调用返回 hKey 中新的 secret session key 的句柄。范围。
  • 此时,导入的 Diffie-Hellman 的类型为 CALG_AGREEDKEY_ANY .在 key 可以使用之前,必须将其转换为 session key 类型。这是通过调用 CryptSetKeyParam 来完成的。功能与 dwParam设置为 KP_ALGIDpbData设置为指向 ALG_ID 的指针表示 session key 的值,例如 CALG_RC4 .在使用 CryptEncrypt 中的共享 key 之前,必须先转换 key 。或 CryptDecrypt功能。在转换 key 类型之前调用这些函数中的任何一个都将失败。
  • secret session key 现在已准备好用于加密或解密。
  • 当不再需要 key 时,调用 CryptDestroyKey 销毁 key 句柄功能。
  • 关于cryptography - 我正在为 Diffie-Hellman 使用 Wincrypt——我可以以纯文本格式导出共享 key 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/87694/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com