RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密
密钥的生成则会产生3个参数 N e1 e2.
N :为两个大质数P和Q ,N转换为二进制的长度则为密钥长度.
e1 :可以为任意数 但要求e1与(P-1)*(Q-1)互质
e2 :生成规则为(e2*e1)mod ((p-1)*(q-1))=1。
这样 (N,e1)则为公钥,(N,e2)则为私钥
RSA加解密的算法完全相同
例如把A数据加密 则为:A=B^e2 mod n(^:二进制按位异或运算符)
B就是加密的密文 再把B密文解密则同样是:B=A^e1 mod n(^:二进制按位异或运算符)
e1和e2可以互换使用,即:
A=B^e1 mod n;B=A^e2 mod n;