RSA算法基础知识

来源:互联网 发布:删失数据如何处理 编辑:程序博客网 时间:2024/06/05 00:14
RSA加密算法是一种非对称加密算法.


对称加密算法
加密数据使用的密钥可以计算出用于解密数据的密钥,反之亦然.绝大多数的对称加密算法加密密钥和解密密钥都是相同的. (加密速度快,适用与大数据的加密)

非对称加密算法
所谓非对称加密算法是指用于加密的密钥与用于解密的密钥是不同的,而且从加密的密钥无法推导出解密的密钥. (加密速度慢,适用与小数据的加密)

非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快.对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥.所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了.这样安全性就大了很多.

RSA算法需要生成一个加密密钥和一个解密密钥, 即一个公钥和一个私钥.



1.随意选择两个大的质数p和q,p不等于q,计算N=pq。
2.根据欧拉函数,不大于N且与N互质的整数个数为(p-1)(q-1)
3.选择一个整数e与(p-1)(q-1)互质,并且e小于(p-1)(q-1)
4.用以下这个公式计算d:d× e ≡ 1 (mod (p-1)(q-1))
5.将p和q的记录销毁。

(N,e)是公钥,(N,d)是私钥。(N,d)是秘密的。(N,e)传给另一方,而私钥(N,d)藏起来,不然任何人知道。


加密消息公式:

n^e ≡ c(mod N)

n是由明文m转成小于N的大怎数(可以是n的每个Unicode码或ASCII码拼接而成, 如果超出N的话, 可以分成几段来处理)

这样, n, e, N都是已知的, 就可根据公式计算出密文c

解密消息公式:

c^d  ≡ n(mod N)

同样c, d, N是已知的, 可以计算出n
在有m到n的编码规则, 就可算出明文m了.