码迷,mamicode.com
首页 > 编程语言 > 详细

【转】两种非对称算法原理:RSA和DH

时间:2015-06-17 23:07:50      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

 转自:http://blog.chinaunix.net/uid-7550780-id-2611984.html

 

两种非对称算法原理:RSA和DH

 

虽然对称算法的效率高,但是密钥的传输需要另外的信道。非对称算法RSA和DH可以解决密钥的传输问题(当然,它们的作用不限于此)。这两个算法的名字都是来自于算法作者的缩写,希望有朝一日能够出现用中国人命名的加密算法。非对称算法的根本原理就是单向函数,f(a)=b,但是用b很难得到a。
 
RSA算法
 
RSA算法是基于大数难于分解的原理。不但可以用于认证,也可以用于密钥传输。那么用户A和B如何利用RSA算法来传输密钥呢?
1:A产生一个密钥K,用B的公钥加密K,然后将得到的密文发送给B。
2:B用自己的私钥解密收到的密钥,就可以得到密钥。
 (感谢网友的提醒,已经修改了)

 

DH算法
 
DH算法的出现就是用来进行密钥传输的。DH算法是基于离散对数实现的。用户A和B如何利用RSA算法来传输密钥?
在通信前,用户A和B双方约定2个大整数n和g,其中1,这两个整数可以公开
1)   A随机产生一个大整数a,然后计算Ka=ga mod n。(a需要保密)
2)   B随机产生一个大整数b,然后计算Kb=gb mod n。(b需要保密)
3)   A把Ka发送给B,B把Kb发送给A
4)   A计算K=Kba mod n
5)   B计算K=Kab mod n
由于Kba mod n= (gb mod n)a mod n= (ga mod n)b mod n,因此可以保证双方得到的K是相同的,K即是共享的密钥。

【转】两种非对称算法原理:RSA和DH

标签:

原文地址:http://www.cnblogs.com/awiki/p/4584508.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!