数字签名

前提

发送端有私钥,接收端有发送端的公钥。

一、加密步骤:

第一步:
对信息使用Hash函数,生成信件的摘要(digest)。
第二步:
对这个摘要进行加密(使用私钥),生成"数字签名"(signature)。

二、发送

将数字签名随信息一起发送。

三、解密过程:

第一步:
使用公钥对数字签名进行解密,得到摘要。 //证明信息确实来自发送端
第二步:
对信息使用Hash函数,将得到的结果与使用公钥解密的得到的摘要进行对比;
如果两者一致,就证明信息未被修改过。

四、发现新问题

如果接收端公钥被替换,接收端依然正常接受信息,即接收端并不知道真正的发送端是谁。

五、解决新问题

接收端去找"证书中心"(certificate authority,简称CA),为公钥做认证;
证书中心用自己的私钥,对发送端的公钥做认证,即证书中心用自己的私钥对发送端的公钥和一些相关信息(如发送端信息、证书的信息等)一起加密,生成"数字证书"(Digital Certificate)
认证中心将自己的公钥交给接收端。

六、发送

将数字签名及数字证书随信息一起发送。

七、解密过程(加了数字证书后)

第一步(多出的一步):
先用认证中心给的公钥对数字证书进行解密,拿到发送端的公钥;
第二步:
然后使用发送端的公钥对数字签名进行解密,得到摘要; //证明"数字签名"是否真的是发送端签的
第三步:
对信息使用Hash函数,将得到的结果与使用公钥解密的得到的摘要进行对比;
如果两者一致,就证明信息未被修改过。

学习:

数字签名是什么?

posted @ 2021-08-17 16:48  光一  阅读(379)  评论(0编辑  收藏  举报