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