基于政务联盟链的政务数据访问控制方法及系统与流程

文档序号:32442485发布日期:2022-12-06 22:38阅读:125来源:国知局
基于政务联盟链的政务数据访问控制方法及系统与流程

1.本发明涉及数据访问控制技术领域,尤其涉及一种基于政务联盟链的政务数据访问控制方法及系统。


背景技术:

2.本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。
3.现代电子政务不仅集成了各级政府内各部门协同运作的需求,而且利于打造社会一体生态政务、智慧城市。其中,电子政务数据的共享应用,是电子政务中体量巨大、每日必行、紧扣民生的重要社会化服务场景之一。近年来,许多学者在政务数据共建共享领域基于大数据、云计算方法展开了相关的研究,并取得了一定的成效和经验。然而,由于政务数据资源的覆盖范围广、分散、复杂、高价值、涉及隐私信息等特点,在分布式访问控制、安全互信和隐私保护等方面还存在一定的不足。
4.区块链技术作为一种综合性技术,其核心由对等式网络、分布式存储技术、密码算法、共识机制、智能合约技术等组成,其去中心化、可追溯性、动态扩展性的特点,符合电子政务中信息公开、政府职能扁平化、社会信任建设等需求,可以用于改进政务数据共享中存在的分布式存储、链上可追溯、难以篡改、安全可信等问题。目前,区块链技术作为一剂解决数据资源共建、共享类应用的良方,受到了各国政府的追捧,被用于构建养老金发放链、数字身份证验证链、地方政府政务链等。
5.然而,区块链作为新兴技术,虽然可以从基础层面确保数据的完整性和可信度,但在细粒度化确权、动态化响应和数据安全保证等方面仍存在一些问题。同时,当前的区块链研究主要聚焦于公有链,未结合政务实际和政务联盟链的特点进行调整和改进。再则,电子政务数据本身存在如下特点:1)多头管理,权属复杂;2)基于有效期的失效方法和迭代关系不明;3)多主体的联级调用实施困难;4)内容形式因人为、政策变化频繁;5)格式各异,结构化困难。上述特点导致政务数据存在权属分割、授权确权、可控分享等一系列问题,其制约了政务数据共享复用的价值实现,是当前亟需解决的技术问题。
6.另一方面,在分布式网络环境中,目前对数据的保护主要通过两种方式:访问控制和加密。
7.访问控制有很多种方式,最早的一些访问控制方案是自主访问控制dac和强访问控制mac方案。随着技术的发展,这两种访问控制方案已经不再满足当前的社会需求,随之出现了基于角色的访问控制rbac模型(role-based accesscontrol model)、基于属性的访问控制abac模型(attribute-based access control model)、基于权能的访问控制capbac等一些更适合当代系统安全的框架。其中,基于属性的访问控制模型是利用相关实体的属性作为授权基础来进行访问控制的一种方法,它的访问决策是基于请求者和资源具有的属性,请求者和资源在abac中通过特性来标识,避免了使用单一的用户角色来做决策,使得访问控制具有足够的灵活性和可扩展性。
8.加密方式有多种,通常在对数据加密时,可根据数据的敏感程度,系统对响应速度的要求以及网络环境的安全性选择不同类型的加密算法,根据加密和解密的密钥是否相同可以将加密算法非为两类:对称加密和非对称加密。其中,属性加密机制(attribute-based encryption,abe)是近年来新兴的一种公钥加密机制,它是身份加密方法的延伸。在属性加密中,用户的身份通过一系列的属性来描述,只有当用户的身份属性满足系统定义的访问策略时,才能够解密得到明文。abe机制可以被划分为密钥策略(key-policy attribute-based encryption,kp-abe,或称密钥策略的属性基加密)和密文策略(ciphertext-policyattribute-based encryption,cp-abe,或称密文策略的属性基加密)。cp-abe机制中,密文与访问策略相关,密钥与属性列表相关,kp-abe机制中,密钥与访问策略相关,密文与属性列表相关。其中,cp-abe凭借其优良特性,在组密钥管理和用户隐私保护等领域有着广泛应用。
9.综上所述,是否可以基于上述数据保护方式,结合政务实际和政务联盟链的特点,提供一种权限粒度可控、可进行动态精准访问控制且能够增强数据安全性的政务数据可控分享方法,是当前亟需解决的技术问题。


技术实现要素:

10.本发明的目的在于:克服现有技术的不足,提供了一种基于政务联盟链的政务数据访问控制方法及系统。本发明提供的把访问主体对客体的访问权限进行划分以进行权限分割,同时通过基于属性和事务相融合细粒度访问控制模型,结合改进的cp-abe方法进行数据加密,解决了权限粒度可控、动态精准访问控制、数据安全保证等方面的问题。
11.为实现上述目标,本发明提供了如下技术方案:
12.一种基于政务联盟链的政务数据访问控制方法,包括:
13.主体客体管理步骤:根据预设的权限分割规则,将材料客体对应的访问主体s分别配置为定义者s_rd、所有者s_os、控制者s_rc和使用者s_ru以进行访问权限划分;所述材料客体包括链下材料本体和链上索引,所述链下材料本体的允许访问属性默认为不可访问,所述材料客体由政务联盟链gcb和材料所在各节点控制;其中,所述政务联盟链gcb被配置为包括材料索引主链mi-bchain、确权控制子链rc-bchain和服务日志子链sl-bchain,所述材料索引主链mi-bchain用于存储所有材料客体的索引信息,所述确权控制子链rc-bchain用于存储所有确权与访问控制规则合约,所述服务日志子链sl-bchain用于根据既有规则进行服务运营和日志记录;
14.访问控制初始化步骤:构建确权控制子链rc_bchain的智能合约内容,包括加密访问主体唯一性标识表s.gid、属性表s.at和事务可调用材料类目对应表otot_tl;以及根据上述合约内容生成访问控制加密策略并添加到rc_bchain子链的智能合约;
15.访问控制实施步骤:根据使用者向政务联盟链gcb的服务日志子链sl-bchain提出的办理事务申请,获取目标所有者;在材料索引主链mi-bchain搜索以获取所有者为前述目标所有者的材料并形成相关信息列表;将前述相关信息列表对应的数据集合中的所有材料,按所有者、定义者、控制者的公私钥值实施顺序签名后,由主控制者和服务日志子链sl-bchain同步发起同一事务下的批量签名验证:对照前述相关信息列表中材料,由材料索引主链mi-bchain获取确权控制子链rc-bchain内的合约内容后,进行基于事务的批量双层解
密,解密后进行哈希核验,核验完成后将对应材料的材料本体的允许访问属性配置为允许访问。
16.进一步,访问完成后,通过材料索引主链mi-bchain将本次事务的访问结果添加到服务日志子链sl-bchain的日志块数据中,然后将前述对应材料的材料本体的允许访问属性重新配置为不可访问。
17.进一步,对应每个材料本体设置有允许访问属性参数,所述允许访问属性参数的值被配置为0或1,当允许访问属性参数的值为0时表示该材料本体不可访问,当允许访问属性参数的值为1时表示该材料本体允许访问;
18.各材料本体的允许访问属性参数的值默认全部置0,当材料本体被允许访问时将该材料本体的允许访问属性参数的值置1,材料本体的当次访问完成后将允许访问属性参数的值重新置0。
19.进一步,访问控制初始化步骤具体如下:
20.步骤s210,构建rc_bchain子链智能合约内容:由各定义者s_rd统一对各材料类型定义各主体{s}的主体唯一性标识{s.gid}和主体属性{s.at};由事务定义者tr_rd定义otot_tl;以及根据上述合约内容生成访问控制加密策略算法后加入到rc_bchain子链的智能合约;
21.步骤s220,全局参数生成:主体公私钥由确权控制子链rc_bchain对各访问主体进行链上注册,算法输出系统公共参数pp,即,
22.setup(1
λ
)

(pp)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
23.步骤s230,给每个主体s输出gid作为各主体合法的链上唯一加密标识信息,并生成公私钥对(usk
gid
,upk
gid
),即,
24.setup_rc(pp)

(usk
gid
,upk
gid
)
ꢀꢀꢀꢀꢀ
(2)
25.步骤s240,确权控制子链rc_bchain根据各个主体提供的私钥ssk
sg
和属性集中的att个属性的集合,为其生成对应的使用者属性私钥ak
gid
和转化密钥tak
gid
,即,
26.keygen(s,pp,gid,usk
gid
)

(ak
gid
,tak
gid
)
ꢀꢀꢀꢀꢀꢀꢀ
(3)
27.步骤s250,对每个材料客体o上链索引o_in和索引中的资源地址o_add实施基于属性的加密方法,即,
28.menc(pp,m,p(a,p),{upk
gid
})

ct(4)
29.其中,pp为系统公共参数,m是材料明文,p(a,p)为访问策略函数,{upk
gid
}为公钥集合;
30.所述访问策略函数p(a,p)由对照事务可调用材料类目对应表otot_tl生成的事务跳转访问规则p
tr
和直接文件访问策略p0共同构成,即,
31.p(a,p)=(a
tr
,otot_tl,p
tr
)∩(a
t
,po)
ꢀꢀꢀꢀ
(5)
32.其中,a
tr
,a
t
为对应策略矩阵。
33.进一步,访问控制实施步骤具体如下:
34.步骤s310,接收使用者向政务联盟链gcb的服务日志子链sl-bchain提出的办理事务tr申请,根据该事务tr申请中请求的材料信息,获取该材料的所有者作为目标所有者os;
35.步骤s320,在材料索引主链mi-bchain中通过find函数进行索引,函数返回事务tr
下符合所有者是os的j个材料相关信息列表{o
s_os.gid,j,tr
},
36.find(o_in(i),s_os(i),tr,otot_tl)

{o
s_os(j),tr,j
} (6)
37.其中,1≤j≤i;o_in(i)为第i个材料客体的上链索引o_in,s_os(i)第i个材料客体的所有者,tr表示当前申请的事务,otot_tl为事务可调用材料类目对应表;
38.其他未返回列表的i-j个材料,通过采集使用者的操作信息进行增加;
39.步骤s330,将{o
s_os(j),tr,j
}集合中的所有材料,按所有者、定义者、控制者的公私钥值作为解密参数进行顺序签名;然后,由主控制者和服务日志子链sl-bchain同步发起同一事务下的批量签名验证算法,即,
[0040][0041]
其中,j表示相关信息列表中的材料总数,j=1,2,
……
,j;order(s
(tr,j)
)=(s_os.gid,s_rd.gid,s_rc.gid)为签名先后顺序信息,s_os.gid表示所有者标识,s_rd.gid表示定义者标识,s_rc.gid表示控制者标识;l
tr,j
表示签名人的公钥集合;σ
tr,j
表示每个材料的聚合签名值;
[0042]
获取各材料权属方的签名授权输出函数的结果值isv,当结果值isv等于1时判定授权通过,否则判定授权错误;
[0043]
步骤s340,对照前述{o
s_os.gid,j,tr
}列表,由材料索引主链mi-bchain读取确权控制子链rc-bchain内的合约内容后,进行基于事务的批量双层解密算法,即,
[0044][0045]
其中,mmj为第j个材料的中间一次解密结果,ak
gid
为使用者属性私钥,tak
gid
为转化密钥,mj为第j个材料的材料明文;
[0046]
解密后获得材料哈希值群所有链下的真实存储地址,同时对照索引中解密出的材料哈希值进行哈希核验,验证完成后,将所有材料本体的允许访问属性的参数集合{acc_p(j)}均置1,即允许访问材料本体;
[0047]
步骤s350,访问完成后,材料索引主链mi-bchain将本次事务成功或失败的访问结果添加到服务日志子链sl-bchain的日志块数据中,然后将前述对应材料的材料本体的允许访问属性的参数集合{acc_p(j)}重新置0。
[0048]
进一步,步骤s210中的访问控制加密策略为添加有序多重签名的属性加密算法im-abe,步骤如下:
[0049]
步骤s211,全局参数生成:
[0050]
输入安全参数1
λ
,根据双线性映射定义e:g
×
g=g
t
,其中g和g
t
是2个阶为素数p的乘法循环群,g的随机生成元为g;抗碰撞哈希函数h:{0,1}
*

g;随机选择γ∈zp,其中,zp为符合线性秘密共享方案lsss的域,输出全局参数pp,
[0051]
pp={g,g
γ
,g,g
t
,h} (9)
[0052]
步骤s212,密钥生成和属性管理密钥生成:
[0053]
将所有主体无差别注册到区块链网络,生成每个主体的链上唯一加密身份标识s.gid,即算法中的简单设置为gid参数,并生成该实体公私钥对(usk
gid
,upk
gid
);
[0054][0055]
通过确权控制子链rc-bchain对中每一个属性at随机取一个数α
at
,β
at
∈z
p
得到子链属性控制私钥:子链属性控制公钥rc_pk
at
=(α
at
,β
at
),完成前述公式(2),即:
[0056]
ssk
at,gid
={rc_sk
at
},spk
at,sg
={rc_pk
at
};
[0057]
步骤s213,获取使用者的gid,设其对应集合的属性子集为ar
gid
;为每个属性at分别选择1个随机数μ∈z
p
,加密每个属性得到属性参数d
at
,聚合得到聚合属性密文,即,
[0058][0059]
其中x∈ar
gid
,计算密文参数和d
2,at
=g2,生成与属性相对应的用户属性私钥ak
gid
和转化密钥tak
gid
,具体如下,
[0060][0061][0062]
转化密钥为:
[0063]
tak
gid
=(tapk
gid
,task
gid
=μ)
ꢀꢀꢀꢀꢀꢀ
(14)
[0064]
步骤s214,批量运行加密算法:
[0065]
运行加密算法对前述数据或属性值进行加密,首先由s_rd(oi)定义材料的访问策略函数p(a,p),a为一个la
×
na的矩阵,la为属性个数;
[0066]
随机选取密码值sec∈zp,生成随机向量ω=(sec,v2,v3…
vn)∈zp,输入明文m,生成的密文ct表述为:
[0067]
ct=(c1,,c2,c
1,x
,c
2,x
,c
3,x
)
ꢀꢀꢀ
(15)
[0068]
其中c2=g
sec
,,
[0069]
步骤s215,进行双层解密:
[0070]
判断属性集合ar
gid
是否满足访问策略函数,满足时进行第一次解密,得到中间一次解密结果mmj,mmj为半解密密文;验证策略结果是否正确,当策略结果验证错误时输出验证错误信息,当策略结果验证正确时再采集使用者私钥信息,按如下公式实施解密得到明文mj,
[0071][0072]
其中,tw为构造的中间参数,
[0073][0074]
循环执行j次,完成基于事务tr的所有文件解密。
[0075]
进一步,所述定义者s_rd被配置为,对整体同类型材料的编码属性、隐私属性、可使用主体属性和允许操作类型属性进行定义;
[0076]
所述所有者s_os被配置成,为材料共享操作提供许可签名,以及针对部分材料属性进行个性化隐私设置;
[0077]
所述控制者s_rc被配置为,通过智能合约实施统一运转,由共识机制和链上链下数据协同方法进行数据保障;以及,设置权限变更、冲突仲裁、环境变化捕捉响应和跨链权限映射信息;
[0078]
所述使用者s_ru通过节点访问政务联盟链gcb并发生办理事务tr申请。
[0079]
本发明还提供了一种基于政务联盟链的政务数据访问控制系统,包括政务联盟链gcb和政务数据访问控制模型;
[0080]
所述政务联盟链gcb包括材料索引主链mi-bchain、确权控制子链rc-bchain和服务日志子链sl-bchain,所述材料索引主链mi-bchain用于存储所有材料客体的索引信息,所述确权控制子链rc-bchain用于存储所有确权与访问控制规则合约,所述服务日志子链sl-bchain用于根据既有规则进行服务运营和日志记录;
[0081]
所述政务数据访问控制模型包括主体客体管理模块,访问控制初始化模块和访问控制实施模块;
[0082]
所述主体客体管理模块被配置为:根据预设的权限分割规则,将材料客体对应的访问主体s分别配置为定义者s_rd、所有者s_os、控制者s_rc和使用者s_ru以进行访问权限划分;所述材料客体包括链下材料本体和链上索引,所述链下材料本体的允许访问属性默认为不可访问,所述材料客体由政务联盟链gcb和材料所在各节点控制;
[0083]
所述访问控制初始化模块被配置为:构建确权控制子链rc_bchain的主体合约内容,包括加密访问主体唯一性标识表s.gid、属性表s.at和事务可调用材料类目对应表otot_tl;根据上述主体合约内容生成访问控制加密策略;
[0084]
所述访问控制实施模块被配置为:根据使用者向政务联盟链gcb的服务日志子链sl-bchain提出的办理事务申请,获取目标所有者;在材料索引主链mi-bchain搜索以获取所有者为前述目标所有者的材料并形成相关信息列表;将前述相关信息列表对应的数据集合中的所有材料,按所有者、定义者、控制者的公私钥值实施顺序签名后,由主控制者和服务日志子链sl-bchain同步发起同一事务下的批量签名验证:对照前述相关信息列表中材料,由材料索引主链mi-bchain获取确权控制子链rc-bchain内的合约内容后,进行基于事务的批量双层解密,解密后进行哈希核验,核验完成后将对应材料的材料本体的允许访问
属性配置为允许访问。
[0085]
进一步,所述访问控制实施模块还被配置为:
[0086]
在事务的访问完成后,通过材料索引主链mi-bchain将本次事务的访问结果添加到服务日志子链sl-bchain的日志块数据中,然后将前述对应材料的材料本体的允许访问属性重新配置为不可访问。
[0087]
进一步,对应每个材料本体设置有允许访问属性参数,所述允许访问属性参数的值被配置为0或1,当允许访问属性参数的值为0时表示该材料本体不可访问,当允许访问属性参数的值为1时表示该材料本体允许访问。
[0088]
本发明由于采用以上技术方案,与现有技术相比,作为举例,具有以下的优点和积极效果:本发明把访问主体对客体的访问权限进行划分以进行权限分割,同时通过基于属性和事务相融合细粒度访问控制模型,结合改进的cp-abe方法进行数据加密,解决了权限粒度可控、动态精准访问控制、数据安全保证等方面的问题。
[0089]
一方面,权项分割方法采用四权分离,兼顾了各方权限要求,保障了公民、企事业团体的隐私权力、保证了政务联盟链的整体可控、便于链上权限的动态变更调整,为后续的访问控制打下了良好基础。
[0090]
另一方面,提出了基于属性和事务相融合细粒度访问控制模型,该模型算法具有如下优势:1)通过abac(基于属性的访问控制模型)与tbac(基于事务的访问控制模型)优势结合,并结合联盟链优势,实现了细粒度化智能合约控制下的可控访问;2)增加了事务对应的批量客体访问方法,提升了访问效能;3)通过有序多重签名方法,保障了各方权益;4)使用基于属性基的加密方法实现资源安全可控访问,通过基于事务的资源开放闭合操作增强数据安全性;5)主链、子链分离便于合约分类管理、问题排查和更新迭代。
[0091]
再一方面,通过改进的cp-abe方法(即im-abe)对数据进行加密,二次解密(或称双层解密)的设计可以终止策略验证错误导致的后续计算,且能进一步分离合约,提升数据安全性。
附图说明
[0092]
图1为本发明实施例提供的基于政务联盟链的政务数据访问控制方法的流程图。
[0093]
图2为本发明实施例提供的基于属性和事务相融合细粒度访问控制模型的逻辑处理示意图。
[0094]
图3为本发明实施例提供的确权控制子链智能合约的数据结构示意图。
[0095]
图4为本发明实施例提供的访问控制的初始化示意图。
具体实施方式
[0096]
以下结合附图和具体实施例对本发明公开的基于政务联盟链的政务数据访问控制方法及应用作进一步详细说明。应当注意的是,下述实施例中描述的技术特征或者技术特征的组合不应当被认为是孤立的,它们可以被相互组合从而达到更好的技术效果。在下述实施例的附图中,各附图所出现的相同标号代表相同的特征或者部件,可应用于不同实施例中。因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0097]
需说明的是,本说明书所附图中所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定发明可实施的限定条件,任何结构的修饰、比例关系的改变或大小的调整,在不影响发明所能产生的功效及所能达成的目的下,均应落在发明所揭示的技术内容所能涵盖的范围内。本发明的优选实施方式的范围包括另外的实现,其中可以不按所述的或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0098]
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
[0099]
实施例
[0100]
授权(authorization)一直是贯穿整个项目流程的必备模块,是大数据时代资源存储、流通、共享所必然面临的核心科学问题,也是实现电子政务数据可控分享的先决条件。本发明基于政务联盟链中权属规则的复杂需求和日益严格的公民个人隐私保护要求,提出了如下四权分离的权限分割方式——将各主体对客体的访问权限划分为定义权(right of definition,简称rd)、所有权(ownership,简称os)、控制权(right to control简称rc)、使用权(right to use简称ru)。
[0101]
定义权rd可以归属于材料主管、颁发、代管等部门,可对整体同类型材料的编码属性、隐私属性、可使用主体属性、允许操作类型属性等进行定义,但不涉及单个材料的个性化属性定义和实际控制材料的合约运营方法定义。
[0102]
所有权os可以归属于材料各自的所有人(包含自然人、法人)。根据法规要求,在共享复用操作前,获取材料所有人的许可签名。同时,所述所有人有权以轻量化节点个人钱包的方式针对部分材料属性进行个性化隐私设置。
[0103]
控制权rc统一归属于联盟链、各链下业务系统甚至存储控制系统,主要通过智能合约实施统一运转,由共识机制、链上链下数据协同方法进行保障,同时还承担权限变更、冲突仲裁、环境变化捕捉响应、跨链权限映射等责任。
[0104]
使用权ru归属于各节点连接的链下业务系统操作者、链上通过轻量化节点上链的自接入用户,以及委托操作中被授权的被委托用户等。同时,所有者(owner)拥有最大的自使用权限。
[0105]
上述四权分离的权限分割方法,最大限度兼顾了电子政务中各方权限要求,为后续的访问控制打下了良好基础。根据前述四权分离的权限分割规则,本发明将材料客体(object,简称o)对应的访问主体(subject,简称s)分别为定义者(s_rd)、所有者(s_os)、控制者(s_rc)、使用者(s_ru)。
[0106]
所述材料客体在这里包含链下材料本体(即链下材料资源本身,object source,简称o_s)和链上索引(object index,简称o_in)两部分,且材料本体o_s(i)(即第i个材料的材料本体)的acc_p允许访问属性默认全部置0。
[0107]
材料客体控制者包括政务联盟链(gcb)和材料所在的各节点,政务联盟链(gcb)为主要控制器者,材料所在的各节点为辅助控制者。
system,简称off-s)。除实体外还有两个重要参数(或称因素):属性(attribution,简称at);规则(policy,简称p,或称操作operation)。
[0121]
基于ati-ac(属性和事务相融合)的访问控制模型主要包括访问控制初始化和访问控制实施两个模块。
[0122]
访问控制初始化模块,主要用于确权控制子链rc_bchain智能合约的构建。
[0123]
确权控制子链rc_bchain的构建内容主要包括:加密访问主体唯一性标识表(s.gid)、属性表(s.at)、事务可调用材料类目对应表(otot_tl)和添加有序多重签名(sequential multi-signature)的改进的基于属性加密(improved attribute-based encryption,im-abe)方案。
[0124]
rc_bchain智能合约的数据组成参见图3所示,包括主体唯一性标识表s.gid、属性表s.at、事务可调用材料类目对应表otot_tl和im-abe加密方案。
[0125]
本实施例中,访问控制初始化模块进行初始化的实施步骤具体可以如下:
[0126]
步骤s210,构建rc_bchain子链主体合约内容:由各定义者s_rd统一对各材料类型定义各主体{s}的主体唯一性标识{s.gid}和主体属性{s.at};由事务定义者tr_rd定义otot_tl;根据上述合约内容生成访问控制加密策略算法后,加入到rc_bchain子链的智能合约。
[0127]
参见图4所示,示例了确权控制子链rc_bchain的生成步骤和对应实施者。图4中,otot_t1表中存储有s.rd、s.os、s.rc、s.ru、ev和{a,p}信息,其中s.rd、s.os、s.rc、s.ru分指主体s的定义者、所有者、控制者、使用者列表,ev指相关的环境变量,{a,p}指权限规则。
[0128]
步骤s220,全局参数生成:主体公私钥由确权控制子链rc_bchain对各访问主体进行链上注册,算法输出系统公共参数pp,即,
[0129]
setup(1
λ
)

(pp)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)。
[0130]
步骤s230,给每个主体s输出gid作为各主体合法的链上唯一加密标识信息,并生成公私钥对(usk
gid
,upk
gid
),即,
[0131]
setup_rc(pp)

(usk
gid
,upk
gid
)
ꢀꢀꢀꢀꢀꢀ
(2)。
[0132]
步骤s240,确权控制子链rc_bchain根据各个主体提供的私钥ssk
sg
和属性集中的att个属性的集合,为其生成对应的使用者属性私钥ak
gid
和转化密钥tak
gid
,即,
[0133]
keygen(s,pp,gid,usk
gid
)

(ak
gid
,tak
gid
)
ꢀꢀꢀꢀꢀꢀ
(3)。
[0134]
步骤s250,对每个材料客体o上链索引o_in和索引中的资源地址o_add实施基于属性的加密方法,即,
[0135]
menc(pp,m,p(a,p),{upk
gid
})

ct(4)
[0136]
其中,pp为系统公共参数,m是材料明文,p(a,p)为访问策略函数,{upk
gid
}为公钥集合;
[0137]
所述访问策略函数p(a,p)由对照事务可调用材料类目对应表otot_tl生成的事务跳转访问规则p
tr
和直接文件访问策略p0共同构成,即,
[0138]
p(a,p)=(a
tr
,otot_tl,p
tr
)∩(a
t
,po)
ꢀꢀ
(5)
[0139]
其中,a
tr
,a
t
为对应策略矩阵。
[0140]
本实施例中,访问控制实施模块的可控访问步骤具体如下:
[0141]
步骤s310,接收使用者ru向政务联盟链gcb的服务日志子链sl-bchain提出的办理事务tr申请,该事务申请为请求访问所有人为os的相关材料;根据该事务tr申请中请求的材料信息,获取该材料的所有者作为目标所有者os。
[0142]
步骤s320,在材料索引主链mi-blokchain中通过find函数进行索引,以搜索是否有符合要求的材料上链;函数返回事务tr下符合所有者是os的j个材料相关信息列表{o
s_os.gid,j,tr
},即,
[0143]
find(o_in(i),s_os(i),tr,otot_tl)

{o
s_os(j),tr,j
} (6)
[0144]
其中,{o
s_os(j),tr,j
}中的j的取值范围为1≤j≤i;o_in(i)为第i个材料客体的上链索引o_in,s_os(i)第i个材料客体的所有者,tr表示当前申请的事务,otot_tl为事务可调用材料类目对应表;
[0145]
其他未返回列表的i-j份材料,可以通过采集使用者的操作信息来进行增加,即其他未返回列表的i-j份材料需要使用者自行进行新增。
[0146]
步骤s330,将{o
s_os(j),tr,j
}集合中的所有材料,按所有者s_os、定义者s_rd、控制者s_rc的公私钥值作为解密参数进行顺序签名,具体的,可以按所有者s_os、定义者s_os、控制者s_os的公私钥值作为参数代入公式(17)中算法实施顺序签名;最后,由主控制者和服务日志子链sl-bchain同步发起同一事务下的批量签名验证算法,即,
[0147][0148]
其中,j表示相关信息列表中的材料总数,j=1,2,
……
,j;order(s
(tr,j)
)=(s_os.gid,s_rd.gid,s_rc.gid)为签名先后顺序信息,s_os.gid表示所有者标识,s_rd.gid表示定义者标识,s_rc.gid表示控制者标识;l
tr,j
表示签名人的公钥集合;σ
tr,j
表示每个材料的聚合签名值;
[0149]
获取各材料权属方的签名授权输出函数的结果值isv,当结果值isv等于1时判定授权通过,否则判定授权错误。也就是说,保证每份材料获得各材料权属方签名授权输出函数结果值isv为1,否则就输出授权错误。
[0150]
步骤s340,对照前述{o
s_os.gid,j,tr
}列表,由材料索引主链mi-bchain读取确权控制子链rc-bchain内的合约内容后,进行基于事务的批量双层解密算法,即,
[0151][0152]
其中,mmj为第j个材料的中间一次解密结果,ak
gid
为使用者属性私钥,tak
gid
为转化密钥,mj为第j个材料的材料明文。
[0153]
解密后获得材料哈希值群所有链下的真实存储地址,同时对照索引中解密出的材料哈希值进行哈希核验,验证完成后,将所有材料本体的允许访问属性的参数集合{acc_p(j)}均置1,即允许访问材料本体。
[0154]
步骤s350,访问完成后,材料索引主链mi-bchain将本次事务成功或失败的访问结果添加到服务日志子链sl-bchain的日志块数据中,并将o_s(j)的acc_p环境参数重新置0,即将前述允许访问属性的参数集合{acc_p(j)}重新置0。
[0155]
本实施例中,步骤s210中的访问控制加密策略优选为添加有序多重签名的属性加
密算法im-abe,im-abe的具体算法如下。
[0156]
步骤s211,全局参数生成。
[0157]
输入安全参数1
λ
,根据双线性映射定义e:g
×
g=g
t
,其中g和g
t
是2个阶为素数p的乘法循环群,g的随机生成元为g;抗碰撞哈希函数h:{0,1}
*

g;随机选择γ∈zp,其中,zp为符合线性秘密共享方案lsss的域,输出全局参数pp,
[0158]
pp={g,g
γ
,g,g
t
,h} (9)
[0159]
步骤s212,密钥生成和属性管理密钥生成。
[0160]
将所有主体无差别注册到区块链网络,生成每个主体的链上唯一加密身份标识s.gid,即算法中的简单设置为gid参数,并生成该实体公私钥对(usk
gid
,upk
gid
):
[0161][0162]
通过确权控制子链rc-bchain对中每一个属性at随机取一个数α
at
,β
at
∈z
p
得到子链属性控制私钥:子链属性控制公钥rc_pk
at
=(α
at
,β
at
),完成前述公式(2),即:
[0163]
ssk
at,gid
={rc_sk
at
},spk
at,sg
={rc_pk
at
}。
[0164]
步骤s213,获取使用者的gid,设其对应集合的属性子集为ar
gid
。以及,为每个属性at分别选择1个随机数μ∈z
p
,加密每个属性得到属性参数d
at
,聚合得到聚合属性密文,即,
[0165][0166]
其中x∈ar
gid
,计算密文参数和d
2,at
=g2,生成与属性相对应的用户属性私钥ak
gid
和转化密钥tak
gid
,具体如下,
[0167][0168][0169]
转化密钥为:
[0170]
tak
gid
=(tapk
gid
,task
gid
=μ)
ꢀꢀꢀꢀꢀꢀꢀꢀ
(14)
[0171]
步骤s214,批量运行加密算法。
[0172]
运行加密算法对前述数据或属性值进行加密,首先由s_rd(oi)定义材料的访问策略函数p(a,p),a为一个la
×
na的矩阵,la为属性个数;
[0173]
随机选取密码值sec∈zp,生成随机向量ω=(sec,v2,v3…
vn)∈zp,输入明文m,生成的密文ct表述为:
[0174]
ct=(c1,,c2,c
1,x
,c
2,x
,c
3,x
)
ꢀꢀꢀꢀ
(15)
[0175]
其中c2=g
sec

[0176]
访问策略通过该方法成功隐藏在密文ct中。
[0177]
步骤s215,进行双层解密,即二次解密。
[0178]
判断属性集合ar
gid
是否满足访问策略函数,满足时进行第一次解密,得到中间一次解密结果mmj,mmj为半解密密文;验证策略结果是否正确,当策略结果验证错误时输出验证错误信息,当策略结果验证正确时再采集使用者私钥信息,按如下公式实施解密得到明文mj,
[0179][0180]
其中,tw为构造的中间参数,
[0181][0182]
循环执行j次,完成基于事务tr的所有文件解密。二次解密设计终止了策略验证错误导致的后续计算,且能进一步分离合约,提升安全性。
[0183]
本发明的另一实施例,还提供了一种基于政务联盟链的政务数据访问控制系统。
[0184]
所述系统包括政务联盟链gcb和政务数据访问控制模型。
[0185]
所述政务联盟链gcb包括材料索引主链mi-bchain、确权控制子链rc-bchain和服务日志子链sl-bchain,所述材料索引主链mi-bchain用于存储所有材料客体的索引信息,所述确权控制子链rc-bchain用于存储所有确权与访问控制规则合约,所述服务日志子链sl-bchain用于根据既有规则进行服务运营和日志记录。
[0186]
所述政务数据访问控制模型包括主体客体管理模块,访问控制初始化模块和访问控制实施模块。
[0187]
所述主体客体管理模块被配置为:根据预设的权限分割规则,将材料客体对应的访问主体s分别配置为定义者s_rd、所有者s_os、控制者s_rc和使用者s_ru以进行访问权限划分;所述材料客体包括链下材料本体和链上索引,所述链下材料本体的允许访问属性默认为不可访问,所述材料客体由政务联盟链gcb和材料所在各节点控制。
[0188]
所述访问控制初始化模块被配置为:构建确权控制子链rc_bchain的主体合约内容,包括加密访问主体唯一性标识表s.gid、属性表s.at和事务可调用材料类目对应表otot_tl;根据上述主体合约内容生成访问控制加密策略。
[0189]
所述访问控制实施模块被配置为:根据使用者向政务联盟链gcb的服务日志子链sl-bchain提出的办理事务申请,获取目标所有者;在材料索引主链mi-bchain搜索以获取所有者为前述目标所有者的材料并形成相关信息列表;将前述相关信息列表对应的数据集合中的所有材料,按所有者、定义者、控制者的公私钥值实施顺序签名后,由主控制者和服务日志子链sl-bchain同步发起同一事务下的批量签名验证:对照前述相关信息列表中材料,由材料索引主链mi-bchain获取确权控制子链rc-bchain内的合约内容后,进行基于事
务的批量双层解密,解密后进行哈希核验,核验完成后将对应材料的材料本体的允许访问属性配置为允许访问。
[0190]
本实施例中,所述访问控制实施模块还被配置为:在事务的访问完成后,通过材料索引主链mi-bchain将本次事务的访问结果添加到服务日志子链sl-bchain的日志块数据中,然后将前述对应材料的材料本体的允许访问属性重新配置为不可访问。
[0191]
具体实施时,对应每个材料本体设置有允许访问属性参数,所述允许访问属性参数的值被配置为0或1,当允许访问属性参数的值为0时表示该材料本体不可访问,当允许访问属性参数的值为1时表示该材料本体允许访问。
[0192]
其他技术特征参考在前实施例,所述各模块能够被配置为执行相应的信息处理过程,在此不再赘述。
[0193]
在上面的描述中,本发明的公开内容并不旨在将其自身限于这些方面。而是,在本公开内容的目标保护范围内,各组件可以以任意数目选择性地且操作性地进行合并。另外,像“包括”、“囊括”以及“具有”的术语应当默认被解释为包括性的或开放性的,而不是排他性的或封闭性,除非其被明确限定为相反的含义。所有技术、科技或其他方面的术语都符合本领域技术人员所理解的含义,除非其被限定为相反的含义。在词典里找到的公共术语应当在相关技术文档的背景下不被太理想化或太不实际地解释,除非本公开内容明确将其限定成那样。本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1