1.本发明涉及区块链技术领域,尤其涉及一种基于区块链的统一身份认证方法。
背景技术:
2.区块链技术建立在互联网上,利用p2p、分布式存储和分布式关键思想,将按时间顺序排列的数据块组合成链中的特定数据结构。区块链的链结构使用加密签名来确保数据的链连接不被篡改或伪造。它可以存储大量的光时间序列指纹数据。区块链可以用作数据记录数据库,数据库由网络节点共享。与现有的数据库不同,当节点更新数据时,它们会提交数据记录,通过协商一致的机制,保证了节点间数据的一致性;一致性确定后,区块链等记录将不会被更改或删除。区块链是一种分布式账本技术:所有节点都记录和存储相同的分类账,一个块通常由前一个块的散列值、贡献者的签名、有效载荷和时间戳组成,前一个区块的散列值使得区块链不可改变。
3.由于部署环境模型的不同,区块链也会有不同的架构,如公链、联盟链、私链等。本专利提出的加密方案主要在联盟链中实现。在联盟链中,区块链的有效性和交易的有效性由一组预先确定的验证器决定。这个核查小组组成了一个联合体链。联合体链具有由验证程序组发起的验证节点和数据更改,共享的参与节点组合在一起。
4.现有的身份密码系统是指用户持有一个身份证和一个相应的私钥,用户的私钥由密钥生成中心(kgc)通过自身私钥和用户身份的组合生成。用户使用自己的私钥在数据上生成数字签名,验证者使用签名者的徽标生成自己的公钥来验证签名的合法身份。即现有的区块链身份认证方式一般采用常规的数字签名和公钥验证,容易在交易过程中泄露用户的身份信息,交易的安全性缺乏保障。
技术实现要素:
5.本发明的目的是为了解决上述现有技术存在的问题,提供一种基于区块链的统一身份认证方法,其能够有效对区块链中交易双方的身份进行认证,同时确保交易的安全性及节点身份的保密性。
6.本发明的目的是通过以下技术方案实现的:一种基于区块链的统一身份认证方法,所述区块链包括主节点和次节点,所述方法包括如下步骤:步骤1、第一次节点a和第二次节点b发起并创建事务n
ab
,双方发送事务n
ab
请求到所有主节点;步骤2、所有主节点在收到事务n
ab
请求后,共同生成两个验证密钥,并分别发送给第一次节点a和第二次节点b;每个主节点在收到事务n
ab
请求后,分别生成两个包含主节点自身身份信息的密钥,并分别发送给第一次节点a和第二次节点b,以使第一次节点a和第二次节点b对每个主节点的身份进行认证;步骤3、第一次节点a和第二次节点b根据各自的id号及事务n
ab
分别生成密钥e
a
和
e
b
,第一次节点a根据密钥e
a
及接收到的验证密钥生成认证密钥串s
a
,第二次节点b根据e
b
及接收到的验证密钥生成认证密钥串s
b
,并相互发送s
a
和s
b
,以验证彼此的身份是否合法,若是,则进行步骤4;若否,则事务n
ab
停止;步骤4、第一次节点a和第二次节点b将s
a
和s
b
发送给经步骤2认证后的所有主节点;步骤5、接收到s
a
和s
b
的每个主节点根据s
a
、s
b
及事务n
ab
信息计算e
a
和e
b
,并根据e
a
、 e
b
及n
ab
计算h(n
ab
)=h(e
a
,e
b
,n
ab h(n
ab
)),写块并广播到整个网络。
7.本发明通过主节点生成的验证密钥对次节点的身份信息进行二次加密,以提高次节点之间身份认证的安全性和保密性,而由于二次加密用到的验证密钥是主节点提供的,所以后续主节点依旧能够顺利地验证次节点经过二次加密的身份信息,从而确保整个交易过程的连续性。
8.作为本发明优选,所述步骤2中,所有主节点共同根据一个大素数p分别和两个随机数k
a
及k
b
生成两个验证密钥f(p,k
a
)及f(p,k
b
),随机数k
a
及k
b
为根据事务n
ab
生成。具体的共识机制因区块链的不同而异,比如主节点中还有main主节点,负责投票决议出一个大素数p、一个k
a
和一个k
b
,并发送给所有主节点。
9.作为本发明优选,所述验证密钥的具体计算方法为:f(p,k
a
)=g ka mod p,f(p,k
b
)=g kb mod p,即所述验证密钥为大素数p与随机数k的hash值,提高验证密钥本身的保密性,从而进一步提高后续次节点身份信息的保密性。
10.作为本发明优选,所述大素数p具有时间戳,以记录相应的交易时间。
11.作为本发明优选,所述步骤2中,每个主节点分别根据自身id计算得到的值pi和两个随机数k
a
及k
b
生成两个密钥f(pi,k
a
)及f(pi,k
b
),随机数k
a
及k
b
为根据事务n
ab
生成。同理,所述密钥为pi与随机数k的hash值,并且pi本身就是对主节点id进行加密后的值,即所述密钥为对主节点id进行二次加密后的值,能够有效确保主节点身份信息的保密性。
12.作为本发明优选,所述pi为主节点通过基于自身id的算法以固定时间间隔随机生成的值,即所述pi值并不是一直固定不变的,以进一步提高主节点身份信息的保密性。
13.作为本发明优选,所述pi来自于密码杂凑函数派生的密码函数pi=h(id
i
||hid,n),其中id
i
表示签名者的身份标识;hid表示主节点选择并公开的私钥生成函数识别符。
14.作为本发明优选,所述步骤3中,第一次节点a根据密钥e
a
及接收到的验证密钥生成认证密钥串s
a
,以及第二次节点b根据e
b
及接收到的验证密钥生成认证密钥串s
b
均采用2
‑
adic环加密算法。2
‑
adic环是一个有限环,可以对应于有限域中的任何位串,以此为理论基础进行设计时,可以提高计算机通信中二进制序列密码的识别和验证效率,同时增加攻击者的破解难度。
15.作为本发明优选,所述步骤3中,第一次节点a和第二次节点b验证彼此身份的具体方法为:通过2
‑
adic环算法计算c(s
a
,s
b
) ,若结果为0,则身份合法;否则身份不合法。
16.作为本发明优选,所述步骤1中,第一次节点a和第二次节点b发送事务n
ab
请求到所有主节点之前,还需分别验证事务n
ab
的合法性。
17.本发明的优点是:能够有效对区块链中交易双方的身份进行认证,同时确保交易的安全性及节点身份的保密性,并且,不会影响主节点对于次节点身份信息的验证,从而保证交易过程的连续性。另外,采用了2
‑
adic环算法对次节点的密钥进行加密,既能继承计算机通信中二进制序列密码的识别和验证效率,又能解决大量节点验证的密钥分配问题。
附图说明
18.图1为本发明一种基于区块链的统一身份认证方法的流程图。
具体实施方式
19.下面将结合附图和具体实施方式对本发明做进一步的详细说明。
20.一种基于区块链的统一身份认证方法,所述区块链包括主节点(kgc)和次节点,主节点相当于区块链中的矿工,次节点为区块链中的用户,当两个用户之间进行交易之前,需要对彼此的身份进行有效可靠的验证,同时不能公开泄露自己的身份,为了实现区块链中交易双方身份认证的安全性及保密性,提供如下方法:步骤1、第一次节点a和第二次节点b发起并创建事务n
ab
(即a与b之间需要进行的交易信息),双方分别验证事务n
ab
的合法性(包括交易的价格等内容),经双方认证后,双方发送事务n
ab
请求到所有主节点;步骤2、所有主节点在收到事务n
ab
请求后,共同生成两个验证密钥f(p,k
a
)及f(p,k
b
),比如 p为主节点在收到事务n
ab
请求后生成的有时间戳的大素数,k
a
和k
b
为主节点根据事务n
ab
的信息生成的随机数,具体的共识机制因区块链的不同而异,比如主节点中还有main主节点,负责投票决议出一个大素数p、一个k
a
和一个k
b
,并发送给所有主节点。主节点将验证密钥f(p,k
a
)及f(p,k
b
)发送给次节点,用于次节点后续对自身身份信息的加密,以及主节点后续对于次节点身份信息的验证,其值具体采用hash算法加密所得:f(p,k
a
)=g ka mod p,f(p,k
b
)=g kb mod p。另外,每个主节点在收到事务n
ab
请求后,分别生成两个包含主节点自身身份信息的密钥f(pi,k
a
)及f(pi,k
b
),并将f(pi,k
a
)发送给第一次节点a,将f(pi,k
b
)发送给第二次节点b;其中,pi为每个主节点基于自身id通过密码杂凑函数派生的密码函数:pi=h(id
i
||hid,n) 以固定时间间隔随机生成的值。所以,密钥f(pi,k
a
)及f(pi,k
b
)包含有加密后的主节点身份信息,类似于主节点的签名,用于次节点对主节点的身份验证,以确保后续次节点将相关信息发送给合法的主节点,其值同样采用hash算法加密所得,即密钥f(pi,k
a
)及f(pi,k
b
)为对加密后的主节点信息再次加密所得的值,以确保主节点身份的保密性。
21.步骤3、第一次节点a和第二次节点b根据各自的id号及事务n
ab
信息通过hash算法分别生成密钥e
a
和e
b
,即对自身id号进行第一层加密;接着第一次节点a根据密钥e
a
及接收到的验证密钥f(p,k
a
)通过2
‑
adic环加密算法生成认证密钥串s
a
=s(f(p,k
a
),e
a
,n
ab
),第二次节点b根据e
b
及接收到的验证密钥f(p,k
b
)通过2
‑
adic环加密算法生成认证密钥串s
b
= s(f(p,k
a
),e
a
,n
ab
),以对自身id进行第二层加密,进一步确保次节点的身份信息不外泄,并且第二层加密的信息中包含主节点的验证密钥,以便于主节点对s
a
和s
b
进行验证。然后,第一次节点a和第二次节点b相互发送s
a
和s
b
,通过2
‑
adic环加密算法进行计算验证:若c(s
a
,s
b
)=0,则身份合法,双方进行交易,并进行步骤4;若c(s
a
,s
b
)≠0,则身份不合法,事务n
ab
停止。
22.具体的,上述的2
‑
adic环加密算法如下:令二进制周期数列s=s(0),s(1),s(2),s(3),
…
,周期为t,s(t t)=s(t),一个2
‑
adic数由一列迭代串 组成,所有的2
‑
adic整数构成的集合定义为z2,在z2上定义加法与乘法运算,可以得到环z2。
23.定义2
‑
adic整数的加法运算为:其中迭代因子d0,d1,d2,
…
,对于所有的t≥0,遵循:s1(t) s2(t)=s3(t) 2d
t 1
‑
d
t
同样的,对于环z2上的乘法有以下定义:设q=1 q12 q222
…
q
r2r
是一个奇整数,对其乘以
‑
1,得到:
‑
q=(1 2 22 23
…
)(1 q12 q222
…
q
r2r
)在z2上,利用乘法定义,有:奇数在环z2上有逆元,偶数没有逆元,即环z2中的元素是以有理数的形式表现的,其中q是奇数。
24.每个2
‑
adic整数α=(q是奇数)与二元周期序列s之间有一一对应关系,所以可以通过2
‑
adic环加密算法s
a
=s(f(p,k
a
),e
a
,n
ab
),s
b
= s(f(p,k
a
),e
a
,n
ab
)得到s
a
和s
b
。
25.s
a
、s
b
通过算数互相关性来验证合法性,s
a
、s
b
满足:其中:若s
a
和s
b
满足c(s
a
,s
b
)==0,则身份合法;若c(s
a
,s
b
)= ≠0,则身份不合法。
26.步骤4、第一次节点a和第二次节点b将s
a
和s
b
发送给经步骤2认证后的所有主节点,即a和b将本次成功交易的加密信息发送给合法的主节点,以便于主节点写块存储本次事务;步骤5、接收到s
a
和s
b
的每个主节点根据s
a
、s
b
及事务n
ab
计算e
a
和e
b
,然后根据e
a
、 e
b
及n
ab
通过hash算法计算h(n
ab
)=h(e
a
,e
b
,n
ab h(n
ab
)),将结果写块并广播到整个网络。要说明的是,主节点(矿工)之间具有竞争关系,成功写块的主节点会获取奖励,所以本步骤为每个接收到s
a
和s
b
的主节点竞争去做的事,并且每个主节点生成的块内容会不尽相同,后续还需要相应的共识机制来确定哪个块是合法的,同样的,具体的共识机制因区块链的不同而异,比如通过上述的main主节点的投票决议出一个合法的块,也可以是挖矿。最后,合法的
块会被成功写入区块链,以对本次交易信息进行存储。
27.以上所述,仅为本发明较佳的具体实施方式,该具体实施方式是基于本发明整体构思下的一种实现方式,而且本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
技术特征:
1.一种基于区块链的统一身份认证方法,其特征在于,所述区块链包括主节点和次节点,所述方法包括如下步骤:步骤1、第一次节点a和第二次节点b发起并创建事务n
ab
,双方发送事务n
ab
请求到所有主节点;步骤2、所有主节点在收到事务n
ab
请求后,共同生成两个验证密钥,并分别发送给第一次节点a和第二次节点b;每个主节点在收到事务n
ab
请求后,分别生成两个包含主节点自身身份信息的密钥,并分别发送给第一次节点a和第二次节点b,以使第一次节点a和第二次节点b对每个主节点的身份进行认证;步骤3、第一次节点a和第二次节点b根据各自的id号及事务n
ab
信息分别生成密钥e
a
和e
b
,第一次节点a根据密钥e
a
及接收到的验证密钥生成认证密钥串s
a
,第二次节点b根据e
b
及接收到的验证密钥生成认证密钥串s
b
,并相互发送s
a
和s
b
,以验证彼此的身份是否合法,若是,则进行步骤4;若否,则事务n
ab
停止;步骤4、第一次节点a和第二次节点b将s
a
和s
b
发送给经步骤2认证后的所有主节点;步骤5、接收到s
a
和s
b
的每个主节点根据s
a
、s
b
及事务n
ab
计算e
a
和e
b
,并根据e
a
、 e
b
及n
ab
计算h(n
ab
)=h(e
a
,e
b
,n
ab h(n
ab
)),写块并广播到整个网络。2.根据权利要求1所述的一种基于区块链的统一身份认证方法,其特征在于,所述步骤2中,所有主节点共同根据一个大素数p分别和两个随机数k
a
及k
b
生成两个验证密钥f(p,k
a
)及f(p,k
b
),随机数k
a
及k
b
为根据事务n
ab
生成。3.根据权利要求2所述的一种基于区块链的统一身份认证方法,其特征在于,所述验证密钥的具体计算方法为:f(p,k
a
)=g ka mod p,f(p,k
b
)=g kb mod p。4.根据权利要求2所述的一种基于区块链的统一身份认证方法,其特征在于,所述大素数p具有时间戳。5.根据权利要求1所述的一种基于区块链的统一身份认证方法,其特征在于,所述步骤2中,每个主节点分别根据自身id计算得到的值pi和两个随机数k
a
及k
b
生成两个密钥f(pi,k
a
)及f(pi,k
b
),随机数k
a
及k
b
为根据事务n
ab
生成。6.根据权利要求5所述的一种基于区块链的统一身份认证方法,其特征在于,所述pi为主节点通过基于自身id的算法以固定时间间隔随机生成的值。7.根据权利要求6所述的一种基于区块链的统一身份认证方法,其特征在于,获得所述pi的具体算法为:pi=h(id
i
||hid,n)。8.根据权利要求1所述的一种基于区块链的统一身份认证方法,其特征在于,所述步骤3中,第一次节点a根据密钥e
a
及接收到的验证密钥生成认证密钥串s
a
,以及第二次节点b根据e
b
及接收到的验证密钥生成认证密钥串s
b
均采用2
‑
adic环加密算法。9.根据权利要求1所述的一种基于区块链的统一身份认证方法,其特征在于,所述步骤3中,第一次节点a和第二次节点b验证彼此身份的具体方法为:通过2
‑
adic环加密算法计算c(s
a
,s
b
) ,若结果为0,则身份合法;否则身份不合法。10.根据权利要求1所述的一种基于区块链的统一身份认证方法,其特征在于,所述步骤1中,第一次节点a和第二次节点b发送事务n
ab
请求到所有主节点之前,还需分别验证事务n
ab
的合法性。
技术总结
一种基于区块链的统一身份认证方法,属于区块链技术领域。本发明包括如下步骤:所有主节点在收到事务请求后,共同生成两个验证密钥,并分别发送给一次节点A和第二次节点B,每个主节点在收到事务请求后,分别生成两个包含主节点自身身份信息的密钥,并分别发送给一次节点A和第二次节点B;第一次节点A和第二次节点B根据各自的ID号及事务n
技术研发人员:李姝玥 张俞佳 沈仲华 黄雯静 琚春华 鲍福光
受保护的技术使用者:浙江工商大学
技术研发日:2021.03.26
技术公布日:2021/6/29
转载请注明原文地址:https://doc.8miu.com/read-2510.html