网络加密如何协商密钥

来源:互联网 发布:诺基亚n9价格淘宝 编辑:程序博客网 时间:2024/05/01 16:39

 方法应该有很多种:

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

 

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

 

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中会用一种密钥交换算法。

 

 

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

 

 

原创粉丝点击