基于区块链的数据权限的获取方法与流程

文档序号:18357203发布日期:2019-08-06 23:18阅读:404来源:国知局
基于区块链的数据权限的获取方法与流程

本发明属于网络安全技术领域,更进一步涉及的一种数据权限的获取方法,可用于虚拟网络中数据权限的获取。



背景技术:

随着智能设备大量的使用,每天产生越来越多的数据,人们渐渐意识到数据的价值。传统的数据交易方法容易造成数据泄露,损害数据拥有者的利益。分布式的交易方案,用户需要保持在线状态,辅助数据购买者验证及购买数据。如果用户时间或计算能力有限,就需要借助代理商出售数据。但是必须保证代理商不会获得数据内容的任何信息,同时要保证数据的真实性。这样才能既减少用户的操作,又保证交易的公平性。

皇家飞利浦有限公司在其申请的专利文献“用于匿名数字内容共享的数字权限管理”(公开号:cn109416709a,申请号:201780029276.4,申请日:2019.03.01)公开了一种用于管理从第一设备到第二设备、的数字内容使用权限转移的方法,包括:在认证设备处通过使用针对由所述认证设备列入黑名单中的至少一个设备的至少一个公钥加密第一验证码r1来生成第一认证数据集c;将所述第一认证数据集c和第二验证码r2从所述认证设备提供到所述第一设备,并且将响应消息m从所述第二设备返回到所述认证设备。但是,该方法仍然存在的不足之处是,每次权限转移,只能将消息m从一个设备转移到另一个设备,无法将消息m的从一个设备转移至多个设备;并且如果第一设备是恶意的,,转移出错误的权限,没有有效的手段保证第二设备的获得正确的权限。

刘芳等人在其申请的专利文献“一种在物联网场景下的分布式授权管理方法”(公开号:cn109088857a,申请号:201810763942.3,申请日:2018.07.12)中公开了一种在物联网场景下的分布式授权管理方法。其中,该方法包括:,采用了区块链技术来实现了分布式的权限授予过程。利用区块链的不可篡改性,来实现资源授权信息、资源授权权力转移信息等重要信息的公开审计,此外,物联网应用存在“用户多”、“资源设备访问量大”的特性,为了将设备拥有者从授权过程中解放出来,针对性地设计了代理授权和撤销代理授权功能。提出了采用区块链技术来实现资源服务的授权,彻底解决了单点失效问题,并且存储在区块链上面的信息全部公开透明,权限转移过程都记录在区块链上,授权的所有环节被全网节点监督和管控。但是,该方法仍然存在的不足之处是,由于区块链完全公开的特性,利用区块链存储权限赋予、撤销、转移等所有记录,会造成一定程度的用户隐私泄露;并且每一个授权消息设定为一个消息块,区块链用户的存储成本会随着时间过快增长,为用户带来较大的存储压力。



技术实现要素:

本发明的目的在于针对上述现有技术的不足,提出基于区块链的虚拟资产权限管理方法,以在权限转移出现故障时,有效查找故障原因,避免权限转移对用户隐私的泄露,降低存储空间需求。

实现本发明目的的技术方案是,使用属性加密技术加密数据,通过属性加密细粒度的访问控制管理用户的权限,使用多属性权威为用户生成解密私钥,避免属性权威权力过大;使用代理重加密的技术对属性加密的密文重新加密,改变原有的访问策略的同时,代理商无法获得数据明文的任何信息;使用区块链保存数据的编号、描述信息的哈希、原始密文的哈希、对称密钥的哈希,一次权限转移,只需要在区块链上做一条记录,占用的空间比较小;权限转移出现问题时,仲裁机构通过区块链上的信息,判断问题的原因;只要权限请求者的属性满足访问策略,就可以获得对应的权限,以避免权限请求者的隐私暴露。其实现步骤包括如下:

(1)初始化:

(1a)使用安全参数生成属性加密所需的公共参数pp,包括乘法循环群g1及其生成元g和阶p,以及乘法循环群上的双线性映射e:g1×g1→gt;

(1b)为每个常驻属性权威aak分配需要管理的属性集合,使用属性权威密钥生成方法,生成每个常驻属性权威的公私钥对

(2)用户注册:

(2a)每个用户在区块链上进行注册,获得区块链上的公私钥对(pku-ecc,sku-ecc);

(2b)使用用户全局密钥生成方法,生成用户的全局公钥pku及全局私钥sku;

(3)身份授权:

(3a)将需要出售数据的用户授权为一个临时属性权威管理一组属性使用属性权威密钥生成方法,生成临时属性权威的公私钥对

(3b)将代理机构授权为一个额外属性权威管理一组属性使用属性权威密钥生成方法,生成额外属性权威的公私钥对

(4)用户处理数据:

(4a)用户使用自己生成的对称密钥key加密要转移权限的数据m,得到数据的密文cnum;

(4b)每个常驻属性权威aak使用用户解密密钥生成方法,根据用户属性x为用户生成解密私钥skj;

(4c)用户使用对称密钥密文生成方法,得到对称密钥key的密文ct:

(4d)用户使用抗碰撞的哈希函数,计算数据密文的哈希hc和对称密钥的哈希hkey;

(4e)用户生成数据编号num及数据描述信息desnum,并将数据编号num、数据描述信息desnum、数据密文cnum、对称密钥密文ct发送给代理商;

(4f)用户将数据编号num、数据描述信息desnum、数据密文的哈希hc、对称密钥的哈希hkey记录在区块链上;

(4g)用户生成数据的价格,发送给代理商,并向代理商支付保证金;

(5)协商新的访问策略:

(5a)代理商制定需要转移权限的数据访问策略,并将该访问策略对应的属性集sp发送给用户;

(5b)用户选择自己管理的属性集sti中的一个子集加入sp,得到新的访问策略对应的属性集合s(m',ρ'),根据属性集合s(m',ρ')使用重加密密钥生成算法,计算对称密钥密文ct的重加密密钥rkc,将rkc发送给代理商:

(5c)代理商使用代理重加密算法,重新加密对称密钥密文ct,得到新的访问策略对应的密文ct';

(5d)代理商将数据描述信息desnum以及新的访问策略(m',ρ')广播出去;

(6)获取数据权限:

(6a)权限请求者查看代理商的广播信息,查找需要购买的数据;

(6b)常驻属性权威aak使用用户解密密钥生成方法,为权限请求者生成与其属性对应的解密私钥skj;

(6c)额外属性权威使用用户解密密钥生成方法,生成额外属性权威管理的属性所对应的解密私钥

(6d)临时属性权威使用用户解密密钥生成方法,生成临时属性权威管理的属性所对应的解密私钥

(6e)权限请求者向额外属性权威购买解密私钥并向临时属性权威购买解密私钥

(6f)权限请求者使用属性加密的解密算法,解密得到对称密钥key',并用对称密钥key'解密数据密文cnum得到数据明文m';

(7)权限请求者查看数据明文m'是否符合数据描述信息desnum,若是,则退出系统,否则,请求仲裁机构进行仲裁,对权限请求者进行赔偿。

本发明与现有技术相比具有以下优点:

第一,本发明由于使用属性加密技术加密数据,使得数据的解密只与用户当前的属性相关,可以非常灵活地控制数据的权限,并且通过一次加密,可以将权限转移给多个满足访问策略的用户,克服了现有技术中数据权限无法同时从一方向多方转移,使得本发明的方法的数据权限获取更加方便。

第二,本发明由于使用重加密技术,代理商使用用户提交的重加密密钥,重新加密用户提交的数据密文,使得在改变数据的访问策略时,代理商无法知道数据内容的任何信息,克服了现有技术中权限赋予、撤销、转移等所有记录完全公开,可能泄露隐私的缺点,使得本发明的方法的数据权限获取更加安全。

第三,本发明由于使用区块链记录用户提交的数据编号、数据的描述信息、数据密文的哈希及对称密钥的哈希,并且生成的信息在区块链上占用的空间很小,仲裁机构根据区块链上的信息判断权限转移的故障原因,克服了现有技术中权限转移故障时没有依据去判断故障原因以及判断依据的存储空间过大的问题,使得本发明的方法更具有实用性。

附图说明

图1为本发明方法的总流程图;

图2为本发明中用户处理数据的子流程图;

图3为本发明中协商新的访问策略的子流程图;

图4为本发明中获取数据权限的子流程图。

具体实施措施

下面结合附图对本发明做进一步的详细描述。

参照图1,对本发明的实现步骤如下:

步骤1,初始化。

使用安全参数生成属性加密所需的公共参数pp,包括乘法循环群g1及其生成元g和阶p,以及乘法循环群上的双线性映射e:g1×g1→gt;

为每个常驻属性权威aak分配需要管理的属性集合,并生成每个常驻属性权威的公私钥对

现有生成属性权威公私钥对的方法有基于双线性映射和基于离散密码体制,本实例采用二者结合的方式生成属性权威公私钥对,具有更强的安全性,生成属性权威公私钥对的计算公式如下:

其中,表示属性权威aak的私钥,表示属性权威aak的公钥,αk,βk分别是由属性权威aak从有限域zp中选择的两个随机数,vx表示属性权威aak对其管理的属性x从有限域zp中选择的随机数,saa表示属性权威aak管理的属性集合。

步骤2,用户注册。

每个用户在区块链上进行注册,获得区块链上的公私钥对(pku-ecc,sku-ecc),然后生成用户的全局公钥pku及全局私钥sku。

现有生成用户全局公钥及全局私钥的方法有基于离散对数密码体制和基于大数分解密码体制,本实例采用但不限于基于离散对数密码体制生成用户的全局公钥及全局私钥,保证用户全局公私钥的机密性,其生成公式如下:

sku=h1(sku-ecc),

其中,sku表示用户的全局私钥,pku表示用户的全局公钥,sku-ecc表示用户的区块链上的私钥,g表示乘法循环群g1的生成元,h1(·)一个抗碰撞哈希函数,表示{0,1}*→zp的映射。

步骤3,身份授权。

3.1)将需要出售数据的用户授权为一个临时属性权威管理一组属性将代理机构授权为一个额外属性权威管理一组属性

现有的属性加密的技术方案没有额外增加的属性权威,本实例额外增加了两种属性权威,一种是将代理商授权为额外属性权威,一种是将用户授权为临时属性权威,使得数据权限转移更加便利。

3.2)生成临时属性权威的公私钥对

现有生成属性权威公私钥对的方法有基于双线性映射和基于离散密码体制,本实例采用二者结合的方式生成属性权威公私钥对,具有更强的安全性,生成属性权威公私钥对的公式如下:

其中,表示临时属性权威的私钥,表示临时属性权威的公钥,αkt,βkt分别是由临时属性权威从有限域zp中选择的两个随机数,vxt表示临时属性权威对其管理的属性xt从有限域zp中选择的随机数,表示临时属性权威管理的属性集合;

3.3)生成额外属性权威的公私钥对

现有生成属性权威公私钥对的方法有基于双线性映射和基于离散密码体制,本实例采用二者结合的方式生成属性权威公私钥对,具有更强的安全性,生成属性权威公私钥对的计算公式如下:

其中,表示额外属性权威的私钥,表示额外属性权威的公钥,αke,βke分别是由额外属性权威从有限域zp中选择的两个随机数,vxe表示额外属性权威对其管理的属性xe从有限域zp中选择的两个随机数,表示额外属性权威管理的属性集合。

步骤4,用户处理数据。

参照图2,对步骤的实现步骤如下:

4.1)用户使用自己生成的对称密钥key加密要转移权限的数据m,得到数据的密文cnum;

4.2)每个常驻属性权威aak,根据用户属性为用户生成解密私钥skj:

现有生成用户解密私钥的方法有基于离散对数密码体制和基于大数分解密码体制,本实例采用基于离散对数密码体制生成用户解密私钥,保证用户解密私钥的机密性。生成公式如下:

其中,表示第一解密私钥,表示第二解密私钥,表示第三解密私钥,表示第四解密私钥,αk和βk分别表示属性权威选择的两个随机数,rj,k表示属性权威在为用户生成解密私钥时选择的随机数,vx表示属性权威根据所管理的属性x生成的随机数,g是乘法循环群g1的生成元,su表示用户的属性集合;

4.3)用户生成对称密钥key的密文ct:

现有使用属性加密技术生成对称密钥密文的方法有基于树形访问结构和基于线性秘密共享方案,本实例采用但不限于基于线性秘密共享方案生成对称密钥密文,保证对称密钥密文的机密性,其生成公式如下:

ct=(c0,c1,ci,2,c3,ci,4,ci,5),

其中,c1=gs表示第一密文,表示第二密文,表示第三密文,表示第四密文,表示第五密文,表示第六密文,s表示用户从有限域zp选择的第一随机数,ri表示用户从有限域zp选择的n个随机数,表示用户计算的秘密份额,表示由第一随机数s及有限域zp中的随机数v2,v3,...,vn生成的向量,m表示用户选择的第一个m×n的矩阵,mi表示m的第i行,ρ表示一个单射函数,将矩阵m的每一行映射到属性集合s(m,ρ)中的每一个属性,即ρ(mi)→x,x是s(m,ρ)中的一个属性,αk和βk分别表示属性权威选择的两个随机数,vx表示属性权威根据所管理的属性x生成的随机数,e(g,g)表示g1×g1→gt的双线性映射,gt是一个乘法循环群,g是乘法循环群g1的生成元,k∈ia表示属性集合s(m,ρ)中的属性对应的属性权威;

4.4)用户计算数据密文的哈希hc和对称密钥的哈希hkey:

hc=h(cnum)

hkey=h(key)

其中,h(cnum)表示使用抗碰撞的哈希函数h计算数据密文cnum的哈希,h(key)表示使用抗碰撞的哈希函数h计算数据对称密钥key的哈希;

4.5)用户生成数据编号num及数据描述信息desnum,并将数据编号num、数据描述信息desnum、数据密文cnum、对称密钥密文ct发送给代理商;

4.6)用户将数据编号num、数据描述信息desnum、数据密文的哈希hc、对称密钥的哈希hkey记录在区块链上;

4.7)用户生成数据的价格,发送给代理商,并向代理商支付保证金。

步骤5,协商新的访问策略。

参照图3,本步骤的实现步骤如下:

5.1)代理商制定需要转移权限的数据访问策略,并将该访问策略对应的属性集sp发送给用户;

5.2)用户选择自己管理的属性集中的一个子集加入sp,得到新的访问策略对应的属性集合s(m',ρ'),计算对称密钥密文ct的重加密密钥rkc,将rkc发送给代理商:

现有生成重加密密钥的方法有基于离散对数密码体制和基于同态加密密码体制,本实例采用基于离散对数密码体制生成重加密密钥,保证重加密密钥的机密性。计算公式如下:

rkc=(rk1,c′t,c'x),

其中,rk1=(rkj,1,rkj,2,rkj,3)表示第一部分重加密密钥,表示第一重加密密钥,表示第二重加密密钥,表示第三重加密密钥,

表示第二部分重加密密钥,表示第一隐藏私钥,表示第二隐藏私钥,表示第三隐藏私钥,

c'x=(c′1,c′i,2,c′i,4,c′i,5,c'0)表示第三部分重加密密钥,c′1=gs'表示新访问策略的第一密文,表示新访问策略的第二密文,表示新访问策略的第三密文,表示新访问策略的第四密文,表示新访问策略的第五密文,

表示用户计算的秘密份额,m'i表示m'的第i行,m'表示用户选择的第二个m×n的矩阵,ri'表示用户选择的n个随机数,αk和βk分别表示属性权威选择的两个随机数,vx表示属性权威根据所管理的属性x生成的随机数,k表示用户选择的第二随机数,x表示用户选择的第三随机数,x1表示用户选择的第四随机数,s'表示用户选择的第五随机数,g是乘法循环群g1的生成元,rj,k表示属性权威在为用户生成解密私钥时选择的随机数,h2(·)是一个抗碰撞的哈希函数,表示{0,1}*→g1的映射,k∈ia'表示属性集合s(m',ρ')中的属性对应的属性权威;

5.3)代理商重新加密对称密钥密文ct,得到新的访问策略对应的密文ct':

现有生成重加密密文的方法有基于离散对数密码体制和基于同态加密密码体制,本实例采用基于离散对数密码体制生成重加密密钥,保证生成重加密密文不会泄漏数据本身的信息,其生成公式如下:

ct'=(c0,c′t,c'x,c'2),

其中,表示第六密文,

表示第二部分重加密密钥,表示第一隐藏私钥,表示第二隐藏私钥,表示第三隐藏私钥,

c'x=(c′1,c′i,2,c′i,4,c′i,5,c'0)表示第三部分重加密密钥,c′1=gs'表示新访问策略的第一密文,表示新访问策略的第二密文,表示新访问策略的第三密文,表示新访问策略的第四密文,表示新访问策略的第五密文,

表示第一部分重加密密文,c1=gs表示第一密文,表示第二密文,表示第三密文,表示第一重加密密钥,表示第二重加密密钥,表示第三重加密密钥,

αk和βk表示属性权威选择的两个随机数,vx表示属性权威根据所管理的属性x生成的随机数,g是乘法循环群g1的生成元,rj,k表示属性权威在为用户生成解密私钥时选择的随机数,h2(·)是一个抗碰撞的哈希函数,表示{0,1}*→g1的映射,k表示用户选择的第二随机数,x表示用户选择的第三随机数,x1表示用户选择的第四随机数,s'表示用户选择的第五随机数,表示用户计算的秘密份额,m'i表示m'的第i行,m'表示用户选择的第二个m×n的矩阵,ri'表示用户生成第三部分重加密密钥c'x时,选择的n个随机数,λ′i表示用户在计算第三部分重加密密钥c'x时,计算得到的秘密份额,k∈ia表示属性集合s(m,ρ)中的属性对应的属性权威,k∈ia'表示属性集合s(m',ρ')中的属性对应的属性权威;

5.4)代理商将数据描述信息desnum以及新的访问策略(m',ρ')广播出去。

步骤6,获取数据权限。

参照图4,本发明中获取数据权限的实现步骤如下:

6.1)权限请求者查看代理商的广播信息,查找需要购买的数据;

6.2)常驻属性权威aak为权限请求者生成与其属性对应的解密私钥skj:

现有生成用户解密私钥的方法有基于离散对数密码体制和基于大数分解密码体制,本实例采用基于离散对数密码体制生成用户解密私钥,保证用户解密私钥的机密性,其生成公式如下:

其中,表示第一常驻解密私钥,

表示第二常驻解密私钥,

表示第三常驻解密私钥,

表示第四常驻解密私钥,

αk和βk分别表示常驻属性权威aak选择的两个随机数,rj,k表示常驻属性权威aak在为权限请求者生成解密私钥时选择的随机数,vx表示属性权威aak根据所管理的属性x生成的随机数,g是乘法循环群g1的生成元,su表示权限请求者的属性集合;

6.3)额外属性权威生成额外属性权威管理的属性所对应的解密私钥

现有生成用户解密私钥的方法有基于离散对数密码体制和基于大数分解密码体制,本实例采用基于离散对数密码体制生成用户解密私钥,保证用户解密私钥的机密性,其生成公式如下:

其中,表示第一额外解密私钥,

表示第二额外解密私钥,

表示第三额外解密私钥,

表示第四额外解密私钥,

αek和βek分别表示常驻属性权威选择的两个随机数,re,k表示常驻属性权威在为权限请求者生成解密私钥时选择的随机数,vex表示属性权威根据所管理的属性ex生成的随机数,g是乘法循环群g1的生成元,se表示属性权威管理的属性集合;

6.4)临时属性权威生成临时属性权威管理的属性所对应的解密私钥

现有生成用户解密私钥的方法有基于离散对数密码体制和基于大数分解密码体制,本实例采用基于离散对数密码体制生成用户解密私钥,保证用户解密私钥的机密性。生成公式如下:

其中,表示第一临时解密私钥,

表示第二临时解密私钥,

表示第三临时解密私钥,

表示第四临时解密私钥,

αtk和βtk分别表示常驻属性权威选择的两个随机数,rt,k表示常驻属性权威在为权限请求者生成解密私钥时选择的随机数,vtx表示属性权威根据所管理的属性tx生成的随机数,g是乘法循环群g1的生成元,st表示属性权威管理的属性集合。

6.5)权限请求者向额外属性权威购买解密私钥并向临时属性权威购买解密私钥

6.6)权限请求者解密对称密钥密文ct得到对称密钥key',并用对称密钥key'解密数据密文cnum得到数据明文m';

现有生成用户解密对称密钥密文的方法有基于树形访问结构和线性秘密共享方案,本实例采用基于线性秘密共享方案解密对称密钥的密文,保证解密的安全性。解密公式如下:

其中,表示第六密文,

表示第一部分重加密密文,c1=gs表示第一密文,表示第二密文,表示第三密文,表示第一重加密密钥,表示第二重加密密钥,表示第三重加密密钥,

表示用户选择的第三随机数,表示新访问策略的第五密文,h2(·)是一个抗碰撞的哈希函数,表示{0,1}*→g1的映射,

表示半解密密文,表示新访问策略的第二密文,表示新访问策略的第三密文,表示新访问策略的第四密文,表示第一解密私钥,表示第三解密私钥,表示第四解密私钥,

θi'是由线性秘密共享方案确定的值,并且∑ρ(i)∈x'θ'i·λ'i=s',ρ(i)∈x'表示用户的属性x'满足映射ρ(m'i)映射的属性,m'i表示m'的第i行,m'表示用户选择的第二个m×n的矩阵,λi'表示用户在计算第三部分重加密密钥c'x时得到的秘密份额,s'表示用户选择的第五随机数,ri'表示用户生成第三部分重加密密钥c'x时,选择的n个随机数,rj,k表示属性权威在为用户生成解密私钥时选择的随机数,su表示用户的属性集合,αk和βk表示属性权威选择的两个随机数,vx表示属性权威根据所管理的属性x生成的随机数,e(g,g)表示g1×g1→gt的双线性映射,gt是一个乘法循环群,g是乘法循环群g1的生成元。

步骤7,确认权限。

权限请求者查看数据明文m'是否符合数据描述信息desnum,若是,则退出系统,否则,请求仲裁机构进行仲裁,对权限请求者进行赔偿:

现有仲裁的方法基于有用户提交数据进行仲裁和基于已保存数据进行仲裁,本实例结合这两种方法,保证仲裁的公平性,其实现如下:

7.1)权限请求者将对称密钥key'发送给仲裁机构,仲裁机构使用对称密钥key'解密数据密文cnum,得到数据明文m',并计算数据密文cnum的哈希h'c以及对称密钥key'的哈希h'key;

7.2)仲裁机构将步骤4得到的结果与步骤7.1得到的结果进行对比,判断以下三个条件是否同时满足:

用户在区块链上记录的数据密文的哈希hc与步骤7.1得到的h'c相同;

用户在区块链上记录的对称密钥的哈希hkey与步骤7.1得到的h'key相同;

解密得到的数据明文m'符合数据描述文件desnum;

若上述三个条件都满足,则驳回权限请求者的仲裁请求,退出系统;

否则,代理商通知用户,并扣除用户的保证金,然后向权限请求者赔偿数据价格三倍的赔偿金,并将用户的恶意行为记录在区块链上。

以上描述仅是本发明的一个具体实例,并未构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解了本发明的内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修改和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1