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