学习笔记:Improving the Efficiency of Report and Trace Ring Signatures

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 g1G1 and g 2 ∈ G 2 g_2\in \mathbb{G}_2 g2G2 be generators, and e : G 1 × G 2 → G t e: \mathbb{G}_1 × \mathbb{G}_2 \rightarrow \mathbb{G}_t e:G1×G2Gt 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}} skPKEZp,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,pkPKErm)
  • 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=g1rskPKEpkPKErm

变体:

  • 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) skSignG1,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,pkSignrm)
  • 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)pkSignrm
    任何人都可以将变体密文 ( 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,pkSignrm)转换成一个 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),pkSignrm)=(gtr,pkSignrm)

变体方案满足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) skSignG1,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,pkPKErskSign)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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值