一.概念:
大家发信息给我:我发给大家开着的锁(公钥),大家就可以把信息加入锁上(加密)发我,我就能用私钥打开(解密)看到信息了。公钥加密,私钥解密。(过程中 信息是密文)
我给大家发信息:我对信息进行私钥签名后发给大家,大家用我的公钥来验证。私钥签名,公钥验证。(过程中 信息是明文)
怎么证明公钥生成者是我呢?比如我面对面告诉你证明这个公钥是我的,或者我把我的公钥放在你我都信任的机构CA那里,由这个机构CA发个证书,即数字证书(记录了我的公钥和我的个人信息)。CA也有一对公私钥,用CA私钥签名我的公钥和我的个人信息生成数字证书,用CA公钥验证我的数字证书里的CA签名,证明了公钥生成者是我。每个设备里默认安装了CA的根证书(记录了可以信赖的CA机构信息和公钥)。
不懂算法不懂单向函数没关系,使用API即可。
二.运用示例
公钥是公开的,大家都可以下载,我现在假设大家得到了我的公钥,我也得到的大家的公钥。
示例1.我把我的信息用的私钥签名再使用大家的公钥加密发给大家,不管中间转发了多少个人,大家用各自的私钥解密后,再用我的公钥验证确认是我发的信息。相反同理。(信息是密文 且 是我发的)