paint-brush
加密如何保护在线投票经过@nerv
621 讀數
621 讀數

加密如何保护在线投票

太長; 讀書

远程电子投票的最大挑战是在不受控制的环境和不安全的平台下实现高水平的安全性。设定最低要求的电子投票属性和许多不同的分类已经建立。目标始终是调和两个明显相互排斥的属性:可验证性和隐私性。
featured image - 加密如何保护在线投票
Network Emergency Response Volunteers HackerNoon profile picture


注意:此处提供的一些信息故意过于简单化。具体细节取决于实际实现,因为有多种方法和替代加密技术可以实现相同的目标。


“远程电子投票的最大挑战是在不受控制的环境和不安全的平台下实现高水平的安全性。电子投票属性和设定最低要求的许多不同分类已经建立。其中一些分类是相同的。远程电子投票的最大挑战是在不受控制的环境和不安全的平台下实现高水平的安全性。电子投票属性和设置最低要求的许多不同分类已经建立。目标始终是调和两个明显相互排斥的属性:可验证性和隐私性。不同名称下的属性,例如:机密性、完整性、隐私性、民主性、普遍性、可验证性等。无论如何,目标始终是调和两个明显相互排斥的属性:可验证性和隐私性。”


在线投票背后的基本思想是可验证性,即投票将被加密并公开,毫无疑问地让选民相信整个程序是定期进行的。让我们深入研究如何实现这一点,但在阅读本文的其余部分之前,我们建议观看 Ron Rivest 在 5:07 之前对这一想法的演示[ 1 ]。


然后,我们考虑一下:


网络安全投票发生后仅附加公共选票表,如区块链上发布的


选民唯一知道与他们的投票相对应的条目


选民的 ID 已加密

这里,v是投票,只能使用私钥才能完全解密,E(v)是添加的密码学


现在这是数学魔法......


通过在 E(v1)、E(v2)、E(v3) 和 E(v4) 中使用同态加密,我们可以证明 E(v1)+ E(v2) + E(v3) + E(v4) = E( v1+v2+v3+v4)!


因此,最终计数为 D( E(v1+v2+v3+v4) ),其中 D 是解密函数,一旦轮询结束,任何人都可以计算出来,而无需单独访问 v:D(E(v1) ), D(E(v2) ) 等,只能通过使用私钥来解密......


私钥持有


只有选民自己才能单独解密v并实际检查自己的投票是否正确登记!总之,选民可以在隐私和准确性的情况下验证他们的选票和最终计票结果


同态加密


哇!我可以验证我的投票是正确的!但是,在不使用私钥的情况下,我如何确定其他人投票也是合法的呢?


假设我们将值 0 表示拒绝正在轮询的给定政策提案,并将值 1 表示一致,形成一组可能的答案 {0,1}。验证者(可以是任何人)可能希望确保在仅附加表上发布的所有条目都对应于可能答案集中的有效元素,而不是其他任何元素,例如值为 100 的条目. 零知识证明恰恰可以实现这一点。要了解如何实现,首先了解 ZKP 的真正含义可能会有所帮助。 “在密码学中,零知识证明或零知识协议是一种方法,通过该方法,一方(证明者)可以向另一方(验证者)证明给定的陈述是真实的,而证明者避免传达除以下信息之外的任何其他信息:事实上,该陈述确实是正确的。”[ 2 ]


零知识证明


这可能看起来很矛盾,但有了零知识证明,任何选民都可以明确地证明他们投票的有效性!同样,投票只是一组可能选择中的一个元素的代表。要了解如何将零知识证明应用于投票,我们建议查看以下文章[ 3 ]、[ 4 ],因为它们更详细地解决了这个问题。


ZKP验证


然后可以将该技术扩展到包括大于 {0,1} 的集合,同时保留同态加密和 ZKP 的数学属性,从而允许比简单的是、否/同意、不同意答案更复杂的民意调查。这产生了有趣的用例,例如多个候选人选举、针对单个给定问题可能有不同解决方案建议的全民投票、市场研究中的问卷调查……


我们刚刚讨论了如何任何人都可以检查最终计票,他们的投票是预期的,以及所有其他投票如何合法!同时保护选民的隐私!这些算法的组合方式(保留同态加密和 ZKP 的特性)非常复杂,需要对密码学有深入的了解,而这可以在数学上证明是正确的。[ 5 ]


任何选民都可以自己进行这些验证,而不需要依赖第三方!在适当的远程电子投票应用中,选民是投票的审核员!


关于网络安全在线投票还有其他细节和加密技术,例如使用隐形地址[ 6 ],至少在以太坊等将所有交易公开的区块链中是这样。这些用于避免将选民和他们的钱包联系起来。但我们认为这是一个技术细节,仅由软件开发人员关心,而不是所有在线投票用户都应该了解的事情,这与同态加密和 ZKP 不同,它们的知识有助于建立对系统的信任。


如何在不影响安全性的情况下生成这些私钥并将其提供给选民?


最终,私钥需要与用户的真实身份绑定,以防止双重支出。一种方法是使用由受信任的机构提供的 PKI,例如嵌入国家身份智能卡中的国家发行的 eID……因为公共机构肯定已经想到了自己的机制来保证这些密钥的安全,对吗?


无论如何,这是一个与数字身份本身更相关的问题,我们将在以后的文章中对其进行分析,以免读者了解太多细节并更好地组织信息。可以说,虽然数字身份本身就是一个复杂的问题,但有一些方法可以通过授权多个可信实体来证明一个人的身份,从而相对有信心地保证每个数字人物都是独一无二的。鲍勃·马利的一句话准确地描述了我们将要争论的内容:


“你可以在某些时候欺骗一些人,但你不可能永远欺骗所有人”


如果选民发现欺诈行为或被迫以某种方式投票,会发生什么?


首先要采取的措施是提供一个渠道,让人们可以报告这些情况,以便这些事件得到考虑。例如,如果它们处于边缘地位,占总票数的 0.01%,那么这实际上不会成为一个问题,除非我们正在讨论一场非常敏感的公投,需要维护民主价值观,并且最终计票结果接近相当于 50/50 的情况。可以通过要求多数共识更高(例如 55/45)才能使民意调查被视为有效来缓解这一问题。


在有人发现自己的投票被错误登记的情况下,考虑到整个设备由区块链支持,因此不受提供服务的特定系统管理员的控制,更合理的方法是假设投票机本身受到损害而不是整个区块链本身。届时要采取的最直接的保护措施是选民更换机器和/或操作系统。这个问题更多地与网络安全威胁有关,例如社会工程和恶意软件。建议使用开源硬件和软件,以及使用 amnesic OS[ 7 ]。遗忘软件总是会返回到其初始配置状态,因此即使选民通过无意中单击并运行病毒来安装恶意软件,重新启动计算机也会将软件回滚到未更改的配置,从而有效地减少这些情况的发生。


人们可能需要考虑的另一种情况是选民被迫以某种方式(无论是身体上还是通过勒索)投票的情况。除了生活在体面的社会之外,抵御胁迫的唯一方法是允许在同一次民意调查中进行重新投票。尽管据我们所知,将该技术与上述所有其他技术合并的方法仍有待实施,但该领域已有研究[ 8 ]。肯定有办法的。无论如何,重新开放轮询阶段始终是可能的。还应该指出的是,出于显而易见的原因,防止胁迫也将防止出售选票。


我们并不主张完全放弃纸质投票,因为至少在存在纸质投票的情况下,纸质投票是测试身份(真实或数字)的绝佳机会,但尽管如此,我们强烈支持在政治作为补充工具能够更快地达成共识,同时也是确认纸质投票结果的第二来源。

我们到了吗?

正如计算机科学家 Jeffrey Dean 雄辩地指出的那样:


“现代计算机密码背后的驱动力不是安全性,而是效率。问题不在于你能否创建一个安全的密码。你可以。问题是你是否可以创建一个能够在巨大的数据集或非常有限的硬件上有效工作的系统”


区块链技术的挑战恰恰在于其随着用户群和计算需求的增长而扩展的能力。当前由区块链支持的在线投票中加密算法的实现估计,以太坊中实现的每次投票的成本约为 10 美元。 [ 14 ] 我们 Brightgov 认为,可以进行改进,通过利用更快的区块链以及调整底层数学算法。


纵观历史,密码学在改变事件进程方面发挥了重要作用。凯撒密码是最简单的密码学之一,因两千年前被罗马皇帝使用而闻名。盟军拦截和解密由日本紫色密码机和德国恩尼格玛密码机加密的信息的能力对于提供结束第二次世界大战所需的关键优势至关重要。


对于那些知道如何编程并有兴趣了解更多信息的人,我们建议阅读我们的研究论文。[ 15 ] 您还可以使用 CryptoBallot 来熟悉此类软件。[ 16 ]


总之,网络安全在线投票不仅是可能的,而且是非常需要的。它在政治领域的采用有可能成为我们一生中最具破坏性的事件之一......您所需要做的就是信任计算机和区块链上运行的算法,如果您不这样做,您也可以随时这样做自己用笔和纸做数学。


参考:


[1] “你的选票被清点了吗?(壮举。同态加密) ”,作者:Numberphile 的 Ron Rivest 教授,在 YouTube 上,2016 年。 https://www.youtube.com/watch?v=BYRTvoZ3Rho


[2] 维基百科上的零知识证明条目, https://en.wikipedia.org/wiki/Zero-knowledge_proof


[3] “如何使用 ZKP 证明集合成员资格而不暴露集合或成员”, Anders Borch,作者博客,2019 年。 https://blog.cyborch.com/how-to-use-cryptographic-accumulators-to -证明集合成员身份而不暴露集合或成员/


[4] “集合成员资格的零知识证明”作者:Dario Fiore,关于 ZKProof 标准,2020。https: //zkproof.org/2020/02/27/zkp-set-membership/


[5] “来自同态加密的非交互式零知识”,作者:Ivan Damg ̊ard 等人,密码学理论会议,2006 年。 https://cs.nyu.edu/\~nicolosi/papers/NonIntSi.pdf


[6]“隐形地址(加密货币) ”作者:Jake Frankenfield,Investopedia,2022 年。https://www.investopedia.com/terms/s/stealth-address-cryptocurrency.asp


[7] 维基百科上的Tails(操作系统)条目, https://en.wikipedia.org/wiki/Tails_(operating_system)


[8] “ VoteAgain:一种可扩展的抗强制投票系统”,Wouter Lueks 等人,Spring Labs,马德里卡洛斯三世大学,2020 年。https: //arxiv.org/pdf/2005.11189.pdf


[9]传统基金会https://www.heritage.org/


[10] YouTube 上的“ Ainda mais indícios de Frauise nas Legislativas 2022? ”条目,葡萄牙语,2022 年。https ://www.youtube.com/watch?v=L8fA9aOuR9k


[11] YouTube 上的“ AnaKarina denuncia“FRAUDE ELEITORAL”porparte da CNE ”条目,葡萄牙语,安哥拉,2022 年。https://www.youtube.com/watch?v= hLm8ocLgXCU


[12]“常见问题 - 选民欺诈”, https://www.voteaustralia.org.au/faq_voter_fraud


[13]“ 2020年民主指数:疾病与健康? ”经济学人智库报告,2020年。https://www.eiu.com/n/campaigns/democracy-index-2020/


[14] “ ethVote:利用分布式账本实现安全投票”作者:Johannes Mols 和 Emmanouil Vasilomaanolakis,丹麦奥尔堡大学,2020 年。https: //www.researchgate.net/publication/341000573_ethVote_Towards_secure_voting_with_distributed_ledgers


[15]NERV《远程电子投票概述》,提交给2021年第14届ICEGOV会议的论文, https://ia601401.us.archive.org/33/items/remote-e-voting-overview/Remote e -投票概述.pdf


[16]加密投票https://github.com/cryptoballot/cryptoballot


也出现在这里