论文学习笔记 How not to prove your election outcome

这篇论文深入探讨了电子投票系统的安全隐患,如错误的投票系统设计、客户端证明不足、可验证性问题等,并提出了相应的解决方案,如改进FIAT-SHAMIR转换、增强个人和普遍可验证性以及利用BAYER-GROTH陷门承诺防止混淆证明的伪造。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、投票系统的错误总结

投票系统的错误总结

二、投票系统介绍

投票系统介绍

投票系统安全目标

  1. 当投票者没有收到正确的码时,恶意的客户端更改投票应该被检测出来。
  2. 只要至少有一个服务器端的组件是诚实的,完整可验证性(个人可验证性&普遍可验证性)可得到保证

三、密钥说明

密钥说明

四、个人可验证性阶段协议

个人可验证性阶段协议

五、FIAT-SHAMIR转换的陷阱:提供虚假的选票有效性证明

FIAT-SHAMIR转换的陷阱:提供虚假的选票有效性证明

后果:投票者认为选票被接收到(验证通过),但该投票在混合后解密却无效
问题总结:hash函数的输入(零知识证明的挑战值)没有包含所有需要证明的语句
解决问题:所有语句都包含在hash的输入中,包括所有幂次证明中的基本元素

六、客户端证明不充足:当选择码与选票不匹配时,生成选票有效性的证明

在这里插入图片描述

后果:不知道是否会导致真正的攻击(有些码返回给voter而有些码不可复原,规范不明确)
原因: ZKPs的正确性不代表预选择码与投票一致,因为验证的是码的乘积而不是单独的码
解决问题

  1. 为每个元素生成单独的ZKPs
  2. 服务器端只能在所有代码都被正确检索的情况下返回代码,那么可以证明产品证明是充分的

七、单独可验证性:为操作的投票返回正确的选择码(服务器勾结的情况下)

单独可验证性:为操作的投票返回正确的选择码(服务器勾结的情况下)
后果:投票者认为正确投了票,实际上票被操作
问题总结:恶意的VVC与一个恶意的客户端合谋,恶意生成投票参数
解决问题:生成可证明的正确的投票参数

八、使用BAYER-GROTH中的陷门承诺和伪造shuffle证明

8.1 BAYER-GROTH承诺

BAYER-GROTH承诺

8.2 使用BAYER-GROTH中的陷门承诺和伪造shuffle证明

使用BAYER-GROTH中的陷门承诺和伪造shuffle证明

8.3 使用BAYER-GROTH中的陷门承诺和伪造shuffle证明:已知随机数

使用BAYER-GROTH中的陷门承诺和伪造shuffle证明:已知随机数

8.4 使用BAYER-GROTH中的陷门承诺和伪造shuffle证明:不知道随机数

使用BAYER-GROTH中的陷门承诺和伪造shuffle证明:不知道随机数

8.5 弱FIAT-SHAMIR转换的普遍可验证性失败

假的解密证明

8.6 弱FIAT-SHAMIR转换的普遍可验证性失败:转换成一组通过验证的假解密证明

弱FIAT-SHAMIR转换的普遍可验证性失败:转换成一组通过验证的假解密证明
后果:使某些投票无效(不喜欢的)
问题总结:hash函数的输入没有包含所有需要证明的语句
解决问题:所有语句都包含在hash的输入中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值