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构建本地
密钥
;