揭秘Belenios:简单私密且可验证的电子投票系统
零知识证明的应用
在 Belenios 电子投票系统中,零知识证明发挥着关键作用。它主要应用在两个方面:一是选民需要证明自己加密的是有效选票,比如证明自己最多选择了选举规定数量(如 4 个)的候选人;二是解密受托人要证明自己正确解密了选举结果。所有零知识证明都采用 Fiat - Shamir 技术实现非交互性。
一个基本的零知识证明是离散对数知识的证明。例如,选民要证明自己知道用于将选票 v 加密为 (gr, yrgv) 的随机数 r。作为证明者,选民按以下步骤操作:
1. 选取一个随机数 w ∈ Zq。
2. 计算 c = h(gr | gw) 和 s = w - r c mod q。
3. 返回 (s, c)。
验证者在收到证明 (s, c) 和消息 z = gr 后,会检查 c = h(z | A),其中 A = gs zc。
对于有限的有效选票集合 V,选民也能类似地证明自己加密的选票 v 属于 V,并提供证明 proofv(v, r, enc(v, pk, r), pk, vk)。关联的验证算法 verifproofv 会在 v 属于 V 时返回 true,否则返回 false。在 Belenios 中,零知识证明还依赖选民的验证密钥 vk。
解密受托人同样会使用零知识证明。在设置阶段,他们证明自己知道私钥;在计票阶段,他们提供正确解密的证明。
系统参与者
Belenios 包含四个主要参与者:服务器、选民及其投票设备、注册商和解密受托人。
- 注册商 :也
超级会员免费看
订阅专栏 解锁全文

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



