网络加密如何协商密钥

 方法应该有很多种:

   双方提前制定好加密算法和密钥,但危险就是有人泄露了密钥和算法。

 

所以最好就是有个密钥动态生成,然后双方协商,但还不能让别人知道。

 

https采用的ssl

     1)  服务动态生成一对公钥A和密钥B(非对称加密),然后把公钥A发送给客户端,客户端自己动态生成一个对称密钥C,然后通过公钥A

           加密后发送给服务器,服务器通过密钥B得到对称密钥C。  此后双方通过对称密钥C加密数据。

 

       这样的算法很安全,别人没法提前知道公钥A和密钥B,就算通过抓包知道公钥A,那么也无法知道对称密钥C。

 

Diffie-Hellman密钥交换算法原理:

(1)Alice与Bob确定两个大素数n和g,这两个数不用保密

2)Alice选择另一个大随机数x,并计算A如下:A=gx mod n

3)Alice将A发给Bob

4)Bob选择另一个大随机数y,并计算B如下:B=gy mod n

5)Bob将B发给Alice

6)计算秘密密钥K1如下:K1=Bx mod n

7)计算秘密密钥K2如下:K2=Ay mod n

         K1=K2,

因此Alice和Bob可以用其进行加解密。

 

RSA加密算法是基于这样的数学事实:两个大素数相乘容易,而对得到的乘积求因子则很难。加密过程如下:

(1)选择两个大素数P、Q

(2)计算N=P*Q

(3)选择一个公钥(加密密钥)E,使其不是(P-1)与(Q-1)的因子

(4)选择私钥(解密密钥)D,满足如下条件:          (D*E) mod (P-1)(Q-1)=1

(5)加密时,明文PT计算密文CT如下:          CT=PTE mod N

(6)解密时,从密文CT计算明文PT如下:          PT=CTDmodN 这也是SSL中会用一种密钥交换算法。

 

 

其实发现了,基本思路就是通过一些方法在网络上交互的密钥,让抓包工具拿不到。尽量采用一些随机数策略,让算法制定人也无法抓包得到密钥。

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值