添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
喝醉的烤面包  ·  How to create a copy ...·  1 年前    · 
微笑的香烟  ·  JSP 语法 | 菜鸟教程·  1 年前    · 
风流的自行车  ·  jpg png ...·  1 年前    · 

Boblee人工智能硕士毕业,擅长及爱好python,基于python研究人工智能、群体智能、区块链等技术,并使用python开发前后端、爬虫等。

1.Diffie-Hellman密钥协商算法

Diffie-Hellman密钥协商算法在1976年在Whitfield Diffie和Martin Hellman两人合著的论文New Directions in Cryptography(Section Ⅲ PUBLIC KEY CRYPTOGRAPHY)中被作为一种公开秘钥分发系统(public key distribution system)被提出来。

下面给出Diffie-Hellman算法交换密钥的步骤。假设存在待交易用户a与公证人c协商密钥。DHE算法容易被中间人攻击。目前的解决办法是使用数字签名,以及使用其它的协议变种。其流程如下图所示。其中用户a与公证人c随机选取的整数,并满足,计算出的即为密钥。

假设用户a、b协商DHE密钥,他们的质数、本原根是;私钥及计算结果分别是,则存在下列证明使得双方得出的私钥是相等的。

2.Python实现

1.选取质数、本原根

(1)判断是否为质数。

def judge_pr

算法 通过双方在不泄露私密信息的前提下,共同生成一个对称 密钥 ,用于加密和解密通信过程中的数据。在本文中,将使用 Python 语言 实现 Diff ie- Hellman 密钥 交换 算法 ,并提供完整的源代码。以上就是用 Python 实现 Diff ie- Hellman 密钥 交换 算法 的全部内容。该 算法 可以为双方提供一个安全的通信渠道,使得数据传输过程中不会被拦截和窃取。在实际应用中,可以使用该 算法 来保护敏感数据的交换过程。接下来,我们开始 实现 Diff ie- Hellman 密钥 交换 算法 。在运行示例程序后,可以打印出双方共享的 密钥 。 /* 实现 openssl 提供的默认的 DH _METHOD, 实现 了根据 密钥 参数生成 DH 公私钥,以及根据 DH 公钥(一方)以及 DH 私钥(另一方)来生成一个共享 密钥 ,用于 密钥 交换*/#include #include "cryptlib.h"#include #include // 实现 了伪随机数生成,支持用户自定义随机数生成#include static int generate_key( DH *d... 敏感数据信息安全传输需要对敏感信息加密,加密的 密钥 涉及到传输两端的 密钥 协商 和交换,目前主要两种 密钥 交换的机制有: 1. 基于非对称 密钥 实现 :请求方用接收方的公钥加密自己的 密钥 ,接收方用自己的私钥解密得到请求方的 密钥 ,反之一样,从而 实现 密钥 的交换 2. DH 密钥 交换 算法 DH 密钥 交换 算法 】 双方 协商 用同一个大素数p和素数的原根g,各自生成随机数XA,XB。请求方... Diff ie- Hellman 算法 是第一个公开 密钥 算法 ,早在 1976 年就发现了。其安全性源于在有限域上计算离散对数,比计算指数更为困难。该 算法 可以使两个用户之间安全地交换一个 密钥 ,但不能用于加密或解密信息。 该 算法 是一种建立 密钥 的方法,并非加密方法,但其产生的 密钥 可用于加密、 密钥 管理或任何其它的加密方式,这种 密钥 交换技术的目的在于使两个用户间能安全地交换 密钥 (KEY)以便用于今后的报文加密。该 算法 需要公开两个参数:质数 n 和其原根 g,同时通信双方 A 和 B 随机选择自己的私钥 x 和 y,通过交换g Diff ie Hellman 密钥 协商 用于在双方之间交换相同的秘密信息,例如交换对称加密的 密钥 ,是基于离散对数困难问题的一个 密钥 协商 协议。 所谓离散对数问题是说,有大素数p, c语言 编写的 DH 算法 ,借鉴学习 A系统构建 密钥 :构建一对公私 密钥 Private Key1和Public Key1; A系统向B系统公布自己的公钥(Public Key1); B系统使用A公布的公钥(Public Key1)建立一对 密钥 :Private Key2和Public Key2; B系统向A系统公布自己的公钥Public Key2; A系统使用自己的私钥Private Key1和B系统的公钥Public Key2构建本地 密钥 ; B系统使用自己的私钥Private Key2和A系统的公钥Public Key1构建本地 密钥