论文部分内容阅读
随着社会信息化发展,电子投票在社会生活中越来越普遍。在民主选举、股东大会等重要投票场景中,用户非常注重投票过程的、公平性和匿名性等安全需求。基于互联网的电子投票系统通常中心化程度过高,投票流程和数据均由中心化服务器来控制。这种中心化的系统架构增加了中心节点被黑客攻击的风险,对投票过程中的用户隐私和协议安全带来了威胁。近年来出现的区块链技术具有网络去中心化、数据无法篡改、信息公开透明等特点,能够替代传统的可信第三方,提供无中心的可信服务。此外,盲签名算法能够在保护用户隐私的前提下获取有效的签名。这些技术为解决电子投票场景中安全问题提供了有益的思路。本文提出了一种基于区块链的安全电子投票系统,利用区块链技术解决传统投票系统中心化程度高带来的安全问题,并结合盲签名算法来保护用户的隐私数据。本文提出的系统架构灵活,安全可靠,易于部署。本文主要工作如下:第一,针对电子投票场景中用户隐私保护的需求,提出了新的基于国家商用密码算法SM2的盲签名算法,该算法通过在盲化过程中引入三个随机盲化因子实现了强盲性,确保了对签名数据的隐私保护。同时,该算法满足盲签名算法的不可伪造性、正确性,在随机预言模型下能够有效抵抗适应性选择消息下的存在性伪造攻击;第二,结合盲签名算法,设计了基于区块链的安全电子投票协议。该协议利用了区块链的去中心化特性,并通过智能合约提供无中心的可信服务。该协议满足匿名性、不可伪造性、不可篡改性等安全特性,并具有抗共谋攻击的能力;第三,设计并实现了基于区块链的安全电子投票系统。该系统分为服务层、应用层和表示层三部分,利用面向服务的思想封装底层调用接口。服务层使用支持国密算法的区块链平台,并设计了提供管理和计票功能的可信智能合约。使用Go语言实现了系统的服务层功能,使用Java语言实现了系统的应用层功能,使用Java Script实现了系统的表示层功能。最后,对实现的系统进行了分析和测试。分析测试结果表明,设计的算法和协议具有较好的运行性能,同时能够满足电子投票系统的匿名性、不可伪造性、不可重复性等要求,具有抗共谋攻击能力,解决了中心化程度高带来的问题。