1.A 有两把钥匙,一把是公钥,另一把是私钥
2.A把自己的公钥给B
3.B要传递信息给A,B写完信息内容后,使用A给的公钥加密,就可以达到保密的效果
4.A收到消息后,使用私钥解密,就可以看到消息内容。(*只要私钥不泄密,这个信息就是安全的,即使落到别人手机,也无法解密)
5.A要给B回信,决定采用“数字签名”,A写完先用Hash函数,生成信件的摘要(digest)
(1)Hash:用于获取取一个对象(字符串/数值等)的哈希值
(2)hash(‘test’) # 字符串 返回值:2314058222102390712
6.然后,A使用私钥,对这个信件加密,生成“数字签名”(signature)
7.A 将这个签名,附在信件下面,一起发给B,
8.B收到信之后,取下数字签名,用A的公钥解密,取得信件的摘要,有次证明这封信确实是A发出的
9.B再次对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。
10.**C用自己的公钥换走了A给B的公钥,此时B拥有的公钥实际上是C 的公钥,此时,C就可以用自己私钥做成“数字签名”冒充A给B写信
11.B无法确定自己的公钥是否属于A,所以就要求A去找“证书中心”(certificate authority,简称CA),为公钥做认证。证书中心用自己的私钥,对A的公钥和一些相关信息一起加密,生成“数字证书”(Digital Certificate)。
12.A拿到数字证书后,以后给B写信时,只要在签名的同时,在附上数字证书就可以了。
13.B收到信后,用CA的公钥解开数字证书,就可以拿到A真实的公钥了,然后就能证明“数字签名”是否真的是A签的。
数字签名
最新推荐文章于 2024-10-09 07:00:00 发布