在认识公私钥之前,首先我们需要区分加密和认证这两个基本概念:
加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获得正确的资料内容,所以数据加密可以保护数据,防止监听攻击,其重点在于数据的安全性。身份认证是用来判断某个身份的真实性,确认身份后,系统才可以依据不同的身份赋予不同的权限,其重点在于用户的真实性。两者的侧重点是不同的。
1.1 对称加密和非对称加密的主要区别
对称加密和非对称加密的区别为:密钥不同、安全性不同、数字签名不同。
- 密钥不同:
- 对称加密:对称加密加密和解密使用同一个密钥。
- 非对称加密:非对称加密加密和解密所使用的不是同一个密钥,需要两个密钥来进行加密和解密。
- 安全性不同:
- 对称加密:对称加密如果用于通过网络传输加密文件,那么不管使用任何方法将密钥告诉对方,都有可能被窃听。
- 非对称加密:非对称加密因为它包含有两个密钥,且仅有其中的“公钥”是可以被公开的,接收方只需要使用自己已持有的私钥进行解密,这样就可以很好的避免密钥在传输过程中产生的安全问题。
- 数字签名不同:
- 对称加密:对称加密不可以用于数字签名和数字鉴别。
- 非对称加密:非对称加密可以用于数字签名和数字鉴别。
2.1 公钥和私钥的作用
公钥和私钥的作用主要就是用来加解密和加验签,但是很多人搞不清楚公钥和私钥的区别,不知道用哪个加密、用哪个加签。下面我们先上结论,再详细解释:
- 公钥加密、私钥解密。
- 私钥加签、公钥验签。
2.2 加解密
加密的目的是保证信息的保密传输,使只有具备资格的一方才能解密。
公钥和私钥是一对密钥,公钥是公开的,私钥是不公开的。假设a有一对公私钥,当b或者其他人用a的公钥对某信息进行加密,那么只有具备私钥的a可以解密该信息。
2.3 加验签
加签的目的是让收到消息的一方确认该消息是由特定方发送的。
因为私钥只存在于a,也只有a才能对消息进行加签,这个过程就叫签名。你可以理解为老干妈的私章只有老干妈才有,腾讯拿到这个章盖过的合同后,需要先确认这个合同是老干妈发过来的,但为什么腾讯还是被骗了,那是因为腾讯没有老干妈的公钥,没有对加签过的合同进行验签。公钥的作用就是验签,验证了就能知道消息的真伪。