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

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

Info

Publication number
CN111539718B
CN111539718B CN202010062108.9A CN202010062108A CN111539718B CN 111539718 B CN111539718 B CN 111539718B CN 202010062108 A CN202010062108 A CN 202010062108A CN 111539718 B CN111539718 B CN 111539718B
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.)
Active
Application number
CN202010062108.9A
Other languages
English (en)
Other versions
CN111539718A (zh
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.)
Nanjing University of Posts and Telecommunications
Original Assignee
Nanjing University of Posts and Telecommunications
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 Nanjing University of Posts and Telecommunications filed Critical Nanjing University of Posts and Telecommunications
Priority to CN202010062108.9A priority Critical patent/CN111539718B/zh
Publication of CN111539718A publication Critical patent/CN111539718A/zh
Application granted granted Critical
Publication of CN111539718B publication Critical patent/CN111539718B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

一种基于侧链的区块链跨链身份认证方法,包括以下步骤:服务器S通过计算得到Kc,s,还利用公钥KPc验证签名信息(rAuth2,sAuth2),确认验证码Authentication2由用户C产生;服务器S利用私钥KRs解密票据Tickets得到参数Q4和签名信息
Figure DDA0002374497320000011
再利用区块链B中TGS2的公钥KPtgs2验证签名信息
Figure DDA0002374497320000012
服务器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,并进行相互身份验证。
上述的现有技术方案只能对区块链内的单链交易进行有效身份验证,而对 跨链交易需求的用户身份验证不适用。
发明内容
本发明所要解决的技术问题是克服现有技术的不足,提供一种基于侧链的 区块链跨链身份认证方法,确保了身份验证过程的有效性和严谨性,在保证跨 链交易身份验证的同时,也提高了安全性能。
本发明提供一种基于侧链的区块链跨链身份认证方法,包括如下步骤,
步骤S1、区块链B的用户C构造消息Q1,其中,
Figure BDA0002374497300000021
利用私钥KRc对Q1进行签名得到签名信息
Figure BDA0002374497300000022
利用消息Q1和签名信息
Figure BDA0002374497300000023
构造消息M1;利用AS1(含义是什么)的公钥KRc对消息M1进行加密, 将加密后的消息M1发送至区块链A的AS1
步骤S2、AS1用私钥
Figure BDA0002374497300000024
解密消息M1,获取消息Q1和签名信息
Figure BDA0002374497300000025
并用公钥KRc验证签名信息
Figure BDA0002374497300000026
为用户C发出;AS1查找本地数据库,根据 消息Q1中的IDc确认用户C存在及合法性;当确认用户C合法后,AS1构造访问 TGS1的票据
Figure BDA0002374497300000027
签名信息
Figure BDA0002374497300000028
为AS1用私钥
Figure BDA0002374497300000029
对Q2的签名信息, AS1用TGS1的公钥对票据
Figure BDA00023744973000000210
进行加密,AS1对票据
Figure BDA00023744973000000211
进行签名得签 名信息
Figure BDA0002374497300000031
AS1根据访问TGS1的票据
Figure BDA0002374497300000032
地址IDtgs1、随机数 Random1+1和签名信息
Figure BDA0002374497300000033
构造消息M2,利用用户C的公钥对消息 M2加密,将加密后的消息M2发送至用户C;
步骤S3、用户C用私钥KRc对消息M2进行解密,确认解密获得的参数 Random1+1为消息Q1中的随机数Random1+1,;用户C使用AS1的公钥
Figure BDA0002374497300000034
验 证签名信息
Figure BDA0002374497300000035
的正确性;用户C利用地址IDC和随机数Random2构 造验证码Authentication1,并用私钥KRc对验证码Authentication1进行签名得到 签名信息
Figure BDA0002374497300000036
用户C再利用地址IDtgs2、访问TGS1的票据
Figure BDA0002374497300000037
验 证码Authentication1和签名信息
Figure BDA0002374497300000038
构造消息M3;利用TGS1的公钥对消 息M3进行加密,将加密后的消息M3发送至TGS1请求跨链访问票据;
步骤S4、TGS1用私钥KRtgs1对消息M3进行解密获取票据
Figure BDA0002374497300000039
验证码Authentication1和签名信息
Figure BDA00023744973000000310
利用用户C的公钥KRc验证签名信息
Figure BDA00023744973000000311
的正确性,确认验证码Authentication1是由用户C发出;TGS1用私 钥KRtgs1解密访问TGS1的票据
Figure BDA00023744973000000312
获取参数Q2和签名信息
Figure BDA00023744973000000313
TGS1用AS1的公钥
Figure BDA00023744973000000314
验证签名信息
Figure BDA00023744973000000315
确认参数Q2由AS1发出;TGS1使用 参数Q2中的参数
Figure BDA00023744973000000316
解密验证码Authentication1得到的参数IDc和参数 Random2,比较IDc和Q2中的IDc是一致时,确认票据
Figure BDA00023744973000000317
为用户C所拥有;
TGS1构造跨链访问票据
Figure BDA00023744973000000318
TGS1用私钥KRtgs1对参数Q3进行签名得 签名信息
Figure BDA00023744973000000319
TGS1为跨链访问票据
Figure BDA00023744973000000320
进行签名得签名信息
Figure BDA00023744973000000321
TGS1根据利用地址IDtgs2、随机数Random2+1、跨链访问票据
Figure BDA00023744973000000322
和签名信息
Figure BDA00023744973000000323
构造消息M4;TGS1利用用户C的公钥对消 息M4进行加密,将加密后的消息M4发送至用户C;
步骤S5、用户C用私钥KRc对消息M4进行解密得到参数
Figure BDA00023744973000000324
并确认随机数Random2+1为步骤3 中发出的随机数Random2+1;用户C用TGS1的公钥KPtgs1验证签名信息
Figure BDA0002374497300000041
确认跨链访问票据Tickettgs2是由TGS1签发的;用户C用
Figure BDA0002374497300000042
解 密跨链访问票据
Figure BDA0002374497300000043
得到参数Q3和签名信息
Figure BDA0002374497300000044
并将
Figure BDA0002374497300000045
作为秘密 信息进行保存,而参数Q3和参数
Figure BDA0002374497300000046
作为用于零知识证明数据;用户C构造消息 M5;消息M5使用区块链B的TGS2的公钥进行加密;并将消息M5发送给区块链B的TGS2
步骤S6、.区块链B的TGS2用私钥KRtgs2对消息M5进行解密,得到参数 IDRealm,IDs
Figure RE-GDA0002547202380000047
KPc,Random3,Q3,
Figure RE-GDA0002547202380000048
根据TGS2中保存的关于区块链A的信 任值信息,计算出满足零知识证明的参数t和参数e;区块链B的TGS2得到公 开参数p和参数g,并选取随机数{n1,n2,...ni,...,ne},i∈[1,e]且ni∈(1,p-1),计算
Figure RE-GDA0002547202380000049
再构造消息M6作为查询,将消息M6发送至用户C;
步骤S7、用户C收到消息M6后,取得参数T1,T2,...,Te,从第三方获取公开 参数p和参数g,并使用秘密信息
Figure BDA00023744973000000410
计算
Figure BDA00023744973000000411
[1,e];再构造消息 M7作为对消息M6的对应,将消息M7发送至区块链B的TGS2
步骤S8、区块链B的TGS2收到消息M7后,取得参数C1,C2,...,Ce;再利用 区块链A中TGS1的公钥KPtgs1、参数Q3和参数
Figure BDA00023744973000000412
验证等式
Figure BDA00023744973000000413
是否成立,其中
Figure BDA00023744973000000420
当验证等式
Figure BDA00023744973000000414
成立,则判断是否满足零知识证明条件,当不满足零 知识证明条件时,则继续选择e个随机数
Figure BDA00023744973000000421
并重复步骤S6至步骤S8;当重复后满足零知识证明条件,则区块链B的TGS2基于对区块 链A的TGS1信任,确认用户C为合法用户;区块链B的TGS2为用户C构建访问 服务的票据
Figure BDA00023744973000000415
访问服务的票据Tickets使用服务器S的 公钥进行加密,其中
Figure BDA00023744973000000416
还对TGS2访问服务的票据Tickets进 行签名,得签名信息
Figure BDA00023744973000000417
TGS2构造消息M8,将消息M8发生至用户 C;
步骤9.用户C用私钥KRc对消息M8进行解密,得到参数
Figure RE-GDA0002547202380000051
验证收到的随机数Random3+1为在步 骤5中产生的Random3随机数+1;用户C用TGS2的公钥KRtgs2验证签名信息
Figure RE-GDA0002547202380000052
验证正确,则生成验证码
Figure RE-GDA0002547202380000053
并用私钥KRc对验证码Authentication2签名得到(rAuth2,sAuth2);最后,用户C构造消息M9;利用服务器 S的公钥对消息M9进行加密,将加密后的消息M9发送至服务器S;
步骤10.服务器S利用私钥KRs解密消息M9,得到访问服务的票据Tickets、 验证码Authentication2、公钥KPc、签名信息(rAuth2,sAuth2)和签名信息
Figure BDA0002374497300000054
服务器S通过计算得到Kc,s,还利用公钥KPc验证签名信息(rAuth2,sAuth2),确认 验证码Authentication2由用户C产生;服务器S利用私钥KRs解密票据Tickets得 到参数Q4和签名信息
Figure BDA0002374497300000055
再利用区块链B中TGS2的公钥KPtgs2验证签 名信息
Figure BDA0002374497300000056
确认访问服务的票据Tickets由TGS2签发;服务器S利用 密钥Kc,s解密验证码Authentication2,得到参数IDRealm,Random4
Figure BDA0002374497300000057
判断随机 数Random4的值与Tickets中的参数值一致,确保该票据为初始申请票据的用户C 持有;当用户C的身份验证完成时,服务器S构造消息M10,利用区块链A中用 户C和服务器S的会话密钥对消息M10进行加密。
作为本发明的进一步技术方案,步骤S1中,利用消息Q1和签名信息
Figure BDA0002374497300000058
构造消息M1的公式为
Figure BDA0002374497300000059
进一步的,步骤S2中,访问TGS1的票据
Figure BDA00023744973000000510
Figure BDA00023744973000000511
消息
Figure BDA00023744973000000512
进一步的,步骤S3中,验证码
Figure BDA00023744973000000513
消 息
Figure BDA00023744973000000514
进一步的,S4中:跨链访问票据
Figure BDA00023744973000000515
其中,参 数Q3=h(IDtgs2,IDtgs1,IDc),h()为单向哈希函数;消息
Figure BDA0002374497300000061
进一步的,步骤S5中,消息
Figure BDA0002374497300000062
进一步的,步骤S6中,消息
Figure BDA0002374497300000063
进一步的,步骤S7中,消息
Figure BDA0002374497300000064
进一步的,步骤S8中,消息
Figure BDA0002374497300000065
步骤9中,消息
Figure BDA0002374497300000066
进一步的,步骤10中:参数
Figure BDA0002374497300000067
消息
Figure BDA0002374497300000068
本发明通过零知识证明算法确保了身份验证过程的有效性和严谨性,在保 证跨链交易身份验证的同时,也提高了安全性能,可以有效抵御诸如重放攻击, 中间人攻击以及窃听等常见网络攻击。
附图说明
图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 BDA0002374497300000081
利 用私钥KRc对Q1进行签名得到签名信息
Figure BDA0002374497300000082
利用消息Q1和签名信息
Figure BDA0002374497300000083
构造消息M1,其中
Figure BDA0002374497300000084
利用AS1的公钥KRc对消息 M1进行加密,将加密后的消息M1发送至区块链A的AS1
步骤2.AS1用私钥
Figure BDA0002374497300000085
解密消息M1,得到消息Q1和签名信息
Figure BDA0002374497300000086
AS1还用公钥KRc验证签名信息
Figure BDA0002374497300000087
为用户C发出;AS1查找本地数据库,根据 消息Q1中的IDc确认用户C存在及合法性;当确认用户C合法后,AS1构造访问 TGS1的票据
Figure BDA0002374497300000088
其中
Figure BDA0002374497300000089
Figure BDA00023744973000000810
为AS1用私钥
Figure BDA00023744973000000811
对Q2的签名信息,AS1用TGS1的公钥对票据
Figure BDA00023744973000000812
进行加密,AS1对票据
Figure BDA00023744973000000813
进行签名得签名信息
Figure BDA00023744973000000814
AS1根据票 据
Figure BDA00023744973000000815
地址IDtgs1、随机数Random1+1和签名信息
Figure BDA00023744973000000816
构造消息 M2,其中
Figure BDA00023744973000000817
利用用 户C的公钥对消息M2加密,将加密后的消息M2发送至用户C;
步骤3.用户C用私钥KRc对消息M2进行解密,确认解密获得的参数 Random1+1为步骤1中消息Q1中的随机数Random1+1,;用户C使用AS1的公 钥
Figure BDA00023744973000000818
验证签名信息
Figure BDA00023744973000000819
的正确性;用户C利用地址IDC和随机数 Random2构造验证码
Figure BDA00023744973000000820
并用私钥KRc对Authentication1进行签名得到签名信息
Figure BDA0002374497300000091
用户C再利用地址IDtgs2、 票据
Figure BDA0002374497300000092
验证码Authentication1和签名信息
Figure BDA0002374497300000093
构造消息M3,其中
Figure BDA0002374497300000094
利用TGS1的公钥对消息 M3进行加密,将加密后的消息M3发送至TGS1请求跨链访问票据;
步骤4.TGS1用私钥KRtgs1对消息M3进行解密得到票据
Figure BDA0002374497300000095
验证码Authentication1和签名信息
Figure BDA0002374497300000096
利用用户C的公钥KRc验证签名信息
Figure BDA0002374497300000097
的正确性,确认验证码Authentication1是由用户C发出;TGS1用私 钥KRtgs1解密票据
Figure BDA0002374497300000098
得到参数Q2和签名信息
Figure BDA0002374497300000099
TGS1用AS1的公 钥
Figure BDA00023744973000000910
验证签名信息
Figure BDA00023744973000000911
确认参数Q2由AS1发出;TGS1使用参数Q2中的参 数
Figure BDA00023744973000000912
解密验证码Authentication1得到的参数IDc和参数Random2,比较IDc和 Q2中的IDc是一致时,确认票据
Figure BDA00023744973000000913
为用户C所拥有;
TGS1构造跨链访问票据
Figure BDA00023744973000000914
其中参数 Q3=h(IDtgs2,IDtgs1,IDc),h()表示单向哈希函数;TGS1用私钥KRtgs1对参数Q3进 行签名得签名信息
Figure BDA00023744973000000915
TGS1为跨链访问票据
Figure BDA00023744973000000916
进行签名得签名信息
Figure BDA00023744973000000917
TGS1根据利用地址IDtgs2、随机数Random2+1、跨链访问票据
Figure BDA00023744973000000918
和签名信息
Figure BDA00023744973000000919
构造消息M4,其中消息
Figure BDA00023744973000000920
TGS1利用用户C的公钥对消息M4进行加密,将加密后的消息M4发送至用户C;
步骤5.用户C私钥KRc对消息M4进行解密得到参数
Figure BDA00023744973000000921
并确认随机数Random2+1为步骤3 中发出的随机数Random2+1;用户C用TGS1的公钥KPtgs1验证签名信息
Figure BDA00023744973000000922
确认跨链访问票据Tickettgs2是由TGS1签发的;用户C用
Figure BDA00023744973000000923
解 密跨链访问票据Tickettgs2,得到参数Q3和签名信息
Figure BDA00023744973000000924
并将
Figure BDA00023744973000000925
作为秘密 信息进行保存,而参数Q3和参数
Figure BDA00023744973000000926
作为用于零知识证明数据;用户C构造消息M5,其中
Figure BDA0002374497300000101
消息M5使用区 块链B的TGS2的公钥进行加密;并将消息M5发送给区块链B的TGS2
步骤6.区块链B的TGS2用私钥KRtgs2对消息M5进行解密,得到参数 IDRealm,IDs
Figure BDA0002374497300000102
KPc,Random3,Q3,
Figure BDA0002374497300000103
根据TGS2中保存的关于区块链A的信 任值信息,计算出满足零知识证明的参数t和参数e;区块链B的TGS2得到公 开参数p和参数g,并选取随机数
Figure BDA00023744973000001017
Figure BDA00023744973000001018
计算
Figure BDA00023744973000001016
再构造消息M6作为查询,其中
Figure BDA0002374497300000105
将消息M6发送至用户C;
步骤7.用户C收到消息M6后,取得参数T1,T2,...,Te,从第三方获取公开参 数p和参数g,并使用秘密信息
Figure BDA0002374497300000106
计算
Figure BDA0002374497300000107
[1,e];再构造消息M7作为对消息M6的对应,其中
Figure BDA0002374497300000108
将消息M7发送至区块 链B的TGS2
步骤8.区块链B的TGS2收到消息M7后,取得参数C1,C2,...,Ce;再利用区 块链A中TGS1的公钥KPtgs1、参数Q3和参数
Figure BDA0002374497300000109
验证等式
Figure BDA00023744973000001010
是否成立,其中
Figure BDA00023744973000001019
当验证等式
Figure BDA00023744973000001011
成立,则判断是否满足零知识证明条件,当不满足零 知识证明条件时,则继续选择e个随机数
Figure BDA00023744973000001020
并重复步骤6、步骤7和步骤8;当重复步骤6、步骤7和步骤8后满足零知识证明条件, 则区块链B的TGS2基于对区块链A的TGS1信任,确认用户C为合法用户;区块 链B的TGS2为用户C构建访问服务的票据
Figure BDA00023744973000001012
访问服务 的票据Tickets使用服务器S的公钥进行加密,其中
Figure BDA00023744973000001013
还 对TGS2访问服务的票据Tickets进行签名,得签名信息
Figure BDA00023744973000001014
TGS2构造 消息M8,其中
Figure BDA00023744973000001015
将消息M8发 生至用户C;
步骤9.用户C用私钥KRc对消息M8进行解密,得到参数
Figure BDA0002374497300000111
验证收到的随机数Random3+1为在步 骤5中产生的Random3随机数+1;用户C用TGS2的公钥KRtgs2验证签名信息
Figure BDA0002374497300000112
验证正确,则生成验证码
Figure BDA0002374497300000113
并用私钥KRc对验证码Authentication2签名得到(rAuth2,sAuth2);最后,用户C构造消息M9,其中
Figure BDA0002374497300000114
利用服务器S 的公钥对消息M9进行加密,将加密后的消息M9发送至服务器S;
步骤10.服务器S利用私钥KRs解密消息M9,得到访问服务的票据Tickets、 验证码Authentication2、公钥KPc、签名信息(rAuth2,sAuth2)和签名信息
Figure BDA0002374497300000115
服务器S通过计算得到Kc,s,还利用公钥KPc验证签名信息(rAuth2,sAuth2),确认验 证码Authentication2由用户C产生;服务器S利用私钥KRs解密票据Tickets得到 参数Q4
Figure BDA0002374497300000116
其中
Figure BDA0002374497300000117
再利用区块链B中TGS2的 公钥KPtgs2验证签名信息
Figure BDA0002374497300000118
确认访问服务的票据Tickets由TGS2签发; 服务器S利用密钥Kc,s解密验证码Authentication2,得到参数 IDRealm,Random4
Figure BDA0002374497300000119
判断随机数Random4的值与Tickets中的参数值一致,确保 该票据为初始申请票据的用户C持有;当用户C的身份验证完成时,服务器S构造消息
Figure BDA00023744973000001110
利用区块链A中用户C和服务器S的会话密 钥对消息M10进行加密。
安全性分析
一种基于侧链的区块链跨链身份认证方法提供了基本的身份认证信任机制, 保证了跨链交易过程中的安全性,具体分析如下:
重放攻击,在跨链身份认证过程中,由于身份认证过程需严格满足零知识 证明条件,整个链与链之间交互过程中的信息都不包含用户的私密信息,就算 攻击者可以重发其中某几步攻击,也无法获取更多有价值的信息;此外,在加 解密阶段引入随机数,使得接收方能够确认收到的消息是否为自己所发送,避 免了时钟同步带来的干扰。
中间人攻击,由于整个***采用了数字签名及零知识证明方法,使得接受 者可以确认信息是否为原始发送方所发送,从而杜绝了中间人存在的可能性。
合谋攻击,由于采用了严格的零知识证明机制,用户在向其他链证明自己 身份的同时,并不需要提交与自己身份信息相关的私密信息,这样可以有效避 免合谋攻击的发生。
窃听,由于用户和应用服务器之间的会话密钥由此二者自行协商,因此在 会话过程中杜绝了窃听的可能性。
以上显示和描述了本发明的基本原理、主要特征和优点。本领域的技术人 员应该了解,本发明不受上述具体实施例的限制,上述具体实施例和说明书中 的描述只是为了进一步说明本发明的原理,在不脱离本发明精神范围的前提下, 本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围 内。本发明要求保护的范围由权利要求书及其等效物界定。

Claims (10)

1.一种基于侧链的区块链跨链身份认证方法,其特征在于,包括如下步骤,
步骤S1、区块链B的用户C构造消息Q1,其中,
Figure FDA0003736715880000011
利用私钥KRc对Q1进行签名得到签名信息
Figure FDA0003736715880000012
利用消息Q1和签名信息
Figure FDA0003736715880000013
构造消息M1;利用AS1(认证服务器1)的公钥KRc对消息M1进行加密,将加密后的消息M1发送至区块链A的AS1
步骤S2、AS1用私钥
Figure FDA0003736715880000014
解密消息M1,获取消息Q1和签名信息
Figure FDA0003736715880000015
并用公钥KRc验证签名信息
Figure FDA0003736715880000016
为用户C发出;AS1查找本地数据库,根据消息Q1中的IDc确认用户C存在及合法性;当确认用户C合法后,AS1构造访问TGS1的票据
Figure FDA0003736715880000017
签名信息
Figure FDA0003736715880000018
为AS1用私钥
Figure FDA0003736715880000019
对Q2的签名信息,AS1用TGS1的公钥对票据
Figure FDA00037367158800000110
进行加密,AS1对票据
Figure FDA00037367158800000111
进行签名得签名信息
Figure FDA00037367158800000112
AS1根据访问TGS1的票据
Figure FDA00037367158800000113
地址IDtgs1、随机数Random1+1和签名信息
Figure FDA00037367158800000114
构造消息M2,利用用户C的公钥对消息M2加密,将加密后的消息M2发送至用户C;
步骤S3、用户C用私钥KRc对消息M2进行解密,确认解密获得的参数Random1+1为消息Q1中的随机数Random1+1,用户C使用AS1的公钥
Figure FDA00037367158800000115
验证签名信息
Figure FDA00037367158800000116
的正确性;用户C利用地址IDC和随机数Random2构造验证码Authentication1,并用私钥KRc对验证码Authentication1进行签名得到签名信息
Figure FDA00037367158800000117
用户C再利用地址IDtgs2、访问TGS1的票据
Figure FDA00037367158800000118
验证码Authentication1和签名信息
Figure FDA00037367158800000119
构造消息M3;利用TGS1的公钥对消息M3进行加密,将加密后的消息M3发送至TGS1请求跨链访问票据;
步骤S4、TGS1用私钥KRtgs1对消息M3进行解密获取票据
Figure FDA00037367158800000120
验证码Authentication1和签名信息
Figure FDA00037367158800000121
利用用户C的公钥KRc验证签名信息
Figure FDA00037367158800000122
的正确性,确认验证码Authentication1是由用户C发出;TGS1用私钥KRtgs1解密访问TGS1的票据
Figure FDA0003736715880000021
获取参数Q2和签名信息
Figure FDA0003736715880000022
TGS1用AS1的公钥
Figure FDA0003736715880000023
验证签名信息
Figure FDA0003736715880000024
确认参数Q2由AS1发出;TGS1使用参数Q2中的参数
Figure FDA0003736715880000025
解密验证码Authentication1得到的参数IDc和参数Random2,比较IDc和Q2中的IDc是一致时,确认票据
Figure FDA0003736715880000026
为用户C所拥有;
TGS1构造跨链访问票据
Figure FDA0003736715880000027
TGS1用私钥KRtgs1对参数Q3进行签名得签名信息
Figure FDA0003736715880000028
TGS1为跨链访问票据
Figure FDA0003736715880000029
进行签名得签名信息
Figure FDA00037367158800000210
TGS1根据利用地址IDtgs2、随机数Random2+1、跨链访问票据
Figure FDA00037367158800000211
和签名信息
Figure FDA00037367158800000212
构造消息M4;TGS1利用用户C的公钥对消息M4进行加密,将加密后的消息M4发送至用户C;
步骤S5、用户C用私钥KRc对消息M4进行解密得到参数
Figure FDA00037367158800000213
并确认随机数Random2+1为步骤3中发出的随机数Random2+1;用户C用TGS1的公钥KPtgs1验证签名信息
Figure FDA00037367158800000214
确认跨链访问票据Tickettgs2是由TGS1签发的;用户C用
Figure FDA00037367158800000215
解密跨链访问票据Tickettgs2,得到参数Q3和签名信息
Figure FDA00037367158800000216
并将sQ3作为秘密信息进行保存,而参数Q3和参数rQ3作为用于零知识证明数据;用户C构造消息M5;消息M5使用区块链B的TGS2的公钥进行加密;并将消息M5发送给区块链B的TGS2
步骤S6、区块链B的TGS2用私钥KRtgs2对消息M5进行解密,得到参数IDRealm,IDs
Figure FDA00037367158800000217
KPc,Random3,Q3,
Figure FDA00037367158800000218
根据TGS2中保存的关于区块链A的信任值信息,计算出满足零知识证明的参数t和参数e;区块链B的TGS2得到公开参数p和参数g,并选取随机数{n1,n2,...,ni,...,ne},i∈[1,e]且ni∈(1,p-1),计算
Figure FDA00037367158800000219
再构造消息M6作为查询,将消息M6发送至用户C;
步骤S7、用户C收到消息M6后,取得参数T1,T2,...,Te,从第三方获取公开参数p 和参数g,并使用秘密信息
Figure FDA0003736715880000031
计算
Figure FDA0003736715880000032
再构造消息M7作为对消息M6的对应,将消息M7发送至区块链B的TGS2
步骤S8、区块链B的TGS2收到消息M7后,取得参数C1,C2,...,Ce;再利用区块链A中TGS1的公钥KPtgs1、参数Q3和参数
Figure FDA0003736715880000033
验证等式
Figure FDA0003736715880000034
是否成立,其中i∈[1,e];当验证等式
Figure FDA0003736715880000035
成立,则判断是否满足零知识证明条件,当不满足零知识证明条件时,则继续选择e个随机数{n1,n2,...,ni,...,ne},i∈[1,e],并重复步骤S6至步骤S8;当重复后满足零知识证明条件,则区块链B的TGS2基于对区块链A的TGS1信任,确认用户C为合法用户;区块链B的TGS2为用户C构建访问服务的票据
Figure FDA0003736715880000036
访问服务的票据Tickets使用服务器S的公钥进行加密,其中
Figure FDA0003736715880000037
还对TGS2访问服务的票据Tickets进行签名,得签名信息
Figure FDA0003736715880000038
TGS2构造消息M8,将消息M8发生至用户C;
步骤S9、 用户C用私钥KRc对消息M8进行解密,得到参数
Figure FDA0003736715880000039
验证收到的随机数Random3+1为在步骤5中产生的Random3随机数+1;用户C用TGS2的公钥KRtgs2验证签名信息
Figure FDA00037367158800000310
验证正确,则生成验证码
Figure FDA00037367158800000311
并用私钥KRc对验证码Authentication2签名得到(rAuth2,sAuth2);最后,用户C构造消息M9;利用服务器S的公钥对消息M9进行加密,将加密后的消息M9发送至服务器S;
步骤S10、 服务器S利用私钥KRs解密消息M9,得到访问服务的票据Tickets、验证码Authentication2、公钥KPc、签名信息(rAuth2,sAuth2)和签名信息
Figure FDA00037367158800000312
服务器S通过计算得到Kc,s,还利用公钥KPc验证签名信息(rAuth2,sAuth2),确认验证码Authentication2由用户C产生;服务器S利用私钥KRs解密票据Tickets得到参数Q4和签名信息
Figure FDA0003736715880000041
再利用区块链B中TGS2的公钥KPtgs2验证签名信息
Figure FDA0003736715880000042
确认访问服务的票据Tickets由TGS2签发;服务器S利用密钥Kc,s解密验证码Authentication2,得到参数IDRealm,Random4
Figure FDA0003736715880000043
判断随机数Random4的值与Tickets中的参数值一致,确保该票据为初始申请票据的用户C持有;当用户C的身份验证完成时,服务器S构造消息M10,利用区块链A中用户C和服务器S的会话密钥对消息M10进行加密。
2.根据权利要求1所述的一种基于侧链的区块链跨链身份认证方法,其特征在于,所述步骤S1中,利用消息Q1和签名信息
Figure FDA0003736715880000044
构造消息M1的公式为
Figure FDA0003736715880000045
3.根据权利要求1所述的一种基于侧链的区块链跨链身份认证方法,其特征在于,所述步骤S2中,访问TGS1的票据
Figure FDA0003736715880000046
消息
Figure FDA0003736715880000047
4.根据权利要求1所述的一种基于侧链的区块链跨链身份认证方法,其特征在于,所述步骤S3中,验证码
Figure FDA0003736715880000048
消息
Figure FDA0003736715880000049
5.根据权利要求1所述的一种基于侧链的区块链跨链身份认证方法,其特征在于,步骤S4中:跨链访问票据
Figure FDA00037367158800000410
其中,参数Q3=h(IDtgs2,IDtgs1,IDc),h()为单向哈希函数;消息
Figure FDA00037367158800000411
6.根据权利要求1所述的一种基于侧链的区块链跨链身份认证方法,其特征在于,所述步骤S5中,消息
Figure FDA00037367158800000412
7.根据权利要求1所述的一种基于侧链的区块链跨链身份认证方法,其特征在于,所述步骤S6中,消息
Figure FDA00037367158800000413
8.根据权利要求1所述的一种基于侧链的区块链跨链身份认证方法,其特征在于,所述步骤S7中,消息
Figure FDA00037367158800000414
9.根据权利要求1所述的一种基于侧链的区块链跨链身份认证方法,其特征在于,所述步骤S8中,消息
Figure FDA0003736715880000051
所述步骤S9中,消息
Figure FDA0003736715880000052
10.根据权利要求1所述的一种基于侧链的区块链跨链身份认证方法,其特征在于,所述步骤S10中:参数
Figure FDA0003736715880000053
消息
Figure FDA0003736715880000054
CN202010062108.9A 2020-01-19 2020-01-19 一种基于侧链的区块链跨链身份认证方法 Active CN111539718B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010062108.9A CN111539718B (zh) 2020-01-19 2020-01-19 一种基于侧链的区块链跨链身份认证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010062108.9A CN111539718B (zh) 2020-01-19 2020-01-19 一种基于侧链的区块链跨链身份认证方法

Publications (2)

Publication Number Publication Date
CN111539718A CN111539718A (zh) 2020-08-14
CN111539718B true CN111539718B (zh) 2022-09-20

Family

ID=71980009

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010062108.9A Active CN111539718B (zh) 2020-01-19 2020-01-19 一种基于侧链的区块链跨链身份认证方法

Country Status (1)

Country Link
CN (1) CN111539718B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111339509A (zh) * 2020-03-03 2020-06-26 李斌 一种基于侧链的区块链跨链身份认证方法
CN112163845B (zh) * 2020-09-29 2024-03-22 深圳前海微众银行股份有限公司 一种跨区块链的交易身份确认方法及装置
CN111970129B (zh) * 2020-10-21 2021-01-01 腾讯科技(深圳)有限公司 一种基于区块链的数据处理方法、设备以及可读存储介质
CN113300837B (zh) * 2021-04-25 2022-07-26 从法信息科技有限公司 一种基于区块证明的跨链验证方法、装置和电子设备
CN114598531A (zh) * 2022-03-10 2022-06-07 上海星图比特信息技术服务有限公司 身份认证方法及设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103780618B (zh) * 2014-01-22 2016-11-09 西南交通大学 一种基于访问授权票据的跨异构域身份认证及会话密钥协商方法
CN107257334B (zh) * 2017-06-08 2020-07-14 中国电子科技集团公司第三十二研究所 用于Hadoop集群的身份认证方法
CN109039655A (zh) * 2018-09-13 2018-12-18 全链通有限公司 基于区块链的实名身份认证方法及装置、身份区块链
CN110505058B (zh) * 2019-08-20 2021-07-20 西安电子科技大学 跨链场景下异构区块链的身份认证方法

Also Published As

Publication number Publication date
CN111539718A (zh) 2020-08-14

Similar Documents

Publication Publication Date Title
CN111539718B (zh) 一种基于侧链的区块链跨链身份认证方法
US11842317B2 (en) Blockchain-based authentication and authorization
CN113194469B (zh) 基于区块链的5g无人机跨域身份认证方法、***及终端
CN108768652B (zh) 一种可抗量子攻击的联盟区块链底层加密方法
CN110959163B (zh) 能够在多个存储节点上安全存储大型区块链的计算机实现的***和方法
Feng et al. An efficient privacy-preserving authentication model based on blockchain for VANETs
CN101902476B (zh) 移动p2p用户身份认证方法
CN111339509A (zh) 一种基于侧链的区块链跨链身份认证方法
Wu et al. A provably secure authentication and key exchange protocol in vehicular ad hoc networks
CN113301022B (zh) 基于区块链和雾计算的物联网设备身份安全认证方法
Xue et al. A distributed authentication scheme based on smart contract for roaming service in mobile vehicular networks
CN103905384A (zh) 基于安全数字证书的嵌入式终端间会话握手的实现方法
CN114036539A (zh) 基于区块链的安全可审计物联网数据共享***及方法
US20200329023A1 (en) Conducting secure interactions utilizing reliability information
Xu et al. Authentication‐Based Vehicle‐to‐Vehicle Secure Communication for VANETs
CN113162907A (zh) 一种基于区块链的属性基访问控制方法及***
Zhang et al. A novel privacy protection of permissioned blockchains with conditionally anonymous ring signature
Hussain et al. An improved authentication scheme for digital rights management system
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
CN113626794A (zh) 客户/服务器模式下的认证及密钥协商方法、***及应用
CN117375797A (zh) 基于区块链与零知识证明的匿名认证与车载信息共享方法
CN115865426B (zh) 隐私求交方法和装置
CN111353780A (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
GR01 Patent grant
GR01 Patent grant