鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 网站安全 > 加密解密 > >

RSA公钥加密算法

来源:互联网 作者:佚名 时间:2015-09-03 09:44
(只讲方法,不讲理论) 规则: 有计算机的地方就有密码,有密码的地方就不得不提SRA算法(由发明人Rivest,Shamir,Adleman名字命名)。这是最典型的目前也是应用最广泛的非对称加密算法,遵循余下规则: a.乙方生成公钥和私钥。公钥是公开的任何人都可以得到

(只讲方法,不讲理论)

规则:

有计算机的地方就有密码,有密码的地方就不得不提SRA算法(由发明人Rivest,Shamir,Adleman名字命名)。这是最典型的目前也是应用最广泛的非对称加密算法,遵循余下规则:

a.乙方生成公钥和私钥。公钥是公开的任何人都可以得到,私钥是保密的

b.甲方获取公钥,然后用来对信息加密

c.乙方得到加密后的信息,用私钥解密

基础知识:

1.欧拉函数和欧拉定理

欧拉函数:用于解决给定任意整数n,在小于等于n的整数中与n互质数字的个数

如果两个正整数a和n互质,则n的欧拉函数 φ(n) 可以让下面的等式成立:

也就是说,a的φ(n)次方被n除的余数为1。或者说,a的φ(n)次方减去1,可以被n整除

2.模反元素

如果两个正整数a和n互质,那么一定可以找到整数b,使得 ab-1 被n整除,或者说ab被n除的余数是1。

这时,b就叫做a的"模反元素"。

算法步骤:

第一步,随机选取两个不等的质数p,q。比如61和53(越大越好)

第二步,计算乘积n,n=61*53=3233(n的二进制长度就是密钥的长度,实际情况下,长度通常大于等于1024)

第三步,计算n的欧拉函数φ(n),根据公式φ(n) = (p-1)(q-1)得到结果3120

第四步,随机选取一个1<e<φ(n)并且与φ(n)互质的数字,比如17

第五步,计算e和φ(n)的模反元素d,d=2753

第六步,将n和e封装成公钥(3233,17),n和d成密钥(3233,2753)

实际应用中,公钥和私钥的数据都采用ASN.1格式表达(实例)。

第七步,加密和解密

a.加密

需要用公钥(n,e)

比如需要加密信息m(必须是小于n的整数),假设是65

加密就是直接计算出c,其中me=c(mod n)

这里得到c=2790,将加密结果发送给私钥

b.解密

需要私钥(n,d)

只需要解决cd=m(mod n)可以得到m(这个等式是一定成立的)



网友评论
<