CN117997651B - 数据共享方法、系统、设备及存储介质 - Google Patents
数据共享方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN117997651B CN117997651B CN202410397233.3A CN202410397233A CN117997651B CN 117997651 B CN117997651 B CN 117997651B CN 202410397233 A CN202410397233 A CN 202410397233A CN 117997651 B CN117997651 B CN 117997651B
- Authority
- CN
- China
- Prior art keywords
- data
- ciphertext
- target
- user
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012795 verification Methods 0.000 claims abstract description 65
- 230000006870 function Effects 0.000 claims description 31
- 239000013598 vector Substances 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 21
- 239000011159 matrix material Substances 0.000 claims description 20
- 125000004122 cyclic group Chemical group 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000013507 mapping Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本申请涉及一种数据共享方法、系统、设备及存储介质。该方法包括:响应数据访问请求,确定目标数据的类别;若属于第二类数据,基于数据使用者的属性集,验证是否具有目标数据的访问权限;目标数据对应的密文文件存储在文件系统;密文文件中包括由对称密钥对目标数据加密的第一密文、及由公钥将对称密钥加密的第二密文;区块链记录了密文文件在文件系统中的第一存储地址;若验证通过,将数据访问请求中的关键字陷门在区块链上匹配;若匹配成功,向数据使用者发送第一存储地址,以使其从文件系统获取第一密文和第二密文,并使用监管中心下发的私钥解密第二密文得到对称密钥,基于对称密钥解密第一密文得到目标数据。该方法能够提高安全性。
Description
技术领域
本申请涉及数据共享技术领域,特别是涉及一种数据共享方法、系统、设备及存储介质。
背景技术
现如今,数据共享大多是通过线上方式实现的。即,想要使用数据的数据使用者可以通过线上方式,向数据提供者或者数据拥有者请求访问数据。
目前大多数数据共享方案中,数据是存储在服务器的,数据使用者会先发送数据请求,由服务器数据直接发送给数据使用者。在这过程中缺乏对数据的隐私保护,安全性较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高安全性的数据共享方法、系统、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种数据共享方法。方法包括:
数据访问控制合约响应数据使用者对目标数据的数据访问请求,确定目标数据的类别;
若目标数据属于第二类数据,则基于数据使用者的属性集,验证数据使用者是否具有目标数据的访问权限;其中,属于第二类数据的目标数据对应的密文文件存储在文件系统;密文文件中包括由对称密钥对目标数据加密的第一密文、及由公钥将对称密钥加密的第二密文;区块链上记录了密文文件在文件系统中的第一存储地址;
区块链中记录了文件系统中加密存储数据的关键字陷门;区块链上记录的关键字陷门是根据第一哈希函数、第二哈希函数、加密存储数据的关键字以及预设属性生成的;数据访问请求中的关键字陷门是根据第一哈希函数、第二哈希函数、目标数据的关键字以及数据使用者的属性集生成的;第一哈希函数和第二哈希函数是用于将信息映射到预设的循环群的函数;若访问权限验证通过,则将数据访问请求中的关键字陷门与区块链上预先存储的关键字陷门进行匹配;包括:获取数据使用者发送的验证辅助信息;验证辅助信息是根据循环群中的生成元确定的;基于验证辅助信息,将数据访问请求中的关键字陷门与区块链上预先存储的关键字陷门匹配;
若匹配成功,向数据使用者发送区块链上的第一存储地址,以使数据使用者基于第一存储地址从文件系统中获取第一密文和第二密文,并使用监管中心下发的私钥解密第二密文得到对称密钥,基于对称密钥解密第一密文得到目标数据。
在其中一个实施例中,基于数据使用者的属性集,验证数据使用者是否具有目标数据的访问权限,包括:
若基于数据使用者的属性集计算出能够与目标内积一起解密秘密值的目标常数集,则确定数据使用者的属性集满足预设的数据访问结构;其中,数据访问结构包括数据访问约束矩阵;目标内积是数据访问约束矩阵中行向量与目标列向量的内积;目标列向量的向量元素中含有秘密值;
判定满足数据访问结构的数据使用者具有目标数据的访问权限。
在其中一个实施例中,区块链上存储的关键字陷门具有对应的第一验证参照信息和第二验证参照信息;其中,第一验证参照信息是根据秘密值以及循环群中的生成元确定的;第二验证参照信息是根据生成元、以及数据访问约束矩阵中行向量与目标列向量的内积确定的;
基于验证辅助信息,将数据访问请求中的关键字陷门与区块链上预先存储的关键字陷门匹配,包括:
若验证辅助信息、数据访问请求中的关键字陷门、第一验证参照信息、第二验证参照信息和区块链上存储的关键字陷门满足预设等式关系,则判定数据访问请求中的关键字陷门与区块链上存储的关键字陷门匹配成功。
在其中一个实施例中,预设等式关系为:
;
其中,是指数据访问请求中的关键字陷门,/>是指验证辅助信息,/>是指第一验证参照信息、/>是指第二验证参照信息,/>是指区块链上存储的关键字陷门,g是指循环群的生成元,β是从正整数集合中选择的随机参数;/>属于目标常数集中的常数;/>是数据使用者的属性集Sid的子属性集;/>是子属性集/>中第i个属性。
在其中一个实施例中,区块链上存储了第三类数据的数据目录;第三类数据的数据本体存储在数据拥有者的本地;
方法还包括:
若目标数据属于第三类数据,则向数据使用者发送区块链存储的目标数据的数据目录;数据目录用于指示数据使用者向数据拥有者发送针对目标数据的数据使用请求,并获取数据拥有者响应数据使用请求对目标数据执行计算后的计算结果。
在其中一个实施例中,区块链上记录了以明文形式存储在文件系统上的各个数据的存储地址;以明文形式存储在文件系统上的各个数据属于第一类数据;
方法还包括:
若目标数据属于第一类数据,则在验证数据使用者的身份后,从区块链上获取目标数据在文件系统上的第二存储地址,并向数据使用者发送区块链上的第二存储地址,以使数据使用者基于第二存储地址从文件系统中获取目标数据。
第二方面,本申请还提供了一种数据共享系统,用于实现本申请各实施例中的方法。系统包括:数据使用者、数据访问控制合约和文件系统;
数据访问控制合约,用于响应数据使用者对目标数据的数据访问请求,确定目标数据的类别;若目标数据属于第二类数据,则基于数据使用者的属性集,验证数据使用者是否具有目标数据的访问权限;其中,属于第二类数据的目标数据对应的密文文件存储在文件系统;密文文件中包括由对称密钥对目标数据加密的第一密文、及由公钥将对称密钥加密的第二密文;区块链上记录了密文文件在文件系统中的第一存储地址;
数据访问控制合约还用于若访问权限验证通过,则将数据访问请求中的关键字陷门与区块链上预先存储的关键字陷门进行匹配;若匹配成功,向数据使用者发送区块链上的第一存储地址;
数据使用者,用于基于第一存储地址从文件系统中获取第一密文和第二密文,并使用监管中心下发的私钥解密第二密文得到对称密钥,基于对称密钥解密第一密文得到目标数据。
第三方面,本申请还提供了一种计算机设备。计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现本申请各实施例中的步骤。
第四方面,本申请还提供了一种计算机可读存储介质。计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现本申请各实施例中的步骤。
第五方面,本申请还提供了一种计算机程序产品。计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请各实施例中的步骤。
上述数据共享方法、系统、计算机设备、存储介质和计算机程序产品中,将第二类数据的密文的存储地址以及关键字陷门预先存储在了区块链上。基于区块链上的数据访问控制合约识别待访问的目标数据的类别,在目标数据属于第二类数据的情况下,能使用针对第二类数据的专有的数据访问共享方式,即,基于数据使用者的属性集验证访问权限,在权限验证通过后,再基于区块链进行关键字陷门匹配,匹配成功后,再发送存储地址给数据使用者从文件系统上访问目标数据,以实现数据共享,提高了数据共享的安全性。
附图说明
图1为一个实施例中数据共享方法的流程示意图;
图2为一个实施例中数据共享方法的原理简示图;
图3为另一个实施例中数据共享方法的流程示意图;
图4为一个实施例中数据共享系统的结构框图;
图5为另一个实施例中数据共享系统的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种数据共享方法,包括以下步骤:
步骤102,数据访问控制合约响应数据使用者对目标数据的数据访问请求,确定目标数据的类别。
具体地,数据使用者可以向区块链网络中的数据访问控制合约发送针对目标数据的数据访问请求,数据访问控制合约可以确定所请求访问的目标数据的类别,针对不同的类别,采取不同的处理方式来实现对目标数据的访问或使用。其中,数据访问控制合约是区块链上用于进行数据访问控制的智能合约。
可选地,数据一般可以根据数据的保密程度或者重要程度至少分为三类,第一类数据是可公开访问的数据,数据拥有者可将第一类数据以明文形式存储文件系统上,并将其存储地址上传至区块链。第二类数据是保密程度高、比较重要的数据,这类数据则需要加密存储在文件系统中,同样,其密文在文件系统上的存储地址上传至区块链,而且,第二类数据只有通过特定的权限验证才可访问,比如,满足数据拥有者设计的数据访问结构才可访问。第三类数据是保密程度非常高、很重要的数据,一般是不能直接让外部获取的,因此,这类数据一般只在区块链上存储数据类目,而将数据本体存储在数据拥有者的本地,而且,该类数据不能直接访问源数据,只能提供数据的计算结果。
需要说明,数据使用者和数据拥有者是具有计算能力、不同角色的设备。
可选地,数据拥有者可提前对数据做好分类,并将类别同步在区块链上进行记录。也可以是数据访问控制合约在接收到数据访问请求后判断出类别,比如,判断数据是否可公开访问,若是,判定为第一类数据,若否,继续判断其重要程度或者判断访问权限要求,若保密程度或访问权限要求低于预设阈值,判定为第二类数据,保密程度或访问权限要求高于阈值则判定为第三类数据。
步骤104,若目标数据属于第二类数据,则基于数据使用者的属性集,验证数据使用者是否具有目标数据的访问权限;其中,属于第二类数据的目标数据对应的密文文件存储在文件系统;密文文件中包括由对称密钥对目标数据加密的第一密文、及由公钥将对称密钥加密的第二密文;区块链上记录了密文文件在文件系统中的第一存储地址。
如果目标数据属于第二类数据,在步骤102之前,数据拥有者就预先使用对称密钥将目标数据加密为第一密文/>。监管中心预先生成了公钥(即公开参数)并发送给数据拥有者,数据拥有者则使用该公钥将对称密钥加密得到第二密文,然后基于第一密文和第二密文生成密文文件发送给文件系统存储,文件系统将密文文件的第一存储地址返回给数据拥有者。此外,数据拥有者还对数据的关键字加密,生成了关键字陷门,数据拥有者将第一存储地址和关键字陷门上传至区块链。
在一些实施例中,监管中心生成两个素数阶为的乘法循环群/>,/>是/>的生成元,映射关系为/>。然后随机选择/>,其中,/>,Z代表整数。最后定义一个预设属性的集合/>,对于集合/>中的预设属性,随机选择参数,即针对集合/>中的每个预设属性随机选择一个对应的参数,每个预设属性对应一个随机值。系统公开参数又叫做公钥,即为。监管中心还向数据使用者下发了私钥,以便于数据使用者后续获取第二密文后,可以使用私钥对其解密。
在一些实施例中,当数据使用者加入系统时,监管中心验证数据使用者的身份信息,验证通过后为其生成唯一的身份标识Uid和数据请求方的属性集Sid,监管中心随机选择参数,并构造私钥(即解密密钥)为/>,其中,S表示数据请求方的属性集Sid。
由于属于第二类数据比较重要的数据,因此,数据访问控制合约需要基于数据使用者的属性集,验证数据使用者是否具有目标数据的访问权限。可选地,数据使用者可以将自身的身份标识Uid上传至区块链,以使数据访问控制合约基于该身份标识Uid获取该数据使用者的属性集来验证访问权限。
步骤106,若访问权限验证通过,则将数据访问请求中的关键字陷门与区块链上预先存储的关键字陷门进行匹配。
为避免没有可访问数据时产生的不必要交互,数据拥有者针对第二类数据,都会将其加密存储至文件系统,并生成相应的关键字陷门存储至区块链,即,区块链中记录了文件系统中各个加密存储数据的关键字陷门。文件系统中的加密存储数据是加密存储在文件系统中的数据。
那么,若目标数据属于第二类数据,除了需验证访问权限,还需进行关键字陷门匹配验证。
步骤108,若匹配成功,向数据使用者发送区块链上的第一存储地址,以使数据使用者基于第一存储地址从文件系统中获取第一密文和第二密文,并使用监管中心下发的私钥解密第二密文得到对称密钥,基于对称密钥解密第一密文得到目标数据。
具体地,若访问权限验证通过、且关键字陷门匹配成功,说明数据使用者有权限访问目标数据,且目标数据也加密存储在文件系统中,数据访问控制合约则可向数据使用者发送第一存储地址。数据使用者基于第一存储地址从文件系统获取密文文件中的第一密文和第二密文。数据使用者可使用监管中心下发的私钥解密第二密文得到对称密钥,基于对称密钥解密第一密文得到目标数据。
上述数据共享方法中,区块链上预先将第二类数据的密文的存储地址和关键字陷门预先存储在了区块链上。基于数据访问控制合约识别待访问的目标数据的类别,若属于第二类数据,使用针对第二类数据的专有的数据访问共享方式,即,基于数据使用者的属性集验证访问权限,在权限验证通过后,再基于区块链进行关键字陷门匹配,匹配成功后,发送存储地址给数据使用者,以从文件系统上访问目标数据。本案结合区块链大大提高了数据共享的安全性。
其次,既保证了数据拥有者本地的数据的隐私,也保证了数据使用者在请求数据时的关键字隐私。而且,在数据共享过程中使用基于区块链上的智能合约的执行环境作为可信任计算环境,同时将数据共享的过程上链存证,确保数据处理过程可被追踪和记录,提高了数据共享的透明度、可信度。
在一些实施例中,基于数据使用者的属性集,验证数据使用者是否具有目标数据的访问权限,包括:若基于数据使用者的属性集计算出能够与目标内积一起解密秘密值的目标常数集,则确定数据使用者的属性集满足预设的数据访问结构;判定满足数据访问结构的数据使用者具有目标数据的访问权限。
数据拥有者可预先构建数据访问结构,在请求访问数据时,如果基于数据使用者的属性集能够找到一个目标常数集,使得该目标常数集与目标内积的乘积等于秘密值,则说明能够解密秘密值,因而,就判定其满足预设的数据访问结构,具备目标数据的访问权限。其中,目标内积是数据访问约束矩阵中行向量与目标列向量的内积。数据访问约束矩阵与系统中的预设属性的关系是:数据访问约束矩阵中的行向量可以映射为系统中的预设属性。目标列向量的一个向量元素为秘密值,其他向量元素为随机数值。
可选地,数据访问结构为,/>是数据访问约束矩阵,/>是一个/>矩阵,/>、分别表示数据访问约束矩阵/>的行数和列数,函数/>表示属性映射函数。函数/>可以将数据访问约束矩阵/>中的行向量分别映射为系统中的预设属性,因此,数据访问约束矩阵的行数,也相当于系统中预设属性的个数。数据拥有者可以随机选择一个目标列向量,即为目标列向量。其中,/>即为加密时需要隐藏的秘密值,/>分别是从循环群中随机选择的数,对于矩阵的每一行计算目标内积/>,其中/>为矩阵/>中的第/>个行向量。
在验证访问权限时,数据访问控制合约选择,并定义,即/>是包含于数据使用者的属性集S的属性集,然后进行验证测试,如果能在多项式时间内找到一个常数集/>使得/>,则说明能够解密秘密值,即满足预设的数据访问结构。
可选地,在计算出后,数据拥有者可以随机选择参数/>,并结合和公共参数(即公钥)将对称密钥/>加密,得到如下第一密文:
;
其中,对应的是第i个预设属性,即,/>对应的是第i个预设属性所对应的随机值,/>表示秘密值。
如前文,数据拥有者使用对称密钥对目标数据加密形成了第二密文/>。数据拥有者可以基于第一密文和第二密文形成密文文件/>,上传至星际文件系统IPFS进行存储。
上述实施例中,通过属性集计算用于解密秘密值的目标常数集,来判断数据使用者的属性集是否满足预设的数据访问结构,以实现访问权限的验证判断,提高了安全性。
在一些实施例中,区块链上记录的关键字陷门是根据第一哈希函数、第二哈希函数、加密存储数据的关键字以及预设属性生成的;数据访问请求中的关键字陷门是根据第一哈希函数、第二哈希函数、目标数据的关键字以及数据使用者的属性集生成的。本实施例中,将数据访问请求中的关键字陷门与区块链上预先存储的关键字陷门进行匹配,包括:获取数据使用者发送的验证辅助信息;验证辅助信息是根据循环群中的生成元确定的;基于验证辅助信息,将数据访问请求中的关键字陷门与区块链上预先存储的关键字陷门匹配。
其中,第一哈希函数,第二哈希函数/>,表示第一哈希函数和第二哈希函数用于将信息映射到预设的循环群/>。
在一些实施例中,区块链上记录的关键字陷门是数据拥有者生成并上传的,可以表示为,/>为文件系统上的加密存储数据的关键字,/>对应第i个预设属性,/>是指矩阵T中第i个行向量与目标列向量/>的目标内积。
在一些实施例中,对于属性集Sid中的每个属性随机选择/>,数据访问请求中的关键字陷门/>其中,/>为目标数据的关键字,/>表示数据使用者的任意的第i个属性(即任意属性),/>是与属性对应的随机数值,即,每个属性/>都会有一个对应的/>,验证辅助信息/>,其中,g和α的解释已经在前文中说明。数据使用者可以将/>上传到数据访问控制合约,供其进行关键字陷门匹配验证。
在一些实施例中,区块链上存储的关键字陷门具有对应的第一验证参照信息和第二验证参照信息;其中,第一验证参照信息是根据秘密值以及循环群中的生成元确定的;第二验证参照信息是根据生成元、以及数据访问约束矩阵中行向量与目标列向量的目标内积确定的。基于验证辅助信息,将数据访问请求中的关键字陷门与区块链上预先存储的关键字陷门匹配,包括:若验证辅助信息、数据访问请求中的关键字陷门、第一验证参照信息、第二验证参照信息和区块链上存储的关键字陷门满足预设等式关系,则判定数据访问请求中的关键字陷门与区块链上存储的关键字陷门匹配成功。
数据拥有者在对数据加密存储时,除了生成关键字陷门以外,还会生成相应的第一验证参照信息和第二验证参照信息。可选地,两个验证参照信息是通过以下公式确定的:
;
。
其中,是指第一验证参照信息、/>是指第二验证参照信息。数据拥有者可以将上传到区块链的数据访问控制合约上。数据访问控制合约则结合数据使用者上传的/>判断满足预设等式关系后,就将数据拥有者上传的存储地址/>发送给数据使用者。
在一些实施例中,预设等式关系为:
;
其中,e()表示双线性映射,g是指循环群的生成元,β是从正整数集合中选择的随机参数;属于目标常数集中的常数;/>是包含于数据使用者的属性集S的属性集;/>是属性集/>中第i个属性,公式中其他参数已经在前文中进行解释,此处不再赘述。
现结合图2解释第二类数据的访问处理原理。参见图2,监管中心可以生成系统的公共参数(即公钥)和解密密钥(即私钥),并将公共参数发送给数据拥有者,将解密密钥发送给数据使用者。针对第二类数据,数据拥有者使用对称密钥加密第二类数据,并上传第二类的加密数据至星际文件系统IPFS,IPFS会返回密文的存储地址。数据拥有者对第二类数据的关键字加密生成关键字陷门,将加密数据的存储地址和关键字陷门上链存储。数据使用者向数据访问控制合约发起针对目标数据的数据访问请求,触发进行关键字陷门搜索匹配。也可以先触发访问权限验证,验证通过后再触发关键字陷门搜索匹配。在搜索匹配成功后,返回目标数据的存储地址给数据使用者。数据使用者使用该存储地址从IPFS访问目标数据的密文文件,其中包括第一密文和第二密文,可使用公钥解密第二密文得到对称密钥,再使用对称密钥解密第一密文得到目标数据。
在一些实施例中,数据使用者可以使用私钥或叫做解密密钥通过以下公式解密得到对称密钥/>:
。可以理解,公式中的各项参数已经在前文中解释,比如,L和K是前文中解密密钥中的参数,故在此不再赘述。最后使用对称密钥/>可得对第一密文/>解密得到明文的目标数据/>。
上述实施例中,针对第二类数据,能基于属性集结合特定加密方式,生成关键字陷门,从而在接收到数据访问请求时,除了验证访问权限,还进行关键字陷门匹配,提高了安全性。此外,由于本案属于特有的陷门生成方式,所以基于验证辅助信息进行关键字陷门匹配也是独有的、全新方式。
在一些实施例中,该方法还包括:若目标数据属于第三类数据,则向数据使用者发送区块链存储的目标数据的数据目录;数据目录用于指示数据使用者向数据拥有者发送针对目标数据的数据使用请求,并获取数据拥有者响应数据使用请求对目标数据执行计算后的计算结果。
由于第三类数据的数据本体只存储在数据拥有者的本地,数据访问控制合约可从区块链上获取目标数据的数据目录并发送给数据使用者。数据使用者基于该数据目录向数据拥有者发送针对目标数据的数据使用请求。数据拥有者在其本地基于目标数据执行与数据使用请求相匹配的计算,将计算结果返回给数据使用者。这样一来,既不用将目标数据发送数据使用者导致安全性问题,又能让数据使用者使用到该目标数据。
在一些实施例中,数据拥有者可使用公钥对计算结果加密后再发送给数据使用者,由数据使用者使用私钥解密出计算结果。
在一些实施例中,区块链上记录了以明文形式存储在文件系统上的各个数据的存储地址;以明文形式存储在文件系统上的各个数据属于第一类数据。该方法还包括:若目标数据属于第一类数据,则在验证数据使用者的身份后,从区块链上获取目标数据在文件系统上的第二存储地址,并向数据使用者发送区块链上的第二存储地址,以使数据使用者基于第二存储地址从文件系统中获取目标数据。
第一类数据的数据本体明文存储在文件系统上,将第一类数据的存储地址存储在区块链上。数据访问控制合约可以在验证数据使用者的身份后,从区块链上获取目标数据在文件系统上的第二存储地址并发给数据使用者。数据使用者基于第二存储地址从文件系统中获取目标数据。
可以理解,本申请通过对数据分类,使拥有不同等级权限的用户获取到不同的数据,且能够对不同安全级别的数据进行针对性访问处理,满足不同需求下的数据共享,数据共享方式更加灵活,充分保证了数据共享的可行性。
如图3所示,提供了一种数据共享方法的另一种具体实施例,从图3可知,本申请的方法,能够基于区块链实现数据分类访问处理,针对不同类别的数据采取不同的访问处理方式,提高了数据访问的安全性和准确性。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据共享方法的数据共享系统。该系统所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据共享系统实施例中的具体限定可以参见上文中对于数据共享方法的限定,在此不再赘述。
在一个实施例中,如图4所示,提供了一种数据共享系统,包括:数据使用者402、数据访问控制合约404和文件系统406;其中:
数据访问控制合约404,用于响应数据使用者402对目标数据的数据访问请求,确定目标数据的类别;若目标数据属于第二类数据,则基于数据使用者402的属性,验证数据使用者402是否具有目标数据的访问权限;其中,属于第二类数据的目标数据对应的密文文件存储在文件系统406;密文文件中包括由对称密钥对目标数据加密的第一密文、及由公钥将对称密钥加密的第二密文;区块链上记录了密文文件在文件系统406中的第一存储地址;
数据访问控制合约404还用于若访问权限验证通过,则将数据访问请求中的关键字陷门与区块链上预先存储的关键字陷门进行匹配;若匹配成功,向数据使用者402发送区块链上的第一存储地址;
数据使用者402,用于基于第一存储地址从文件系统406中获取第一密文和第二密文,并使用监管中心下发的私钥解密第二密文得到对称密钥,基于对称密钥解密第一密文得到目标数据。
在一些实施例中,数据访问控制合约404还用于若基于数据使用者402的属性集计算出能够与目标内积一起解密秘密值的目标常数集,则确定数据使用者402的属性集满足预设的数据访问结构;其中,数据访问结构包括数据访问约束矩阵;目标内积是数据访问约束矩阵中行向量与目标列向量的内积;目标列向量的向量元素中含有秘密值;判定满足数据访问结构的数据使用者402具有目标数据的访问权限。
如图5所示,在一些实施例中,该系统还包括数据拥有者408。数据拥有者408用于将文件系统406中加密存储数据的关键字陷门上报存储在区块链中;区块链上记录的关键字陷门是数据拥有者408预先根据第一哈希函数、第二哈希函数、加密存储数据的关键字以及预设属性生成的;数据访问请求中的关键字陷门是数据使用者402根据第一哈希函数、第二哈希函数、目标数据的关键字以及数据使用者402的属性生成的;第一哈希函数和第二哈希函数是用于将信息映射到预设的循环群的函数;数据访问控制合约404还用于获取数据使用者402发送的验证辅助信息;验证辅助信息是根据循环群中的生成元确定的;基于验证辅助信息,将数据访问请求中的关键字陷门与区块链上预先存储的关键字陷门匹配。
在一些实施例中,区块链上存储的关键字陷门具有对应的第一验证参照信息和第二验证参照信息;其中,第一验证参照信息是根据秘密值以及循环群中的生成元确定的;第二验证参照信息是根据生成元、以及数据访问约束矩阵中行向量与目标列向量的内积确定的;数据访问控制合约404还用于若验证辅助信息、数据访问请求中的关键字陷门、第一验证参照信息、第二验证参照信息和区块链上存储的关键字陷门满足预设等式关系,则判定数据访问请求中的关键字陷门与区块链上存储的关键字陷门匹配成功。
在一些实施例中,预设等式关系为:
;
其中,是指数据访问请求中的关键字陷门,/>是指验证辅助信息,/>是指第一验证参照信息、/>是指第二验证参照信息,/>是指区块链上存储的关键字陷门,g是指循环群的生成元,β是从正整数集合中选择的随机参数;/>属于目标常数集中的常数;/>是数据使用者402的属性集Sid的子属性集;/>是子属性集/>中第i个属性。
本实施例中,区块链上存储了第三类数据的数据目录;第三类数据的数据本体存储在数据拥有者408的本地;数据访问控制合约404还用于若目标数据属于第三类数据,则向数据使用者402发送区块链存储的目标数据的数据目录
数据使用者402还用于向数据拥有者408发送针对目标数据的数据使用请求;
数据拥有者408,用于响应数据使用请求对目标数据执行计算,并将计算结果发送给数据使用者402。
在一些实施例中,区块链上记录了以明文形式存储在文件系统406上的各个数据的存储地址;以明文形式存储在文件系统406上的各个数据属于第一类数据;数据访问控制合约404还用于若目标数据属于第一类数据,则在验证数据使用者402的身份后,从区块链上获取目标数据在文件系统406上的第二存储地址,并向数据使用者402发送区块链上的第二存储地址;
数据使用者402还用于基于第二存储地址从文件系统406中获取目标数据。
上述数据共享系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器或终端,其内部结构图可以如图6所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据共享方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,存储器存储有计算机程序,处理器执行计算机程序时实现本申请各实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现本申请各实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请各实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (9)
1.一种数据共享方法,其特征在于,方法包括:
数据访问控制合约响应数据使用者对目标数据的数据访问请求,确定目标数据的类别;
若目标数据属于第二类数据,则基于数据使用者的属性集,验证数据使用者是否具有目标数据的访问权限;其中,属于第二类数据的目标数据对应的密文文件存储在文件系统;密文文件中包括由对称密钥对目标数据加密的第一密文、及由公钥将对称密钥加密的第二密文;区块链上记录了密文文件在文件系统中的第一存储地址;
区块链中记录了文件系统中加密存储数据的关键字陷门;区块链上记录的关键字陷门是根据第一哈希函数、第二哈希函数、加密存储数据的关键字以及预设属性生成的;数据访问请求中的关键字陷门是根据第一哈希函数、第二哈希函数、目标数据的关键字以及数据使用者的属性集生成的;第一哈希函数和第二哈希函数是用于将信息映射到预设的循环群的函数;
若访问权限验证通过,则将数据访问请求中的关键字陷门与区块链上预先存储的关键字陷门进行匹配;包括:获取数据使用者发送的验证辅助信息;验证辅助信息是根据循环群中的生成元确定的;基于验证辅助信息,将数据访问请求中的关键字陷门与区块链上预先存储的关键字陷门匹配;
若匹配成功,向数据使用者发送区块链上的第一存储地址,以使数据使用者基于第一存储地址从文件系统中获取第一密文和第二密文,并使用监管中心下发的私钥解密第二密文得到对称密钥,基于对称密钥解密第一密文得到目标数据。
2.根据权利要求1所述的方法,其特征在于,基于数据使用者的属性集,验证数据使用者是否具有目标数据的访问权限,包括:
若基于数据使用者的属性集计算出能够与目标内积一起解密秘密值的目标常数集,则确定数据使用者的属性集满足预设的数据访问结构;其中,数据访问结构包括数据访问约束矩阵;目标内积是数据访问约束矩阵中行向量与目标列向量的内积;目标列向量的向量元素中含有秘密值;
判定满足数据访问结构的数据使用者具有目标数据的访问权限。
3.根据权利要求2所述的方法,其特征在于,区块链上存储的关键字陷门具有对应的第一验证参照信息和第二验证参照信息;其中,第一验证参照信息是根据秘密值以及循环群中的生成元确定的;第二验证参照信息是根据生成元以及目标内积确定的;
基于验证辅助信息,将数据访问请求中的关键字陷门与区块链上预先存储的关键字陷门匹配,包括:
若验证辅助信息、数据访问请求中的关键字陷门、第一验证参照信息、第二验证参照信息和区块链上存储的关键字陷门满足预设等式关系,则判定数据访问请求中的关键字陷门与区块链上存储的关键字陷门匹配成功。
4.根据权利要求3所述的方法,其特征在于,预设等式关系为:
;
其中,是指数据访问请求中的关键字陷门,/>是指验证辅助信息,/>是指第一验证参照信息、/>是指第二验证参照信息,/>是指区块链上存储的关键字陷门,g是指循环群的生成元,β是从正整数集合中选择的随机参数;/> 属于目标常数集中的常数;/> 是包含于数据使用者的属性集S的属性集;/> 是属性集/>中第i个属性。
5.根据权利要求1所述的方法,其特征在于,区块链上存储了第三类数据的数据目录;第三类数据的数据本体存储在数据拥有者的本地;
方法还包括:
若目标数据属于第三类数据,则向数据使用者发送区块链存储的目标数据的数据目录;数据目录用于指示数据使用者向数据拥有者发送针对目标数据的数据使用请求,并获取数据拥有者响应数据使用请求对目标数据执行计算后的计算结果。
6.根据权利要求1至5中任一项所述的方法,其特征在于,区块链上记录了以明文形式存储在文件系统上的各个数据的存储地址;以明文形式存储在文件系统上的各个数据属于第一类数据;
方法还包括:
若目标数据属于第一类数据,则在验证数据使用者的身份后,从区块链上获取目标数据在文件系统上的第二存储地址,并向数据使用者发送区块链上的第二存储地址,以使数据使用者基于第二存储地址从文件系统中获取目标数据。
7.一种数据共享系统,其特征在于,用于实现权利要求1至6中任一项所述的方法,系统包括:数据使用者、数据访问控制合约和文件系统;
数据访问控制合约,用于响应数据使用者对目标数据的数据访问请求,确定目标数据的类别;若目标数据属于第二类数据,则基于数据使用者的属性集,验证数据使用者是否具有目标数据的访问权限;其中,属于第二类数据的目标数据对应的密文文件存储在文件系统;密文文件中包括由对称密钥对目标数据加密的第一密文、及由公钥将对称密钥加密的第二密文;区块链上记录了密文文件在文件系统中的第一存储地址;
数据访问控制合约还用于若访问权限验证通过,则将数据访问请求中的关键字陷门与区块链上预先存储的关键字陷门进行匹配;若匹配成功,向数据使用者发送区块链上的第一存储地址;
数据使用者,用于基于第一存储地址从文件系统中获取第一密文和第二密文,并使用监管中心下发的私钥解密第二密文得到对称密钥,基于对称密钥解密第一密文得到目标数据。
8.一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,其特征在于,处理器执行计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410397233.3A CN117997651B (zh) | 2024-04-03 | 2024-04-03 | 数据共享方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410397233.3A CN117997651B (zh) | 2024-04-03 | 2024-04-03 | 数据共享方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117997651A CN117997651A (zh) | 2024-05-07 |
CN117997651B true CN117997651B (zh) | 2024-06-07 |
Family
ID=90889161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410397233.3A Active CN117997651B (zh) | 2024-04-03 | 2024-04-03 | 数据共享方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117997651B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110717191A (zh) * | 2019-10-24 | 2020-01-21 | 兰州理工大学 | 基于可搜索属性加密的区块链数据隐私保护访问控制方法 |
CN111916173A (zh) * | 2020-08-07 | 2020-11-10 | 安徽师范大学 | 基于ipfs和联盟链的医疗数据安全共享系统及方法 |
CN115643016A (zh) * | 2022-11-04 | 2023-01-24 | 浙江科技学院 | 基于cp-abe的关键字隐藏搜索方法 |
CN115834200A (zh) * | 2022-11-23 | 2023-03-21 | 南京邮电大学 | 基于区块链的属性基可搜索加密数据共享方法 |
CN117040800A (zh) * | 2023-07-17 | 2023-11-10 | 赣南师范大学 | 基于联盟链和无证书可搜索加密的个人档案管理方案 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111835500B (zh) * | 2020-07-08 | 2022-07-26 | 浙江工商大学 | 基于同态加密与区块链的可搜索加密数据安全共享方法 |
US20230081416A1 (en) * | 2021-09-10 | 2023-03-16 | International Business Machines Corporation | Anonymous private shared partitions in blockchain networks |
-
2024
- 2024-04-03 CN CN202410397233.3A patent/CN117997651B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110717191A (zh) * | 2019-10-24 | 2020-01-21 | 兰州理工大学 | 基于可搜索属性加密的区块链数据隐私保护访问控制方法 |
CN111916173A (zh) * | 2020-08-07 | 2020-11-10 | 安徽师范大学 | 基于ipfs和联盟链的医疗数据安全共享系统及方法 |
CN115643016A (zh) * | 2022-11-04 | 2023-01-24 | 浙江科技学院 | 基于cp-abe的关键字隐藏搜索方法 |
CN115834200A (zh) * | 2022-11-23 | 2023-03-21 | 南京邮电大学 | 基于区块链的属性基可搜索加密数据共享方法 |
CN117040800A (zh) * | 2023-07-17 | 2023-11-10 | 赣南师范大学 | 基于联盟链和无证书可搜索加密的个人档案管理方案 |
Also Published As
Publication number | Publication date |
---|---|
CN117997651A (zh) | 2024-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108418681B (zh) | 一种支持代理重加密的基于属性的密文检索系统及方法 | |
CN110334526B (zh) | 一种支持验证的前向安全可搜索加密存储系统及方法 | |
CN112019591B (zh) | 一种基于区块链的云数据共享方法 | |
CN107948146B (zh) | 一种混合云中基于属性加密的连接关键词检索方法 | |
Salam et al. | Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage | |
CN111523133B (zh) | 一种区块链与云端数据协同共享方法 | |
CN112131227A (zh) | 一种基于联盟链的数据查询方法及装置 | |
CN113407627A (zh) | 一种基于区块链的智能医疗网络系统及医疗数据共享方法 | |
CN115834200A (zh) | 基于区块链的属性基可搜索加密数据共享方法 | |
CN114239046A (zh) | 数据共享方法 | |
US20220209945A1 (en) | Method and device for storing encrypted data | |
CN112532650A (zh) | 一种基于区块链的多备份安全删除方法、系统 | |
CN112000632A (zh) | 密文的分享方法、介质、分享客户端及系统 | |
CN112100649A (zh) | 支持布尔访问控制策略的多关键字可搜索加密方法及系统 | |
CN114679340B (zh) | 一种文件共享方法、系统、设备及可读存储介质 | |
Ma et al. | CP‐ABE‐Based Secure and Verifiable Data Deletion in Cloud | |
CN115412356A (zh) | 数据查询设备法、装置、计算机设备以及存储介质 | |
CN116232639B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN117997651B (zh) | 数据共享方法、系统、设备及存储介质 | |
CN116668149A (zh) | 一种基于策略隐藏和属性更新的电子医疗数据共享方法 | |
Jiang et al. | A novel privacy preserving keyword search scheme over encrypted cloud data | |
CN117076406A (zh) | 文档存储方法、系统、装置、计算机设备和存储介质 | |
CN112073172B (zh) | 一种格上基于身份的双接收者全同态加密方法及系统 | |
Raj et al. | A security-attribute-based access control along with user revocation for shared data in multi-owner cloud system | |
Chuang et al. | An Efficient GDPR-Compliant Data Management for IoHT Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |