1. 主页 > 币圈资讯

什么是数字签名(什么是数字签名-数字签名的作用是什么-)


欧易(OKX)交易所 - 全球顶尖数字货币交易平台

注册立即 领取价值高达 6,0000 元的数字货币盲盒,邀请码:vip1234,享受 20%手续费减免。

欧易注册 APP下载

什么是数字签名_什么是数字签名?数字签名的作用是什么?

最近有很多读者朋友对什么是数字签名有疑问。今天,一些热情的网民整理了相关知识来回答!其他朋友想了解什么是数字签名?数字签名的作用是什么?,这个网站已经为你找到了问题的答案,让我们一起看看,希望能帮助你。

数字签名

我们考虑个场景:Alice需要向Blob借款100w,不过,Alice和Blob离得很远,无法直接见面,只有通过银行转账可以完成借款,但是Alice怎么把借条给Blob呢!

为了保证借条传递过程中,保证借条不被修改,我们考虑使用加密方法:

  1. 对称加密

借条内容:Alice借Blob 100w,Alice和Blob协商了一个同一密钥,Alice用hash值密钥对借条做了加密,传递给Blob,Blob对内容进行解密。解密出来获取借条的明文内容,这个协商的密钥由于第三方无法得知,可以保护借条的内容。但是有个问题,由于Blob也有密钥,Blob伪造一个借条:Alice借Blob 200w,并用密钥加密,到时候Alice还钱的时候解密内容,发现是借了200w,说不清了

  1. 非对称加密

同样的借条内容:Alice借Blob 100w,我们来看分别由Alice、Blob分别生成公私钥对有啥问题。

  • Alice生成公私钥,公钥给到blob,私钥用来加密借条内容,Alice用了私钥加密内容,传递过去blob公钥解密内容,但是有个问题,公钥是可以公开的,这样第三方也是可以获取到公钥,那么第三方可以解密出加密内容,并且篡改为借款200w,再用自己的私钥加密内容,把传递给blob的公钥替换成自己的。这样blob就会收到借款200w的借条
  • 假设是Blob生成公私钥,公钥给到Alice,Alice通过公钥加密借条内容后,由于只有Blob只有私钥,其他人无法得知这个加密数据,也无法解密出内容,在传递过程中保护了不被修改。这个由于私钥只有blob有,公钥分发下去,这样也会有个问题,第三方用公钥加密“Alice借Blob 200w”,这样给到blob也会导致争议,不知道哪个借条是真实的

那么遇到这个问题怎样解决呢?

通过数字签名解决问题

既然使用一套密钥无法解决问题,那么采用两套密钥呢,alice一套、blob一套。在考虑人在社会中的指纹都是独一无二的,这个只要按了手印就可以判断是这个人做出的决定,没必要对整个人做信息采集

数字中也可以参考这种方式,不需要对整个信息进行加密处理,是不是可以只对这个信息的“指纹”来做呢?为了保证信息“指纹”得独一无二,可以采用hash方式进行,这个方法是不可逆,并且更改一个字节都会引起hash值的变化。

那么产生hash的算法有sha256等等,那么把信息和这个指纹传递过去是不是就行了,这里还有个中间人的问题,中间人可以把这段信息获取到,同样改了信息,再重新sha256生成一个hash值,同样验证hash也是正确的。

那么保证信息不被篡改,一个是采用两套密钥来进行,另一种是采用数字证书来保证,数字证书这个后续再讨论

从上面可以看到,出现了两种行为:

  • 生成消息签名的行为
  • 验证消息签名的行为

生成消息签名的行为是由消息的发送者Alice完成的,生成签名就是根据消息内容计算数字签名的值,这个行为意味着"我认可该消息的内容"

验证消息的签名,是否接收者Blob完成的,验证签名就是检查该消息的签名是否真的属于Alice,验证的结果可以是成功或失败

在数字签名中,生成签名和验证签名的密钥是不同的,是由各自的密钥来完成的

数字签名对签名密钥和验证密钥是有区分的,使用验证密钥是无法生成签名的

签名密钥只能由签名的人持有,验证密钥则是可以由任何验证签名的人持有

我们来对比下:

非对称密钥:公钥加密,私钥解密

数字签名:私钥加密,公钥解密

数字签名的方法

(1) Alice用单向散列函数对消息计算散列值,并且用blob的公钥加密信息,用自己的私钥加密散列值

(2) Alice将加密消息和签名信息发送给blob

(3) blob用alice的公钥对签名进行解密,解密出散列值

(4) blob用自己的私钥解密出加密信息,计算散列值

(5) 对比散列值,一致说明没有被篡改。

本文来自网络,不代表币圈之家立场,如有侵权请联系我们删除,转载请注明出处:https://www.110btc.com/zixun/18204.html

联系我们

在线咨询:点击这里给我发消息

微信号:AB100082

工作日:9:30-18:30,节假日休息