买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:复旦大学
摘要:本发明属于区块链技术领域,具体为基于部分盲签名和区块链技术的电子投票系统。本发明主要服务于区块链技术,研究分析Zaghloul等人提出的电子投票协议存在匿名方面的漏洞,融入基于身份的部分盲签名提出一种新的匿名和抗胁迫的电子投票协议并应用于电子投票系统,解决了原电子投票协议需要通过不同的政党进行安全多政党计算来实现匿名性的不便以及潜在的威胁漏洞。本发明中的电子投票协议主要分为7个参与方,分别为投票者、注册员、认证机构、主持人、选举候选人、区块链网络以及计票机构。
主权项:1.基于部分盲签名与区块链的匿名和抗胁迫电子投票系统,所述电子投票系统包括投票者、注册员、认证机构、主持人、选举候选人、区块链网络和计票机构,其特征在于:所述投票者是在选举投票中被授予投票权利的一个合格选民的集合:{vi∈γ|1≤i≤n},用vi代表投票者;所述注册员是一个实体,它会生成唯一、随机的数字选票,并以匿名方式与选民共享,用代表注册员;所述认证机构是一个实体,为避免注册员既要注册又要认证,权力太过于集中,因此为达到去中心化添加一个认证机构CA,它会对投票者vi进行基于身份的部分盲签名认证,认证通过的投票者vi会获取新的公私钥对来实现匿名性,可以用CA代表认证机构;所述主持人是一个独立的实体,负责对投票者vi的身份进行二次加密隐藏,并匿名地让他们发送注册员加密的选票,用代表主持人;所述选举候选人为人或事物,即能够参加被选举投票的合格候选人,用一个集合来存放表示:{candk∈C|1≤k≤m},用candk代表候选人;所述区块链网络是一个不受信任的点对点P2P网络作为区块链网络,它维护了一个公开可访问的区块链并能够运行选举智能合约;所述计票机构是作为可信任的第三方,计票机构是一个在投票阶段结束后,进行计票的机构;所述电子投票系统具体操作如下:1.投票者注册阶段,选民登记,是指投票者向注册员证明其是否是合格的选民,证明其投票资格的初步阶段;投票者提供选举规定的必要证据,一旦被注册员确认资格,注册员就会把投票者加入到合格选民集合γ中:1.1注册员密钥生成:注册员需要一对签名密钥对,以便在将合格选民添加到合格选民集合γ时对选民身份进行签名认证;注册员随机选择一个密钥是1到p-1的整数集合并计算出对应的公钥为得到注册员的签名密钥对xr,yr;1.2投票者密钥生成和登记:投票者vi必须拥有与其选举身份对应的投票密钥对,因此投票者vi随机选择密钥并计算出对应的公钥为得到投票者的投票密钥对xi,yi;为了进行投票者注册,投票者和注册员需要共享他们各自的公钥;1.3签署投票者公钥:为了授予投票者投票权,注册员首先验证投票者的资格,然后在将合格投票者添加到合格选民集合前需要签署注册员的公钥;注册员随机选择ui,其中1uip-1并且gcdui,p-1gcd意为求最大公因数,然后进行如下计算: 其中:g是的一个生成元,是一个公开可选择的乘法循环群,p是该乘法循环群的素数阶,Hash是一个哈希函数,wi,si是签名,ui是随机数,xr是注册员密钥,yi是投票者公钥;在投票者注册阶段结束时,注册员会公开公布合格选民集合;2.投票者身份认证并获取新身份阶段,认证身份并拿到新身份,是指投票者向认证机构CA证明其是否是合格的投票者,证明其投票资格,认证通过后对投票者的新身份进行盲签名;2.1系统参数设置:首先是对系统参数的生成:2.1.1.选择一个四元组{Fρ,EFρ,G,P};其中ρ是k位的质数;Fρ是q阶的素数域;EFρ是一组椭圆曲线的点集合;G是椭圆曲线上的加法循环群;P是G的生成元;2.1.2.随机选择用来计算系统主私钥,PPub=xP作为系统的主公钥;2.1.3.选择三个哈希函数: 其中:是1到p的整数,{0,1}*中的代表0或1的任意多次,G是椭圆曲线上的加法循环群;2.1.4.最后将系统主私钥x保密存放并输出全局系统参数: 其中:EFρ是一组椭圆曲线的点集合;G是椭圆曲线上的加法循环群;P是G的生成元,Fρ是q阶的素数域,PPub是系统的主公钥,H0,H1,H2代表三个哈希函数;2.2密钥提取:是对认证机构CA公私钥对的生成,以便后面进行盲签名,具体分为两步:2.2.1.认证机构CA将其身份IDCA通过一个安全信道传输给PKG,然后PKG会先随机选择一个并进行如下计算:RCA=rCAP#18hCA=H0IDCA,RCA#19其中:P是G的生成元,rCA是中的随机数,H0是一个哈希函数,IDCA是认证机构的身份标识;2.2.2.再计算出私钥dCA=rCA+hCAx;可信任第三方PKG会将dCA,RCA通过安全信道传输给认证机构CA,并且认证机构C的公钥PCA=RCA+hCAPPub;认证机构CA会根据判断如下等式是否成立来决定是否接收dCA,RCA,若不成立则不接收;PCA=dCAP=RCA+hCAPPub#20其中:RCA、hCA是前一步计算出的中间参数,PPub是系统的主公钥;2.3基于身份的部分盲签名:认证机构的身份是IDCA,投票者的身份是IDi,需要被盲签名的消息m={xi′,yi′}是投票者新的身份认证机构CA与投票者同意的公共信息是C={yi,wi,si},然后会经历以下几个步骤:2.3.1首先由于C是公共信息,当投票者vi将公共信息发送给认证机构CA后,CA会通过认证以下等式是否有效成立,若成立则说明投票者vi是合法的投票者,若不成立则说明非法不予执行后续步骤; 其中:yi是投票者的公钥,wi,si是注册员生成的签名对,p是质数;2.3.2经过第一步认证通过后,认证机构CA会随机选择一个数然后计算出S=H2C[PCA+sP],认证机构CA将S,RCA发送给需要进行身份认证以及获取新身份的投票者vi;2.3.3当投票者vi接收到S,RCA后,vi会随机选择三个数并且计算:E=αS+βP+γ[RCA+H0IDCA,RCAPPub]=αS+βP+γPCA#22l=H1m,E,C#23g=α-1γ+l+H2C#24其中:α,β,γ是三个随机数,H0、H1、H2均是哈希函数,C是公共信息;投票者将g发送给认证机构CA;2.3.4当认证机构CA收到g后会计算δ=gdCA+sH2C,并把δ发回给投票者;2.3.5投票者vi收到δ后计算ε=αδ+β,最后得出最终的基于身份的部分盲签名是λ=m,C,RCA,E,ε;3.投票者获取选票阶段,投票者获取选票,3.1选票生成:注册员生成n张唯一的随机数字选票并使用ElGamal数字签名方案对这些选票进行数字签名;这些签名集合用表示;然后对该集合进行π置换: 其中:为签名集合;3.2投票者重排列:主持人作为一个中间人,在投票者vi请求获取投票时会帮助vi的新身份i′进行二次加密,隐藏vi的身份,并且帮助实现抗胁迫性;会生成一个一组由N个唯一数字的一次性排列集进行二次打乱顺序,防止投票者vi的新身份i′也泄露;3.3认证机构签名验证:投票者vi首先将认证阶段获取的认证结构CA的盲签名λ=m,C,RCA,E,ε,由于其中m的信息包括了投票者vi新的公私钥对,因此不能直接暴露给公共信息C包括了vi初始的公钥以及注册员的签名对,因此不能直接暴露给所以需要进行如下的加工,生成λ′=H1m,E,C,RCA,E,ε传给主持人进行签名认证:判断等式εP=E+H1m,E,CPCA是否成立,若成立则表示验证通过可以继续执行以下的流程,若不成立则不予通过;3.4投票者新身份模糊:认证通过后,投票者vi会向传递其新的公钥yi′,随机选择一个数并计算出 其中:g是的一个生成元,xi′为投票者新私钥,p是乘法循环群的素数阶,bi为模糊因子;3.5选票分配和加密:注册员收到经由主持人转发后的投票者获取选票请求,包括σi′和yi″;收到后会将选票随机分配给匿名投票者,具体方式如下:bali=πσi′,在将选票bali通过发送给投票者之前,要用一个加密密钥ki对选票进行加密: 其中:是一个随机数,xi′为投票者新私钥,p是乘法循环群的素数阶,bi为模糊因子,g是的一个生成元,是一个公开可选择的乘法循环群;加密选票: 其中:AES-Enc是AES对称加密算法,ki是对称加密密钥,bali为未加密选票,这样能够使得将选票匿名地分配给投票者,且选票内容是加密的,对主持人也是不可见的;为此会生成一个短暂的密钥而且在解密选票的时候允许投票者能重新生成加密密钥ki;3.6加密选票传输:主持人收到密钥Qi和加密后的选票ebali后,为了投票者能够计算出bi将计算出一个密文: 其中:bi是投票者新身份模糊阶段的随机数,也是一个随机数,yi′为投票者新公钥,g是的一个生成元;3.7获得选票:投票者vi收到主持人传来的密文ebi后首先就会通过密文ebi计算出随机数: 其中:yi′为投票者新公钥,xi′为投票者新私钥,rm为随机数,g是的一个生成元;然后投票者根据密钥Qi重新生成对称加密密钥最后解密出其中AES-Dec是AES的解密方法;4.投票者投票阶段,投票者投票,是指获得选票后的投票者可以进行选举投票,4.1选票加密:投票者首先对投票相关联的选票进行加密,用注册员的公钥和主持人的公钥加密,表示为Bi,如下所示: 其中:v是随机选择的数字且为注册员公钥,为主持人公钥,T代表T=bali∥Vote,T中的Vote是指所有候选人的位序列Vote=cand1,cand2,cand3,…,candm,对应如下表达式: 其中:candk表示对应候选人;4.2提交投票:投票者vi触发选举投票的智能合约SCvote并且将选票加密阶段的输出选票加密对c3,c4集成Bi作为智能合约的输入;由于智能合约的特性,一旦智能合约运行后,运行的结果将会被加入区块链中去,投票将被永久存储;5.计票机构计票阶段,在投票阶段结束后,计票机构就会进行计票;计票机构将在此阶段出现在区块链上的投票收集起来进行验证和计数:制表:为了进行验证,注册员将会公开他的密钥同理,也需要公开主持人的密钥只用于计票阶段解密计票,且每次选举主持人都会重新生成新的公私钥对;并且注册员还会公开一种新的排列置换其中包含在投票者获取选票阶段分配给投票者的所有选票,计票机构将对区块链上的选票进行如下解密: 其中:c3,c4为投完票后的加密选票,为注册员公钥,为主持人公钥,为注册员私钥,为主持人私钥;如果bali∈γ,那么计票机构就会检查选票所附的投票位序列,并相应地增加对应所投候选人的票数;6.投票者验证选票阶段,投票验证,是指投票者可以验证核实最终的投票结果中是否包含他们的投票;在计票机构计票阶段结束时,计票机构会在区块链上公布选举的结果;每一次选举都会公布相应的选票,作为结果合法性的证明;投票者确认他们自己的选票是否投出并被统计。
全文数据:
权利要求:
百度查询: 复旦大学 基于部分盲签名与区块链的匿名和抗胁迫电子投票系统
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。