我目前正在尝试使用Python加密模块构建Ephemeral Diffie-Hellman算法的实现。对于我们的目的来说,用户的身份验证非常重要。Alice和Bob都有一个公私钥对和由证书颁发机构签名的证书,以便验证他们的公钥并将其与其身份关联起来。
使用经过身份验证的DH意味着发送的消息(见图片)将使用上述私钥进行签名。
有关使用Python加密库的DH的文档可以在此处找到: https://cryptography.io/en/latest/hazmat/primitives/asymmetric/dh/
然而,我似乎无法理解所描述的交换函数实际上是做什么的。 有人能否向我解释一下如何在DH算法中使用它? 最好使用以下图像的比喻:
提前致谢!
parameters
是通用参数。话虽如此,如果要在两个不同的文件中运行此代码,则当前代码将生成不同的公共参数集。您必须使用dh.DHParameterNumbers
创建通用参数,并使用parameters.parameter_numbers()
获取生成的数字。这些数字可以在无需加密的情况下通过网络发送。 - Loïc Faure-Lacroix