计算零知识证明:原理与应用
1. 比特承诺示例
比特承诺是密码学中的重要概念,它允许一方(如Paula)向另一方(如Victor)承诺一个比特值,同时在特定时间之前隐藏该值。这里通过一个具体的示例来介绍比特承诺。
取 (N = 3 \times 7 = 21),(z = 5) 在 (Z_{21}^*) 中。(z) 在 (Z_3) 中为 (2),在 (Z_7) 中为 (5),是模 (3) 和模 (7) 的非平方数,即 (z \in \boxminus_{21})。为了承诺一个比特 (b),Paula 选择一个随机的 (x \in \square_{21} \cup \boxminus_{21}),并发送 (y = z^b x^2)。例如,如果 (x = -4),则:
- 当 (b = 0) 时,(y = comm(0, -4) = 5^0 \times (-4)^2 = -5 \in \square_{21})
- 当 (b = 1) 时,(y = comm(1, -4) = 5^1 \times (-4)^2 = -4 \in \boxminus_{21})
对于一对比特 (b = b_1b_2 \in {0, 1}^2),使用 (a = (a_1, a_2) \in (Z_{21}^*)^2)。除了 (N = 21),((z_1, z_2) = (5, -1) \in (\boxminus_{21})^2) 是公开的。若要承诺 (b = (1, 0)),Paula 选择 (x = (-4, 4)),并发送 (y = comm((1, 0), -4, 4) = (5^1 \times (-4)^2, (-1)^0 \times 4^2) = (-4, -5))
订阅专栏 解锁全文
427



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



