关于公钥和私钥
要理解公钥和私钥的概念,首先得理解对称加密和非对称加密。对称加密:加解密密钥相同;非对称加密:加解密密钥不同。公钥和私钥为成对出现,互相解密(即使用非对称加密算法,公钥加密私钥解密,私钥加密公钥解密)。
在实际应用中,A用户生成公钥和私钥,将A公钥暴露出去,其他用户即可使用A公钥对A用户发送加密消息,而A用户可以使用私有的A私钥进行数据解密。但是此时A用户收到的消息无法确认具体哪个用户发送的,可能是B也可能是C。这时如果需要确认发送方身份,而唯一能标识发送方身份的是发送方的私钥。此时需要使用到签名概念,用于标识发送方身份。
模拟A向B发送消息过程,A使用A私钥加密指定规则数据生成签名(如:明文中的数据排列加密),再使用B公钥加密明文数据+签名,B收到消息后使用B私钥解密明文数据,此时B取到明文数据+签名,B使用A公钥解密签名,观察是否和明文数据约定规则一致,一致则可以确定为A发送的数据。简易图示如下