Sanders, O. (2020). Efficient Redactable Signature and Application to Anonymous Credentials. In: Kiayias, A., Kohlweiss, M., Wallden, P., Zikas, V. (eds) Public-Key Cryptography – PKC 2020. PKC 2020. Lecture Notes in Computer Science(), vol 12111. Springer, Cham. https://doi.org/10.1007/978-3-030-45388-6_22
可编校签名
Introduction
Syntax

Short Redactable Signatures
前置文献:Short Randomizable Signatures的PS签名
p k : = ( X , Y 1 , . . . , Y r ) = ( g x , g y 1 , . . . , g y r ) , s k : = ( x , y 1 , . . . , y r ) , g ∈ G 2 pk:=(X,Y_1,...,Y_r)=(g^x,g^{y_1},...,g^{y_r}),sk:=(x,y_1,...,y_r),g\in\mathbb{G}_2 pk:=(X,Y1,...,Yr)=(gx,gy1,...,gyr),sk:=(x,y1,...,yr),g∈G2
P S − S i g n ( s k , m 1 , . . . , m r ) → σ : = ( σ ~ 1 , σ ~ 2 ) = ( g ~ , g ~ x + ∑ j = 1 r y j ⋅ m j ) , g ~ ∈ G 1 ∗ PS-Sign(sk,m_1,...,m_r)\rightarrow\sigma:=(\widetilde{\sigma}_1,\widetilde{\sigma}_2)=(\widetilde{g},\widetilde{g}^{x+\sum_{j=1}^r y_j\cdot m_j}),\widetilde{g}\in\mathbb{G}_1^* PS−Sign(sk,m1,...,mr)→σ:=(σ
1,σ
2)=(g
,g
x+∑j=1ryj⋅mj),g
∈G1∗
P S − V e r i f y ( p k , ( m 1 , . . . , m r ) , σ ) → 0 / 1 PS-Verify(pk,(m_1,...,m_r),\sigma)\rightarrow 0/1 PS−Verify(pk,(m1,...,mr),σ)→0/1. 验证 σ ~ 1 ≠ 1 G 1 , \widetilde{\sigma}_1\neq1_{\mathbb{G}_1}, σ
1=1G1, e ( X ⋅ ∏ i = 1 n Y i m i , σ ~ 1 ) = e ( g , σ ~ 2 ) e(X\cdot \prod_{i=1}^n Y_i^{m_i},\widetilde{\sigma}_1)=e(g,\widetilde{\sigma}_2) e(X⋅∏i=1nYimi,σ
1)=e(g,σ
2)
这个签名验证时必须使用所有的信息整体验证,无法实现部分验证。
修改: σ 1 : = ∏ i ∈ I ˉ Y i m i \sigma_1:=\prod_{i\in\bar{\mathcal{I}}}Y_i^{m_i} σ1:=∏i∈IˉYimi
验证转换为: e ( X ⋅ σ 1 ∏ i ∈ I Y i m i , σ ~ 1 ) = e ( g , σ ~ 2 ) e(X\cdot \sigma_1\prod_{i\in\mathcal{I}} Y_i^{m_i},\widetilde{\sigma}_1)=e(g,\widetilde{\sigma}_2) e(X⋅σ1∏i∈IYimi,σ
1)=e(g,σ
2)
安全性缺陷
不幸的是,由此产生的方案显然是不安全的。不诚实的用户在可以在 σ 1 \sigma_1 σ1中隐藏已披露消息的某些部分来欺骗验证者:
令 σ 1 : = Y 1 r ∏ i = 2 n Y i m i \sigma_1:=Y_1^r\prod_{i=2}^nY_i^{m_i} σ1:=Y1r∏i=2nYimi,并构造一个对 m 1 − r m_1-r m1−r的签名,对于任意 r ∈ Z p r\in\mathbb{Z}_p r∈Zp,有
e ( X ⋅ σ 1 ⋅ Y 1 m 1 − r , σ ~ 1 ) = e ( X ⋅ ∏ i = 1 n Y i m i , σ ~ 1 ) = e ( g , σ ~ 2 ) \begin{aligned} e(X\cdot \sigma_1\cdot Y_1^{m_1-r},\widetilde{\sigma}_1)&=e(X\cdot \prod_{i=1}^nY_i^{m_i},\widetilde{\sigma}_1)\\ &= e(g,\widetilde{\sigma}_2) \end{aligned} e(X⋅σ1⋅Y1m1−r,σ
1)=e(X⋅i=1∏nYimi,σ
1)=e(g,σ
2)
σ 1 ∉ G 1 \sigma_1\notin\mathbb{G}_1 σ1∈/G1,为了安全性,需要证明它只包含不在 I \mathcal{I} I中的元素的累积。解决这个问题最简单的方法(在大多数匿名凭证构造中使用)是证明未公开信息的知识。正如我们已经解释过的,这导致成本至少与 I ˉ \bar{\mathcal{I}} Iˉ的规模成线性关系。
解决
如果 σ \sigma σ是一个已经诚实地为 I \mathcal{I} I派生的签名,则 e ( σ 1 , ∏ i ∈ I Y ~ i ) → e ( g , g ~ ) f ( y 1 , . . . , y n ) e(\sigma_1,\prod_{i\in\mathcal{I}}\widetilde{Y}_i)\rightarrow e(g,\widetilde{g})^{f(y_1,...,y_n)} e(σ1,∏i∈IY
i)→e(g,g
)f(y1,...,yn),其中的单项是这种形式: y i ⋅ y j , i ≠ j y_i\cdot y_j,i\neq j yi⋅yj,i

本文深入探讨了可编校签名的概念,分析了短随机化签名的不安全性,并提出了改进方案,实现了部分验证功能。此外,详细介绍了如何通过可编校签名实现匿名凭证,保证unlinkability特性,防止签名间的链接,从而保护用户隐私。同时,展示了如何在匿名证书系统中构造和验证部分属性的证明,确保安全性与效率。

1036

被折叠的 条评论
为什么被折叠?



