CN116204923A - 数据管理、数据查询方法及装置 - Google Patents
数据管理、数据查询方法及装置 Download PDFInfo
- Publication number
- CN116204923A CN116204923A CN202310217258.6A CN202310217258A CN116204923A CN 116204923 A CN116204923 A CN 116204923A CN 202310217258 A CN202310217258 A CN 202310217258A CN 116204923 A CN116204923 A CN 116204923A
- Authority
- CN
- China
- Prior art keywords
- data
- structure tree
- access structure
- attribute
- node
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Bioethics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据管理、数据查询方法及装置,可用于金融领域或其他技术领域。所述方法包括:对于一笔待上链存证的数据,根据对该笔数据具有访问权限的用户属性,构建访问结构树;根据所述访问结构树,对该笔待上链存证的数据执行属性基加密,得到该笔数据的加密数据;利用临时秘钥对隐藏了部分信息的访问结构树进行加密,得到加密后的访问结构树;将所述临时秘钥通过秘密共享技术共享给区块链节点,每个所述区块链节点具有所述临时秘钥的一个分片;将加密数据以及加密后的访问结构树发送给所述区块链节点。本申请实施例提供的数据管理、数据查询方法及装置,能够使数据所有者掌握数据的使用权,减少用户隐私数据滥用的情况。
Description
技术领域
本申请涉及区块链技术领域,具体涉及一种数据管理、数据查询方法及装置。
背景技术
传统的区块链网络数据加密是使用***特定密钥加密计算完成,因此同样一份数据无法针对不同的用户实现分级管控,读取和使用数据也没有经过数据所有者用户授权流程,数据的使用权掌握在区块链节点运营方、而不是掌握在用户手中,容易造成用户隐私数据滥用。
发明内容
针对现有技术中的问题,本申请实施例提供一种数据管理、数据查询方法及装置,能够至少部分地解决现有技术中存在的问题。
一方面,本申请提出一种数据管理方法,包括:
对于一笔待上链存证的数据,根据对该笔数据具有访问权限的用户属性,构建访问结构树;
根据所述访问结构树,对该笔待上链存证的数据执行属性基加密,得到该笔数据所对应的加密数据;
利用临时秘钥对隐藏了部分信息的所述访问结构树进行加密,得到加密后的访问结构树;
将所述临时秘钥通过秘密共享技术共享给区块链节点,每个所述区块链节点具有所述临时秘钥的一个分片;
将所述加密数据以及所述加密后的访问结构树发送给所述区块链节点,其中,所述区块链节点用于对所述加密后的访问结构树以及所述加密数据进行存证。
在一些实施例中,所述方法还包括:
将预先构造的用户属性分发给各数据使用端,其中,每个所述数据使用端收到至少一种用户属性。
在一些实施例中,所述对于一笔待上链存证的数据,根据对该笔数据具有访问权限的用户属性,构建访问结构树包括:
对于一笔待上链存证的数据,根据对该笔数据具有访问权限的用户属性,构建访问结构树的叶子节点,其中,每个叶子节点根据一所述用户属性构建,所述叶子节点的个数与对该笔数据具有访问权限的用户属性的种类数相等;
根据预设的访问控制策略构建所述叶子节点的各级祖先节点,生成访问结构树。
在一些实施例中,每种用户属性包括属性编号及属性值;所述根据预设的访问控制策略构建所述叶子节点的各级祖先节点,生成访问结构树包括:
根据预设的访问控制策略,构建所述叶子节点的各级祖先节点所对应的待求解多项式,其中,每个祖先节点所对应的待求解多项式中的未知参数的个数与该祖先节点的子节点的个数相等;
根据每个祖先节点的子节点所对应的属性编号及属性值,利用插值法求解该祖先节点的待求解多项式中的未知参数,得到该祖先节点对应的多项式;
根据为每个祖先节点分配的属性编号以及该祖先节点对应的多项式,求解该祖先节点的属性值;
根据每个祖先节点的属性编号以及属性值构建所述叶子节点的各级祖先节点,生成访问结构树。
在一些实施例中,所述利用临时秘钥对隐藏了部分信息的所述访问结构树进行加密,得到加密后的访问结构树包括:
删除所述访问结构树中每个节点的属性值,得到仅包含属性编号的访问结构树;
利用临时秘钥对所述仅包含属性编号的访问结构树进行加密,得到加密后的访问结构树。
在一些实施例中,所述方法还包括:
将所述临时秘钥的秘钥编号发送给各所述区块链节点,每个所述区块链节点建立并保存本节点拥有的临时秘钥分片、所述秘钥编号、所述加密后的访问结构树以及所述加密数据之间的映射关系。
在一些实施例中,所述方法还包括:
对于所述待上链存证的数据,重新构造对该笔数据具有访问权限的用户属性;
根据所述重新构造的对该笔数据具有访问权限的用户属性,对所述访问结构树进行更新,得到新的访问结构树;
根据所述新的访问结构树,对该笔数据执行属性基加密,得到该笔数据所对应的新的加密数据;
利用临时秘钥对隐藏了部分信息的所述新的访问结构树进行加密,得到新的加密后的访问结构树;
将所述新的加密数据以及所述新的加密后的访问结构树发送给所述区块链节点,所述区块链节点用于对所述新的加密后的访问结构树以及所述新的加密数据进行存证。
在一些实施例中,所述方法还包括:
将重新构造的用户属性分发给具有访问权限的各数据使用端,其中,每个所述数据使用端收到至少一种所述用户属性。
另一方面,本申请提出一种数据查询方法,包括:
向区块链节点发送数据查询请求,所述区块链节点对请求查询的加密数据发起共识,在共识过程中根据本节点保存的与所述加密数据所对应的临时秘钥分片与其他区块链节点之间进行秘密共享,对所述加密数据所对应的加密后的访问结构树进行解密,得到隐藏了部分信息的访问结构树;
获取所述区块链节点发送的经过共识后的加密数据以及所述隐藏了部分信息的访问结构树;
若本地拥有的用户属性命中所述隐藏了部分信息的访问结构树中的至少一种访问控制策略,则根据本地拥有的用户属性,求解得到完整的访问结构树;
根据所述完整的访问结构树对所述加密数据执行属性基解密,得到所述加密数据所对应的原始数据。
在一些实施例中,所述访问结构树是根据对所述原始数据具有访问权限的用户属性构建的,所述用户属性包括属性编号以及属性值;
所述隐藏了部分信息的访问结构树中删除了各节点的属性值。
在一些实施例中,所述若本地拥有的用户属性命中所述隐藏了部分信息的访问结构树中的至少一种访问控制策略,则根据本地拥有的用户属性,求解得到完整的访问结构树包括:
若本地拥有的用户属性命中所述隐藏了部分信息的访问结构树中的至少一种访问控制策略,则根据本地拥有的用户属性,利用多项式插值法求解所述访问结构树中各节点的属性值,得到完整的访问结构树。
在一些实施例中,所述方法还包括:
获取并保存分发给本地的用户属性。
再一方面,本申请提出一种数据管理装置,包括:
第一构建模块,用于对于一笔待上链存证的数据,根据对该笔数据具有访问权限的用户属性,构建访问结构树;
第一加密模块,用于根据所述访问结构树,对该笔待上链存证的数据执行属性基加密,得到该笔数据所对应的加密数据;
第二加密模块,用于利用临时秘钥对隐藏了部分信息的所述访问结构树进行加密,得到加密后的访问结构树;
共享模块,用于将所述临时秘钥通过秘密共享技术共享给区块链节点,每个所述区块链节点具有所述临时秘钥的一个分片;
发送模块,用于将所述加密数据以及所述加密后的访问结构树发送给所述区块链节点,其中,所述区块链节点用于对所述加密后的访问结构树以及所述加密数据进行存证。
又一方面,本申请提出一种数据查询装置,包括:
发送模块,用于向区块链节点发送数据查询请求,所述区块链节点对请求查询的加密数据发起共识,在共识过程中根据本节点保存的与所述加密数据所对应的临时秘钥分片与其他区块链节点之间进行秘密共享,对所述加密数据所对应的加密后的访问结构树进行解密,得到隐藏了部分信息的访问结构树;
获取模块,用于获取所述区块链节点发送的经过共识后的加密数据以及所述隐藏了部分信息的访问结构树;
求解模块,用于若本地拥有的用户属性命中所述隐藏了部分信息的访问结构树中的至少一种访问控制策略,则根据本地拥有的用户属性,求解得到完整的访问结构树;
解密模块,用于根据所述完整的访问结构树对所述加密数据执行属性基解密,得到所述加密数据所对应的原始数据。
本申请实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述的数据管理方法或数据查询方法的步骤。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述的数据管理方法或数据查询方法的步骤。
本申请实施例提供的数据管理、数据查询方法及装置,数据所有者可将具体数据与用户属性关联起来,仅满足指定属性条件的用户能够解密出具体数据、不满足指定组合属性条件的区块链用户不能够解密出具体数据,从而使数据所有者掌握数据的使用权,减少用户隐私数据滥用的情况。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本申请一实施例提供的安全数据分级管控与授权的流程示意图。
图2是本申请一实施例提供的一种安全数据分级管控与授权的区块链***的功能模块图。
图3是本申请一实施例提供的数据使用方与用户属性之间的映射关系图。
图4是本申请一实施例提供的访问结构树的结构示意图。
图5是本申请一实施例提供的数据存证交易请求的数据结构示意图。
图6是本申请一实施例提供的数据存证的数据结构示意图。
图7是本申请一实施例提供的数据管理方法的流程示意图。
图8是本申请一实施例提供的数据管理方法的部分流程示意图。
图9是本申请一实施例提供的数据管理方法的部分流程示意图。
图10是本申请一实施例提供的数据管理方法的部分流程示意图。
图11是本申请一实施例提供的数据管理方法的部分流程示意图。
图12是本申请一实施例提供的访问结构树的结构示意图。
图13是本申请一实施例提供的数据查询方法的流程示意图。
图14是本申请一实施例提供的一种安全数据分级管控与授权的区块链***的数据所有者数据授权的处理方法流程图。
图15是本申请一实施例提供的一种安全数据分级管控与授权的区块链***的数据使用方受数据分级管控的处理方法流程图
图16是本申请一实施例提供的一种安全数据分级管控与授权的区块链***的数据所有者撤销数据使用方的授权控制的处理方法流程图。
图17是本申请一实施例提供的一种安全数据分级管控与授权的区块链***的冷数据的智能检查与自动裁剪的处理方法流程图。
图18是本申请一实施例提供的数据管理装置的结构示意图。
图19是本申请一实施例提供的数据查询装置的结构示意图。
图20是本申请一实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本申请实施例做进一步详细说明。在此,本申请的示意性实施例及其说明用于解释本申请,但并不作为对本申请的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意排序。
关于本文中所使用的“第一”、“第二”、……等,并非特别指称次序或顺位的意思,亦非用以限定本申请,其仅为了区别以相同技术用语描述的元件或操作。
关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指包含但不限于。
关于本文中所使用的“及/或”,包括所述事物的任一或全部排序。
本申请实施例提供的数据管理、数据查询方法的执行主体包括但不限于计算机。
为更好地理解本申请,以下先对本申请的研究背景进行详细说明。
随着区块链技术的发展,我们可以给不同数据使用方的区块链用户关联不同等级,不同等级的区块链用户拥有不同用户属性,将具体数据与不同用户属性的组合关系关联起来,仅满足指定组合属性条件的区块链用户能够解密出具体数据、不满足指定组合属性条件的区块链用户不能够解密出具体数据,从而实现数据分级控制。为了在区块链上隐藏解密规则(即解密所需的不同用户属性的组合关系、又称访问结构树),在数据所有方的区块链用户和多个区块链节点间引入临时密钥加解密和秘密共享技术。访问结构树使得数据与数据使用方具有不可链接性,且支持O(logN)计算复杂度实现数据使用方的权限撤销。本申请的区块数据结构设计能够快速检索出数据授权变化的历史,实现过期数据智能检测与自动裁剪,一方面更高效利用区块链的存储资源、一方面过期数据无法查询进一步保证了数据安全。
具体的,本申请提出一种安全数据分级管控与授权的区块链***,涉及区块链技术领域,如图1所示,其中数据所有者数据授权流程包括:用户属性(含属性编号、属性值)一对多分发101、构造与计算访问结构树102、执行数据加密103、秘密共享临时密钥104、执行访问结构树加密105、区块链存证数据和访问结构树106(仅包含属性编号),数据使用方受数据分级管控流程包括:查询数据对应的访问结构树107、秘密共享解密计算得到真实的访问结构树108、访问结构树与用户属性集合比对109、执行多项式插值得到数据解密密钥110、解密数据111。数据所有者数据授权流程、数据使用方受数据分级管控流程联合作用,完成区块链***中的数据分级管控与授权。本申请基于区块链技术提供数据分级管控与授权作为传统区块链***的升级服务,在对数据保护和不被滥用的监管要求背景下,用户能够实现更方便、透明地掌握自己数据的使用情况。
图2是本申请提供的一种安全数据分级管控与授权的区块链***的功能模块图,如图2所示,该***包含两个功能实体:区块链用户客户端、区块链节点。区块链用户客户端包含几个功能模块:用户属性分发与本地管理模块201、访问结构树构造与计算模块202、数据加解密模块203、秘密共享临时密钥模块204、访问结构树加密模块205、区块链存证与查询请求模块206。区块链节点包含几个功能模块:秘密共享临时密钥分片生成与管理模块207、数据与临时密钥编号对照关系管理模块208、数据与访问结构树对照关系管理模块209、访问结构树解密模块210、区块链存证处理模块211;其中,
用户属性分发与本地管理模块201是区块链用户客户端对其他区块链用户客户端实现分级管控的工具,分发用户属性的区块链用户客户端可以是数据所有者,接收并管理用户属性的区块链用户客户端是被授权的数据使用方。如图3所示,每个数据使用方拥有一个至多个不同的属性(含属性编号、属性值),用户各自管理自己的属性集合,***露给第三方。
访问结构树构造与计算模块202是区块链用户客户端产生需要区块链存证的数据的同时构造如图4所示的访问结构树。每个数据所有者在产生一笔新的数据后,都将计算与该笔数据对应的访问结构树。计算步骤如下:
步骤一:根据具有访问权限的各个用户属性构建访问结构树的叶子节点;
步骤二:对于除根节点外的全部非叶子节点,随机生成各非叶子节点的属性编号;
步骤三:根据访问关系在非叶子节点处构造多项式,祖先节点的属性值是多项式在自变量为0处的值、各个子节点的属性值是多项式在自变量为子节点属性编号时的值。
步骤四:由下至上推算出访问结构树的每一个节点的属性值,最终得到根节点的属性值。
以访问某数据要求满足三个属性条件(属性1且属性2、属性3、属性4)中两个为例,最终得到的访问结构树的结构如图4所示。
数据加解密模块203是区块链用户客户端对原始数据执行加密后再请求区块链节点存证,向区块链节点读数据后执行数据解密后得到原始数据。
数据所有者根据访问结构树执行属性基加密,选取双线性配对特性的群G,生成元是g,则公钥PK有g、h=gb、f=g1/b、e(g,g)a等参数,私钥SK有D=g(a+r)/b、Dy1=grH(i)ri、Dy2=gri等参数,其中a、b、r、ri是随机数,y是访问结构树任一叶子节点,i=attr(y)是属性编号。待加密数据是M,密文是CT=(T,C1=Me(g,g)as,C2=hs,对T的所有叶子y:Cy1=gqy(0),Cy2=H(attr(y))qy(0))。数据所有者将私钥SK通过安全通道发给数据使用方,将密文CT发布到区块链上。数据使用方根据访问结构树执行属性基解密,密文解密计算是Fy=DeCryptoNode(CT,SK,y)=e(Dy1,Cy1)/e(Dy2,Cy2),根据双线性映射特性可以得到Fy=e(g,g)rqy(0)。对节点x的所有叶子节点z计算,Sx为任意大小的孩子节点的集合,计算由下至上递归计算一直到根节点A=FR=e(g,g)rs,解密得到明文M=C1/(e(C2,D)/A)。
秘密共享临时密钥模块204是区块链用户客户端随机生成临时密钥、计算临时密钥编号,和多个区块链节点执行临时密钥相关的秘密共享,秘密共享结束后,各个区块链节点参与方得到临时密钥的一部分、并建立该密钥分片与临时密钥编号的关联关系。一般是数据所有者的区块链用户客户端发起这个流程。
访问结构树加密模块205是区块链用户客户端使用上述临时密钥加密仅包含属性编号关系的访问结构树。
区块链存证与查询请求模块206是区块链用户客户端将加密后的数据与加密参数(根据访问结构树执行属性基加密涉及到的加密参数)、加密后的访问结构树、临时密钥编号送给区块链节点,将数据与分级管控信息记录上区块链节点。数据存证交易请求的数据结构如图5所示。
秘密共享临时密钥分片生成与管理模块207是多个区块链节点配合区块链用户客户端执行秘密共享,每个区块链节点得到临时密钥的一部分、并建立该密钥分片与临时密钥编号的关联关系。
数据与临时密钥编号对照关系管理模块208是区块链节点收到某个数据查询请求时,查该数据对应的临时密钥编号。
数据与访问结构树对照关系管理模块209是区块链节点收到某个数据查询请求时,查该数据对应的加密后的访问结构树。
访问结构树解密模块210是区块链节点根据数据与临时密钥编号对照关系管理模块208得到的临时密钥编号,加载秘密共享临时密钥分片生成与管理模块207秘密共享得到的密钥分片和数据与访问结构树对照关系管理模块209得到的加密访问结构树,节点间执行秘密共享解密计算,得到解密后的访问结构树,返回给区块链用户客户端。
区块链存证处理模块211是区块链节点将区块链用户客户端发送来的加密后的数据与加密参数、加密后的访问结构树、临时密钥编号等信息记录到区块链上。为了使得区块链节点能够快速适应数据的访问控制逻辑变化、冷数据的智能检查与自动裁剪,如图6所示,为区块链节点引入支持防篡改的文件型数据存储技术,将加密后的数据与加密参数存储到防篡改的文件型数据存储后,生成网络中唯一的随机生成的数据索引编号,将数据索引编号、加密后的访问结构树、临时密钥编号、其他信息记录到区块并形成前后相连的链状存储。区块数据结构除了前面字段外,还包括全网唯一交易编号、用户签名和上一数据索引编号,交易编号和用户签名用于防止交易重放,上一数据索引编号在数据的访问控制发生变化后记录旧的数据索引编号、数据索引编号用于新数据索引。
图7是本申请一实施例提供的数据管理方法的流程示意图,如图7所示,本申请实施例提供的数据管理方法,包括:
S101、对于一笔待上链存证的数据,根据对该笔数据具有访问权限的用户属性,构建访问结构树;
S102、根据所述访问结构树,对该笔待上链存证的数据执行属性基加密,得到该笔数据所对应的加密数据;
S103、利用临时秘钥对隐藏了部分信息的所述访问结构树进行加密,得到加密后的访问结构树;
S104、将所述临时秘钥通过秘密共享技术共享给区块链节点,每个所述区块链节点具有所述临时秘钥的一个分片;
S105、将所述加密数据以及所述加密后的访问结构树发送给所述区块链节点,其中,所述区块链节点用于对所述加密后的访问结构树以及所述加密数据进行存证。
具体来讲,数据所有者将具体数据与用户属性关联起来,仅满足指定属性条件的用户能够解密出具体数据、不满足指定组合属性条件的区块链用户不能够解密出具体数据,从而使数据所有者掌握数据的使用权,减少用户隐私数据滥用的情况。
为了在区块链上隐藏解密规则(即解密所需的不同用户属性的组合关系、又称访问结构树),在数据所有方的区块链用户和多个区块链节点间引入临时密钥加解密和秘密共享技术。
在一些实施例中,所述方法还包括:将预先构造的用户属性分发给各数据使用端,其中,每个所述数据使用端收到至少一种用户属性。具体来讲,数据所有者构造用户属性,与数据使用方之间执行一对多分发,每个数据使用方拥有一个至多个不同的属性,用户各自管理自己的属性集合,***露给第三方。
如图8所示,在一些实施例中,所述对于一笔待上链存证的数据,根据对该笔数据具有访问权限的用户属性,构建访问结构树包括:
S1011、对于一笔待上链存证的数据,根据对该笔数据具有访问权限的用户属性,构建访问结构树的叶子节点,其中,每个叶子节点根据一所述用户属性构建,所述叶子节点的个数与对该笔数据具有访问权限的用户属性的种类数相等;
S1012、根据预设的访问控制策略构建所述叶子节点的各级祖先节点,生成访问结构树。
具体来讲,访问结构树各级节点之间的关系根据预设的访问控制策略确定,例如图4所示,以访问某数据要求满足三个属性条件(属性1且属性2、属性3、属性4)中两个为例,预设的访问控制策略为用户满足三个属性条件(属性1且属性2、属性3、属性4)中两个即可访问数据,则由属性1构建的叶子节点和由属性2构建的叶子节点为“且”的关系,该两个叶子节点共用一祖先节点,由属性3构建的叶子节点具有一单独的祖先节点,同理,由属性4构建的叶子节点具有一单独的祖先节点;最后根据各叶子节点的祖先节点构建该访问结构树的根节点。
如图9所示,在一些实施例中,每种用户属性包括属性编号及属性值;所述根据预设的访问控制策略构建所述叶子节点的各级祖先节点,生成访问结构树包括:
S10121、根据预设的访问控制策略,构建所述叶子节点的各级祖先节点所对应的待求解多项式,其中,每个祖先节点所对应的待求解多项式中的未知参数的个数与该祖先节点的子节点的个数相等;
S10122、根据每个祖先节点的子节点所对应的属性编号及属性值,利用插值法求解该祖先节点的待求解多项式中的未知参数,得到该祖先节点对应的多项式;
S10123、根据为每个祖先节点分配的属性编号以及该祖先节点对应的多项式,求解该祖先节点的属性值;
S10124、根据每个祖先节点的属性编号以及属性值构建所述叶子节点的各级祖先节点,生成访问结构树。
举例来讲,如图4所示,对于属性1和属性2共同的祖先节点,构建多项式f(x)=ax+b,该多项式中具有两个未知参数a和b,与该祖先节点的子节点的个数相等;根据属性1的编号和属性值以及属性2的编号和属性值,可求解得到参数a和b,至此得到该祖先节点对应的多项式。
如图10所示,在一些实施例中,所述利用临时秘钥对隐藏了部分信息的所述访问结构树进行加密,得到加密后的访问结构树包括:
S1031、删除所述访问结构树中每个节点的属性值,得到仅包含属性编号的访问结构树;
S1032、利用临时秘钥对所述仅包含属性编号的访问结构树进行加密,得到加密后的访问结构树。
在一些实施例中,所述方法还包括:将所述临时秘钥的秘钥编号发送给各所述区块链节点,每个所述区块链节点建立并保存本节点拥有的临时秘钥分片、所述秘钥编号、所述加密后的访问结构树以及所述加密数据之间的映射关系。
如图11所示,在一些实施例中,所述方法还包括:
S106、对于所述待上链存证的数据,重新构造对该笔数据具有访问权限的用户属性;
S107、根据所述重新构造的对该笔数据具有访问权限的用户属性,对所述访问结构树进行更新,得到新的访问结构树;
S108、根据所述新的访问结构树,对该笔数据执行属性基加密,得到该笔数据所对应的新的加密数据;
S109、利用临时秘钥对隐藏了部分信息的所述新的访问结构树进行加密,得到新的加密后的访问结构树;
S110、将所述新的加密数据以及所述新的加密后的访问结构树发送给所述区块链节点,所述区块链节点用于对所述新的加密后的访问结构树以及所述新的加密数据进行存证。
具体来讲,数据所有者想撤销某数据对某数据使用方的授权控制时,数据所有者为保留权限的数据使用方生成新的属性,将新属性分发给保留权限的数据使用方,被撤销数据使用权的用户收不到新属性。数据所有者加载访问结构树,根据新的属性,从下往上计算被撤销属性节点的兄弟节点和各级祖先节点的属性编号和属性值,更新访问结构树一直到根节点。例如对于图4中的访问结构树,撤销用户属性2后,要重新计算如图12所示的带阴影的3个节点的属性编号和属性值。
在一些实施例中,所述方法还包括:将重新构造的用户属性分发给具有访问权限的各数据使用端,其中,每个所述数据使用端收到至少一种所述用户属性。各数据使用端根据收到的最新的用户属性对该笔数据的加密数据进行解密。
图13是本申请一实施例提供的数据查询方法的流程示意图,如图13所示,本申请实施例提供的数据查询方法,包括:
S201、向区块链节点发送数据查询请求,所述区块链节点对请求查询的加密数据发起共识,在共识过程中根据本节点保存的与所述加密数据所对应的临时秘钥分片与其他区块链节点之间进行秘密共享,对所述加密数据所对应的加密后的访问结构树进行解密,得到隐藏了部分信息的访问结构树;
S202、获取所述区块链节点发送的经过共识后的加密数据以及所述隐藏了部分信息的访问结构树;
S203、若本地拥有的用户属性命中所述隐藏了部分信息的访问结构树中的至少一种访问控制策略,则根据本地拥有的用户属性,求解得到完整的访问结构树;
S204、根据所述完整的访问结构树对所述加密数据执行属性基解密,得到所述加密数据所对应的原始数据。
具体来讲,数据所有者将具体数据与用户属性关联起来,仅满足指定属性条件的用户能够解密出具体数据、不满足指定组合属性条件的区块链用户不能够解密出具体数据,从而使数据所有者掌握数据的使用权,减少用户隐私数据滥用的情况。
在一些实施例中,所述方法还包括:获取并保存分发给本地的用户属性。具体来讲,数据所有者构造用户属性,与数据使用方之间执行一对多分发,每个数据使用方拥有一个至多个不同的属性,用户各自管理自己的属性集合,***露给第三方。
在一些实施例中,所述访问结构树是根据对所述原始数据具有访问权限的用户属性构建的,所述用户属性包括属性编号以及属性值;所述隐藏了部分信息的访问结构树中删除了各节点的属性值。
在一些实施例中,所述若本地拥有的用户属性命中所述隐藏了部分信息的访问结构树中的至少一种访问控制策略,则根据本地拥有的用户属性,求解得到完整的访问结构树包括:若本地拥有的用户属性命中所述隐藏了部分信息的访问结构树中的至少一种访问控制策略,则根据本地拥有的用户属性,利用多项式插值法求解所述访问结构树中各节点的属性值,得到完整的访问结构树。具体来讲,求解完整访问结构树的过程与上述实施例中构建访问结构树的过程类似,在此不再赘述。
以下通过具体实施例对本申请提供的安全数据分级管控与授权的区块链***的工作流程进行详细说明。
图14是本申请提供的一种安全数据分级管控与授权的区块链***的数据所有者数据授权的处理方法流程图,涉及数据所有者、数据使用方、区块链节点,步骤如下:
步骤S301:数据所有者构造用户属性(含属性编号、属性值),与数据使用方之间执行一对多分发。每个数据使用方拥有一个至多个不同的属性(含属性编号、属性值),用户各自管理自己的属性集合,***露给第三方。
步骤S302:数据所有者构造与计算访问结构树。叶子节点是被授权的各个用户属性编号,父节点的值是其子节点的属性编号对应的属性值执行多项式插值的结果。由下至上计算一直得到树根节点。
步骤S303:数据所有者根据访问结构树,执行数据的属性基加密。
步骤S304:数据所有者和多个区块链节点之间秘密共享临时密钥,每个区块链节点有临时密钥的一部分,记录临时密钥编号与临时密钥分片的对应关系。
步骤S305:数据所有者使用临时密钥执行访问结构树的加密。
步骤S306:数据所有者向区块链节点请求存证加密后的数据、访问结构树(仅包含属性编号)和临时密钥编号。
图15是本申请提供的一种安全数据分级管控与授权的区块链***的数据使用方受数据分级管控的处理方法流程图,涉及数据使用方、区块链节点,步骤如下:
步骤S401:数据使用方向区块链节点查询数据,区块链节点查询数据对应的加密后的访问结构树和临时密钥编号。
步骤S402:区块链节点间共识过程中根据临时密钥编号加载临时密钥分片,节点间发起秘密共享,解密计算得到真实的访问结构树。
步骤S403:区块链节点返回真实的访问结构树给数据使用方。
步骤S404:数据使用方将访问结构树与用户属性集合比对,若用户属性集合包含有访问结构树中所要求的属性逻辑,执行S405,否则解密失败,退出处理。
步骤S405:数据使用方加载访问结构树中属性编号对应的属性值,执行多项式插值由下至上计算得到根节点。
步骤S406:数据使用方使用完整访问结构树执行属性基解密得到原始数据。
图16是本申请提供的一种安全数据分级管控与授权的区块链***的数据所有者撤销数据使用方的授权控制的处理方法流程图,涉及数据所有者、数据使用方、区块链节点,步骤如下:
步骤S501:数据所有者想撤销某数据对某数据使用方的授权控制时,数据所有者为保留权限的数据使用方生成新的属性(含属性编号、属性值),将新属性分发给保留权限的数据使用方,被撤销数据使用权的用户收不到新属性。
步骤S502:数据所有者加载访问结构树,根据新的属性,从下往上计算被撤销属性节点的兄弟节点和各代祖先节点的属性编号和属性值,更新访问结构树一直到树根节点。
步骤S503:数据所有者使用新访问结构树加密原始数据。
步骤S504:数据所有者使用临时密钥执行访问结构树的加密。
步骤S505:数据所有者向区块链节点请求存证新加密后的数据、新的访问结构树(仅包含属性编号)和原临时密钥编号。
图17是本申请提供的一种安全数据分级管控与授权的区块链***的冷数据的智能检查与自动裁剪的处理方法流程图,涉及区块链节点,步骤如下:
步骤S601:区块链节点从最新区块扫描直到创世区块,检查数据版本变化得到非最新版本的冷数据,即包含上一数据索引编号的区块。
步骤S602:从区块中解析出上一数据索引编号。
步骤S603:记录上一数据索引编号到待清理数据标记集合。
步骤S604:定期根据待清理数据标记集合自动裁剪防篡改文件型存储中对应数据。
本申请提供的数据管理、数据查询方法,至少具有如下优点:
一、比起传统的权限控制表需要一一绑定数据所有者和数据使用方,本专利使用具体数据与访问结构树的绑定关系,在数据的管理上做到更加精细化和便捷调整。
二、比起传统的权限控制表在区块链上直接公开权限控制信息,任一区块链节点都可以单方面得到完整的权限控制信息,本专利设计的访问结构树使用了秘密共享加密,数据与数据使用方用户的授权关系仅数据所有者知道、或者足够数目的区块链节点参与秘密共享解密后能知道,对于区块链中第三方用户来说无法随意读取或者修改数据对应的访问结构树。而且比起由多个区块链客户端直接承担秘密共享解密原始访问结构树,由计算资源更充分、状态长期在线、临时密钥分片的存储环境更安全的区块链节点承担这项任务的设计更符合实际应用场景,效率和安全性会更高。
三、比起使用传统的签名验签来验证用户身份,本专利在数据所有者和数据使用方之间完成用户属性集合分发,区块链上***息是无法将用户属性与特定区块链用户做绑定,因此链上数据和具体区块链用户间具有不可链接性。
四、当某数据所有者想撤销数据使用方的授权控制时,数据所有者为被调整数据产生新属性(含属性编号、属性值),从下往上计算和更新访问结构树,得到根节点作为新的密钥,使用新的密钥加密原始数据并发布到区块链上,最后将新属性分发给依旧有数据使用权的用户,被撤销数据使用权的用户收不到新属性。没有新属性的用户,在后续查询将无法解密重新加密过的数据。数据使用方的权限撤销的计算复杂度是O(logN),是比较高效和灵活的实现方案。
五、改造区块数据结构引入了“数据索引编号”和“上一数据索引编号”字段,能够快速检索出防篡改的文件型数据存储中的数据变化的历史,快速检测出过期数据,将过期数据标记下来后期再执行定期清理,释放出的存储空间给后续业务使用。实现防篡改的文件型数据存储中过期数据智能检测与自动裁剪,一方面更高效利用区块链的存储资源、一方面过期数据无法查询进一步保证了数据安全。
图18是本申请一实施例提供的数据管理装置的结构示意图,如图18所示,本申请实施例提供的数据管理装置,包括:
第一构建模块71,用于对于一笔待上链存证的数据,根据对该笔数据具有访问权限的用户属性,构建访问结构树;
第一加密模块72,用于根据所述访问结构树,对该笔待上链存证的数据执行属性基加密,得到该笔数据所对应的加密数据;
第二加密模块73,用于利用临时秘钥对隐藏了部分信息的所述访问结构树进行加密,得到加密后的访问结构树;
共享模块74,用于将所述临时秘钥通过秘密共享技术共享给区块链节点,每个所述区块链节点具有所述临时秘钥的一个分片;
发送模块75,用于将所述加密数据以及所述加密后的访问结构树发送给所述区块链节点,其中,所述区块链节点用于对所述加密后的访问结构树以及所述加密数据进行存证。
具体来讲,数据所有者将具体数据与用户属性关联起来,仅满足指定属性条件的用户能够解密出具体数据、不满足指定组合属性条件的区块链用户不能够解密出具体数据,从而使数据所有者掌握数据的使用权,减少用户隐私数据滥用的情况。
在一些实施例中,所述发送模块还用于:
将预先构造的用户属性分发给各数据使用端,其中,每个所述数据使用端收到至少一种用户属性。
在一些实施例中,所述第一构建模块具体用于:
对于一笔待上链存证的数据,根据对该笔数据具有访问权限的用户属性,构建访问结构树的叶子节点,其中,每个叶子节点根据一所述用户属性构建,所述叶子节点的个数与对该笔数据具有访问权限的用户属性的种类数相等;
根据预设的访问控制策略构建所述叶子节点的各级祖先节点,生成访问结构树。
在一些实施例中,每种用户属性包括属性编号及属性值;所述第一构建模块根据预设的访问控制策略构建所述叶子节点的各级祖先节点,生成访问结构树包括:
根据预设的访问控制策略,构建所述叶子节点的各级祖先节点所对应的待求解多项式,其中,每个祖先节点所对应的待求解多项式中的未知参数的个数与该祖先节点的子节点的个数相等;
根据每个祖先节点的子节点所对应的属性编号及属性值,利用插值法求解该祖先节点的待求解多项式中的未知参数,得到该祖先节点对应的多项式;
根据为每个祖先节点分配的属性编号以及该祖先节点对应的多项式,求解该祖先节点的属性值;
根据每个祖先节点的属性编号以及属性值构建所述叶子节点的各级祖先节点,生成访问结构树。
在一些实施例中,所述第二加密模块具体用于:
删除所述访问结构树中每个节点的属性值,得到仅包含属性编号的访问结构树;
利用临时秘钥对所述仅包含属性编号的访问结构树进行加密,得到加密后的访问结构树。
在一些实施例中,所述发送模块还用于:
将所述临时秘钥的秘钥编号发送给各所述区块链节点,每个所述区块链节点建立并保存本节点拥有的临时秘钥分片、所述秘钥编号、所述加密后的访问结构树以及所述加密数据之间的映射关系。
在一些实施例中,所述装置还包括:
第三构建模块,用于对于所述待上链存证的数据,重新构造对该笔数据具有访问权限的用户属性;
更新模块,用于根据所述重新构造的对该笔数据具有访问权限的用户属性,对所述访问结构树进行更新,得到新的访问结构树;
所述第一加密模块还用于根据所述新的访问结构树,对该笔数据执行属性基加密,得到该笔数据所对应的新的加密数据;
所述第二加密模块还用于利用临时秘钥对隐藏了部分信息的所述新的访问结构树进行加密,得到新的加密后的访问结构树;
所述发送模块还用于将所述新的加密数据以及所述新的加密后的访问结构树发送给所述区块链节点,所述区块链节点用于对所述新的加密后的访问结构树以及所述新的加密数据进行存证。
在一些实施例中,所述发送模块还用于:
将重新构造的用户属性分发给具有访问权限的各数据使用端,其中,每个所述数据使用端收到至少一种所述用户属性。
本申请实施例提供的装置的实施例具体可以用于执行上述数据管理方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图19是本申请一实施例提供的数据查询装置的结构示意图,如图19所示,本申请实施例提供的数据查询装置,包括:
发送模块81,用于向区块链节点发送数据查询请求,所述区块链节点对请求查询的加密数据发起共识,在共识过程中根据本节点保存的与所述加密数据所对应的临时秘钥分片与其他区块链节点之间进行秘密共享,对所述加密数据所对应的加密后的访问结构树进行解密,得到隐藏了部分信息的访问结构树;
获取模块82,用于获取所述区块链节点发送的经过共识后的加密数据以及所述隐藏了部分信息的访问结构树;
求解模块83,用于若本地拥有的用户属性命中所述隐藏了部分信息的访问结构树中的至少一种访问控制策略,则根据本地拥有的用户属性,求解得到完整的访问结构树;
解密模块84,用于根据所述完整的访问结构树对所述加密数据执行属性基解密,得到所述加密数据所对应的原始数据。
具体来讲,数据所有者将具体数据与用户属性关联起来,仅满足指定属性条件的用户能够解密出具体数据、不满足指定组合属性条件的区块链用户不能够解密出具体数据,从而使数据所有者掌握数据的使用权,减少用户隐私数据滥用的情况。
在一些实施例中,所述访问结构树是根据对所述原始数据具有访问权限的用户属性构建的,所述用户属性包括属性编号以及属性值;所述隐藏了部分信息的访问结构树中删除了各节点的属性值。
在一些实施例中,所述求解模块具体用于:
若本地拥有的用户属性命中所述隐藏了部分信息的访问结构树中的至少一种访问控制策略,则根据本地拥有的用户属性,利用多项式插值法求解所述访问结构树中各节点的属性值,得到完整的访问结构树。
在一些实施例中,所述装置还包括:
保存模块,用于获取并保存分发给本地的用户属性。
本申请实施例提供的装置的实施例具体可以用于执行上述数据查询方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
需要说明的是,本申请实施例提供的数据管理、数据查询方法及装置可用于金融领域,也可用于除金融领域之外的任意技术领域,本申请实施例对数据管理、数据查询方法及装置的应用领域不做限定。
图20为本申请一实施例提供的电子设备的实体结构示意图,如图20所示,该电子设备可以包括:处理器(processor)901、通信接口(Communications Interface)902、存储器(memory)903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信。处理器901可以调用存储器903中的逻辑指令,以执行上述任一实施例所述的方法。
此外,上述的存储器903中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法。
本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施例而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (16)
1.一种数据管理方法,其特征在于,包括:
对于一笔待上链存证的数据,根据对该笔数据具有访问权限的用户属性,构建访问结构树;
根据所述访问结构树,对该笔待上链存证的数据执行属性基加密,得到该笔数据所对应的加密数据;
利用临时秘钥对隐藏了部分信息的所述访问结构树进行加密,得到加密后的访问结构树;
将所述临时秘钥通过秘密共享技术共享给区块链节点,每个所述区块链节点具有所述临时秘钥的一个分片;
将所述加密数据以及所述加密后的访问结构树发送给所述区块链节点,其中,所述区块链节点用于对所述加密后的访问结构树以及所述加密数据进行存证。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将预先构造的用户属性分发给各数据使用端,其中,每个所述数据使用端收到至少一种用户属性。
3.根据权利要求1所述的方法,其特征在于,所述对于一笔待上链存证的数据,根据对该笔数据具有访问权限的用户属性,构建访问结构树包括:
对于一笔待上链存证的数据,根据对该笔数据具有访问权限的用户属性,构建访问结构树的叶子节点,其中,每个叶子节点根据一所述用户属性构建,所述叶子节点的个数与对该笔数据具有访问权限的用户属性的种类数相等;
根据预设的访问控制策略构建所述叶子节点的各级祖先节点,生成访问结构树。
4.根据权利要求3所述的方法,其特征在于,每种用户属性包括属性编号及属性值;所述根据预设的访问控制策略构建所述叶子节点的各级祖先节点,生成访问结构树包括:
根据预设的访问控制策略,构建所述叶子节点的各级祖先节点所对应的待求解多项式,其中,每个祖先节点所对应的待求解多项式中的未知参数的个数与该祖先节点的子节点的个数相等;
根据每个祖先节点的子节点所对应的属性编号及属性值,利用插值法求解该祖先节点的待求解多项式中的未知参数,得到该祖先节点对应的多项式;
根据为每个祖先节点分配的属性编号以及该祖先节点对应的多项式,求解该祖先节点的属性值;
根据每个祖先节点的属性编号以及属性值构建所述叶子节点的各级祖先节点,生成访问结构树。
5.根据权利要求4所述的方法,其特征在于,所述利用临时秘钥对隐藏了部分信息的所述访问结构树进行加密,得到加密后的访问结构树包括:
删除所述访问结构树中每个节点的属性值,得到仅包含属性编号的访问结构树;
利用临时秘钥对所述仅包含属性编号的访问结构树进行加密,得到加密后的访问结构树。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
将所述临时秘钥的秘钥编号发送给各所述区块链节点,每个所述区块链节点建立并保存本节点拥有的临时秘钥分片、所述秘钥编号、所述加密后的访问结构树以及所述加密数据之间的映射关系。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
对于所述待上链存证的数据,重新构造对该笔数据具有访问权限的用户属性;
根据所述重新构造的对该笔数据具有访问权限的用户属性,对所述访问结构树进行更新,得到新的访问结构树;
根据所述新的访问结构树,对该笔数据执行属性基加密,得到该笔数据所对应的新的加密数据;
利用临时秘钥对隐藏了部分信息的所述新的访问结构树进行加密,得到新的加密后的访问结构树;
将所述新的加密数据以及所述新的加密后的访问结构树发送给所述区块链节点,所述区块链节点用于对所述新的加密后的访问结构树以及所述新的加密数据进行存证。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
将重新构造的用户属性分发给具有访问权限的各数据使用端,其中,每个所述数据使用端收到至少一种所述用户属性。
9.一种数据查询方法,其特征在于,包括:
向区块链节点发送数据查询请求,所述区块链节点对请求查询的加密数据发起共识,在共识过程中根据本节点保存的与所述加密数据所对应的临时秘钥分片与其他区块链节点之间进行秘密共享,对所述加密数据所对应的加密后的访问结构树进行解密,得到隐藏了部分信息的访问结构树;
获取所述区块链节点发送的经过共识后的加密数据以及所述隐藏了部分信息的访问结构树;
若本地拥有的用户属性命中所述隐藏了部分信息的访问结构树中的至少一种访问控制策略,则根据本地拥有的用户属性,求解得到完整的访问结构树;
根据所述完整的访问结构树对所述加密数据执行属性基解密,得到所述加密数据所对应的原始数据。
10.根据权利要求9所述的方法,其特征在于,所述访问结构树是根据对所述原始数据具有访问权限的用户属性构建的,所述用户属性包括属性编号以及属性值;
所述隐藏了部分信息的访问结构树中删除了各节点的属性值。
11.根据权利要求10所述的方法,其特征在于,所述若本地拥有的用户属性命中所述隐藏了部分信息的访问结构树中的至少一种访问控制策略,则根据本地拥有的用户属性,求解得到完整的访问结构树包括:
若本地拥有的用户属性命中所述隐藏了部分信息的访问结构树中的至少一种访问控制策略,则根据本地拥有的用户属性,利用多项式插值法求解所述访问结构树中各节点的属性值,得到完整的访问结构树。
12.根据权利要求9所述的方法,其特征在于,所述方法还包括:
获取并保存分发给本地的用户属性。
13.一种数据管理装置,其特征在于,包括:
第一构建模块,用于对于一笔待上链存证的数据,根据对该笔数据具有访问权限的用户属性,构建访问结构树;
第一加密模块,用于根据所述访问结构树,对该笔待上链存证的数据执行属性基加密,得到该笔数据所对应的加密数据;
第二加密模块,用于利用临时秘钥对隐藏了部分信息的所述访问结构树进行加密,得到加密后的访问结构树;
共享模块,用于将所述临时秘钥通过秘密共享技术共享给区块链节点,每个所述区块链节点具有所述临时秘钥的一个分片;
发送模块,用于将所述加密数据以及所述加密后的访问结构树发送给所述区块链节点,其中,所述区块链节点用于对所述加密后的访问结构树以及所述加密数据进行存证。
14.一种数据查询装置,其特征在于,包括:
发送模块,用于向区块链节点发送数据查询请求,所述区块链节点对请求查询的加密数据发起共识,在共识过程中根据本节点保存的与所述加密数据所对应的临时秘钥分片与其他区块链节点之间进行秘密共享,对所述加密数据所对应的加密后的访问结构树进行解密,得到隐藏了部分信息的访问结构树;
获取模块,用于获取所述区块链节点发送的经过共识后的加密数据以及所述隐藏了部分信息的访问结构树;
求解模块,用于若本地拥有的用户属性命中所述隐藏了部分信息的访问结构树中的至少一种访问控制策略,则根据本地拥有的用户属性,求解得到完整的访问结构树;
解密模块,用于根据所述完整的访问结构树对所述加密数据执行属性基解密,得到所述加密数据所对应的原始数据。
15.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8或权利要求9至12任一项所述方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8或权利要求9至12任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310217258.6A CN116204923A (zh) | 2023-03-08 | 2023-03-08 | 数据管理、数据查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310217258.6A CN116204923A (zh) | 2023-03-08 | 2023-03-08 | 数据管理、数据查询方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116204923A true CN116204923A (zh) | 2023-06-02 |
Family
ID=86511045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310217258.6A Pending CN116204923A (zh) | 2023-03-08 | 2023-03-08 | 数据管理、数据查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116204923A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116910788A (zh) * | 2023-08-15 | 2023-10-20 | 广州粤建三和软件股份有限公司 | 一种业务数据的可搜索加密管理方法、装置及存储介质 |
CN117407849A (zh) * | 2023-12-14 | 2024-01-16 | 四川省电子产品监督检验所 | 一种基于工业互联网技术的工业数据安全保护方法及*** |
-
2023
- 2023-03-08 CN CN202310217258.6A patent/CN116204923A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116910788A (zh) * | 2023-08-15 | 2023-10-20 | 广州粤建三和软件股份有限公司 | 一种业务数据的可搜索加密管理方法、装置及存储介质 |
CN116910788B (zh) * | 2023-08-15 | 2024-06-11 | 广州粤建三和软件股份有限公司 | 一种业务数据的可搜索加密管理方法、装置及存储介质 |
CN117407849A (zh) * | 2023-12-14 | 2024-01-16 | 四川省电子产品监督检验所 | 一种基于工业互联网技术的工业数据安全保护方法及*** |
CN117407849B (zh) * | 2023-12-14 | 2024-02-23 | 四川省电子产品监督检验所 | 一种基于工业互联网技术的工业数据安全保护方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144961B (zh) | 授权文件共享方法及装置 | |
CN108462568B (zh) | 一种基于区块链的安全文件存储和共享方法、云存储*** | |
CN111130757B (zh) | 一种基于区块链的多云cp-abe访问控制方法 | |
CN112019591B (zh) | 一种基于区块链的云数据共享方法 | |
CN110033258B (zh) | 基于区块链的业务数据加密方法及装置 | |
CN114065265B (zh) | 基于区块链技术的细粒度云存储访问控制方法、***及设备 | |
Premkamal et al. | A new verifiable outsourced ciphertext-policy attribute based encryption for big data privacy and access control in cloud | |
US20190065764A1 (en) | Secret Data Access Control Systems and Methods | |
CN109768987A (zh) | 一种基于区块链的数据文件安全隐私存储和分享方法 | |
CN111371561A (zh) | 基于cp-abe算法的联盟区块链数据访问控制方法 | |
CN114730420A (zh) | 用于生成签名的***和方法 | |
CN109146479B (zh) | 基于区块链的数据加密方法 | |
CN109450843B (zh) | 一种基于区块链的ssl证书管理方法及*** | |
US8806206B2 (en) | Cooperation method and system of hardware secure units, and application device | |
CN116204923A (zh) | 数据管理、数据查询方法及装置 | |
CN113065961A (zh) | 一种电力区块链数据管理*** | |
CN111614680B (zh) | 一种基于cp-abe的可追溯云存储访问控制方法和*** | |
US20160072772A1 (en) | Process for Secure Document Exchange | |
CN115296838B (zh) | 基于区块链的数据共享方法、***及存储介质 | |
CN106326666A (zh) | 一种健康档案信息管理服务*** | |
CN115883214A (zh) | 基于联盟链和cp-abe的电子医疗数据共享***及方法 | |
CN113949541B (zh) | 一种基于属性策略的dds安全通信中间件设计方法 | |
Yan et al. | Traceable and weighted attribute-based encryption scheme in the cloud environment | |
CN107360252B (zh) | 一种异构云域授权的数据安全访问方法 | |
CN115250205B (zh) | 基于联盟链的数据共享方法、***、电子设备及存储介质 |
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 |