几个概念
加密算法:将明文加密成密文的步骤
解密算法:将密文解密为明文的步骤
加密和解密过程中都需要用到密钥,可以将其理解为现实生活中的钥匙,不过密钥则像是2124$%@+3这样一串字符而已
对称密码
对称密码是指加密和解密时使用同一密钥的方式
- 对称加密解密都是使用同一个密钥
- 对称加密通信中存在你不想发送密钥,但你不得不发送密钥这一个密钥配送问题
- AES、DES都是常见的对称密码算法
公钥密码
公钥密码则是指加密和解密时使用不同密钥的方式,因此公钥密码又称为非对称密码,下图是公钥密码加解密方式
- 公钥加密后的密文只能用与公钥相匹配的私钥进行解密
- 公钥顾名思义可以被公开
- 私钥只能被需要解密方所拥有,只要私钥不泄漏,窃取者即使拦截到密文和公钥也无法破解到明文
- 公钥密码解决了对称密码密钥配送的问题
公钥密码通讯
现在假设A要向B发送一条消息,则通信流程如下图所示
- B生成包含私钥和公钥的密钥对,私钥自己保存
- B将公钥发送给A,以供A加密使用;即使公钥被别人窃取也没关系
- A收到B的公钥后,对要发送对消息使用公钥进行加密生成密文;加密后的密文只能用B的私钥才能解密
- A将生成对密文发送给B
- B使用私钥对密文进行解密
所以说公钥密码解决了密钥配送问题(不用担心公钥被窃取),但公钥密码依然不能解决所有问题,它不能判断自己得到的公钥是不是真正对方给的,也就说不能判断公钥的合法性;而证书就是为此而生,证书的目的就是校验公钥的合法性。