RSA是一种非对称加密算法,由 Ron Rivest、Adi Shamir 和 Leonard提出。所谓非对称就是指的使用一对密钥:一个公钥和一个私钥。公钥可以公布给任何人,但私钥保密。原理就是把想加密的信息转换成Acsll码,一个字母对应一个数字,进行公钥计算后输出,接收方根据私钥进行解码。
公钥和私钥都是一组质数,如(7,33),它的意思是把Acsll码中的每一个数字进行7次方,然后除以33并取余数,将得到的一串数字输出,举个例子,加密的信息转换的Acsll码是3,那么平方后就是2187,取余就是9,这个9就会被输出,而接收方收到4后,会根据私钥(3,33)先把9进行3次方,得到729,用729除以33得到3,这样接收方就成功收到了正确的信息。
下面讲解公钥和私钥的制作过程:
- 选择两个不同的质数 p 和 q。
- 计算 N=p×q,N 被用作模数。
- 计算欧拉函数 φ(N)=(p−1)×(q−1)。
- 选择一个与 φ(N) 互质的整数 e作为公钥指数,1<e<φ(N)。
- 计算 dd,满足 (e×d)mod φ(N)≡1,d 作为私钥指数。
- 公钥为 (N,e),私钥为 (N,d)。
如果这两个质数设的非常大的话,那么想要暴力破解就成了基本不可能的事了,这也是RSA算法的可靠性来源。