基于 ElGamal 加密的无收据 K 选 L 投票机制
1. 加密函数
1.1 加密函数要求
我们考虑一个语义安全的概率公钥加密函数 (E_Z: V \times R \to E),((v, \alpha) \mapsto e),其中 (Z) 表示公钥,(V) 表示投票集合,(R) 表示随机字符串集合,(E) 表示加密集合。为简便起见,我们用 (E) 代替 (E_Z)。解密函数为 (D_z: E \to V),(e \mapsto v),其中 (z) 表示私钥,同样用 (D) 代替 (D_z)。需注意,解密函数 (D_z) 的计算复杂度可能与解密后的明文 (v) 呈多项式关系,对于任意大的 (v),解密不一定可行。
我们假设 (E) 是一个群同态,即 (E(v_1, \alpha_1) \oplus E(v_2, \alpha_2) = E(v_1 + v_2, \alpha_1 \oplus \alpha_2)),其中 (+) 是 (V) 中的群运算,(\oplus) 是 (R) 中的群运算,(\oplus) 是 (E) 中的群运算。这里 (V) 中的群运算必须是模加法,而其他群中的运算可以是任意的。
此外,对于给定的 (q \in Z),要求 (E) 是 (q) 可逆的,即对于每个加密 (e),可以高效地计算出 (qe) 的解密 (v) 和随机性 (\alpha),也就是函数 (D_q: e \mapsto (v_q, \alpha_q)) 使得 (qe = E(v_q, \alpha_q)) 是高效的(给定 (Z))。同时,需要存在一个数 (u \leq q),足够大使得 (1/u) 可忽略不计,且所有小于 (u) 的整数都与 (q) 互质,即 (
超级会员免费看
订阅专栏 解锁全文

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



