之前听说公钥加密、私钥签名。我想他们不是一对吗?为什么会区分加密或签名呢 , 仔细了解下来发现运用的场景不一样, 会导致理解不一样 。
先说说什么是非对称加密:
非对称加密算法需要两个密钥: 公开密钥 (简称公钥、任意向外发布)和私有密钥(简称私钥、严格秘密保管)。公私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
常用的非对称加密算法有那些呢:
RSA、Elgamal
我们目前运用到最广的估计是RSA
那么为什么说是:公钥加密、私钥签名
先说公钥加密首先从出发开始 , 假如 A和B ,2个系统通信, A有A私钥和B公钥 、 B有A公钥和B私钥,当系统A想往B发送消息时, 需要通过B的公钥进行加密(这里称为:A1),然后B通过自己的B私钥对A发送的消息A1进行解密, 这样就知道A发送的数据是什么了 ,反过来B发送消息到A也是如此。站在B层面上来说 , 这个消息只有B自己能解密那么为什么说是私钥签名呢?比如B用户对外发布了一条消息, A或者其他用户通过对应的公钥能解读出来这条消息的内容, 那么我们必定认为这是B发布的 , 因为只有B才有对应的私钥(公私钥是一对),可以验证该用户发布的数据或文件是否完整、中途有否曾被篡改,接收者可信赖这条信息确实来自于该用户,该用户亦无法抵赖, 这就称作数字签名