Bitcoin and Cryptocurrency Technologies 学习笔记:1.3 Digital Signatures 数字签名

这里总结数字签名机制,数字签名是另外一个密码学原语。当然这里不涉及密码学中的特定的数字签名算法,比如 : RSA,或者ECDSA,这两个算法,留待以后填坑

  • 数字签名特性
    • 不可伪造性unforgeability
  • 实现细节
  • 实际签名算法
    • RSA签名
    • ECDSA

数字签名特性

类似我们现实中的签名,我们希望他有两个特性:

  • 只有本人能签名,但是任何人看到你的签名可以验证这是否是你的签名
  • 任何人不可伪造你的签名,不管他看过多少次你的签名。

Bitcoin and Cryptocurrency Technologies 学习笔记:1.3 Digital Signatures 数字签名_第1张图片

如上图所见,首先用一种算法,产生一对公钥和私钥,然后用私钥对消息签名,任何人有你的公钥都能够验证是否是你的签名。实际中比如有 RSA(上学期没好好学密码学:( …),ECDSA

不可伪造性(unforgeability)

这个不可伪造性其实是说,比如任何的攻击者,看了很多次你的签名后都不能在另外的从来没签名的消息上模仿,如下图:

Bitcoin and Cryptocurrency Technologies 学习笔记:1.3 Digital Signatures 数字签名_第2张图片

实现细节

  1. 好的随机源: 不光在这里很重要,很多密码学的安全性都依赖与随机数,因此好的随机源是很必要的,然而,这里并没有说什么是好的随机源
  2. 对消息摘要签名: 由于有时候消息是很长的,所以我们可以用hash 的无冲突性,签名消息摘要而不是消息本身
  3. 对hash pointer 签名: 那么整个签名会覆盖整个数据结构

实际签名算法

这里留两个坑待补

RSA签名

ECDSA

你可能感兴趣的:(数据结构,Cryptocurrency,比特币与加密货币技术学习笔记)