端到端加密

内容


在在线投票中,端到端加密(E2E) 确保选票在选民的设备上被加密,并在传输和存储过程中保持加密状态,仅在最终计票过程中解密。这意味着在任何过程中,服务器、管理员或中间人都无法读取或修改个人投票。

什么是端到端加密?

端到端加密是一种安全方法,其中数据在其源头被加密,并仅在目的地解密。在在线投票的背景下,“源头”是指选民的设备,“目的地”是指计票过程。与传输层加密(如HTTPS)不同,即使服务器基础设施被攻破,端到端加密也能保护数据。

端到端加密在在线投票中的运作方式

该过程遵循一个结构化的顺序:

  1. 密钥生成: 在选举之前,生成加密密钥并分发给多个受托人
  2. 选票加密: 选民的设备使用选举的公钥对选票进行加密
  3. 传输: 加密的选票被传输到投票服务器
  4. 存储: 选票以加密形式存储——服务器从未看到明文选票
  5. 计票: 受托人组合其密钥份额以共同解密和计票

投票的加密生命周期

从选民做出选择到最终结果,投票经过多个加密阶段。每个阶段都旨在保护选票保密性的同时实现验证。加密的选票会被签名、时间戳,并与加密证明一起存储,允许任何人验证选举的完整性。

密钥管理和分发

安全的密钥管理是E2E加密投票的基础。解密密钥通常使用门限密码技术分配给多个受托人。这意味着没有一个人可以单独解密选票——必须有一个预定数量的受托人合作。这种分布式方法防止内部攻击,并建立对系统的信任。

NemoVote使用AES-256加密进行所有数据传输和存储,结合加密的选票分离,确保选民身份和选票数据完全分离——保持选票的保密性和防篡改性。

投票中的同态加密

同态加密允许对加密数据进行数学运算而无需解密。在投票中,这意味着加密的选票可以被聚合以产生加密的总数,然后仅解密一次以揭示最终结果。个人投票从未被解密,提供了额外的隐私保护层。

可验证性和加密

E2E加密支持两种关键的可验证性形式:

  • 个人可验证性: 选民可以通过验证代码确认他们的选票是否被正确记录
  • 普遍可验证性: 任何人都可以使用公开的加密证明来验证所有记录的选票是否被正确计数

这种双重可验证性确保加密提升而不是破坏透明度。

防范服务端攻击

E2E加密的一个主要优势是防止服务器受攻击。即使攻击者完全访问投票服务器,他们也无法读取个人投票,因为服务器从未拥有解密密钥。这从根本上改变了依赖于单纯服务端保护系统的安全模型。

端到端加密与传输加密

传输加密(TLS/HTTPS)仅在数据从选民设备传输到服务器的过程中保护数据。一旦数据到达服务器,就会被解密并存储为明文。对于投票而言,E2E加密绝对优越,因为它也保护服务器上静态的数据。组织应确保其投票平台采用真正的E2E加密,而不仅仅是传输层安全。

性能和可扩展性

E2E加密引入的计算开销必须被仔细管理。现代实施通过高效的加密算法和并行处理、客户端加密来分配计算负载、批量计票过程以及在选举前预计算加密参数来优化性能。

法规要求

GDPR等数据保护法规鼓励将加密作为保护个人数据的技术措施。在符合GDPR的投票中,E2E加密帮助组织通过适当的技术和组织措施履行其保护选民数据的义务。