欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

DH方式密钥交换四种表达方式

程序员文章站 2022-03-19 18:53:08
...
一、理论化的表达方式
1、Alice与Bob确定两个大素数p和g,这两个数不用保密
2、Alice选择另一个大随机数a,并计算A如下:A=ga mod p
3、Alice将A发给Bob
4、Bob  选择另一个大随机数b,并计算B如下:B=gb mod p
5、Bob将B发给Alice
6、计算秘密密钥K1如下:K1=Ba mod p
7、计算秘密密钥K2如下:K2=Ab mod p
K1=K2,因此Alice和Bob可以用其进行加解密
 
二、数字化的表达方式
1、通信方Alice和通信方Bob约定g=5,p=23,g和p是公开的
2、Alice生成一个随机数a,a是保密的,如a=6
3、Alice计算g^a%p发送给Bob,g^a%p=5^6%23=8
4、Bob生成一个随机数b,b是保密的,如b=15
5、Bob计算g^b%p发送给Alice,g^b%p=5^15%23=19
6、Alice接收到g^b%p后,再使用保密的a,计算(g^b%p)^a%p=19^6%23=2
7、Bob接收到g^a%p后,再使用保密的b,计算(g^a%p)^b%p=8^15%23=2
8、这样通信方Alice和Bob得到一个相同的密钥:2
 
三、实践化的表达方式
1、Server Key Exchange消息
server端:用DH算法产生整数p,g,pubkey(即A=ga mod p),将这三个参数放到Server Key Exchange消息中。为了防止消息被恶意篡改,Server Key exchange消息中还要包含一个对公钥参数的签名signature。
Client端:收到此消息后,会把消息中的 p,g,pubkey(即A=ga mod p 三个参数记录下来,有了这些,可以依据pubkey(即A=ga mod p和 private(即b)计算出 pre-master
 
2、Client Key Exchange消息
Client端:把产生的pubkey(即B=gb mod p 放入Client Key Exchange消息中发给 server 。
server端:收到此消息后,会把消息中的pubkey(即B=gb mod p 记录下来,可以依据pubkey(即B=gb mod p和 private(即a)计算出 pre-master
 
四、图形化表达方式
DH方式密钥交换四种表达方式
            
    
    博客分类: 安全 DH密钥SSL 
 

 

  • DH方式密钥交换四种表达方式
            
    
    博客分类: 安全 DH密钥SSL 
  • 大小: 486.5 KB
相关标签: DH 密钥 SSL