ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Https核心加密算法-Diffie–Hellman key exchange

2021-06-04 02:03:43  阅读:224  来源: 互联网

标签:Hellman 23 质数 Alice Https 私钥 Bob 加密算法 mod


算法描述:

公钥算法的特点就是很容易由算子计算出结果,而基本上不可能作逆向运算。这也就是使用了两个质数的所要达到的目的。

现在假设Alice和Bob分别是参与DH式密钥交换过程的两方,他们一开始会商议确定一个小质数(一般是2,3,5这样的小数字)和一个大质数(有300位以上)作为加密的原始信息。小质数和大质数都可以直接传输,不必担心交换过程中的不安全。

需要明白的是,Alice和Bob各自都持有着自己的私钥(100多位的数),而且也永远不应该共享自己的私钥。不光是两人之间,也包括其他不相关的人都不应该拥有这两组私钥。网络中传输的是他们的私钥、小质数和大质数混合运算得到的结果。更确切来说,就是:

Alice的结果 = (小质数Alice的密码)% 大质数
Bob的结果 = (小质数Bob的密码)% 大质数
(“%” 符号表示取模运算,即取得除法运算的余数)
所以Alice使用大质数和小质数加上自己的私钥运算,就会得出结果,而Bob做同样的计算,也能得到相同的结果。当他们接收到对方的运算结果时,他们可以由数学计算导出会话中所要传输的信息,也就是说:

Alice计算的是

(Bob的结果Alice的密码)% 大质数
而Bob则计算

(Alice的结果Bob的密码)% 大质数
Alice和Bob得出来的数字相同,这个数字也就是会话中所要共享的密码。请注意,双方都没有向对方传输各自的私钥,而连接过程中也没有明文传递保密信息。这一点真是太棒了!

 

Alice and Bob agree to use a prime number p=23 and base g=5. 
Alice chooses a secret integer a=6, then sends Bob A = ga mod p 
A = 56 mod 23 
A = 15,625 mod 23 
A = 8 
Bob chooses a secret integer b=15, then sends Alice B = gb mod p 
B = 515 mod 23 
B = 30,517,578,125 mod 23 
B = 19 
Alice computes s = B a mod p 
s = 196 mod 23 
s = 47,045,881 mod 23 
s = 2 
Bob computes s = A b mod p 
s = 815 mod 23 
s = 35,184,372,088,832 mod 23 
s = 2 
Alice and Bob now share a secret: s = 2. This is because 6*15 is the same as 15*6. So somebody who had known both these private integers might also have calculated s as follows: 
s = 56*15 mod 23 
s = 515*6 mod 23 
s = 590 mod 23 
s = 807,793,566,946,316,088,741,610,050,849,573,099,185,363,389,551,639,556,884,765,625 mod 23 
s = 2 

 


————————————————
版权声明:本文为CSDN博主「cmsbupt」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cmsbupt/article/details/9987851

标签:Hellman,23,质数,Alice,Https,私钥,Bob,加密算法,mod
来源: https://www.cnblogs.com/dongzhiquan/p/14847804.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有