为了账号安全,请及时绑定邮箱和手机立即绑定

一分钟读书俱乐部(十三):《区块链技术驱动金融》数字签名

标签:
区块链

原文精选:在本节,我们将讨论数字签名(digital signatures)。数字签名是密码学中的第二个重要部分,该理论和哈希函数一起,为我们后面讨论加密货币奠定基础。数字签名被认为是对纸上手写签名的数字模拟。我们对数字签名有两个特性要求,使其与我们对手写签名的预期一致。第一,只有你可以制作你自己的签名,但任何看到它的人都可以验证其有效性;第二,我们希望签名只与某一特定文件发生联系,因此该签名不能用于表明你同意或支持另一份不同的文件。对于手写签名来说,第二条就如同确保别人不能将你的签名从一份文件上剪下来,贴到另一份文件的末尾样。

webp

那我们如何通过密码学来构建这些性质呢? 首先,让我们把之前的直观讨论说得更具体一些,以便今后可以更好地论证数字签名方案,并讨论其安全特性。


读书笔记:

1,数字签名和哈希函数一起,为加密货币奠定了理论基础。

2,数字签名两个特性:第一是只有你可以制作你自己的签名,其他人可以验证有效性。第二是改签名不能用于支持其他文件。


数字签名方案


数字签名方案由以下三个算法构成:

(sk, pk) :=generateKeys(keysize) generateKeys方法把keysize作为输入,来产生一对公

钥和私钥。私钥sk被安全保存,并用来签名一段消息;公钥pk是人人都可以找到的,拿到

它,就可以用来验证你的签名。

sig:=sign(sk, message) 签名过程是把一段消息和私钥作为一个输入,对于消息输出

是签名。

isValid:=verify(pk, message, sig) 验证过程是通过把一段消息和签名消息与公钥作

为输入,如果返回的结果是真,证明签名属实;如果返回的结果为假,证明签名消息为假。

我们要求以下两个性质有效:

有效签名可以通过验证,即:verify(pk, message, sign(sk, message))==true

签名不可伪造。


读书笔记:

1,数字签名产生一对公钥和私钥。私钥sk被安全保存,并用来签名一段消息;公钥pk是人人都可以找到的,拿到它,就可以用来验证你的签名。

2,签名过程是把一段消息和私钥作为一个输入,对于消息输出就叫签名。

3,验证过程是通过把一段消息和签名消息与公钥作为输入,如果返回的结果是真,证明签名属实;如果返回的结果为假,证明签名消息为假。

4,签名不可伪造。


webp

原文精选:我们注意到generateKeys和sign都可以采用随机算法。的确,generateKeys最好是随机的,因为它需要为不同的人生成不同的密钥,而verify则需要是确定的。


现在,让我们更详细地检验我们要求数字签名方案具备的两个特性。第一个特性很直接,那就是有效的签名必须通过验证。如果我用我的密钥sk签署了一条消息,之后有人试图通过使用我的公钥pk验证关于同一条消息的签名,该签名必须证实为正确。这个特性是对签名有效的最基本要求。


读书笔记:

1,generateKeys是随机的,因为它需要为不同的人生成不同的密钥,而verify则需要是确定的。

2,有效的签名必须通过验证。如果我用我的密钥sk签署了一条消息,任何人使用我的公钥pk验证关于同一条消息的签名,该签名必须证实为正确。这个特性是对签名有效的最基本要求。


一叶之秋带你一分钟速读经典书籍,每天一分钟(只需阅读读书笔记部分),天天获新知。




作者:全职高手一叶之秋
链接:https://www.jianshu.com/p/e75599cd30f6


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
移动开发工程师
手记
粉丝
45
获赞与收藏
144

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消