复制成功

分享至

OKX > 区块链百科 >

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

2022.02.28

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

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

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

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

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

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

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

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

签名的生成:

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

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

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

签名的验证:

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

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

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

总结一下:

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

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

免责声明:数字资产交易涉及重大风险,本资料不应作为投资决策依据,亦不应被解释为从事投资交易的建议。请确保充分了解所涉及的风险并谨慎投资。本站资讯仅提供信息参考,不构成任何投资建议,用户一切投资行为与本站无关。

相关推荐

industry-frontier