群签名方案是算法组 Π 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
]
∣
我们说 Π 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
]
∣
我们说 Π 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
]
∣
我们说 Π 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
]
∣
我们说 Π 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