haitao:
有谁知道:rsa算法加密传输密钥的速度(或计算复杂度)?
[阅读: 1468] 2005-07-27 03:09:11
--看到一个方案是要用rsa的加密传输密钥的算法来加密数据的,会不会是慢得要死?
--虽然数据包并不大,不超过500byte,一般在200byte以内
--据说arm9 200Mhz的机器可以达到ms级的速度,不知道是不是他们搞错了??
公匙加密
在1976年,Diffie 和Hellman发表了一篇叫《密码学新动向》的文章,这篇文章给密码学社区的研究者带来了很大的轰动。这篇文章介绍了公匙加密的概念。实际上,作为当时所知道的唯一的一种算法-对称密匙算法-已经不能满足由于网络等的通信手段而引起的通信量急增的需要
基本上说来,他们的高明想法的核心就是单向函数的机关。对于那个函数来说,一个方向上的操作是容易的,但是如果不知道秘密的机关,即使所有人都知道函数本身,从反方向计算是不现实的。在这里,公匙的扮演的角色和函数相同,仅被有限的一部分人知道的机关就是私匙。这样,爱丽斯和鲍勃(以及其他人)的世界就诞生了。爱丽斯和鲍勃是两个希望进行具有完整性要求的通信的人,他们需要防止有人监听和篡改通信。.
不用说,接收信息的人要使用私匙,逆向使用函数,来解密信息。
公匙体系最好(当然也是最简单的)例子在两年后,也就是1978年出现了。它是由Rivest, Shamir 和Adleman发明的,所以也被称为RSA。RSA算法建立在对整数的分解的数学难题上的。私匙是由三个数(p,q,d)组成,其中p和q是两个素数(具有大致相同的大小),而d和(p-1)*(q-1)互质。公匙由两个数(n,e)组成,其中n=pq,而e是(p-1)(q-1)取d为模的倒数, 例如:
ed = 1 mod(p-1)(q-1).
假如爱丽斯想鲍勃的公匙(n,e)加密,传送一些文本。她首先会把明文转换成小于n的整数m,那么她就会这样处理:
c = m^e mod n,
然后把结果c送给鲍勃。在鲍勃的这边,他就会用他的私匙(p,q,d)进行这样的处理:
c^d mod n = m^(ed) mod n = m.
对于RSA,单向的机关函数是能够从一个小于n的整数x得到x^e mod n.