本发明属于用户通信安全的技术领域,尤其涉及一种基于异构环境下委托股份证明协议的安全共识方法。
背景技术:
公钥密码设施(publickeyinfrastructure,pki),是当前部署传统的公钥密码系统(publickeycryptography,pkc)的主要手段,用户的身份与证书绑定,一个用户的身份与其公钥之间的绑定关系是通过数字证书形式获得的,证书由可信的证书权威机构(certificateauthority,ca)为用户颁发。证书权威机构首先验证用户身份,确认真实性之后,颁发证书。
基于身份加密(identitybasedcryptography,ibc),为了简化证书管理问题,shamir于1984年首次提出了基于身份的公钥密码系统(id-pkc)的概念,指出关于公钥密码系统中密钥真实性问题,可以不使用证书而得到解决。在id-pkc中,每个用户都有一个身份信息,一个用户的公钥直接由他的身份信息推导出,相应的私钥则由可信第三方私钥生成中心(privatekeygeneration,pkg)利用其主密钥为该用户生成。私钥生成中心在证实用户身份后,才会为他计算出相应的私钥并发送给他。与公钥基础设施环境相比,用户的密钥基于用户的身份,不存在证书存储管理以及验证证书合法性问题。
2010年前,用户基于同一种密码系统进行通信,基于公钥基础设施环境,或者基于身份加密环境,或者基于无证书加密环境,但是随着通信技术的发展,全世界的通信方采用不同的密码系统,因此,只在一种环境中通信,无法再满足用户的通信要求。2010年,孙和李提出异构签密思想,进而提出一种基于传统公钥密码系统和基于身份公钥密码系统之间的签密方案,异构签密应用于不同密码系统的通信,实现了异构密码系统之间的通信。
指定验证者签名,指签名者的发送的签名只能被指定的验证者验证,此外,指定的验证者生成签名副本,目的在于使得第三方无法判断签名跟签名副本,但是在验证者收到签名之前,第三方可以判断签名跟签名副本。强指定验证者签名,指验证阶段需要私钥信息,第三方无法验证签名。
名称为“一种安全的pki与ibc之间的双向异构强指定验证者签名方法”的专利中结合异构签密与强指定验证者签名两种技术,与异构签密方案以及同构环境下的指定验证者签名方案相比,一种安全的pki与ibc之间的双向异构强指定验证者方法融合了异构签密和强指定验证者签名,在异构的环境下实现对消息的强指定验证者签名。
现有的已开发区块链中,应用dpos共识协议的区块链居多,并且dpos共识协议的效率高,达成共识的时间短。但是,现有的dpos共识协议中存在贿票、投票不积极的问题。因此,对现有的dpos共识协议做改进,针对其中的投票部分进行细化,解决贿票和投票者不积极的问题。提出一种基于异构环境下委托股份证明协议的安全共识方法,是本领域技术人员需要解决的技术问题。
技术实现要素:
发明目的:针对现有技术中存在的问题,本发明提供一种基于异构环境下委托股份证明协议的安全共识方法,实现公钥基础设施环境与基于身份加密环境之间的异构强指定验证者签名,实现两种密码系统环境下用户的通信。
本发明的技术方案为一种基于异构环境下委托股份证明协议的安全共识方法,包括以下步骤:
步骤1:节点注册得到普通节点,通过检查权益得到权益持有者节点;注册节点扫描得到权益持有者节点的名单跟证人候选者节点的名单;查询地址,得到发送空白选票的确认。添加数据项,得到空白选票;注册节点通过扫描方法,扫描权益持有者节点的基本信息得到权益持有者节点的名单,将其发送给计票节点。
步骤2:权益持有者节点通过投票的方式,选择证人候选者节点的名单中的一个证人候选者节点,结果是其中的一个证人候选者节点被投票选中,得到填充数据项完整的选票;权益持有者节点得到一个生成的签名后,将发送该签名跟选票给计票节点。
步骤3:计票节点通过处理选票的方法处理重复的选票、无效的选票得到计票的结果;根据计票的结果,公布此选票结果、选票跟签名选票跟签名副本;
步骤4:根据区块构建区块链。
作为优选,步骤1所述节点注册得到普通节点,通过检查权益得到权益持有者节点,具体为:
在p2p网络中注册后成为一个普通节点。通过判断token的方法,根据普通节点的token大于0,决定角色转化为权益持有者节点,从而得到权益持有者节点。其中,token表示权益。
步骤1所述注册节点扫描得到证人候选者节点的名单,具体为:
注册节点通过扫描方法,扫描证人候选者节点的信息后得到证人候选者节点的名单listw。其中,listw表示证人候选者节点的名单;
步骤1所述添加数据项,具体为:
权益持有者节点通过添加数据项的方法,将listw添加到权益持有者节点生成的空白选票的数据结构中,得到包含listw的电子选票;其中,listw表示证人候选者节点的名单。
步骤1所述空白选票,具体为:
权益持有者节点发送自己的address给注册节点。注册节点通过查询权益持有者节点的token方法来判断是否发送空白选票,若token大于0,发送空白选票;否则,不发送。其中,address表示权益持有者节点的地址,token表示权益。
步骤1所述权益持有者节点的名单为lists;
作为优选,所述步骤2具体如下:
步骤2.1:权益持有者节点利用自己手中的空白电子选票,选择一个证人候选者节点,设置状态位为1,系统自动生成时间戳,得到填充数据项完整的选票;
步骤2.2:权益持有者节点利用公钥以及权益持有者节点的私钥生成一个签名后,将发送该签名跟选票即(s,ballot)给计票节点;
其中,ballot表示数据项填充完整的电子选票。
其中,s=(σ,m)表示权益持有者节点生成的签名,σ=sig(pks,sks,pkc)表示权益持有者节点生成的签名的第一部分,m表示权益持有者节点生成的签名的第二部分;
作为优选,步骤3所述计票节点通过处理选票的方法处理重复和无效的选票,具体如下:
计票节点通过对选票的统计结果按照票数高低进行排序,得到排序后的统计结果,选出此排序结果中的前n个证人候选者节点作为证人节点。其中,n表示证人节点的个数;
计票节点验证权益持有者节点的签名的有效性,根据权益持有者节点的签名s,s=(σ,m),σ=sig(pks,sks,pkc)是否通过验证作为判断依据。根据签名验证是否通过,判断签名是否由权益持有者生成;
若验证成功,签名是由权益持有者节点生成;若验证失败,签名不是由s生成。结果是签名的真实性得到验证。其中,s=(σ,m)表示权益持有者节点生成的签名,σ=sig(pks,sks,pkc)表示权益持有者节点生成的签名的第一部分,m表示权益持有者节点生成的签名的第二部分;
步骤3所述根据计票的结果,公布此选票结果、选票跟签名选票跟签名副本,具体为:
签名验证成功后,计票节点根据权益持有者节点的权重计算,得到总的计票数。
统计选票结束后,计票节点公开计票结果,投票过程的选票和签名,选票连同签名副本。得到公开的计票结果,投票过程的选票和签名,选票连同签名副本;
作为优选,步骤4所述根据区块构建区块链,具体如下:
步骤4.1:将证人节点按照一个顺序排列,得到一个排序后的证人节点。
步骤4.2:在规定的时间内,每个证人按照顺序参与生产区块时,得到一个区块,否则,顺序后的第二个证人节点参与生产区块,得到一个区块。
步骤4.3:步骤4.2生产得到的区块按照顺序传递给下一个证人节点,被超过2/3的证人节点确认后,得到不可逆转区块,也叫做上链区块。
本发明的主要益处在于:在异构密码系统环境下,本发明利用异构强指定验证者签名,实现对选票的强指定验证者签名,从而验证了投票者的身份,选票跟签名以及选票跟签名副本公开,解决了贿赂投票的问题。并且实现安全通信的认证性、秘密性、匿名性、公平性、可验证性、抗威胁性和无收据性,达到一定的安全和隐私要求。
附图说明
图1:摘要附图。
图2:实施例的整体设计。
图3:实施例的注册阶段。
图4:实施例的投票阶段。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例为:若权益持有者节点处于公钥基础设施密码系统,计票节点处于基于身份加密密码系统;
本发明涉及的实施例具体步骤为一种基于异构环境下委托股份证明协议的安全共识方法,包括以下步骤:
步骤1:注册阶段,节点注册得到普通节点,通过检查权益得到权益持有者节点;注册节点扫描得到权益持有者节点的名单跟证人候选者节点的名单;查询地址,得到发送空白选票的确认。添加数据项,得到空白选票;注册节点通过扫描方法,扫描权益持有者节点的基本信息得到权益持有者节点的名单,将其发送给计票节点。
步骤1所述节点注册得到普通节点,通过检查权益得到权益持有者节点,具体为:
在p2p网络中注册后成为一个普通节点。通过判断token的方法,根据普通节点的token大于0,决定角色转化为权益持有者节点,从而得到权益持有者节点。其中,token表示权益。
步骤1所述注册节点扫描得到证人候选者节点的名单,具体为:
注册节点通过扫描方法,扫描证人候选者节点的信息后得到证人候选者节点的名单listw。其中,listw表示证人候选者节点的名单;
步骤1所述添加数据项,具体为:
权益持有者节点通过添加数据项的方法,将listw添加到权益持有者节点生成的空白选票的数据结构中,得到包含listw的电子选票;其中,listw表示证人候选者节点的名单。
步骤1所述空白选票,具体为:
权益持有者节点发送自己的address给注册节点。注册节点通过查询权益持有者节点的token方法来判断是否发送空白选票,若token大于0,发送空白选票;否则,不发送。其中,address表示权益持有者节点的地址,token表示权益。
步骤1所述权益持有者节点的名单为lists;
步骤2:投票阶段,权益持有者节点通过投票的方式,选择证人候选者节点的名单中的一个证人候选者节点,结果是其中的一个证人候选者节点被投票选中,得到填充数据项完整的选票;权益持有者节点得到一个生成的签名后,将发送该签名跟选票给计票节点。
所述步骤2具体如下:
步骤2.1:权益持有者节点利用自己手中的空白电子选票,选择一个证人候选者节点,设置状态位为1,系统自动生成时间戳,得到填充数据项完整的选票;
步骤2.2:权益持有者节点利用公钥以及权益持有者节点的私钥生成一个签名后,将发送该签名跟选票即(s,ballot)给计票节点;
其中,ballot表示数据项填充完整的电子选票。
其中,s=(σ,m)表示权益持有者节点生成的签名,σ=sig(pks,sks,pkc)表示权益持有者节点生成的签名的第一部分,m表示权益持有者节点生成的签名的第二部分;
步骤3:计票阶段,计票节点通过处理选票的方法处理重复的选票、无效的选票得到计票的结果;根据计票的结果,公布此选票结果、选票跟签名选票跟签名副本;
步骤3所述计票节点通过处理选票的方法处理重复和无效的选票,具体如下:
计票节点通过对选票的统计结果按照票数高低进行排序,得到排序后的统计结果,选出此排序结果中的前n个证人候选者节点作为证人节点。其中,n表示证人节点的个数;
计票节点验证权益持有者节点的签名的有效性,根据权益持有者节点的签名s,s=(σ,m),σ=sig(pks,sks,pkc)是否通过验证作为判断依据。根据签名验证是否通过,判断签名是否由权益持有者生成;
若验证成功,签名是由权益持有者节点生成;若验证失败,签名不是由s生成。结果是签名的真实性得到验证。其中,s=(σ,m)表示权益持有者节点生成的签名,σ=sig(pks,sks,pkc)表示权益持有者节点生成的签名的第一部分,m表示权益持有者节点生成的签名的第二部分;
步骤3所述根据计票的结果,公布此选票结果、选票跟签名选票跟签名副本,具体为:
签名验证成功后,计票节点根据权益持有者节点的权重计算,得到总的计票数。
统计选票结束后,计票节点公开计票结果,投票过程的选票和签名,选票连同签名副本。得到公开的计票结果,投票过程的选票和签名,选票连同签名副本;
步骤4:生产区块阶段,根据区块构建区块链。
步骤4所述根据区块构建区块链,具体如下:
步骤4.1:将证人节点按照一个顺序排列,得到一个排序后的证人节点。
步骤4.2:在规定的时间内,每个证人按照顺序参与生产区块时,得到一个区块,否则,顺序后的第二个证人节点参与生产区块,得到一个区块。
步骤4.3:步骤4.2生产得到的区块按照顺序传递给下一个证人节点,被超过2/3的证人节点确认后,得到不可逆转区块,也叫做上链区块。
本发明实现认证性、秘密性、匿名性、公平性、抗威胁性、可验证性、无收据性等属性,达到了一定的安全和隐私要求,其说明如下:
认证性:对实体之间发送消息的认证,注册节点与权益持有者节点之间可以实现相互认证性,权益持有者节点与计票节点之间可以实现相互认证性,注册节点与计票节点之间可以实现相互认证性。所以,本发明实现认证性。
秘密性:私钥是非公开信息,生成签名跟验证签名的过程都需要私钥信息,私钥不会被第三方获取。所以,本发明实现秘密性。
匿名性:投票过程中,权益持有者节点发送签名以及填充后的票,不直接涉及到身份。票公布后,无法证明自己的投票内容。所以,本发明实现匿名性。
公平性:采取的计票方式是投票的时间戳截止后,对收到选票做统计处理并计票,因此,在选票和统计结果公开之前,没有人知道投票的中间结果。所以,本发明实现公平性。
抗威胁性:没有收据证明投票是某一张,无法向第三方证明。所以,本发明实现抗威胁性。
可验证性:签名跟选票以及签名副本跟选票的公开,权益持有者节点可以检查自己发送的签名跟选票。所以,本发明实现可验证性。
无收据性:签名跟选票公开,计票节点产生签名副本,签名与签名副本s’都可以被验证成功。首先,第三方没有计票节点的私钥,不能验证签名或者签名副本;其次,即使权益持有者被贿赂或者威胁,给a投票,但是没有证据可以证明选票是自己投的,权益持有者节点只知道自己生成的签名是哪个,但是无法向第三方证明这一点,因为有两个签名,第三方不知道哪个是真是假。贿赂失败。所以,本发明实现匿名性、公平性、可验证性、抗威胁性、无收据性等属性,达到了一定的安全和隐私要求。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.一种基于异构环境下委托股份证明协议的安全共识方法,其特征在于,包含以下步骤:
步骤1:节点注册得到普通节点,通过检查权益得到权益持有者节点;注册节点扫描得到权益持有者节点的名单跟证人候选者节点的名单;查询地址,得到发送空白选票的确认;添加数据项,得到空白选票;注册节点通过扫描方法,扫描权益持有者节点的基本信息得到权益持有者节点的名单,将其发送给计票节点;
步骤2:权益持有者节点通过投票的方式,选择证人候选者节点的名单中的一个证人候选者节点,结果是其中的一个证人候选者节点被投票选中,得到填充数据项完整的选票;权益持有者节点得到一个生成的签名后,将发送该签名跟选票给计票节点;
步骤3:计票节点通过处理选票的方法处理重复的选票、无效的选票得到计票的结果;根据计票的结果,公布此选票结果、选票跟签名选票跟签名副本;
步骤4:根据区块构建区块链。
2.根据权利要求1所述的基于异构环境下委托股份证明协议的安全共识方法,其特征在于:
步骤1所述节点注册得到普通节点,通过检查权益得到权益持有者节点,具体为:
在p2p网络中注册后成为一个普通节点;通过判断token的方法,根据普通节点的token大于0,决定角色转化为权益持有者节点,从而得到权益持有者节点;其中,token表示权益;
步骤1所述注册节点扫描得到证人候选者节点的名单,具体为:
注册节点通过扫描方法,扫描证人候选者节点的信息后得到证人候选者节点的名单listw;其中,listw表示证人候选者节点的名单;
步骤1所述添加数据项,具体为:
权益持有者节点通过添加数据项的方法,将listw添加到权益持有者节点生成的空白选票的数据结构中,得到包含listw的电子选票;其中,listw表示证人候选者节点的名单;
步骤1所述空白选票,具体为:
权益持有者节点发送自己的address给注册节点;注册节点通过查询权益持有者节点的token方法来判断是否发送空白选票,若token大于0,发送空白选票;否则,不发送;其中,address表示权益持有者节点的地址,token表示权益;
步骤1所述权益持有者节点的名单为lists。
3.根据权利要求1所述的基于异构环境下委托股份证明协议的安全共识方法,其特征在于:
所述步骤2具体如下:
步骤2.1:权益持有者节点利用自己手中的空白电子选票,选择一个证人候选者节点,设置状态位为1,系统自动生成时间戳,得到填充数据项完整的选票;
步骤2.2:权益持有者节点利用公钥以及权益持有者节点的私钥生成一个签名后,将发送该签名跟选票即(s,ballot)给计票节点;
其中,ballot表示数据项填充完整的电子选票;
其中,s=(σ,m)表示权益持有者节点生成的签名,σ=sig(pks,sks,pkc)表示权益持有者节点生成的签名的第一部分,m表示权益持有者节点生成的签名的第二部分。
4.根据权利要求1所述的基于异构环境下委托股份证明协议的安全共识方法,其特征在于:
步骤3所述计票节点通过处理选票的方法处理重复和无效的选票,具体如下:
计票节点通过对选票的统计结果按照票数高低进行排序,得到排序后的统计结果,选出此排序结果中的前n个证人候选者节点作为证人节点;其中,n表示证人节点的个数;
计票节点验证权益持有者节点的签名的有效性,根据权益持有者节点的签名s,s=(σ,m),σ=sig(pks,sks,pkc)是否通过验证作为判断依据;根据签名验证是否通过,判断签名是否由权益持有者生成;
若验证成功,签名是由权益持有者节点生成;若验证失败,签名不是由s生成;结果是签名的真实性得到验证;其中,s=(σ,m)表示权益持有者节点生成的签名,σ=sig(pks,sks,pkc)表示权益持有者节点生成的签名的第一部分,m表示权益持有者节点生成的签名的第二部分;
步骤3所述根据计票的结果,公布此选票结果、选票跟签名选票跟签名副本,具体为:
签名验证成功后,计票节点根据权益持有者节点的权重计算,得到总的计票数;
统计选票结束后,计票节点公开计票结果,投票过程的选票和签名,选票连同签名副本;得到公开的计票结果,投票过程的选票和签名,选票连同签名副本。
5.根据权利要求1所述的基于异构环境下委托股份证明协议的安全共识方法,其特征在于:
步骤4所述根据区块构建区块链,具体如下:
步骤4.1:将证人节点按照一个顺序排列,得到一个排序后的证人节点;
步骤4.2:在规定的时间内,每个证人按照顺序参与生产区块时,得到一个区块,否则,顺序后的第二个证人节点参与生产区块,得到一个区块;
步骤4.3:步骤4.2生产得到的区块按照顺序传递给下一个证人节点,被超过2/3的证人节点确认后,得到不可逆转区块,也叫做上链区块。
技术总结