公钥、私钥、加密、身份认证,傻傻分不清楚?

币圈小A
加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全性。

我们绝大多数凡人,独自感叹天赋不足、创造不够什么的,其实都是幻觉。问题归结到最后,无非就是一懒,二拖,三不肯读书,如此而已。

——《代表作和被代表作》

2345截图20210806091512.png

基于区块链的公钥、私钥、加密、认证这些较为复杂的问题,容易被搞混淆,他们的概念不太容易理解,就容易产生似是而非的概念,为了让大家加深一步理解,我今天就分享一下相关的内容。

加密和认证

首先我们需要区分加密和认证这两个基本概念。

加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全性。

身份认证是用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的权限;其重点在于用户的真实性,两者的侧重点是不同的。

2345截图20210806091512.png

公钥和私钥

先弄清楚这两个的概念及作用。

在现代密码体制中加密和解密是采用不同的密钥(公开密钥),非对称密钥密码系统,每个通信方均需要两个密钥,即公钥和私钥;

这两把密钥可以一个加密一个解密。公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。

而非对称加密算法是一种密钥的保密方法。

非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。

2345截图20210806091512.png

公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

要明白公钥和私钥只是一个相对概念,就是说我们不能单纯的去称呼一对密钥中的一个为公钥,另一个为私钥,它们的公私性总是相对于生成者来说的。

一对密钥生成后,保存在生成者手里的就是生成者私钥,生成者发布出去的就是生成者公钥,可以看到我们在称呼它们的时候前面带上了生成者,这样可以便于我们理解,避免混淆概念。一对公私钥,不能由其中的一个导出另一个。

可以暂时这么理解:

一对密钥在刚生成的时候是没有公私之分的,但是生成者会保留一个在自己手里,发布一个给别人用,正是这个“保留与发布”的操作才使得这对密钥有了公私之分,那么对于生成者来说,保留在自己手里的密钥就被称作生成者私钥,发布给别人用的那个密钥就被称作生成者公钥,注意这里的称呼带上了生成者,就是为了表明一对密钥的公私性总是相对于它们的生成者来说的。(实际中私钥和公钥在生成的时候已经具备了公私性,因为公钥和私钥是不同的生成机理,但这样理解也是没有错的,有助于帮助我们理清后面的关系)

2345截图20210806091512.png

比如:我们使用支付宝SDK(软件开发工具包)的时候,我们商户端会生成一对密钥A和B,支付宝也会生成一对密钥C和D。

如果我们商户端保存了A,而把B发布给了支付宝,A就被称作商户端私钥,B就被称作商户端公钥。(注意称呼公私钥的时候带上生成者的名字,这样可以便于我们理解,避免混淆概念)

当然我们也可以保存B,而把A发布给支付宝,这样B就被称作商户端私钥,A就被称作商户端公钥。(实际中不会这么做,因为公私钥已经提前确定好了,它们的生成机理不同但这样理解也是没有错的,有助于帮助我们理清后面的关系)

同样,假设支付宝保存了C,而把D发布给了我们,那么C就被称作支付宝私钥,D就被称作支付宝公钥,反之同理;

非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要。

小结

一个公钥对应一个私钥。

密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。

如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。

如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。

非对称密钥密码的主要应用就是公钥加密和公钥认证,而公钥加密的过程和公钥认证的过程是不一样的。

THEEND

最新评论(评论仅代表用户观点)

更多
暂无评论