RSA算法是由它的三位开发者,即 Ron Rivest、Adi Shamir 和 Leonard Adleman 的姓氏的首字母组成的 (Rivest-Shamir-Adleman)。
RSA 可以被用于公钥加密、数字签名和密钥交换。
RSA算法是非对称加密算法。了解RSA算法之前需要了解素数的概念。
素数:只能被1和本身整除的数。如:13,19…
RSA算法数学难题:两个大素数相乘容易,素数相乘的乘积分解比较难。
RSA算法中间涉及到数论的一些知识。RSA算法的流程理解起来是比较简单的。实际的难度在于RSA选择和生成的私钥与公钥。
明文先转换为比特串分组,使每个分组对应的十进制数小于n,即分组长度小于log2n,然后对每个明文分组mi 作加密运算,具体过程如下。
公钥指数e的长度比较短,因此可以提高解密和验签的速度


RSA密钥长度有:1024、2048、3072、7680、15360(单位都是bit)。1024位的密钥已经不安全了。密钥长度越长安全性则越高。RSA算法推荐的密钥长度为2048位。
RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积(即上面的n是公开的)公开作为加密密钥。RSA的安全性依赖于大数分解。
参考文章如下: 翱游公钥密码算法