CL
Camenisch–Lysyanskaya signature
param
\[A^e = Z * S^v * \prod_{i=1}^{l} R_{i}^{m_i} (mod n)\]
n = p * q,私钥为(p, q)
公钥为 (Z, S, R_i)
sig 为 (A, e, v)
p, q 用于 计算A时的1/e求根
selective disclosure
假设仅暴露 m_1, 其余 m_2, … , m_l 保持隐藏
re-randomize sig
\[ \begin{align}\begin{aligned}A' = A * S^r\\v' = v + e*r\end{aligned}\end{align} \]
计算 U,做为 hidden attributes commitment
\[U = S^{v'} * \prod_{i=2}^{l} R_{i}^{m_i} (mod n)\]
生成 ZK proof: (A’, v’, e, U, m_1)
verifier 校验
\[A'^e = Z * R_{1}^{m_1} * U mod n\]
range proof
Pedersen commitment
假设 x 为某个 m_i
\[ \begin{align}\begin{aligned}y = x - k\\C = g^y * h^r\\y = \sum{b_i * 2^i}\\C_i = g^{b_i} * h^{r_i}\\C = \prod C_{i}^{2^i}\end{aligned}\end{align} \]