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