[原]数字签名

栏目: 编程工具 · 发布时间: 5年前

内容简介:#简介假设Alice需要向Bob借100万元,不过,Alice和Bob离得很远,无法直接见面。通过银行汇款,Alice可以立刻从Bob那里收到钱,但是Alice的借条应该怎样发送给Bob呢?可以用挂号寄过去,不过那样需要花上一段时间,能不能用电子邮件来发送借条呢?比如:“Bob,我向你借款100万元。-----Alice"

#简介

假设Alice需要向Bob借100万元,不过,Alice和Bob离得很远,无法直接见面。通过银行汇款,Alice可以立刻从Bob那里收到钱,但是Alice的借条应该怎样发送给Bob呢?可以用挂号寄过去,不过那样需要花上一段时间,能不能用电子邮件来发送借条呢?比如:

“Bob,我向你借款100万元。-----Alice"

显然,这样的邮件无法代替借条,Bob看到这封邮件也不会轻易相信,因为电子邮件是很容易被伪造的。Alice写的邮件可能被篡改,也有可能是有人伪装成Alice发送这封邮件,或者Alice也可以事后以”我不知道这张借条“为理由进行否认。

数字签名就是用来解决这样的问题,即识别篡改,伪装和防止否认。在数字签名总有两种行为:

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

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

验证签名这一行为是由消息的接收者Bob来完成的,但也可以由需要验证消息的第三方来完成,验证签名就是检查该消息的签名是否真的属于Alice,验证的结果可以是成功或者失败,成功以为着这个签名是属于Alice的,失败则意味着这个签名不是属于Alice的。

数字签名对签名密钥和验证密钥进行了区分,使用验证密钥是无法完成签名的,签名密钥只能由签名的人持有,而验证密钥则是任何需要验证签名的人都可以持有。实际上,数字签名和公钥密码有着非常紧密的联系,数字签名就是通过将公钥密码“反过来用”而实现的。

[原]数字签名

#公钥密码和数字签名

[原]数字签名 [原]数字签名 [原]数字签名

#数字签名实例

##直接对消息签名(DSA)

  • Alice用自己的私钥对详细签名

用私钥加密得到的密文就是Alice对这条消息的签名,由于只有Alice才持有自己的私钥,因此除了Alice以外,其他人是无法生成相同的签名的。

  • Alice将消息和签名发送给Bob
  • Bob用Alice的公钥对收到的签名进行解密

如果收到的签名确实是用Alice的私钥进行加密得到的密文(签名),那么用Alice的公钥应该能正确的解密。如果接收到的签名不是用Alice的私钥进行加密得到的密文,那么就无法用Alice的公钥正确的解密

  • Bob将签名解密后得到的消息与Alice直接发送的消息进行对比

如果两者一致,则签名验证成功,如果两者不一致,则签名验证失败。

[原]数字签名

##对消息散列值签名(RSA,椭圆加密)

上面我们使用直接对消息签名的办法,但这种方法需要对整个消息进行加密,非常耗时,这是因为公钥密码算法非常慢。所以我们可以求出消息的散列值再对散列值加密。无论消息有多长,散列值的长度是固定的,因此对散列值加密要快很多。

  • Alice用单向散列函数计算消息的散列值。

  • Alice用自己的私钥对散列值进行加密,用私钥加密散列值所得到的密文就是Alice对这条散列值的签名,由于只有Alice才持有自己的私钥,因此除了Alice意外,其他人是无法生成相同的签名的。

  • Alice将消息和签名发送给Bob

  • Bob用Alice的公钥对收到的签名进行解密。如果收到的签名确实是用Alice的私钥进行加密而得到的密文,那么用Alice的公钥应该能够正确解密,解密的结果应该等于消息的散列值。如果收到的签名不是用Alice的私钥经i选哪个加密而得到的密文,那么就无法用Alice的公钥正确解密。

  • Bob将签名解密后得到的散列值与Alice直接发送的消息的散列值进行对比。如果两者一致,则签名成功,否则签名失败。

    [原]数字签名

学院 Go 语言视频主页

https://edu.csdn.net/lecturer/1928

清华团队带你实战区块链开发

扫码获取海量视频及源码 QQ群:721929980

[原]数字签名

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

我++

我++

威廉·J·米切尔 / 刘小虎等 / 中国建筑工业出版社 / 2006-6 / 50.00元

随着《我++——电子自我和互联城市》(Me++:The Cyborg Self And The Networked City)的出版,《比特之城》(City Of Bits)和《E-托邦》(E-topia)的作者完成了一套检验信息技术在日常生活中之衍生的非正式三部曲。威廉·J·米切尔描述了自马可尼以后的百年间无线技术的发展变化:网络的不断扩大,发送和接受装置的不断缩小。正如他所说,这就像“大人国重......一起来看看 《我++》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具