公钥、私钥、数字签名和数字证书简介

如题所述

第1个回答  2022-07-11

加密方式一共分为两种 对称加密 和 非对称加密

加密和解密使用的是同一种密钥。

这类加密算法的优点是 计算量小,加密速度快,加密效率高

缺点也明显,在传输数据前,双方必须商定并且保存好密钥,任何一方泄露了密钥,加密信息就不再安全了。另外,每次使用对称加密算法时,都需要使用其他人不知道的唯一密钥,这样会使得双方会拥有大量的密钥,让管理密钥称为一种负担

非对称加密需要两个密钥来进行加密和解密,这两个密钥分别称为 公有密钥 和 私有密钥

这两份钥匙的使用是相互对应的。如果使用了公有密钥加密文件,那么解密就只能用对应的私密钥匙才能解密,同理,如果用私密钥匙加密了文件,那么解密也只能使用对应的公有。

这里有一个缺点:因为乙的公钥是公开的,所以有被人冒充甲方使用乙的公钥发送请求。

解决方案:首先甲用自己的私钥对消息进行加密,生成另一个密文,然后将密文发送给乙,乙收到消息之后,如果能用乙的公钥解密,就说明这个消息确实是甲方发送的。

虽然上面的方法解决了身份认证的问题,但是由于所有人都有甲的公钥,所以只要消息发送中途被截获就一定能被解密;而且对文件加密可能是个耗时的过程,比如文件足够大,那么用私钥加密整个文件以及拿到文件后解密的开销无疑是巨大的。为了解决这两个问题,于是有了数字签名。

数字签名的发送流程如下:

有了数字签名,我们就可以验证来源和消息的完整性。但是仍然还存在缺陷。假如存在第三人丙,偷偷在乙的电脑用自己的公钥替换了甲的公钥,然后用自己的私钥给乙发送信息,这时乙收到的消息会以为是甲发送的。
为了解决这个问题,于是有了 数字证书

数字证书,就是为了解决,无法区分电脑中的密钥归属的问题,其实就是给公钥做个身份证,以便让别人搞清楚公钥到底是谁的.。

但仍然存在问题:假设有一万个人,他们每个人都有CA的证书,那么乙就要报关一万份不同的CA公钥来验证这些人的身份。这是不可能的。
所以就有了"根证书"。根证书里面存储着CA公钥来验证所有CA颁发的数字证书,乙只需要保管一份根证书就可以验证所有人的身份了。

以上

原文连接: https://blog.csdn.net/kswkly/article/details/83617944

相似回答