在区块链上的基于属性的访问控制方法技术

技术编号:31241931 阅读:20 留言:0更新日期:2021-12-08 10:34
本发明专利技术公开了一种在区块链上的基于属性的访问控制方法,数据拥有者将个人数据加密存储在星际文件系统上,并将返回的文件哈希值保存在区块链账本中,作为存储凭证,解决了传统方案中存在的单点故障等问题;其次,通过区块链实施基于属性的去中心化访问控制,代替传统方案中的可信第三方,解决人们的信任以及访问过程不透明等问题;最后,通过线性整数秘密共享算法,实现对称密钥在多个属性间的共享,数据请求者必须拥有一定数量合法的属性私钥,才可以恢复对称密钥,解决传统方案中可能存在的密钥泄露等问题。密钥泄露等问题。密钥泄露等问题。

【技术实现步骤摘要】
在区块链上的基于属性的访问控制方法


[0001]本专利技术属于密码学与信息安全
,具体涉及一种在区块链上的基于属性的访问控制方法。

技术介绍

[0002]随着物联网,大数据等的普及,数据给人们提供便利的同时也带来了许多隐私问题。因此,如何在确保数据隐私的前提下,实现多方之间的安全共享,进而充分发挥数据的应用价值成为人们首要关注的问题。传统方案提出了许多访问控制方法,但大多都是通过中心机构来实施数据的访问控制,这就带来了以下问题:(1)中心机构可能会为了个人利益,向数据用户提供虚假授权;(2)集中访问策略管理具有单点故障等问题;(3)访问过程不透明。
[0003]区块链的防篡改、不可伪造等特性为以上问题提供了一些解决方案。许多学者提出通过区块链技术实施数据的访问控制。但大多方案都致力于确保文件完整性,以及操作过程的公开透明,但忽略了资源本身的隐私性,存在密钥泄露等问题;或仅通过用户公钥或身份标识来实行访问控制,不适用于复杂场景下细粒度的访问控制。因此,通过区块链来实现去中心化的基于属性的细粒度访问控制仍具有非常重要的研究价值和意义。

技术实现思路

[0004]本专利技术的目的是提供一种在区块链上的基于属性的访问控制方法,解决了现有技术中存在的信任问题以及访问控制过程不透明的问题。
[0005]本专利技术所采用的技术方案是,在区块链上的基于属性的访问控制方法,具体按照以下步骤实施:
[0006]步骤1、数据拥有者在本地使用对称加密算法加密个人数据data得到密文CT;具体过程如下:
[0007]Encrypt
keySecret
(data)

CT:首先,数据拥有者在本地随机选择一个秘密数s,计算哈希值keySecret=H(s)生成对称密钥keySecret,其中H(s)是一个单向哈希函数,然后,通过对称加密算法,以keySecret作为对称密钥,加密个人数据data,得到密文CT,即CT=Encrypt
keySecret
(data);
[0008]步骤2、数据拥有者将密文CT上传至星际文件系统;
[0009]步骤3、星际文件系统返回一个密文CT的地址hash
CT

[0010]步骤4、数据拥有者在本地制定关于个人数据data的基于属性的访问策略Policy以及关于密文CT的解密令牌并用地址hash
CT
作为对称密钥,使用对称算法加密解密令牌形成密文令牌:
[0011][0012]然后以交易的形式,将星际文件系统返回的密文CT的资源地址hash
CT
,密文令牌
以及基于属性的访问策略Policy上传至区块链账本;
[0013]步骤5、数据请求者通过区块链向数据拥有者发起访问资源的请求,区块链会根据数据请求者请求中的属性验证其是否满足相应的访问策略;
[0014]步骤6、如果满足,则返回文件地址hash
CT
和数据请求者的属性满足的子策略P
i
给数据请求者;
[0015]步骤7、数据请求者收到文件地址hash
CT
和P
i
后,根据hash
CT
到星际文件系统上查找数据资源data对应的密文数据CT;
[0016]步骤8、星际文件系统返回资源地址hash
CT
对应的密文CT给数据请求者;
[0017]步骤9、数据请求者收到密文CT后,向区块链发起相应的解密请求requestDecrypt(P
i
);
[0018]步骤10、区块链收到请求后,解析请求,然后,对数据请求者的请求中包含的子策略P
i
的属性做哈希计算,即Key=Hash(P
i
),得到账本数据对应的Key,然后根据Key到区块链账本中查找对应的加密后的解密令牌并发送给数据请求者;
[0019]步骤11、数据请求者收到密文令牌后,用地址hash
CT
解密,得到解密令牌Token,然后根据Token中的属性私钥在本地执行解密算法,获得密文CT的解密密钥,进而可得到明文数据data。
[0020]本专利技术的特点还在于,
[0021]步骤4具体按照以下步骤实施:
[0022]步骤4.1、数据拥有者首先在区块链上注册一个用户账号,其中以ownerId作为个人账户的标识,ownerName作为个人账户的用户名,通过该账户,数据拥有者可以记录个人信息以及自己名下的文件资源地址和访问控制策略;
[0023]步骤4.2、数据拥有者在区块链上存储星际文件系统返回的密文CT的地址hash
CT
,由于区块链采用Key

Value对形式存储数据,因此,以资源的标识resId作为Key,以用户标识ownerId、数据文件名字resName、文件地址hash
CT
作为Value,向区块链账本存储数据;
[0024]步骤4.3、数据拥有者将访问策略Policy上传至区块链,上传的内容包含(policyId,Object,Policy),其中,policyId指基于属性的访问策略的唯一标识符,Object={resId,ownerId,resName}指数据拥有者的个人资源信息,其中,resId指资源标识符,ownerId指数据拥有者的个人标识符,用于关联用户与访问策略,resName指资源名字,Policy指基于属性的访问策略,是由主体策略P
Subject
与环境策略P
Environment
组合而成的,只有当这两个策略都满足时,数据请求者才可以访问数据拥有者的数据,Policy格式为:
[0025]Policy=P
Subject
∧P
Environment
[0026]主体策略P
Subject
指被数据拥有者许可访问个人数据资源的数据请求者的属性构成的访问策略,P
Subject
由许多子策略通过析取范式构成,P
Subject
的示例格式如:
[0027]P
Subject
=P1∨P2∨...∨P
n
[0028]子策略下包含许多数据拥有者许可访问的数据请求者的属性,如所在单位、部门、职位都可以作为数据请求者的属性,其中子策略的示例格式如:
[0029][0030]P
Environment
表示环境策略,如时间段,数据拥有者设定个人资源的访问时间段,如果
数据请求者的访问时间不在这个时间段内,将会被拒绝访问;
[0031]数据拥有者还可以通过区块链对个人访问策略实施更新、删除、查询动态管理。
[0032]步骤4.4、为了保障对称密钥keySecret的安全,数据拥有者在本地通过线性整数秘密共本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.在区块链上的基于属性的访问控制方法,其特征在于,具体按照以下步骤实施:步骤1、数据拥有者在本地使用对称加密算法加密个人数据data得到密文CT;具体过程如下:Encrypt
keySecret
(data)

CT:首先,数据拥有者在本地随机选择一个秘密数s,计算哈希值keySecret=H(s)生成对称密钥keySecret,其中H(s)是一个单向哈希函数,然后,通过对称加密算法,以keySecret作为对称密钥,加密个人数据data,得到密文CT,即CT=Encrypt
keySecret
(data);步骤2、数据拥有者将密文CT上传至星际文件系统;步骤3、星际文件系统返回一个密文CT的地址hash
CT
;步骤4、数据拥有者在本地制定关于个人数据data的基于属性的访问策略Policy以及关于密文CT的解密令牌并用地址hash
CT
作为对称密钥,使用对称算法加密解密令牌形成密文令牌:然后以交易的形式,将星际文件系统返回的密文CT的资源地址hash
CT
,密文令牌以及基于属性的访问策略Policy上传至区块链账本;步骤5、数据请求者通过区块链向数据拥有者发起访问资源的请求,区块链会根据数据请求者请求中的属性验证其是否满足相应的访问策略;步骤6、如果满足,则返回文件地址hash
CT
和数据请求者的属性满足的子策略P
i
给数据请求者;步骤7、数据请求者收到文件地址hash
CT
和P
i
后,根据hash
CT
到星际文件系统上查找数据资源data对应的密文数据CT;步骤8、星际文件系统返回资源地址hash
CT
对应的密文CT给数据请求者;步骤9、数据请求者收到密文CT后,向区块链发起相应的解密请求requestDecrypt(P
i
);步骤10、区块链收到请求后,解析请求,然后,对数据请求者的请求中包含的子策略P
i
的属性做哈希计算,即Key=Hash(P
i
),得到账本数据对应的Key,然后根据Key到区块链账本中查找对应的加密后的解密令牌并发送给数据请求者;步骤11、数据请求者收到密文令牌后,用地址hash
CT
解密,得到解密令牌Token,然后根据Token中的属性私钥在本地执行解密算法,获得密文CT的解密密钥,进而可得到明文数据data。2.根据权利要求1所述的在区块链上的基于属性的访问控制方法,其特征在于,所述步骤4具体按照以下步骤实施:步骤4.1、数据拥有者首先在区块链上注册一个用户账号,其中以ownerId作为个人账户的标识,ownerName作为个人账户的用户名,通过该账户,数据拥有者可以记录个人信息以及自己名下的文件资源地址和访问控制策略;步骤4.2、数据拥有者在区块链上存储星际文件系统返回的密文CT的地址hash
CT
,由于区块链采用Key

Value对形式存储数据,因此,以资源的标识resId作为Key,以用户标识ownerId、数据文件名字resName、文件地址hash
CT
作为Value,向区块链账本存储数据;
步骤4.3、数据拥有者将访问策略Policy上传至区块链,上传的内容包含(policyId,Object,Policy),其中,policyId指基于属性的访问策略的唯一标识符,Object={resId,ownerId,resName}指数据拥有者的个人资源信息,其中,resId指资源标识符,ownerId指数据拥有者的个人标识符,用于关联用户与访问策略,resName指资源名字,Policy指基于属性的访问策略,是由主体策略P
Subject
与环境策略P
Environment
组合而成的,只有当这两个策略都满足时,数据请求者才可以访问数据拥有者的数据,Policy格式为:Policy=P
Subject
∧P
Environment
主体策略P
Subject
指被数据拥有者许可访问个人数据资源的数据请求者的属性构成的访问策略,P
Subject
由许多子策略通过析取范式构成,P
Subject
的示例格式如:P
Subject
=P1∨P2∨...∨P
n
子策略下包含许多数据拥有者许可访问的数据请求者的属性,如所在单位、部门、职位都可以作为数据请求者的属性,其中子策略的示例格式如:P
Environment
表示环境策略,如时间段,数据拥有者设定个人资源的访问时间段,如果数据请求者的访问时间不在这个时间段内,将会被拒绝访问;数据拥有者还可以通过区块链对个人访问策略实施更新、删除、查询动态管理;步骤4.4、为了保障对称密钥keySecret的安全,数据拥有者在本地通过线性整数秘密共享算法将与keySecret相关联的秘密数s划分为每个属性对应的一份秘密份额,进而间接实现对称密钥在多个属性间的共享;LISS(P
Subject
,s)

(s1,s2,...s
d
)
T
:数据拥有者输入主体策略P
Subject
和秘密数s,然后该算法根据P
Subject
构造出一个策略矩阵和映射函数Ψ(
·
),即矩阵的每一行对应一个属性Ψ(i),1≤i≤d,并选取一些随机数ρ
i
,2≤i≤e,与秘密值s形成一个线性组合ρ=(s,ρ2,ρ3,...ρ
e
)
T
,d和e分别指的行和列;最后计算输出每个属性对应的秘密份额(s1,s2,...s
d
)
T
,然后将秘密份额s
i
分发给属性Ψ(i);其中,策略矩阵的具体构造方法如下:数据拥有者根据访问策略Policy中的主体策略P
Subject
构造对应的策略矩阵:首先令M
o...

【专利技术属性】
技术研发人员:王尚平赵晓杰张亚玲
申请(专利权)人:西安理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1