原文教材 与 参考资料:
Boneh Dan , Shoup Victor . A Graduate Course in Applied Cryptography[J].
该书项目地址(可以免费获取):http://toc.cryptobook.us/
博客为对该书的学习笔记,并非原创知识,帮助理解,整理思路。
13.1 Definition of a digital signature
Tips:数字签名技术可以和MAC码联系起来,二者的都能实现认证,但是数字签名是sk签名,pk用来验证,MAC码则是用同样的私钥sk进行验证。
直接的给出数字签名定义如下:
13.1.1 Secure signatures
对于数字签名而言,一个基本的安全要求为 Existential unforgery chosen message attack. 即为,敌手具备选择消息并获得该消息对应签名的能力,但是也不能成功伪造一个没有询问过的消息的签名,为了刻画这个基本的安全属性,给出以下的一个攻击游戏,捕获该型敌手的全部可能行为:
定义敌手的优势就是赢得这个这个游戏的概率。
Tips:
对于数字签名技术的一些其他安全性要求(非必要,至少应该满足基本的安全性定义):
Security against multi-key attacks:
在真实系统中,多个用户自然存在多对密钥,是否可以保证不同密钥实例产生多个签名条件下,方案也是安全的。
Strongly unforgeable signatures:
一句话概括,不但要保证敌手不能得到一个新消息的合法签名,也不能得到一个能够通过验证的之前获得过的签名。即,不能出现同一个消息有两个合法签名的情况。捕获这种安全风险的攻击游戏如下:
上述的攻击游戏13.1 和 攻击游戏13.2 虽然捕获了一般性的安全情况,但是并无法捕获所有的签名系统面临的安全风险,举例下述几种安全风险:
Binding signatures: 无法绑定签名消息与签名,很多应用不要求将签名的消息与签名进行绑定,但是在实现中,往往采用签名绑定消息的情况(例如,对Hash(M) 进行签名。),并且目前的签名技术也能够实现防止不同消息能够对应同一个合法签名的情况。
Duplicate Signature Key Selection(DSKS):存在这样一种攻击,敌手可以依据获得的签名得到一对合法的密钥对。这将导致该签名的归属产生二义性。
13.2 Extending the message space with collision resistant hashing
假设我们的签名协议的签名消息空间M = {0,1}^256。 这样的消息空间显然是比较小的,为此可以采用抗碰撞的哈希函数来扩展整个消息空间,简单来看就是常说的hash-and-sign paradigm。
此处给出一个形式化定义:
这里的H亦可以使用多种Hash,例如TCR-Hash等。