CN116484399A - 构建密文范围检索结果完备性验证数据结构的方法及系统 - Google Patents

构建密文范围检索结果完备性验证数据结构的方法及系统 Download PDF

Info

Publication number
CN116484399A
CN116484399A CN202310291313.6A CN202310291313A CN116484399A CN 116484399 A CN116484399 A CN 116484399A CN 202310291313 A CN202310291313 A CN 202310291313A CN 116484399 A CN116484399 A CN 116484399A
Authority
CN
China
Prior art keywords
cube
value
tree
record
data set
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
Application number
CN202310291313.6A
Other languages
English (en)
Inventor
王肇康
潘佳辉
周璐
季曹枞
张仲辉
宋雨欣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Aeronautics and Astronautics
Original Assignee
Nanjing University of Aeronautics and Astronautics
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing University of Aeronautics and Astronautics filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN202310291313.6A priority Critical patent/CN116484399A/zh
Publication of CN116484399A publication Critical patent/CN116484399A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种构建密文范围检索结果完备性验证数据结构的方法及系统,根据采样的数据记录计算各可检索维度的分位数数组;利用分位数数组将数据记录的取值范围归一化到[0,1]的区间;计算立方体编码系统所需的层次数;利用立方体编码系统将数据记录分配到不同的立方体单元中,对属于同一立方体单元的记录利用密钥进行加密,生成立方格索引;构建基于多叉树结构的验证数据结构,以立方格索引中的每个立方格作为多叉树的叶节点,以自底向上的方式逐层构建多叉树,形成完整的验证数据结构。以较小的计算与存储开销构建出能用于密文范围检索结果完备性验证所需的验证数据结构,解决现有方法计算开销过高、难以处理大规模数据集的问题。

Description

构建密文范围检索结果完备性验证数据结构的方法及系统
技术领域
本发明涉及数据库安全技术领域,尤其是一种构建密文范围检索结果完备性验证数据结构的方法及系统。
背景技术
随着计算技术的快速发展,现实生活中的企业和机构积累了大量数据,但企业和机构自身维护的数据中心的计算能力和数据存储空间限制了对海量数据的共享和利用,且数据中心的维护成本高昂。云计算作为一种新的计算范例,可以有效降低IT服务维护成本,因此越来越多的企业或机构选择将本地数据外包给云服务提供商提供的各类服务(例如云数据库服务),以获得更加高效、专业、低成本的数据服务。
但是将数据外包给云服务提供商,可能带来敏感信息泄漏或数据被篡改的安全风险。云服务提供商因为在开放互联网环境下提供服务,其存在被攻击而泄漏敏感数据的风险。同时,云服务提供商并不完全可信。黑客或内部恶意员工可能攻击并篡改云数据库中的数据以获取非法利益。而且云数据库软件本身可能存在缺陷,导致特定查询不能被正确执行而产生错误结果。
对于数据敏感的关键应用数据安全性与查询结果的正确性是至关重要的。在应用中,必须保证云端数据查询结果的真实可信且未经篡改,错误或被篡改的查询结果将带来严重的经济损失。
基于证明的检索完整性验证(Proof-based Query Integrity Authentication)框架是验证外包云数据库检索结果正确性与完备性的一种有效方法。该框架由数据所有者(Data Owner)、服务提供商(Service Provider)和客户(Client)三方构成,如图1所示。
服务提供商根据客户发送的密文100%范围查询请求,在密文数据索引上执行查询获得密文查询结果R。服务提供商根据密文查询结果R和验证数据结构,为密文查询结果生成完备性证明π,服务提供商同时将密文查询结果与完备性证明返回给客户。
客户获取到密文查询结果与完备性证明之后,根据数据所有者提供的密钥sk对密文查询结果进行解密,获得明文查询结果。客户端根据验证数据结构的密码学摘要、完备性验证证明、密钥sk′,利用完备性验证算法对明文查询结果进行完备性校验。如果校验通过,说明明文查询结果是正确且完备的(即数据集中没有任何符合查询条件的数据记录被遗漏),并且明文查询结果中的记录没有被篡改。验证数据结构的生成算法与完备性验证算法保证了任何对云端数据集、验证数据结构或密文、明文查询结果的篡改均能被检测出来,而无法通过完备性校验。
目前采用基于证明的检索完整性验证框架的方法,按照验证数据结构的构造特征划分,可以分为基于Merkle哈希树(Devanbu P,Gertz M,Martel C,et al.Authentic datapublication over the Internet[J].Journal of Computer Security,2002,11(3):291-314.)、基于Merkle B-Tree(Yin Y,Papadias D,Papadopoulos S,et al.Authenticatedjoin processing in outsourced databases[C]//ACM SIGMOD InternationalConference on Management of Data.ACM,2009.)等树结构的方法,基于密码学聚合签名的方法(Mykletun E,Narasimha M,Tsudik G.Authentication and integrity inoutsourced databases[J].ACM Transactions on Storage,2006,2(2):107-138.),基于密码学累加器的方法(Zhang Y,Katz J,Papamanthou C.IntegriDB:Verifiable SQL foroutsourced databases[C]//Proceedings of the 22nd ACM SIGSAC Conference onComputer and Communications Security.2015:1480-1491.)等。然而前述方法均假设数据集是明文数据集或仅经过保序加密,在这些方法中服务提供商(通常是云数据库)可以获知数据集的明文记录或数据记录之间的顺序信息,暴露了相关数据的隐私。
为了保护数据隐私,Wu等人提出了一种支持密文数据范围检索结果完备性验证的验证数据结构SVETree以及相应的原型系统ServeDB(WU S,LI Q,LI G,et al.ServeDB:Secure,Verifiable,and Efficient Range Queries on Outsourced Database[C/OL]//2019IEEE 35th International Conference on Data Engineering(ICDE).2019:626-637.DOI:10.1109/ICDE.2019.00062.)。但验证数据结构SVETree构造过程的计算与存储开销高昂,导致其难以处理亿级规模的大规模数据集。SVETree构造过程的时间与存储开销受数据记录在值域空间中的分布的影响。当数据记录在值域空间中分布不均匀时,即少部分记录集中在小片区域中,SVETree会采用更多的立方体编码层次数来缩小立方体的规模,这会导致SVETree结构的计算与存储开销显著增长。同时,验证数据结构SVETree会为每一条数据记录生成一个叶节点,当数据集包含的数据记录为亿级规模时,SVETree结构包含的树顶点数量也是亿级规模,SVETree结构为每个树顶点计算相应的布隆过滤器(BloomFilter)会带来大量的计算开销,导致构造SVETree结构的所需时间过长。
因此,现有支持密文数据的范围检索结果完备性验证的方法,存在着验证数据结构的构造过程的计算与存储开销高昂的缺陷。目前尚缺乏一种高效的支持亿级规模数据集的密文范围检索结果完备性验证的方法。
发明内容
发明目的:本发明的目的是提供一种构建密文范围检索结果完备性验证数据结构的方法及系统,支持大规模数据集上的密文范围检索结果的完备性验证,同时降低验证数据结构的构造计算开销。
技术方案:本发明提供了一种构建密文范围检索结果完备性验证数据结构的方法及系统,包含以下步骤:
(1)从数据集所有者处获取数据集,对数据集中的每条记录赋予唯一且不重复的编号;
(2)获取数据集中每个可检索维度取值的全局最大值和全局最小值,从数据集中采样部分数据记录构成采样数据集,根据采样数据集在各可检索维度上的取值以及该维度的全局最大值和全局最小值,计算各可检索维度的分位数数组,分位数数组包含了可搜索维度中的多个分位数;
(3)对于数据集中的每条记录,将记录各维度的取值x归一化到[0,1]范围之间;对于记录的每一个可检索维度的取值x,根据相应维度的分位数数组,计算x所处于的分位数区间,如果x的取值在分位数数组中a%分位数与b%分位数范围之间,则将x归一化到[a/100%,b/100%]范围之间,并用归一化后的值替换取值x,从而得到归一化数据集;
(4)根据归一化数据集,通过迭代搜索合适的立方体编码系统层次数L,在第L轮迭代中,将整个数据值域空间平均划分为2dL个立方体单元,其中d是数据集可检索维度数量;根据立方体单元取值范围与归一化的数据记录取值的包含关系,将数据记录分配到相应的立方体单元中;如果立方体单元所包含记录数量的最大值小于等于指定阈值,则迭代过程停止,此时的迭代轮数即为立方体编码系统层次数;
(5)对于归一化数据集中的每一条记录,根据该记录在各个立方体层次上所属的立方体单元,生成立方体编码集合;
(6)对归一化数据集中的数据记录按该数据记录在最后一个立方体层次的立方体编码进行分组,将具有相同立方体编码的记录分为一组,为每一组记录构造立方格,记录的立方体编码构成立方格的键,每一组的记录内容构成立方格的值,对立方格的值进行加密,形成加密的立方格索引;
(7)根据加密的立方格索引,构造k叉树结构,k为任意大于等于2的正整数,k叉树中的每个节点有至多k个子节点,k叉树的叶节点数量与立方格数量相同,每一个叶节点对应一个不同的立方格;
(8)为k叉树的每个树节点附加一个布隆过滤器,对于每个树节点,将该树节点所覆盖的叶节点对应的立方格的所有立方体编码插入到布隆过滤器中;
(9)为k叉树中的每个树节点生成节点哈希签名,节点哈希签名与该树节点的布隆过滤器的内容、该树节点的所有子节点的节点哈希签名有关;
(10)加密的立方格索引、k叉树和立方体编码系统层次数共同构成了该数据集的用于密文范围检索结果完备性验证的验证数据结构,将验证数据结构上传至云数据库;同时将验证数据结构的摘要信息共享至客户,客户进行校验及查询。
进一步的,步骤(3)中在将一条记录进行归一化时,对于该记录的每一个可检索维度的取值x,在该维度的分位数数组q中查找满足条件q[y]≤x≤q[y+1]的最小数组下标y,计算下标y在分位数数组中对应的分位数为和/>其中|q|是分位数数组q包含的元素数量,根据公式/>计算x的归一化值norm(x),归一化后的值norm(x)的取值范围在[0,1]之间。
进一步的,步骤(5)中为记录生成立方体编码时,为每个立方体层次中的所有立方体生成唯一的编号,记录的立方体编码与立方体层次数以及记录在该层次所属的立方体编号相关。
进一步的,步骤(7)中构造k叉树的过程采用自底层,即叶节点所在层向上逐层构造的方式,对于某一层的树节点,以k个为一组分组,为每组节点创建一个新的树节点,这组节点均是新创建的树节点的子节点,逐层构造树节点直到某一层中只有一个树节点为止。
本发明对应提供一种构建密文范围检索结果完备性验证数据结构的系统,包含多维数据集模块、归一化模块、迭代搜索模块、加密模块、构建验证数据结构模块;
多维数据集模块用以从数据集所有者处获取数据集,并从数据集中进行采样形成采样数据集,根据采样数据集计算各可检索维度的分位数数组;
归一化模块用以利用分位数数组将数据记录的取值范围归一化到[0,1]范围之间;
迭代搜索模块用以通过迭代搜索合适的立方体编码系统层次数;
加密模块用以通过立方体编码系统讲数据记录分配到不同的立方体单元中,并对属于同一立方体单元的记录利用密钥进行加密,生成立方格索引;
构建验证数据结构模块用以根据立方格索引中的每个立方格作为多叉树的树节点,自底向上逐层构建多叉树,形成完整的验证数据结构。
有益效果:本发明与现有技术相比,其显著优点是:通过对数据记录的值进行归一化的过程使得数据记录在值域空间中的分布更加均衡,从而降低立方体编码系统的层次数,并使得树节点布隆过滤器所需要被插入的编码数量降低,最终使得构造过程中的计算开销与计算功耗降低。同时,通过允许以k叉树作为验证数据结构的基础结构,相比采用平衡二叉树的SVETree验证数据结构,当k=4时,本发明所述方法产生的k叉树的高度,即树节点的层次数仅为平衡二叉树的一半,能够减少构造过程中接近50%的计算开销。根据立方体单元创建k叉树的叶节点,叶节点数量与立方体单元的数量相同,通过选取合适的立方体单元所包含记录数量的最大值阈值,立方体单元的数量可显著低于数据集中的记录数量,从而使k叉树的树节点数量低于SVETree验证结构中平衡二叉树的树节点数量,大幅降低验证数据结构构造的计算开销与存储开销,为计算功耗的降低提供了支持。
附图说明
图1是现有技术中检索完整性验证框架的交互流程图;
图2是现有技术中示例数据集;
图3是现有技术中示例数据集下数据记录在值域空间的分布图;
图4是本发明中归一化后示例数据集;
图5是本发明中归一化后示例数据集下数据记录在值域空间的分布图;
图6是本发明中归一化示例数据集构造的四叉树结构示意图;
图7是本发明与现有技术构造验证数据结构耗时比较图;
图8是本发明构建密文范围检索结果完备性验证数据结构的流程图。
具体实施方式
以下结合附图对本发明的具体实施方式进行说明。
实施例
本发明提供的一种构建密文范围检索结果完备性验证数据结构的方法,降低了验证数据结构构造过程的计算开销与空间开销,解决了现有方法在处理大规模数据集时计算时间与空间开销高昂所带来的性能问题。请参阅图3所示,以图3中现有技术下,数据集D以及该数据集记录在二维值域空间内的分布情况为例,该数据集包含10条记录,每条记录有两个可检索维度x和y。系统超参数设置为采样率r=0.7、分位数数量Q=5、树节点宽度k=4、每个立方体单元包含记录数最大值阈值u=2、立方体编码系统的最大层数l=25。
请参阅图8所示,本发明所述的构建密文范围检索结果完备性验证数据结构的方法,包含以下步骤:
(1)从数据所有者处获取数据集,对数据集中的每条记录赋予唯一且不重复的编号。
对数据集中的记录从0开始连续编号;该数据集共有10条记录,依次从0编号到9,编号结果如图2所示。
(2)获取数据集中每个可检索维度取值的全局最大值和全局最小值,从数据集中采样部分数据记录构成采样数据集,根据采样数据集在各可检索维度上的取值以及该维度的全局最大值和全局最小值,计算各可检索维度的分位数数组,分位数数组包含了可搜索维度中的多个分位数。
遍历数据集中的每条记录,获得示例数据集在每个可检索维度上的最小值是<1,10>(其中维度x的最小值是min1=1、y的最小值是min2=10),两个可检索维度的最大值是<19,170>(其中维度x的最大值max1=19、维度y的最大值max2=170)。
根据采样率r=0.7对数据集中的记录进行随机采样;因为数据集包含10条记录,所以随机采样出7条数据记录,在本例中假设编号为0、1、2、3、4、6、9的记录被采样,构成采样数据集D′,采样数据集包含的记录在图2中以灰色底色标出。
对于可检索维度x,获取采样数据集中维度x上的取值,形成该维度的值数组Vx=[6.5,7.5,6,7,8,12,16],并将该维度的最小值1和最大值19加入到Vx中,使Vx=[6.5,7.5,6,7,8,12,16,1,19];对于可检索维度y,根据采样数据集在该维度上的取值,形成该维度的值数组Vy=[140,145,120,110,125,70,30],将该维度的最小值10和最大值170加入到值数组中,使Vy=[140,145,120,110,125,70,30,10,170]。
对每个维度的值数组Vi中的所有元素按照递增顺序进行排序;获取值数组包含的元素数量N,根据分位数数量参数Q,从值数组Vi的第1个元素开始选取,每隔个元素选取一次,直到选取到值数组Vi的最后一个元素;值数组Vi中被选取到的元素构成了该维度的分位数数组qi;如果值数组的最后一个元素不在分位数数组中,则将值数组的最后一个元素添加到分位数数组的最后。
对于可检索维度x,对该维度值数组Vx中的所有元素按照递增顺序进行排序,得到Vx=[1,6,6.5,7,7.5,8,12,16,19],值数组包含的元素数量N=9,根据系统超参数Q=5,从值数组Vx的第一个元素开始选取,每隔个元素(即2个元素)选取一次,直到选取到最后一个元素,依次选取值数组中第1、3、5、7、9个元素(即1、6.5、7.5、12、19),值数组Vx中被选取到的元素构成了分位数数组qx=[1,6.5,7.5,12,19];对于可检索维度y,对值数组Vy中的所有元素按照递增顺序进行排序,得到Vy=[10,30,70,110,120,125,140,145,170],值数组Vy包含的元素数量N=9,根据系统超参数Q=5,每个2个元素选取一次。选取Vy中第1、3、5、7、9个元素,被选取到的元素构成了该维度的分位数数组qy=[10,70,120,140,170]。
(3)对于数据集中的每条记录,将记录各维度的取值x归一化到[0,1]范围之间;对于记录的每一个可检索维度的取值x,根据相应维度的分位数数组,计算x所处于的分位数区间,如果x的取值在分位数数组中a%分位数与b%分位数范围之间,则将x归一化到[a/100%,b/100%]范围之间,并用归一化后的值替换取值x,从而得到归一化数据集。
在将一条记录进行归一化时,对于该记录的每一个可检索维度的取值x,在该维度的分位数数组q中查找满足条件q[y]≤x≤q[y+1]的最小数组下标y,计算下标y在分位数数组中对应的分位数为和/>其中|q|是分位数数组q包含的元素数量,根据公式/>计算x的归一化值norm(x),归一化后的值norm(x)的取值范围在[0,1]之间。
对于数据集中每一个记录的处理过程是相同的,下面以编号为0的记录为例说明;对于该记录的可检索维度x的取值6.5,在分位数数组qx中查找出符合条件qx[y]≤6.5≤qx[y+1]的最小的数组下标y为1,对应qx[1]为6.5和qx[2]为7.5,计算分位数数组中对应的分位数是根据以下公式计算可检索维度x的取值6.5归一化值/> 用归一化的值0.25替换数据记录中的原取值6.5;对于该记录的可检索维度y的取值140,在分位数数组中查找出符合条件的最小数组下标y=3,计算所得分位数a=75%、b=100%,根据公式计算出归一化值使用0.75替换原记录中可检索维度y的取值;经过步骤(6)之后,编号为0的记录在维度x和y的取值分别是0.25和0.75;图2中所示示例数据集的所有记录经过本步骤的操作之后,得到的归一化数据集,如图4所示。请参阅图5所示,归一化数据集的数据记录在值域空间中的分布情况更加均匀。
(4)根据归一化数据集,通过迭代搜索合适的立方体编码系统层次数L,在第L轮迭代中,将整个数据值域空间平均划分为2dL个立方体单元,其中d是数据集可检索维度数量;根据立方体单元取值范围与归一化的数据记录取值的包含关系,将数据记录分配到相应的立方体单元中;如果立方体单元所包含记录数量的最大值小于等于指定阈值,则迭代过程停止,此时的迭代轮数即为立方体编码系统层次数。
根据图3中所示的归一化数据集,第一轮迭代过程从层次数L=1开始,迭代搜索合适的立方体编码层次数;对于第一轮迭代,L的值为1,将每个可检索维度在[0,1]的区间上平均划分为2个子区间,其中第一个子区间覆盖[0,0.5)范围,第二个子区间覆盖[0.5,1.0]范围,数据集的两个可检索维度(d=2)的子区间将整个数据值域空间平均划分为4个立方体单元,其中第一个立方体单元覆盖了维度x的子区间[0,0.5)与维度y的子区间[0,0.5),第二个立方体单元覆盖了维度x的子区间[0.5,1.0]和维度y的子区间[0,0.5),第三个立方体单元覆盖了维度x的子区间[0,0.5)和维度y的子区间[0.5,1.0],第四个立方体单元覆盖了维度x的子区间[0.5,1.0]和维度y的子区间[0.5,1.0];将归一化之后的数据集中的每一条记录,按照各可检索维度的取值分配到对应的立方体单元中,以编号为0的记录为例,该记录在维度x和y的取值分别是0.25和0.75,其落入第三个立方体单元所覆盖的子区间,因此该记录将被分配到第三个立方体单元中;统计所有立方体单元被分配到的记录数量,本实施例中第一个立方体单元被分配到2条记录、第二个立方体单元被分配到3条记录、第三个立方体单元被分配到2条记录、第四个立方体单元被分配到3条记录,因此最大值X=3;比较X(本实施例中为3)和每个立方体单元包含记录数最大值阈值u(本实施例中为2),因为X>u,不满足迭代停止条件。
第二轮迭代中层次数L=2,将每个可检索维度在[0,1]的区间上平均划分为4个子区间,4个子区间所覆盖的范围分别是[0,0.25)、[0.25,0.5)、[0.5,0.75)、[0.75,1.0];两个可检索维度将值域空间平均划分为16个立方体单元,如图5所示;将归一化数据集的数据记录分配到各立方体单元中,统计每个立方体单元中被分配到的记录数量,获得的最大值X=2;比较最大值X和每个立方体单元包含记录数最大值阈值u,因为X≤u,满足迭代停止条件,迭代停止;将迭代停止时的层次数L=2作为立方体编码系统的层次数参数附加在验证数据结构中。
(5)对于归一化数据集中的每一条记录,根据该记录在各个立方体层次上所属的立方体单元,生成立方体编码集合。
为层次i中的所有立方体单元赋予一个从0到2di-1之间的序号(其中d是可检索维度数量),序号赋予方法对所有记录保持一致。根据记录r在各可检索维度上的取值,计算出该记录在各层次i中所对应的立方体单元,根据立方体单元的序号I,利用密钥sk′计算哈希函数值HMAC(sk′,i||I)(其中||是拼接操作符),该哈希函数值即为记录r在立方体层次i中的相应的立方体编码cr,i
对于归一化数据集中的每条记录生成立方体编码集合的方式是相同,下面以编号为0的记录(简称记录0)的生成过程为例说明;对立方体层次1中的所有立方体单元赋予从0到3之间的序号,该序号根据步骤(4)中所述的立方体单元的枚举顺序确定,记录0在立方体层次1中属于第三个立方体,因此立方体单元的序号I=2,利用密钥sk′计算哈希函数值HMAC(sk′,1||2),哈希函数值即为记录0在立方体层次1的立方体编码c0,1;为立方体层次2中的所有立方体单元赋予从0到15之间的序号,记录0在立方体层次2中所属立方体单元的序号I=13,因此采用哈希函数值HMAC(sk′,2||13)作为记录0在立方体层次2的立方体编码c0,2;根据两个层次的立方体编码,记录0的立方体编码集合是{HMAC(sk′,1||2),HMAC(sk′,2||13)}。
(6)对归一化数据集中的数据记录按该数据记录在最后一个立方体层次的立方体编码进行分组,将具有相同立方体编码的记录分为一组,为每一组记录构造立方格,记录的立方体编码构成立方格的键,每一组的记录内容构成立方格的值,对立方格的值进行加密,形成加密的立方格索引。
立方格索引由若干立方格(Cube Cell)构成,立方格是一个键值对,分组中任一记录的立方体编码集合构成了该键值对的键(Key)部分,属于该分组的所有记录的内容构成了键值对的值(Value)部分,键值对的值部分利用密钥sk加密,形成加密后的立方格;所有加密后的立方格构成了加密的立方格索引;每一个立方格均对应立方体编码层次L中的一个立方体单元,而每个立方体单元又对应数据值域空间中的一片连续区域,所有属于同一立方格的记录在值域空间内互相靠近。
因为立方体层次数L等于2,因此根据归一化数据集记录在立方体编码层次2上对应的立方体编码进行分组,具有相同立方体编码的记录分配到同一组,在本例中编号为8、9的两条记录同属于一个分组,其他记录各自属于独立的分组,一共9个分组;以编号为8、9的两条记录所属的分组为例,该分组对应一个立方格,该立方格是一个键值对,键部分是编号为8的记录的立方体编码集合{HMAC(sk′,1||1),HMAC(sk′,2||3)},值部分是编号为8、9的两条记录内容(在本例中即为记录编号与两个维度x和y的取值);键值对的值部分用密钥sk配合AES256算法进行加密,从而形成加密后的立方格;本实施例中的所有9个加密后的立方格构成立方格索引,将9个立方格进行从0到8连续编号,本例中包含编号为8、9两条记录的立方格的编号是1。
(7)根据加密的立方格索引,构造k叉树结构,k为任意大于等于2的正整数,k叉树中的每个节点有至多k个子节点,k叉树的叶节点数量与立方格数量相同,每一个叶节点对应一个不同的立方格。
在本实施例中,树节点宽度超参数k=4,因此本步骤构建四叉树,立方格索引中的9个立方格对应四叉树的9个叶节点,如图6中所示四叉树中编号为0到8的树节点即为叶节点,每个叶节点对应一个立方格索引中的立方格,其中编号为1的叶节点对应于编号为1的立方格;从叶节点所在树层次1(最底层)出发,对于最该层中的9个树节点,以4个节点为一组进行分组,其中编号为0到3的树节点分为一组(简称树节点0到树节点3的分组)、编号为4到7的树节点分为另一组,编号为8的树节点单独一组;在本实施例中为树节点0到树节点3的分组创建一个新的树节点,新的树节点的编号为9(简称树节点9),树节点0到树节点3均是新创建的树节点9的子节点;为其他两个分组创建树节点10和树节点11;编号为9、10、11的树节点构成了树层次2;再从树层次2出发,以4个节点为一组进行分组,共得到一个分组,为该分组创建一个编号为12的树节点,构成树层次3;因为树层次3只包含1个树节点,停止四叉树的构造过程;此时编号为12的树节点即为四叉树的根节点。
(8)为k叉树的每个树节点附加一个布隆过滤器(Bloom Filter),对于每个树节点,将该树节点所覆盖的叶节点对应的立方格的所有立方体编码插入到布隆过滤器中。
对于k叉树中的每个树节点N,递归搜索该树节点的所有子孙节点,并提取出子孙节点中的所有叶节点,这些叶节点即为被树节点N所覆盖的叶节点;对于被树节点N所覆盖的每一个叶节点,将叶节点对应的立方格的立方体编码集合(即立方体格键值对的键部分)中的所有编码插入到树节点的Bloom Filter中。
请参阅图6所示,四叉树的每个树节点附加一个布隆过滤器;向每个树节点的布隆过滤器中插入立方体编码的过程相同,下面以编号为9的树节点(简称树节点9)为例说明;树节点9的所有子孙节点包括编号为0到3的四个树节点;因为这四个子孙节点均为叶节点,因此这些节点是被树节点9所覆盖的叶节点;对于被树节点9所覆盖的每一个叶节点的插入过程类似,下面以插入编号为1的叶节点的过程为例说明,将该叶节点对应的立方格(即编号为1的立方格)的立方体编码集合{HMAC(sk′,1||1),HMAC(sk′,2||3)}中的两个编码HMAC(sk′,1||1)与HMAC(sk′,2||3)插入到树节点9的布隆过滤器中。
(9)为k叉树中的每个树节点生成节点哈希签名,节点哈希签名与该树节点的布隆过滤器的内容、该树节点的所有子节点的节点哈希签名有关。
利用HMAC机制根据树节点的Bloom Filter的内容BL以及密钥sk′生成BloomFilter的哈希签名sigBL=HMAC(sk′,BL);再次应用HMAC机制,根据树节点的Bloom Filter的哈希签名sigBL、树节点的所有子节点的节点哈希签名、密钥sk′生成当前树节点的节点哈希签名sigN=HMAC(sk′,sigBL||sigC1||sigC2||…||sigCk),其中||是拼接操作符,sigC1、sigC2、…、sigCk是该树节点的k个子节点的节点哈希签名。
对每个树节点附加节点哈希签名的方式相同,下面以编号为9的树节点(简称树节点9)的生成过程为例说明;将树节点9的布隆过滤器中的比特数组当作布隆过滤器的内容BL,根据密钥sk′,利用HMAC机制计算哈希值HMAC(sk′,BL),该哈希值存储为布隆过滤器的哈希签名sigBL;根据sigBL以及树节点9的四个子节点(即编号为0到3的树节点)的节点哈希签名sig0、sig1、sig2、sig3,计算公式sig9=HMAC(sk′,sigBL||sig0||sig1||sig2||sig3),sig9即为树节点9的节点哈希签名,其中||是拼接操作。
(10)加密的立方格索引、k叉树和立方体编码系统层次数共同构成了该数据集的用于密文范围检索结果完备性验证的验证数据结构,将验证数据结构上传至云数据库;同时将验证数据结构的摘要信息共享至客户,客户进行校验及查询。
本实施例中获得的加密的立方格索引、四叉树、立方体编码系统层次数L=2构成验证数据结构,这些内容将被存储到文件中并上传给服务提供商(通常是云数据库);四叉树的根节点的节点哈希签名、立方体编码系统层次数L=2、数据集中每个可检索维度的分位数数组qx和qy、密钥sk和sk′将被存储到另一个文件中,通过安全私密的方式传输给客户。
为测试本发明提出的方法的性能,采用Foursquare签到数据集、US Wild Fire事件数据集、Gowalla社交网络签到数据集作为输入,测量了本发明提出的方法构造验证数据结构的构造耗时;作为比较,采用文献“WU S,LI Q,LI G,et al.ServeDB:Secure,Verifiable,and Efficient Range Queries on Outsourced Database[C/OL]//2019IEEE35th International Conference on Data Engineering(ICDE).2019:626-637.”中所述的SVETree验证数据结构的构造方法作为参考方法,同时测量了参考方法的构造耗时。请参阅图7所示,实验结果显示本发明提出的方法的构造耗时显著低于参考方法的构造耗时,能够有效提升验证数据结构的构造效率。

Claims (7)

1.一种构建密文范围检索结果完备性验证数据结构的方法,其特征在于,包含以下步骤:
(1)从数据集所有者处获取数据集,对数据集中的每条记录赋予唯一且不重复的编号;
(2)获取数据集中每个可检索维度取值的全局最大值和全局最小值,从数据集中采样部分数据记录构成采样数据集,根据采样数据集在各可检索维度上的取值以及该维度的全局最大值和全局最小值,计算各可检索维度的分位数数组,分位数数组包含了可搜索维度中的多个分位数;
(3)对于数据集中的每条记录,将记录各维度的取值x归一化到[0,1]范围之间;对于记录的每一个可检索维度的取值x,根据相应维度的分位数数组,计算x所处于的分位数区间,如果x的取值在分位数数组中a%分位数与b%分位数范围之间,则将x归一化到[a/100%,b/100%]范围之间,并用归一化后的值替换取值x,从而得到归一化数据集;
(4)根据归一化数据集,通过迭代搜索合适的立方体编码系统层次数L,在第L轮迭代中,将整个数据值域空间平均划分为2dL个立方体单元,其中d是数据集可检索维度数量;根据立方体单元取值范围与归一化的数据记录取值的包含关系,将数据记录分配到相应的立方体单元中;如果立方体单元所包含记录数量的最大值小于等于指定阈值,则迭代过程停止,此时的迭代轮数即为立方体编码系统层次数;
(5)对于归一化数据集中的每一条记录,根据该记录在各个立方体层次上所属的立方体单元,生成立方体编码集合;
(6)对归一化数据集中的数据记录按该数据记录在最后一个立方体层次的立方体编码进行分组,将具有相同立方体编码的记录分为一组,为每一组记录构造立方格,记录的立方体编码构成立方格的键,每一组的记录内容构成立方格的值,对立方格的值进行加密,形成加密的立方格索引;
(7)根据加密的立方格索引,构造k叉树结构,k为任意大于等于2的正整数,k叉树中的每个节点有至多k个子节点,k叉树的叶节点数量与立方格数量相同,每一个叶节点对应一个不同的立方格;
(8)为k叉树的每个树节点附加一个布隆过滤器,对于每个树节点,将该树节点所覆盖的叶节点对应的立方格的所有立方体编码插入到布隆过滤器中;
(9)为k叉树中的每个树节点生成节点哈希签名,节点哈希签名与该树节点的布隆过滤器的内容、该树节点的所有子节点的节点哈希签名有关;
(10)加密的立方格索引、k叉树和立方体编码系统层次数共同构成了该数据集的用于密文范围检索结果完备性验证的验证数据结构,将该验证数据结构上传至云数据库;同时将验证数据结构的摘要信息共享至客户,客户进行校验及查询。
2.根据权利要求1所述的构建密文范围检索结果完备性验证数据结构的方法,其特征在于,步骤(3)中在将一条记录进行归一化时,对于该记录的每一个可检索维度的取值x,在该维度的分位数数组q中查找满足条件q[y]≤x≤q[y+1]的最小数组下标y,计算下标y在分位数数组中对应的分位数为和/>其中|q|是分位数数组q包含的元素数量,根据公式/>计算x的归一化值norm(x),归一化后的值norm(x)的取值范围在[0,1]之间。
3.根据权利要求1所述的构建密文范围检索结果完备性验证数据结构的方法,其特征在于,步骤(5)中为记录生成立方体编码时,为每个立方体层次中的所有立方体生成唯一的编号,记录的立方体编码与立方体层次数以及记录在该层次所属的立方体编号相关。
4.根据权利要求1所述的构建密文范围检索结果完备性验证数据结构的方法,其特征在于,步骤(7)中构造k叉树的过程采用自底层,即叶节点所在层向上逐层构造的方式,对于某一层的树节点,以k个为一组分组,为每组节点创建一个新的树节点,这组节点均是新创建的树节点的子节点,逐层构造树节点直到某一层中只有一个树节点为止。
5.一种构建密文范围检索结果完备性验证数据结构的系统,其特征在于,包含多维数据集模块、归一化模块、迭代搜索模块、加密模块、构建验证数据结构模块;
多维数据集模块用以从数据集所有者处获取数据集,并从数据集中进行采样形成采样数据集,根据采样数据集计算各可检索维度的分位数数组;
归一化模块用以利用分位数数组将数据记录的取值范围归一化到[0,1]范围之间;
迭代搜索模块用以通过迭代搜索合适的立方体编码系统层次数;
加密模块用以通过立方体编码系统将数据记录分配到不同的立方体单元中,并对属于同一立方体单元的记录利用密钥进行加密,生成立方格索引;
构建验证数据结构模块用以根据立方格索引中的每个立方格作为多叉树的树节点,自底向上逐层构建多叉树,形成完整的验证数据结构。
6.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至权利要求4中任意一项所述方法的步骤。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至权利要求4中任意一项所述的方法的步骤。
CN202310291313.6A 2023-03-23 2023-03-23 构建密文范围检索结果完备性验证数据结构的方法及系统 Pending CN116484399A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310291313.6A CN116484399A (zh) 2023-03-23 2023-03-23 构建密文范围检索结果完备性验证数据结构的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310291313.6A CN116484399A (zh) 2023-03-23 2023-03-23 构建密文范围检索结果完备性验证数据结构的方法及系统

Publications (1)

Publication Number Publication Date
CN116484399A true CN116484399A (zh) 2023-07-25

Family

ID=87211019

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310291313.6A Pending CN116484399A (zh) 2023-03-23 2023-03-23 构建密文范围检索结果完备性验证数据结构的方法及系统

Country Status (1)

Country Link
CN (1) CN116484399A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117494174A (zh) * 2023-12-28 2024-02-02 北京遥感设备研究所 多维数据加密范围查询方法和装置、存储介质及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117494174A (zh) * 2023-12-28 2024-02-02 北京遥感设备研究所 多维数据加密范围查询方法和装置、存储介质及电子设备
CN117494174B (zh) * 2023-12-28 2024-03-29 北京遥感设备研究所 多维数据加密范围查询方法和装置、存储介质及电子设备

Similar Documents

Publication Publication Date Title
US11580321B2 (en) Systems, devices, and methods for machine learning using a distributed framework
Zhu et al. Collaborative integrity verification in hybrid clouds
Ateniese et al. Remote data checking using provable data possession
Zhu et al. Dynamic audit services for integrity verification of outsourced storages in clouds
US20180115428A1 (en) System and method for verification of data transferred among several data storages
Zhu et al. Cooperative provable data possession for integrity verification in multicloud storage
Hu et al. Spatial query integrity with voronoi neighbors
US11283616B2 (en) Method for index-based and integrity-assured search in a blockchain
Li et al. Integrity-verifiable conjunctive keyword searchable encryption in cloud storage
CN111552849B (zh) 可搜索加密方法、系统、存储介质、车载网、智能电网
CN114372296B (zh) 一种基于区块链的用户行为数据审计方法及系统
CN116484399A (zh) 构建密文范围检索结果完备性验证数据结构的方法及系统
He et al. Public integrity auditing for dynamic regenerating code based cloud storage
Dong et al. Prada: Privacy-preserving data-deduplication-as-a-service
Yang et al. MASK: Efficient and privacy-preserving m-tree based biometric identification over cloud
Zhou et al. Evss: An efficient verifiable search scheme over encrypted cloud data
He et al. Enabling decentralized and dynamic data integrity verification for secure cloud storage via T-Merkle hash tree based blockchain
Dang Ensuring correctness, completeness, and freshness for outsourced tree-indexed data
Wang et al. A blockchain-based multi-cloud storage data consistency verification scheme
Du et al. Secure and verifiable keyword search in multiple clouds
Xue et al. Cuckoo-filter based privacy-aware search over encrypted cloud data
Zhu et al. Authentication of Multi-Dimensional Top-$ K $ Query on Untrusted Server
Nagesh et al. Modeling an efficient authentic provable data possession model using legacy filter model for IOT and cloud environment
Gao et al. Similarity-based deduplication and secure auditing in IoT decentralized storage
Chen et al. Adjacency-hash-table based public auditing for data integrity in mobile cloud computing

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