Document
拖动滑块完成拼图
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于智能合约和分布式Elgamal算法的电子投票方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

摘要:本发明公开了一种基于智能合约和分布式Elgamal算法的电子投票方法,所述电子投票方法具体包括投票合约初始化、投票者注册、投票者投票和系统统计投票结果四个阶段。本方法通过对选票进行环签名,保证了投票参与节点的匿名性。通过检查环签名是否具有链接性,从而检查出双重投票或恶意刷票行为,实现电子投票的一号一票制。通过引入对投票参与节点的身份认证,可抵抗女巫攻击,实现了一人一票制,保障了投票结果的公平、公正和可信度。通过Elgamal加密算法对选票进行加密,提高了选票的机密性,同时基于Elgamal加密算法的同态特性,使得选票不需要解密即可进行选票统计,实现了电子投票系统的快速、定时和准确的计票。

主权项:1.一种基于智能合约和分布式Elgamal算法的电子投票方法,适于应用在基于区块链的电子投票系统中,所述电子投票系统包括一个投票发起节点、一个或多个投票参与节点和作为可信第三方的验证节点;其特征在于,所述电子投票方法包括如下步骤:S1、投票发起节点初始化投票合约,并返回第一公共参数至各个投票参与节点;S2、各个投票参与节点根据所述第一公共参数生成自己的注册信息,并将自己的注册信息发送至投票发起节点,以及将自己的注册信息中的身份ID发送至验证节点;S3、投票发起节点根据各个注册信息分别判断对应的投票参与节点是否合格,并将合格的投票参与节点登记至合格名册,然后分别向各个合格的投票参与节点发送一个投票密钥;其中,所述投票密钥为Elgamal体制密钥;S4、验证节点根据各个投票参与节点的身份ID分别生成环签名所需元组,并将元组发送至对应的投票参与节点;S5、各个合格的投票参与节点根据自己的元组生成自己的环签名;S6、各个合格的投票参与节点生成自己的选票,并基于自己的投票密钥通过Elgamal加密算法对所述选票进行加密;S7、各个合格的投票参与节点使用自己的环签名对自己加密后的选票进行签名,并将环签名后的选票发送至投票发起节点;其中环签名后的选票中包含链接标签;S8、投票发起节点将接收的各个选票发送至验证节点;S9、验证节点判断选票的环签名是否有效、以及判断该选票内的链接标签是否与其他选票内的链接标签相同,若环签名有效且该选票内的链接标签与其他选票内的链接标签不相同,则判定该选票合格,若否,则判定该选票不合格,然后将选票合格或不合格的结果告知投票发起节点;S10、投票发起节点记录合格的选票;S11、若投票发起节点确定当前时刻为投票截止时间,则统计选票并公布选票的统计结果;所述S1中的第一公共参数包括随机大素数q和生成元g,其中,为q阶素数群;所述S2中的注册信息包括公钥和身份ID;其中公钥的生成步骤如下:投票参与节点基于第一公共参数,选取私钥,然后通过Elgamal密钥体制生成公钥,其中,,t为投票参与节点的总数量;所述S3中投票密钥的生成步骤如下:投票发起节点记录各个合格的投票参与节点发送的所有公钥,并根据所有公钥重构得到每个合格的投票参与节点的投票密钥,其中n为合格的投票参与节点的数量,z表示与投票参与节点公钥中的下标i不同的下标序号;所述S4中,验证节点根据各个投票参与节点的身份ID分别生成环签名所需元组的具体步骤如下:S01、选取q阶加法群、q阶乘法群、的一个生成元P和双线性对,其中双线性对为从到的双线性映射;S02、选取哈希函数一、哈希函数二和哈希函数三;其中哈希函数一为SHA-256;哈希函数二,哈希函数二为任意长度的比特串映射到上的哈希函数;哈希函数三,哈希函数为任意长度的比特串映射到上的哈希函数,表示任意长度的比特串;S03、选取k为验证节点私钥,计算验证节点公钥,其中;S04、公布第二公共参数;S05、计算第一中间参数和投票参与节点的私钥,其中为投票参与节点的身份ID;S06、组成环签名所需元组,其中event为投票参与节点自己的投票事件,,W为投票参与节点身份ID的集合,,为投票参与节点自己的权重值;所述S6的具体步骤如下:SS1、各个合格的投票参与节点选择投票选项,得到自己的选票;SS2、各个合格的投票参与节点基于自己的投票密钥,通过Elgamal加密算法生成选票的密文,其中,,j为投票合约中包含的候选人总数量,代表选择第一位候选人,代表选择第二位候选人,依次类推,代表选择第j位候选人;所述S7中,各个合格的投票参与节点使用自己的环签名对自己加密后的选票进行签名的具体步骤如下:SSS1、各个合格的投票参与节点计算自己的投票事件消息摘要和链接标签,其中为各个投票参与节点自己环签名时使用的投票参与节点私钥;SSS2、选取第一随机数R和第二随机数,其中,,;SSS3、计算第二中间参数;SSS4、计算第三中间参数;SSS5、计算第四中间参数,其中;SSS6、计算第五中间参数;SSS7、计算第六中间参数;SSS8、生成签名后的选票,其中;所述S9的具体步骤如下:S001、验证节点计算各个合格的投票参与节点的投票事件消息摘要;S002、计算各个合格的投票参与节点的第二中间参数、第三中间参数和第四中间参数;S003、针对各个合格的投票参与节点验证等式是否成立;若是,则环签名有效,然后执行S004;若否,则环签名无效,然后执行S005;S004、检测每个合格的投票参与节点的选票中的链接标签T是否与其他合格的投票参与节点的选票中的链接标签T相同,若是,则判定该选票为重复投票,然后执行S005;若否,则判定该选票为合格选票,然后执行S006;S005、判定该选票为不合格选票,然后执行S006;S006、将选票合格或不合格的结果发送至投票发起节点;所述S11中,统计选票并公布选票的统计结果的具体步骤如下:S0001、通过计算出投票结果;S0002、通过投票结果计算出候选人票数集合,其中为第一位候选人的票数,为第二位候选人的票数,以此类推,为第j位候选人的票数;S0003、公布选票的统计结果,所述统计结果包含每一位候选人的票数和所有投票参与节点所投的弃权票数量。

全文数据:

权利要求:

百度查询: 西南石油大学 一种基于智能合约和分布式Elgamal算法的电子投票方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。