数据授权及数据访问方法和装置转让专利

申请号 : CN202110852837.9

文献号 : CN113609522B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 宋文鹏

申请人 : 敏于行(北京)科技有限公司

摘要 :

本申请公开了一种数据授权及数据访问方法和装置。该数据授权方法应用于加密存储节点,包括:接收使用方终端发送的包括数据标识和数据使用方标识的使用权申请请求,将所述使用权申请请求反馈至所述数据标识对应的拥有方终端;接收所述拥有方终端返回的授权片段;所述授权片段是所述拥有方终端通过门限代理重加密处理得到的;获取所述拥有方终端预先授予的加密存储节点公钥;通过所述加密存储节点公钥对所述授权片段进行加密处理,得到所述数据使用方标识对应的目标片段,存储所述目标片段;生成所述使用方终端的授权结果,反馈至所述使用方终端。本申请能够提高代理方行为的安全性。

权利要求 :

1.一种数据授权方法,其特征在于,应用于加密存储节点,包括:通过拥有方终端对预先存储的数据单元进行门限代理重加密处理,得到加密胶囊和加密秘钥,所述门限代理重加密处理是指根据门限代理重加密的生成加密胶囊算法进行加密处理,所述根据门限代理重加密的生成加密胶囊算法进行加密处理的计算方式为:(K,capsule)←Encapsulate(pkA);

其中,Encapsulate(pkA)表示门限代理重加密的生成加密胶囊算法,pkA表示数据拥有方对应的公钥,K表示加密秘钥,capsule表示加密胶囊;

根据所述加密秘钥对所述数据单元进行对称加密得到加密单元,所述对称加密的计算方式为:

encData←Enc(K,data);

其中,Enc(K,data)表示对称加密算法,data表示数据单元,encData表示加密单元;

通过所述拥有方终端对所述加密单元、所述加密胶囊以及所述拥有方终端对应的数据拥有方的公钥进行哈希运算,生成所述数据单元对应的数据标识,所述哈希运算的计算公式为:

dataID←Hash(pkA,capsule,encData);

其中,Hash表示摘要算法,dataID表示数据单元对应的数据标识;

根据所述数据标识、所述加密单元、所述加密胶囊以及所述数据拥有方的公钥确定所述数据单元对应的元组,将所述元组存储至第一加密存储节点;

接收使用方终端发送的包括数据标识和数据使用方标识的使用权申请请求,将所述使用权申请请求反馈至所述数据标识对应的拥有方终端;

接收所述拥有方终端返回的授权片段;所述授权片段是所述拥有方终端通过门限代理重加密处理得到的,通过所述门限代理重加密得到所述授权片段是根据如下公式实现的:其中,ReKeyGen(skA,pkB,N,t)是门限代理重加密的生成授权片段算法,skA表示拥有方终端的私钥,pkB表示数据使用方的公钥,N表示加密存储节点中的数据代理方数量,t表示门限值,kFragi表示授权片段;

获取所述拥有方终端预先授予的加密存储节点公钥;

通过所述加密存储节点公钥对所述授权片段进行加密处理,得到所述数据使用方标识对应的目标片段,存储所述目标片段;

生成所述使用方终端的授权结果,反馈至所述使用方终端。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过所述第一加密存储节点对应的第一区块链节点存储所述数据单元的存储操作日志;

在各区块链节点之间同步所述存储操作日志。

3.根据权利要求1所述的方法,其特征在于,所述加密存储节点还包括第二加密存储节点,所述接收使用方终端发送的包括数据标识和数据使用方标识的数据使用权申请请求,包括:第二加密存储节点接收使用方终端发送的包括数据标识和数据使用方标识的使用权申请请求;

所述第二加密存储节点在相应的第二区块链节点中获取所述数据标识对应的第一加密存储节点的路由信息;

所述第二加密存储节点根据所述路由信息将所述使用权申请请求发送至所述第一加密存储节点。

4.根据权利要求3所述的方法,其特征在于,所述第二加密存储节点在相应的第二区块链节点中获取所述数据标识对应的第一加密存储节点的路由信息,包括:所述第二加密存储节点在相应的第二区块链节点中获取加密存储节点索引;

根据所述加密存储节点索引获取所述数据标识对应的第一加密存储节点的路由信息。

5.根据权利要求1所述的方法,其特征在于,所述通过所述加密存储节点公钥对所述授权片段进行加密处理,包括:通过所述加密存储节点公钥对所述授权片段进行非对称加密。

6.根据权利要求1至5任意一项所述的方法,其特征在于,所述方法还包括:将所述使用权申请请求的操作日志存储在第一区块链节点中。

7.一种数据访问方法,其特征在于,应用于加密存储节点,包括:接收使用方终端发送的包括数据标识和数据使用方标识的数据访问请求;

根据所述数据访问请求获取所述数据使用方标识对应的目标片段;所述目标片段是根据拥有方终端预先授予的加密存储节点公钥加密得到的;

对所述目标片段进行解密得到授权片段是根据如下公式实现的:其中, 表示对称解密算法,cKFragi表示目标片段,表示加密存储节点的加密存储节点私钥;

将所述授权片段进行重加密处理得到重加密密文是根据如下公式实现的:{cFragi}i=1←ReEncapsulation({kFragi}i=1,capsule)其中,ReEncapsulation({kFragi}i=1,capsule)表示门限代理重加密的重加密算法,capsule表示加密胶囊,cFragi表示所述重加密密文;

获取所述数据标识对应的加密单元,将所述重加密密文以及所述加密单元发送至所述使用方终端,通过所述使用方终端根据所述重加密密文解密所述加密单元,解密方式为先对数据使用方的私钥、所述重加密密文以及所述加密胶囊进行门限代理解密,再进行对称解密,从而得到目标数据,所述门限代理解密计算公式为:

其中, 表示门限代理重加密的解密

算法,skB表示数据使用方的私钥,表示当前获取到的重加密密文的数量(t≤T≤N),K′表示对称秘钥;

所述对称解密的计算公式为:

data←Dec(K′,encData);

其中,Dec(K,encData)表示对称解密算法,encData表示加密单元,data表示数据标识对应的数据单元。

8.一种数据授权装置,其特征在于,所述装置包括:处理模块,用于通过拥有方终端对预先存储的数据单元进行门限代理重加密处理,得到加密胶囊和加密秘钥,所述门限代理重加密处理是指根据门限代理重加密的生成加密胶囊算法进行加密处理,所述根据门限代理重加密的生成加密胶囊算法进行加密处理的计算方式为:(K,capsule)←Encapsulate(pkA);

其中,Encapsulate(pkA)表示门限代理重加密的生成加密胶囊算法,pkA表示数据拥有方对应的公钥,K表示加密秘钥,capsule表示加密胶囊;

确定模块,用于根据所述加密秘钥对所述数据单元进行对称加密得到加密单元,所述对称加密的计算方式为:encData←Enc(K,data);

其中,Enc(K,data)表示对称加密算法,data表示数据单元,encData表示加密单元;

生成模块,用于通过所述拥有方终端对所述加密单元、所述加密胶囊以及所述拥有方终端对应的数据拥有方的公钥进行哈希运算,生成所述数据单元对应的数据标识,所述哈希运算的计算公式为:dataID←Hash(pkA,capsule,encData);

其中,Hash表示摘要算法,dataID表示数据单元对应的数据标识;

存储模块,用于根据所述数据标识、所述加密单元、所述加密胶囊以及所述数据拥有方的公钥确定所述数据单元对应的元组,将所述元组存储至第一加密存储节点;

第一通信模块,用于接收使用方终端发送的包括数据标识和数据使用方标识的使用权申请请求,将所述使用权申请请求反馈至所述数据标识对应的拥有方终端;

片段接收模块,用于接收所述拥有方终端返回的授权片段;所述授权片段是所述拥有方终端通过门限代理重加密处理得到的,通过所述门限代理重加密得到所述授权片段是根据如下公式实现的:其中,ReKeyGen(skA,pkB,N,t)是门限代理重加密的生成授权片段算法,skA表示拥有方终端的私钥,pkB表示数据使用方的公钥,N表示加密存储节点中的数据代理方数量,t表示门限值,kFragi表示授权片段;

公钥获取模块,用于获取所述拥有方终端预先授予的加密存储节点公钥;

加密处理模块,用于通过所述加密存储节点公钥对所述授权片段进行加密处理,得到所述数据使用方标识对应的目标片段,存储所述目标片段;

授权反馈模块,用于生成所述使用方终端的授权结果,反馈至所述使用方终端。

9.一种数据访问装置,其特征在于,所述装置包括:第二通信模块,用于接收使用方终端发送的包括数据标识和数据使用方标识的数据访问请求;

片段获取模块,用于根据所述数据访问请求获取所述数据使用方标识对应的目标片段;所述目标片段是根据拥有方终端预先授予的加密存储节点公钥加密得到的;

解密模块,用于对所述目标片段进行解密得到授权片段是根据如下公式实现的:其中, 表示对称解密算法,cKFragi表示目标片段,表示加密存储节点的加密存储节点私钥;

重加密模块,用于将所述授权片段进行重加密处理得到重加密密文是根据如下公式实现的:{cFragi}i=1←ReEncapsulation({kFragi}i=1,capsule)其中,ReEncapsulation({kFragi}i=1,capsule)表示门限代理重加密的重加密算法,capsule表示加密胶囊,cFragi表示所述重加密密文;

获取所述数据标识对应的加密单元,将所述重加密密文以及所述加密单元发送至所述使用方终端,通过所述使用方终端根据所述重加密密文解密所述加密单元,解密方式为先对数据使用方的私钥、所述重加密密文以及所述加密胶囊进行门限代理解密,再进行对称解密,从而得到目标数据,所述门限代理解密计算公式为:

其中, 表示门限代理重加密的解密

算法,skB表示数据使用方的私钥,表示当前获取到的重加密密文的数量(t≤T≤N),K′表示对称秘钥;

所述对称解密的计算公式为:

data←Dec(K′,encData);

其中,Dec(K,encData)表示对称解密算法,encData表示加密单元,data表示数据标识对应的数据单元。

说明书 :

数据授权及数据访问方法和装置

技术领域

[0001] 本申请涉及计算机技术领域,具体而言,涉及一种数据授权及数据访问方法和装置。

背景技术

[0002] 数据授权是指拥有方终端授权使用方终端使用其数据,数据访问是指数据使用方在经过数据拥有方授权的前提下,可以读取数据的密文数据,解密得到原始明文数据,并进行使用。传统的数据授权与数据访问可以通过代理重加密的方式实现,代理重加密是密文间的一种转换机制,在无需解密的情况下,由一个半可信的代理方将数据拥有方的密文转换为数据使用方可以解密的密文,从而实现密态的消息分享。传统的代理重加密方式,是通过数据拥有方将自身数据的使用权首先授权给一个或者多个数据代理方,数据代理方再授权给数据使用方。
[0003] 然而传统的代理重加密方式,存在代理方行为不透明的问题,会导致数据授权存在较大安全风险。因此,如何提高代理方行为的安全性,以提高数据授权过程的安全性成为目前需要解决的一个技术问题。

发明内容

[0004] 本申请的主要目的在于提供一种能够提高代理方行为的安全性,以提高数据授权过程的安全性的数据授权及数据访问方法和装置。
[0005] 为了实现上述目的,根据本申请的一个方面,提供了一种数据授权方法,应用于加密存储节点,包括:
[0006] 接收使用方终端发送的包括数据标识和数据使用方标识的使用权申请请求,将所述使用权申请请求反馈至所述数据标识对应的拥有方终端;
[0007] 接收所述拥有方终端返回的授权片段;所述授权片段是所述拥有方终端通过门限代理重加密处理得到的;
[0008] 获取所述拥有方终端预先授予的加密存储节点公钥;
[0009] 通过所述加密存储节点公钥对所述授权片段进行加密处理,得到所述数据使用方标识对应的目标片段,存储所述目标片段;
[0010] 生成所述使用方终端的授权结果,反馈至所述使用方终端。
[0011] 进一步的,所述加密存储节点包括第一加密存储节点,所述拥有方终端预先存储有所述数据标识对应的数据单元;在所述接收使用方终端发送的数据单元的使用权申请请求之前,所述方法还包括:
[0012] 通过所述拥有方终端对预先存储的数据单元进行加密处理,得到加密胶囊、加密秘钥和加密单元;
[0013] 对所述加密单元、所述加密胶囊以及所述拥有方终端对应的数据拥有方的公钥进行哈希运算,生成所述数据单元对应的数据标识;
[0014] 根据所述数据标识、所述加密单元、所述加密胶囊以及所述数据拥有方的公钥确定所述数据单元对应的元组,将所述元组存储至第一加密存储节点。
[0015] 进一步的,所述方法还包括:
[0016] 通过所述第一加密存储节点对应的第一区块链节点存储所述数据单元的存储操作日志;
[0017] 在各区块链节点之间同步所述存储操作日志。
[0018] 进一步的,所述加密存储节点还包括第二加密存储节点,所述接收使用方终端发送的包括数据标识和数据使用方标识的数据使用权申请请求,包括:
[0019] 第二加密存储节点接收使用方终端发送的包括数据标识和数据使用方标识的使用权申请请求;
[0020] 所述第二加密存储节点在相应的第二区块链节点中获取所述数据标识对应的第一加密存储节点的路由信息;
[0021] 所述第二加密存储节点根据所述路由信息将所述使用权申请请求发送至所述第一加密存储节点。
[0022] 进一步的,所述第二加密存储节点在相应的第二区块链节点中获取所述数据标识对应的第一加密存储节点的路由信息,包括:
[0023] 所述第二加密存储节点在相应的第二区块链节点中获取加密存储节点索引;
[0024] 根据所述加密存储节点索引获取所述数据标识对应的第一加密存储节点的路由信息。
[0025] 进一步的,所述通过所述加密存储节点公钥对所述授权片段进行加密处理,包括:
[0026] 通过所述加密存储节点公钥对所述授权片段进行非对称加密。
[0027] 进一步的,所述方法还包括:
[0028] 将所述使用权申请请求的操作日志存储在所述第一区块链节点中。
[0029] 为了实现上述目的,根据本申请的第二方面,提供了一种数据访问方法,应用于加密存储节点,包括:
[0030] 接收使用方终端发送的包括数据标识和数据使用方标识的数据访问请求;
[0031] 根据所述数据访问请求获取所述数据使用方标识对应的目标片段;所述目标片段是根据拥有方终端预先授予的加密存储节点公钥加密得到的;
[0032] 对所述目标片段进行解密,得到授权片段;
[0033] 将所述授权片段进行重加密处理,得到重加密密文;
[0034] 获取所述数据标识对应的加密单元,将所述重加密密文以及所述加密单元发送至所述使用方终端,通过所述使用方终端根据所述重加密密文解密所述加密单元,得到目标数据。
[0035] 为了实现上述目的,根据本申请的第三方面,提供了一种数据授权装置,包括:
[0036] 通信模块,用于接收使用方终端发送的包括数据标识和数据使用方标识的使用权申请请求,将所述使用权申请请求反馈至所述数据标识对应的拥有方终端;
[0037] 片段接收模块,用于接收所述拥有方终端返回的授权片段;所述授权片段是所述拥有方终端通过门限代理重加密处理得到的;
[0038] 公钥获取模块,用于获取所述拥有方终端预先授予的加密存储节点公钥;
[0039] 加密处理模块,用于通过所述加密存储节点公钥对所述授权片段进行加密处理,得到所述数据使用方标识对应的目标片段,存储所述目标片段;
[0040] 授权反馈模块,用于生成所述使用方终端的授权结果,反馈至所述使用方终端。
[0041] 为了实现上述目的,根据本申请的第四方面,提供了一种数据访问装置,包括:
[0042] 通信模块,用于接收使用方终端发送的包括数据标识和数据使用方标识的数据访问请求;
[0043] 片段获取模块,用于根据所述数据访问请求获取所述数据使用方标识对应的目标片段;所述目标片段是根据拥有方终端预先授予的加密存储节点公钥加密得到的;
[0044] 解密模块,用于对所述目标片段进行解密,得到授权片段;
[0045] 重加密模块,用于将所述授权片段进行重加密处理,得到重加密密文;获取所述数据标识对应的加密单元,将所述重加密密文以及所述加密单元发送至所述使用方终端,通过所述使用方终端根据所述重加密密文解密所述加密单元,得到目标数据。
[0046] 在本申请实施例中,加密存储节点通过接收使用方终端发送的包括数据标识和数据使用方标识的使用权申请请求,将使用权申请请求反馈至数据标识对应的拥有方终端,以接收拥有方终端返回的授权片段。由于加密存储节点承担的是数据存储方和数据代理方两个角色,且授权片段是拥有方终端通过门限代理重加密处理得到的,门限代理重加密采用的是多个对等代理方的模式,能够有效防止一个代理方与使用方终端联合作恶。拥有方终端对各加密存储节点授予对应的加密存储节点公钥,通过加密存储节点公钥对授权片段进行加密处理,实现只有指定的数据代理方可以解密得到授权片段,提高了数据授权的安全性。

附图说明

[0047] 构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0048] 图1是一个实施例中数据授权及数据访问方法的应用环境图;
[0049] 图2为一个实施例中数据授权方法的流程示意图;
[0050] 图3为一个实施例中存储数据标识对应的数据单元步骤的流程示意图;
[0051] 图4为一个实施例中通过区块链网络存储数据存储操作日志步骤的流程示意图;
[0052] 图5为一个实施例中数据访问方法的流程示意图;
[0053] 图6为一个实施例中数据授权及数据访问方法的流程示意图;
[0054] 图7为一个实施例中数据授权装置的结构框图;
[0055] 图8为一个实施例中数据访问装置的结构框图;
[0056] 图9为一个实施例中计算机设备的内部结构图。

具体实施方式

[0057] 为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0058] 需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0059] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0060] 传统的数据授权与数据访问可以通过代理重加密的方式实现,然而传统的代理重加密方式,存在代理方行为不透明的问题,如不满足代理资质的代理方进行代理、代理方与授权人共同抵赖授权事实或者一个代理方与使用方终端联合作恶等多种情况,导致数据授权过程存在较大安全风险。目前还没有解决前述问题的有效技术手段。
[0061] 为了解决上述技术问题,本申请提供了一种数据授权及数据访问方法,上述方法可以应用于如图1所示的应用环境中。其中,拥有方终端102、使用方终端106分别与加密存储节点104通过网络进行通信。加密存储节点104可以为多个。拥有方终端102是数据主体方,对数据拥有完全的控制权限。加密存储节点104承担了数据代理方和数据存储方两个角色。加密存储节点可以预先存储数据,对存储数据的明文数据进行零知识处理,同时,拥有方终端和使用方终端可以自由使用加密存储节点的存储能力;加密存储节点还可以作为拥有方终端的数据访问权的数据代理方,通常是使用方终端申请数据访问权的审核方。使用方终端106是数据的实际使用方,在经过拥有方终端授权的前提下,可以读取并使用数据。
[0062] 加密存储节点104接收使用方终端106发送的包括数据标识和数据使用方标识的使用权申请请求,将使用权申请请求反馈至数据标识对应的拥有方终端102,从而接收拥有方终端102返回的授权片段,授权片段是拥有方终端通过门限代理重加密处理得到的,获取拥有方终端预先授予的加密存储节点公钥,加密存储节点104通过加密存储节点公钥对授权片段进行加密处理,得到数据使用方标识对应的目标片段,存储目标片段,进而生成使用方终端的授权结果,将授权结果反馈至使用方终端106。使用方终端106在接收到授权信息后,可以发送包括数据标识的数据访问请求至加密存储节点104,加密存储节点104根据数据访问请求获取使用方终端对应的目标片段,对目标片段进行解密,得到授权片段,从而对授权片段进行重加密,得到重加密密文,进而获取数据标识对应的加密单元,将重加密密文以及加密单元发送至使用方终端106,通过使用方终端106根据重加密密文解密加密单元,得到目标数据。其中,拥有方终端102、使用方终端106可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。加密存储节点104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
[0063] 根据本申请实施例,如图2所示,提供了一种数据授权方法,以该方法应用于图1中的加密存储节点为例进行说明,该方法包括如下步骤:
[0064] 步骤202,接收使用方终端发送的包括数据标识和数据使用方标识的使用权申请请求,将使用权申请请求反馈至数据标识对应的拥有方终端。
[0065] 使用方终端中运行有使用方应用程序,数据使用方可以通过登录使用方终端中的使用方应用程序,在使用方应用程序中发起包括数据标识和数据使用方标识的使用权申请请求,使用方应用程序进而可以向加密存储节点发送使用权申请请求。
[0066] 使用权申请请求是指使用方终端为了获取数据标识对应的数据单元的使用权所提出的请求,使用权申请请求用于指示拥有方终端进行数据授权,并通过加密存储节点存储授权后的目标片段。数据标识是指拥有方终端存储的数据单元所关联的唯一标识。
[0067] 加密存储节点在接收到使用方终端发送的包括数据标识的使用权申请请求后,对使用权申请请求进行解析,得到数据标识,并将该请求反馈至数据标识对应的拥有方终端,以使拥有方终端授权使用方终端的数据使用权。
[0068] 步骤204,接收拥有方终端返回的授权片段;授权片段是拥有方终端通过门限代理重加密处理得到的。
[0069] 授权片段是指拥有方终端进行门限代理重加密后生成的加密片段。具体的,拥有方终端在接收到加密存储方发送的使用权申请请求后,对使用权请求进行解析,还可以得到数据使用方对应的的公钥。从而拥有方终端根据数据拥有方的私钥、数据使用方的公钥、预设的数据代理方数量以及预设门限值生成授权片段。进而加密存储节点接收拥有方终端发送的授权片段。
[0070] 进一步的,生成授权片段的计算方式可以为:
[0071]
[0072] 其中,ReKeyGen(skA,pkB,N,t)是门限代理重加密的生成授权片段算法,skA表示拥有方终端的私钥,pkB表示数据使用方的公钥,N表示加密存储节点中的数据代理方数量,t表示门限值,kFragi表示授权片段。
[0073] 步骤206,获取拥有方终端预先授予的加密存储节点公钥。
[0074] 步骤208,通过加密存储节点公钥对授权片段进行加密处理,得到数据使用方标识对应的目标片段,存储目标片段。
[0075] 拥有方终端预先对加密存储节点授予关联公私钥对账户,关联公私钥对账户包括加密存储节点对应的加密存储节点公钥和加密存储节点私钥。
[0076] 加密存储节点可以获取加密存储节点公钥,通过加密存储节点公钥对授权片段进行加密,得到数据使用方标识对应的目标片段,并存储该目标片段。
[0077] 进一步的,可以通过加密存储节点公钥对授权片段进行非对称加密,非对称加密方式可以为:
[0078]
[0079] 其中, 表示非对称加密算法,kFragi表示授权片段,表示加密存储节点的加密存储节点公钥,cKFragi表示目标片段。
[0080] 步骤210,生成使用方终端的授权结果,反馈至使用方终端。
[0081] 授权结果是指针对使用方终端发送的使用权申请请求,拥有方终端进行授权处理后的结果。授权结果表明使用方终端的使用权申请已通过,使用方终端可以读取拥有方终端的相应数据,并使用该数据。
[0082] 加密存储节点在得到使用方终端对应的目标片段后,生成使用方终端的授权结果,加密存储节点将授权结果反馈至使用方终端,使用方终端在接收到授权结果后,可以请求访问拥有方终端的数据。
[0083] 从以上的描述中,可以看出,本申请实现了如下技术效果:加密存储节点通过接收使用方终端发送的包括数据标识和数据使用方标识的使用权申请请求,将使用权申请请求反馈至数据标识对应的拥有方终端,以接收拥有方终端返回的授权片段。由于加密存储节点承担的是数据存储方和数据代理方两个角色,且授权片段是拥有方终端通过门限代理重加密处理得到的,门限代理重加密采用的是多个对等代理方的模式,能够有效防止一个代理方与使用方终端联合作恶。拥有方终端对各加密存储节点授予对应的加密存储节点公钥,通过加密存储节点公钥对授权片段进行加密处理,实现只有指定的加密存储节点可以解密得到授权片段,提高了数据授权的安全性。
[0084] 在一个实施例中,如图3所示,在接收使用方终端发送的数据单元的使用权申请请求之前,上述方法还包括:存储数据标识对应的数据单元的步骤,具体包括:
[0085] 步骤302,通过拥有方终端对预先存储的数据单元进行门限代理重加密处理,得到加密胶囊、加密秘钥和加密单元。
[0086] 步骤304,对加密单元、加密胶囊以及拥有方终端对应的数据拥有方的公钥进行哈希运算,生成数据单元对应的数据标识。
[0087] 步骤306,根据数据标识、加密单元、加密胶囊以及数据拥有方的公钥确定数据单元对应的元组,将元组存储至第一加密存储节点。
[0088] 本申请中的加密存储节点可以部署多个,加密存储节点可以包括第一加密存储节点,第一加密存储节点为拥有方终端对应的加密存储节点,即拥有方终端的应用程序所部署的加密存储节点。加密存储节点还可以包括使用方终端对应的加密存储节点,即使用方终端的应用程序所部署的加密存储节点。每个应用程序可以自由部署自身独有的加密存储节点,可以完全掌控密文数据,从而提供更高效的数据存储和处理服务。
[0089] 拥有方终端预先存储有数据标识对应的数据单元。数据单元是指拥有方终端中预先存储的明文数据。数据单元是作为一个独立的单元进行存储的,如,一行数据、一个字段数据、一个文本数据、一个视频数据、一个音频数据等。拥有方终端可以对数据单元进行加密处理,并将加密后的数据存储至第一加密存储节点。具体的,通过拥有方终端对数据单元进行门限代理重加密处理,得到加密胶囊和加密秘钥。其中,门限代理重加密处理是指根据门限代理重加密的生成加密胶囊算法进行加密处理,具体计算方式为:
[0090] (K,capsule)←Encapsulate(pkA)
[0091] 其中,Encapsulate(pkA)表示门限代理重加密的生成加密胶囊算法,pkA表示数据拥有方对应的公钥,K表示加密秘钥,capsule表示加密胶囊。
[0092] 从而根据加密秘钥对数据单元进行对称加密,得到加密单元。对称加密的计算方式可以为:
[0093] encData←Enc(K,data)
[0094] 其中,Enc(K,data)表示对称加密算法,K表示加密秘钥,data表示数据单元,encData表示加密单元。
[0095] 通过拥有方终端对加密单元、加密胶囊以及拥有方终端对应的数据拥有方的公钥进行哈希运算,生成数据单元对应的数据标识。进一步的,哈希运算的计算公式可以为:
[0096] dataID←Hash(pkA,capsule,encData)
[0097] 其中,Hash表示摘要算法,pkA表示拥有方终端对应的公钥,capsule表示加密胶囊,encData表示加密单元,dataID表示数据单元对应的数据标识。
[0098] 进而拥有方终端根据数据标识、加密单元、加密胶囊以及数据拥有方的公钥确定数据单元对应的元组,其中,元组可以表示为(dataID,(pkA,capsule,encData)),拥有方终端将元组发送至第一加密存储节点,第一加密存储节点存储该元组,便于在数据授权过程中查找该加密存储节点的理由信息,以及在数据访问过程中进行对授权片段进行重加密。
[0099] 加密存储节点不存储数据拥有方和数据使用方的私钥,无法得到数据单元,即无法得到明文数据,有利于提高数据授权的安全性。数据拥有方和数据使用方的私钥是存储在两方信任的环境,例如,自己使用的终端,即拥有方终端和使用方终端、离线纸质存储等。
[0100] 在本实施,通过拥有方终端针对每个数据单元进行加密处理,得到加密胶囊和加密秘钥,使得拥有方终端可以精细化控制每个数据单元的使用权的授权。针对每个数据单元生成一个唯一的数据标识,可以通过标识确定数据单元对应的加密存储节点。
[0101] 在一个实施例中,如图4所示,上述方法还包括:通过区块链网络存储数据存储操作日志的步骤,具体包括:
[0102] 步骤402,通过第一加密存储节点对应的第一区块链节点存储数据单元的存储操作日志。
[0103] 步骤404,在各区块链节点之间同步存储操作日志。
[0104] 在本实施例中,采用区块链网络存储数据存储日志,区块链网络中包括多个区块链节点。多个区块链节点之间的信息是共享的。区块链网络可以包括第一区块链节点,第一区块链节点为第一加密存储节点对应的区块链节点。区块链网络中还可以包括使用方终端所部署的加密存储节点所对应的区块链节点。
[0105] 数据单元在数据存储过程中会生成相应的存储操作日志,可以通过第一区块链节点存储操作日志。数据单元可以用data来表示。
[0106] 存储操作日志为:(time,pkA,SaveData,dataID,start,saved),[0107] 其中,time表示拥有方终端存储数据单元data的时间,pkA表示数据拥有方对应的公钥,SaveData表示存储数据单元的操作,dataID表示数据单元对应的数据标识,start表示开始状态,saved表示存储状态。
[0108] 存储操作日志为结构化数据,除此之外,区块链节点中还可以存储非结构化数据。
[0109] 由于区块链网络中区块链节点之间的信息是共享的,第一区块链节点在存储数据单元的存储操作日志后,会在各区块链节点之间同步存储操作日志。
[0110] 进一步的,加密存储节点可以部署多个,多个加密存储节点生成的节点列表索引可以在区块链全局进行访问。
[0111] 在本实施例中,通过区块链节点存储数据单元的存储操作日志,不存储数据单元,也不存储与数据单元相关联的密文数据,可以实现存储海量数据。通过对每个数据单元的存储过程上链确权,可以提高数据存储过程的可信度。
[0112] 在一个实施例中,接收使用方终端发送的包括数据标识和数据使用方标识的数据使用权申请请求,包括:第二加密存储节点接收使用方终端发送的包括数据标识和数据使用方标识的使用权申请请求;第二加密存储节点在相应的第二区块链节点中获取数据标识对应的第一加密存储节点的路由信息;第二加密存储节点根据路由信息将使用权申请请求发送至第一加密存储节点。
[0113] 加密存储节点还包括第二加密存储节点。第二加密存储节点为使用方终端对应的加密存储节点,即使用方终端的应用程序所部署的加密存储节点。
[0114] 当数据使用方需要使用数据拥有方的数据单元时,数据使用方可以通过登录使用方终端的应用程序发起针对该数据单元的使用申请请求,从而使用方终端的应用程序发送使用权申请请求至第二加密存储节点。区块链网络中存储第二加密存储节点对应的第二区块链节点。第二加密存储节点在接收到使用权申请请求后,对使用权申请请求进行解析,得到数据标识。数据标识是指该使用权申请请求所针对的数据单元的数据标识,表明数据使用方请求对该数据标识对应的数据单元的使用权授权。第二加密存储节点需要将该使用权申请请求发送至相应的加密存储节点。第二加密存储节点可以在第二区块链节点中查询数据标识对应的第一加密存储节点,并获取该第一加密存储节点的路由信息。其中,路由信息可以用(IP,Port)来表示,其中,IP表示网络IP地址,Port表示网络端口号。进而第二加密存储节点可以根据第一加密存储节点的路由信息将使用权申请请求发送至第一加密存储节点,以便第一加密存储节点将该请求反馈至数据表示对应的拥有方终端,对该请求进行授权处理。
[0115] 进一步的,第二加密存储节点在第二区块链节点中获取数据标识对应的第一加密存储节点的路由信息,包括:第二加密存储节点在第二区块链节点中获取加密存储节点索引;根据加密存储节点索引获取数据标识对应的第一加密存储节点的路由信息。区块链网络中存储有加密存储节点索引,第二加密存储节点可以在对应的第二区块链节点中获取加密存储节点索引,通过该索引可以获取数据标识对应的第一加密存储节点的路由信息。
[0116] 在本实施例中,通过区块链网络存储加密节点索引,可以实现部署多个加密存储节点,使得使用方终端和拥有方终端的应用程序都可以部署一个独立的加密存储节点,能够完全掌控密文数据,从而提供更高效的数据存储和授权处理服务。
[0117] 在一个实施例中,上述方法还包括:将使用权申请请求的操作日志存储在第一区块链节点中。
[0118] 使用权申请请求的操作日志包括从接收到使用方终端发送的使用权申请请求开始,到第一加密存储节点存储目标片段结束的操作过程。使用权申请请求的操作日志可以为:
[0119] (time,pkA,Auth,dataID,saved,savedAndAuthed)
[0120] 其中,time表示使用方终端发送使用权申请请求的时间,pkA表示数据拥有方对应的公钥,Auth表示数据授权操作,dataID表示数据单元对应的数据标识,saved表示存储状态,savedAndAuthed表示存储并授权状态;
[0121] 通过将该操作日志存储至第一区块链节点中,实现数据授权的可信审计,提高数据授权过程的安全性。
[0122] 进一步的,数据拥有方和数据使用方的私钥不需要在应用程序、加密存储节点和区块链节点暴露,在应用程序、加密存储节点和区块链节点的存储和处理数据是全程密文处理的,无法获取密文数据对应的明文数据,实现了全程可信。
[0123] 需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0124] 根据本申请实施例,如图5所示,提供了一种数据访问方法,以该方法应用于图1中的加密存储节点为例进行说明,该方法包括如下步骤:
[0125] 步骤502,接收使用方终端发送的包括数据标识和数据使用方标识的数据访问请求。
[0126] 步骤504,根据数据访问请求获取数据使用方标识对应的目标片段;目标片段是根据拥有方终端预先授予的加密存储节点公钥加密得到的。
[0127] 步骤506,对目标片段进行解密,得到授权片段。
[0128] 步骤508,将授权片段进行重加密处理,得到重加密密文。
[0129] 步骤510,获取数据标识对应的加密单元,将重加密密文以及加密单元发送至使用方终端,通过使用方终端根据重加密密文解密加密单元,得到目标数据。
[0130] 当数据拥有方对应的第一加密存储节点完成数据存储以及数据使用方接收到数据拥有方对应的第一加密存储节点发送的授权结果后,表明数据使用方已获的数据标识对应的数据单元的使用权。数据存储及数据授权方法可以如前述实施例,此处不再赘述。
[0131] 当数据使用方需要访问数据单元时,可以通过登录使用方终端的应用程序发起数据访问请求,使用方终端的应用程序向第二加密存储节点发起数据访问请求,第二加密存储节点对数据访问请求进行解析,得到数据标识和数据使用方标识。第二加密存储节点在对应的第二区块链节点中获取加密存储节点索引,根据加密存储节点索引获取数据标识对应的加密存储节点为第一加密存储节点,从而获取到第一加密存储节点的路由信息,根据该路由信息将数据访问请求发送至第一加密存储节点。
[0132] 第一加密存储节点根据数据访问请求对目标片段进行重加密,使用方终端在解密后可以得到相应的明文数据。具体的,第一加密存储节点获取数据标识对应的目标片段,对目标片段进行解密,得到授权片段。解密方式为:
[0133]
[0134] 其中, 表示对称解密算法,cKFragi表示目标片段,表示加密存储节点的加密存储节点私钥,kFragi表示授权片段。
[0135] 第一加密存储节点将授权片段进行重加密处理,重加密处理方式为:
[0136] {cFragi}i=1←ReEncapsulation({kFragi}i=1,capsule)其中,ReEncapsulation({kFragi}i=1,capsule)是门限代理重加密的重加密算法,capsule表示加密胶囊,cFragi表示重加密密文。
[0137] 第一加密存储节点获取数据标识对应的加密单元,将重加密密文cFragi以及加密单元eneData发送至使用方终端,通过使用方终端根据重加密密文解密加密单元,解密方式可以是先对数据使用方的私钥、重加密密文以及加密胶囊进行门限代理解密,再进行对称解密,从而得到目标数据,即数据标识对应的数据单元。进一步的,可以根据门限代理重加密的解密算法对数据使用方的私钥、重加密密文以及加密胶囊进行门限代理解密,生成对称秘钥。门限代理解密方式为:
[0138]
[0139] 其中, 表示门限代理重加密的解密算法,skB表示数据使用方的私钥,cFragi表示重加密密文,T表示当前获取到的重加密密文的数量(t≤T≤N),capsule表示加密胶囊。K′表示对称秘钥。
[0140] 对称解密的计算公式为:
[0141] data←Dec(K′,encData)
[0142] 其中,Dec(K,encData)表示对称解密算法,K′表示对称秘钥,encData表示加密单元,data表示数据标识对应的数据单元。
[0143] 可以理解的是,数据的访问操作日志也会存储在对应的区块链中。通过结合区块链技术,将数据的存储、授权和访问过程日志进行上链确权,可以实现可信审计。
[0144] 在本实施例中,加密存储节点通过接收使用方终端发送的包括数据标识和数据使用方标识的数据访问请求,根据数据访问请求获取数据使用方标识对应的目标片段。由于目标片段是通过拥有方终端授予的加密存储节点公钥加密得到的,只有指定的加密存储节点可以解密得到授权片段,能够防止恶意非授权读取,提高了数据访问的安全性。且通过对授权片段进行重加密处理,将重加密密文以及加密单元发送至使用方终端,以解密得到目标数据,由此有效提高了数据访问的可信度和安全性。
[0145] 在一个实施例中,如图6所示,提供了另一种数据授权及访问方法的流程示意图,其中,应用A为数据拥有方A对应的拥有方终端中的应用程序,加密存储节点A为第一存储节点,区块链节点A为第一区块链节点,相对应的,应用B为数据使用方B对应的拥有方终端中的应用程序,加密存储节点B为第二存储节点,区块链节点B为第二区块链节点。上述方法可以包括如下步骤:
[0146] 步骤1:数据拥有方A存储数据单元,如可以存储在对应的拥有方终端中。
[0147] 步骤2:数据拥有方通过登录拥有方终端的应用A,应用A包括SDK(software development kit,软件开发工具包),可以通过SDK对数据单元进行加密处理以及哈希运算,得到加密单元、加密胶囊以及数据单元对应的数据标识,根据数据标识、加密单元、加密胶囊以及数据拥有方的公钥确定数据单元对应的元组。
[0148] 步骤3:应用A将元组通过API(Application Program Interface,应用程序接口)发送至加密存储节点A。
[0149] 步骤4:加密存储节点A存储该元组。
[0150] 步骤5:通过区块链节点A存储数据单元的存储操作日志。
[0151] 步骤6:在各区块链节点之间同步存储操作日志。
[0152] 步骤7:数据使用方B向应用B发起包括数据标识和数据使用方标识的使用权申请请求。
[0153] 步骤8:应用B向加密存储节点B发起使用权申请请求。
[0154] 步骤9:加密存储节点B区块链节点B中获取加密存储节点索引,根据加密存储节点索引获取数据标识对应的第一加密存储节点的路由信息。
[0155] 步骤10:加密存储节点B根据路由信息将使用权申请请求发送至加密存储节点A。
[0156] 步骤11:数据拥有方对数据使用方的使用权申请请求进行授权处理,得到授权片段,将授权片段发送至加密存储节点A。
[0157] 步骤12:加密存储节点A根据拥有方终端预先授予的加密存储节点公钥对授权片段进行加密处理,得到数据使用方标识对应的目标片段,存储该目标片段。
[0158] 步骤13:加密存储节点A将使用权申请请求的操作日志存储在第一区块链节点中。
[0159] 步骤14:数据使用方B发送包括数据标识和数据使用方标识的数据访问请求至应用B。
[0160] 步骤15:应用B向加密存储节点B发起数据访问请求。
[0161] 步骤16:加密存储节点B区块链节点B中获取加密存储节点索引,根据加密存储节点索引获取数据标识对应的第一加密存储节点的路由信息。
[0162] 步骤17:加密存储节点B根据路由信息将数据访问请求发送至加密存储节点A。
[0163] 步骤18:加密存储节点A根据数据访问请求获取数据使用方标识对应的目标片段,对目标片段进行解密,得到授权片段,将授权片段进行重加密处理,得到重加密密文,获取数据标识对应的加密单元,将重加密密文以及加密单元发送至使用方终端中的应用B。
[0164] 步骤19:应用B根据重加密密文解密该加密单元,得到目标数据。
[0165] 在本实施例中,由于目标片段是通过拥有方终端授予的加密存储节点公钥加密得到的,实现只有指定的加密存储节点,即指定的数据代理方可以解密得到授权片段,能够防止恶意非授权读取,提高了数据授权及访问的安全性。且通过在数据授权及访问阶段对授权片段进行加密处理,由此有效提高了数据授权的可信度和安全性。同时,通过结合区块链技术,对数据的存储、授权和访问过程日志进行上链确权,可以实现可信审计。数据拥有方和数据使用方的私钥不需要在应用、加密存储节点和区块链节点暴露,在应用、加密存储节点和区块链节点存储和处理数据全程密文处理,无法获取密文数据对应的明文数据,实现全程可信。
[0166] 根据本申请实施例,还提供了一种用于实施上述数据授权方法的数据授权装置,如图7所示,该装置包括:
[0167] 第一通信模块702,用于接收使用方终端发送的包括数据标识和数据使用方标识的使用权申请请求,将使用权申请请求反馈至数据标识对应的拥有方终端。
[0168] 片段接收模块704,用于接收拥有方终端返回的授权片段;授权片段是拥有方终端通过门限代理重加密处理得到的。
[0169] 公钥获取模块706,用于获取拥有方终端预先授予的加密存储节点公钥。
[0170] 加密处理模块708,用于通过加密存储节点公钥对授权片段进行加密处理,得到数据使用方标识对应的目标片段,存储目标片段。
[0171] 授权反馈模块710,用于生成使用方终端的授权结果,反馈至使用方终端。
[0172] 在一个实施例中,加密存储节点包括第一加密存储节点,拥有方终端预先存储有数据标识对应的数据单元;上述装置还包括:
[0173] 数据存储模块,用于通过拥有方终端对预先存储的数据单元进行加密处理,得到加密胶囊、加密秘钥和加密单元;对加密单元、加密胶囊以及拥有方终端对应的数据拥有方的公钥进行哈希运算,生成数据单元对应的数据标识;根据数据标识、加密单元、加密胶囊以及数据拥有方的公钥确定数据单元对应的元组,将元组存储至第一加密存储节点。
[0174] 在一个实施例中,上述装置还包括:第一区块链存储模块,用于通过第一加密存储节点对应的第一区块链节点存储数据单元的存储操作日志;在各区块链节点之间同步存储操作日志。
[0175] 在一个实施例中,加密存储节点还包括第二加密存储节点,第一通信模块702还用于通过第二加密存储节点接收使用方终端发送的包括数据标识和数据使用方标识的使用权申请请求;第二加密存储节点在相应的第二区块链节点中获取数据标识对应的第一加密存储节点的路由信息;第二加密存储节点根据路由信息将使用权申请请求发送至第一加密存储节点。
[0176] 在一个实施例中,第一通信模块702还用于通过第二加密存储节点在相应的第二区块链节点中获取加密存储节点索引;根据加密存储节点索引获取数据标识对应的第一加密存储节点的路由信息。
[0177] 在一个实施例中,加密处理模块708还用于通过加密存储节点公钥对授权片段进行非对称加密。
[0178] 在一个实施例中,上述装置还包括:第二区块链存储模块,用于将使用权申请请求的操作日志存储在第一区块链节点中。
[0179] 根据本申请实施例,还提供了一种用于实施上述数据访问方法的数据访问装置,如图8所示,该装置包括:
[0180] 第二通信模块802,用于接收使用方终端发送的包括数据标识和数据使用方标识的数据访问请求。
[0181] 片段获取模块804,用于根据数据访问请求获取数据使用方标识对应的目标片段;目标片段是根据拥有方终端预先授予的加密存储节点公钥加密得到的。
[0182] 解密模块806,用于对目标片段进行解密,得到授权片段。
[0183] 重加密模块808,用于将授权片段进行重加密处理,得到重加密密文。获取数据标识对应的加密单元,将重加密密文以及加密单元发送至使用方终端,通过使用方终端根据重加密密文解密加密单元,得到目标数据。
[0184] 关于数据授权装置的具体限定可以参见上文中对于数据授权方法的限定,关于数据访问装置的具体限定可以参见上文中对于数据访问方法的限定,在此不再赘述。上述数据授权装置及数据访问装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0185] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储一种数据授权方法的数据或数据访问方法的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据授权方法或数据访问方法。
[0186] 本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0187] 在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述各个方法实施例中的步骤。
[0188] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各个方法实施例中的步骤。
[0189] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0190] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0191] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。