首页 / 专利库 / 银行与财务事项 / 分布式账本技术 / 区块链 / 区块链账本 / 一种具有(n,t)门限的分布式权威节点区块链系统及其认证方法

一种具有(n,t)限的分布式权威节点链系统及其认证方法

阅读:1025发布:2020-05-28

专利汇可以提供一种具有(n,t)限的分布式权威节点链系统及其认证方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种具有(n,t) 门 限的分布式权威 节点 区 块 链 系统及其认证方法,其特点是由n个具有CA门限架构的权威节点组成,所述每个权威节点均承担认证中心(CA)的作用,其认证包括:系统初始化、秘密分享、区块链节点初始化、代理密钥 请求 、代理密钥恢复、钱包生成、认证、验证、交易签名和交易验证。本发明与 现有技术 相比具有方法简单、易行,效率高,用户通过对自己进行公钥认证以避免公钥替换攻击,用户周期性更新地址,为交易提供了有效的隐私保护,尤其适用于所有联盟链的应用,敌手无法通过分析公开账本中以往交易数据来获取用户隐私数据,满足了高效性和隐私性需求。,下面是一种具有(n,t)限的分布式权威节点链系统及其认证方法专利的具体信息内容。

1.一种具有(n,t)限分布式权威节点链系统,其特征在于该区块链系统由n个具有证书机构CA门限架构的权威节点组成,所述每个权威节点均承担认证中心的作用;所述认证中心由交易控制器连接的账户池和区块池组成。
2.一种权利要求1所述具有(n,t)门限分布式权威节点的区块链系统的认证方法,其特征在于令CA向用户颁发代理密钥,用户通过代理密钥对自己的公钥实现认证,进行周期性更新地址的隐私保护,其认证过程具体包括以下步骤:
(一)系统初始化
系统在给定安全参数前提下,生成主公钥;
(二)秘密分享
系统生成一个秘密分享多项式,并将生成的部分私钥派发给分布式CA;
(三)区块链节点初始化
在网络中生成一个区块链节点,并为其生成一个长期的公私钥对,其中公钥作为存放在CA处对自己身份的凭证;
(四)代理密钥请求
用户向CA请求代理密钥,CA分别计算出一个部分的代理密钥发送给用户;
(四)代理密钥恢复
在用户收到门限个CA发来的部分代理密钥后,可以通过秘密恢复手段计算出完整的代理密钥;
(六)钱包生成
用户生成一个周期性更新的短期公私钥对,其中短期公钥作为该钱包的地址;
(七)钱包认证
用户通过代理认证密钥对钱包地址进行认证;
(八)认证验证
其他人可以通过主公钥及用户的公钥对钱包地址的认证进行验证;
(九)交易签名
用户通过短期公私钥对交易进行数字签名;
(十)交易验证
所有人都可以通过发送方的短期公钥对这笔交易进行验证,验证通过则表明交易成立,可以由CA存入区块链。
3.根据权利要求2所述具有(n,t)门限分布式权威节点的区块链系统的认证方法,其特征在于所述步骤(一)的系统初始化过程,具体包括下述步骤:
a)输入1λ,其中λ是安全参数;
b)系统选取两个长度为λ的安全素数p0,q0,并满足下述(I)式。
q0=2q′0+1,p0=2p′0+1(其中p′0,q′0是素数) (I)
然后计算n0=p0·q0,m0=p′0·q′0。选出e0,d0,使得e0·d0≡1(modφ(m0)),然后选出n个可信节点作为分布式CA((n,t)门限,其中n>t),并设置一个共同的CA主公钥pkCA=(n0,e0),公开一个哈希函数
4.根据权利要求2所述具有(n,t)门限分布式权威节点的区块链系统的认证方法,其特征在于所述步骤(二)的秘密分享过程,具体包括下述步骤:
a)系统将d0分散为n个部分的私钥di(i=1,2,…,n),并分别发送给n个CA,即按下述(II)式选取一个 中的t-1阶多项式:
f(x)=at-1xt-1+…+a2x2+a1x+d0(mod m0)
(其中 ) (II)
对于每个CAj(j∈1,2,…,n),计算dj=f(j),并发送给对应的CAj,这一步骤运行完后系统摧毁p0,q0和d0;
b)定义运算符Δ=n!,将任意t个CA组成的子集定义为S,对于任意i∈{0,…,n}\S,j∈S,并按下述(III)式定义:
然后根据拉格朗日插值法得到下述(IV)式:
5.根据权利要求2所述具有(n,t)门限分布式权威节点的区块链系统的认证方法,其特征在于所述步骤(三)的区块链节点初始化过程,具体包括下述步骤:
a)当新的用户u加入网络时,需创建一个区块链节点以及节点的标识,然后输入1λ,其中λ为安全参数;
b)选取两个大素数pu,qu,长度为k,并计算nu=pu·qu,以及选取eu,du满足eudu=1(modφ(nu)),并令pku=(nu,eu),sku=(du)。
6.根据权利要求2所述具有(n,t)门限分布式权威节点的区块链系统的认证方法,其特征在于所述步骤(四)的代理密钥请求过程,具体包括下述步骤:
a)用户通过公开的哈希函数h(·)按下述(V)式计算请求主体x:
x=h(nu,eu) (V)
并向所有CA发送请求信息(u,pku,x),其中:u代表了用户的真实身份;pku是用户的公钥,即区块链节点的标识;
b)当CAj收到用户u发来的请求后,先验证u是否为合法用户,即购买了本区块链服务的用户,若合法,CAj将身份信息对(u,pku)存入账户池中,并按下述(VI)式计算一个部分的代理密钥:
并将vu,j发送给用户u。
7.根据权利要求2所述具有(n,t)门限分布式权威节点的区块链系统的认证方法,其特征在于所述步骤(五)的代理密钥恢复过程,具体包括下述步骤:
a)当用户u收到不小于t个部分代理密钥,并记为 )后,按下述
(VII)式计算中间变量w:
其中:w为计算过程中所产生的中间变量,等式右边为指数上做的拉格朗日插值;
b)根据(IV)与(VII)式得到中间变量
2 2
其中:e0与4Δ互素,可以找到一对(a,b)使得4Δ·a+e0b=-1。
c)按下述(IX)式计算用户的代理密钥vu:
vu=waxb (IX)
d)用户按下述(X)验证vu的正确性,即vu是否为
如果COR≡1(mod m0),则代理密钥正确;否则代理密钥错误,用户向CA提交错误信息,为了表明交易双方,之前的用户u现在用交易的双方a,b来表示。
8.根据权利要求2所述具有(n,t)门限分布式权威节点的区块链系统的认证方法,其特征在于所述步骤(六)的钱包生成过程,具体包括下述步骤:
a)输入1λ,其中λ为安全参数;
b)选取两个大素数pb,i,qb,i,其长度为k,计算nb,i=pb,i·qb,i,以及选取eb,i,db,i满足eb,idb,i=1(modφ(nb,i)),令pkb,i=(nb,i,eb,i),skb,i=(db,i),令钱包的地址为pkb,i,其中i表示第i次更新;b为交易方;u为代表所有用户。
9.根据权利要求2所述具有(n,t)门限分布式权威节点的区块链系统的认证方法,其特征在于所述步骤(七)的钱包认证过程,具体包括下述步骤:
a)当用户a想要收到其他人的转账时,首先对自己的地址pkb,i进行认证,输入1λ,vb,pkb,i,pkCA,skb,pkb,在 域上随机选择 按下述(XI)式计算中间变量ri,ki:
按下述(XII)式计算中间变量gi,yi:
b)用户b的地址pkb,i的认证为Certb,i=(yi,gi)。
10.根据权利要求2所述具有(n,t)门限分布式权威节点的区块链系统的认证方法,其特征在于所述步骤(八)的认证验证过程,具体包括下述步骤:
a)输入1λ,pkb=(nb,eb),pkb,i=(nb,i,eb,i),Certb,i=(yi,gi),pkCA=(n0,e0),按下述(XIII)式计算中间变量k′i和r′i:
b)用户a按下述(XIV)式验算h(r′i,nb,i,eb,i)=k′j是否成立,如果成立,那么验证正确,否则可能地址已经遭到替换;
因此,
h(r′i,nb,i,eb,i)=h(ri,nb,i,eb,i)=ki=k′i。
11.根据权利要求2所述具有(n,t)门限分布式权威节点的区块链系统的认证方法,其特征在于所述步骤(九)的交易签名由交易生成方a对一个T进行签名,其过程具体包括下述步骤:
a)输入1λ,T,ska,i′,pka,i′,其中i′为用户a第i′次更新地址,选取一个随机数ri′∈R{0,
1}λ,按下述(XV)式计算:
wi′←g(H(T)||ri′),si′←g(wi′)⊕wi′
其中:σa,T,i′为对交易的签名;||表示连接符号。
12.根据权利要求2所述具有(n,t)门限分布式权威节点的区块链系统的认证方法,其特征在于所述步骤(十)的交易验证过程,具体包括下述步骤:
a)输入1λ,σa,T,i′,pka,i′,T,首先按照步骤(八)的方法验证公钥的合法性后按下述(XVI)式计算:
将yi′转为wi′||si′;
并按下述(XVII)式验算是否成立:
si′⊕wi′=g(wi′) (XVII)
若成立,则验证通过,否则验证不通过。

说明书全文

一种具有(n,t)限的分布式权威节点链系统及其认证

方法

技术领域

[0001] 本发明涉及信息安全技术领域,尤其是一种具有(n,t)门限的分布式权威节点区块链系统及其认证方法。

背景技术

[0002] 近年来区块链技术突飞猛进,得到了工业界和学术界的广泛关注。区块链就起本身而言,只是一个密码学上可验证的数据列表,但其与传统意义上的数据库不同的地方在
于区块链用密码学理论保证了存储在其中的数据的完整性,也就是存储在区块链中的数据
不用担心受到恶意篡改。区块链除了保证数据完整性之外,另一个受到青睐的特点就在于
其分布式及公开的性质,所有数据都被存储于一个公开的、分布式存储的账本之中,因此区块链也被用作各种电子货币的技术载体,然而使用分布式账本技术也就为区块链埋下了祸
端,即用户会面临隐私泄露的险。
[0003] 在中本聪于2009年提出的比特币中,区块链用户都有一个或多个区块链地址作为自己在区块链网络中的一种假名,以达到密码学中的匿名性。但因为任何人都存储了完整
账本的关系,已经有相应的研究表明,可以通过分析某一个区块链地址的交易记录,来确定这个地址的持有者的身份信息,因此区块链的匿名性并没有为用户提供很好的隐私保护。
而且,现有的区块链结构容易受到51%算攻击,即一旦某个网络节点或多个网络节点合
谋拥有了整个网络51%的计算能力,那么这个节点就可以控制整个区块链网络。区块链还
会分叉,即多个节点存储的数据列表在某个时间点不同,导致后续数据全都不同。区块链不需要认证的结构还使其非常容易受到地址替换攻击,现有的解决方案要么使用了低效率的
认证机制,要么试图加入单点的在线证书中心(CA)来认证所有的网络节点,该方法需要CA
实时在线来和网络节点之间频繁互动来颁发公钥证书,这种方法会导致很大的计算与通信
负荷。而且,在一个信任分散的区块链系统中,单点的CA 往往意味着不够可信,因此,企业在搭建自己的区块链服务时,往往采用联盟链的结构。联盟链是区块链中的一种,不同于最为广泛应用的公有链,联盟链拥有一个或多个的管理员,新节点加入网络需要经过管理员
的认证,区块由管理员生成,一旦出现恶意操作导致的损失,管理员可以及时止损。因此,现阶段企业自身创建的区块链服务,包括分布式交易系统,往往采用联盟链的架构。然而,联盟链的结构并没有解决区块链隐私保护的痛点,而且作为一个面向企业的区块链类型,联
盟链并没有提供出一个有效的追责手段,既无法找出破坏系统的恶意用户。
[0004] 综上所述,现有技术的区块链存在着隐私泄露的风险,严重制约了区块链系统的大规模应用。

发明内容

[0005] 本发明的目的是针对现有技术的不足而设计的一种分布式门限轻量级的CA认证方法,采用多机构分布式的CA结构,令CA向用户颁发代理密钥的方法,使得CA的信任模型分布化,分散单个CA的权力,用户通过对自己进行公钥认证以避免公钥替换攻击,用户周期性更新地址,为交易提供了有效的隐私保护,尤其适用于所有联盟链的应用,敌手无法通过分析公开账本中以往交易数据来获取用户隐私数据,满足了高效性和隐私性需求。
[0006] 本发明的目的是这样实现的:一种具有(n,t)门限的分布式权威节点区块链系统,其特点是该区块链系统由n个具有证书机构CA门限架构的权威节点组成,所述每个权威节点均承担认证中心的作用;所述认证中心由交易控制器连接的账户池和区块池组成。
[0007] 一种具有(n,t)门限分布式权威节点的区块链系统的认证方法,其特点是令CA向用户颁发代理密钥,用户通过代理密钥对自己的公钥实现认证,进行周期性更新地址的隐
私保护,其认证过程具体包括以下步骤:
[0008] (一)系统初始化
[0009] 系统在给定安全参数前提下,生成主公钥;
[0010] (二)秘密分享
[0011] 系统生成一个秘密分享多项式,并将生成的部分私钥派发给分布式CA;
[0012] (三)区块链节点初始化
[0013] 在网络中生成一个区块链节点,并为其生成一个长期的公私钥对,其中公钥作为存放在CA处对自己身份的凭证;
[0014] (四)代理密钥请求
[0015] 用户向CA请求代理密钥,CA分别计算出一个部分的代理密钥发送给用户;
[0016] (四)代理密钥恢复
[0017] 在用户收到门限个CA发来的部分代理密钥后,可以通过秘密恢复手段计算出完整的代理密钥;
[0018] (六)钱包生成
[0019] 用户生成一个周期性更新的短期公私钥对,其中短期公钥作为该钱包的地址;
[0020] (七)钱包认证
[0021] 用户通过代理认证密钥对钱包地址进行认证;
[0022] (八)认证验证
[0023] 其他人可以通过主公钥及用户的公钥对钱包地址的认证进行验证;
[0024] (九)交易签名
[0025] 用户通过短期公私钥对交易进行数字签名;
[0026] (十)交易验证
[0027] 所有人都可以通过发送方的短期公钥对这笔交易进行验证,验证通过则表明交易成立,可以由CA存入区块链。
[0028] 所述步骤(一)的系统初始化过程,具体包括下述步骤:
[0029] a)输入1λ,其中λ是安全参数;
[0030] b)系统选取两个长度为λ的安全素数p0,q0,并满足下述(I)式。
[0031] q0=2q′0+1,p0=2p′0+1(其中p′0,q′0是素数) (I)
[0032] 然后计算n0=p0·q0,m0=p′0·q′0。选出e0,d0,使得e0·d0≡1(modφ(m0)),然后选出n个可信节点作为分布式CA((n,t)门限,其中n>t),并设置一个共同的CA主公钥pkCA=(n0,e0),公开一个哈希函数
[0033] 所述步骤(二)的秘密分享过程,具体包括下述步骤:
[0034] a)系统将d0分散为n个部分的私钥di(i=1,2,…,n),即按下述(II)式选取一个中的t-1阶多项式:
[0035]
[0036] 对于每个CAj(j∈1,2,…,n),计算dj=f(j),并发送给对应的CAj,这一步骤运行完后系统摧毁p0,q0和d0;
[0037] b)定义运算符Δ=n!,将任意t个CA组成的子集定义为S,对于任意i∈ {0,…,n}\S,j∈S,并按下述(III)式定义:
[0038]
[0039] 然后根据拉格朗日插值法得到下述(IV)式:
[0040]
[0041] 所述步骤(三)的区块链节点初始化过程,具体包括下述步骤:
[0042] a)当新的用户u加入网络时,需创建一个区块链节点以及节点的标识,然后输入1λ,其中λ为安全参数;
[0043] b)选取两个大素数pu,qu,长度为k,并按上述(I)式计算nu=pu·qu,以及选取eu,du满足eudu=1(modφ(nu)),并令pku=(nu,eu),sku=(du)。
[0044] 所述步骤(四)的代理密钥请求过程,具体包括下述步骤:
[0045] a)用户通过公开的哈希函数h(·)按下述(V)式计算请求主体x:
[0046] x=h(nu,eu)(V)
[0047] 并向所有CA发送请求信息(u,pku,x),其中:u代表了用户的真实身份;pku是用户的公钥,即区块链节点的标识;
[0048] b)当CAj收到用户u发来的请求后,先验证u是否为合法用户,即购买了本区块链服务的用户,若合法,CAj将身份信息对(u,pku)存入账户池中,并按下述(VI)式计算一个部分的代理密钥:
[0049]
[0050] 并将vu,j发送给用户u。
[0051] 所述步骤(五)的代理密钥恢复过程,具体包括下述步骤:
[0052] a)当用户u收到不小于t个部分代理密钥,并记为 后,按下述 (VII)式计算中间变量w:
[0053]
[0054] 其中:w为计算过程中所产生的中间变量,等式右边为指数上做的拉格朗日插值;
[0055] b)根据(IV)与(VII)式得到中间变量
[0056]
[0057] 其中:e0与4Δ2互素,可以找到一对(a,b)使得4Δ2.a+e0b=-1。
[0058] c)按下述(IX)式计算用户的代理密钥vu:
[0059] vu=waxb (IX)
[0060] d)用户按下述(X)验证vu的正确性,即vu是否为
[0061]
[0062] 如果COR≡1(mod m0),则代理密钥正确;否则代理密钥错误,用户向CA提交错误信息,为了表明交易双方,之前的用户u现在用交易的双方a,b来表示。
[0063] 所述步骤(六)的钱包生成过程,具体包括下述步骤:
[0064] a)输入1λ,其中入为安全参数;
[0065] b)选取两个大素数pb,i,qb,i,其长度为k,计算nb,i=Pb,i·qb,i,以及选取eb,i,db,i满足eb,idb,i=1(modφ(nb,i)),令pkb,i=(nb,i,eb,i),skb,i=(db,i),令钱包的地址为pkb,i,其中i表示第i次更新;b为交易方;u为代表所有用户。
[0066] 所述步骤(七)的钱包认证过程,具体包括下述步骤:
[0067] a)当用户a想要收到其他人的转账时,首先对自己的地址pkb,i进行认证,输入 1λ,vb,pkb,i,pkCA,skb,pkb,在 域上随机选择 按下述(XI)式计算中间变量 ri,ki:
[0068]
[0069] 按下述(XII)式计算中间变量gi,yi:
[0070]
[0071] b)用户b的地址pkb,i的认证为Certb,i=(yi,gi)。
[0072] 所述步骤(八)的认证验证过程,具体包括下述步骤:
[0073] a)输入1λ,pkb=(nb,eb),pkb,i=(nb,i,eb,i),Certb,i=(yi,gi),pkCA=(n0,e0),按下述(XIII)式计算中间变量k′i和r′i:
[0074]
[0075]
[0076] b)用户a按下述(XIV)式验算h(r′i,nb,i,eb,i)=k′j是否成立,如果成立,那么验证正确,否则可能地址已经遭到替换;
[0077]
[0078]
[0079]
[0080] 因此,
[0081] h(r′i,nb,i,eb,i)=h(ri,nb,i,eb,i)=ki=k′i。
[0082] 所述步骤(九)的交易签名由交易生成方a对一个T进行签名,其过程具体包括下述步骤:
[0083] a)输入1λ,T,ska,i′,pka,i′,其中i′为用户a第i′次更新地址,选取一个随机数 ri′∈R{0,1}λ,按下述(XV)式计算:
[0084]
[0085]
[0086] 其中:σa,T,i′为对交易的签名;||表示连接符号。
[0087] 所述步骤(十)的交易验证过程,具体包括下述步骤:
[0088] a)输入1λ,σa,T,1′,pka,i′,T,首先按照步骤(八)的方法验证公钥的合法性后按下述(XVI)式计算:
[0089]
[0090] 将yi′转为wi′||si′;
[0091] 并按下述(XVII)式验算是否成立:
[0092]
[0093] 若成立,则验证通过,否则验证不通过。
[0094] 本发明与现有技术相比具有以下优点:
[0095] 1)分布式的CA结构,使得CA的信任模型分布化,分散单个CA的权力;防止单点破坏攻击;契合区块链的去中心化的信任结构,且CA的加入有效的防范了地址替换攻击。
[0096] 2)采用代理CA结构,令CA向用户颁发代理密钥,用户每次进行认证不需要与CA进行繁琐的交互,达到了高效性。
[0097] 3)用户周期性更新地址,敌手无法通过分析公开账本中以往交易数据来获取用户隐私数据。
附图说明
[0098] 图1为本发明网络结构示意图;
[0099] 图2为认证中心CA结构示意图;
[0100] 图3为实施例示意图;
[0101] 图4为本发明流程结构示意图。

具体实施方式

[0102] 一、本发明所应用的数学理论说明:
[0103] 1、哈希函数
[0104] 哈希函数将可变长度的消息映射为固定长度的Hash值或消息摘要。哈希算法的方式很多,现在普遍在采用的方法有MD2、MD4、MD5和安全哈希算法(SHA-1)。对于输入、输出都是比特串的Hash函数(由0和1组成的串),把比特串x的长度记为冈,并且把比特串x和y记为x||y。设compress:{0,1}m+t→{0,1}m是一个压缩函数(这里t≥1)。将基于压缩函数
compress构造一个迭代Hash函数 迭代Hash函数h的求值主要由
下列三步组成。
[0105] 1)预处理:给定一个输入比特串x,其中|x|≥m+t+1,用一个公开的算法构造一个串y,使得|y|≡0(mod t)。记为y=y1||y2||…||yr其中对1≤i≤r,有|yi|=t。
[0106] 2)处理:设IV是一个长度为m的公开的初始值比特串,则计算:
[0107] z0←IV,
[0108] z1←compress(z0||y1),
[0109] z2←compress(z1||y2),
[0110]
[0111] zr←compress(zr-1||yr),
[0112] 3)输出变换:设g:{0,1}m→{0,1}1是一个公开函数。定义h(x)=g(zr)。
[0113] 2、代理签名算法
[0114] 签名方可以颁发给某个其他用户一个代理密钥proxy-key,获取到代理密钥的用户可以代替签名方对消息进行签名。
[0115] 具体算法:
[0116] 1)代理生成:对于一个原始签名方p0,以及代理签名方pi,其中p0的公钥为(n0,e0),私钥为(n0,e0)pi的身份为IDi,公钥为(ni,ei)。p0计算
[0117]
[0118]
[0119] 并将ui,mw,wi发送至pi
[0120] 2)代理密钥恢复:pi在接收到p0发送的ui,mw,wi后,可以计算
[0121]
[0122] 来得出代理密钥vi
[0123] 3)代理签名:pi使用代理密钥对消息m进行签名:
[0124] 随机选取t∈[1,n0],计算
[0125]
[0126] 其中签名为(y,u)。
[0127] 4)签名验证:消息接收方可以验证签名(y,u):
[0128] 计算
[0129] 检验h(m,r′)=k′是否成立,若成立,则签名正确,若不成立,则错误。
[0130] 3、Shamir秘密分享
[0131] Shamir(k,n)秘密共享算法将秘密S分为n个子秘密,任意k子秘密都可以恢复出S,而任意k-1个子秘密无法恢复出S。
[0132] 秘密分享过程:
[0133] 假设有秘密S,任取随机数a1,…,ak-1。令a0=S,构造如下多项式:
[0134] f(x)=a0+a1x+a2x2+…ak-1xk-1(mod p)
[0135] 取n个随机数xi分别带入f(x),计算出yi=f(xi)。
[0136] 秘密恢复过程:
[0137] 任取k个数据,假设为(x1,y1),...,(xk,yk),带入并计算
[0138]
[0139] 通过以下具体实施例对本发明作进一步的详细说明,实施例中包括如下实体:发送方、评估方和接收方,且只允许合法的接收方拥有解密密钥对最后计算结果进行解密。
[0140] 实施例1
[0141] 参阅附图1,本发明由n个具有CA门限架构的权威节点1组成,每个权威节点1 承担认证中心(CA)2的作用。离线阶段,当且仅当不少于门限t个认证中心(CA)2 为用户颁发部
分认证密钥,用户才能恢复正确的整体认证密钥,用于向交易中的其他用户证明自己的合
法身份。用户在线阶段周期性更新身份信息并对交易中的其他用户认证更新的身份信息
时,无需再与分布式CA进行交互,可由离线阶段恢复的整体认证密钥实现自行认证。因此,该系统结构很大程度上降低了资源受限用户端本地的计算开销与通信开销。本发明使得CA
的信任模型分散化,在一定程度上减弱了单个CA的集中式权力,有效防止了恶意CA单点失
败对区块链系统造成的破坏。另一方面,本发明采用(n,t) 门限结构的CA架构,使得区块链系统中的身份认证更加灵活,门限t可根据不同网络应用环境的安全性与可用性需求分别
设置。最后,在本发明中,CA与CA之间互相通信,且CA会负责验证用户之间所产生的交易并记入区块链,因此区块链结构使得每个CA所存储的数据保持同步与一致性。
[0142] 参阅附图2,所述每个权威节点1均承担认证中心(CA)2的作用;所述认证中心(CA) 2由交易控制器21连接的账户池22和区块池23组成。
[0143] 参阅附图3~图4,本发明按下述步骤进行CA认证:
[0144] 步骤一:系统初始化
[0145] a)输入1λ,其中λ是安全参数,取λ=512;
[0146] b)选择两个512位的大质数p′0,q′0,根据(I)式得到:
[0147] q0=2q′0+1,p0=2p′0+1(其中p′0,q′0是素数) (I)
[0148] p′0=502685947109675170232331548873580302627339221691414046222112209314972 96784397,
[0149] q′0=446799484190953087660487404120419512904906144081084900190881149623176 15599097,
[0150] 计算得到p0,q0,n0=p0·q0:
[0151] p0=100537189421935034046466309774716060525467844338282809244422441862994 593568793;
[0152] q0=893598968381906175320974808240839025809812288162169800381762299246352 31198193;
[0153] n0=898399287514574364766187335084138121105839112868955405208801629784250 3447278245065186363664333852060585694749885884592135277741138062217981
517429 362791049;
[0154] 选择一个整数e0=65537与φ(n0)=4p′0q′0互质,并且e0小于φ(n0),计算 d0:d0·e0≡1mod(φ(n0))得到
[0155] d0=201127826211359004529494798058416993650378739704492328077628477229572 9291521791132129403529602305823351353400022384315959037981553462846552
517747 513952257。其中,CA主公钥为pkCA=(n0,e0)。
[0156] 步骤二:秘密分享
[0157] a)根据秘密分享原则,系统将d0分散为n个部分的私钥di(i=1,2,…,n),并分别发送给n个CA,即按下述(II)式选取一个 中的t-1阶多项式:
[0158]
[0159] 对于每个CAj(j∈1,2,…,n),计算dj=f(j),并发送给对应的CAj,这一步骤运行完后系统摧毁p0,q0和d0;
[0160] 本实施例中选n为5、t为3。
[0161] a1=111868139482427763033413840861771967448222506008169586182543367613992 623427261;
[0162] a2=102086987004631591958852232552663001368244520618222043795905559992876 750911991;
[0163] a3=105509764525196833675959783501653247049903558926667050080341953994783 283325233;
[0164] d1=201127826211359004529494798058416993650378739704492328077628477229572 9291522110597020415785790974049208269488238250686544591040233521637434
119400 171616744;
[0165] d2=201127826211359004529494798058416993650378739704492328077628477229572 9291522110597020415785790974049208269488238250686544591040233521637434
119400 171616748;
[0166] d3=201127826211359004529494798058416993650378739704492328077628477229572 9291522110597020415785790974049208269488238250686544591040233521637434
119400 171616754;
[0167] d4=201127826211359004529494798058416993650378739704492328077628477229572 9291522110597020415785790974049208269488238250686544591040233521637434
119400 171616762;
[0168] d5=201127826211359004529494798058416993650378739704492328077628477229572 9291522110597020415785790974049208269488238250686544591040233521637434
119400 171616772。
[0169] 步骤三:区块链节点初始化
[0170] 当新的用户u加入网络时,需创建一个区块链节点以及节点的标识,然后输入1λ,其中λ为安全参数;选取两个512位的大素数pu,qu并计算nu=pu·qu。
[0171] pu=107513213546145434094281653760010721386161376807556788679865009269593 320778641;
[0172] qu=856753065403156487199857648705898757902222166363120155636892236131585 59234427;
[0173] nu=921122752770042690968634494968463881232136417575438137154187800448919 1550387403678276985477281435782877772667199637422197936885437097898642
226948 493473707。
[0174] 选择一个整数eu=65537与φ(nu)互质,并且e小于φ(nu),计算d:d·e≡ 1mod(φ(nu))得到:
[0175] du=213846875557260777012798477820852006545111243929540431463157718293945 4803227816464007373217136305085031521835655529619945486690694857543833
074018 515858273。
[0176] 步骤四:代理密钥请求
[0177] a)用户通过公开的哈希函数h(·)计算x=h(nu,eu),并且向所有CA发送请求信息 (u,pku,x),u代表了用户的真实身份,pku是用户的公钥,即区块链节点的标识,按下述 (V)式计算请求主体x:
[0178] x=h(nu,eu)(V)
[0179] b)当CAj收到用户u发来的请求后,先验证u是否为合法用户(购买了本区块链服务的用户),若合法,CAj将身份信息对(u,pku)存入账户池中,并按下述(VI)式计算一个部分的代理密钥:
[0180]
[0181] x=3422936894970277553548667080553281970284817520638535438510907286124623 4918113;代理密钥分别为:
[0182] vu,1=31074695685836099634753164556607619078945865204692427848513033028639 7371634139810045085958163147355200949602839252561445553784762980435190
261947 1099787719;
[0183] vu,2=73789566422831300153459151766666862968798825534917250574384403964839 8016604382400221458528595557606480626019611344299217247246845903200889
801675 2529795660;
[0184] vu,3=79939733556509559718474148249558799268480130412002087949811008434838 9034565483606294715813919305141288812938700508237978582984365162267613
696796 3095940626;
[0185] vu,4=17221895236855057993585343781187480750423600929136000867758831151949 1390902606840953082545773766763830677115101351593640737979341155112486
1042234 097874372;
[0186] vu,5=47608928782128537215600559876428998911173597436942960323938497341927 0691522980304038671020408825092622271272175404599574927450423445513920
533875 7314947857。
[0187] 步骤五:代理密钥恢复
[0188] a)当用户u收到不小于t个部分代理密钥,并记为 后,按下述 (VII)式计算中间变量w:
[0189]
[0190] 其中:w为计算过程中所产生的中间变量,等式右边为指数上做的拉格朗日插值;
[0191] b)根据(IV)与(VII)式得到中间变量
[0192]
[0193] 其中:e0与4Δ2互素,可以找到一对(a,b)使得4Δ2.a+e0b=-1。
[0194] c)按下述(IX)式计算用户的代理密钥vu:
[0195] vu=waxb (IX)
[0196] w=5448008741470273527977346493550158516483005928174925115284777271631864 5276470828129108627910296196097991084467636059807715380081018390301564
660138 91149424;
[0197] vu=471269172955308943976027352306631187782626003865493692347524846917082 7356264825506588103938269937795419054495282278965753252223481661059251
418397 543505956,经验证vu正确。
[0198] 步骤六:钱包生成
[0199] a)输入1λ,其中:λ为安全参数。
[0200] b)选取两个大素数pb,i,qb,i,长度为k,计算nb,i=pb,i·qb,i,以及选取eb,i,db,i,满足 eb,idb,i=1(modφ(nb,i))。令pkb,i=(nb,i,eb,i),skb,i=(db,i);令钱包的地址为pkb,i;钱包地址需要周期性更新,i表示第i次更新。
[0201] pu,i=98905411631433183413607147068875624006656974845456685657046402584491 734670889;
[0202] qu,i=72730738245982562336422357343086698203136123108136595248092083835528 635746699;
[0203] nu,i=71934636044769260093995329713239506247969832130470478253745193385689 9130506945641885189730589476195707523528053059103992724064025091447357
445419 3533145411;
[0204] 选择一个整数eu,i=65537与φ(nu,i)互质,并且e小于φ(nu,i),计算d:d·e≡ 1mod(φ(nu,i))得到:
[0205] du,i=13270209954396148046697339460656814174252029700129515877867149671681 5089000545726876218655830907051290616375356118420547425241310812842915
016453 5354645153。
[0206] 步骤七:钱包认证
[0207] a)为了防止公钥替换攻击,当用户a想要收到其他人的转账时,首先要对自己的地址pkb,i进行认证,输入1λ,vb,pkb,i,pkCA,skb,pkb。在 域上随机选择 按下述 (XI)式计算中间变量ri,ki:
[0208]
[0209] 按下述(XII)式计算中间变量gi,yi:
[0210]
[0211] b)用户b的地址pkb,i的认证为Certb,i=(yi,gi),得到:
[0212] ti=7377853991639920693270177433470989967622853179914631740065118262053887 494171504971974136976716318998049342263434334398368679265954803208521
9493930 69401389;
[0213] ri=4759149528279737629950452887827267383269268578610334060880301554450520 527466535928451176835643134046571724019687794737582238898486740541395
1979581 09081923;
[0214] ki=7446901942716709609768648643136422722018005928006405900707411968380378 957325286282605952037847256899073567374466120759659856975991673319706
3216483 52959654;
[0215] gi=5934957782677915040975265171998683088387466645141307370265579950722329 541925402847404340171714876862891762517377267961507350534965043720751
0116864 87922359;
[0216] yi=6197268909245805163825572692399037393703611513936488943462969002309231 062428589897781755667621765071117108786072486216616715533972207340281
13691322 8866397。
[0217] 步骤八:认证的验证
[0218] a)输入1λ,pkb=(nb,eb),pkb,i=(nb,i,eb,i),Certb,i=(yi,gi),pkCA=(n0,e0),按下述(XIII)式计算中间变量k′i和r′i:
[0219]
[0220]
[0221] b)用户a按下述(XIV)式验算h(r′i,nb,i,eb,i)=k′j是否成立,如果成立,那么验证正确,否则可能地址已经遭到替换;
[0222]
[0223]
[0224]
[0225] 因此,h(r′i,nb,i,eb,i)=h(ri,nb,i,eb,i)=ki=k′i;,得到:
[0226] k′i=7446901942716709609768648643136422722018005928006405900707411968380378 95732528628260595203784725689907356737446612075965985697599167331970
63216483 52959654;
[0227] r′i=4759149528279737629950452887827267383269268578610334060880301554450520 52746653592845117683564313404657172401968779473758223889848674054139
51979581 09081923,经验算发现签名正确。
[0228] 步骤九:交易签名
[0229] a)输入1λ,T,ska,i′,pka,i′,其中i′为用户a第i′次更新地址,选取一个随机数 rj′∈R{0,1}λ,按下述(XIV)式计算:
[0230]
[0231]
[0232] 其中:σa,T,i,为对交易的签名;||表示连接符号;
[0233] 计算得到:
[0234] wi′=642594131613360864268557952175729557884346946736788458689331267123217 8055740243311716175315457731090228336036213248675490550041374780874470
257701 551528412;
[0235] si′=649078488826320808016511405352022573128350889809076138102819090894148 8180861682415671131714212257050358086803822236295472455713951151181728
6534246 25726065;
[0236] yi′=876302786523043390228772324678370078170883092845252914250675446971938 0895006891602696361364369441141142861812013529386417964928664794239558
824637 148205589;
[0237] σa,T,i′=471269172955308943976027352306631187782626003865493692347524846917 0827356264825506588103938269937795419054495282278965753252223481661059
251418 397543505956。
[0238] 步骤十:交易的验证
[0239] a)输入1λ,σa,T,i′,pka,i′,T,首先按照步骤(八)的方法验证公钥的合法性后按下述 (XVI)式计算:
[0240] 得到:
[0241] yi′=87630278652304339022877232467837007817088309284525291425067544697193 80895006891602696361364369441141142861812013529386417964928664794239558
82463 7148205589。
[0242] 将yi′转为wi′||si′,得到:
[0243] wi′=64259413161336086426855795217572955788434694673678845868933126712321 78055740243311716175315457731090228336036213248675490550041374780874470
25770 1551528412;
[0244] si′=649078488826320808016511405352022573128350889809076138102819090894148 8180861682415671131714212257050358086803822236295472455713951151181728
6534246 25726065。
[0245] 并按下述(XVII)式验算是否成立:
[0246]
[0247] 得到:
[0248] g(wi′)=649078488826320808016511405352022573128350889809076138102819090894 1488180861682415671131714212257050358086803822236295472455713951151181
7286534 24625726065,通过验证,计算得出签名正确。
[0249] 以上只是对本发明作进一步的说明,并非用以限制本专利,凡为本发明等效实施,均应包含于本专利的权利要求范围之内。本发明的保护内容不局限于以上实施例,在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明
中,并且以权利要求书为保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈