CN111339509A - 一种基于侧链的区块链跨链身份认证方法 - Google Patents

一种基于侧链的区块链跨链身份认证方法 Download PDF

Info

Publication number
CN111339509A
CN111339509A CN202010138064.3A CN202010138064A CN111339509A CN 111339509 A CN111339509 A CN 111339509A CN 202010138064 A CN202010138064 A CN 202010138064A CN 111339509 A CN111339509 A CN 111339509A
Authority
CN
China
Prior art keywords
message
tgs
user
chain
parameter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010138064.3A
Other languages
English (en)
Inventor
李斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN202010138064.3A priority Critical patent/CN111339509A/zh
Publication of CN111339509A publication Critical patent/CN111339509A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Technology Law (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种基于侧链的区块链跨链身份认证方法,包括以下步骤:服务器S通过计算得到Kc,s,还利用公钥KPc验证签名信息(rAuth2,sAuth2),确认验证码Authentication2由用户C产生;服务器S利用私钥KRs解密票据Tickets得到参数Q4和签名信息
Figure DDA0002398032680000011
再利用区块链B中TGS2的公钥KPtgs2验证签名信息
Figure DDA0002398032680000012
服务器S利用密钥Kc,s解密验证码Authentication2,判断随机数Random4的值与Tickets中的参数值一致;当用户C的身份验证完成时,服务器S构造消息M10,利用区块链A中用户C和服务器S的会话密钥对消息M10进行加密。相对现有技术,本发明确保了身份验证过程的有效性和严谨性,在保证跨链交易身份验证的同时,也提高了安全性能。

Description

一种基于侧链的区块链跨链身份认证方法
技术领域
本发明涉及区块链技术领域,特别涉及一种基于侧链的区块链跨链身份认证方法。
背景技术
现有技术的技术方案中,区块链本质上是一个分布式共享账本,其解决的核心问题是如何在没有信用背景的情况下,让点对点网络中互相不信任的双方彼此信任,并能放心的进行交易。在区块链中,某一时间段内的交易经过密码学算法处理后形成区块,以记录交易的确认信息,一个一个的区块相互关联,串联起来就形成了首尾相关的区块链。
区块链中的所有交易都会经历如下五个过程并最终被记录至账本,假设此时区块链中发生A向B转账的交易,具体过程如下:
第一步:用收款人B的公钥加密前一个交易,得到hash值h,付款人A用自己的私钥对h进行加密处理,得到数字签名,并将该签名附加在交易单中,发送给收款人B,这样就成功创建了新的交易;
第二步:付款人A在P2P网络中广播上述交易单给全网其他节点,其他节点将该交易单记入一个区块中;
第三步:每个节点努力计算特点的哈希值,以进行工作量证明,从而获得记账权和相应的奖励;
第四步:第一个计算出结果的节点向全网其他节点广播包含该交易的区块,并附加时间戳,被广播的各节点将该区块进行验证;
第五步:待其他节点验证该区块中所有交易无误后,该区块将被同步至全网所有节点的区块链中,即记入账本。
现有的单链认证技术主要分为以下三个阶段:
第一阶段:客户端C请求认证服务器AS发放访问票据授权服务器TGS的许可票据。AS发回一张加密过的票据,加密密钥由用户口令导出。当响应到达客户端时,客户端提示用户C输入口令,由此产生密钥,并试图对收到的消息解密。若口令正确,票据就能正确恢复。
第二阶段:客户C访问TGS获得访问服务器S的服务许可票据。TGS对收到的许可票据进行解密,通过检查TGS的ID是否存在来验证解密是否成功。然后检查票据生存周期,确保票据不是过期的。最后比较票据中的用户信息与收到的数据包中用户信息是否一致,以此确定用户为合法用户,并发放服务许可票据。
第三阶段:客户C持服务许可票据访问服务器S,并进行相互身份验证。
上述的现有技术方案只能对区块链内的单链交易进行有效身份验证,而对跨链交易需求的用户身份验证不适用。
发明内容
本发明的目的是提供一种基于侧链的区块链跨链身份认证方法,所要解决的技术问题是:现有技术方案只能对区块链内的单链交易进行有效身份验证,而对跨链交易需求的用户身份验证不适用。
本发明解决上述技术问题的技术方案如下:一种基于侧链的区块链跨链身份认证方法,包括以下步骤:
步骤1.区块链B的用户C构造消息Q1,其中
Figure BDA0002398032660000021
利用私钥KRc对Q1进行签名得到签名信息
Figure BDA0002398032660000022
利用消息Q1和签名信息
Figure BDA0002398032660000023
构造消息M1;利用AS1的公钥KRc对消息M1进行加密,将加密后的消息M1发送至区块链A的AS1
步骤2.AS1用私钥
Figure BDA0002398032660000031
解密消息M1,得到消息Q1和签名信息
Figure BDA0002398032660000032
AS1还用公钥KRc验证签名信息
Figure BDA0002398032660000033
为用户C发出;AS1查找本地数据库,根据消息Q1中的IDc确认用户C存在及合法性;当确认用户C合法后,AS1构造访问TGS1的票据
Figure BDA0002398032660000034
签名信息
Figure BDA0002398032660000035
为AS1用私钥
Figure BDA0002398032660000036
对Q2的签名信息,AS1用TGS1的公钥对票据
Figure BDA0002398032660000037
进行加密,AS1对票据
Figure BDA0002398032660000038
进行签名得签名信息
Figure BDA0002398032660000039
AS1根据访问TGS1的票据
Figure BDA00023980326600000310
地址IDtgs1、随机数Random1+1和签名信息
Figure BDA00023980326600000311
构造消息M2,利用用户C的公钥对消息M2加密,将加密后的消息M2发送至用户C;
步骤3.用户C用私钥KRc对消息M2进行解密,确认解密获得的参数Random1+1为步骤1中消息Q1中的随机数Random1+1,;用户C使用AS1的公钥
Figure BDA00023980326600000312
验证签名信息
Figure BDA00023980326600000313
的正确性;用户C利用地址IDC和随机数Random2构造验证码Authentication1,并用私钥KRc对验证码Authentication1进行签名得到签名信息
Figure BDA00023980326600000314
用户C再利用地址IDtgs2、访问TGS1的票据
Figure BDA00023980326600000315
验证码Authentication1和签名信息
Figure BDA00023980326600000316
构造消息M3;利用TGS1的公钥对消息M3进行加密,将加密后的消息M3发送至TGS1请求跨链访问票据;
步骤4.TGS1用私钥KRtgs1对消息M3进行解密得到票据
Figure BDA00023980326600000317
验证码Authentication1和签名信息
Figure BDA00023980326600000318
利用用户C的公钥KRc验证签名信息
Figure BDA00023980326600000319
的正确性,确认验证码Authentication1是由用户C发出;TGS1用私钥KRtgs1解密访问TGS1的票据
Figure BDA00023980326600000320
得到参数Q2和签名信息
Figure BDA00023980326600000321
TGS1用AS1的公钥
Figure BDA00023980326600000322
验证签名信息
Figure BDA00023980326600000323
确认参数Q2由AS1发出;TGS1使用参数Q2中的参数
Figure BDA00023980326600000324
解密验证码Authentication1得到的参数IDc和参数Random2,比较IDc和Q2中的IDc是一致时,确认票据
Figure BDA00023980326600000325
为用户C所拥有;
TGS1构造跨链访问票据
Figure BDA00023980326600000326
TGS1用私钥KRtgs1对参数Q3进行签名得签名信息
Figure BDA00023980326600000327
TGS1为跨链访问票据
Figure BDA00023980326600000328
进行签名得签名信息
Figure BDA00023980326600000329
TGS1根据利用地址IDtgs2、随机数Random2+1、跨链访问票据
Figure BDA0002398032660000041
和签名信息
Figure BDA0002398032660000042
构造消息M4;TGS1利用用户C的公钥对消息M4进行加密,将加密后的消息M4发送至用户C;
步骤5.用户C用私钥KRc对消息M4进行解密得到参数
Figure BDA0002398032660000043
并确认随机数Random2+1为步骤3中发出的随机数Random2+1;用户C用TGS1的公钥KPtgs1验证签名信息
Figure BDA0002398032660000044
确认跨链访问票据Tickettgs2是由TGS1签发的;用户C用
Figure BDA0002398032660000045
解密跨链访问票据Tickettgs2,得到参数Q3和签名信息
Figure BDA0002398032660000046
并将
Figure BDA0002398032660000047
作为秘密信息进行保存,而参数Q3和参数
Figure BDA0002398032660000048
作为用于零知识证明数据;用户C构造消息M5;消息M5使用区块链B的TGS2的公钥进行加密;并将消息M5发送给区块链B的TGS2
步骤6.区块链B的TGS2用私钥KRtgs2对消息M5进行解密,得到参数IDRealm,IDs
Figure BDA00023980326600000415
KPc,Random3,Q3,
Figure BDA00023980326600000416
根据TGS2中保存的关于区块链A的信任值信息,计算出满足零知识证明的参数t和参数e;区块链B的TGS2得到公开参数p和参数g,并选取随机数{n1,n2,...ni,...,ne},i∈[1,e]且ni∈(1,p-1),计算
Figure BDA0002398032660000049
再构造消息M6作为查询,将消息M6发送至用户C;
步骤7.用户C收到消息M6后,取得参数T1,T2,...,Te,从第三方获取公开参数p和参数g,并使用秘密信息
Figure BDA00023980326600000410
计算
Figure BDA00023980326600000411
再构造消息M7作为对消息M6的对应,将消息M7发送至区块链B的TGS2
步骤8.区块链B的TGS2收到消息M7后,取得参数C1,C2,...,Ce;再利用区块链A中TGS1的公钥KPtgs1、参数Q3和参数
Figure BDA00023980326600000412
验证等式
Figure BDA00023980326600000413
是否成立,其中i∈[1,e];当验证等式
Figure BDA00023980326600000414
成立,则判断是否满足零知识证明条件,当不满足零知识证明条件时,则继续选择e个随机数{n1,n2,...ni,...,ne},i∈[1,e],并重复步骤6、步骤7和步骤8;当重复步骤6、步骤7和步骤8后满足零知识证明条件,则区块链B的TGS2基于对区块链A的TGS1信任,确认用户C为合法用户;区块链B的TGS2为用户C构建访问服务的票据
Figure BDA0002398032660000051
访问服务的票据Tickets使用服务器S的公钥进行加密,其中
Figure BDA0002398032660000052
还对TGS2访问服务的票据Tickets进行签名,得签名信息
Figure BDA0002398032660000053
TGS2构造消息M8,将消息M8发生至用户C;
步骤9.用户C用私钥KRc对消息M8进行解密,得到参数
Figure BDA0002398032660000054
验证收到的随机数Random3+1为在步骤5中产生的Random3随机数+1;用户C用TGS2的公钥KRtgs2验证签名信息
Figure BDA0002398032660000055
验证正确,则生成验证码
Figure BDA0002398032660000056
并用私钥KRc对验证码Authentication2签名得到(rAuth2,sAuth2);最后,用户C构造消息M9;利用服务器S的公钥对消息M9进行加密,将加密后的消息M9发送至服务器S;
步骤10.服务器S利用私钥KRs解密消息M9,得到访问服务的票据Tickets、验证码Authentication2、公钥KPc、签名信息(rAuth2,sAuth2)和签名信息
Figure BDA0002398032660000057
服务器S通过计算得到Kc,s,还利用公钥KPc验证签名信息(rAuth2,sAuth2),确认验证码Authentication2由用户C产生;服务器S利用私钥KRs解密票据Tickets得到参数Q4和签名信息
Figure BDA0002398032660000058
再利用区块链B中TGS2的公钥KPtgs2验证签名信息
Figure BDA0002398032660000059
确认访问服务的票据Tickets由TGS2签发;服务器S利用密钥Kc,s解密验证码Authentication2,得到参数IDRealm,Random4
Figure BDA00023980326600000510
判断随机数Random4的值与Tickets中的参数值一致,确保该票据为初始申请票据的用户C持有;当用户C的身份验证完成时,服务器S构造消息M10,利用区块链A中用户C和服务器S的会话密钥对消息M10进行加密。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,步骤1中:
Figure BDA00023980326600000511
进一步,步骤2中:
访问TGS1的票据
Figure BDA00023980326600000512
消息
Figure BDA00023980326600000513
进一步,步骤3中:验证码
Figure BDA0002398032660000061
消息
Figure BDA0002398032660000062
进一步,步骤4中:跨链访问票据
Figure BDA0002398032660000063
其中参数Q3=h(IDtgs2,IDtgs1,IDc),h()表示单向哈希函数;
消息
Figure BDA0002398032660000064
进一步,步骤5中:消息
Figure BDA0002398032660000065
进一步,步骤6中:消息
Figure BDA0002398032660000066
步骤7中:消息
Figure BDA0002398032660000067
进一步,步骤8中:消息
Figure BDA0002398032660000068
进一步,步骤9中:
消息
Figure BDA0002398032660000069
进一步,步骤10中:参数
Figure BDA00023980326600000610
消息
Figure BDA00023980326600000611
本发明的有益效果是:通过零知识证明算法确保了身份验证过程的有效性和严谨性,在保证跨链交易身份验证的同时,也提高了安全性能,可以有效抵御诸如重放攻击,中间人攻击以及窃听等常见网络攻击。
附图说明
图1为本发明一种基于侧链的区块链跨链身份认证方法中服务器应用模块框图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
侧链与跨链技术
区块链***从基于POW的比特币,以太坊网络,发展到基于PBFT及DPOS共识算法的联盟链及公链网络,虽然实现了TPS从个位数向万级别的巨大提升,但却以牺牲了一定的“去中心化性”为代价,并不符合区块链***的核心理念。
伴随着比特币的扩容困境催生了侧链技术。侧链的概念是相对主链而言的。当主链的性能出现瓶颈,或者某些功能无法扩展的时候,把资产转移到侧链上,相关的交易只需要在侧链上执行,从而达到了分担主链的压力,扩展主链的性能和功能的目的。
侧链技术方案主要针对比特币提出。因为比特币的技术架构,本身就有扩展性的不足。比如交易延时长,吞吐量低,不支持图灵完备的智能合约,都是比特币内在的设计缺陷。且这些缺陷必须通过重构比特币基础框架和算法才能解决。
但是考虑到比特币作为市值最大,流通性最高,认可度最广的数字货币,修改其基础架构可能会引起巨大的风险,这决定了比特币很难通过技术升级提高自身的可扩展性。
侧链技术的基本想法是另外启动一条侧链,将比特币资产转移到侧链上,反之也可以将侧链上的资产再转回到比特币。比特币在主链和侧链上的资产可以双向转移,这个过程即资产的双向锚定。
相对于侧链,跨链是指两个或者多个不同链上的资产和状态,通过一个可信机制,互相转移,互相传递,互相交换。在跨链的场景中,链与链之间的关系不仅仅是主-侧的关系,也可以是对等的,链上的资产不仅仅可以双向锚定,也可以通过可变汇率互相兑换,甚至也可以通过智能合约的方式完成交互。为了实现链与链之间的互联互通,首先要设计区块链***之间的身份认证机制,使得一个区块链可以接收并且验证另一个区块链上的交易。
基于侧链的跨链身份认证
符号解释
Client表示客户端;
AS(Authentication Server)为认证服务器;
KDC(Key Distribution Center)=密钥分发中心
TGT(Ticket Granting Ticket)=票据授权票据
TGS(Ticket Granting Server)=票据授权服务器
Ek{M}表示密钥K加密信息M;
Random表示防止重放攻击设置的随机数;
KP,KR分别表示公钥和私钥;
Kx,y表示x和y共享的会话密钥;
(rM,sM)表示对信息M的签名;
Tickettgs1表示链内访问许可票据;
Tickets表示跨链访问许可票据;
Tickettgs1表示服务许可票据。
如图1所示,一种基于侧链的区块链跨链身份认证方法,包括以下步骤:
步骤1.区块链B的用户C构造消息Q1,其中
Figure BDA0002398032660000081
利用私钥KRc对Q1进行签名得到签名信息
Figure BDA0002398032660000082
利用消息Q1和签名信息
Figure BDA0002398032660000083
构造消息M1,其中
Figure BDA0002398032660000084
利用AS1的公钥KRc对消息M1进行加密,将加密后的消息M1发送至区块链A的AS1
步骤2.AS1用私钥
Figure BDA0002398032660000085
解密消息M1,得到消息Q1和签名信息
Figure BDA0002398032660000086
AS1还用公钥KRc验证签名信息
Figure BDA0002398032660000087
为用户C发出;AS1查找本地数据库,根据消息Q1中的IDc确认用户C存在及合法性;当确认用户C合法后,AS1构造访问TGS1的票据
Figure BDA0002398032660000088
其中
Figure BDA0002398032660000089
Figure BDA00023980326600000810
为AS1用私钥
Figure BDA00023980326600000811
对Q2的签名信息,AS1用TGS1的公钥对票据
Figure BDA00023980326600000812
进行加密,AS1对票据
Figure BDA0002398032660000091
进行签名得签名信息
Figure BDA0002398032660000092
AS1根据票据
Figure BDA0002398032660000093
地址IDtgs1、随机数Random1+1和签名信息
Figure BDA0002398032660000094
构造消息M2,其中
Figure BDA0002398032660000095
利用用户C的公钥对消息M2加密,将加密后的消息M2发送至用户C;
步骤3.用户C用私钥KRc对消息M2进行解密,确认解密获得的参数Random1+1为步骤1中消息Q1中的随机数Random1+1,;用户C使用AS1的公钥
Figure BDA0002398032660000096
验证签名信息
Figure BDA0002398032660000097
的正确性;用户C利用地址IDC和随机数Random2构造验证码
Figure BDA0002398032660000098
并用私钥KRc对Authentication1进行签名得到签名信息
Figure BDA0002398032660000099
用户C再利用地址IDtgs2、票据
Figure BDA00023980326600000910
验证码Authentication1和签名信息
Figure BDA00023980326600000911
构造消息M3,其中
Figure BDA00023980326600000912
利用TGS1的公钥对消息M3进行加密,将加密后的消息M3发送至TGS1请求跨链访问票据;
步骤4.TGS1用私钥KRtgs1对消息M3进行解密得到票据
Figure BDA00023980326600000913
验证码Authentication1和签名信息
Figure BDA00023980326600000914
利用用户C的公钥KRc验证签名信息
Figure BDA00023980326600000915
的正确性,确认验证码Authentication1是由用户C发出;TGS1用私钥KRtgs1解密票据
Figure BDA00023980326600000916
得到参数Q2和签名信息
Figure BDA00023980326600000917
TGS1用AS1的公钥
Figure BDA00023980326600000918
验证签名信息
Figure BDA00023980326600000919
确认参数Q2由AS1发出;TGS1使用参数Q2中的参数
Figure BDA00023980326600000920
解密验证码Authentication1得到的参数IDc和参数Random2,比较IDc和Q2中的IDc是一致时,确认票据
Figure BDA00023980326600000921
为用户C所拥有;
TGS1构造跨链访问票据
Figure BDA00023980326600000922
其中参数Q3=h(IDtgs2,IDtgs1,IDc),h()表示单向哈希函数;TGS1用私钥KRtgs1对参数Q3进行签名得签名信息
Figure BDA00023980326600000923
TGS1为跨链访问票据
Figure BDA00023980326600000924
进行签名得签名信息
Figure BDA00023980326600000925
TGS1根据利用地址IDtgs2、随机数Random2+1、跨链访问票据
Figure BDA00023980326600000926
和签名信息
Figure BDA00023980326600000927
构造消息M4,其中消息
Figure BDA00023980326600000928
TGS1利用用户C的公钥对消息M4进行加密,将加密后的消息M4发送至用户C;
步骤5.用户C私钥KRc对消息M4进行解密得到参数
Figure BDA0002398032660000101
并确认随机数Random2+1为步骤3中发出的随机数Random2+1;用户C用TGS1的公钥KPtgs1验证签名信息
Figure BDA0002398032660000102
确认跨链访问票据Tickettgs2是由TGS1签发的;用户C用
Figure BDA0002398032660000103
解密跨链访问票据Tickettgs2,得到参数Q3和签名信息
Figure BDA0002398032660000104
并将
Figure BDA0002398032660000105
作为秘密信息进行保存,而参数Q3和参数
Figure BDA0002398032660000106
作为用于零知识证明数据;用户C构造消息M5,其中
Figure BDA0002398032660000107
消息M5使用区块链B的TGS2的公钥进行加密;并将消息M5发送给区块链B的TGS2
步骤6.区块链B的TGS2用私钥KRtgs2对消息M5进行解密,得到参数IDRealm,IDs
Figure BDA0002398032660000108
KPc,Random3,Q3,
Figure BDA0002398032660000109
根据TGS2中保存的关于区块链A的信任值信息,计算出满足零知识证明的参数t和参数e;区块链B的TGS2得到公开参数p和参数g,并选取随机数{n1,n2,...ni,...,ne},i∈[1,e]且ni∈(1,p-1),计算
Figure BDA00023980326600001010
再构造消息M6作为查询,其中
Figure BDA00023980326600001011
将消息M6发送至用户C;
步骤7.用户C收到消息M6后,取得参数T1,T2,...,Te,从第三方获取公开参数p和参数g,并使用秘密信息
Figure BDA00023980326600001012
计算
Figure BDA00023980326600001013
再构造消息M7作为对消息M6的对应,其中
Figure BDA00023980326600001014
将消息M7发送至区块链B的TGS2
步骤8.区块链B的TGS2收到消息M7后,取得参数C1,C2,...,Ce;再利用区块链A中TGS1的公钥KPtgs1、参数Q3和参数
Figure BDA00023980326600001015
验证等式
Figure BDA00023980326600001016
是否成立,其中i∈[1,e];当验证等式
Figure BDA00023980326600001017
成立,则判断是否满足零知识证明条件,当不满足零知识证明条件时,则继续选择e个随机数{n1,n2,...ni,...,ne},i∈[1,e],并重复步骤6、步骤7和步骤8;当重复步骤6、步骤7和步骤8后满足零知识证明条件,则区块链B的TGS2基于对区块链A的TGS1信任,确认用户C为合法用户;区块链B的TGS2为用户C构建访问服务的票据
Figure BDA0002398032660000111
访问服务的票据Tickets使用服务器S的公钥进行加密,其中
Figure BDA0002398032660000112
还对TGS2访问服务的票据Tickets进行签名,得签名信息
Figure BDA0002398032660000113
TGS2构造消息M8,其中
Figure BDA0002398032660000114
将消息M8发生至用户C;
步骤9.用户C用私钥KRc对消息M8进行解密,得到参数
Figure BDA0002398032660000115
验证收到的随机数Random3+1为在步骤5中产生的Random3随机数+1;用户C用TGS2的公钥KRtgs2验证签名信息
Figure BDA0002398032660000116
验证正确,则生成验证码
Figure BDA0002398032660000117
并用私钥KRc对验证码Authentication2签名得到(rAuth2,sAuth2);最后,用户C构造消息M9,其中
Figure BDA0002398032660000118
利用服务器S的公钥对消息M9进行加密,将加密后的消息M9发送至服务器S;
步骤10.服务器S利用私钥KRs解密消息M9,得到访问服务的票据Tickets、验证码Authentication2、公钥KPc、签名信息(rAuth2,sAuth2)和签名信息
Figure BDA0002398032660000119
服务器S通过计算得到Kc,s,还利用公钥KPc验证签名信息(rAuth2,sAuth2),确认验证码Authentication2由用户C产生;服务器S利用私钥KRs解密票据Tickets得到参数Q4
Figure BDA00023980326600001110
其中
Figure BDA00023980326600001111
再利用区块链B中TGS2的公钥KPtgs2验证签名信息
Figure BDA00023980326600001112
确认访问服务的票据Tickets由TGS2签发;服务器S利用密钥Kc,s解密验证码Authentication2,得到参数IDRealm,Random4
Figure BDA00023980326600001113
判断随机数Random4的值与Tickets中的参数值一致,确保该票据为初始申请票据的用户C持有;当用户C的身份验证完成时,服务器S构造消息
Figure BDA00023980326600001114
利用区块链A中用户C和服务器S的会话密钥对消息M10进行加密。
安全性分析
一种基于侧链的区块链跨链身份认证方法提供了基本的身份认证信任机制,保证了跨链交易过程中的安全性,具体分析如下:
重放攻击,在跨链身份认证过程中,由于身份认证过程需严格满足零知识证明条件,整个链与链之间交互过程中的信息都不包含用户的私密信息,就算攻击者可以重发其中某几步攻击,也无法获取更多有价值的信息;此外,在加解密阶段引入随机数,使得接收方能够确认收到的消息是否为自己所发送,避免了时钟同步带来的干扰。
中间人攻击,由于整个***采用了数字签名及零知识证明方法,使得接受者可以确认信息是否为原始发送方所发送,从而杜绝了中间人存在的可能性。
合谋攻击,由于采用了严格的零知识证明机制,用户在向其他链证明自己身份的同时,并不需要提交与自己身份信息相关的私密信息,这样可以有效避免合谋攻击的发生。
窃听,由于用户和应用服务器之间的会话密钥由此二者自行协商,因此在会话过程中杜绝了窃听的可能性。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于侧链的区块链跨链身份认证方法,其特征在于,包括以下步骤:
步骤1.区块链B的用户C构造消息Q1,其中
Figure FDA0002398032650000011
利用私钥KRc对Q1进行签名得到签名信息
Figure FDA0002398032650000012
利用消息Q1和签名信息
Figure FDA0002398032650000013
构造消息M1;利用AS1的公钥KRc对消息M1进行加密,将加密后的消息M1发送至区块链A的AS1
步骤2.AS1用私钥
Figure FDA0002398032650000014
解密消息M1,得到消息Q1和签名信息
Figure FDA0002398032650000015
AS1还用公钥KRc验证签名信息
Figure FDA0002398032650000016
为用户C发出;AS1查找本地数据库,根据消息Q1中的IDc确认用户C存在及合法性;当确认用户C合法后,AS1构造访问TGS1的票据
Figure FDA0002398032650000017
签名信息
Figure FDA0002398032650000018
为AS1用私钥
Figure FDA0002398032650000019
对Q2的签名信息,AS1用TGS1的公钥对票据
Figure FDA00023980326500000110
进行加密,AS1对票据
Figure FDA00023980326500000111
进行签名得签名信息
Figure FDA00023980326500000112
AS1根据访问TGS1的票据
Figure FDA00023980326500000113
地址IDtgs1、随机数Random1+1和签名信息
Figure FDA00023980326500000114
构造消息M2,利用用户C的公钥对消息M2加密,将加密后的消息M2发送至用户C;
步骤3.用户C用私钥KRc对消息M2进行解密,确认解密获得的参数Random1+1为步骤1中消息Q1中的随机数Random1+1,;用户C使用AS1的公钥
Figure FDA00023980326500000115
验证签名信息
Figure FDA00023980326500000116
的正确性;用户C利用地址IDC和随机数Random2构造验证码Authentication1,并用私钥KRc对验证码Authentication1进行签名得到签名信息
Figure FDA00023980326500000117
用户C再利用地址IDtgs2、访问TGS1的票据
Figure FDA00023980326500000118
验证码Authentication1和签名信息
Figure FDA00023980326500000119
构造消息M3;利用TGS1的公钥对消息M3进行加密,将加密后的消息M3发送至TGS1请求跨链访问票据;
步骤4.TGS1用私钥KRtgs1对消息M3进行解密得到票据
Figure FDA00023980326500000120
验证码Authentication1和签名信息
Figure FDA0002398032650000021
利用用户C的公钥KRc验证签名信息
Figure FDA0002398032650000022
的正确性,确认验证码Authentication1是由用户C发出;TGS1用私钥KRtgs1解密访问TGS1的票据
Figure FDA0002398032650000023
得到参数Q2和签名信息
Figure FDA0002398032650000024
TGS1用AS1的公钥
Figure FDA0002398032650000025
验证签名信息
Figure FDA0002398032650000026
确认参数Q2由AS1发出;TGS1使用参数Q2中的参数
Figure FDA0002398032650000027
解密验证码Authentication1得到的参数IDc和参数Random2,比较IDc和Q2中的IDc是一致时,确认票据
Figure FDA0002398032650000028
为用户C所拥有;
TGS1构造跨链访问票据
Figure FDA0002398032650000029
TGS1用私钥KRtgs1对参数Q3进行签名得签名信息
Figure FDA00023980326500000210
TGS1为跨链访问票据
Figure FDA00023980326500000211
进行签名得签名信息
Figure FDA00023980326500000212
TGS1根据利用地址IDtgs2、随机数Random2+1、跨链访问票据
Figure FDA00023980326500000213
和签名信息
Figure FDA00023980326500000214
构造消息M4;TGS1利用用户C的公钥对消息M4进行加密,将加密后的消息M4发送至用户C;
步骤5.用户C用私钥KRc对消息M4进行解密得到参数
Figure FDA00023980326500000215
Random2+1,Tickettgs2,
Figure FDA00023980326500000216
并确认随机数Random2+1为步骤3中发出的随机数Random2+1;用户C用TGS1的公钥KPtgs1验证签名信息
Figure FDA00023980326500000217
确认跨链访问票据Tickettgs2是由TGS1签发的;用户C用
Figure FDA00023980326500000218
解密跨链访问票据Tickettgs2,得到参数Q3和签名信息
Figure FDA00023980326500000219
并将
Figure FDA00023980326500000220
作为秘密信息进行保存,而参数Q3和参数
Figure FDA00023980326500000221
作为用于零知识证明数据;用户C构造消息M5;消息M5使用区块链B的TGS2的公钥进行加密;并将消息M5发送给区块链B的TGS2
步骤6.区块链B的TGS2用私钥KRtgs2对消息M5进行解密,得到参数IDRealm,IDs
Figure FDA00023980326500000222
KPc,Random3,Q3,
Figure FDA00023980326500000223
根据TGS2中保存的关于区块链A的信任值信息,计算出满足零知识证明的参数t和参数e;区块链B的TGS2得到公开参数p和参数g,并选取随机数{n1,n2,...ni,...,ne},i∈[1,e]且ni∈(1,p-1),计算
Figure FDA00023980326500000224
i∈[1,e];再构造消息M6作为查询,将消息M6发送至用户C;
步骤7.用户C收到消息M6后,取得参数T1,T2,...,Te,从第三方获取公开参数p和参数g,并使用秘密信息
Figure FDA0002398032650000031
计算
Figure FDA0002398032650000032
i∈[1,e];再构造消息M7作为对消息M6的对应,将消息M7发送至区块链B的TGS2
步骤8.区块链B的TGS2收到消息M7后,取得参数C1,C2,...,Ce;再利用区块链A中TGS1的公钥KPtgs1、参数Q3和参数
Figure FDA0002398032650000033
验证等式
Figure FDA0002398032650000034
是否成立,其中i∈[1,e];当验证等式
Figure FDA0002398032650000035
成立,则判断是否满足零知识证明条件,当不满足零知识证明条件时,则继续选择e个随机数{n1,n2,...ni,...,ne},i∈[1,e],并重复步骤6、步骤7和步骤8;当重复步骤6、步骤7和步骤8后满足零知识证明条件,则区块链B的TGS2基于对区块链A的TGS1信任,确认用户C为合法用户;区块链B的TGS2为用户C构建访问服务的票据
Figure FDA0002398032650000036
访问服务的票据Tickets使用服务器S的公钥进行加密,其中
Figure FDA0002398032650000037
还对TGS2访问服务的票据Tickets进行签名,得签名信息
Figure FDA0002398032650000038
TGS2构造消息M8,将消息M8发生至用户C;
步骤9.用户C用私钥KRc对消息M8进行解密,得到参数
Figure FDA0002398032650000039
Random3+1,Tickets,
Figure FDA00023980326500000310
验证收到的随机数Random3+1为在步骤5中产生的Random3随机数+1;用户C用TGS2的公钥KRtgs2验证签名信息
Figure FDA00023980326500000311
验证正确,则生成验证码
Figure FDA00023980326500000312
并用私钥KRc对验证码Authentication2签名得到(rAuth2,sAuth2);最后,用户C构造消息M9;利用服务器S的公钥对消息M9进行加密,将加密后的消息M9发送至服务器S;
步骤10.服务器S利用私钥KRs解密消息M9,得到访问服务的票据Tickets、验证码Authentication2、公钥KPc、签名信息(rAuth2,sAuth2)和签名信息服务器S通过计算得到Kc,s,还利用公钥KPc验证签名信息(rAuth2,sAuth2),确认验证码Authentication2由用户C产生;服务器S利用私钥KRs解密票据Tickets得到参数Q4和签名信息
Figure FDA00023980326500000314
再利用区块链B中TGS2的公钥KPtgs2验证签名信息
Figure FDA00023980326500000315
确认访问服务的票据Tickets由TGS2签发;服务器S利用密钥Kc,s解密验证码Authentication2,得到参数IDRealm,Random4
Figure FDA0002398032650000041
判断随机数Random4的值与Tickets中的参数值一致,确保该票据为初始申请票据的用户C持有;当用户C的身份验证完成时,服务器S构造消息M10,利用区块链A中用户C和服务器S的会话密钥对消息M10进行加密。
2.根据权利要求1所述一种基于侧链的区块链跨链身份认证方法,其特征在于,步骤1中:
Figure FDA0002398032650000042
3.根据权利要求2所述一种基于侧链的区块链跨链身份认证方法,其特征在于,步骤2中:
访问TGS1的票据
Figure FDA0002398032650000043
消息
Figure FDA0002398032650000044
4.根据权利要求3所述一种基于侧链的区块链跨链身份认证方法,其特征在于,步骤3中:验证码
Figure FDA0002398032650000045
消息
Figure FDA0002398032650000046
5.根据权利要求4所述一种基于侧链的区块链跨链身份认证方法,其特征在于,步骤4中:跨链访问票据
Figure FDA0002398032650000047
其中参数Q3=h(IDtgs2,IDtgs1,IDc),h()表示单向哈希函数;
消息
Figure FDA0002398032650000048
6.根据权利要求5所述一种基于侧链的区块链跨链身份认证方法,其特征在于,步骤5中:消息
Figure FDA0002398032650000049
7.根据权利要求6所述一种基于侧链的区块链跨链身份认证方法,其特征在于,步骤6中:消息
Figure FDA00023980326500000410
步骤7中:消息
Figure FDA00023980326500000411
8.根据权利要求7所述一种基于侧链的区块链跨链身份认证方法,其特征在于,步骤8中:消息
Figure FDA00023980326500000412
9.根据权利要求8所述一种基于侧链的区块链跨链身份认证方法,其特征在于,步骤9中:
消息
Figure FDA0002398032650000051
10.根据权利要求9所述一种基于侧链的区块链跨链身份认证方法,其特征在于,步骤10中:参数
Figure FDA0002398032650000052
消息
Figure FDA0002398032650000053
CN202010138064.3A 2020-03-03 2020-03-03 一种基于侧链的区块链跨链身份认证方法 Pending CN111339509A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010138064.3A CN111339509A (zh) 2020-03-03 2020-03-03 一种基于侧链的区块链跨链身份认证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010138064.3A CN111339509A (zh) 2020-03-03 2020-03-03 一种基于侧链的区块链跨链身份认证方法

Publications (1)

Publication Number Publication Date
CN111339509A true CN111339509A (zh) 2020-06-26

Family

ID=71182121

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010138064.3A Pending CN111339509A (zh) 2020-03-03 2020-03-03 一种基于侧链的区块链跨链身份认证方法

Country Status (1)

Country Link
CN (1) CN111339509A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113010861A (zh) * 2021-03-16 2021-06-22 支付宝(杭州)信息技术有限公司 一种基于区块链的融资事务中的身份验证方法和***
CN114430329A (zh) * 2020-10-15 2022-05-03 ***通信集团浙江有限公司 一种数据鉴权认证方法、鉴权侧链节点及***
CN114513526A (zh) * 2020-10-26 2022-05-17 北京荷月科技有限公司 一种跨链访问数据的方法、***以及第一区块链
CN116049802A (zh) * 2023-03-31 2023-05-02 深圳竹云科技股份有限公司 应用单点登陆方法、***、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019052286A1 (zh) * 2017-09-12 2019-03-21 广州广电运通金融电子股份有限公司 基于区块链的用户身份验证方法、装置及***
CN110505058A (zh) * 2019-08-20 2019-11-26 西安电子科技大学 跨链场景下异构区块链的身份认证方法
CN111539718A (zh) * 2020-01-19 2020-08-14 南京邮电大学 一种基于侧链的区块链跨链身份认证方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019052286A1 (zh) * 2017-09-12 2019-03-21 广州广电运通金融电子股份有限公司 基于区块链的用户身份验证方法、装置及***
CN110505058A (zh) * 2019-08-20 2019-11-26 西安电子科技大学 跨链场景下异构区块链的身份认证方法
CN111539718A (zh) * 2020-01-19 2020-08-14 南京邮电大学 一种基于侧链的区块链跨链身份认证方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114430329A (zh) * 2020-10-15 2022-05-03 ***通信集团浙江有限公司 一种数据鉴权认证方法、鉴权侧链节点及***
CN114430329B (zh) * 2020-10-15 2024-03-19 ***通信集团浙江有限公司 一种数据鉴权认证方法、鉴权侧链节点及***
CN114513526A (zh) * 2020-10-26 2022-05-17 北京荷月科技有限公司 一种跨链访问数据的方法、***以及第一区块链
CN113010861A (zh) * 2021-03-16 2021-06-22 支付宝(杭州)信息技术有限公司 一种基于区块链的融资事务中的身份验证方法和***
CN116049802A (zh) * 2023-03-31 2023-05-02 深圳竹云科技股份有限公司 应用单点登陆方法、***、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
US11842317B2 (en) Blockchain-based authentication and authorization
CN111539718B (zh) 一种基于侧链的区块链跨链身份认证方法
CN113194469B (zh) 基于区块链的5g无人机跨域身份认证方法、***及终端
CN106878318B (zh) 一种区块链实时轮询云端***
CN108768652B (zh) 一种可抗量子攻击的联盟区块链底层加密方法
CN110959163B (zh) 能够在多个存储节点上安全存储大型区块链的计算机实现的***和方法
CN111339509A (zh) 一种基于侧链的区块链跨链身份认证方法
Feng et al. An efficient privacy-preserving authentication model based on blockchain for VANETs
CN113301022B (zh) 基于区块链和雾计算的物联网设备身份安全认证方法
Xue et al. A distributed authentication scheme based on smart contract for roaming service in mobile vehicular networks
CN111163109B (zh) 区块链去中心式节点防仿冒方法
CN109861956B (zh) 基于状态通道的数据验证***、方法、装置及设备
CN114036539A (zh) 基于区块链的安全可审计物联网数据共享***及方法
CN103905384A (zh) 基于安全数字证书的嵌入式终端间会话握手的实现方法
Xu et al. Authentication‐Based Vehicle‐to‐Vehicle Secure Communication for VANETs
EP3707853B1 (en) Conducting secure interactions utilizing reliability information
CN115345618B (zh) 基于混合后量子数字签名的区块链交易验证方法及***
CN113468570A (zh) 基于智能合约的隐私数据共享方法
CN113162907A (zh) 一种基于区块链的属性基访问控制方法及***
Kara et al. VoIPChain: A decentralized identity authentication in Voice over IP using Blockchain
Dwivedi et al. Design of blockchain and ECC-based robust and efficient batch authentication protocol for vehicular ad-hoc networks
CN115865426B (zh) 隐私求交方法和装置
CN111353780A (zh) 授权验证方法、装置及存储介质
CN111062029A (zh) 一种基于标识密码的多因子认证协议
Nait-Hamoud et al. Certificateless Public Key Systems Aggregation: An enabling technique for 5G multi-domain security management and delegation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200626

WD01 Invention patent application deemed withdrawn after publication