Digital Signatures with Random Oracles-BLS Scheme
《 Introduction to Security Reduction》
BLS是一种基于双线性映射的数字签名方案,方案的安全性可以规约到CDH问题(计算性Diffie-Hellman问题)。这篇重点在于安全性证明(Security Reduction)的过程,方案仅有简单的介绍。
BLS
参数设置:
双线性群PG=(G,GT,g,p,e)\mathbb {PG}=(\mathbb{G},\mathbb {G}_T,g,p,e)PG=(G,GT,g,p,e),哈希函数H:{0,1}∗→GH:\{0,1\}^*\rightarrow\mathbb GH:{0,1}∗→G,私钥 α\alphaα, 公钥 h=gαh=g^\alphah=gα ,消息 mmm。
签名:
σm=H(m)α \sigma_m=H(m)^\alpha σm=H(m)α
验证:
e(σm,g)=e(H(m),h) e(\sigma _m, g) = e(H(m), h) e(σm,g)=e(H(m),h)
CDH问题
给定g,ga,gb∈Gg,g^a,g^b \in \mathbb Gg,ga,gb∈G ,计算gabg^{ab}gab。
安全性证明
结论
假设哈希函数HHH是随机预言机。如果CDH问题是困难的,那么BLSBLSBLS方案在EU−CMAEU-CMAEU−CMA模型中是可证明安全的,规约损失LLL是qHqHqH(随机预言机的查询次数)。
证明
假设在EU−CMAEU-CMAEU−CMA模型中存在一个能够以(t,qs,ϵ)(t,q_s,\epsilon)(t,qs,ϵ)的优势破坏签名方案的敌手AAA,那么可以构造一个模拟器BBB调用敌手AAA来解决CDH问题。给定CDH问题实例(g,ga,gb)(g,g^a,g^b)(g,ga,gb),BBB控制随机预言机,调用AAA并如下运行。
Setup
模拟器BBB设置公钥为h=gαh=g^\alphah=gα,私钥为α\alphaα,此处α\alphaα就是aaa。(公钥是从问题实际例中得到的,模拟器并不知道私钥)
H-Query
敌手在此阶段进行哈希查询。模拟器在收到敌手的询问后选择一个随机数i∗∈[1,qH]i^*\in[1,qH]i∗∈[1,qH]。B准备一个空表(开始时为空),用来存储所有的哈希查询和结果。
第iii次查询设为mim_imi,若mim_imi已经在模拟器维护的表中,则直接回复。否则如下回复
H(mi)=gb+wiifi=i∗H(mi)=gwiotherwise
H(m_i)=g^{b+w_i}\quad if\quad i=i^*\\
H(m_i)= g^{w_i}\quad otherwise
H(mi)=gb+wiifi=i∗H(mi)=gwiotherwise
并将(i,mi,wi,H(mi))(i,m_i,w_i,H(m_i))(i,mi,wi,H(mi))添加到哈希列表中。
Query
敌手在此阶段进行签名查询,对于mim_imi上的签名查询,如果mim_imi是哈希列表中的第i∗i^*i∗条查询消息,则中止。
其他情况下BBB计算签名σmi=(ga)wi\sigma_{m_i}= ({g^a})^{w_i}σmi=(ga)wi
按照签名规定的形式(σm=H(m)α\sigma_m=H(m)^\alphaσm=H(m)α),模拟器产生的签名是合法的。
Forgery
敌手返回一个未被查询过消息m∗m^*m∗的伪造签名。如果消息m∗m^*m∗不是哈希表中第i∗i^*i∗个消息,则中止。其他情况下都有H(m∗)=gb+wi∗H(m^*)=g^{b+w_{i^*}}H(m∗)=gb+wi∗。
根据签名定义,
σm∗=H(m∗)α=(gb+wi∗)α=gab+awi∗
\sigma_{m^*}=H(m^*)^\alpha=({g^{b+w_{i^*}}})^\alpha=g^{ab+aw_{i^*}}
σm∗=H(m∗)α=(gb+wi∗)α=gab+awi∗
模拟器B计算
σm∗(ga)wi∗=gab+awi∗(ga)wi∗=gab
\frac{\sigma_{m^*}}{{(g^a)}^{w_{i^*}}}=\frac{g^{ab+aw_{i^*}}}{{(g^a)}^{w_{i^*}}}=g^{ab}
(ga)wi∗σm∗=(ga)wi∗gab+awi∗=gab
gabg^{ab}gab就是CDH问题实例的解。
总结
安全规约实际上就是一个从密码学方案到困难问题的连接。通过安全规约的这种形式,将密码方案的安全性与困难问题的困难性进行绑定。假设在多项式时间内敌手能够以不可忽略的优势攻破方案,那么因为存在一个多项式时间的规约,所以在多项式时间内敌手同样可以解决一个困难问题。又因为没有多项式时间的算法可以解决这样的困难问题,所以与事实推导出矛盾,假设不成立即本文方案安全。
整个过程用到了一个反证法的思想:给出假设可以破环方案,根据假设推出可以解决困难问题,与事实不符假设不成立。