原方案https://blog.csdn.net/jiongxv/article/details/125261870
注意区分随机预言机模型与标准预言机模型:https://blog.csdn.net/weixin_43137080/article/details/109595044
这篇文章中涉及的安全性证明是without random oracles but in the generic group model
签名方案的标准安全概念是在选择消息攻击(EUF-CMA) [GMR88]下的存在不可伪造性,这意味着即使获得了对签名oracle的访问权,也很难为从未向签名oracle请求的消息m输出有效的签名对 ( m , σ ) (m,\sigma) (m,σ)。它被定义为挑战者 C \mathcal{C} C和敌手 A \mathcal{A} A之间的博弈:
如果没有概率多项式时间对手 A \mathcal{A} A能以不可忽略的概率获胜,则签名方案是EUF-CMA安全的.
到目前为止,一个经典的假设是所谓的LRSW [LRSW00],它承认两个协议:
(LRSW Assumption) 设 G \mathbb{G} G是素数阶p的循环群,有一个生成元g。对于 X = g x X = g^x X=gx和 Y = g y Y = g^y Y=gy,其中 x x x和 y y y是 Z p \mathbb{Z}_p Zp中的随机标量。我们在输入 m ∈ Z p m\in \mathbb{Z}_p m∈Zp上定义oracle O ( m ) \mathcal{O}(m) O(m),它选择一个随机 h ∈ G h\in \mathbb G h∈G,输出三元组 T = ( h , h y , h x + m x y ) T = (h, h^y, h^{x+mxy}) T=(h,hy,hx+mxy)。给定 ( X , Y ) (X, Y) (X,Y)和对这个oracle的无限访问,没有敌手可以有效地为一个新标量 m ∗ m^* m∗生成这样的三元组,而不要求 O \mathcal{O} O。
(Assumption 1).设 ( p , G 1 , G 2 , G T , e ) (p, \mathbb{G}_1, \mathbb{G}_2, \mathbb{G}_T, e) (p,G1,G2,GT,e)为Type-3(非对称, G 1 ≠ G 2 \mathbb{G}_1\neq\mathbb{G}_2 G1=G2)的双线性组设置, g g g (或 g ~ \widetilde g g ) 是 G 1 \mathbb{G}_1 G1 (或 G 2 \mathbb{G}_2 G2)的生成元。对于 ( X = g x , Y = g y ) (X = g^x,Y = g^y) (X=gx,Y=gy)和 ( X ~ = g ~ x , Y ~ = g ~ y ) , x , y ∈ Z p ( \widetilde X = \widetilde g^x, \widetilde Y = \widetilde g^y),x,y\in\mathbb Z_p (X =g x,Y =g y),x,y∈Zp, 在输入 m ∈ Z p m\in \mathbb{Z}_p m∈Zp上定义oracle O ( m ) \mathcal{O}(m) O(m),它选择一个随机 h ∈ G 1 h\in \mathbb G_1 h∈G1,输出元组 P = ( h , h x + m y ) P=(h,h^{x+my}) P=(h,hx+my)。给定 ( g , Y , g ~ , X ~ , Y ~ ) (g,Y,\widetilde g,\widetilde X, \widetilde Y) (g,Y,g ,X ,Y )和对这个oracle的无限访问,没有敌手可以有效地为一个新标量 m ∗ m^* m∗生成这样的元组,with h ≠ 1 G 1 h \neq 1_{\mathbb G_1} h=1G1,而不要求 O \mathcal{O} O。
可以注意到,使用pairing,可以检查敌手的输出,因为对 P = ( P 1 , P 2 ) P = (P_1, P_2) P=(P1,P2)应该满足 e ( P 1 , X ~ ⋅ Y ~ m ) = e ( P 2 , g ~ ) e(P_1,\widetilde X\cdot \widetilde Y^m)=e(P_2,\widetilde g) e(P1,X ⋅Y m)=e(P2,g ).
此外, ( X , Y ) (X, Y) (X,Y)足以回答oracle查询:在标量 m ∈ Z p m\in \mathbb{Z}_p m∈Zp上,计算 ( g r , ( X ⋅ Y m ) r ) (g^r,(X·Y^m)^r) (gr,(X⋅Ym)r)。这需要每个查询进行3次幂运算,而知道 ( x , y ) (x, y) (x,y)只需要在 G 1 \mathbb{G}_1 G1中进行随机抽样和一次幂运算。
在某些情况下,一个较弱的假设就足够了,即不给敌手 Y Y Y:
(Assumption 2).设 ( p , G 1 , G 2 , G T , e ) (p, \mathbb{G}_1, \mathbb{G}_2, \mathbb{G}_T, e) (p,G1,G2,GT,e)为Type-3(非对称, G 1 ≠ G 2 \mathbb{G}_1\neq\mathbb{G}_2 G1=G2)的双线性组设置, g g g (或 g ~ \widetilde g g ) 是 G 1 \mathbb{G}_1 G1 (或 G 2 \mathbb{G}_2 G2)的生成元。对于 ( X = g ~ x , Y = g ~ y ) , x , y ∈ Z p (X = \widetilde g^x,Y = \widetilde g^y),x,y\in\mathbb Z_p (X=g x,Y=g y),x,y∈Zp, 在输入 m ∈ Z p m\in \mathbb{Z}_p m∈Zp上定义oracle O ( m ) \mathcal{O}(m) O(m),它选择一个随机 h ∈ G 1 h\in \mathbb G_1 h∈G1,输出元组 P = ( h , h x + m y ) P=(h,h^{x+my}) P=(h,hx+my)。给定 ( g ~ , X ~ , Y ~ ) (\widetilde g,\widetilde X, \widetilde Y) (g ,X ,Y )和对这个oracle的无限访问,没有敌手可以有效地为一个新标量 m ∗ m^* m∗生成这样的元组, with h ≠ 1 G 1 h \neq 1_{\mathbb G_1} h=1G1,而不要求 O \mathcal{O} O。
Theorem 4.在一般双线性群模型中,上述假设1(因此假设2)成立:在 q q q 次oracle查询和 q G q_G qG 次group-oracle查询之后,没有敌手能够为一个新的标量以好于 6 ( q + q G ) 2 / p 6(q + q_G) ^2/p 6(q+qG)2/p的概率生成一个有效对.
Proof.
假设 r i ∈ Z p ∗ r_i \in \mathbb{Z}^∗_p ri∈Zp∗,第i次对 m i m_i mi的查询返回 ( h i , t i = h i ( x + y ⋅ m i ) ) , h i = g r i (h_i,t_i=h_i^{(x+y\cdot m_i)}),h_i=g^{r_i} (hi,ti=hi(x+y⋅mi)),hi=gri
我们必须首先证明敌手 A \mathcal A A不能符号化地产生一个新的有效元组,然后证明偶然有效性是非常不可能的。
对于标量 m ∗ m^* m∗上的输出元组 ( h ∗ , t ∗ ) (h ^*,t ^*) (h∗,t∗),由于 h ∗ , t ∗ ∈ G 1 h^*,t^*\in \mathbb G_1 h∗,t∗∈G1,所以它们只能是之前的元组 ( h i , t i ) , g , Y (h_i,t_i), g,Y (hi,ti),g,Y的组合(没有任何 G 2 \mathbb G_2 G2中的元素的帮助):它们是在 G 1 \mathbb G_1 G1中通过对内部规则的oracle的查询构建的,所以我们知道 ( ( u i , 1 , v i , 1 , u i , 2 , v i , 2 ) i , ( w 1 , w 2 ) , ( w 1 ′ , w 2 ′ ) ) ∈ Z p 4 q + 4 ((u_{i,1},v_{i,1},u_{i,2},v_{i,2})_i,(w_1,w_2),(w_1',w_2'))\in \mathbb Z_p^{4q+4} ((ui,1,vi,1,ui,2,vi,2)i,(w1,w2),(w1′,w2′))∈Zp4q+4满足:
因此,有新元组
新元组的有效性意味着 z ∗ = r ∗ ( x + y ⋅ m ∗ ) z^*=r^*(x+y\cdot m^*) z∗=r∗(x+y⋅m∗),这导致:
为了使两个多变量多项式相等,两边应该出现相同的单项:
还需要评估偶然有效的概率:当两个不同的多项式涉及到对Oracle的回答时,得到相同的值。
(解释:公共元素就是group oracle,一阶表示只有一个变量,对应 q G q_G qG个结果;同理,由oracle提供的元素2阶表示两个结果,对应 2 q 2q 2q;而前文所述pairing中 g ~ \widetilde g g 等其他组oracle查询的多项式是3阶)
设 q G q_G qG为group-oracle查询的最大值,因此最多有 3 + 2 q + q G 3+2q +q_G 3+2q+qG多项式,所以最多 ( 3 + 2 q + q G ) 2 / 2 (3+2q +q_G)^2/2 (3+2q+qG)2/2对不同的多项式能求出相同的值.
根据Schwartz-Zippel引理, ( 3 + 2 q + q G ) 2 / 2 (3 + 2q + q_G)^2/2 (3+2q+qG)2/2个多项式的总概率上界为 3 / p × ( 3 + 2 q + q G ) 2 / 2 p 3/p\times(3 + 2q + q_G)^2/2p 3/p×(3+2q+qG)2/2p
3 ( 3 + 2 q + q G ) 2 / 2 p ≤ 6 ( q + q G ) 2 / p 3(3 + 2q + q_G)^2/2p \leq 6(q + q_G)^2/p 3(3+2q+qG)2/2p≤6(q+qG)2/p(放缩法),可以忽略不计。
(Schwartz-Zippel引理)
把这个多消息签名方案的安全性依赖于单消息签名方案的安全性,依此类推,假设2。
Theorem 6
在上述假设2下,多消息签名方案满足EUF-CMA安全级别。
更准确地说,如果攻击者能够以 ϵ \epsilon ϵ的概率攻破多消息签名方案的EUF-CMA安全性,则在相同的运行时间和相同的签名查询次数内,存在攻击者攻破单消息签名方案的EUF-CMA安全性,且成功的概率大于 ϵ − q / p \epsilon-q/p ϵ−q/p
Proof.
假设 A \mathcal A A是多消息签名方案的EUF-CMA安全性的敌手。针对单消息签名方案的EUF-CMA安全性,使用 A \mathcal A A构造一个归约 R \mathcal R R。后一场game的挑战者将用 C \mathcal C C表示.
证明这种线性关系几乎不可能出现:
(要区分 R \mathcal R R和 A \mathcal A A的视角, α j \alpha_j αj是由 R \mathcal R R选择的, A \mathcal A A得到的公钥中包含 α j \alpha_j αj,分析这种“包含”是否导致公钥和 α j \alpha_j αj之间存在某种联系,即 A \mathcal A A是否能从中获得某些知识)
设标量 y , Y ~ = g ~ y y,\widetilde Y=\widetilde g^y y,Y =g y,随机选择 γ j ← Z p , j = 1 , . . . , r \gamma_j\leftarrow\mathbb Z_p,j=1,...,r γj←Zp,j=1,...,r,设 α j ′ ← α j − γ j , β j ′ ← β j + y γ j , j = 1 , . . . , r \alpha_j'\leftarrow\alpha_j-\gamma_j,\beta_j'\leftarrow\beta_j+y\gamma_j,j=1,...,r αj′←αj−γj,βj′←βj+yγj,j=1,...,r,可以注意到:
因此,公钥是独立于实际的 γ j \gamma_j γj的,因此没有揭示 α j \alpha_j αj的信息,这与仅依赖于oracle和公钥选择的 σ 1 \sigma_1 σ1的签名是一样的。
因此,敌手的完整视图完全独立于 α j \alpha_j αj的视图。因此, R \mathcal R R中止的概率的上限(多项式Schwartz-Zippel引理)是 q × 1 / p = q / p q\times 1/p=q/p q×1/p=q/p。
结论 R \mathcal R R成功将攻破multi message签名规约到攻破single message签名的概率大于 ϵ − q / p \epsilon-q/p ϵ−q/p.证毕。
在认证公钥设置中,我们将这个聚合签名方案的安全性依赖于单消息签名方案的安全性,依此类推假设2:
Theorem 7. 在上述假设2下,在认证公钥设置下,聚合签名方案达到EUF-CMA安全级别。更准确地说,如果攻击者能够破坏聚合签名方案的EUF-CMA安全性,则存在攻击单消息签名方案的EUF-CMA安全性的攻击者,在相同的运行时间和相同的签名查询次数内,以相同的概率成功。
Proof.
在认证公钥设置中,假设 A \mathcal A A是聚合签名方案的EUF-CMA安全性的敌手。针对单消息签名方案的EUF-CMA安全性,使用 A \mathcal A A构造一个归约 R \mathcal R R。后一场game的挑战者将用 C \mathcal C C表示.
分析:(这是不是查询并生成合法聚合签名的过程?)
已知一个对单消息 m i m_i mi的签名, ( σ 1 , σ 2 = σ 1 x + y i ) (\sigma_1,\sigma_2=\sigma_1^{x+y_i}) (σ1,σ2=σ1x+yi)
根据聚合签名的原始定义,首先要构造一个将消息 m i m_i mi聚合到公共密钥 ( p k i , 1 , . . . , p k i , r i ) (pk_{i,1},...,pk_{i,r_i}) (pki,1,...,pki,ri)下消息 ( m i , 1 , . . . , m i , r i ) (m_{i,1},...,m_{i,r_i}) (mi,1,...,mi,ri)上的聚合签名 σ i \sigma_i σi:
- j = 0 , σ i , 0 = ( g , X ) j=0,\sigma_{i,0}=(g,X) j=0,σi,0=(g,X)
- j = 1 , σ i , 1 = ( g t i , 1 , ( X ⋅ g y i , 1 m i , 1 ) t i , 1 ) j=1,\sigma_{i,1}=(g^{t_{i,1}},(X\cdot g^{y_{i,1}m_{i,1}})^{t_{i,1}}) j=1,σi,1=(gti,1,(X⋅gyi,1mi,1)ti,1)
- j = 2 , σ i , 2 = ( g t i , 1 t i , 2 , ( X ⋅ g y i , 1 m i , 1 + y i , 2 m i , 2 ) t i , 1 t i , 2 ) j=2,\sigma_{i,2}=(g^{t_{i,1}t_{i,2}},(X\cdot g^{y_{i,1}m_{i,1}+y_{i,2}m_{i,2}})^{t_{i,1}t_{i,2}}) j=2,σi,2=(gti,1ti,2,(X⋅gyi,1mi,1+yi,2mi,2)ti,1ti,2)
- …
- j = r i , σ i = ( g ∏ j t i , j , ( X ⋅ g ∑ j y i , j m i , j ) ∏ j t i , j ) = j=r_i,\sigma_i=(g^{\prod_j t_{i,j}},(X\cdot g^{\sum_j y_{i,j}m_{i,j}})^{\prod_j t_{i,j}})= j=ri,σi=(g∏jti,j,(X⋅g∑jyi,jmi,j)∏jti,j)= ( σ 1 , σ 1 x + ∑ j y i , j m i , j ) (\sigma_1,\sigma_1^{x+\sum_j y_{i,j}m_{i,j}}) (σ1,σ1x+∑jyi,jmi,j)(用 σ 1 \sigma_1 σ1表示了 g ∏ j t i , j g^{\prod_j t_{i,j}} g∏jti,j)
- 那么后面也要变换: σ ′ = ( σ 1 t , σ 2 ′ ) \sigma'=(\sigma_1^t,\sigma_2') σ′=(σ1t,σ2′), σ 2 ′ = ( σ 2 ⋅ σ 1 y i m i ) t = ( σ 1 x + ∑ j y i , j m i , j ⋅ σ 1 y i m i ) t = ( σ 2 m i ⋅ σ 1 ∑ j y i , j m i , j ) t \sigma_2'=(\sigma_2\cdot\sigma_1^{y_im_i})^t=(\sigma_1^{x+\sum_j y_{i,j}m_{i,j}}\cdot\sigma_1^{y_im_i})^t=(\sigma_2^{m_i}\cdot\sigma_1^{\sum_j y_{i,j}m_{i,j}})^t σ2′=(σ2⋅σ1yimi)t=(σ1x+∑jyi,jmi,j⋅σ1yimi)t=(σ2mi⋅σ1∑jyi,jmi,j)t
但是必须另外证明签名查询是用 σ ′ ← ( σ 1 t , ( σ 2 ⋅ σ 1 ∑ j = 1 r i y i , j ⋅ m i , j ) t ) \sigma'\leftarrow(\sigma_1^t,(\sigma_2\cdot \sigma_1^{\sum_{j=1}^{r_i}y_{i,j}\cdot m_{i,j}})^t) σ′←(σ1t,(σ2⋅σ1∑j=1riyi,j⋅mi,j)t)正确模拟的, σ = ( σ 1 , σ 2 ) \sigma= (\sigma_1,\sigma_2) σ=(σ1,σ2)是在 p k ∗ pk^* pk∗下 m 1 m_1 m1的签名, t t t是一个随机标量,而真正的签名应该是 σ ′ ← ( σ i , 1 t , ( σ i , 2 ⋅ σ i , 1 y ⋅ m ) t ) \sigma'\leftarrow(\sigma_{i,1}^t,(\sigma_{i,2}\cdot \sigma_{i,1}^{y\cdot m})^t) σ′←(σi,1t,(σi,2⋅σi,1y⋅m)t),其中 σ i = ( σ i , 1 , σ i , 2 ) \sigma_i= (\sigma_{i,1},\sigma_{i,2}) σi=(σi,1,σi,2)是公钥 ( p k i , 1 , . . . , p k i , r i ) (pk_{i,1},...,pk_{i,r_i}) (pki,1,...,pki,ri)下消息 ( m i , 1 , . . . , m i , r i ) (m_{i,1},...,m_{i,r_i}) (mi,1,...,mi,ri)上的有效签名(或当 r = 0 r = 0 r=0时 σ i = ( g , X ) \sigma_i = (g,X) σi=(g,X)), t t t是一个随机标量。
但可以注意到,在这两种情况下, σ 1 ′ \sigma_1' σ1′是 G 1 ∗ \mathbb G _1^* G1∗中的一个随机元素,而 σ 2 ′ \sigma_2' σ2′是满足 e ( σ 2 ′ , g ~ ) = e ( σ 1 ′ , X ~ ⋅ ∏ j = 1 r i p k i , j m i , j ⋅ p k m i ) e(\sigma_2',\widetilde g) = e(\sigma_1', \widetilde X\cdot \prod_{j=1}^{r_i} pk_{i,j}^{m_{i,j}}\cdot pk^{m_i}) e(σ2′,g )=e(σ1′,X ⋅∏j=1ripki,jmi,j⋅pkmi)的唯一元素。因此,完美的模拟。
结论:多消息伪造 → \rightarrow →单消息伪造;逆否命题:单消息不可伪造 → \rightarrow →多消息不可伪造