Linear Encryption(线性加密)
决策线性问题产生了线性加密(LE)方案,它是ElGamal加密的自然扩展。与ElGamal加密不同,线性加密即使在存在DDH决定算法的群中也是安全的。在此方案中,用户的公钥是一个三组生成元
u
,
v
,
h
∈
G
1
u,v, h \in G1
u,v,h∈G1;用户私钥是指数
x
,
y
∈
Z
p
x,y \in \Z_p
x,y∈Zp,使得
u
x
=
v
y
=
h
u^x = v^y = h
ux=vy=h。要对消息
M
∈
G
1
M \in G1
M∈G1进行加密,选择随机值
a
,
b
∈
Z
p
a,b\in \Z_p
a,b∈Zp,并输出三元组
(
u
a
,
v
b
,
m
⋅
h
a
+
b
)
(u^a,v^b,m\cdot h^{a+b})
(ua,vb,m⋅ha+b)。为了从加密
(
T
1
,
T
2
,
T
3
)
(T_1,T_2,T_3)
(T1,T2,T3)中恢复消息,用户计算
T
3
/
(
T
1
x
⋅
T
2
y
)
T_3/(T_1^x\cdot T_2^y)
T3/(T1x⋅T2y)。通过对ElGamal安全性证明的自然扩展,假设Decision-LA成立,LE在语义上是安全的,不会受到选择明文攻击。
A Zero-Knowledge Protocol for SDH
为了证明一个解决SDH方案的问题,提出一个零知识证明。
公共参数:
g
1
,
u
,
v
,
h
∈
G
1
,
g
2
,
w
∈
G
2
g_1,u,v,h \in G_1, g_2,w \in G_2
g1,u,v,h∈G1,g2,w∈G2
g
1
=
ψ
(
g
2
)
,
w
=
g
2
γ
g_1=\psi (g_2),w=g_2^\gamma
g1=ψ(g2),w=g2γ,其中
γ
∈
Z
p
\gamma \in \mathbb{Z}_p
γ∈Zp是秘密值。
协议证明拥有一对
(
A
,
x
)
(A,x)
(A,x),
A
∈
G
1
,
x
∈
Z
p
,
A
x
+
γ
=
g
1
A \in G_1, x \in \mathbb{Z}_p,A^{x+\gamma} =g_1
A∈G1,x∈Zp,Ax+γ=g1,满足
e
(
A
,
w
g
2
x
)
=
e
(
g
1
,
g
2
)
e(A,wg_2^x)=e(g_1,g_2)
e(A,wg2x)=e(g1,g2)。
论文中使用Schnorr协议的标准推广来证明一组素数阶离散对数的知识。
Protocol 1. 证明者Alice随机选择指数
α
,
β
←
R
Z
p
\alpha,\beta\stackrel{\mathrm{R}}{\leftarrow}\mathbb{Z}_p
α,β←RZp,计算A的线性加密:
T
1
←
u
α
T
2
←
v
β
T
3
←
A
h
α
+
β
(
1
)
.
T_1\leftarrow u^\alpha\quad T_2\leftarrow v^\beta\quad T_3\leftarrow Ah^{\alpha+\beta} \quad\quad(1).
T1←uαT2←vβT3←Ahα+β(1).
Alice计算两个附加值 δ 1 ← x α ∈ Z p \delta_1\leftarrow x\alpha \in\mathbb{Z}_p δ1←xα∈Zp和 δ 2 ← x β ∈ Z p \delta_2\leftarrow x\beta\in\mathbb{Z}_p δ2←xβ∈Zp。
Alice和Bob对满足以下五个关系的值
(
α
,
β
,
x
,
δ
1
,
δ
2
)
(\alpha,\beta,x,\delta_1,\delta_2)
(α,β,x,δ1,δ2)的知识进行证明。
u
α
=
T
1
v
β
=
T
2
e
(
T
3
,
g
2
)
x
⋅
e
(
h
,
w
)
−
α
−
β
⋅
e
(
h
,
g
2
)
−
δ
1
−
δ
2
=
e
(
g
1
,
g
2
)
/
e
(
T
3
,
w
)
(
2
)
T
1
x
u
−
δ
1
=
1
T
2
x
v
−
δ
2
=
1.
u^\alpha=T_1\quad v^\beta=T_2\\e(T_3,g_2)^x\cdot e(h,w)^{-\alpha-\beta}\cdot e(h,g_2)^{-\delta_1-\delta_2}=e(g_1,g_2)/e(T_3,w)\quad\quad(2)\\T_1^xu^{-\delta_1}=1\quad T_2^xv^{-\delta_2}=1 .
uα=T1vβ=T2e(T3,g2)x⋅e(h,w)−α−β⋅e(h,g2)−δ1−δ2=e(g1,g2)/e(T3,w)(2)T1xu−δ1=1T2xv−δ2=1.
(Alice向Bob证明自己拥有五个值
(
α
,
β
,
x
,
δ
1
,
δ
2
)
(\alpha,\beta,x,\delta_1,\delta_2)
(α,β,x,δ1,δ2),但不能让Bob知道这五个数得具体数值。)
Alice随机选择
r
α
,
r
β
,
r
x
,
r
δ
1
,
r
δ
2
∈
Z
p
r_\alpha,r_\beta,r_x,r_{\delta_1},r_{\delta_2} \in \mathbb{Z}_p
rα,rβ,rx,rδ1,rδ2∈Zp。根据这些随机值来计算出以下五个值。
R
1
←
u
r
α
R
2
←
v
r
β
R
3
←
e
(
T
3
,
g
2
)
r
x
⋅
e
(
h
,
w
)
−
r
α
−
r
β
⋅
e
(
h
,
g
2
)
−
r
δ
1
−
r
δ
2
R
4
←
T
1
r
x
⋅
u
−
r
δ
1
R
5
←
T
2
r
x
⋅
v
−
r
δ
2
.
R_{1}\leftarrow u^{r_{\alpha}}R_{2}\leftarrow v^{r_{\beta}}\\R_{3}\leftarrow e(T_{3},g_{2})^{r_{x}}\cdot e(h,w)^{-r_{\alpha}-r_{\beta}}\cdot e(h,g_{2})^{-r_{\delta_{1}}-r_{\delta_{2}}}\\R_{4}\leftarrow T_{1}^{r_{x}}\cdot u^{-r_{\delta_{1}}}R_{5}\leftarrow T_{2}^{r_{x}}\cdot v^{-r_{\delta_{2}}} .
R1←urαR2←vrβR3←e(T3,g2)rx⋅e(h,w)−rα−rβ⋅e(h,g2)−rδ1−rδ2R4←T1rx⋅u−rδ1R5←T2rx⋅v−rδ2.
随后Alice将发送给验证者
(
T
1
,
T
2
,
T
3
,
R
1
,
R
2
,
R
3
,
R
4
,
R
5
)
(T_1,T_2,T_3,R_1,R_2,R_3,R_4,R_5)
(T1,T2,T3,R1,R2,R3,R4,R5)。验证者Bob发送一个从
Z
p
\mathbb{Z}_p
Zp中随机均匀选择的挑战值
c
∈
Z
p
c \in \mathbb{Z}_p
c∈Zp。Alice计算
s
α
←
r
α
+
c
α
,
s
β
←
r
β
+
c
β
,
s
x
←
r
x
+
c
x
,
s
δ
1
←
r
δ
1
+
c
δ
1
(
3
)
\begin{aligned}s_\alpha\leftarrow r_\alpha+c\alpha,&s_\beta\leftarrow r_\beta+c\beta,&s_x\leftarrow r_x+cx,&s_{\delta_1}\leftarrow r_{\delta_1}+c\delta_1\end{aligned} \quad\quad(3)
sα←rα+cα,sβ←rβ+cβ,sx←rx+cx,sδ1←rδ1+cδ1(3)并发回这些值。
最后Bob验证以下五个公式:
u
s
α
?
=
T
1
c
⋅
R
1
(
4
)
v
s
β
=
?
T
2
c
⋅
R
2
(
5
)
e
(
T
3
,
g
2
)
s
x
⋅
e
(
h
,
w
)
−
s
α
−
s
β
⋅
e
(
h
,
g
2
)
−
s
δ
1
−
s
δ
2
=
?
(
e
(
g
1
,
g
2
)
/
e
(
T
3
,
w
)
)
c
⋅
R
3
(
6
)
T
1
s
x
⋅
u
−
s
δ
1
=
?
R
4
(
7
)
T
2
s
x
⋅
v
−
s
δ
2
=
?
R
5
(
8
)
.
\begin{aligned} u^{s_{\alpha}}& \begin{array}{cc}\frac{?}{=}&T_1^c\cdot R_1\end{array}\quad\quad(4) \\ v^{s_{\beta}}& \begin{array}{cc}\overset{?}{\operatorname*{=}}&T_2^c\cdot R_2\end{array} \quad\quad(5)\\ e(T_{3},g_{2})^{s_{x}}\cdot e(h,w)^{-s_{\alpha}-s_{\beta}}\cdot e(h,g_{2})^{-s_{\delta_{1}}-s_{\delta_{2}}}& \overset{?}{=}\quad\left(e(g_1,g_2)/e(T_3,w)\right)^c\cdot R_3 \quad\quad(6) \\ T_1^{s_x}\cdot u^{-s_{\delta_1}}& \begin{matrix} \overset{?}{\operatorname*{=}}&R_4\end{matrix} \quad\quad(7)\\ T_{2}^{s_{x}}\cdot v^{-s_{\delta_{2}}}& \begin{array}{cc}\overset{?}{\operatorname*{=}}&R_5 \quad\quad(8)\end{array}. \end{aligned}
usαvsβe(T3,g2)sx⋅e(h,w)−sα−sβ⋅e(h,g2)−sδ1−sδ2T1sx⋅u−sδ1T2sx⋅v−sδ2=?T1c⋅R1(4)=?T2c⋅R2(5)=?(e(g1,g2)/e(T3,w))c⋅R3(6)=?R4(7)=?R5(8).
如果5个都成立,Bob就接受这个证明。
Theorem 1协议1是在DL假设下对SDH元组(A,x)知识的诚实验证者的零知识证明。 定理的证明遵循以下引理,这些引理表明协议是
(1)完整的(验证者总是接受与诚实的证明者的交互),
(2)零知识(可以模拟),以及
(3)知识证明(具有提取器)。
Lemma 1. Protocol 1 是完整的
Proof. 如果Alice是一个拥有SDH元组对
(
A
,
x
)
(A, x)
(A,x)的诚实证明者,她遵循协议中为她指定的计算。在这种情况下
u
s
α
=
u
r
α
+
c
α
=
(
u
α
)
c
⋅
u
r
α
=
T
1
c
⋅
R
1
u^{s_\alpha}=u^{r_\alpha+c\alpha}=(u^\alpha)^c\cdot u^{r_\alpha}=T_1^c\cdot R_1
usα=urα+cα=(uα)c⋅urα=T1c⋅R1
因此(4)成立。由于类似的原因(5)成立。此外,
T
1
s
x
u
−
s
δ
1
=
(
u
α
)
r
x
+
c
x
u
−
r
δ
1
−
c
x
α
=
(
u
α
)
r
x
u
−
r
δ
1
=
T
1
r
x
u
−
r
δ
1
=
R
4
T_1^{s_x}u^{-s_{\delta_1}}=(u^\alpha)^{r_x+cx}u^{-r_{\delta_1}-cx\alpha}=(u^\alpha)^{r_x}u^{-r_{\delta_1}}=T_1^{r_x}u^{-r_{\delta_1}}=R_4
T1sxu−sδ1=(uα)rx+cxu−rδ1−cxα=(uα)rxu−rδ1=T1rxu−rδ1=R4
所以(7)成立。由于类似的原因(8)成立。最后
e
(
T
3
,
g
2
)
s
x
⋅
e
(
h
,
w
)
−
s
α
−
s
β
⋅
e
(
h
,
g
2
)
−
s
δ
1
−
s
δ
2
e(T_3,g_2)^{s_x}\cdot e(h,w)^{-s_\alpha-s_\beta}\cdot e(h,g_2)^{-s_{\delta_1}-s_{\delta_2}}
e(T3,g2)sx⋅e(h,w)−sα−sβ⋅e(h,g2)−sδ1−sδ2
=
e
(
T
3
,
g
2
)
r
x
+
c
x
⋅
e
(
h
,
w
)
−
r
α
−
r
β
−
c
α
−
c
β
⋅
e
(
h
,
g
2
)
−
r
δ
1
−
r
δ
2
−
c
x
α
−
c
x
β
e(T_3,g_2)^{r_x+cx}\cdot e(h,w)^{-r_\alpha-r_\beta-c\alpha-c\beta}\cdot e(h,g_2)^{-r_{\delta_1}-r_{\delta_2}-cx\alpha-cx\beta}
e(T3,g2)rx+cx⋅e(h,w)−rα−rβ−cα−cβ⋅e(h,g2)−rδ1−rδ2−cxα−cxβ
=
e
(
T
3
,
g
2
x
)
c
⋅
e
(
h
−
α
−
β
,
w
g
2
x
)
c
⋅
(
e
(
T
3
,
g
2
)
r
x
⋅
e
(
h
,
w
)
−
r
α
−
r
β
⋅
e
(
h
,
g
2
)
−
r
δ
1
−
r
δ
2
)
e(T_3,g_2^x)^c\cdot e(h^{-\alpha-\beta},wg_2^x)^c\cdot\left(e(T_3,g_2)^{r_x}\cdot e(h,w)^{-r_\alpha-r_\beta}\cdot e(h,g_2)^{-r_{\delta_1}-r_{\delta_2}}\right)
e(T3,g2x)c⋅e(h−α−β,wg2x)c⋅(e(T3,g2)rx⋅e(h,w)−rα−rβ⋅e(h,g2)−rδ1−rδ2)
=
e
(
T
3
h
−
α
−
β
,
w
g
2
x
)
c
⋅
e
(
T
3
,
w
)
−
c
⋅
(
R
3
)
e(T_3h^{-\alpha-\beta},wg_2^x)^c\cdot e(T_3,w)^{-c}\cdot(R_3)
e(T3h−α−β,wg2x)c⋅e(T3,w)−c⋅(R3)
=
(
e
(
A
,
w
g
2
x
)
/
e
(
T
3
,
w
)
)
c
⋅
R
3
\left(e(A,wg_2^x)/e(T_3,w)\right)^c\cdot R_3
(e(A,wg2x)/e(T3,w))c⋅R3
=
(
e
(
g
1
,
g
2
)
/
e
(
T
3
,
w
)
)
c
⋅
R
3
\left(e(g_1,g_2)/e(T_3,w)\right)^c\cdot R_3
(e(g1,g2)/e(T3,w))c⋅R3
所以(6)成立。
Lemma 2. 对于一个诚实的验证者,可以在决策线性假设下模拟Protocol 1的副本。
Proof. 我们描述了一个模拟器,输出Protocol 1 的副本。模拟器首先选取
A
←
R
G
1
A\stackrel{\mathrm{R}}{\leftarrow}G_{1}
A←RG1,
α
,
β
←
R
Z
p
\alpha,\beta\xleftarrow{\mathrm{R}}\mathbb{Z}_p
α,βRZp。设置
T
1
←
u
α
,
T
2
←
v
β
,
T
3
←
A
h
α
+
β
T_1 \leftarrow u^\alpha, T_2 \leftarrow v^\beta, T_3 \leftarrow Ah^{\alpha+\beta}
T1←uα,T2←vβ,T3←Ahα+β。假设G1上的DL假设成立,则模拟器生成的元组
(
T
1
,
T
2
,
T
3
)
(T_1, T_2, T_3)
(T1,T2,T3)是从一个分布中提取的,该分布与任何特定证明者的分布输出无法区分。
该模拟的其余部分假设不知道 A , x , α , β A, x, \alpha, \beta A,x,α,β,因此它也可以在预先指定 T 1 T_1 T1、 T 2 T_2 T2和 T 3 T_3 T3时使用。当预先指定的 ( T 1 , T 2 , T 3 ) (T_1,T_2,T_3) (T1,T2,T3)是某个 A A A的随机线性加密时,副本的其余部分被完美地模拟,就像在Schnorr知识证明的标准模拟中一样。
模拟器选择一个挑战
c
←
R
Z
p
c\stackrel{\mathrm{R}}{\leftarrow}\mathbb{Z}_p
c←RZp,和其他值
s
α
,
s
β
,
s
x
,
s
δ
1
,
s
δ
2
←
R
Z
p
s_\alpha,s_\beta,s_x,s_{\delta_1},s_{\delta_2}\stackrel{\mathrm{R}}{\leftarrow}\mathbb{Z}_p
sα,sβ,sx,sδ1,sδ2←RZp。模拟器计算
R
1
,
R
2
,
R
3
,
R
4
,
R
5
R_1,R_2,R_3,R_4,R_5
R1,R2,R3,R4,R5。
R
1
←
u
s
α
⋅
T
1
−
c
R
2
←
v
s
β
⋅
T
2
−
c
R
4
←
T
1
s
x
⋅
u
−
s
δ
1
R
5
←
T
2
s
x
⋅
v
−
s
δ
2
R
3
←
e
(
T
3
,
g
2
)
s
x
⋅
e
(
h
,
w
)
−
s
α
−
s
β
⋅
e
(
h
,
g
2
)
−
s
δ
1
−
s
δ
2
⋅
(
e
(
T
3
,
w
)
/
e
(
g
1
,
g
2
)
)
c
.
R_1\leftarrow u^{s_\alpha}\cdot T_1^{-c}\quad R_2\leftarrow v^{s_\beta}\cdot T_2^{-c}\quad R_4\leftarrow T_1^{s_x}\cdot u^{-s_{\delta_1}}\quad R_5\leftarrow T_2^{s_x}\cdot v^{-s_{\delta_2}}\\R_3\leftarrow e(T_3,g_2)^{s_x}\cdot e(h,w)^{-s_\alpha-s_\beta}\cdot e(h,g_2)^{-s_{\delta_1}-s_{\delta_2}}\cdot\left(e(T_3,w)/e(g_1,g_2)\right)^c .
R1←usα⋅T1−cR2←vsβ⋅T2−cR4←T1sx⋅u−sδ1R5←T2sx⋅v−sδ2R3←e(T3,g2)sx⋅e(h,w)−sα−sβ⋅e(h,g2)−sδ1−sδ2⋅(e(T3,w)/e(g1,g2))c.
结果值明显满足(4)-(8)。此外,
R
1
,
R
2
,
R
3
,
R
4
,
R
5
R_1,R_2,R_3,R_4,R_5
R1,R2,R3,R4,R5的分布与真实副本相同。
模拟器输出副本 ( T 1 , T 2 , T 3 , R 1 , R 2 , R 3 , R 4 , R 5 , c , s α , s β , s x , s δ 1 , s δ 2 ) \begin{aligned}(T_1,T_2,T_3,R_1,R_2,R_3,R_4,R_5,c,s_\alpha,s_\beta,s_x,s_{\delta_1},s_{\delta_2})\end{aligned} (T1,T2,T3,R1,R2,R3,R4,R5,c,sα,sβ,sx,sδ1,sδ2)。如上所述,假设决策线性假设成立,该副本与协议1的副本无法区分。
Lemma 3. Protocol 1 存在一个提取器。
Proof. 假设提取器可以将上述协议中的证明者倒回到证明者接受挑战
c
c
c之前的点。在协议的第一步,证明者发送
T
1
,
T
2
,
T
3
T_1,T_2,T_3
T1,T2,T3和
R
1
,
R
2
,
R
3
,
R
4
,
R
5
R_1,R_2,R_3,R_4,R_5
R1,R2,R3,R4,R5。然后,为挑战值
c
c
c,证明者用
s
α
,
s
β
,
s
x
,
s
δ
1
,
s
δ
2
s_\alpha, s_\beta, s_x, s_{\delta_1},s_{\delta_2}
sα,sβ,sx,sδ1,sδ2响应。为了挑战值
c
′
≠
c
c'\neq c
c′=c,证明者用
s
α
′
,
s
β
′
,
s
x
′
,
s
δ
1
′
,
s
δ
2
′
\begin{aligned}s_{\alpha}', s_{\beta}', s_{x}', s_{\delta_{1}}', s_{\delta_{2}}'\end{aligned}
sα′,sβ′,sx′,sδ1′,sδ2′来响应。如果证明者是令人信服的,所有五个验证方程(4)-(8)对每一组值都成立。
为简洁起见,设
Δ
c
=
c
−
c
′
\Delta c=c-c^{\prime}
Δc=c−c′,
Δ
s
α
=
s
α
−
s
α
′
\Delta s_\alpha=s_\alpha-s_\alpha'
Δsα=sα−sα′,同样地,设
Δ
s
β
,
Δ
s
x
,
Δ
s
δ
1
,
Δ
s
δ
2
\Delta s_\beta, \Delta s_x, \Delta s_{\delta_1}, \Delta s_{\delta_2}
Δsβ,Δsx,Δsδ1,Δsδ2。
现在考虑上面的(4)。通过除以这个方程的两个实例(一个使用 c c c,另一个使用 c ′ c ' c′),我们得到 u Δ s α = T 1 Δ c u^{\Delta s_{\alpha}}=T_{1}^{\Delta c} uΔsα=T1Δc。指数在一组已知的素数阶中,所以我们可以求根;令 α ~ = Δ s α / Δ c \tilde{\alpha}=\Delta s_{\alpha}/\Delta c α~=Δsα/Δc。那么 u α ~ = T 1 u^{\tilde{\alpha}}=T_1 uα~=T1。同样地,由式(5),我们得到了 β ~ = Δ s β / Δ c \tilde{\beta}=\Delta s_\beta/\Delta c β~=Δsβ/Δc,使得 v β ~ = T 2 v^{\tilde{\beta}}=T_2 vβ~=T2。
考虑上面的公式(7)。通过除以两个实例,可以得到
T
1
Δ
s
x
=
u
Δ
s
δ
1
T_{1}^{\Delta s_{x}}=u^{\Delta s_{\delta_{1}}}
T1Δsx=uΔsδ1。代入
T
1
=
u
α
~
T_1=u^{\tilde{\alpha}}
T1=uα~得到
u
α
~
Δ
s
x
=
u
Δ
s
δ
1
u^{\tilde{\alpha}\Delta s_{x}}=u^{\Delta s_{\delta_{1}}}
uα~Δsx=uΔsδ1或者
Δ
s
δ
1
=
α
~
Δ
s
x
\Delta s_{\delta_1}=\tilde{\alpha}\Delta s_x
Δsδ1=α~Δsx。类似的,从(8)中可以推断出
Δ
s
δ
2
=
β
~
Δ
s
x
\Delta s_{\delta_2}=\tilde{\beta}\Delta s_x
Δsδ2=β~Δsx。最后,将(6)的两个实例相除,得到
(
e
(
g
1
,
g
2
)
/
e
(
T
3
,
w
)
)
Δ
c
=
e
(
T
3
,
g
2
)
Δ
s
x
⋅
e
(
h
,
w
)
−
Δ
s
α
−
Δ
s
β
⋅
e
(
h
,
g
2
)
−
Δ
s
δ
1
−
Δ
s
δ
2
=
e
(
T
3
,
g
2
)
Δ
s
x
⋅
e
(
h
,
w
)
−
Δ
s
α
−
Δ
s
β
⋅
e
(
h
,
g
2
)
−
α
~
Δ
s
x
−
β
~
Δ
s
x
.
\begin{aligned}\begin{pmatrix}e(g_1,g_2)/e(T_3,w)\end{pmatrix}^{\Delta c}&=\quad e(T_3,g_2)^{\Delta s_x}\cdot e(h,w)^{-\Delta s_\alpha-\Delta s_\beta}\cdot e(h,g_2)^{-\Delta s_{\delta_1}-\Delta s_{\delta_2}}\\&=\quad e(T_3,g_2)^{\Delta s_x}\cdot e(h,w)^{-\Delta s_\alpha-\Delta s_\beta}\cdot e(h,g_2)^{-\tilde{\alpha}\Delta s_x-\tilde{\beta}\Delta s_x}.\end{aligned}
(e(g1,g2)/e(T3,w))Δc=e(T3,g2)Δsx⋅e(h,w)−Δsα−Δsβ⋅e(h,g2)−Δsδ1−Δsδ2=e(T3,g2)Δsx⋅e(h,w)−Δsα−Δsβ⋅e(h,g2)−α~Δsx−β~Δsx.
令
x
~
=
Δ
s
x
/
Δ
c
\tilde{x}=\Delta s_x/\Delta c
x~=Δsx/Δc,得
e
(
g
1
,
g
2
)
/
e
(
T
3
,
w
)
=
e
(
T
3
,
g
2
)
x
~
⋅
e
(
h
,
w
)
−
α
~
−
β
~
⋅
e
(
h
,
g
2
)
−
x
~
(
α
~
+
β
~
)
e(g_1,g_2)/e(T_3,w)=e(T_3,g_2)^{\tilde{x}}\cdot e(h,w)^{-\tilde{\alpha}-\tilde{\beta}}\cdot e(h,g_2)^{-\tilde{x}(\tilde{\alpha}+\tilde{\beta})}
e(g1,g2)/e(T3,w)=e(T3,g2)x~⋅e(h,w)−α~−β~⋅e(h,g2)−x~(α~+β~)
可以重新排列得到:
e
(
g
1
,
g
2
)
=
e
(
T
3
h
−
α
~
−
β
~
,
w
g
2
x
~
)
e(g_1,g_2)=e(T_3h^{-\tilde\alpha-\tilde\beta},wg_2^{\tilde x})
e(g1,g2)=e(T3h−α~−β~,wg2x~)
或者,设
A
~
=
T
3
h
−
α
~
−
β
~
\tilde{A}=T_3h^{-\tilde{\alpha}-\tilde{\beta}}
A~=T3h−α~−β~
e
(
A
~
,
w
g
2
x
~
)
=
e
(
g
1
,
g
2
)
e(\tilde{A},wg_2^{\tilde{x}})=e(g_1,g_2)
e(A~,wg2x~)=e(g1,g2)
这样提取器就得到了一个SDH元组 ( A , x ) (A, x) (A,x),而且这个SDH元组中的 A A A必然与线性加密 ( T 1 , T 2 , T 3 ) (T_1, T_2, T_3) (T1,T2,T3)中的 A A A相同。
基于SDH 的短群签名
通过Fiat-Shamir启发式从知识证明中获得的签名通常被称为知识签名。
KeyGen(n): 该随机化算法以参数n(群体成员的数量)作为输入。在
G
2
G_2
G2中均匀随机选择一个生成元
g
2
g_2
g2,并设
g
1
←
ψ
(
g
2
)
g_1\leftarrow\psi(g_2)
g1←ψ(g2),
ξ
1
,
ξ
2
←
R
Z
p
∗
\xi_{1},\xi_{2}\stackrel{\mathrm{R}}{\leftarrow}\mathbb{Z}_{p}^{*}
ξ1,ξ2←RZp∗,
u
,
v
∈
G
1
u,v\in G_1
u,v∈G1,
u
ξ
1
=
v
ξ
2
=
h
u^{\xi_{1}}=v^{\xi_{2}}=h
uξ1=vξ2=h,
γ
←
R
Z
p
∗
\gamma\overset{\mathrm{R}}{\operatorname*{\leftarrow}}\mathbb{Z}_p^*
γ←RZp∗,
w
=
g
2
γ
w=g_2^{\gamma}
w=g2γ。
使用
γ
\gamma
γ为每个用户i(
1
≤
i
≤
n
1\leq i\leq n
1≤i≤n)生成一个SDH元组
(
A
i
,
x
i
)
(A_i,x_i)
(Ai,xi):随机选择
x
i
←
R
Z
p
∗
x_{i}\stackrel{\mathrm{R}}{\leftarrow}\mathbb{Z}_{p}^{*}
xi←RZp∗,设置
A
i
←
g
1
1
/
(
γ
+
x
i
)
∈
G
1
A_i\leftarrow g_1^{1/(\gamma+x_i)}\in G_1
Ai←g11/(γ+xi)∈G1。
群组公钥为
gpk
=
(
g
1
,
g
2
,
h
,
u
,
v
,
w
)
\text{gpk }=(g_1,g_2,h,u,v,w)
gpk =(g1,g2,h,u,v,w),群管理员(可跟踪签名的一方)的私钥为
g
m
s
k
=
(
ξ
1
,
ξ
2
)
\mathrm{gmsk}=(\xi_1,\xi_2)
gmsk=(ξ1,ξ2)。每个用户的私钥是
g
s
k
[
i
]
=
(
A
i
,
x
i
)
\mathbf{gsk}[i]=(A_i,x_i)
gsk[i]=(Ai,xi)。任何一方都不允许拥有
γ
\gamma
γ。只有私钥发行者知道它。
Sign(gpk,gsk[i],M): 给定群公钥 gpk = ( g 1 , g 2 , h , u , v , w ) \text{gpk }=(g_1,g_2,h,u,v,w) gpk =(g1,g2,h,u,v,w),用户密钥 g s k [ i ] = ( A i , x i ) \mathbf{gsk}[i]=(A_i,x_i) gsk[i]=(Ai,xi),消息 M ∈ { 0 , 1 } ∗ M \in\{0,1\}^* M∈{0,1}∗计算签名如下:
- 计算协议1第一轮中指定的 T 1 , T 2 , T 3 , R 1 , R 2 , R 3 , R 4 , R 5 T_1,T_2,T_3,R_1,R_2,R_3,R_4,R_5 T1,T2,T3,R1,R2,R3,R4,R5的值(公式(1)和(2))。
- 使用哈希函数计算挑战
c
c
c:
c ← H ( M , T 1 , T 2 , T 3 , R 1 , R 2 , R 3 , R 4 , R 5 ) ∈ Z p ( 9 ) c\leftarrow H(M,T_1,T_2,T_3,R_1,R_2,R_3,R_4,R_5)\in\mathbb{Z}_p \quad \quad (9) c←H(M,T1,T2,T3,R1,R2,R3,R4,R5)∈Zp(9) - 使用 c c c构造值 s α , s β , s x , s δ 1 , s δ 2 s_\alpha,s_\beta,s_x,s_{\delta_1},s_{\delta_2} sα,sβ,sx,sδ1,sδ2如Protocol 1 的式(3)。
- 输出签名 σ ← ( T 1 , T 2 , T 3 , c , s α , s β , s x , s δ 1 , s δ 2 ) \sigma\leftarrow(T_1,T_2,T_3,c,s_\alpha,s_\beta,s_x,s_{\delta_1},s_{\delta_2}) σ←(T1,T2,T3,c,sα,sβ,sx,sδ1,sδ2)
Verify(gpk,M, σ \sigma σ) : 给定群公钥 gpk = ( g 1 , g 2 , h , u , v , w ) \text{gpk }=(g_1,g_2,h,u,v,w) gpk =(g1,g2,h,u,v,w),消息 M M M和群签名 σ \sigma σ,验证 σ \sigma σ是有效签名,如下所示:
- 利用式(4)-式(8)重新导出
R
1
,
R
2
,
R
3
,
R
4
,
R
5
R_1,R2,R3,R4,R5
R1,R2,R3,R4,R5如下:
R 1 ~ ← u s α ⋅ T 1 − c R 2 ~ ← v s β ⋅ T 2 − c R 4 ~ ← T 1 s x ⋅ u − s δ 1 R 5 ~ ← T 2 s x ⋅ v − s δ 2 R 3 ~ ← e ( T 3 , g 2 ) s x ⋅ e ( h , w ) − s α − s β ⋅ e ( h , g 2 ) − s δ 1 − s δ 2 ⋅ ( e ( T 3 , w ) / e ( g 1 , g 2 ) ) c . \tilde{R_{1}}\leftarrow u^{s_{\alpha}}\cdot T_{1}^{-c}\quad\tilde{R_{2}}\leftarrow v^{s_{\beta}}\cdot T_{2}^{-c}\quad\tilde{R_{4}}\leftarrow T_{1}^{s_{x}}\cdot u^{-s_{\delta_{1}}}\quad\tilde{R_{5}}\leftarrow T_{2}^{s_{x}}\cdot v^{-s_{\delta_{2}}}\\\tilde{R_{3}}\leftarrow e(T_{3},g_{2})^{s_{x}}\cdot e(h,w)^{-s_{\alpha}-s_{\beta}}\cdot e(h,g_{2})^{-s_{\delta_{1}}-s_{\delta_{2}}}\cdot\left(e(T_{3},w)/e(g_{1},g_{2})\right)^{c} . R1~←usα⋅T1−cR2~←vsβ⋅T2−cR4~←T1sx⋅u−sδ1R5~←T2sx⋅v−sδ2R3~←e(T3,g2)sx⋅e(h,w)−sα−sβ⋅e(h,g2)−sδ1−sδ2⋅(e(T3,w)/e(g1,g2))c. - 检查这些值,以及σ中包含的其他第一轮值给出挑战c,即
c = ? H ( M , T 1 , T 2 , T 3 , R ~ 1 , R ~ 2 , R ~ 3 , R ~ 4 , R ~ 5 ) c\stackrel{?}{=}H(M,T_1,T_2,T_3,\tilde{R}_1,\tilde{R}_2,\tilde{R}_3,\tilde{R}_4,\tilde{R}_5) c=?H(M,T1,T2,T3,R~1,R~2,R~3,R~4,R~5)
如果检查成功则接受,否则拒绝。
Open(gpk,gmsk,M, σ \sigma σ): 该算法用于跟踪签名到签名者。输入群公钥 gpk = ( g 1 , g 2 , h , u , v , w ) \text{gpk }=(g_1,g_2,h,u,v,w) gpk =(g1,g2,h,u,v,w)和对应的组管理员私钥 g m s k = ( ξ 1 , ξ 2 ) \mathrm{gmsk}=(\xi_1,\xi_2) gmsk=(ξ1,ξ2),以及消息 M M M和签名 σ = ( T 1 , T 2 , T 3 , c , s α , s β , s x , s δ 1 , s δ 2 ) \sigma=(T_1,T_2,T_3,c,s_\alpha,s_\beta,s_x,s_{\delta_1},s_{\delta_2}) σ=(T1,T2,T3,c,sα,sβ,sx,sδ1,sδ2)进行跟踪,如下所示。
- 验证 σ \sigma σ是 M M M上的有效签名。
- 其次,将前三个元素 ( T 1 , T 2 , T 3 ) (T_1,T_2,T_3) (T1,T2,T3)作为线性加密,按照 T 3 / ( T 1 x ⋅ T 2 y ) {T_{3}}/(T_{1}^{x}\cdot T_{2}^{y}) T3/(T1x⋅T2y),将用户的A还原为 A ← T 3 / ( T 1 ξ 1 ⋅ T 2 ξ 2 ) A\leftarrow T_3/(T_1^{\xi_1}\cdot T_2^{\xi_2}) A←T3/(T1ξ1⋅T2ξ2)。如果给组管理员用户私钥的元素 { A i } \{A_i\} {Ai},他可以查找从签名中恢复的身份A对应的用户索引。
Signature Length. 系统中的群签名由 G 1 G_1 G1的3个元素和 Z p \Z_p Zp的6个元素组成。使用[1]中描述的任何曲线族,可以取p为170位素数,并使用每个元素为171位的群G1。这样,组签名的总长度为1533位(192字节)。使用这些参数,安全性与标准的1024位RSA签名大致相同,即128字节。
Performance. 签名者和验证者都可以预先计算和缓存 e ( h , w ) , e ( h , g 2 ) , e ( g 1 , g 2 ) e(h,w),e(h,g_2),e(g_1,g_2) e(h,w),e(h,g2),e(g1,g2)。签名者可以缓存 e ( A , g 2 ) e(A,g_2) e(A,g2),并在签名时计算 e ( T 3 , g 2 ) e(T_3,g_2) e(T3,g2),而无需计算配对。因此,创建群签名需要8次幂运算(或乘法幂运算)。验证者可以通过将 e ( T 3 , g 2 ) s x e(T_3,g_2)^{s_x} e(T3,g2)sx和 e ( T 3 , w ) c e(T_3,w)^c e(T3,w)c压缩成单个 e ( T 3 , w c g 2 s x ) e(T_3,w^cg_2^{s_x}) e(T3,wcg2sx)来有效地导出 R ~ 3 \tilde{R}_{3} R~3。因此,验证群签名需要6次乘法幂运算和1次配对计算。使用如上所述选择的参数,指数在每种情况下都是170位的数字。对于签名者,所有求幂的基数都是固定的,这允许通过预计算进一步加速。
[1]D. Boneh, B. Lynn, and H. Shacham. Short signatures from the Weil pairing. In Proceedings of Asiacrypt 2001, volume 2248 of LNCS, pages 514–32. Springer-Verlag, Dec. 2001.