如果投票机是对手怎么办(分布式知识/信任)

信息安全 电子投票
2021-09-13 04:54:56

我在这里阅读了一些电子投票问题,但大多数都处理简单的事情,例如保护连接免受外部攻击者的攻击。但老实说,他们通常隐含信任中央投票机构。

因此,假设您有 1000 个选民,以及一个统计(即计数)选票的人(Tallier)。每个选民都知道他自己的投票是什么(不完整的信息),但只有记账员知道每个人是如何投票的(完整的图片)。然而,Tallier 想对结果撒谎。

因为选民不相信 Tallier 是诚实的,所以他们要求他向他们提供某种日志。然后每个选民检查该日志。

我们能否让系统以这样一种方式使 Tallier 不可能在没有大部分选民意识到有问题的情况下提供欺诈性日志?

我想象类似于 SHA1 校验和的东西,其中服务器无法提供 SHA1 校验和的文件。只有在这种情况下,每个选民的信息都不完整(他只知道自己的投票)。

此外,选民需要检测 Taller 是否发明了不存在的选民。

有没有这方面的研究?

3个回答

对于纸质选票,您的 1000 名选民(监察员)中的 3 人会不断地审核或监视您的投票站。

这可能与电子投票类似,我不知道究竟会怎样。也许您有一种方法可以将选票数据输入到安全的政府大楼中,通过巨大的显示屏,任何选民都可以看到一份匿名选票收据清单,以确保他们的选票已被计票,以及确保计票机在里面的仪式工作正常并且在投票期间没有被篡改。

我想你问的是研究领域被称为

端到端可审计或端到端选民可验证 (E2E) 系统是具有严格完整性属性和强大防篡改能力的投票系统。E2E 系统通常采用加密方法制作收据,允许选民验证他们的选票是否被视为已投,而不会透露投票给了哪些候选人。因此,这些系统有时被称为基于收据的系统。

由于 MS Research 的幻灯片集比维基百科的文章更清晰/简洁......问题被定义为(从模糊到更精确的陈述):

现有技术可以检测到选举记录的任何不准确和篡改……

……不仅是选举官员,还有任何候选人、媒体、选民或其他观察员……

……不仅仅是外部篡改,还有选举官员、设备供应商和其他人的腐败。

这称为端到端 (E2E) 可验证性。

选举是端到端可验证的,如果

  1. 选民可以验证他们自己的选择是否被正确记录。
  2. 任何人都可以验证记录的选票是否已正确计算。

真正的问题/挑战是,当您还想强制执行投票隐私/保密时,即:

选民不得向他人透露他们的选票。

这就是你所说的“不完整信息”。如果没有最后一个要求(过去 100 年左右的民主国家很典型,但以前没有这么多),您可以进行公开投票,每个人都可以看到其他人如何投票(即“完整信息”以使用您的条款)作为公平仅针对前两个约束的简单、低技术解决方案。

当第三个约束(投票保密又名“不完整信息”被添加)是(因此)同态统计时,一个相对简单的解决方案/想法。基本上

一种加密形式,允许对加密数据执行计算而无需先对其进行解密。计算结果采用加密形式,解密时输出与对未加密数据执行操作相同

MSR 幻灯片有一个示例。

如果您愿意让选民在投票时做一些额外的工作,那么非加密解决方案是可能的,例如 Rivest 的ThreeBallot

当使用这种(加密)E2E-V 技术时,维基百科提到了几个小规模测试/选举。有关英国实验的最新论文,请参见 Hao 等人。“投票站投票的端到端可验证电子投票试验”对于来自同一作者的更早的、更多的技术/理论论文,请参见“Every Vote Counts: Ensuring Integrity in Large-Scale Electronic Voting”特别是,该小组的研究试图消除任何使用密钥发布统计机构的情况。

我们将 [2006 年首次在匿名否决协议设计中引入的取消公式[Hao and Zielinski 2006]与传统的同态加密相结合,构建了一个自我执行的电子投票协议。与现有的基于混合网络或同态聚合的统计方法相比,新方法具有不需要任何密钥(因此不需要 TA)的显着特点。

维基百科也有一篇关于 AV-nets 的简短文章,它是该技术“另一半”的基础。

我最近发布了一个关于投票系统安全性的问题的答案。

投票的外部约束是:

  • 安全识别所有选民
  • 不可能改变每张选票的价值
  • 每次投票的匿名性:包括(人类)计票员在内的任何人都无法知道谁投了什么

如果你不能相信更高的系统,你就不能相信结果。如果您放宽匿名性,您可以建立一个系统,您可以在其中发布所有选票,以便每个选民都可以控制他自己的选票是否得到了正确处理。But you still need a third party authority to process the possible problems when a voter declares that his vote has been faked. 如果该部分是手动的,则存在需要与手动投票一样多的人力资源的风险。

我能想象的唯一方法是建立一个由不同人组成的委员会,每个人都由其他人控制,他们能够:

  • 开发或分析投票系统
  • 构建和安装它或控制构建过程和在生产系统上的安装。
  • 在选举期间一直控制系统