什么是数字签名?如何生成数字签名以及验证数字签名?

数字签名,英文为“Digital Signature”,也是一种签名,只不过传统是用笔在纸上签字,现在是用“非对称加密算法”来签名。

关于非对称加密算法,胜超反复讲了多次,是不可逆推的一种加密算法,非常安全,也非常重要!

为什么要使用数字签名呢?

由胜超前文的分享知道,非对称加密,需要两个密钥:公钥和私钥,加密和解密必须互相对应。

比如小明要把“hello”这个信息传递给小黑,小明利用小黑的公钥进行加密,得到一个密文,然后小黑收到后,必须要用自己的私钥来解密,得到明文:hello

这个过程中,由于小黑的公钥是公开的,任何人都可以用小黑的公钥来加密,并且向小黑传输信息,那么,小黑如何确定这个信息就是小明发的呢?

这个时候数字签名就派上用场了,只要小明用自己的私钥加密,小黑用自己的公钥解密,获得的哈希值和原文的哈希值一致,就可以确定是小明发来的信息!

如何生成数字签名以及验证数字签名?

签名的生成:

1、小明将信息原文进行哈希计算,得到相应的哈希值,形成摘要;

2、小明将得到的摘要用自己的私匙进行加密 ,生成签名;

3、小明将签名和原文信息一起发送给小黑,就像写信一样,信纸上是传递的信息,签名要写在信封上一起发送。

签名的验证:

1、小黑收到后,提取信息中的签名,用小明的公钥进行解密,得到信息的哈希值;

2、小黑提取原文信息,再进行哈希运算,得到另一个哈希值;

3、小黑对比两个哈希值,如果一致,则验证成功。

总结一下:

1,必须要用公钥来加密原文,而不是私钥,一旦使用私钥加密,那就只能使用公钥来解密,而公钥都是公开的,这样加密就失去了意义。

2,对于数字签名,要用私钥来加密,加密的是密文的哈希值,即使泄露,这个哈希值也无法破解,只为校验身份,所以数字签名要用私钥来加密。

免责声明:本文章仅代表作者个人观点,不代表本站的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。本站作为中立的平台服务提供方,尊重他人的知识产权、名誉权等法律法规所规定的合法权益!如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到qklwk88@163.com,本站相关工作人员将会进行核查处理回复

本文地址:https://www.5m88.com/post/250.html

发布于 2022-02-28 00:02:00
收藏
分享
海报
0 条评论
2748
上一篇:元宇宙会让远距传送更容易吗? 下一篇:什么是燃烧证明算法?燃烧证明是如何工作的?
目录

    推荐阅读

    0 条评论

    请文明发言哦~

    忘记密码?

    图形验证码