非对称加密总结
来源:互联网 发布:unity3d 旋转 编辑:程序博客网 时间:2024/06/07 23:59
概述
非对称加密算法需要两个密钥:公开密钥(public key)和私有密钥(private key)。
公开密钥与私有密钥是一对。公钥加密,只能用对应的私钥解密。私钥加密,只能用对应的公钥解密。
因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
目的
相比对称加密,非对称加密的提出,主要是解决两个问题:
- 数据加密传输,防止消息明文传输时被拦截和篡改
- 数字签名,防止伪造冒充信息源头
数据加密传输
甲方给乙方发送消息
- 双方都需要生成一套密钥,其中私钥自己保存,公钥公开出去
- 甲方,使用乙方的公钥,加密消息,传递给乙方
- 乙方收到消息,使用乙方的私钥,解密消息
注释:如果消息被拦截,拦截者没有乙方的私钥,无法解密消息
乙方给甲方回复消息
- 乙方,使用甲方的公钥,加密待回复消息,传递给甲方
- 甲方收到消息,使用甲方的私钥,解密回复消息
注释:如果消息被拦截,拦截者没有甲方的私钥,无法解密消息
数字签名
甲方给乙方发送消息
- 甲方,使用甲方的私钥,对信息签名,传递给乙方
- 乙方收到消息,使用甲方的公钥,对信息验签
注释:第三方无法伪造甲方的私钥,验签通过,就防止了伪造和冒充
总结
通过以上,可以总结:
- 公钥加密,私钥解密
- 私钥签名,公钥验签
使用的原理,开头已提到:
- 公钥加密,只能用对应的私钥解密
- 私钥加密,只能用对应的公钥解密
问题
思考
甲方给乙方发送消息这个过程,如何同时保证以下两点:
- 甲方的消息不怕第三方拦截
- 乙方收到的消息来自甲方,而不是第三方通过乙方的公钥伪造
自问
甲方给乙方发送消息,到底是用乙方的公钥加密,还是甲方的私钥加密?
因为,公钥是对外公布的:
- 只用 公钥加密、私钥解密,如何做到验签,也就是,如何确认消息来自甲方
- 只用 私钥加密、公钥解密,如何做到加密,也就是,任何拿到甲方公钥的第三方都可以解密
自答
甲方给乙方发送消息,这么优化一下:
- 双方都需要生成一套密钥,其中私钥自己保存,公钥公开出去
- 甲方,使用乙方的公钥,加密消息,并且加上甲方的私钥(数字签名),传递给乙方
- 乙方收到消息,使用乙方的私钥和甲方的公钥,解密消息
再思考
按照上面的解答,如果第三方,拦截了甲方的消息,保留甲方的数字签名,用乙方的公钥,加密任意消息,这不就做到了伪造甲方的消息,但是消息内容被篡改?
自问
甲方给乙方发送消息,如何防止消息被篡改?
他答
甲方使用甲方的私钥加密的内容,最好是MD5签名后的明文。
—— 没看懂
最后
到这里,大致搞清楚原理了,具体如何实现,不在这里说,可能实际的项目中,会进一步演化,加入 SHA-256 等。但是无论如何演化,其基本原理和目的就是这些了。
参考网址
- http://baike.baidu.com/item/非对称加密算法
- http://blog.csdn.net/21aspnet/article/details/7249401
- http://blog.csdn.net/tanyujing/article/details/17348321
阅读全文
0 0
- 非对称加密总结
- 对称加密和非对称加密总结
- 总结:CA & HTTPS &非对称加密&数字签名
- 对称加密/非对称加密
- 对称加密、非对称加密
- 对称加密/非对称加密
- 对称加密 非对称加密
- 对称加密、非对称加密
- 单向加密 对称加密 非对称加密
- 对称和非对称加密
- 对称与非对称加密
- 对称与非对称加密
- openssl 对称 非对称加密
- 非对称加密技术
- 非对称加密
- 非对称加密
- 非对称加密
- 非对称加密
- java弱引用软引用
- springmvc+maven+cxf
- web.xml详细解读
- 数据能“造”点啥事儿?-小蜘了
- EDM(Email Direct Marketing)HTML制作要点
- 非对称加密总结
- 日志库EasyLogging++学习系列(10)—— 日志文件滚动
- 使用组播来做设备搜索时要注意一下组播路由所在的网卡
- POJ 2232 New Stone-Forfex-Cloth Game 笔记
- jQuery——获取复选框被选中的值
- 取得目录和取得操作系统盘符以及获取系统盘可用空间
- 产品开发记录[linux嵌入式]
- 操作系统之进程的描述与控制1
- iOS开发加载网页(webview)时的菊花(小圈)