孙萌 王昀飚
摘 要:电子投票在为人们提供便利并得到广泛应用的同时,也存在着数据隐私泄露等安全性问题。文章提出了一种基于区块链的可追踪匿名电子投票方案,实现了匿名性、可追踪性、公平性以及普遍可验证性。方案通过使用K次匿名认证协议,不仅保护了正常投票人的身份隐私,还能揭露多次投票的恶意投票人身份。采用基于时间释放的加密方法,可以保证任何人都不会在投票结束前知道实时的投票情况。此外,利用区块链技术可以保证选票时不被篡改,并且任何人都能在不依赖可信计票中心的情况下对选票进行验证。最后,实验结果和安全性分析表明了方案是安全可行的。
关键词:电子投票;区块链;匿名性;可追踪性
中图分类号:TP309 文献标识码:A
Traceable anonymous electronic voting scheme based on blockchain
Sun Meng, Wang Yunbiao
(Jinan University, GuangdongGuangzhou 510632)
Abstract: While electronic voting provides convenience for people and is widely used, there are also security problems such as data privacy disclosure. This paper proposed a traceable anonymous electronic voting scheme based on blockchain, which realizes anonymity, traceability, fairness and universal verifiability. By using k-times anonymous authentication protocol, the scheme not only protects the privacy of normal voter identity, but also reveals the identity of the malicious voter who has voted multiple times; Using a time-released encryption method, it can guarantee that no one will know the real-time voting situation before the end of the voting; In addition, the use of blockchain technology can ensure that the vote will not be tampered with, and anyone can verify the votes without relying on a trusted counting center. Finally, experimental results and security analysis show that the scheme is safe and feasible.
Key words: electronic voting; blockchain; anonymity; traceability
1 引言
传统的纸质投票由于计票成本和不易保存等问题发展受到限制,与传统的投票相比,电子投票具有不受时间和空间的限制、投票和计票过程简单、成本低的优势,但是同时投票过程中也存在隐私数据泄露和投票造假的问题。密码学为电子投票提供了安全的解决办法[1],包括使用盲签名[2]、同态加密[3]和混合网络等技术[4]构造电子投票方案。但是传统的电子投票往往存在需要可信机构的问题,如需要计票机构统计投票并公布结果,需要认证机构保护投票人身份隐私。由于网络环境的复杂性,选票内容容易遭到破坏,投票安全不能得到保证。
区块链作为比特币[5]的底层技术,随着比特币的流行而受到广泛关注,并逐渐在保证数据的安全和可信等方面发挥着重要作用。通过将区块链技术应用到电子投票中[6],利用其具有不可篡改的功能,可以保護选票数据不被篡改与删除。此外,区块链作为一个公开透明的公共账本,为电子投票提供了一个可信任的存储平台,使得任何人可以在不依赖可信机构的情况下对投票进行验证。目前,基于区块链的电子投票方案虽然在一定程度上满足了选票的完整性和可验证性[7,8],但是仍存在依赖区块链平台保护投票人身份隐私以及计票效率有待提高等问题。
本文通过结合K次匿名认证协议和基于时间释放的加密方法,充分利用了区块链的不可篡改和公开透明等特点,提出了一种可追踪的匿名电子投票方案。该方案满足了电子投票的基本安全性需求,可以在不依赖可信计票中心的情况下对选票进行验证,还能够在保护正常投票人身份隐私的同时追踪恶意投票人。
2 预备知识
2.1 K 次匿名认证
Nguyen等人[9]基于双线性映射 提出了一种K次匿名认证协议(k-Times Anonymous Authentication),该协议可以在不泄露合法用户身份隐私的同时,对恶意用户进行追踪。服务提供者为用户提供有限次(k次)服务的匿名使用权,用户在限制次数内使用服务时,他的身份将不会泄露给包括认证机构在内的任何人。但是只要用户使用服务的次数超过限制时,他的身份将被追踪并公布。K次匿名认证协议可以用在电子现金和电子投票等场景,以保证合法用户的匿名并追踪恶意用户。该协议主要包含七种算法。
(1)群管理员初始化算法:群管理员输入安全参数,输出群管理员公私钥对,生成一个用户身份信息表。
(2)服务提供者初始化算法:服务提供者输入身份、访问限制次数,输出公共信息,包括用户认证记录和个访问标签。
(3)注册算法:输入用户身份和群管理员公私钥对,输出用户公私钥对,并记录到身份信息表中。
(4)创建标识算法:输入服务提供者公共信息、随机数、用户私钥以及群管理员公钥,输出标识。
(5)创建零知识证明算法:用户输入群管理员公钥、服务提供者公共信息、随机数 以及用户公私钥对,输出零知识证明。
(6)認证算法:服务提供者输入公共信息、零知识证明、标识以及随机数,输出认证通过或认证失败,并记录到用户认证记录中。
(7)追踪算法:输入服务提供者身份、公共信息以及身份信息表,输出没有恶意用户、恶意用户身份以及群管理员有不诚实行为 三种情况之一。
2.2 基于时间释放的加密方法
Cathalo等人[11]改进了Blake的方案[12],构造了一种基于时间释放的加密方法(Time-Release Encryption,TRE),该方法使得加密消息只有在规定时间T才能被解密,时间T之前不能被解密。消息发送者加密消息并发送,到达规定时间T时,消息接收者才能获得时间服务器发送的特定时间陷门,并且使用密钥解密密文恢复消息。在规定时间T之前,接收者不能从时间服务器获得时间陷门,因而不能解密。该方法可以用在电子拍卖和电子彩票等现实场景,以保护敏感数据的隐私。时间释放加密由五个算法组成。
(1)初始化算法:时间服务器输入安全参数,输出时间服务器公私钥对 和公共参数。
(2)用户密钥生成算法:用户输入公共参数,输出用户公私钥对。
(3)时间陷门释放算法:时间服务器输入私钥和规定的时间T,输出对应的时间陷门。
(4)加密算法:消息发送者输入公共参数、消息接收者公钥以及只能在规定时间T解密的消息m,输出密文。
(5)解密算法:消息接收者输入密文、公共参数、消息接收者私钥以及特定时间陷门,输出消息明文m。
3 可追踪的匿名电子投票方案
3.1 系统模型
系统模型如图1所示,包括四个实体:管理员、发起人、投票人和时间服务器。管理员负责认证投票人身份,并且管理一个记录合法投票人身份的身份信息表。发起人负责将投票活动相关信息写入智能合约并部署到区块链上公开,发起投票活动。投票人从智能合约中获得投票活动相关信息,生成选票密文和选票标识合法性、投票人身份合法性的零知识证明,使用一次性以太坊账户向智能合约发送交易完成投票。时间服务器负责生成用于解密选票的时间陷门,并在特定时间进行广播。
投票人在管理员处认证,发起人发布投票活动到区块链上,投票人根据智能合约中的投票活动相关信息进行投票。到达活动截止时间时,任何想要知道投票结果的实体,根据智能合约中的投票记录进行合法性验证,并在解密时间接收时间服务器广播的时间陷门解密选票以及统计投票结果。
3.2 方案介绍
方案由初始化、投票人注册、发起投票、投票、统计投票和追踪恶意用户六个阶段组成。
3.2.1 初始化阶段
管理员、发起人和时间服务器分别进行初始化操作,生成各自的公私钥对。产生一个双线性映射,其中和是p循环群, g是G的生成元。哈希函数,,,明文空间和密文空间,其中。
(1)管理员选择,计算,输出公私钥对,其中公钥,私钥。同时创建一个投票人身份信息表,本阶段将其初始化为空表。
(2)发起人选择,计算,生成公私钥对,其中公钥,私钥。
(3)时间服务器选择随机数,计算,输出公私钥对。
3.2.2 投票人注册阶段
投票人向管理员注册后获得自身公私钥对,成为合法投票人参与投票。在开始注册前,管理员首先设置投票人注册截止时间。
(1)投票人选择随机数,计算发送给管理员。
(2)管理员选择随机数发送给投票人。
(3)投票人计算,和,并将身份信息加入身份信息表,其中i是投票人身份。然后将,和零知识证明发送给管理员。
(4)管理员首先确认在身份信息表中,且投票人身份信息i满足注册要求;检查和等式的正确性;验证的正确性;所有条件验证通过后,管理员选择随机数,计算,将发送给投票人。
(5)投票人检查等式是否成立,成立则接受公私钥对,其中公钥,私钥。至此,投票人获得合法投票资格。
(6)到达投票人注册截止时间时,注册结束,管理员将注册成功的投票人身份信息表写入智能合约并在区块链上公开。
其中,用来证明投票人提供的x满足,零知识证明过程为:投票人计算发送给管理员,其中,,;管理员计算,验证等式是否成立,成立则验证通过。
3.2.3 发起投票阶段
发起人将投票活动的相关信息写入智能合约并部署到区块链上公开,发起投票。投票活动相关信息包括:投票问题与候选项、时间服务器公钥、投票记录表、发起人公私钥对、投票截止时间、统计投票时间和标签。
其中,投票记录表由发起人管理,记录并公开投票人的投票记录。发起人私钥在此阶段初始化为空值,统计投票阶段再赋值。另外,标签由发起人计算,,是发起人的身份,数字1是允许投票人投票的次数,本方案中投票人只能进行一次合法的投票。
3.2.4 投票阶段
投票人从发起人编写的智能合约中获得投票问题与候选项等信息,利用其中的标签生成选票标识,将选票标识合法性、投票人身份合法性的零知识证明同选票密文一起,以交易的形式发送给智能合约进行投票。
(1)发起人选择随机数,发送给投票人。
(2)投票人查找到智能合约中的标签,计算选票标识,并生成零知识证明。
(3)投票人读取智能合约中的发起人公钥,想要投票的选项m和统计投票时间。选择随机数,设置选票的解密时间为,计算选票密文将选票密文和零知识证明等信息的集合以交易的形式发送到智能合约的投票记录表中记录。
(4)智能合约对于接收到的每一个选票,检查投票记录表中是否存在该选票包含的,如果不存在则接收该选票,存在则拒绝选票。
其中,用于证明选票标识合法性和投票人身份合法性,即证明投票人注册成功具有投票资格,并且选票标识计算过程正确。,的证明使用与类似的离散对数零知识证明,等式的零知识证明过程为:
投票人选择随机数,计算选择随机数,计算,,,,,,
计算;计算,,,,;最后输出;
验证者验证, 是否成立,成立则验证通过。
3.2.5 统计投票阶段
投票结束后,发起人对投票记录表中的选票进行筛选与标记,统计投票结果。到达投票截止时间时,发起人向智能合约发送消息通知,并在智能合约中公布发起人私钥,智能合约停止接收投票人发送的选票,没有投票的用户视为弃权。
(1)发起人验证智能合约接收到的所有选票的合法性。对每个选票的,首先验证的正确性,验证通过再计算,然后计算选票的解密时间,验证T是否与统计投票时间相同。验证不通过则为非法选票,发起人在投票记录表中标记该选票为“非法选票”。接下来检查任意两个通过验证的选票的和是否出现的情况,出现则说明有投票人重复投票,发起人将投票记录表中对应的选票标记为“重复选票”,然后标记所有剩余选票为“合法选票”。
(2)发起人统计合法选票的投票结果。首先,汇总投票记录表中所有具有“合法选票”标记的选票,到达时,接收时间服务器广播的时间陷门。然后,计算,进而得到选票,最后统计投票结果。
任何对投票结果有异议的实体都可以验证选票合法性以及统计投票结果,但只有发起人才能标记选票。
3.2.6 追踪恶意用户阶段
任何实体都可以对投票记录表中的重复选票进行追踪,揭露重复投票的恶意用户身份。对于出现情况的两张选票,计算,然后在身份信息表中查找恶意投票人的身份 。
4 安全性分析
本节对本文提出的电子投票方案的安全性进行分析。
(1)匿名性。投票人使用一次性以太坊账户投票,且选票内容只含有证明投票人合法身份的零知识证明,不包含投票人身份。由零知识证明的性质可知,证明过程不会泄露投票人身份。另外,使用K次匿名认证协议,保证方案的匿名性。
(2)可追踪性。投票人进行重复投票时,发起人会标记这些重复的选票为“重复选票”。任何人都可以对这些选票进行计算,然后在身份信息表中查找恶意投票人的身份,如果找不到則说明管理员有不诚实的行为。
(3)普遍可验证性。智能合约中的投票记录是公开透明的,任何人都可以查看选票并通过零知识证明验证选票标识计算的正确性和投票人身份的合法性。另外,任何人都能利用时间陷门解密选票,并对投票结果进行统计验证。
(4)公平性。使用时间释放加密方法,在到达统计投票时间之前,任何实体都无法获得时间陷门以解密选票内容。此外,比较选票解密时间与统计投票时间是否相同,不同则将选票视为非法选票,不计入投票结果,满足了公平性。
(5)完整性。由于区块链具有不可篡改的特性,在所有选票发送到智能合约后,任何人都不能修改和删除,保证了方案的完整性。
5 实验与分析
本文根据所提出的电子投票方案,实现了一个基于Ethereum区块链平台的电子投票系统,并在以太坊本地网络中对系统进行测试。为了验证投票方案的正确性与可用性,对核心算法运行所需要的平均时间进行统计,如表1所示。
智能合约中相关方法的Gas消耗如表2所示,其中投票人数为n,选票数为m。实验证明,测试过程中的所有步骤都没有超过以太坊单笔交易的最大Gas限制,可以正常部署运行在以太坊主链上。
为了验证方案的实用性,对不同规模、不同候选项的投票场景下计票所需时间进行统计,如图2所示。实验证明了统计选票的时间与投票规模基本呈线性相关。在较小的规模投票中,候选项数目对统计选票时间无较大影响,基本满足现实中投票场景的需求。
6 结束语
根据电子投票的发展现状,本文基于区块链技术,结合K次匿名认证和时间释放加密方法,提出了一种可追踪匿名电子投票方案。不仅保证了电子投票的基本安全性需求,还实现了普遍可验证性和可追踪性。通过分析实验中核心算法的时间开销与Gas消耗证明了方案的正确性;通过分析不同规模选票的统计时间开销证明了方案的实用性。方案可以应用到真实投票场景中,很好地保护了用户的隐私,保证了电子投票的安全性。
参考文献
[1] Schneier B. Applied Cryptography: protocols, algorithms, and source code in C[M]. 北京: 机械工业出版社, 2000.
[2] Ibrahim S, Kamat M, Salleh M, et al. Secure E-voting with blind signature[C]//4th National Conference of Telecommunication Technology, 2003. NCTT 2003 Proceedings. IEEE, 2003: 193-197.
[3] Peng K, Bao F. Efficient multiplicative homomorphic e-voting[C]//International Conference on Information Security. Springer, Berlin, Heidelberg, 2010: 381-393.
[4] Furukawa J, Mori K, Sako K. An implementation of a mix-net based network voting scheme and its use in a private organization[M]//Towards trustworthy elections. Springer, Berlin, Heidelberg, 2010: 141-154.
[5] Nakamoto S. Bitcoin: A peer-to-peer electronic cash system[J]. 2008.
[6] Hjalmarsson F P, Hreioarsson G K, Hamdaqa M, et al. Blockchain-Based E-Voting System[C]. 2018 IEEE 11th International Conference on Cloud Computing (CLOUD). IEEE, 2018: 983-986.
[7] Aradhya P. The Online Voting Platform of The Future [EB/OL]. https://followmyvote.com.
[8] Wire B. Now you can vote online with a selfie [EB/OL]. http://www.businesswire.com/news/home/20161017005354/en/Vote-Online-Selfie.
[9] Nguyen L, Safavi-Naini R. Dynamic k-times anonymous authentication[C]. International Conference on Applied Cryptography and Network Security. Springer, Berlin, Heidelberg, 2005: 318-333.
[10] Boneh D, Franklin M. Identity-based encryption from the Weil pairing[J]. SIAM journal on computing, 2003, 32(3): 586-615.
[11] Cathalo J, Libert B, Quisquater J J. Efficient and non-interactive timed-release encryption[C]. International Conference on Information and Communications Security. Springer, Berlin, Heidelberg, 2005: 291-303.
[12] Blake I F, Chan A C F. Scalable, Server-Passive, User-Anonymous Timed Release Public Key Encryption from Bilinear Pairing[J]. IACR Cryptology ePrint Archive, 2004, 2004: 211.
作者簡介:
孙萌(1996-),女,汉族,山东烟台人,暨南大学,硕士;主要研究方向和关注领域:信息安全。
王昀飚(1994-),男,汉族,广东深圳人,暨南大学,硕士;主要研究方向和关注领域:信息安全。