所以,考虑到另一个例子,我们可以从哈希指针中构建一个有向无环图。我们将能够非常有效地验证该图表中的成员资格,而且它很容易计算。以这种方式使用哈希指针是一般的技巧,您将在分布式数据结构和本章后面的整个本书中讨论的算法中一次又一次地看到。
1.3数字签名
在本节中,我们将看看数字签名。这是第二个加密原语,和哈希函数一样,我们后续会把它只有你可以签名,但任何看到它的人都可以验证它是否有效。其次,我们希望将签名与特定文件相关联,以便签名不能用于表示你的协议或认可其他文档。对于手写签名,后一个属性类似于确保有人不能将您的签名从一个文档中删除,并将其粘贴到另一个文档的底部。
数字签名方案
数字签名方案由以下三种算法组成:
·(sk,pk):=generateKeys(keysize):generateKeys方法获取一个密钥的大小,并生成一个密钥与之配对。秘密密钥sk被保密起来,用于签署消息。Pk是你向每个人提供的公开验证密钥,任何拥有此密钥的人都可以验证你的签名。
·sig:=sign(sk,message):sign方法将一个消息和一个秘密密钥sk作为输入,并在sk下输出签名消息。