群签名方案是算法组 Π G S = ( G e n , S i g n , V e r , O p e n ) \Pi_{GS}=(Gen, Sign, Ver, Open) ΠGS=(Gen,Sign,Ver,Open),
我们说 σ \sigma σ 是 m m m 的正确签名,如果存在 i ∈ [ 1 , n ] i \in [1,n] i∈[1,n] 以及随机带 r r r,使得 σ = S i g n ( g s k [ i ] , m ; r ) \sigma=Sign(gsk[i],m;r) σ=Sign(gsk[i],m;r) 成立。
群签名的安全性只需两条:完全匿名性、完全可追踪性。其他奇奇怪怪的安全性要求都可以由这两条推出。
定义敌手的优势为:
A d v Π , A a n o n ( λ , n ) = 2 ∣ P r [ E x p t Π , A a n o n ( 1 λ , n , U 1 ) = 1 ] − 1 2 ∣ = ∣ P r [ E x p t Π , A a n o n ( 1 λ , n , 1 ) = 1 ] − P r [ E x p t Π , A a n o n ( 1 λ , n , 0 ) = 0 ] ∣ \begin{aligned} Adv_{\Pi,A}^{anon}(\lambda,n) &= 2\left| Pr\left[Expt_{\Pi,A}^{anon}(1^\lambda,n,U_1)=1\right] - \frac{1}{2} \right|\\ &= \left| Pr\left[Expt_{\Pi,A}^{anon}(1^\lambda,n,1)=1\right] - Pr\left[Expt_{\Pi,A}^{anon}(1^\lambda,n,0)=0\right] \right| \end{aligned} AdvΠ,Aanon(λ,n)=2∣∣∣∣Pr[ExptΠ,Aanon(1λ,n,U1)=1]−21∣∣∣∣=∣∣Pr[ExptΠ,Aanon(1λ,n,1)=1]−Pr[ExptΠ,Aanon(1λ,n,0)=0]∣∣
我们说 Π G S \Pi_{GS} ΠGS 是完全匿名的,如果对于任意 PPT 敌手 A A A,优势 A d v Π , A a n o n ( λ , n ) Adv_{\Pi,A}^{anon}(\lambda,n) AdvΠ,Aanon(λ,n) 是可忽略的。
定义敌手的优势为:
A d v Π , A t r a c e ( λ , n ) = P r [ E x p t Π , A t r a c e ( 1 λ , n ) = 1 ] Adv_{\Pi,A}^{trace}(\lambda,n) = Pr\left[Expt_{\Pi,A}^{trace}(1^\lambda,n)=1\right] AdvΠ,Atrace(λ,n)=Pr[ExptΠ,Atrace(1λ,n)=1]
我们说 Π G S \Pi_{GS} ΠGS 是完全可追踪的,如果对于任意 PPT 敌手 A A A,优势 A d v Π , A t r a c e ( λ , n ) Adv_{\Pi,A}^{trace}(\lambda,n) AdvΠ,Atrace(λ,n) 是可忽略的。
密码学部件:
环签名方案是算法组 Π R S = ( G e n , S i g n , V e r ) \Pi_{RS}=(Gen, Sign, Ver) ΠRS=(Gen,Sign,Ver),
若验签通过,那么说明签名是由 R R R 中的某个 v k i vk_i vki 对应的 s k i sk_i ski 所签署的。与群签名相比,环签名是去中心化的,并且参与者的加入退出很容易。缺点是没法追踪恶意的签名者。
定义敌手的优势为:
A d v Π , F E U F − C M A ( λ ) = P r [ E x p t Π , F e u f − c o r r u p t − c m a ( 1 λ ) = 1 ] Adv_{\Pi,F}^{EUF-CMA}(\lambda) = Pr\left[ Expt_{\Pi,F}^{euf-corrupt-cma}(1^\lambda)=1 \right] AdvΠ,FEUF−CMA(λ)=Pr[ExptΠ,Feuf−corrupt−cma(1λ)=1]
我们说 Π R S \Pi_{RS} ΠRS 是**(内部攻击下)不可伪造的**,如果对于任意 PPT 敌手 F F F,优势 A d v Π , F E U F − C M A ( λ ) Adv_{\Pi,F}^{EUF-CMA}(\lambda) AdvΠ,FEUF−CMA(λ) 是可忽略的。
定义敌手的优势为:
A d v Π , A a n o n ( λ ) = 2 ∣ P r [ E x p t Π , A a n o n ( 1 λ , U 1 ) = 1 ] − 1 2 ∣ = ∣ P r [ E x p t Π , A a n o n ( 1 λ , 1 ) = 1 ] − P r [ E x p t Π , A a n o n ( 1 λ , 0 ) = 0 ] ∣ \begin{aligned} Adv_{\Pi,A}^{anon}(\lambda) &= 2\left| Pr\left[Expt_{\Pi,A}^{anon}(1^\lambda,U_1)=1\right] - \frac{1}{2} \right|\\ &= \left| Pr\left[Expt_{\Pi,A}^{anon}(1^\lambda,1)=1\right] - Pr\left[Expt_{\Pi,A}^{anon}(1^\lambda,0)=0\right] \right| \end{aligned} AdvΠ,Aanon(λ)=2∣∣∣∣Pr[ExptΠ,Aanon(1λ,U1)=1]−21∣∣∣∣=∣∣Pr[ExptΠ,Aanon(1λ,1)=1]−Pr[ExptΠ,Aanon(1λ,0)=0]∣∣
我们说 Π G S \Pi_{GS} ΠGS 是基本匿名的,如果对于任意 PPT 敌手 A A A,优势 A d v Π , A a n o n ( λ ) Adv_{\Pi,A}^{anon}(\lambda) AdvΠ,Aanon(λ) 是可忽略的。
定义敌手的优势为:
A d v Π , A a n o n − c o r r u p t ( λ ) = 2 ∣ P r [ E x p t Π , A a n o n − c o r r u p t ( 1 λ , U 1 ) = 1 ] − 1 2 ∣ = ∣ P r [ E x p t Π , A a n o n − c o r r u p t ( 1 λ , 1 ) = 1 ] − P r [ E x p t Π , A a n o n − c o r r u p t ( 1 λ , 0 ) = 0 ] ∣ \begin{aligned} Adv_{\Pi,A}^{anon-corrupt}(\lambda) &= 2\left| Pr\left[Expt_{\Pi,A}^{anon-corrupt}(1^\lambda,U_1)=1\right] - \frac{1}{2} \right|\\ &= \left| Pr\left[Expt_{\Pi,A}^{anon-corrupt}(1^\lambda,1)=1\right] - Pr\left[Expt_{\Pi,A}^{anon-corrupt}(1^\lambda,0)=0\right] \right| \end{aligned} AdvΠ,Aanon−corrupt(λ)=2∣∣∣∣Pr[ExptΠ,Aanon−corrupt(1λ,U1)=1]−21∣∣∣∣=∣∣∣Pr[ExptΠ,Aanon−corrupt(1λ,1)=1]−Pr[ExptΠ,Aanon−corrupt(1λ,0)=0]∣∣∣
我们说 Π G S \Pi_{GS} ΠGS 是匿名的,如果对于任意 PPT 敌手 A A A,优势 A d v Π , A a n o n − c o r r u p t ( λ ) Adv_{\Pi,A}^{anon-corrupt}(\lambda) AdvΠ,Aanon−corrupt(λ) 是可忽略的。
方法一:类似群签名,使用 NIZKP 将一般签名方案转化为环签名方案。
方法二:真的构成一个环 [RST01],使用 trapdoor OWP 群成员可以在环的某个位置上打开环,然后再关闭环。
设 { H s } \{H_s\} {Hs} 是 CRHF, { F k , F k − 1 } \{F_k,F_k^{-1}\} {Fk,Fk−1} 是 trapdoor OWP,对应的公私钥为 ( p k , s k ) (pk,sk) (pk,sk), Π = ( G e n , E n c , D e c ) \Pi=(Gen, Enc, Dec) Π=(Gen,Enc,Dec) 是对称加密算法,签名算法如下:
盲签名方案是算法组 Π B S = ( G e n , < S , U > , V e r ) \Pi_{BS}=(Gen, , Ver) ΠBS=(Gen,<S,U>,Ver),其中 < S , U > <S,U> 是签名者和用户之间的交互协议,
定义敌手的优势为:
A d v Π , F E U F − C M A ( λ ) = P r [ E x p t Π , F e u f − c m a ( 1 λ ) = 1 ] Adv_{\Pi,F}^{EUF-CMA}(\lambda) = Pr\left[ Expt_{\Pi,F}^{euf-cma}(1^\lambda)=1 \right] AdvΠ,FEUF−CMA(λ)=Pr[ExptΠ,Feuf−cma(1λ)=1]
我们说 Π B S \Pi_{BS} ΠBS 是**(内部攻击下)不可伪造的**,如果对于任意 PPT 敌手 F F F,优势 A d v Π , F E U F − C M A ( λ ) Adv_{\Pi,F}^{EUF-CMA}(\lambda) AdvΠ,FEUF−CMA(λ) 是可忽略的。
定义敌手的优势为:
A d v Π , A b l i n d ( λ ) = 2 ∣ P r [ E x p t Π , A b l i n d ( 1 λ , U 1 ) = 1 ] − 1 2 ∣ = ∣ P r [ E x p t Π , A b l i n d ( 1 λ , 1 ) = 1 ] − P r [ E x p t Π , A b l i n d ( 1 λ , 0 ) = 0 ] ∣ \begin{aligned} Adv_{\Pi,A}^{blind}(\lambda) &= 2\left| Pr\left[Expt_{\Pi,A}^{blind}(1^\lambda,U_1)=1\right] - \frac{1}{2} \right|\\ &= \left| Pr\left[Expt_{\Pi,A}^{blind}(1^\lambda,1)=1\right] - Pr\left[Expt_{\Pi,A}^{blind}(1^\lambda,0)=0\right] \right| \end{aligned} AdvΠ,Ablind(λ)=2∣∣∣∣Pr[ExptΠ,Ablind(1λ,U1)=1]−21∣∣∣∣=∣∣Pr[ExptΠ,Ablind(1λ,1)=1]−Pr[ExptΠ,Ablind(1λ,0)=0]∣∣
我们说 Π B S \Pi_{BS} ΠBS 是盲的,如果对于任意 PPT 敌手 A A A,优势 A d v Π , A b l i n d ( λ ) Adv_{\Pi,A}^{blind}(\lambda) AdvΠ,Ablind(λ) 是可忽略的。
密码学部件:
盲签名的密钥生成算法 G e n ( 1 λ ) Gen(1^\lambda) Gen(1λ) 为:
盲签协议(Blind-signing protocol) < S , U > <S,U> 构造如下:
验签算法 V e r ( v k B S , m , ( C σ , π ) ) Ver(vk_{BS},m,(C_\sigma,\pi)) Ver(vkBS,m,(Cσ,π)) 为:
其中,NIZKP < P , V >
R L ( x , w ) = 1 ⟺ x = ( C σ , p k e , C R S C o m , v k , m ) w = ( u , v , σ , C ) 1) C = C o m ( C R S C o m , m ; u ) 2) 1 = V e r ( v k , C , σ ) 3) C σ = E n c ( p k e , C ∥ σ ; v ) R_L(x,w)=1 \iff \begin{aligned} &x = (C_\sigma,pk_e,CRS_{Com},vk,m)\\ &w = (u,v,\sigma,C)\\ &\textbf{1) }C = Com(CRS_{Com},m;u)\\ &\textbf{2) }1 = Ver(vk,C,\sigma)\\ &\textbf{3) }C_\sigma = Enc(pk_e,C\|\sigma;v)\\ \end{aligned} RL(x,w)=1⟺x=(Cσ,pke,CRSCom,vk,m)w=(u,v,σ,C)1) C=Com(CRSCom,m;u)2) 1=Ver(vk,C,σ)3) Cσ=Enc(pke,C∥σ;v)