基于格密码的联盟链多重签名交易方法及装置

文档序号:33703497发布日期:2023-03-31 20:36阅读:70来源:国知局
基于格密码的联盟链多重签名交易方法及装置

1.本发明涉及数字签名技术领域,尤其涉及一种基于格密码的联盟链多重签名交易方法及装置。


背景技术:

2.区块链是一种去中心化、可追溯与不可篡改的分布式数据库,包含密码学算法、共识机制、分布式点对点网络、智能合约等多种技术,广泛应用于数字货币、医疗大数据共享、供应链网络等多种场景中。按照差异化的应用场景及用户需求,区块链分为公有链、私有链和联盟链。其中联盟链通常应用于多个机构或组织构成的网络中,在隐私保护与效率方面优于公有链,在去中心化程度与使用场景范围方面优于私有链,因此成为近年来主流应用场景使用的区块链网络模式。
3.联盟链的典型代表是linux基金会旗下的超级账本(hyperledger)项目,其中fabric是hyperledger项目的主流子项目,成为大多数联盟链交易方案的依托架构。然而,相关联盟链交易方案存在安全和性能两方面的问题。一方面,相关技术一般使用传统椭圆曲线数字签名技术,由于shor量子算法能够在多项式时间内求解椭圆曲线离散对数问题,因此相关技术无法抵抗量子计算攻击,在安全性方面有所欠缺;另一方面,由于联盟链交易方案要求遵循背书策略,用户发起交易后需要收集足够的交易签名背书才能进行交易共识上链,因此,随着交易提案和背书节点规模增大,联盟链网络的计算压力随之增大,存储空间随之减小,相关技术存在性能方面的不足。


技术实现要素:

4.鉴于此,本发明实施例提供了一种基于格密码的联盟链多重签名交易方法及装置,以消除或改善现有技术中存在的一个或更多个缺陷,解决现有联盟链交易方法中存在安全隐患和性能不足的问题。
5.一方面,本发明提供一种基于格密码的联盟链多重签名交易方法,其特征在于,所述方法在联盟链网络上运行,所述联盟链网络包括用户、可信密钥生成中心、客户端节点、预设背书策略指定的背书节点、排序节点和验证节点;所述方法包括以下步骤:
6.所述用户基于预设置的联盟链网络通过所述客户端节点发起交易;其中,所述预设置包括:所述可信密钥生成中心采用第一预设格密码算法生成系统主密钥以及公共参数,所述公共参数包括所述背书节点的数量、ntru环多项式和多个哈希函数;根据各背书节点的身份标识信息利用所述哈希函数计算哈希值,作为各背书节点的用户公钥;根据所述用户公钥和所述主密钥采用第二预设格密码算法计算得到第一环多项式向量和第二环多项式向量,并将所述第一环多项式向量和所述第二环多项式向量作为各背书节点的用户私钥;
7.所述客户端节点作为根节点、所述背书节点作为子节点构建多层生成树,各背书节点根据所述用户公钥和所述ntru环多项式计算部分承诺值,自下而上地向上层节点发送
各背书节点的部分承诺值和用户公钥,并计算部分聚合承诺值集合和部分聚合用户公钥集合;所述客户端节点根据所述部分聚合承诺值集合、所述部分聚合用户公钥集合、相应的交易内容以及各背书节点的身份标识信息计算最终聚合承诺值和最终聚合用户公钥,并根据所述最终聚合承诺值、所述最终聚合用户公钥以及相应的交易内容构建交易提案,发送至各背书节点;
8.各背书节点模拟执行所述交易提案得到模拟交易结果,并根据各自的用户私钥以及所述最终聚合承诺值计算部分签名响应值,采用第三预设格密码算法根据所述部分签名响应值计算各背书节点的签名能够正确输出的概率值,自下而上地向上层节点发送各背书节点的部分签名响应值以及签名,并计算部分聚合签名响应值集合;所述客户端根据所述部分聚合签名响应值集合计算最终聚合签名响应值,并得到各背书节点签名构成的多重签名;所述多重签名包括所述交易提案、所述最终聚合签名响应值以及所述最终聚合承诺值;
9.所述客户端节点利用所述交易提案、所述最终聚合用户公钥和各背书节点的身份标识信息对所述多重签名中的最终聚合签名响应值以及最终聚合承诺值进行验证,验证通过的情况下,将所述交易提案和所述多重签名打包发送至所述排序节点;
10.所述排序节点按照预设规则将在预设时间内接收到的交易进行排序,将排序后的批量交易打包成数据区块全网广播至所述验证节点;
11.在所述验证节点对所述数据区块中每个交易的交易提案和多重签名中的最终聚合签名响应值以及最终聚合承诺值进行验证,验证通过的情况下,所述联盟链网络更新账本,完成交易。
12.在本发明的一些实施例中,所述可信密钥生成中心采用第一预设格密码算法生成系统主密钥以及公共参数,还包括以下步骤:
13.所述联盟链网络设置系统安全参数、所述背书节点的数量以及两个哈希函数;
14.初始化一个ntru格,基于所述第一预设格密码算法生成ntru环多项式和ntru优质短格基;
15.将所述ntru优质短格基作为所述主密钥,将所述ntru格的参数、所述背书节点的数量、两个哈希函数以及所述ntru环多项式作为所述公共参数;
16.其中,所述第一预设格密码算法为格基陷门生成算法,计算式为:
17.trapgen
ntru
(n,q,σ);
18.其中,trapgen
ntru
表示ntru格基陷门生成算法;n,q,σ分别表示所述ntru格设置的整数、素数和标准差。
19.在本发明的一些实施例中,根据所述用户公钥和所述主密钥采用第二预设格密码算法计算得到第一环多项式向量和第二环多项式向量,所述第二预设格密码算法为格基高斯采样算法,计算式为:
20.gaussian-sampler
ntru
,σ,(pki,0));
21.其中,gaussian-sampler
ntru
表示格基高斯采样算法;b表示所述主密钥;σ表示所述ntru格设置的标准差;pki表示第i个背书节点的用户公钥。
22.在本发明的一些实施例中,所述客户端节点作为根节点、所述背书节点作为子节点构建多层生成树,还包括:
23.所述背书节点以所述客户端节点为根节点自上至下依次有第一层背书节点、第二
层背书节点和第三层背书节点;所述客户端节点连接多个第一层背书节点,每个第一层背书节点连接多个第二层背书节点,每个第二层背书节点连接多个第三层背书节点。
24.在本发明的一些实施例中,各背书节点根据所述用户公钥和所述ntru环多项式计算的部分承诺值,自下而上地向上层节点发送各背书节点的部分承诺值和用户公钥,并计算部分聚合承诺值集合和部分聚合用户公钥集合,还包括以下步骤:
25.各背书节点随机选择两个与所述用户公钥具有相同分布的第三环多项式向量和第四环多项式向量;
26.各背书节点根据所述ntru环多项式、所述第三环多项式向量和所述第四环多项式向量计算所述部分承诺值;
27.所示第二层背书节点将所述部分承诺值和所述用户公钥发送至所述第一层背书节点;所述第二层背书节点根据接收到的所述第三层背书节点的部分承诺值和用户公钥计算部分聚合承诺值和部分聚合用户公钥,并发送至所述第一层背书节点;
28.所述第一层背书节点结合所有背书节点的部分聚合承诺值集合和部分聚合用户公钥集合发送至客户端节点。
29.在本发明的一些实施例中,根据各自的用户私钥以及所述最终聚合承诺值通过第三预设格密码算法生成计算部分签名响应值,自下而上地向上层节点发送各背书节点的部分签名响应值,并计算部分聚合签名响应值集合,还包括以下步骤:
30.所述第二层背书将所述部分签名响应值发送至所述第一层背书节点;所述第二层背书节点根据接收到的所述第三层背书节点计算部分聚合签名响应值,并发送至所述第一层背书节点;
31.所述第一层背书节点结合所有背书节点部分聚合签名响应值集合发送至所述客户端节点。
32.在本发明的一些实施例中,根据各自的用户私钥以及所述最终聚合承诺值计算部分签名响应值,采用第三预设格密码算法根据所述部分签名响应值计算各背书节点的签名能够正确输出的概率值,所述第三预设格密码算法为格基拒绝采样定理,所述概率值的计算式为:
[0033][0034]
其中,min(
·
)表示求最小值;d表示概率分布;n和σ分别表示所述ntru格设置的整数和标准差;zi表示所述部分签名响应值;m为常数;s
i,0
表示所述第一环多项式向量;s
i,1
表示所述第二环多项式向量;r表示所述最终聚合承诺值。
[0035]
在本发明的一些实施例中,所述客户端节点利用所述交易提案、所述最终聚合用户公钥和各背书节点的身份标识信息对所述多重签名中的最终聚合签名响应值以及最终聚合承诺值进行验证,验证通过需同时满足:
[0036][0037]
r=h2(z0+z1*h-r*pk,id,tx);
[0038]
其中,z表示最终聚合签名响应值;z0表示第一最终聚合签名响应值,z1表示第二最终聚合签名响应值,z由z0和z1组成;n表示所述背书节点的数量;n和σ分别表示所述ntru格
设置的整数和标准差;r表示所述最终聚合承诺值;h2表示所述哈希函数;h表示所述ntru环多项式;pk表示所述最终聚合用户公钥;id表示各背书节点的身份标识信息;tx表示所述交易提案。
[0039]
在本发明的一些实施例中,在所述验证节点对所述数据区块中每个交易的交易提案和多重签名中的最终聚合签名响应值以及最终聚合承诺值进行验证,验证通过需同时满足:
[0040][0041]
r=h2(z0+z1*h-r*pk,id,tx);
[0042]
其中,z表示最终聚合签名响应值;z0表示第一最终聚合签名响应值,z1表示第二最终聚合签名响应值,z由z0和z1组成;n表示所述背书节点的数量;n和σ分别表示所述ntru格设置的整数和标准差;r表示所述最终聚合承诺值;h2表示所述哈希函数;h表示所述ntru环多项式;pk表示所述最终聚合用户公钥;id表示各背书节点的身份标识信息;tx表示所述交易提案。
[0043]
另一方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中提及的任意一项所述方法的步骤。
[0044]
本发明的有益效果至少是:
[0045]
本发明提供一种基于格密码的联盟链多重签名交易方法及装置,通过初始化联盟链网络,可信密钥生成中心利用ntru格基陷门生成算法生成系统主密钥及公共参数,利用格基高斯采样算法生成指定背书节点的用户公私钥对。用户通过客户端节点发起交易,客户端节点构建交易提案发送至背书节点进行模拟执行,背书节点利用格基拒绝采样定理生成交易提案的签名背书;客户端节点收集各背书节点的模拟交易结果和签名背书,生成多重签名;客户端将有效的交易及其多重签名发送至排序节点;排序节点对交易集合进行排序并打包成数据区块广播至验证节点,验证节点验证数据区块并同步更新账本,实现交易。本发明采用格密码技术,利用格上小整数解困难问题进行密钥生成,能够抵抗量子计算攻击,多重签名具有不可伪造性,攻击者无法通过伪造多重签名来破坏联盟链交易,具备后量子安全性;同时本发明支持公钥聚合,验证节点仅利用聚合公钥即可验证交易签名背书的正确性,降低了联盟链节点的计算开销与存储开销,进而使得整体联盟链交易方案的效率得到提升,具备高效性。
[0046]
进一步的,背书节点采用生成树结构,每个背书节点能够以生成树结构自顶向下或者自底向上进行通信,背书过程中庞大的计算量能够通过生成树结构合理分配到每个节点上,进而使得背书节点的数量可扩展到上千级别,具备可扩展性。
[0047]
本发明的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本发明的实践而获知。本发明的目的和其它优点可以通过在说明书以及附图中具体指出的结构实现到并获得。
[0048]
本领域技术人员将会理解的是,能够用本发明实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本发明能够实现的上述和其他目的。
附图说明
[0049]
此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,并不构成对本发明的限定。在附图中:
[0050]
图1为本发明一实施例中基于格密码的联盟链多重签名交易方法结构示意图。
[0051]
图2为本发明一实施例中基于格密码的联盟链多重签名交易方法步骤示意图。
[0052]
图3为本发明一实施例中背书节点生成树结构示意图。
具体实施方式
[0053]
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
[0054]
在此,还需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的结构和/或处理步骤,而省略了与本发明关系不大的其他细节。
[0055]
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
[0056]
在此,还需要说明的是,如果没有特殊说明,术语“连接”在本文不仅可以指直接连接,也可以表示存在中间物的间接连接。
[0057]
在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
[0058]
这里需要强调的是,在下文中提及的各步骤标记并不是对各步骤先后顺序的限定,而应当理解为可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
[0059]
为了解决现有联盟链交易方法中存在安全隐患和性能不足的问题,本发明提供一种基于格密码的联盟链多重签名交易方法,其中,多重签名用于多个签名者对同一个消息产生一个合并的数字签名,并且在签名验证阶段只需对合并的签名进行一次验证即可,与现有技术相比,多重签名大幅压缩了联盟链交易签名背书的存储空间,并且提高了交易签名背书的共识验证速度,从而提高了签名效率,使得联盟链交易方案的性能得到大幅提升。格密码是一种后量子安全的密码体制,利用格上的困难问题生成密钥,如最短向量问题(svp)、最近向量问题(cvp)和小整数解问题(sis)等,目前尚不存在量子算法能够在多项式时间内求解该类困难问题,安全性高。此外,由于格密码的运算一般为矩阵、向量或环多项式等线性运算,相比现有技术中离散对数密码体制采用的模幂运算和双线性群运算,格密码的运算速度更快。如图1和图2所示,该方法在联盟链网络上运行,联盟链网络包括用户、可信密钥生成中心、客户端节点、预设背书策略指定的背书节点、排序节点和验证节点,该方法包括以下步骤s101~s106:
[0060]
步骤s101:用户基于预设置的联盟链网络通过客户端节点发起交易;其中,预设置包括:可信密钥生成中心采用第一预设格密码算法生成系统主密钥以及公共参数,其中,公共参数包括背书节点的数量、ntru环多项式和多个哈希函数;根据各背书节点的身份标识信息利用哈希函数计算哈希值,作为各背书节点的用户公钥;根据用户公钥和主密钥采用
第二预设格密码算法计算得到第一环多项式向量和第二环多项式向量,并将第一环多项式向量和第二环多项式向量作为各背书节点的用户私钥;
[0061]
步骤s102:客户端节点作为根节点、背书节点作为子节点构建多层生成树,各背书节点根据用户公钥和ntru环多项式计算部分承诺值,自下而上地向上层节点发送各背书节点的部分承诺值和用户公钥,并计算部分聚合承诺值集合和部分聚合用户公钥集合;客户端节点根据部分聚合承诺值集合、部分聚合用户公钥集合、相应的交易内容以及各背书节点的身份标识信息计算最终聚合承诺值和最终聚合用户公钥,并根据最终聚合承诺值、最终聚合用户公钥以及相应的交易内容构建交易提案,发送至各背书节点;
[0062]
步骤s103:各背书节点模拟执行交易提案得到模拟交易结果,并根据各自的用户私钥以及最终聚合承诺值计算部分签名响应值,采用第三预设格密码算法根据部分签名响应值计算各背书节点的签名能够正确输出的概率值,自下而上地向上层节点发送各背书节点的部分签名响应值以及签名,并计算部分聚合签名响应值集合;客户端根据部分聚合签名响应值集合计算最终聚合签名响应值,并得到各背书节点签名构成的多重签名;其中,多重签名包括交易提案、最终聚合签名响应值以及最终聚合承诺值;
[0063]
步骤s104:客户端节点利用交易提案、最终聚合用户公钥和各背书节点的身份标识信息对多重签名中的最终聚合签名响应值以及最终聚合承诺值进行验证,验证通过的情况下,将交易提案和多重签名打包发送至排序节点;
[0064]
步骤s105:排序节点按照预设规则将在预设时间内接收到的交易进行排序,将排序后的批量交易打包成数据区块全网广播至验证节点;
[0065]
步骤s106:在验证节点对数据区块中每个交易的交易提案和多重签名中的最终聚合签名响应值以及最终聚合承诺值进行验证,验证通过的情况下,联盟链网络更新账本,完成交易。
[0066]
在步骤s101中,在用户进行交易之前,首先对联盟链网络进行系统初始化操作,设置系统安全参数,确定背书节点的数量,该数量需要满足联盟链多重签名交易背书策略的需求。初始化一个ntru格,利用第一预设格密码算法生成一个均匀随机的ntru环多项式和一个ntru优质短格基;选取两个抗碰撞的哈希函数,一个哈希函数映射到ntru格设置的环多项式集合空间,另一个哈希函数映射到定长字符串空间。
[0067]
在一些实施例中,设置ntru格整数k》0,令n=2k,设置素数q=1mod2n,令标准差环多项式集合rq,其中,ntru环多项式属于环多项式集合。
[0068]
在一些实施例中,两个哈希函数记作第一哈希函数h1和第二哈希函数h2,其中,第一哈希函数映射到ntru格设置的环多项式集合空间,h1:{0,1}
*
→rq
,第二哈希函数映射到定长字符串空间,h2:{0,1}
*

{0,1}n。
[0069]
在一些实施例中,第一预设格密码算法为格基陷门生成算法,如公式(1)所示:
[0070]
trapgen
ntru
(n,q,σ);
ꢀꢀ
(1)
[0071]
其中,trapgen
ntru
表示ntru格基陷门生成算法;n,q,σ分别表示ntru格设置的整数、素数和标准差。
[0072]
将生成的ntru优质短格基作为系统的主密钥;将背书节点的数量、ntru格的参数、两个哈希函数以及生成的ntru环多项式作为系统的公共参数。
[0073]
示例性的,背书节点的数量记作n,ntru环多项式记作h,则公共参数pp=(n,n,q,
σ,h1,h2,h)。
[0074]
联盟链网络通过智能合约自动化执行程序制定交易的背书策略,作为交易在进行背书时必须满足的约束条件。根据上文确定的背书节点的数量,由各背书节点和客户端节点构建生成树结构,设置客户端节点为生成树结构的根节点,各背书节点为生成树结构中各层的子节点。
[0075]
在一些实施例中,背书节点记作eni,其中,i表示第i个背书节点,i=1,2,...,n,定义客户端节点为根节点自上至下依次有第一层背书节点、第二层背书节点和第三层背书节点;其中,客户端节点连接多个第一层背书节点,每个第一层背书节点连接多个第二层背书节点,每个第二层背书节点连接多个第三层背书节点。
[0076]
具体的,如图3所示,将客户端节点记作cl,将第一层背书节点记作p,第二层背书节点记作s,第三层背书节点记作c。示例性的,根节点cl的第二个第一层背书节点记作p2,第一层背书节点p2的第一个第二层背书节点记作s
2,1
,第二层背书节点s
2,1
的第一个第三层背书节点记作c
2,1,1
,其他以此类推。
[0077]
客户端节点和可信密钥生成中心根据背书策略获取相应背书节点的身份识别信息。可信密钥生成中心利用第一哈希函数,以各背书节点的身份识别信息作为输入,计算对应的哈希值,作为各背书节点的用户公钥。
[0078]
具体的,将各背书节点的身份识别信息记作idi,哈希值计算式如公式(2)所示:
[0079]
pki=h1(idi)∈rq;
ꢀꢀꢀ
(2)
[0080]
其中,得到的pki作为各背书节点的用户公钥,且pki属于环多项式集合rq。
[0081]
可信密钥生成中心以得到的各背书节点的用户公钥以及主密钥作为输入,利用第二预设格密码算法计算得到第一环多项式向量和第二环多项式向量,并将第一环多项式向量和第二环多项式向量作为各背书节点的用户私钥。
[0082]
在一些实施例中,第二预设格密码算法为格基高斯采样算法,计算式如公式(3)所示:
[0083]
gaussian-sampler
ntru
,σ,(pki,0));
ꢀꢀ
(3)
[0084]
其中,gaussian-sampler
ntru
表示格基高斯采样算法;b表示主密钥;σ表示ntru格设置的标准差;pki表示第i个背书节点的用户公钥。
[0085]
根据公式(3)求得两个长度较小的环多项式向量,即第一环多项式向量s
i,0
和第二环多项式向量si,1,则各背书节点的用户私钥可表示为ski=(s
i,0
,s
i,1
)。
[0086]
其中,第一环多项式向量和第二环多项式向量需同时满足公式(4)和公式(5):
[0087]si,0
+s
i,1
*h=pki;
ꢀꢀ
(4)
[0088][0089]
其中,s
i,0
表示第一环多项式向量;s
i,1
表示第二环多项式向量;h表示ntru环多项式;pki表示第i个背书节点的用户公钥;n,σ分别表示ntru格设置的整数和标准差。
[0090]
可信密钥生成中心通过安全信道分别向各交易背书节点传输对应的用户公私钥对,用于后续的交易背书。
[0091]
联盟链网络设置好后,各用户可以通过客户端节点发起相应的交易。其中,发起交易的用户必须为成功注册且已加入联盟链网络的用户,具体的,用户加入联盟链网络时,需要向联盟链网络发起申请,申请成功后,联盟链网络向该用户颁发唯一的用户证书。在用户
发起交易时,交易内容中需包含该用户的用户证书。
[0092]
在一些实施例中,用户发起的交易记作tx,tx=m||certu,其中,m表示交易内容;certu表示该用户的用户证书。
[0093]
在步骤s102中,客户端节点收到用户发起的交易后,与背书节点进行准备工作,具体的:
[0094]
各背书节点随机选择两个与对应用户公钥具有相同分布的第三环多项式向量和第四环多项式向量;各背书节点根据ntru环多项式、第三环多项式向量和第四环多项式向量计算部分承诺值;第二背书节点将部分承诺值和用户公钥发送至第一层背书节点;第二层背书节点根据接收到的第三层背书节点的部分承诺值和用户公钥计算部分聚合承诺值和部分聚合用户公钥,并发送至第一层背书节点,第一层背书节点结合所有背书节点的部分聚合承诺值集合和部分聚合用户公钥集合发送至客户端节点;客户端节点根据部分聚合承诺值集合、部分聚合用户公钥集合、相应的交易内容以及各背书节点的身份标识信息集合计算最终聚合承诺值和最终聚合用户公钥,并根据最终聚合承诺值、最终聚合用户公钥以及相应的交易内容构建交易提案。
[0095]
示例性的,如图(3)所示,将第三环多项式向量记作r
i,0
,将第四环多项式向量记作r
i,1
,其中,d表示概率分布,指第三环多项式向量和第四环多项式向量与用户公钥具有相同的分布。第二层背书节点根据ntru环多项式h、第三环多项式向量r
i,0
以及第四环多项式向量记作r
i,1
计算部分承诺值,计算式如公式(6)所示:
[0096]ri
=r
i,0
+r
i,1
*h;
ꢀꢀ
(6)
[0097]
第二层背书节点将各自的部分承诺值ri和用户私钥pki按照生成树结构自下而上地发送至第一层背书节点pi;第二层背书节点si接收第三层背书节点集合{ci}的部分承诺值集合和用户公钥集合计算部分聚合承诺值和部分聚合用户公钥,计算式如公式(7)和公式(8)所示:
[0098][0099][0100]
其中,ri表示部分聚合承诺值;ri表示第i个第一层背书节点对应的第二层背书节点的部分承诺值;{ci}表示第三层背书节点集合;rj表示第j个第二层背书节点对应的第三层背书节点的部分承诺值;pki表示部分聚合用户公钥;pki表示第i个第一层背书节点对应的第二层背书节点的用户公钥;pkj表示第j个第二层背书节点对应的第三层背书节点的用户公钥。
[0101]
第一层背书节点结合所有背书节点的部分聚合承诺值集合和部分聚合用户公钥集合发送至客户端节点,其中,所有背书节点的部分聚合承诺值集合记作所有背书节点的部分聚合用户公钥集合记作c0表示表示所有背书节点的集合。
[0102]
客户端节点根据部分聚合承诺值集合部分聚合用户公钥集合
相应的交易tx以及各背书节点的身份标识信息集合{idi}计算最终聚合承诺值r和最终聚合用户公钥pk,并根据最终聚合承诺值r、最终聚合用户公钥pk以及相应的交易内容构建交易提案tx,相应的计算式如公式(9)至公式(11)所示:
[0103][0104][0105]
tx=m||certu;
ꢀꢀꢀ
(11)
[0106]
其中,h2表示第二哈希函数,其余参数的注释均在上段中已提及。
[0107]
在步骤s103中,各背书节点模拟执行交易提案得到模拟交易结果并计算签名背书,具体的:
[0108]
根据各自的用户私钥以及最终聚合承诺值通过第三预设格密码算法生成计算部分签名响应值,采用第三预设格密码算法根据部分签名响应值计算各背书节点的签名能够正确输出的概率值。第二层背书将部分签名响应值发送至第一层背书节点;第二层背书节点根据接收到的第三层背书节点计算部分聚合签名响应值,并发送至第一层背书节点;第一层背书节点结合所有背书节点部分聚合签名响应值集合发送至客户端节点;客户端根据部分聚合签名响应值集合计算最终聚合签名响应值,并得到各背书节点签名构成的交易的多重签名。
[0109]
示例性的,如图(3)所示,各背书节点根据最终聚合承诺值r和用户私钥ski=(s
i,0
,s
i,1
),计算部分签名响应值。第二层背书节点的部分签名响应值的计算式如公式(12)至公式(14)所示:
[0110]
zi=(z
i,0
,z
i,1
);
ꢀꢀ
(12)
[0111]
其中,
[0112]zi,0
=s
i,0
*r+r
i,0

ꢀꢀ
(13)
[0113]zi,1
=s
i,1
*r+r
i,1

ꢀꢀ
(14)
[0114]zi,0
表示第一部分签名响应值,z
i,1
表示第二部分签名响应值,zi由z
i,0
和z
i,1
组成;s
i,0
表示第一环多项式向量;r
i,0
表示第三环多项式向量;r表示最终聚合承诺值;s
i,1
表示第二环多项式向量;r
i,1
表示第四环多项式向量。
[0115]
在一些实施例中,利用第三预设格密码算法根据各背书节点的部分签名响应值计算其签名能够正确输出的概率值,第三预设格密码算法为格基拒绝采样定理,概率值的计算式如公式(15)所示:
[0116][0117]
其中,min(
·
)表示求最小值;d表示概率分布;n和σ分别表示ntru格设置的整数和标准差;zi表示部分签名响应值;m为常数;s
i,0
表示第一环多项式向量;s
i,1
表示第二环多项式向量;r表示最终聚合承诺值。
[0118]
第二层背书节点将各自的部分签名响应值zi按照生成树结构自下而上地发送至第一层背书节点pi;第二层背书节点si接收第三层背书节点集合{ci}的部分签名响应值集
合计算部分聚合签名响应值,计算式如公式(16)所示:
[0119][0120]
其中,zi表示部分聚合签名响应值;zi表示第i个第一层背书节点对应的第二层背书节点的部分签名响应值;{ci}表示第三层背书节点集合;zj表示第j个第二层背书节点对应的第三层背书节点的部分签名响应值。
[0121]
根据上文提到的部分签名响应值zi由z
i,0
和z
i,1
组成,公式(16)同样可以写成公式(17)的形式:
[0122][0123]
其中,z
i,0
和z
i,1
的计算式如公式(18)和(19)所示:
[0124][0125][0126]
相应的,z
i,0
表示第一部分聚合签名响应值,z
i,1
表示第二部分聚合签名响应值,zi由z
i,0
和z
i,1
组成。
[0127]
第一层背书节点结合所有背书节点的部分聚合签名响应值集合发送至客户端节点,其中,所有背书节点的部分聚合签名响应值集合记作c0表示表示所有背书节点的集合。客户端节点根据部分聚合签名响应值集合记作计算最终聚合签名响应值,计算式如公式(20)所示:
[0128][0129]
同理,最终聚合签名响应值还可以表示为如公式(21)至(23)所示:
[0130]
z=(z0,z1);
ꢀꢀꢀ
(21)
[0131][0132][0133]
相应的,z0表示第一最终聚合签名响应值,z1表示第二最终聚合签名响应值,z由z0和z1组成。
[0134]
客户端节点收集所有背书节点的签名,根据交易提案tx、最终聚合签名响应值z以及最终聚合承诺值r构建对应交易的多重签名,该多重签名可记作σ(tx)=(tx,z,r),用于该笔交易的合法性验证。
[0135]
在步骤s104中,客户端节点利用交易提案、最终聚合用户公钥和各背书节点的身份标识信息对多重签名中的最终聚合签名响应值以及最终聚合承诺值进行验证,验证通过的情况下,将交易提案和多重签名打包发送至排序节点。
[0136]
在一些实施例中,客户端节点对多重签名验证是否有效时,采用如公式(24)和公式(25)所示的等式条件,若两个等式同时成立,则验证通过,否则验证失败:
[0137][0138]
r=h2(z0+z1*h-r*pk,id,tx);
ꢀꢀ
(25)
[0139]
其中,z表示最终聚合签名响应值;z0表示第一最终聚合签名响应值,z1表示第二最终聚合签名响应值,z由z0和z1组成;n表示背书节点的数量;n和σ分别表示ntru格设置的整数和标准差;r表示最终聚合承诺值;h2表示第二哈希函数;h表示ntru环多项式;pk表示最终聚合用户公钥;id表示各背书节点的身份标识信息;tx表示交易提案。
[0140]
在步骤s105中,排序节点收集来自不同客户端节点的交易提案集合{tx}和多重签名集合{σ(tx)},按照预设配置规则,将预设时间段内接收到的交易进行排序,然后把排序后的批量交易打包成数据区块,再将数据区块全网广播至联盟链网络的验证节点,其中,各验证节点收到的应当是一组发生顺序相同的交易集合,以保证数据一致性。
[0141]
在步骤s106中,验证节点对数据区块中每个交易的交易提案和多重签名中的最终聚合签名响应值以及最终聚合承诺值进行验证,验证通过的情况下,联盟链网络更新账本,完成交易。
[0142]
在一些实施例中,验证节点对多重签名验证是否有效时,采用如上文提及的公式(24)和公式(25)所示的等式条件,若两个等式同时成立,则验证通过,否则验证失败:
[0143][0144]
r=h2(z0+z1*h-r*pk,id,tx);
ꢀꢀ
(25)
[0145]
其中,z表示最终聚合签名响应值;z0表示第一最终聚合签名响应值,z1表示第二最终聚合签名响应值,z由z0和z1组成;n表示背书节点的数量;n和σ分别表示ntru格设置的整数和标准差;r表示最终聚合承诺值;h2表示第二哈希函数;h表示ntru环多项式;pk表示最终聚合用户公钥;id表示各背书节点的身份标识信息;tx表示交易提案。
[0146]
基于公式(24)和公式(25),输入交易提案tx及其对应的多重签名σ(tx)=(tx,z,r),执行多重签名验证算法,能够正确地通过验证。其中,由于拒绝采样定理,(z
i,0
,z
i,1
)的分布接近于因此对于任意i=1,2,...,n,均满足因此成立。
[0147]
此外,
[0148]
[0149][0150]
并且根据上文所述的算法设计,有以及以及因此,公式(25)r=h2(z0+z1*h-r*pk,id,tx)等式成立,本发明提供的基于格密码的联盟链多重签名交易方法具备正确性。
[0151]
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现低采样wifi感知增强模型训练方法、低采样wifi感知增强方法和基于低采样wifi感知目标对象动作行为的方法的步骤。
[0152]
与上述方法相应地,本发明还提供了一种设备,该设备包括计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该设备实现如前所述方法的步骤。
[0153]
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现前述边缘计算服务器部署方法的步骤。该计算机可读存储介质可以是有形存储介质,诸如随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、软盘、硬盘、可移动存储盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质。
[0154]
综上所述,本发明提供一种基于格密码的联盟链多重签名交易方法及装置,通过初始化联盟链网络,可信密钥生成中心利用ntru格基陷门生成算法生成系统主密钥及公共参数,利用格基高斯采样算法生成指定背书节点的用户公私钥对。用户通过客户端节点发起交易,客户端节点构建交易提案发送至背书节点进行模拟执行,背书节点利用格基拒绝采样定理生成交易提案的签名背书;客户端节点收集各背书节点的模拟交易结果和签名背书,生成多重签名;客户端将有效的交易及其多重签名发送至排序节点;排序节点对交易集合进行排序并打包成数据区块广播至验证节点,验证节点验证数据区块并同步更新账本,实现交易。本发明采用格密码技术,利用格上小整数解困难问题进行密钥生成,能够抵抗量子计算攻击,多重签名具有不可伪造性,攻击者无法通过伪造多重签名来破坏联盟链交易,具备后量子安全性;同时本发明支持公钥聚合,验证节点仅利用聚合公钥即可验证交易签名背书的正确性,降低了联盟链节点的计算开销与存储开销,进而使得整体联盟链交易方案的效率得到提升,具备高效性。
[0155]
进一步的,背书节点采用生成树结构,每个背书节点能够以生成树结构自顶向下或者自底向上进行通信,背书过程中庞大的计算量能够通过生成树结构合理分配到每个节点上,进而使得背书节点的数量可扩展到上千级别,具备可扩展性。
[0156]
本领域普通技术人员应该可以明白,结合本文中所公开的实施方式描述的各示例
性的组成部分、系统和方法,能够以硬件、软件或者二者的结合来实现。具体究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。
[0157]
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
[0158]
本发明中,针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他实施方式的特征。
[0159]
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1