原文教材 与 参考资料:
Boneh Dan , Shoup Victor . A Graduate Course in Applied Cryptography[J].
该书项目地址(可以免费获取):http://toc.cryptobook.us/
博客为对该书的学习笔记,并非原创知识,仅帮助理解,整理思路。
15.5 Signature schemes from pairings
椭圆曲线密码学中的一个经典方案就是BLS数字签名协议,直到今天还有不少人是通过BLS短签名入门密码学的,BLS短签名有多种优秀的性质:
(1)依托ECC可以选择G0元素作为一个短的签名,G1元素为一个相对较长的公钥,亦可以交换,但是无论如何都要比RSA-FDH签名的长度更短。
(2)支持签名聚合与验证聚合,对于大量的签名可以一次性或者批量验证。
关于BLS签名的安全性证明,已经被非常多的材料所描述,该书着重描述了聚合属性下BLS的安全性。
15.5.1 BLS 数字签名方案
方案非常简单,作为密码研究者应当对该方案非常熟悉。
这是一个确定性签名方案,即使用相同的密钥对同一消息进行多次签名,签名结果是相同的。
BLS方案的安全性可以被规约到CDH问题上,不过这里由于BLS方案既可以选择在对称ECC群上或者非对称ECC群上,所以需要给出一般性的安全性证明,有些材料在描述该方案安全性证明时,默认使用了对称群设定。
描述Co-CDH 假设攻击游戏如下:
形式化描述co-CDH 假设如下:
下面给出攻击游戏模型图:
B从co_BDH挑战者获得一个困难问题实例,并将这个困难问题实例嵌入到敌手A的询问中,最终,敌手输出一个伪造签名,签名即为困难问题的解,B可以使用该伪造签名解决co-BDH挑战者的困难问题实例,敌手可以对B进行哈希询问与签名询问。下面给出该规约的攻击游戏细节:
上述BLS方案的安全性证明中,敌手的仿造签名一定发生在Q-RO询问中,也就是说敌手一定会在某个哈希询问结果上进行签名伪造。那么,我们希望敌手能够仅仅在挑战签名(哈希询问)处进行签名伪造,而不在其他哈希询问消息处进行伪造。所以挑战者首先猜测一个敌手进行伪造的询问位置w,如果敌手正好在此位置进行签名伪造(挑战者猜测正确),那么得到SIGadv <= (QH+1)*coCDHadv ;
但是这个规约因子QH+1是非常大的,一般来说QH远远大于QS的询问次数,在上文的规约过程中,挑战者均匀随机的猜测一次敌手的伪造消息位置,所以敌手将以1/QH+1的概率对困难问题实例哈希值进行签名。此处,我们假设敌手仅仅在挑战消息处进行签名伪造,而在不在任何其他签名询问处进行签名伪造,也就是说,敌手在Q次签名询问都询问的是模拟的签名(非困难问题嵌入的位置),并且只有在挑战时对带有困难问题的哈希值进行伪造签名,那么嵌入困难问题的概率为ps = 1/(Qs+1)(对应于之前的猜测w), 这意味着从挑战者的视角来看,模拟成功(敌手正确对困难问题请求进行伪造)的概率Pr[sim_success] = ps(1-ps)^ps,根据引理15.6,此时规约系数约等于2.72(自然对数e)乘以1/Qs+1。所以,得到敌手A的优势为:SIGadv <= 2.72*(Qs+1)*coCDHadv。
值得注意的一点是,我们亦可以将挑战者放入困难问题的概率设置为一个未知数X,那么模拟成功(敌手正确对困难问题请求进行伪造)的概率为X(1-X)^(Qs),当这个函数表达式求极大值,可以得到X = 1/qs +1。这可以理解为我们设计挑战者猜测概率的必要性解释,而上文开始描述的设定挑战者以1/(Qs+1)概率嵌入困难问题的设定为充分性解释。