加密技术入门——从对称加密到CA证书
2016-03-18 14:10
393 查看
加密技术入门——从对称加密到CA证书
几个基本概念
对称加密对称加密是最传统的加密方式,简单说就是用一个密钥对原文加密,再用同样密钥对原文解密。对称加密的优点就是加密速度快,但是缺点也很明显,密钥的传递无法保障。常见的对称加密算法有DES、3DES、AES等
非对称加密
为了解决密钥传递的问题,聪明的人类罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)
发明了非对称加密算法RSA。简单来说就是有一个公钥和一个私钥,私钥自己保留,公钥分发给别人。可以用公钥加密用私钥解密,也可以用私钥加密用公钥解密,但是不能用私钥加密私钥解密,也不能用公钥加密公钥解密。非对称加密很好的解决了对称加密中的密钥传递的问题。
摘要
摘要可以看作是你传递的内容的唯一指纹,独一无二的。摘要的这个特征能很好的验证传递的内容是否被别人篡改了。摘要最著名的算法当属MD5,更安全的可以采用SHA。
一个典型的应用场景
A(客户端)传递给B(服务器端)一段内容,要求不被篡改,密钥不能公开A用对称加密des将原文加密
A用md5对原文生成摘要
A用B给的公钥(PB)将对称密钥加密
B接到上述内容后,先用自己的私钥(SB)解密,获得对称密钥
用对称密钥解密密文获得原文
将解密出来的原文进行md5获得摘要2
用摘要1和摘要2比对,看看是否一致
如果一致表示内容没有篡改,是一个可信的内容
问题
这存在一个安全隐患,A的身份B无法确认,B不能确定这段密文一定是A给他发的。解决方案就是用数字签名。
数字签名
数字签名其实就是非对称加密和摘要的结合使用。原理很简单,对称加密支持私钥加密,公钥解密。那么我们用A的私钥加密,如果能用A的公钥解密那就能确定这段内容一定是A发送的。非对称加密效率较低,所以通常会结合摘要来实现。数字信封
上述场景结合数字签名其实就是一个数字信封的应用。交互过程基本相同,唯一不同的地方就是摘要需要用A的私钥(SA)加密,B收到后用A公钥(PB)来获得摘要1。
问题
问题1:B(服务器端)需要知道所有A(客户端)的公钥
问题2:B(服务器端)和A(客户端)的公钥变得十分重要,公钥是公开的,如果其他人冒充身份提供公钥如何解决?
CA数字证书
解决公钥可靠性的方法就是CA数字证书。公钥的分配都有一个可信的机构来分配,就是CA。CA用它的私钥做数字签名就是CA提供的证书:证书=CA的私钥(B的身份+B公钥)
客户端获取证书 -> CA的公钥(证书)-> 获得B的身份和B的公钥
相关文章推荐
- ubuntu下修改文件夹权限
- mxnet深度学习实战:跑自己的数据实验和一些问题总结
- [1064]:Financial Management
- 《python计算机视觉编程》读书笔记------6(Numpy篇)
- Activity启动模式之singleTask
- QT窗口与视口(window&ViewPort)的关系,言简意赅的表达。
- ubuntu中安装mongo
- 基于队列的线程池
- Visual Studio 2013版本安装
- web.xml中classpath
- Android自定义控件——PullZoomView
- Android项目,library中根据资源id获取资源
- h5标签语义化
- 字符串数组内搜索的方法
- 如何将word在网页中展现为HTML的形式---Openoffice方式
- angular页面
- Array.prototype.slice应用和原理探析
- 学习笔记(一)——MVC扩展
- local storage (H5本地存储)
- Effective Java读书笔记一