点击按钮,在浏览器里生成一对 Paillier 密钥。密钥只存在当前页面中。
密钥已就绪
密钥已生成,请选择下面的一个演示场景
+
密文 A = Enc()
×
(同态加法 = 密文相乘)
密文 B = Enc()
⬇
密文 C = 密文A × 密文B mod n²
Dec(密文C)
=
真实的多人投票:发起人生成密钥并分享公钥,投票人各自加密后回传密文,发起人汇总解密。全程不经过后端,数据不会离开浏览器。
1
生成投票密钥
生成一对 Paillier 密钥。公钥公开分发给投票人,私钥自己保管用于最终解密。
2
分享公钥给投票人
复制下面的公钥 n,发给投票人(微信/邮件/任何方式)。只需分享 n 的值,私钥不要发。
公钥 n
3
收集密文并计票
把投票人发回来的密文粘贴到下面(每行一个),点击计票解密。
解密结果(总支持票数)
=
1
粘贴发起人的公钥
发起人会发给你一个公钥 n(一串数字),粘贴到下面。
2
投出你的一票
选择你的立场,点击加密。同样的选择每次加密结果不同,无法通过比对密文猜测你的投票。
3
复制密文发给发起人
你的投票已加密。复制下面的密文,发给发起人进行计票。
你的密文
发起人解密后会告诉你投票结果。你的选择全程加密,发起人也看不到。