环签名:AOS Borromean
参考文献:
- [RST01] Ronald L. Rivest, Adi Shamir, Yael Tauman. How to Leak a Secret. ASIACRYPT 2001: 552-565.
- [AOS02] Masayuki Abe, Miyako Ohkubo, Koutarou Suzuki. 1-out-of-n Signatures from a Variety of Keys. ASIACRYPT 2002: 415-432.
- [MP15] Maxwell, G., & Poelstra, A. Borromean Ring Signatures. 2015.
- Borromean环形签名探究
文章目录
- RST
- AOS
- Borromean
RST
[RST01] 最早提出了环签名概念,并给出了基于 RSA 问题和对称加密的构造。但是其签名大,速度慢。
AOS
[AOS02] 分别针对 Hash-and-Sign 以及 Fiat-Shamir 范式的签名,给出了基于 Hash 连接各个 PK 的环。下面仅给出基于 ECDL 问题的 Schnorr 环签名。
令 HHH 是抗碰撞散列函数,GGG 是某条阶为 nnn 的椭圆曲线的生成元,AOS 环签名是如下的 PPT 算法三元组,
- 密钥生成算法 KeyGen(1λ)KeyGen(1^\lambda)KeyGen(1λ),
- 用户 jjj 随机选取 xj←[n]x_j \gets [n]xj←[n]
- 计算 Pj=xjGP_j = x_jGPj=xjG
- 输出 SKj=xjSK_j = x_jSKj=xj 和 PKj=PjPK_j = P_jPKj=Pj
- 签名算法 Sign(SKj,{PKi}1≤i≤r,m)Sign(SK_j, \{PK_i\}_{1 \le i \le r}, m)Sign(SKj,{PKi}1≤i≤r,m),
- 随机选取 kj←[n]k_j \gets [n]kj←[n]
- 计算挑战 cj+1=H(m∥kjG)c_{j+1} = H(m \| k_jG)cj+1=H(m∥kjG)
- 对于 i=j+1,⋯,r,0,⋯,j−1i = j+1, \cdots, r, 0, \cdots, j-1i=j+1,⋯,r,0,⋯,j−1,
- 随机选取 si←[n]s_i \gets [n]si←[n]
- 计算挑战 ci+1=H(m∥siG−ciPi)c_{i+1} = H(m\|s_iG-c_iP_i)ci+1=H(m∥siG−ciPi)
- 计算 sj=kj−xjcjs_j = k_j - x_jc_jsj=kj−xjcj
- 输出 σ=({PKi}1≤i≤r,c1,{si}1≤i≤r)\sigma = (\{PK_i\}_{1 \le i \le r}, c_1, \{s_i\}_{1 \le i \le r})σ=({PKi}1≤i≤r,c1,{si}1≤i≤r)
- 验签算法 Verify(m,σ)Verify(m, \sigma)Verify(m,σ),
- 对于 1≤i≤r1 \le i \le r1≤i≤r,迭代计算 ci+1=H(m∥siG−ciPi)c_{i+1} = H(m \| s_iG-c_iP_i)ci+1=H(m∥siG−ciPi)
- 检查 cr+1=c1c_{r+1} = c_1cr+1=c1 是否成立
Borromean
[MP15] 指出 AOS 实质上是一条变色龙散列函数(chameleon hash)的环。具体地,定义
HG,P(m,s,c):=H(m∥sG−cP)H_{G,P}(m, s, c) := H(m \| sG-cP) HG,P(m,s,c):=H(m∥sG−cP)
其中 (m,s)(m,s)(m,s) 是输入,ccc 是随机带。
现在给定 h=HG,P(m,s,c)h = H_{G,P}(m, s, c)h=HG,P(m,s,c),那么在知道私钥 xxx 的情况下,可以计算新的随机带 s′=s+(c−c′)xs' = s+(c-c')xs′=s+(c−c′)x,使得可以将 ccc 抵赖为 c′≠cc' \neq cc′=c,即
H(m∥sG−cP)=h=H(m∥s′G−c′P)H(m \| sG-cP) = h = H(m \| s'G-c'P) H(m∥sG−cP)=h=H(m∥s′G−c′P)
[MP15] 指出 AOS 实际上实现了关于私钥的 OR 谓词的知识证明。[MP15] 将其扩展为包含多个基本独立的环,并且将它们的 ci,0c_{i,0}ci,0 通过一个 multiply-chameleon hash 设置为相同的 c0c_0c0,从而实现了 ∧(∨xi.j)\wedge(\vee x_{i.j})∧(∨xi.j) 谓词的知识证明。