Bultel X, Fraser A, Quaglia E A. Improving the Efficiency of Report and Trace Ring Signatures[J]. Cryptology ePrint Archive, 2022. https://eprint.iacr.org/2022/1293
这篇文章的前置文章是:《Report and trace ring signatures》
主要思路:前文所提出的签名方案实例,声称其复杂度与环
∣
R
∣
|R|
∣R∣的大小成线性关系,而实际上是随
λ
⋅
∣
R
∣
\lambda\cdot|R|
λ⋅∣R∣线性增长。所以作者提出了一个新的实例,真正实现了
∣
R
∣
|R|
∣R∣线性复杂度。
Improving the Efficiency of Report and Trace Ring Signatures
NIZK: A Pairing-Based ElGamal Variant
Let
G
1
,
G
2
,
G
t
\mathbb{G}_1,\mathbb{G}_2,\mathbb{G}_t
G1,G2,Gt be groups of prime order
p
p
p,
g
1
∈
G
1
g_1\in \mathbb{G}_1
g1∈G1 and
g
2
∈
G
2
g_2\in \mathbb{G}_2
g2∈G2 be generators, and
e
:
G
1
×
G
2
→
G
t
e: \mathbb{G}_1 × \mathbb{G}_2 \rightarrow \mathbb{G}_t
e:G1×G2→Gt be a type-3 bilinear pairing.
原版的ElGamal cryptosystem:
- s k P K E ∈ Z p ∗ , p k P K E = g 1 s k P K E sk_{PKE}\in \mathbb{Z}_p^*,pk_{PKE}=g_1^{sk_{PKE}} skPKE∈Zp∗,pkPKE=g1skPKE
- message m m m, random r r r, run P K E . E n c ( p k P K E , m ; r ) → ( c 1 , c 2 ) = ( g 1 r , p k P K E r ⋅ m ) PKE.Enc(pk_{PKE},m;r)\rightarrow(c_1,c_2)=(g_1^r,pk_{PKE}^r\cdot m) PKE.Enc(pkPKE,m;r)→(c1,c2)=(g1r,pkPKEr⋅m)
- to decrypt, run P K E . D e c ( s k P K E , ( c 1 , c 2 ) ) → m = c 2 c 1 s k P K E = p k P K E r ⋅ m g 1 r ⋅ s k P K E PKE.Dec(sk_{PKE},(c_1,c_2))\rightarrow m=\frac{c_2}{c_1^{sk_{PKE}}}=\frac{pk_{PKE}^r\cdot m}{g_1^{r\cdot sk_{PKE}}} PKE.Dec(skPKE,(c1,c2))→m=c1skPKEc2=g1r⋅skPKEpkPKEr⋅m
变体:
- s k S i g n ∈ G 1 , p k S i g n = e ( s k S i g n , g 2 ) sk_{Sign}\in \mathbb{G}_1,pk_{Sign}=e(sk_{Sign},g_2) skSign∈G1,pkSign=e(skSign,g2)
- run P K E . E n c ( p k S i g n , m ; r ) → ( c 1 , c 2 ) = ( g 2 r , p k S i g n r ⋅ m ) PKE.Enc(pk_{Sign},m;r)\rightarrow(c_1,c_2)=(g_2^r,pk_{Sign}^r\cdot m) PKE.Enc(pkSign,m;r)→(c1,c2)=(g2r,pkSignr⋅m)
- run
P
K
E
.
D
e
c
(
s
k
S
i
g
n
,
c
)
→
m
=
c
2
e
(
s
k
S
i
g
n
,
c
1
)
=
p
k
S
i
g
n
r
⋅
m
e
(
s
k
S
i
g
n
,
g
2
r
)
PKE.Dec(sk_{Sign},c)\rightarrow m=\frac{c_2}{e(sk_{Sign},c_1)}=\frac{pk_{Sign}^r\cdot m}{e(sk_{Sign},g_2^r)}
PKE.Dec(skSign,c)→m=e(skSign,c1)c2=e(skSign,g2r)pkSignr⋅m
任何人都可以将变体密文 ( c 1 , c 2 ) = ( g 2 r , p k S i g n r ⋅ m ) (c_1,c_2)=(g_2^r,pk_{Sign}^r\cdot m) (c1,c2)=(g2r,pkSignr⋅m)转换成一个 G t \mathbb{G}_t Gt上的标准密文,通过计算 ( e ( g 1 , c 1 ) , c 2 ) = ( e ( g 1 , g 2 r ) , p k S i g n r ⋅ m ) = ( g t r , p k S i g n r ⋅ m ) (e(g_1,c_1),c_2)=(e(g_1,g_2^r),pk_{Sign}^r\cdot m)=(g_t^r,pk_{Sign}^r\cdot m) (e(g1,c1),c2)=(e(g1,g2r),pkSignr⋅m)=(gtr,pkSignr⋅m)
变体方案满足IND-CPA security under the Decisional Diffie-Hellman (DDH) assumption in G 2 \mathbb{G}_2 G2
证明 G 1 \mathbb{G}_1 G1中的密文能以零知识的方式加密一个变体方案的私钥:
- s k S i g n ∈ G 1 , p k S i g n = e ( s k S i g n , g 2 ) sk_{Sign}\in \mathbb{G}_1,pk_{Sign}=e(sk_{Sign},g_2) skSign∈G1,pkSign=e(skSign,g2), ( c 1 , c 2 ) = ( g 1 r , p k P K E r ⋅ s k S i g n ) ∈ G 1 2 (c_1,c_2)=(g_1^r,pk_{PKE}^r\cdot sk_{Sign} )\in\mathbb{G}_1^2 (c1,c2)=(g1r,pkPKEr⋅skSign)∈G12。证明 p k S i g n = e ( P K E . D e c ( p p P K E , s k P K E , ( c 1 , c 2 ) ) , g 2 ) pk_{Sign} = e (PKE.Dec(pp_{PKE}, sk_{PKE}, (c_1, c_2)),g_2) pkSign=e(PKE.Dec(ppPKE,skPKE,(c1,c2)),g2)。
- 必须证明以下关系,已知r:
这是 G t \mathbb{G}_t Gt下离散对数等式的一个经典证明。
上述NIZK证明比[13]实例化中使用的NIZK更有效。更具体地说,上述NIZK证明需要常数数量的组指数和对(分别为2和3)来证明。类似地,NIZK证明的验证需要4个组指数和3个对。证明的大小也是固定的:它由2个分组元素和1个字段元素组成。相比之下,Fraser和Quaglia实例化中使用的NIZK证明的规模、证明和验证的计算开销在jRj·λ(其中λ为安全参数)内为线性。至于与签名和验证相关的其他开销,如上所示,两个实例是相同的。因此,对于签名的生成和验证,该实例在环的大小上具有线性的空间和时间复杂度。因此,我们的方法意味着泛型构造可以比最初提出的更有效地实例化,即避免安全参数的线性增加。
Construction