前言
之前也讲过几种算法,最近在调试代码的时候总是看到了RSA的算法有个N值和E值。这里找了一篇简单了解一下。
一 什么是RSA
RSA是一种公钥密码算法,它的名字由三位开发者,即Ron Rivest、Adi Shamir和Leonard Adleman的姓氏的首字母组成的。
RSA被用于公钥密码和数字签名。
1983年,RSA公司为RSA算法在美国取得了专利,但现在该专利已经过期。
二 RSA加密
在RSA中,明文、密钥和密文都是数字。RSA的加密过程可以用下面的公式来表达。
RSA的密文是对代表了明文的数字的E次方求mod N的结果。换句话说,就是将明文和自己做E次乘方,然后将其结果除以N求余数,这个余数就是密文。
加密公式中出现了两个数——E和N,到底都是什么数呢?RSA的加密是求明文的E次方mod N,因此只要知道E和N这两个数,任何人都可以完成加密的运算。所以说,E和N是RSA加密的密钥,也就是说,E和N的组合就是公钥。
不过,E和N并不是随便什么数都可以的,它们是经过严密计算得出的。其中E是加密(Encryption&#