Chinaunix首页 | 论坛 | 博客
  • 博客访问: 227205
  • 博文数量: 54
  • 博客积分: 2150
  • 博客等级: 大尉
  • 技术积分: 600
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-09 17:13
文章分类

全部博文(54)

文章存档

2010年(1)

2009年(42)

2008年(3)

2007年(8)

我的朋友

分类: 网络与安全

2007-11-10 23:28:35

两种非对称算法原理:RSADH

虽然对称算法的效率高,但是密钥的传输需要另外的信道。非对称算法RSADH可以解决密钥的传输问题(当然,它们的作用不限于此)。这两个算法的名字都是来自于算法作者的缩写,希望有朝一日能够出现用中国人命名的加密算法。非对称算法的根本原理就是单向函数,fa=b,但是用b很难得到a

 

RSA算法

 

RSA算法是基于大数难于分解的原理。不但可以用于认证,也可以用于密钥传输。那么用户AB如何利用RSA算法来传输密钥呢?

1A产生一个密钥K,用B的公钥加密K,然后将得到的密文发送给B

2B用自己的私钥解密收到的密钥,就可以得到密钥。

 (感谢网友的提醒,已经修改了)

DH算法

 

DH算法的出现就是用来进行密钥传输的。DH算法是基于离散对数实现的。用户AB如何利用RSA算法来传输密钥?

在通信前,用户AB双方约定2个大整数ng,其中1,这两个整数可以公开

1)   A随机产生一个大整数a,然后计算Ka=ga mod n。(a需要保密)

2)   B随机产生一个大整数b,然后计算Kb=gb mod n。(b需要保密)

3)   AKa发送给B,BKb发送给A

4)   A计算K=Kba mod n

5)   B计算K=Kab mod n

由于Kba mod n= gb mod na mod n= ga mod nb mod n,因此可以保证双方得到的K是相同的,K即是共享的密钥。

阅读(10351) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

chinaunix网友2008-07-07 17:24:33

RSA算法有误 A产生一个K,应该用B的pub_key加密。 文中所述用B的pri_key加密,有2个错误,首先A不知道B的pri_key,其次,任何人截获到之后都可以用B的pub_key解密得到key。