基于零知识证明和跨链的访问控制方法、系统及存储介质与流程
未命名
09-29
阅读:68
评论:0
1.本发明涉及区块链访问控制技术领域,尤其是涉及基于零知识证明和跨链的访问控制方法、系统及存储介质。
背景技术:
2.访问控制技术是保障数据安全的一种重要手段,广泛应用于企业或机构对数据访问权限进行严格管控之中。传统的访问控制技术是一种中心化的结构,其固有的单点故障和数据隐私安全等问题,导致访问控制技术具有难以突破的局限性,但区块链技术凭借其去中心化、链上数据不可篡改且公开透明的特点赋予了访问控制技术突破这一局限性的能力。智能合约使得在区块链上实现访问控制逻辑的想法成为现实,诸如基于区块链和角色的访问控制、基于区块链和属性的访问控制、基于区块链和任务的访问控制都有相应的研究,这些方案都能通过在区块链上编写并部署具有相应功能的智能合约来实现可行的访问控制逻辑。至此,传统访问控制技术中的中心化结构带来的安全和性能问题得到了有效解决。
3.目前区块链结合访问控制技术的研究已有不少,传统的访问控制技术也得到优化,然而,在整体方案的安全性和面向社会的实际需求上还有很多未能满足,这主要体现在访问控制技术上对系统中的一些数据隐私的保护问题和信息共享上。
4.此外,在当前区块链平台众多、价值孤岛现象加剧的情况下,不同基于区块链的物理域之间也随之出现了一道隔离屏障,导致基于区块链的物理域之间进行信息共享就显得格外困难,而在当前信息交互加深的环境下,访问权限的控制不再局限于单个物理域内,而是拓展到了物理域之间。跨链技术是针对不同区块链之间进行信息交互的一种关键技术,这对隶属不同区块链平台的物理域之间存在着的信息隔离来说是一把利剑,所以凭借跨链技术来实现跨域的访问控制将是一种可行的解决途径。如何借助跨链技术实现一个安全性高、可靠性强的基于区块链的跨域访问控制将是一个需要进一步探索的问题。
技术实现要素:
5.本发明提供基于零知识证明和跨链的访问控制方法、系统及存储介质,分为区块链层和网关层,每一层在域内和域间具有不同的功能;单个物理域内,区块链层负责存储与零知识证明算法、访问控制系统和跨域的相关数据,以及对访问主体发送的零知识证明进行验证;网管层负责计算基于零知识证明的访问策略下的相关密钥,这用于生成客体对访问主体进行权限验证时需要的证明数据,同时,还负责签名认证和跨域请求转发。在此架构上,部署了基于零知识证明和属性的访问控制方案。该方案将简洁非交互式零知识证明与基于属性的访问控制相结合,通过将访问控制过程中涉及属性或访问策略等具有隐私性的数据转变成简洁非交互式零知识证明中的待证明陈述,利用零知识证明算法过程中不泄漏任何隐私数据的特点来防止隐私数据的泄漏。该方法可以更好地实现跨域访问的数据安全,抵御中间人攻击和共谋攻击等多种威胁攻击方式。
6.为实现上述目的,本发明采用了如下技术方案:本发明实施例的第一方面公开了基于零知识证明和跨链的访问控制方法,包括如下步骤:s1.访问主体和访问客体身份注册;s2.成员域身份注册;s3.访问主体访问预处理;s31.访问主体通过物理域网关向访问客体,即访问客体发起访问请求;s32.访问主体所在物理域网关gw
domaina
向访问客体所在的物理域获取对应的零知识证明证明密钥key
proof
;物理域网关gw
domaina
向访问客体所在物理域发起密钥获取请求,并签名后发往至中继网关gw
relayer
;s33.中继网关gw
relayer
收到密钥获取请求后,对签名进行验证,验证通过后,为访问主体构造默克尔证明proof
merkle
,再将密钥获取请求和默克尔证明proof
merkle
打包并签名发往至访问客体所在物理域;s34.访问客体所在物理域网关gw
domainb
收到密钥获取请求后,验证签名和默克尔证明proof
merkle
,若都验证成功,则从区块链上调用krc合约获取密钥key
proof
,将密钥打包并签名发送给中继网关gw
relayer
;s35.中继网关gw
relayer
收到证明密钥key
proof
发送请求后,验证签名,若通过继而为访问客体所在物理域构造默克尔证明proof
merkle
,并将密钥key
proof
和默克尔证明proof
merkle
信息打包并签名发送给物理域网关gw
domaina
;s36.物理域网关gw
domaina
收到密钥key
proof
和默克尔证明proof
merkle
信息后,验证签名和默克尔证明,若验证通过则使用零知识证明密钥key
proof
和访问主体的属性集构造零知识证明proof
zk
,并将零知识证明proof
zk
打包并签名发送给中继网关gw
relayer
;s4.验证访问主体访问权限;s5.返回访问权限验证结果。
7.在一些实施例中,s1包括:s11.物理域中的访问主体和访问客体发起注册请求;s12.给访问主体分配用于数字签名的公钥pks和私钥sks;s13.给访问客体分配访问策略。
8.在一些实施例中,s2包括:s21.每个物理域发起加入申请后,为每个物理域生成一对密钥,一对密钥包括一个公钥和一个私钥;s22.将已加入的物理域的公钥用来生成默克尔树,并将默克尔树的默克尔树mtroot根发送给已加入的各个物理域。
9.在一些实施例中,s4包括:s41.中继网关gw
relayer
收到访问主体的访问请求后,验证签名,若验证通过则从区块链上调用mtc合约获取默克尔树,并结合访问主体所在物理域的公钥构造默克尔证明proof
merkle
;再将访问请求中包含的零知识证明proof
zk
和默克尔证明proof
merkle
打包并签名发送给访问客体所在物理域网关gw
domainb
;s42.物理域网关gw
domainb
收到中继网关gw
relayer
发送的访问请求相关信息,验证签
名是否正确,若正确则通过验证,继而访问请求中包含的零知识证明proof
zk
发送至区块链bc
domainb
上,调用pdc合约对零知识证明proof
zk
进行验证,将验证结果返回给物理域网关gw
domainb
。
10.在一些实施例中,s5包括:s51.gw
domainb
将bc
domainb
返回的验证结果和当前域的公钥打包成返回信息,并签名发送至中继网关gw
relayer
;s52.gw
relayer
收到bc
domainb
的返回消息后,对签名进行验证,验证通过则调用bc
relayer
上的mtc合约获取默克尔树,并根据域公钥pkb生成默克尔证明;最后将返回信息和默克尔证明打包,并签名发送给gw
domaina
;s53.gw
domaina
收到gw
relayer
发送的消息后,验证签名和默克尔树证明,验证通过则获取访问请求结果。
11.本发明实施例的第二方面公开了基于零知识证明和跨链的访问控制系统,包括:第一注册模块,用于进行访问主体和访问客体身份注册;第二注册模块,用于进行成员域身份注册;预处理模块,用于进行访问主体访问预处理;验证模块,用于验证访问主体访问权限;结果返回模块,用于返回访问权限验证结果;处理器,分别与所述第一注册模块、第二注册模块、预处理模块、验证模块和结果返回模块连接;以及存储器,与所述处理器连接,并存储有可在所述处理器上运行的计算机程序;其中,当所述处理器执行所述计算机程序时,所述处理器控制所述第一注册模块、第二注册模块、预处理模块、验证模块和结果返回模块工作,以实现如上所述的基于零知识证明和跨链的访问控制方法。
12.本发明实施例的第三方面公开了一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取所述计算机指令时,所述计算机执行如上所述的基于零知识证明和跨链的访问控制方法。
13.综上所述,本发明至少具有以下有益效果:本发明以区块链和基于属性访问控制方法为基础,结合了简洁非交互式零知识证明,将访问客体的访问策略转换为零知识证明算法中的算术电路,将访问策略和属性隐藏在了证明密钥和验证密钥中,使得对访问主体的访问权限验证放在了对零知识证明的证明验证过程中,能够很好的保护访问过程中访问主体和访问客体的属性信息,以及访问客体的访问策略。其次,本发明分为网关层和区块链层二层跨域访问结构,将大部分零知识证明的计算放在网关层,有效提高了系统的运行效率,并且,通过默克尔树来对系统中成员域的身份进行管理,不仅构建了域与域之间的信任,还方便对系统的成员域进行管理,成员域的新增和删除可直接通过更新默克尔树即可。整个发明不仅实现了安全可靠的跨域访问控制,有效保护了系统中的属性和策略隐私,还能很好地抵御中间人攻击和共谋攻击。
附图说明
14.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的
附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
15.图1为本发明中所涉及的基于零知识证明和跨链的访问控制方法的步骤示意图。
16.图2为本发明中所涉及的基于零知识证明和跨链的访问控制系统的模块示意图。
17.图3为本发明中所涉及的模型系统结构的示意图。
18.图4为本发明中所涉及的访问策略树向算术电路的转换示意图。
19.图5为本发明中所涉及的基于零知识证明和跨链的访问控制方法的流程示意图。
具体实施方式
20.在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明实施例的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
21.下文的公开提供了许多不同的实施方式或例子用来实现本发明实施例的不同结构。为了简化本发明实施例的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明实施例。此外,本发明实施例可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。
22.下面结合附图对本发明的实施例进行详细说明。
23.如图1和图5所示,本发明实施例的第一方面公开了基于零知识证明和跨链的访问控制方法,包括如下步骤:s1.访问主体和访问客体身份注册;s2.成员域身份注册;s3.访问主体访问预处理;s4.验证访问主体访问权限;s5.返回访问权限验证结果。
24.在一些实施例中,s1包括:s11.物理域中的访问主体和访问客体发起注册请求;s12.给访问主体分配用于数字签名的公钥pks和私钥sks;s13.给访问客体分配访问策略。
25.在一些实施例中,s2包括:s21.每个物理域发起加入申请后,为每个物理域生成一对密钥,一对密钥包括一个公钥和一个私钥;s22.将已加入的物理域的公钥用来生成默克尔树,并将默克尔树的默克尔树mtroot根发送给已加入的各个物理域。
26.在一些实施例中,s3包括:s31.访问主体通过物理域网关向访问客体,即访问客体发起访问请求;s32.访问主体所在物理域网关gw
domaina
向访问客体所在的物理域获取对应的零知识证明证明密钥key
proof
;物理域网关gw
domaina
向访问客体所在物理域发起密钥获取请求,并
签名后发往至中继网关gw
relayer
;s33.中继网关gw
relayer
收到密钥获取请求后,对签名进行验证,验证通过后,为访问主体构造默克尔证明proof
merkle
,再将密钥获取请求和默克尔证明proof
merkle
打包并签名发往至访问客体所在物理域;s34.访问客体所在物理域网关gw
domainb
收到密钥获取请求后,验证签名和默克尔证明proof
merkle
,若都验证成功,则从区块链上调用krc合约获取密钥key
proof
,将密钥打包并签名发送给中继网关gw
relayer
;s35.中继网关gw
relayer
收到证明密钥key
proof
发送请求后,验证签名,若通过继而为访问客体所在物理域构造默克尔证明proof
merkle
,并将密钥key
proof
和默克尔证明proof
merkle
信息打包并签名发送给物理域网关gw
domaina
;s36.物理域网关gw
domaina
收到密钥key
proof
和默克尔证明proof
merkle
信息后,验证签名和默克尔证明,若验证通过则使用零知识证明密钥key
proof
和访问主体的属性集构造零知识证明proof
zk
,并将零知识证明proof
zk
打包并签名发送给中继网关gw
relayer
。
27.在一些实施例中,s4包括:s41.中继网关gw
relayer
收到访问主体的访问请求后,验证签名,若验证通过则从区块链上调用mtc合约获取默克尔树,并结合访问主体所在物理域的公钥构造默克尔证明proof
merkle
;再将访问请求中包含的零知识证明proof
zk
和默克尔证明proof
merkle
打包并签名发送给访问客体所在物理域网关gw
domainb
;s42.物理域网关gw
domainb
收到中继网关gw
relayer
发送的访问请求相关信息,验证签名是否正确,若正确则通过验证,继而访问请求中包含的零知识证明proof
zk
发送至区块链bc
domainb
上,调用pdc合约对零知识证明proof
zk
进行验证,将验证结果返回给物理域网关gw
domainb
。
28.在一些实施例中,s5包括:s51.gw
domainb
将bc
domainb
返回的验证结果和当前域的公钥打包成返回信息,并签名发送至中继网关gw
relayer
;s52.gw
relayer
收到bc
domainb
的返回消息后,对签名进行验证,验证通过则调用bc
relayer
上的mtc合约获取默克尔树,并根据域公钥pkb生成默克尔证明;最后将返回信息和默克尔证明打包,并签名发送给gw
domaina
;s53.gw
domaina
收到gw
relayer
发送的消息后,验证签名和默克尔树证明,验证通过则获取访问请求结果。
29.如图2所示,本发明实施例的第二方面公开了基于零知识证明和跨链的访问控制系统,包括:第一注册模块,用于进行访问主体和访问客体身份注册;第二注册模块,用于进行成员域身份注册;预处理模块,用于进行访问主体访问预处理;验证模块,用于验证访问主体访问权限;结果返回模块,用于返回访问权限验证结果;处理器,分别与所述第一注册模块、第二注册模块、预处理模块、验证模块和结果返回模块连接;以及
存储器,与所述处理器连接,并存储有可在所述处理器上运行的计算机程序;其中,当所述处理器执行所述计算机程序时,所述处理器控制所述第一注册模块、第二注册模块、预处理模块、验证模块和结果返回模块工作,以实现如上所述的基于零知识证明和跨链的访问控制方法。
30.本发明实施例的第三方面公开了一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取所述计算机指令时,所述计算机执行如上所述的基于零知识证明和跨链的访问控制方法。
31.本发明的技术构思如下:在本发明中,包含了物理域网关、物理域区块链、中继网关、中继区块链、策略决策合约(pdc)、密钥管理合约(kac)、密钥检索合约(krc)、默克尔树合约(mtc)、访问主体和访问客体(目标资源)七部分,具体模型系统结构如图3所示。
32.物理域网关(gw
domain
):物理域是指进行跨域访问的两个域,在物理域中包含了一般的用户,即访问主体和访问客体。一般由访问主体向访问客体发起访问请求。物理域网关负责物理域内访问主体和访问客体的注册,零知识证明算法中证明密钥、验证密钥和代表访问主体对访问客体是否拥有访问权限的零知识证明proof的计算,以及默克尔证明的验证。
33.物理域区块链:物理域区块链负责对访问主体相关的零知识证明进行验证,并将存储着访问客体对应的零知识证明密钥和中继网关发送过来的默克尔树根。
34.中继网关(gw
relayer
):在系统中继初始化时,网关层会为每一个域分发一对密钥用于签名和域与域之间信任的构建。域间信任的构建是使用每个域的公钥组建成一个默克尔树实现的。在网关层生成默克尔树后,会在第一时间将默克尔根发往各个域中,并存储在每个域内的区块链中。中继网关可以给出域成员的默克尔证明,默克尔证明可以验证访问主体所在物理域是否属于这个网络。并且,中继链维护的默克尔树可以实时更新,这将在第一时间对整个网络的域成员进行更新。
35.中继区块链(bc
relayer
):中继区块链负责存储默克尔树的相关数据和域成员的身份信息。在进行跨域访问请求时,网关层在接收到主体域的请求后,会从区块链中取出默克尔根,并结合主体的身份信息生成默克尔证明。
36.策略决策合约(pdc):策略决策合约负责对访问主体对应的零知识证明proof进行验证,此过程将从访问客体所在的物理域区块链中获取零知识证明验证密钥。此合约部署在每一个物理域的区块链中。
37.密钥管理合约(kac):密钥管理合约负责对物理域中访问客体对应的零知识证明密钥进行链上存储。此合约部署在每一个物理域的区块链中。
38.密钥检索合约(krc):密钥检索合约负责在外部请求获取零知识证明密钥时,从链上检索密钥并返回。此合约部署在每一个物理域的区块链中。
39.默克尔树合约(mtc):默克尔是合约负责在中继网关对所有成员域的身份生成默克尔树后,将默克尔树根存储在区块链上。此合约部署在所有物理域和中继的区块链上。
40.访问主体(s):访问主体是访问控制的发起者。在访问主体进入物理域注册时,物理域网关会为访问主体分配属性,属性代表访问主体在系统中的身份关系,并将用于零知识证明proof的计算,以验证访问主体的访问权限。
41.访问客体(o):访问客体是物理域中的资源,是被访问的对象。物理域中的访问客体会被分配属性,并给定访问策略,访问策略限定了哪些访问主体能访问该访问客体。访问客体在物理域中注册后,会将给定的访问策略转换为属性算术电路,用于进行零知识证明密钥的计算。
42.具体过程的描述以物理域a上的用户(访问主体)对物理域b上的资源(访问客体)进行访问为背景。为了描述本发明的访问控制方法的具体流程,先给出相关符号的定义:gw
domaina
:表示访问主体所在物理域a的网关。
43.gw
domainb
:表示访问客体所在物理域b的网关。
44.bc
domaina
:表示访问主体所在物理域a的区块链。
45.bc
domainb
:表示访问客体所在物理域b的区块链pks、sks:表示访问主体s在注册时由物理域网关分配的公钥和私钥。
46.pka、ska:表示物理域a在加入系统时由中继网关分配的公钥和私钥。
47.pkb、skb:表示物理域b在加入系统时由中继网关分配的公钥和私钥pkr、skr:表示中继网关的公钥和私钥。
48.key
proof
:简洁非交互式零知识证明算法中的证明密钥,用于计算关于待证明陈述的证明。
49.key
verify
:简洁非交互式零知识证明算法中的验证密钥,用于对关于待证明陈述的证明进行验证。
50.proof
zk
:简洁非交互式零知识证明算法中对待证明陈述计算得到的证明,体现了待证明陈述的真实性。
51.proof
merkle
:跨域访问时,由中继网关依据发起交互的物理域公钥生成的默克尔证明,体现了该物理域对于整个系统的成员归属。验证该证明时,验证通过则证明对方是来自系统的成员域。
52.如图1和图5所示,本发明的具体流程如下:阶段一:系统初始化步骤1:访问主体和访问客体身份注册步骤11.物理域中的访问主体和访问客体进入系统后发起注册请求。访问主体会被分配指定的属性sa={sattri|i∈[1,
……
,n]},sattri代表访问主体的每一项属性。此外还会给访问主体分配用于数字签名的公钥pks和私钥sks。
[0053]
步骤12.访问客体也会被分配指定的属性oa={oattri|i∈[1,
……
,n]},oattri代表访问客体的每一项属性,并给定访问策略。物理域网关会根据访问客体访问策略转换得到的属性算术电路进入简洁非交互式零知识证明算法中计算出证明密钥和验证密钥,转换方式如图4所示,图中左边的策略树为访问客体的访问规则,右边为转换后的属性算术电路,左图中的两个属性值代表的数值是右图电路表示的方程的两个解。接着调用物理域区块链中的kac合约将密钥存入物理域区块链中。
[0054]
步骤2:成员域身份注册步骤21.每个物理域向系统发起加入申请后,中继网关为每个物理域生成一对密钥,例如物理域a和物理域b,中继网关为两个物理域各生成一对密钥(pk
domaina
、sk
domaina
)和(pk
domainb
、sk
domainb
)。
[0055]
步骤22.将已加入系统的物理域的公钥用来生成默克尔树,默克尔树的默克尔树mtroot根会被发送给加入的各个物理域。
[0056]
阶段二:系统运行步骤3:访问主体访问预处理步骤31.访问主体通过物理域网关向访问客体,即访问客体发起访问请求。
[0057]
步骤32.访问主体所在物理域网关gw
domaina
需要向访问客体所在的物理域获取对应的零知识证明证明密钥key
proof
。物理域网关gw
domaina
首先将向访问客体所在物理域发起密钥获取请求打包,并签名后发往至中继网关gw
relayer
。
[0058]
步骤33.中继网关gw
relayer
收到请求后,对签名进行验证,验证通过后,为访问主体构造默克尔证明proof
merkle
,再将密钥获取请求和默克尔证明打包并签名发往至访问客体所在物理域。
[0059]
步骤34.访问客体所在物理域网关gw
domainb
收到请求后,首先验证签名和默克尔证明proof
merkle
,若都验证成功,则从区块链上调用krc合约获取密钥key
proof
。然后将密钥打包并签名发送给gw
relayer
。
[0060]
步骤35.gw
relayer
收到证明密钥key
proof
发送请求后,验证签名,若通过继而为访问客体所在物理域构造默克尔证明proof
merkle
,并将key
proof
和proof
merkle
等信息打包并签名发送给gw
domaina
。
[0061]
步骤36.gw
domaina
收到密钥等信息后,首先验证签名和默克尔证明,若验证通过则使用零知识证明密钥key
proof
和访问主体的属性集构造零知识证明proof
zk
。最后将proof
zk
等信息打包并签名发送给中继网关。
[0062]
步骤4:访问主体访问权限验证步骤41.中继网关gw
relayer
收到访问主体的访问请求后,首先验证签名,若验证通过则从区块链上调用mtc合约获取默克尔树,并结合访问主体所在物理域的公钥构造默克尔证明proof
merkle
。再将访问请求中包含的零知识证明proof
zk
和默克尔证明打包并签名发送给访问客体所在物理域网关gw
domainb
。
[0063]
步骤42.gw
domainb
收到中继网关发送的访问请求相关信息,首先验证签名是否正确,若正确则通过验证,继而访问请求中包含的零知识证明proof
zk
发送至区块链bc
domainb
上,调用pdc合约对proof
zk
进行验证。随后将验证结果返回给gw
domainb
。
[0064]
步骤5:返回访问权限验证结果步骤51.gw
domainb
将bc
domainb
返回的验证结果和当前域的公钥打包成返回信息,并签名发送至中继网关gw
relayer
。
[0065]
步骤52.gw
relayer
收到bc
domainb
的返回消息后,对签名进行验证,验证通过则调用bc
relayer
上的mtc合约获取默克尔树,并根据域公钥pkb生成默克尔证明。最后将返回信息和默克尔证明打包,并签名发送给gw
domaina
。
[0066]
步骤53.gw
domaina
收到gw
relayer
发送的消息后,验证签名和默克尔树证明,验证通过则获取访问请求结果。
[0067]
本发明的重点在于:本发明利用简洁非交互式零知识证明的零知识特性,将系统中访问主体和访问客体的属性,以及访问客体的访问策略完美隐藏在了简洁非交互式零知识证明算法的验证过程中,通过算术电路来表达访问客体的访问规则,在整个访问控制过
程中,除了零知识证明密钥生成和零知识证明生成,其余流程不涉及访问主客体的属性值,很好地保护了属性隐私和访问策略隐私,能有效抵御共谋攻击和中间人攻击。
[0068]
本发明基于默克尔树和非对称密码算法来管理系统的成员域,方便系统对成员域进行添加和删除。同时,将默克尔树分发至各个成员域上,由多个域来共同管理成员域,方便构建成员域之间的信任。
[0069]
以上所述实施例是用以说明本发明,并非用以限制本发明,所以举例数值的变更或等效元件的置换仍应隶属本发明的范畴。
[0070]
由以上详细说明,可使本领域普通技术人员明了本发明的确可达成前述目的,实已符合专利法的规定。
[0071]
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,应当指出的是,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
[0072]
应当注意的是,上述有关流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
[0073]
上文已对基本概念做了描述,显然,对于阅读此申请后的本领域的普通技术人员来说,上述发明披露仅作为示例,并不构成对本技术的限制。虽然此处并未明确说明,但本领域的普通技术人员可能会对本技术进行各种修改、改进和修正。该类修改、改进和修正在本技术中被建议,所以该类修改、改进、修正仍属于本技术示范实施例的精神和范围。
[0074]
同时,本技术使用了特定词语来描述本技术的实施例。例如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本技术至少一个实施例有关的某一特征、结构或特性。因此,应当强调并注意的是,本说明书中在不同位置两次或以上提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本技术的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
[0075]
此外,本领域的普通技术人员可以理解,本技术的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的过程、机器、产品或物质的组合,或对其任何新的和有用的改进。因此,本技术的各个方面可以完全由硬件实施、可以完全由软件(包括固件、常驻软件、微代码等)实施、也可以由硬件和软件组合实施。以上硬件或软件均可被称为“单元”、“模块”或“系统”。此外,本技术的各方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,其中计算机可读程序代码包含在其中。
[0076]
本技术各部分操作所需的计算机程序代码可以用任意一种或以上程序设计语言编写,包括如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net、python等的面向对象程序设计语言、如c程序设计语言、visualbasic、fortran2103、perl、cobol2102、php、abap的常规程序化程序设计语言、如python、ruby和groovy的动态程序设计语言或其它程序设计语言等。该程序代码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,
比如局域网(lan)或广域网(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(saas)。
[0077]
此外,除非权利要求中明确说明,本技术所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本技术流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本技术实施例实质和范围的修正和等价组合。例如,尽管上述各种组件的实现可以体现在硬件设备中,但是它也可以实现为纯软件解决方案,例如,在现有服务器或移动设备上的安装。
[0078]
同理,应当注意的是,为了简化本技术披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本技术的实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。然而,本技术的该方法不应被解释为反映所申明的客体需要比每个权利要求中明确记载的更多特征的意图。相反,发明的主体应具备比上述单一实施例更少的特征。
技术特征:
1.基于零知识证明和跨链的访问控制方法,其特征在于,包括如下步骤:s1.访问主体和访问客体身份注册;s2.成员域身份注册;s3.访问主体访问预处理;s31.访问主体通过物理域网关向访问客体,即访问客体发起访问请求;s32.访问主体所在物理域网关gw
domaina
向访问客体所在的物理域获取对应的零知识证明证明密钥key
proof
;物理域网关gw
domaina
向访问客体所在物理域发起密钥获取请求,并签名后发往至中继网关gw
relayer
;s33.中继网关gw
relayer
收到密钥获取请求后,对签名进行验证,验证通过后,为访问主体构造默克尔证明proof
merkle
,再将密钥获取请求和默克尔证明proof
merkle
打包并签名发往至访问客体所在物理域;s34.访问客体所在物理域网关gw
domainb
收到密钥获取请求后,验证签名和默克尔证明proof
merkle
,若都验证成功,则从区块链上调用krc合约获取密钥key
proof
,将密钥打包并签名发送给中继网关gw
relayer
;s35.中继网关gw
relayer
收到证明密钥key
proof
发送请求后,验证签名,若通过继而为访问客体所在物理域构造默克尔证明proof
merkle
,并将密钥key
proof
和默克尔证明proof
merkle
信息打包并签名发送给物理域网关gw
domaina
;s36.物理域网关gw
domaina
收到密钥key
proof
和默克尔证明proof
merkle
信息后,验证签名和默克尔证明,若验证通过则使用零知识证明密钥key
proof
和访问主体的属性集构造零知识证明proof
zk
,并将零知识证明proof
zk
打包并签名发送给中继网关gw
relayer
;s4.验证访问主体访问权限;s5.返回访问权限验证结果。2.根据权利要求1所述的基于零知识证明和跨链的访问控制方法,其特征在于,s1包括:s11.物理域中的访问主体和访问客体发起注册请求;s12.给访问主体分配用于数字签名的公钥pk
s
和私钥sk
s
;s13.给访问客体分配访问策略。3.根据权利要求1所述的基于零知识证明和跨链的访问控制方法,其特征在于,s2包括:s21.物理域发起加入申请后,为物理域生成一对密钥,一对密钥包括一个公钥和一个私钥;s22.将已加入的物理域的公钥用来生成默克尔树,并将默克尔树的默克尔树mtroot根发送给已加入的各个物理域。4.根据权利要求1所述的基于零知识证明和跨链的访问控制方法,其特征在于,s4包括:s41.中继网关gw
relayer
收到访问主体的访问请求后,验证签名,若验证通过则从区块链上调用mtc合约获取默克尔树,并结合访问主体所在物理域的公钥构造默克尔证明proof
merkle
;再将访问请求中包含的零知识证明proof
zk
和默克尔证明proof
merkle
打包并签名发送给访问客体所在物理域网关gw
domainb
;
s42.物理域网关gw
domainb
收到中继网关gw
relayer
发送的访问请求相关信息,验证签名是否正确,若正确则通过验证,继而访问请求中包含的零知识证明proof
zk
发送至区块链bc
domainb
上,调用pdc合约对零知识证明proof
zk
进行验证,将验证结果返回给物理域网关gw
domainb
。5.根据权利要求1所述的基于零知识证明和跨链的访问控制方法,其特征在于,s5包括:s51.gw
domainb
将bc
domainb
返回的验证结果和当前域的公钥打包成返回信息,并签名发送至中继网关gw
relayer
;s52.gw
relayer
收到bc
domainb
的返回消息后,对签名进行验证,验证通过则调用bc
relayer
上的mtc合约获取默克尔树,并根据域公钥pk
b
生成默克尔证明;最后将返回信息和默克尔证明打包,并签名发送给gw
domaina
;s53.gw
domaina
收到gw
relayer
发送的消息后,验证签名和默克尔树证明,验证通过则获取访问请求结果。6.基于零知识证明和跨链的访问控制系统,其特征在于,包括:第一注册模块,用于进行访问主体和访问客体身份注册;第二注册模块,用于进行成员域身份注册;预处理模块,用于进行访问主体访问预处理;验证模块,用于验证访问主体访问权限;结果返回模块,用于返回访问权限验证结果;处理器,分别与所述第一注册模块、第二注册模块、预处理模块、验证模块和结果返回模块连接;以及存储器,与所述处理器连接,并存储有可在所述处理器上运行的计算机程序;其中,当所述处理器执行所述计算机程序时,所述处理器控制所述第一注册模块、第二注册模块、预处理模块、验证模块和结果返回模块工作,以实现如权利要求1~5中任意一项所述的基于零知识证明和跨链的访问控制方法。7.一种计算机可读存储介质,其特征在于,所述存储介质存储计算机指令,当计算机读取所述计算机指令时,所述计算机执行如权利要求1~5中任意一项所述的基于零知识证明和跨链的访问控制方法。
技术总结
本发明提供了基于零知识证明和跨链的访问控制方法、系统及存储介质,属于区块链访问控制技术领域,基于零知识证明和跨链的访问控制方法包括:S1.访问主体和访问客体身份注册;S2.成员域身份注册;S3.访问主体访问预处理;S4.验证访问主体访问权限;S5.返回访问权限验证结果。本发明将简洁非交互式零知识证明与基于属性的访问控制相结合,通过将访问控制过程中涉及属性或访问策略等具有隐私性的数据转变成简洁非交互式零知识证明中的待证明陈述,利用零知识证明算法过程中不泄漏任何隐私数据的特点来防止隐私数据的泄漏。该方法可以更好地实现跨域访问的数据安全,抵御中间人攻击和共谋攻击等多种威胁攻击方式。和共谋攻击等多种威胁攻击方式。和共谋攻击等多种威胁攻击方式。
技术研发人员:万武南 蒲槐霖 张权 张仕斌 黄未 刘宏
受保护的技术使用者:四川省智慧城乡大数据应用研究会
技术研发日:2023.08.21
技术公布日:2023/9/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种改良采泥器 下一篇:基于多维数据分析的高压电流监测方法与流程