pre-signing

  • round_1

    • 生成随机值 $k_i \leftarrow F_q$ 和 $\rho_i \leftarrow Z_{N_i}^*$,并生成 Pallier 密文 $K_i=enc_i(k_i; \rho_i)$
    • 对于每个 $P_j$ 生成 $k_i \in I_{\in}, \space K_i=enc_i(k_i; \rho_i) $ 的 zk-proof:$\psi_{j,i}^0 = M(prove, \prod_j^{enc}, (sid, i), (I_{\in}, K_i); (k_i, \rho_i))$
    • 广播 $(sid, i, K_i)$,向 $P_j$ 发送 $(sid, i, \psi_{j, i}^0)$
  • round_2

    • 收到 $P_j$ 的 $(sid, j, K_j, \psi_{i, j}^0)$,验证 $M(vrfy, \prod_i^{enc}, (sid, j), (I_{\in}, K_j), \psi_{i,j}) = 1$
    • 计算 $R_i = {k_i} \cdot g$
    • 对于每个 $P_j$

      • 生成 $k_i \in I_{\in}, \space R_i = {k_i} \cdot g, \space K_i = enc_i(k_i; \rho_i) $ 的 zk-proof:

        $\psi_{j,i} = M(prove, \prod_j^{log}, (sid, i), (I_{\in}, K_i, R_i, g); (k_i, \rho_i) ))$

      • 向 $P_j$ 发送 $(sid, i, R_i, \psi_{j,i})$
  • final

    • 收到 $P_j$ 的 $(sid, j, R_j, \psi_{i,j})$

      • 验证 $M(vrfy, \prod_i^{log}, (sid, j), (I_{\in}, K_{j}, R_{j}, g), \psi_{i,j})=1$
    • 计算 $R = \sum_jR_j$
    • 存储 $R, k_i$

signing

  • round_1

    • 输入:$(sid, l, i,m)$
    • 计算 $\sigma_i = k_i + x_i \cdot H(m||R)$
    • 向 $P_j$ 发送 $(sid, i, \sigma_i)$
  • final

    • 收到 $P_j$ 的 $(sid, j, \sigma_j)$
    • 计算签名 $\sigma = \sum_j\sigma_j$,推导如下

      $$ \begin{align} s &= k+x \cdot H(m||R) \\ &=(k_1 + x_1 \cdot H(m||R)) + (k_2 + x_2 \cdot H(m||R)) + (k_3 + x_3 \cdot H(m||R)) \end{align} $$

验证签名

  • 计算 $P_1 = s \cdot g$
  • 计算 $P_2 = R + X \cdot H(m || R)$
  • 验证 $P_1 == P_2$

    推导如下:

$$ \begin{align} s \cdot g &= (\sum{s_i}) \cdot g \\ &= ((k_1 + x_1 \cdot H(m||R)) + (k_2 + x_2 \cdot H(m||R)) + (k_3 + x_3 \cdot H(m||R))) \cdot g \\ &= (k_1 + k_2 + k_3) \cdot g + (x_1 + x_2 + x_3) \cdot g \cdot H(m||R) \\ &= R + X \cdot H(m||R) \end{align} $$