加密技术入门——从对称加密到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的公钥