一、概述
- RSA是基于大数因子分解难题。目前各种主流计算机语言都支持RSA算法的实现
 - java6支持RSA算法
 - RSA算法可以用于数据加密和数字签名
 - RSA算法相对于DES/AES等对称加密算法,他的速度要慢的多
 - 总原则:公钥加密,私钥解密 / 私钥加密,公钥解密
 
二、模型分析
RSA算法构建密钥对简单的很,这里我们还是以甲乙双方发送数据为模型
- 甲方在本地构建密钥对(公钥+私钥),并将公钥公布给乙方
 - 甲方将数据用私钥进行加密,发送给乙方
 - 乙方用甲方提供的公钥对数据进行解密
 
如果乙方向传送数据给甲方:
- 乙方用公钥对数据进行加密,然后传送给甲方
 - 甲方用私钥对数据进行解密
 
三、代码分析
1  |  | 
四、总结
- RSA与DH算法不同,只需要一套密钥就能完成加密、解密的工作
 - 通过代码能看出来,公钥长度明显小于私钥
 - 遵循:公钥加密-私钥解密,私钥加密-公钥解密的原则
 - 公钥和私钥肯定是完全不同