CN115473642B - 可监管恶意投票的区块链时间锁加密电子投票系统及方法 - Google Patents
可监管恶意投票的区块链时间锁加密电子投票系统及方法 Download PDFInfo
- Publication number
- CN115473642B CN115473642B CN202210914974.5A CN202210914974A CN115473642B CN 115473642 B CN115473642 B CN 115473642B CN 202210914974 A CN202210914974 A CN 202210914974A CN 115473642 B CN115473642 B CN 115473642B
- Authority
- CN
- China
- Prior art keywords
- voting
- user
- voter
- supervisor
- fabric
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000008520 organization Effects 0.000 claims abstract description 25
- 239000004744 fabric Substances 0.000 claims abstract description 16
- 230000007246 mechanism Effects 0.000 claims abstract description 10
- 238000012544 monitoring process Methods 0.000 claims abstract description 9
- 230000004044 response Effects 0.000 claims description 7
- GPUADMRJQVPIAS-QCVDVZFFSA-M cerivastatin sodium Chemical compound [Na+].COCC1=C(C(C)C)N=C(C(C)C)C(\C=C\[C@@H](O)C[C@@H](O)CC([O-])=O)=C1C1=CC=C(F)C=C1 GPUADMRJQVPIAS-QCVDVZFFSA-M 0.000 claims description 6
- 238000011217 control strategy Methods 0.000 claims description 6
- 230000000694 effects Effects 0.000 claims description 3
- 238000013075 data extraction Methods 0.000 claims description 2
- 238000013500 data storage Methods 0.000 claims description 2
- 238000013507 mapping Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 claims description 2
- 238000012795 verification Methods 0.000 claims description 2
- 238000012163 sequencing technique Methods 0.000 claims 2
- 230000001105 regulatory effect Effects 0.000 claims 1
- 239000003999 initiator Substances 0.000 abstract description 6
- 238000004364 calculation method Methods 0.000 abstract description 2
- 230000006399 behavior Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000004936 stimulating effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C13/00—Voting apparatus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种可监管恶意投票的区块链时间锁加密电子投票系统及方法,系统包括投票者User A、投票者客户端Client A、监管机构RA、系统管理者Admin、Web服务器和Fabric区块链网络;方法包括系统初始化、用户注册、投票、监票、查票、计票;本发明通过投票者设置的访问策略实现了对监管机构中监管者的细粒度数据访问控制,解决了传统加密方案在监管和溯源时存在的密钥分发问题。本发明能保证投票发起人得到公平公正的投票结果,并且可进行投票数据实时监管,在监管机构评估到有恶意投票行为时可及时停止投票以减少时间开销和计算开销,能够促进电子投票系统的稳定运行,具有很好的实用性。
Description
技术领域
本发明属于区块链技术和数据安全技术领域;涉及一种可监管恶意投票的区块链时间加密锁电子投票系统及方法;特别涉及一种针对投票信息时间锁加密、用户投票数据监管需要的可监管恶意投票的区块链时间锁加密电子投票系统及方法。
背景技术
投票通常可以解决团队内意见不统一的问题,从公司的小团体决策到各个地区的选举都有投票的应用。随着科技水平不断创新和互联网技术快速发展,电子投票技术在不断更新,并逐渐成为主流。目前对基于区块链的投票技术来看,相对更多的人会考虑参与投票用户之间的公平性,但是忽略了发起投票的目的。在参与投票过程中,投票发起人希望得到的是公平且有公信力的结果,若投票用户私下商量恶意投票,造成投票结果与预期严重不符,引起众人热议,那么有权限的高层管理者应该对投票结果进行溯源,在不泄露投票用户隐私信息的同时,投票过程中实施监管,并且查到投票来源加以追责。现有的保证投票结果的公信力和投票发起人权益的区块链投票方法,如赖铭峰、曾兵等人公开的文献《一种保证投票发起人权益的公平的区块链投票系统及方法》,介绍了保证投票发起人权益的投票方法,主要考虑的是设置一定的奖金,用以激励投票者在规定时间内正常参与投票,并且通过押金和定时暴露投票者的隐私作为约束条件,强行保证投票发起人的权益,即尽可能准确的投票结果。这种投票方法在一定程度上只能保证投票者确实顺利完成投票行并计票,但是无法保证投票者私下串通造成恶意投票的行为,由于其约束性机制,若因其他因素造成的投票失败而导致正常参与投票用户的隐私泄露,无法进行监管和追责,忽略了用户的隐私安全性和投票数据的公正性。
发明内容
为了解决上述问题,本发明提出了一种可监管恶意投票的区块链时间锁加密电子投票系统及方法,将基于CP-ABE算法的属性加密和时间锁加密方法应用到电子投票系统中,利用区块链来实现不需要第三方计票和验证,在用户隐私不会被泄露的同时,以保证投票结果在规定时间被公布,并且在对投票者进行监管的同时确保选票的真实性和可验证性。
本发明的系统所采用的技术方案是:一种可监管恶意投票的区块链时间锁加密电子投票系统,包括投票者User A、投票者客户端Client A、监管机构RA、系统管理者Admin、Web服务器和Fabric区块链网络;所述Fabric区块链网络中的颁发证书机构Fabric-CA作为可信的第三方颁发证书机构;
所述投票者User A,利用所述投票客户端Client A参加投票;
所述监管机构RA,包括监管者User B和监管客户端Client B,用于对投票者UserA的投票行为进行监管以避免恶意投票行为的发生;
所述系统管理者Admin用于部署投票者客户端和智能合约,每次进行投票活动开始前,设定投票者名单、投票主题、投票选择候选项、椭圆曲线参数;其中,所述智能合约,用于操作账本实现数据存储和提取,实现功能业务逻辑;
所述Web服务器,用于处理投票者User A通过投票者客户端发出的请求;
所述Fabric区块链网络,是基于Fabric的具有管理权限的区块链网络;其中,所述Fabric提供了Fabric SDK两种接口模块,分别是访问颁发证书机构Fabairc-CA接口和访问区块链网络接口,前者主要负责整个网络的节点准入机制、分发证书、交易的数字签名以及验证功能,后者实现智能合约功能的调用。
本发明的方法所采用的技术方案是:一种可监管恶意投票的区块链时间锁加密电子投票方法,包括以下步骤:
步骤1:系统初始化;
智能合约生成主密钥MK、系统公钥PK,区块链地址;系统管理者Admin设置投票主题和投票候选项、投票结果预计公布时间T;根据设置的投票结果预计公布时间T,系统管理者Admin选择合适阶数的椭圆曲线E使得必须花费设置时间T这么长的时间才能解决该椭圆曲线E上的离散对数问题,以实现在设置时间T之后才能公布投票结果,并将对应的时间锁加密解密函数部署在智能合约上;
智能合约设定连接序列功能函数,该函数用于后续步骤中连接投票者User A发送到智能合约上的密钥相关序列;智能合约设定哈希函数He:{0,1}n *—>E,该哈希函数是用于将一个01串映射为椭圆曲线上的一个点,该哈希函数将在后续生成时间锁随机密钥时使用;
系统管理者Admin部署基于CP-ABE属性加密解密功能函数在智能合约上;
步骤2:用户注册,包括投票者User A注册和监管者UserB注册;
系统为每个注册用户生成唯一的公钥、私钥以及区块链地址,分别作用于投票数据加密、数字签名以及投票记录追溯,
投票者User A根据监管者User B的属性设置访问控制策略PA,访问控制策略PA用于后续步骤中监管机构RA对投票者User A的投票行为的监管;
步骤3:投票;
投票者User A投票完成后,得到相应的投票数据;投票者的投票数据进行属性加密并上链存储,得到密文CTA (ABE),并将密文作为交易的负载形式Tx(CTA (ABE))发送至区块链网络;投票者的投票数据进行时间锁加密,得到密文CTA (TimeClock),在设置时间T内进行投票数据保护;投票者User A通过投票者客户端Client A对密文CTA (TimeClock)进行签名后发送到区块链网络中,网络节点对发送的交易和签名进行验证,并将包含加密投票数据CTA (TimeClock)的合法交易添加到区块链账本中;
步骤4:监票;
投票数据密文CTA (ABE)交易的区块上链时,整个相应通道的节点需要对上链区块进行同步;在其通道的节点监管者User B通过监管客户端Client B请求区块链网络中包含User A投票数据密文CTA (ABE)的信息来对投票者User A的投票行为进行监督;
步骤5:查票;
经过时间TU,投票者User A通过投票客户端Client A使用查询投票功能,若TU<T,则无法查询到投票结果,返回查询失败;若TU≥T,则时间锁已打开,智能合约调用解密功能函数已获得相应投票数据,智能合约向投票者User A返回相应的投票数据,查询成功;
步骤6:计票;
智能合约对解密得到的各投票者的投票数据按候选项进行累加统计;智能合约将统计结果储存和发布在区块链上,公布候选项对应的投票结果。
本发明提供了一种可监管的区块链时间锁加密电子投票系统及方法,利用基于CP-ABE算法的属性加密方法和时间锁加密方法实现了区块链电子投票系统的安全性加强和用户级细粒度安全访问控制监管机制。用户的投票数据将在一段时间内进行加密保护且在设置时间T内无法被破解,即如果投票数据只能在设置的投票结果预计公布时间T之后打开,那么所有参与者都不必担心有人泄露秘密或者串通来破坏安全性,整个投票过程中没有人比其他人拥有更多的信息或特权,保证了投票结果的公正性。还能够实现对CP-ABE方案中用户属性密钥的安全分发,解决了传统监管方案在溯源时存在的密钥分发问题。
附图说明
图1:本发明实施例的系统结构图;
图2:本发明实施例的方法中加密流程图;
图3:本发明实施例的方法中解密流程图;
图4:本发明实施例的方法中查票流程图;
图5:本发明实施例的方法中计票流程图;
图6:本发明实施例的方法中监票原理图。
具体实施方式
为了便于本领域普通人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述。显然,所描述的实施例仅仅只是本发明一部分实施例,而不是全部的实施例。附图仅用于示例性说明,不能理解为对本专利的限制。
如图1所示,本发明提供一种可监管恶意投票的区块链时间锁加密电子投票系统,该系统整体构架主要是由客户端与Web服务器交互选择功能,通过Fabric-SDK接口调用智能合约函数,完成相应的投票、查票等功能,其中由投票者客户端的Fabric-SDK接口完成加密投票数据在区块链网络中的交易背书、交易排序、区块分发等功能,本发明所设计的系统构架分为上层Web应用层、下层区块链底层,中间智能合约部分为Web应用层和区块链底层交互的媒介。在完成区块链底层设计的基础上,Web应用层交互层采用B/S构架,负责与浏览器用户界面交互,提供浏览器与区块链之间的数据转化业务,将投票数据进行封装提交给区块链网络节点并储存在区块链账本上,Web应用层主要实现系统功能,根据所述系统功能分析,设计完成注册登陆功能、新建投票功能、参与投票功能、查询投票等功能。
本实施例的Web应用层包括3个层次:视图层、业务逻辑层、数据访问层;
其中,本实施例的视图层提供与用户交互的功能;
其中,本实施例的业务逻辑层是实现功能的关键,处理视图层提出的请求并返回响应,所述系统大部分功能都在业务逻辑层实现;
其中,本实施例的数据访问层负责数据的存取,如用户的用户名和密码等普通数据直接存入数据库,用户的投票记录等区块链数据则存入区块链,当访问普通数据,需进行数据库设计,编写sql语句;当访问区块链数据时,需要客户端调用Fabric-SDK接口通过智能合约实现数据在区块链中的存取。
本发明实施方式中,由Admin发起投票活动,用户注册好后选择投票选项并输入私钥确定投票者身份,由投票者User通过客户端Client与Web应用层交互参与投票,并且投票者User A通过投票客户端Client A进行投票数据时间锁加密解密流程,监管机构RA中的监管者User B通过客户端Client B进行访问链上加密投票数据流程,整体分为5个步骤:系统初始化、投票、监票、查票、计票;其中本实施例的时间锁加解密部分主要是投票者User A通过投票客户端Client A访问Web应用层并在服务器上与区块链底层进行交互完成相应流程,如图2所示;在监票、查票步骤中增加了访问控制步骤和打开时间锁步骤,符合访问策略人物属性的监管者UserB可进行访问加密数据,访问成功即可进行投票数据监管;而其他任何投票者User A在设置时间T内是无法破解加密密钥的,除非时间T之后时间锁打开时才可以获得加密投票数据的私钥,此时请求查询成功,进行计票统计功能。区块链中的具体功能操作大部分由Web应用层中的业务逻辑层执行,通过调用不同的接口,例如将投票数据存入区块中,就需要通过客户端Fabric-SDK接口调用区块链底层存储功能等,可以使整个投票进程顺利进行,实现用户之间的相互交流。
假设系统有n个注册投票者和发布了m个候选投票选项。本实施例的方法由系统管理者Admin在Web服务器上部署投票、查票相关功能接口,当n个投票者通过安装在其移动设备上的客户端参与投票、查票时,Web服务器通过Fabric SDK接口调用已部署的智能合约以完成区块链上的相关操作和交易,从而完成服务响应;投票者的每张选票初始状态为有效;投票完成后,参与者经过设置时间T之后提出的查询请求才能被成功响应;并且计票结果也必须在设置时间T之后才能发布到链上。
请见图2-图6,本发明提供的一种可监管恶意投票的区块链时间锁加密电子投票方法,包括以下步骤:
步骤1:系统初始化;
本实施例中,步骤1具体实现包括以下子步骤:
步骤1.1:智能合约生成主密钥MK、系统公钥PK,区块链地址;
(MK,PK)<—Setup(1λ),通过输入系统安全参数λ,生成主密钥MK和系统公钥PK;
步骤1.2:系统管理者Admin设置投票主题和投票候选项、投票结果预计公布时间T;
步骤1.3:根据设置的投票结果预计公布时间T,系统管理者Admin选择合适阶数的椭圆曲线E使得必须花费设置时间T这么长的时间才能解决该椭圆曲线E上的离散对数问题,以实现在设置时间T之后才能公布投票结果,并将对应的时间锁加密解密函数部署在智能合约上;
本实施例中,椭圆曲线E是系统管理者Admin在初始化中设定好的,本发明在投票功能开启之前,应当预估椭圆曲线E上解决离散对数问题所需的计算能力,对外公布的可查询时间不能早于解决离散对数问题需要的时间T,即使攻击者拥有较大计算能力资源,也能难提前获取相关投票信息。
步骤1.4:智能合约设定连接序列功能函数,该函数用于后续步骤中连接投票者User A发送到智能合约上的密钥相关序列;
步骤1.5:智能合约设定哈希函数He:{0,1}n *—>E,该哈希函数是将一个01串映射为椭圆曲线上的一个点,该哈希函数将在后续生成时间锁随机密钥时使用;
步骤1.6.1:用户(包括监管者和投票者)进行注册,系统为每个注册用户生成唯一的公钥、私钥以及区块链地址,分别作用于投票数据加密、数字签名以及投票记录追溯,具体实现包括以下子步骤:
步骤1.6.1:(CTBSK,UcertB)<—KeyGen(MK,UCRB);
监管者User B通过监管客户端Client B发送用户证书请求UCRB至Fabric-CA以申请证书;监管者User B的用户证书请求包含监管者User B的属性以及监管者User B的公私钥对(UPKB,USKB);颁发证书机构Fabric-CA为公私钥对(UPKB,USKB)生成相应的证书UcertB,并计算证书UcertB的签名σcertB,此外,颁发证书机构Fabric-CA还根据监管者User B提供的属性为其生成属性私钥BSK,并利用监管者User B的公钥UPKB对生成的属性私钥BSK进行加密得到密文CTBSK,并且由颁发证书机构Fabric-CA将(UcertB,σcertB,CTBSK)返回给监管者User B;
步骤1.6.2:投票者User A通过投票客户端Client A发送用户证书请求UCRA至颁发证书机构Fabric-CA以申请证书;投票者User A的用户证书请求包含投票者User A的公私钥对(UPKA,USKA),颁发证书机构Fabric-CA为(UPKA,USKA)生成相应的证书UcertA,并计算证书UcertA的签名бcertA,颁发证书机构Fabric-CA将(UcertA,бcertA)返回给投票者User A;
步骤1.7:投票者User A根据监管者User B的属性设置访问控制策略方案PA,访问策略PA用于后续步骤中监管机构RA对投票者User A的投票行为的监管;
步骤1.8:系统管理者Admin部署基于CP-ABE的属性加密解密功能函数在智能合约上。
本实施例中,CP-ABE属性加密解密功能函数,是基于现有的Fabric和Fabric-CA,在Fabric-CA中嵌入CP-ABE实现,即将Fabric-CA作为属性加密方案中的可信第三方,其功能可管理用户所用证书,同时对CP-ABE方案初始化和用户属性私钥BSK的生成和分发。
本实施例中,CP-ABE属性加密解密功能函数,需要使用者(如Admin)根据本发明中投票数据时间锁加密步骤、和查票打开时间锁即解密步骤可通过多种语言编写(如goland、Java、node.js);然后进行实例化过程,编译并打包成doker容器镜像启动运行,实例化可在任意一个已经安装智能合约的peer节点上;实例化之后,用户就能与其进行功能交互。
步骤2:投票;
投票者User A的投票数据主要包括投票者User A的公钥UPKA、利用其私钥USKA生成的签名、User A选择的投票候选项地址、时间、版本号等;投票者User A投票完成后,得到相应的投票数据;投票者User A通过投票客户端Client A调用智能合约中的时间锁加密功能函数对生成的投票数据进行加密以控制查询投票数据和公布投票结果的时间T,让投票加密数据在设置时间T内是安全的,经过设置时间T后时间锁才会被打开,得到相关投票数据并进行统计发布,保证投票结果的公正性;为了防止恶意投票,投票者User A还需要通过投票客户端Client A调用智能合约中的基于CP-ABE的属性加密功能函数对所投票数进行加密,得到的密文与访问策略PA相关联,对应的解密密钥与监管者User B的属性相关联,使得监管者User B可以在不知道投票者User A私钥的情况下对其投票行为进行访问监管,若投票过程中监管者User B评估一些投票数据可能会导致最终统计票数的争议性,那么监管机构RA可以及时宣布停止投票并对恶意投票者进行溯源追责,减少无用时间开销和计算开销;
其中,访问策略PA由属性及它们间关系(and、or)所组成的逻辑表达式。
请见图2和图3,本实施例中步骤2的具体实现包括以下子步骤:
步骤2.1:投票者的投票数据进行属性加密并上链存储,具体实现包括以下子步骤:
步骤2.1.1:CTA (ABE)<—Encrypt(PK,MA,PA);
投票者User A通过投票客户端Client A调用智能合约中的属性加密功能函数对其投票数据MA进行加密,得到密文CTA (ABE),并将密文作为交易的负载形式Tx(CTA (ABE))发送至区块链网络;
步骤2.1.2:区块链网络接收到投票者User A提交的Tx(CTA(ABE)),区块链网络按照交易提案(由于投票者User A发起交易时需指定通道ID(如图1中的Channel1或Channel2),并将交易提案发送至指定通道ID中相应组织的背书节点,背书节点模拟执行交易提案并签名)发送给背书节点,对Tx(CTA(ABE))进行背书,背书节点主要对交易提案格式、重复性、签名以及交易提交者权限进行验证,从而生成背书响应并返回给投票者UserA,当投票者客户端Client A收到足够的(指的是交易发送至有多少个节点,就得收到多少个人背书响应,若其中有未响应的节点,则表示验证有问题。)背书响应时,投票者客户端Client A将密文交易Tx(CTA(ABE))封装生成Envelope发送至排序节点进行排序;
步骤2.1.3:Block A<—Update(Tx(CTA (ABE));
排序节点完成排序后生成区块BlockA,并将其发送至特定通道以分发给其中的所有主节点,由主节点进行组织内的区块同步,最终收到交易后各节点验证交易内容和签名,将合法的交易添加到区块链账本中,完成加密投票数据的上链储存,等待监管机构RA中的监管者User B进行访问监管;所述特定通道为监管机构RA中包含的所有监管者所在的通道,由于Fabric网络中超级账本支持多通道机制,账本区块分发是按通道ID进行分发的,并且通道之间相互隔离本文在形成策略PA时将属性定义为通道ID、组织ID以及用户ID,在形成访问控制策略PA时可以将3种属性通道ID、组织ID以及用户ID随意组合;
步骤2.2:投票者的投票数据进行时间锁加密,在设置时间T内进行投票数据保护,防止有攻击者在设置时间T之前破解密钥,从而提前获得投票结果,破坏投票公平性,具体实现包括以下子步骤:
步骤2.2.1:投票者User A生成随机串{0,1}*作为密钥相关序列,通过投票客户端Client A发送到智能合约,智能合约根据设定的连接功能函数进行连接得到所有参与投票者的串联密钥相关序列;
假设有n个投票者{User A1,User A2,…,User An}分别执行完步骤2.2.1之后,智能合约将得到n个投票者的串联密钥相关序列{0,1}n *;
步骤2.2.2:智能合约将n个投票者的串联密钥相关序列{0,1}n *作为哈希函数He:{0,1}n *—>E的输入得到椭圆曲线E上的一个点,将其坐标作为时间锁加密的随机公钥PKP,由于所有投票者只提供部分串联输入,所以所有的投票者都无法预先对对应的私钥SKP有所了解,保证了加密投票数据的安全性,所有人都可尝试在选定的椭圆曲线E上求解离散对数问题以获得对应的私钥SKP;
步骤2.2.3:智能合约使用随机公共密钥PKP对投票者User A的投票数据MA进行时间锁加密,得到密文CTA (TimeClock);
步骤2.3:投票者User A通过投票者客户端Client A对密文CTA (TimeClock)进行签名后发送到区块链网络中,网络节点对发送的交易和签名进行验证,并将包含加密投票数据CTA (TimeClock)的合法交易添加到区块链账本中;
步骤3:监票;
包含投票数据密文CTA (ABE)交易的区块上链时,整个相应通道的节点需要对上链区块进行同步;在其通道的节点监管者User B通过监管客户端Client B请求区块链网络中包含User A投票数据密文CTA (ABE)的信息来对投票者User A的投票行为进行监督。
请见图6,本实施例中步骤3的具体实现包括以下子步骤:
步骤3.1:CTA (ABE)<—Download(Tx(CTA (ABE)));
监管者User B通过监管客户端Client B与Fabric网络交互,请求区块链网络中包含投票者User A交易密文的对应信息,从而得到对应的加密投票数据CTA (ABE);
步骤3.2:MA<—Decrypt(CTA (ABE),BSK,PK);
监管者User B利用自己的私钥USKB对密文CTBSK进行解密得到自己的属性私钥BSK,然后通过监管客户端Client B调用智能合约中的CP-ABE解密功能函数对密文CTA (ABE)进行解密,因为监管者User B的属性私钥BSK满足嵌入在密文CTA (ABE)中的访问控制策略PA,因此,监管者User B可以对密文CTA (ABE)成功解密得到明文投票数据MA,从而使得监管机构RA可以随时监控投票数据的有效性;
步骤4:查票;
经过时间TU,投票者User A通过投票客户端Client A使用查询投票功能,若TU<T,则无法查询到投票结果,返回查询失败;若TU≥T,则时间锁已打开,智能合约调用解密功能函数已获得相应投票数据,智能合约向投票者User A返回相应的投票数据,查询成功;
请见图4,本实施例中步骤4的具体实现包括以下子步骤:
步骤4.1:智能合约执行对椭圆曲线E进行Pollard-rho攻击,由于系统管理员Admin在开始投票前已经选择好合适的椭圆曲线,智能合约经过设置时间T才能解决该椭圆曲线E上的离散对数问题,也就是说,经过设置时间T之后智能合约才能从PKP中获得私钥SKP,从而使得智能合约可以执行时间锁解密功能函数对投票者的时间锁密文CTA (TimeClock)进行解密获得对应的投票数据MA;
步骤4.2:经过时间TU,投票者User A请求查询,若TU<T,则查询失败;若TU≥T,投票客户端Client A通过候选项的区块地址,向区块链网络中的节点请求查询投票数据,投票者User A在服务界面选择查询票数功能与Web服务器交互,然后通过Fabric-SDK接口调用智能合约获取相应的投票数据MA;
步骤5:计票;
请见图5,本实施例中步骤5的具体实现包括以下子步骤:
步骤5.1:智能合约对解密得到的各投票者的投票数据按候选项进行累加统计;
步骤5.2:智能合约将统计结果储存和发布在区块链上,公布候选项对应的投票结果。
以上5个步骤主要包括普通投票者通过客户端在Web应用层使用投票和查票功能时系统进行时间锁加解密的阶段;监管者通过监管客户端监票时,对加密投票数据进行访问的阶段;监管者只要在投票者参加投票后可以访问投票数据进行监管,而投票者在预计设置时间T内无法查到结果,只有在本方案所述的设置时间T之后才可以查询到投票结果,保障了投票发起人和投票用户的权益和公正性;
本实施例中通道组织是区块链系统中的超级账本网络的区块分发通道,通道之间是相互独立存在,即存有投票信息的加密区块只能被分发往其中一个通道,对已经上链的数据不存在被多个通道同时访问的情况,其中区块分发是按照通道ID进行分发。
以上方案基于属性加密实现了用户的细粒度的数据访问,能精确的要求某一个具体属性集所包含的人可访问加密信息。对于CP-ABE方案中仅有满足策略属性的密钥才能对密文进行解密从而获得明文数据,所以对一种可监管恶意投票的区块链时间锁加密电子投票方法的访问策略定义很重要,具体如下:
本实施例定义了3个属性分别为通道ID、组织ID以及用户ID,在监管者进行访问时,原则上可以随意组合这3种属性组合设置访问控制策略PA,将数据访问控制中属性定义的范围如下表1所示。
表1用户属性定义
为了将访问控制策略展示的更加具体化,本实施例定义了3种通用策略:
通用策略PA1:通道ID={Channel1,Channel2,…},属于特定通道内的所有用户都可解密;
通用策略PA2:(通道ID=Channel1)&&(组织ID=Organ{Organ1,Organ2,…}),属于特定通道内的特定组织的所有用户都可解密;
通用策略PA3:(通道ID=Channel1)&&(组织ID=Organ1)&&(用户ID=User{User1,User2,…}),属于特定通道内的特定组织中的特定用户都可解密。
投票用户在数据加密上链阶段中指定策略时,可使用以上3种通用策略进行访问控制。当然,若想实现更细粒度的数据访问控制,还可以将通用策略PA2和通用策略PA3进行组合,使得本发明监管部分个性化的调查和溯源的需求。
本发明提出一种可监管恶意投票的区块链时间锁电子投票系统及方法,解决了现有区块链电子投票方案中投票者私下商量进行恶意投票造成投票结果与预期严重不符的问题。该方案不仅能够在不泄露投票者私钥的情况下,在参与投票的过程中进行投票数据监管并提供溯源和追责的途径,而且还能限制投票者在设置的预计对外公布投票结果时间之后才能查票成功;系统方案相比传统区块链电子投票方案安全性更高,监管性更强,更适用于电子投票的应用场景。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
Claims (8)
1.一种可监管恶意投票的区块链时间锁加密电子投票方法,应用于可监管恶意投票的区块链时间锁加密电子投票系统;其特征在于:所述系统包括投票者User A、投票者客户端Client A、监管机构RA、系统管理者Admin、Web服务器和Fabric区块链网络;所述Fabric区块链网络中的颁发证书机构Fabric-CA作为可信的第三方颁发证书机构;
所述投票者User A,利用所述投票者客户端Client A参加投票;
所述监管机构RA,包括监管者User B和监管客户端Client B,用于对投票者User A的投票行为进行监管以避免恶意投票行为的发生;
所述系统管理者Admin用于部署投票者客户端和智能合约,每次进行投票活动开始前,设定投票者名单、投票主题、投票选择候选项、椭圆曲线参数;其中,所述智能合约,用于操作账本实现数据存储和提取,实现功能业务逻辑;
所述Web服务器,用于处理投票者User A通过投票者客户端发出的请求;
所述Fabric区块链网络,是基于Fabric的具有管理权限的区块链网络;其中,所述Fabric提供了Fabric SDK两种接口模块,分别是访问颁发证书机构Fabairc-CA接口和访问区块链网络接口,前者负责整个网络的节点准入机制、分发证书、交易的数字签名以及验证功能,后者实现智能合约功能的调用;
所述方法包括以下步骤:
步骤1:系统初始化;
智能合约生成主密钥MK、系统公钥PK,区块链地址;系统管理者Admin设置投票主题和投票候选项、投票结果预计公布时间T;根据设置的投票结果预计公布时间T,系统管理者Admin选择合适阶数的椭圆曲线E使得必须花费设置时间T这么长的时间才能解决该椭圆曲线E上的离散对数问题,以实现在设置时间T之后才能公布投票结果,并将对应的时间锁加密解密函数部署在智能合约上;
智能合约设定连接序列功能函数,用于连接投票者User A发送到智能合约上的密钥相关序列;智能合约设定哈希函数He:{0,1}n *—>E,用于将一个01串映射为椭圆曲线上的一个点;
系统管理者Admin部署基于CP-ABE属性加密解密功能函数在智能合约上;
步骤2:用户注册,包括投票者User A注册和监管者UserB注册;
系统为每个注册用户生成唯一的公钥、私钥以及区块链地址,分别作用于投票数据加密、数字签名以及投票记录追溯,
投票者User A根据监管者User B的属性设置访问控制策略PA,用于后续步骤中监管机构RA对投票者User A的投票行为的监管;
步骤3:投票;
投票者User A投票完成后,得到相应的投票数据;投票者的投票数据进行属性加密并上链存储,得到密文CTA (ABE),并将密文作为交易的负载形式Tx(CTA (ABE))发送至区块链网络;投票者的投票数据进行时间锁加密,得到密文CTA (TimeClock),在设置时间T内进行投票数据保护;投票者User A通过投票者客户端Client A对密文CTA (TimeClock)进行签名后发送到区块链网络中,网络节点对发送的交易和签名进行验证,并将包含加密投票数据CTA (TimeClock)的合法交易添加到区块链账本中;
步骤4:监票;
投票数据密文CTA (ABE)交易的区块上链时,整个相应通道的节点需要对上链区块进行同步;在其通道的节点监管者User B通过监管客户端Client B请求区块链网络中包含User A投票数据密文CTA (ABE)的信息来对投票者User A的投票行为进行监督;
步骤5:查票;
经过时间TU,投票者User A通过投票客户端Client A使用查询投票功能,若TU<T,则无法查询到投票结果,返回查询失败;若TU≥T,则时间锁已打开,智能合约调用解密功能函数已获得相应投票数据,智能合约向投票者User A返回相应的投票数据,查询成功;
步骤6:计票;
智能合约对解密得到的各投票者的投票数据按候选项进行累加统计;智能合约将统计结果储存和发布在区块链上,公布候选项对应的投票结果。
2.根据权利要求1所述的可监管恶意投票的区块链时间锁加密电子投票方法,其特征在于,步骤2的具体实现包括以下子步骤:
步骤2.1:监管者User B通过监管客户端Client B发送用户证书请求至Fabric-CA以申请证书;监管者User B的用户证书请求包含监管者User B的属性以及监管者User B的公私钥对(UPKB,USKB);颁发证书机构Fabric-CA为公私钥对(UPKB,USKB)生成相应的证书UcertB,并计算证书UcertB的签名颁发证书机构Fabric-CA还根据监管者User B提供的属性为其生成属性私钥BSK,并利用监管者User B的公钥UPKB对生成的属性私钥BSK进行加密得到密文CTBSK,颁发证书机构Fabric-CA将/>返回给监管者User B;
步骤2.2:投票者User A通过投票客户端Client A发送用户证书请求至颁发证书机构Fabric-CA以申请证书;投票者User A的用户证书请求包含投票者User A的公私钥对(UPKA,USKA),颁发证书机构Fabric-CA为(UPKA,USKA)生成相应的证书UcertA,并计算证书UcertA的签名颁发证书机构Fabric-CA将/>返回给投票者User A。
3.根据权利要求1所述的可监管恶意投票的区块链时间锁加密电子投票方法,其特征在于,步骤3中所述投票者的投票数据进行属性加密并上链存储,具体实现包括以下子步骤:
(1)投票者User A通过投票客户端Client A调用智能合约中的属性加密功能函数对其投票数据MA进行加密,得到密文CTA (ABE),并将密文作为交易的负载形式Tx(CTA (ABE))发送至区块链网络;
(2)区块链网络接收到投票者User A提交的Tx(CTA (ABE)),区块链网络按照交易提案发送给背书节点,对Tx(CTA (ABE))进行背书,背书节点对交易提案的格式、重复性、签名以及交易提交者权限进行验证,然后模拟执行交易并生成背书响应返回给投票者User A,当投票者客户端Client A收到足够的背书响应时,投票者客户端Client A将密文交易Tx(CTA (ABE))封装生成Envelope发送至排序节点进行排序;
(3)排序节点完成排序后生成区块BlockA,并将其发送至特定通道以分发给其中的所有主节点,由主节点进行组织内的区块同步,最终收到交易后各节点验证交易内容和签名,将合法的交易添加到区块链账本中,完成加密投票数据的上链储存,等待监管机构RA中的监管者User B进行访问监管;所述特定通道为监管机构RA中包含的所有监管者所在的通道。
4.根据权利要求1所述的可监管恶意投票的区块链时间锁加密电子投票方法,其特征在于,步骤3中所述投票者的投票数据进行时间锁加密,具体实现包括以下子步骤:
(1)投票者User A生成随机串{0,1}*作为密钥相关序列,通过投票客户端Client A发送到智能合约,智能合约根据设定的连接功能函数进行连接得到所有参与投票者的串联密钥相关序列;n个投票者{User A1,User A2,…,User An}分别生成密钥相关序列之后,智能合约将得到n个投票者的串联密钥相关序列{0,1}n *;
(2)智能合约将n个投票者的串联密钥相关序列{0,1}n *作为哈希函数He:{0,1}n *—>E的输入得到椭圆曲线E上的一个点,将其坐标作为时间锁加密的随机公钥PKP;
(3)智能合约使用随机公共密钥PKP对投票者User A的投票数据MA进行时间锁加密,得到密文CTA (TimeClock)。
5.根据权利要求1所述的可监管恶意投票的区块链时间锁加密电子投票方法,其特征在于,步骤4的具体实现包括以下子步骤:
步骤4.1:监管者User B通过监管客户端Client B与Fabric网络交互,请求区块链网络中包含投票者User A交易密文CTBSK的对应信息,从而得到对应的加密投票数据CTA (ABE);
步骤4.2:监管者User B利用自己的私钥USKB对密文CTBSK进行解密得到自己的属性私钥BSK,然后通过监管客户端Client B对密文CTA (ABE)进行解密,由于User B的属性私钥与密文CTBSK相对应,即属性匹配访问控制策略,则得到明文投票数据MA。
6.根据权利要求1所述的可监管恶意投票的区块链时间锁加密电子投票方法,其特征在于,步骤5的具体实现包括以下子步骤:
步骤5.1:智能合约执行对椭圆曲线E进行Pollard-rho攻击;
步骤5.2:经过时间TU,投票者User A请求查询,若TU<T,则查询失败;若TU≥T,投票客户端Client A通过候选项的区块地址,向区块链网络中的节点请求查询投票数据,投票者User A在服务界面选择查询票数功能与Web服务器交互,然后通过Fabric-SDK接口调用智能合约获取相应的投票数据MA。
7.根据权利要求1-6任意一项所述的可监管恶意投票的区块链时间锁加密电子投票方法,其特征在于:步骤1中所述CP-ABE属性加密解密功能函数,是基于现有的Fabric和Fabric-CA,在Fabric-CA中嵌入CP-ABE实现,即将Fabric-CA作为属性加密方案中的可信第三方,其功能可管理用户所用证书,同时对CP-ABE方案初始化和用户属性私钥BSK的生成和分发。
8.根据权利要求1-6任意一项所述的可监管恶意投票的区块链时间锁加密电子投票方法,其特征在于:步骤2中所述访问控制策略PA,包括3种通用策略;通用策略PA1:通道ID={Channel1,Channel2,…},属于特定通道内的所有用户都可解密;通用策略PA2:通道ID=Channel1)&&(组织ID=Organ{Organ1,Organ2,…},属于特定通道内的特定组织的所有用户都可解密;通用策略PA3:通道ID=Channel1)&&(组织ID=Organ1)&&(用户ID=User{User1,User2,…},属于特定通道内的特定组织中的特定用户都可解密。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210914974.5A CN115473642B (zh) | 2022-08-01 | 2022-08-01 | 可监管恶意投票的区块链时间锁加密电子投票系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210914974.5A CN115473642B (zh) | 2022-08-01 | 2022-08-01 | 可监管恶意投票的区块链时间锁加密电子投票系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115473642A CN115473642A (zh) | 2022-12-13 |
CN115473642B true CN115473642B (zh) | 2024-04-30 |
Family
ID=84367338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210914974.5A Active CN115473642B (zh) | 2022-08-01 | 2022-08-01 | 可监管恶意投票的区块链时间锁加密电子投票系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115473642B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200087913A (ko) * | 2019-01-11 | 2020-07-22 | 서강대학교산학협력단 | 블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템 및 방법 |
CN114255034A (zh) * | 2021-11-09 | 2022-03-29 | 重庆邮电大学 | 一种基于区块链的可验证公平性的电子投票方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210075599A1 (en) * | 2018-06-11 | 2021-03-11 | Douglas J. Pepe | Blockchain voting system and method with audit trail verification |
US11310041B2 (en) * | 2019-04-05 | 2022-04-19 | Arizona Board Of Regents On Behalf Of Arizona State University | Method and apparatus for achieving fine-grained access control with discretionary user revocation over cloud data |
US20220141020A1 (en) * | 2020-11-04 | 2022-05-05 | Gwangju Institute Of Science And Technology | Blockchain e-voting system and operating method thereof |
-
2022
- 2022-08-01 CN CN202210914974.5A patent/CN115473642B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200087913A (ko) * | 2019-01-11 | 2020-07-22 | 서강대학교산학협력단 | 블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템 및 방법 |
CN114255034A (zh) * | 2021-11-09 | 2022-03-29 | 重庆邮电大学 | 一种基于区块链的可验证公平性的电子投票方法 |
Non-Patent Citations (3)
Title |
---|
Leakage-Resilient Attribute-Based Encryption with Fast Decryption: Models, Analysis and Constructions;Mingwu Zhang;《Lecture Notes in Computer Science》;20131231;全文 * |
Private blockchain-envisioned multi-authority CP-ABE-based user access control scheme in IoT;Soumya Banerjee;《Computer Communications》;20211231;全文 * |
基于区块链的安全投票系统设计与实现;颜春辉;游林;;通信技术;20180810(08);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115473642A (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111343001B (zh) | 一种基于区块链的社交数据共享系统 | |
US11689366B2 (en) | Cryptoasset custodial system with vault-specific rules governing different actions allowed for different vaults | |
US11757627B2 (en) | Cryptoasset custodial system with proof-of-stake blockchain support | |
CN110598394B (zh) | 一种权限验证方法、装置和存储介质 | |
US20190273610A1 (en) | Distributed ledger for generating and verifying random sequence | |
EP3997606B1 (en) | Cryptoasset custodial system with custom logic | |
KR102189301B1 (ko) | 블록체인 기반 보안이 강화된 클라우드 서비스 제공 시스템 및 방법 | |
WO2014194601A1 (zh) | 一种公私混合分布式的云存储系统及云存储方法 | |
CN107017984A (zh) | 基于参数的密钥推导 | |
US11829489B2 (en) | Systems and methods for a wearables-based internet-of-things service in an edge-computed blockchain network | |
CN109728903A (zh) | 一种使用属性密码的区块链弱中心密码授权方法 | |
US11838406B2 (en) | Systems and methods for control-data plane partitioning in virtual distributed ledger networks | |
CN111597583B (zh) | 一种基于区块链的数据共享交换方法 | |
CN107302524A (zh) | 一种云计算环境下的密文数据共享系统 | |
CN115883154A (zh) | 访问凭证的颁发方法、基于区块链的数据访问方法及装置 | |
CN113420320A (zh) | 一种数据共享场景下的区块链权限管理方法和系统 | |
Chai et al. | BHE-AC: A blockchain-based high-efficiency access control framework for Internet of Things | |
CN115473642B (zh) | 可监管恶意投票的区块链时间锁加密电子投票系统及方法 | |
Wang et al. | Not yet another digital ID: privacy-preserving humanitarian aid distribution | |
US11954672B1 (en) | Systems and methods for cryptocurrency pool management | |
CN109905365A (zh) | 一种可分布式部署的单点登录及服务授权系统和方法 | |
Rao et al. | VAPKI: A blockchain-based identification system with validation and authentication | |
Vignesh et al. | Secured Data Access and Control Abilities Management over Cloud Environment using Novel Cryptographic Principles | |
CN112819421A (zh) | 一种锥体区块链电子公章系统 | |
CN116166743A (zh) | 一种基于Hyperledger Fabric超级账本的数字资产继承系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |