CN113111090B - 基于保序加密的多维数据查询方法 - Google Patents

基于保序加密的多维数据查询方法 Download PDF

Info

Publication number
CN113111090B
CN113111090B CN202110403024.1A CN202110403024A CN113111090B CN 113111090 B CN113111090 B CN 113111090B CN 202110403024 A CN202110403024 A CN 202110403024A CN 113111090 B CN113111090 B CN 113111090B
Authority
CN
China
Prior art keywords
data
query
dimension
user
interval
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
Application number
CN202110403024.1A
Other languages
English (en)
Other versions
CN113111090A (zh
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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN202110403024.1A priority Critical patent/CN113111090B/zh
Publication of CN113111090A publication Critical patent/CN113111090A/zh
Application granted granted Critical
Publication of CN113111090B publication Critical patent/CN113111090B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • 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
    • 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/24Querying
    • G06F16/248Presentation of query results
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms

Landscapes

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

Abstract

本发明公开了一种基于保序加密的多维数据查询方法,主要解决现有保序加密技术仅支持单维范围查询难以应用于实际生产环境,安全性不高及查询效率低下的问题。其实现方案是:数据拥有者生成密钥并共享给用户,利用网状数据结构、B+树及前缀编码技术对数据分量进行预处理,并将数据和预处理后的数据分量加密上传至云服务器;云服务器根据用户提供的查询区间和查询参数,安全快速的确定查询区间的上下限,并将密文结果发送给用户;用户使用密钥解密密文结果获取查询数据。本发明能支持在密文状态下的细粒度多维数据查询,提高了计算效率,减小了存储空间,可用于在查询数据时对用户和数据拥有者的数据保护。

Description

基于保序加密的多维数据查询方法
技术领域
本发明属于信息安全技术领域,更进一步涉及一种保序加密方法,可用于在查询数据时对用户和数据拥有者的数据保护。
背景技术
保序加密是密码学中的一种算法,随着数据外包技术所带来的的巨大优势,数据外包中的隐私安全问题受到越来越多的关注,从日常生活到企业运营,在保护隐私的同时提高数据查询的效率上有着巨大的需求。随着人们对自己隐私数据的安全保护意识的提高以及5G技术的普及,保序加密作为一种支持高效密文检索的手段,存在着良好的应用场景。海量的数据查询必然会产生隐私安全问题,只要将数据外包至第三方云服务器,云服务器就会接触数据拥有者以及用户的信息,如果出现恶意的第三方云服务器便可以轻易获取参与方的隐私数据,从而造成隐私泄露问题并带来巨大的危害。
目前的保序加密主要针对单维数据进行范围查询,与其他的支持范围查询加密方案不同,保序加密不需要去遍历整个密文数据集来筛选数据,而是通过构建保序索引使密文数据与明文数据保持相同的顺序来对密文的查询区间进行高效的定位并提取数据。但是现有的单维数据的保序加密对于实际应用的功能有限,现有的大数据往往是海量且多维的,比如常见的SQL查询Select*From Students Where 18<age<25and 170<height<180and70<weight<80即查找年龄身高和体重都符合要求的学生候选人,如果简单的将单维数据的保序加密应用在多维数据上会出现巨大的通信与计算开销。
Quan Hanyu在其发表的论文Efficient and secure top-k queries with toporder-preserving encryption提出了一个基于top-k查询的保序加密方案,该方案主要通过堆排序来平衡隐私保护与查询效率,与大部分的保序加密方案相比,它可以有效减少top-k查询中的隐私泄露问题,但是由于其使用了堆排序的方法,因此在数据***以及导出top-k查询数据时,由于每次都需要在堆顶提取数据或者***,但是要保证堆顶元素始终是最小或最大就需要在堆中进行大量的比较操作来重新构建节点间的关系,计算效率低下。
Peng Yanguo在其发表的论文hOPE:improved order preserving encryptionwith the power to homomorphic operations of ciphertexts中基于同态加密提出了两个支持同态运算的保序加密方案AhOPE和PhOPE,AhOPE解决了加法同态问题,而 PhOPE解决了乘法同态的问题,这两个方案在满足同态性质的同时也支持密文的比较操作,在具体实现上利用同态加密对数据进行加密再通过双线性对以及代码树的结构来生成比较的索引,但该方法由于使用了全同态加密算法,所以效率不是非常理想,又由于在数据***的时候需要与代码树进行大量交互,且仅支持单维数据的运算,因而在实际应用中会产生大量通信开销,且不符合实际的应用场景。
发明内容
本发明的目的是针对上述现有技术的不足,提出一种支持多维数据范围查询的保序加密方法,以减小计算复杂度,提高查询效率,并实现在密文状态下对多维数据的查询。
本发明的技术思路是,利用前缀编码和布隆过滤器将数据是否在一个范围区间内的问题转化成集合与集合之间是否相交的特性,同时利用网状数据结构构建保序加密网,使用对称加密技术对数据进行加密,将密文状态下的数据上传至第三方云服务器供用户进行查询。用户在生成查询令牌之后只需要上传至第三方云服务器,第三方云服务器根据保序加密网可以非常高效的计算出用户所需要的数据,并且可以保证数据拥有者和用户的隐私数据安全。
本发明采取的技术方法包括如下步骤:
(1)数据拥有者生成两部分密钥sk1,sk2,并将这两部分密钥共享给用户;
(2)数据拥有者对数据按维度拆分并填充得到填充后的结果T(da,b),然后将所有的填充后的数据分量利用网状数据结构的性质分别作为数据的父节点,并利用B+树对已成为父节点的填充后的数据分量进行排序,再将B+树排序后并已成为父节点的填充后的数据分量通过前缀编码进行处理,得到前缀编码集合P(da,b),其中,da,b表示第a个数据的第b维的数据分量,并对B+树排序中生成的***节点数据同样进行前缀编码处理;
(3)数据拥有者对所有数据使用高级加密标准AES加密算法加密,并对所有数据分量和B+树排序中生成的***节点数据的前缀编码集合通过布隆过滤器生成数组;
(4)用户定义查询区间以及查询参数,对查询区间依次进行填充,前缀编码和哈希化处理,随后将哈希化后的查询区间Q*以及查询参数U上传至云服务器;
(5)云服务器根据用户发送的查询区间以及查询参数,确定每一维密文区间下限和上限,随后将下限和上限中间所有数据分量对应的密文数据存入备选结果集,并将密文数据的访问次数加一;
(6)云服务器遍历备选结果集,如果密文数据的访问次数等于用户查询的维数总数,则将该密文数据作为密文结果I*返回给用户,用户对云服务器返回的密文结果进行解密,得到查询结果,否则,继续遍历下一个数据。
本发明与现有技术相比具有以下优点:
第一,本发明利用网状数据结构生成保序索引,使得云服务器可以在密文状态下利用查询区间和查询参数选择具体在哪些维度进行查询,克服了现有技术中存在的保序加密技术仅支持单维范围查询难以应用于实际生产环境的问题,使得本发明能支持在密文状态下的细粒度多维数据查询;
第二,本发明使用布隆过滤器以及前缀编码技术,将密文状态下数据间比较的问题转化成判断布隆过滤器所生成的数组对应的位置是否为1,克服了现有技术保序加密安全性不高及查询效率低下的问题,提高了计算效率,减小了存储空间。
附图说明
图1为本发明的等的实现流程图。
具体实施方式
下面结合附图1,对本发明的实施例作进一步的详细描述。
参照图1,本实例的实现步骤如下:
步骤1,数据拥有者生成两部分密钥,并将这两部分密钥共享给用户。
1.1)数据拥有者选取k个伪随机哈希函数:
hash({0,1}*,h),
其中,{0,1}*代表有限长的一个01比特串,h代表伪随机哈希函数的种子;
1.2)数据拥有者提取伪随机哈希函数的种子作为第一部分密钥sk1
sk1=(h1,h2,…,hi,…,hk),i∈[1,k],
其中,hi表示第i个伪随机哈希函数的种子,k表示伪随机哈希函数的种子数量;
1.3)数据拥有者输入安全参数λ,并利用高级加密标准AES加密方案中的密钥生成算法生成第二部分密钥sk2
sk2=AES.Gen(1λ),
其中,AES.Gen表示AES加密方案的密钥生成算法,1λ表示密钥长度。
步骤2,数据拥有者对所有数据的每一维数据分量进行预处理:
2.1)数据拥有者对n维数据集D={d1,d2,…,da,…dm},a∈[1,m]中每一个数据的每一维数据进行提取操作,其中,da表示第a个数据,m表示数据集D中数据的数量,数据da表示为:
da=(da,1,da,2,…,da,b,…,da,n),b∈[1,n],
其中,da,b表示第a个数据的第b维的数据分量,n表示数据集D中数据的维度的数量;
2.2)数据拥有者利用填充技术对数据集D中数据da的每一个分量,da,b进行填充,得到填充后结果T(da,b)表示为:
T(da,b)=da,b||01||r,
其中,||表示数据间的级联,01表示2比特长的比较参数,r表示与每一维数据分量等长的一个随机数且每一个r都是不同的,D中每一个数据的每一维数据分量均使用l比特表示;
2.3)数据拥有者将经过填充后的数据分量T(da,b)转化为2l+2比特长的二进制表示:
T(da,b)=c1c2…cδ…c2l+1c2l+2,δ∈[1,2l+2],
其中,cδ表示T(da,b)的第δ个比特位,D中每一个数据的每一维数据分量均使用l比特表示,2l+2表示数据分量da,b经过填充后的长度;
2.4)数据拥有者将经过填充后的数据分量T(da,b)的二进制表示从最后一位依次替换成*得到前缀编码集合P(da,b):
P(da,b)={c1c2…cδ…c2l+1c2l+2,c1c2…cδ…c2l+1*,c1c2…cδ…**,…,c1*…*…**,**…*…**}。
步骤3,数据拥有者对所有数据和预处理后的每一维数据分量进行加密。
3.1)数据拥有者将数据d1,d2,…,da,…dm,a∈[1,m]和第一密钥sk1作为高级加密标准AES加密方案中加密算法的输入,得到密文C(da):
C(da)=AES.Enc(da,sk2),
其中,da表示数据集D中的第a个数据,m表示数据集D中数据的数量,AES.Enc 表示AES加密方案的加密算法;
3.2)数据拥有者将每一个数据分量的前缀编码集合P(da,b)进行哈希化处理,得到一系列的哈希值可表示为:
Figure BDA0003021124750000051
其中,fe表示数据分量的前缀编码集合P(da,b)中的第e个元素,hi表示第i个伪随机哈希函数的种子,k表示伪随机哈希函数的种子数量,hash(fe,hi)表示使用第i个伪随机哈希函数种子对前缀编码fe进行哈希化处理后的哈希值,该哈希函数可以将一个有限长的01比特串{0,1}*映射成在区间[1,u]的随机数,其中,u表示布隆过滤器所生成的数组长度;
3.3)数据拥有者在一个比特长u的数组中将H(P(da,b))所有哈希值所对应的位置全部置为1,得到布隆过滤器数组B(P(da,b))。
步骤4,用户生成查询区间以及查询参数。
4.1)用户对查询区间Q=([p1,q1],[p2,q2],…,[pτ,qτ],…,[px,qx]),τ∈[1,x]进行填充,得到填充后的查询区间T(Q):
Figure BDA0003021124750000052
其中,pτ表示用户想要查询的第τ维数据的下限,qτ表示用户想要查询的第τ维数据的上限,x表示用户想要查询的维度的数量,||表示数据间的级联,00和11表示2比特长的比较参数,r表示与每一维上下限等长的一个随机数且每一个r都是不同的,Q中每一维上下限均使用l比特表示;
如果填充后的区间满足某一个数据分量在查询区间的上下限之中,即:
pτ<da,b<qτ且00<01<11,则填充后的数据分量也会在填充后的查询区间的上下限之中,即pτ||00||r<da,b||01||r<qτ||11||r;
4.2)用户对填充后的查询区间T(Q)进行前缀编码:
4.2.1)用区间[pτ||00||r,qτ||11||r]内所有元素的2l+2比特长的二进制表示组成未处理的前缀编码集合P′([pτ,qτ]);
4.2.2)从第一个元素开始遍历集合P′([pτ,qτ]),如果两个连续的元素前v个比特都是相同的,且第v+1比特分别为0和1,则将这两个数据合并成由前v比特与 2l+2-v个*比特级联所形成的新数据,否则,不进行合并,再遍历下一个元素,直到没有可以合并的元素,最终获得每一维查询区间的前缀编码集合:
Figure BDA0003021124750000061
其中,
Figure BDA0003021124750000062
代表第τ个前缀编码集合P([pτ,qτ])中的第eτ个元素,yτ代表前缀编码集合P([pτ,qτ])中元素的数量;
4.3)用户对区间的前缀编码进行哈希化处理,得到一系列的哈希值H(P[pτ,qτ]):
Figure BDA0003021124750000063
其中,
Figure BDA0003021124750000064
hi表示第i个伪随机哈希函数的种子,k表示伪随机哈希函数的种子数量,
Figure BDA0003021124750000065
表示使用第i个伪随机哈希函数种子对前缀编码
Figure BDA0003021124750000066
进行哈希化处理后的哈希值;
4.5)用户对每一维的一系列哈希值进行整合,得到处理后的查询区间Q*
Q*=(H(P([p1,q1])),H(P([p2,q2])),…,H(P([pτ,qτ])),…,H(P([px,qx])));
4.6)用户初始化一个n比特长的比特串,并根据查询区间将比特串对应的比特置为1,即如果想要查询第b维数据就将比特串的第b个比特置为1,再将该比特串记作查询参数U,其中,b∈[1,n],n表示数据集中数据的维数。
步骤5,云服务器根据查询区间和查询参数查询数据,并将结果存入备选结果集:
5.1)云服务器接收用户上传的查询区间Q*与查询参数U,逐比特遍历查询参数U的同时遍历查询区间Q*,如果遍历到U中的第b比特为1,就将Q*中的一个元素发送至第b棵B+树进行查询,每一个Q*中的元素被发送到B+树中进行查询后,下一次U中遍历到1时便依序发送Q*中的下一个元素,否则,继续逐比特遍历查询参数U;
5.2)云服务器在B+树进行查询时,判断查询区间Q*中第b维数据所对应的哈希化查询区间H(P([pτ,qτ]))中是否存在一组哈希值
Figure BDA0003021124750000071
在布隆过滤器数组 B(P(sb,ε))中所有位置都为1,如果是,则去访问该***节点数据所对应的子节点,否则,继续遍历,直到遍历完所有g个***节点数据,其中,g表示每一个根节点或内部节点存储g个布隆过滤器数组:
B(P(sb,1)),B(P(sb,2)),…,B(P(sb,ε)),…,B(P(sb,g)),ε∈[1,g],
sb,ε表示第b棵B+树中根节点或内部节点的第ε个***节点数据,B(P(sb,ε))表示sb,ε所对应的布隆过滤器数组;
5.3)云服务器在B+树中逐个从小到大遍历已访问到的最左边叶子节点中的布隆过滤器数组,直到出现第b维数据所对应的哈希化查询区间H(P([pτ,qτ]))中,存在一组哈希值
Figure BDA0003021124750000072
在某个数据分量所对应的布隆过滤器数组B(P(da,b))中所有位置都为1时,将该数组作为当前维度的查询下限;
5.4)云服务器在B+树中逐个从大到小遍历已访问到的最右边叶子节点中的布隆过滤器数组,直到出现第b维数据所对应的哈希化查询区间H(P([pτ,qτ]))中,存在一组哈希值
Figure BDA0003021124750000073
在某个数据分量所对应的布隆过滤器数组B(P(da,b))中所有位置都为1时,将该数组作为当前维度的查询上限;
5.5)云服务器将下限和上限中间所有数据分量对应的密文数据存入备选结果集,并将密文数据的访问次数加一。
步骤6,云服务器遍历备选结果集并将密文结果返回给用户,用户解密密文结果获取查询结果。
6.1)云服务器遍历备选结果集,如果密文数据的访问次数等于用户查询的维数总数,则将该密文数据作为密文结果I*返回给用户;
6.2)用户将第二密钥sk2和密文结果I*作为高级加密标准AES加密方案中解密算法的输入,得到查询结果I:
I=AES.Dec(I*,sk2),
其中,AES.Dec表示AES加密方案的解密算法。
以上描述仅是本发明的一个具体实例,并未构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解了本发明的内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修改和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。

Claims (8)

1.一种基于保序加密的多维数据查询方法,其特征在于,包括如下:
(1)数据拥有者生成两部分密钥sk1,sk2,并将这两部分密钥共享给用户;
(2)数据拥有者对数据按维度拆分并填充得到填充后的结果T(da,b),然后将所有的填充后的数据分量利用网状数据结构的性质分别作为数据的父节点,并利用B+树对已成为父节点的填充后的数据分量进行排序,再将B+树排序后并已成为父节点的填充后的数据分量通过前缀编码进行处理,得到前缀编码集合P(da,b),其中,da,b表示第a个数据的第b维的数据分量,并对B+树排序中生成的***节点数据同样进行前缀编码处理;
(3)数据拥有者对所有数据使用高级加密标准AES加密算法加密,并对所有数据分量和B+树排序中生成的***节点数据的前缀编码集合通过布隆过滤器生成数组;
(4)用户定义查询区间以及查询参数,对查询区间依次进行填充,前缀编码和哈希化处理,随后将哈希化后的查询区间Q*以及查询参数U上传至云服务器;
(5)云服务器根据用户发送的查询区间以及查询参数,确定每一维密文区间下限和上限,随后将下限和上限中间所有数据分量对应的密文数据存入备选结果集,并将密文数据的访问次数加一;
(6)云服务器遍历备选结果集,如果密文数据的访问次数等于用户查询的维数总数,则将该密文数据作为密文结果I*返回给用户,用户对云服务器返回的密文结果进行解密,得到查询结果,否则,继续遍历下一个数据。
2.根据权利要求1所述的方法,其特征在于,(1)中生成两部分密钥,实现如下:
(1a)数据拥有者选取k个伪随机哈希函数:
hash({0,1}*,h),
其中,{0,1}*代表有限长的一个01比特串,h代表伪随机哈希函数的种子;
(1b)数据拥有者提取伪随机哈希函数的种子作为第一密钥sk1
sk1=(h1,h2,…,hi,…,hk),i∈[1,k],
其中,hi表示第i个伪随机哈希函数的种子,k表示伪随机哈希函数的种子数量;
(1c)数据拥有者输入安全参数λ,并利用高级加密标准AES加密方案中的密钥生成算法生成第二密钥sk2
sk2=AES.Gen(1λ),
其中,AES.Gen表示AES加密方案的密钥生成算法,1λ表示密钥长度。
3.根据权利要求1所述的方法,其特征在于,(2)中对数据按维度拆分并填充,实现如下:
(2a)数据拥有者对n维数据集D={d1,d2,…,da,…dm},a∈[1,m]中每一个数据的每一维数据进行提取操作,其中,da表示第a个数据,m表示数据集D中数据的数量,数据da表示为:
da=(da,1,da,2,…,da,b,…,da,n),b∈[1,n],
其中,da,b表示第a个数据的第b维的数据分量,n表示数据集D中数据的维度的数量;
(2b)数据拥有者利用填充技术对数据集D中数据da的每一个分量,da,b进行填充,得到填充后结果T(da,b)表示为:
T(da,b)=da,b||01||r,
其中,||表示数据间的级联,01表示2比特长的比较参数,r表示与每一维数据分量等长的一个随机数且每一个r都是不同的,D中每一个数据的每一维数据分量均使用l比特表示。
4.根据权利要求1所述的方法,其特征在于,(2)中将B+树排序后并已成为父节点的填充后的数据分量通过前缀编码进行处理,得到前缀编码集合,实现如下:
(2c)数据拥有者将经过填充后的数据分量T(da,b)转化为2l+2比特长的二进制表示:
T(da,b)=c1c2…cδ…c2l+1c2l+2,δ∈[1,2l+2],
其中,cδ表示T(da,b)的第δ个比特位,D中每一个数据的每一维数据分量均使用l比特表示,2l+2表示数据分量da,b经过填充后的长度;
(2d)数据拥有者将经过填充后的数据分量T(da,b)的二进制表示从最后一位依次替换成*得到前缀编码集合P(da,b):
P(da,b)={c1c2…cδ…c2l+1c2l+2,c1c2…cδ…c2l+1*,c1c2…cδ…**,…,c1*…*…**,**…*…**}。
5.根据权利要求1所述的方法,其特征在于,(3)中对所有数据分量和B+树排序中生成的***节点数据的前缀编码集合通过布隆过滤器生成数组,实现如下:
(3a)数据拥有者将每一个数据分量的前缀编码集合P(da,b)进行哈希化处理,得到一系列的哈希值可表示为:
Figure FDA0003021124740000031
其中,fe表示数据分量的前缀编码集合P(da,b)中的第e个元素,hi表示第i个伪随机哈希函数的种子,k表示伪随机哈希函数的种子数量,hash(fe,hi)表示使用第i个伪随机哈希函数种子对前缀编码fe进行哈希化处理后的哈希值,该哈希函数可以将一个有限长的01比特串{0,1}*映射成在区间[1,u]的随机数,其中,u表示布隆过滤器所生成的数组长度;
(3b)数据拥有者在一个比特长u的数组中将H(P(da,b))所有哈希值所对应的位置全部置为1,得到布隆过滤器数组B(P(da,b))。
6.根据权利要求1所述的方法,其特征在于,(4)中用户定义查询区间以及查询参数,对查询区间依次进行填充、前缀编码和哈希化处理,实现如下:
(4a)用户对查询区间Q=([p1,q1],[p2,q2],…,[pτ,qτ],…,[px,qx]),τ∈[1,x]进行填充,得到填充后的查询区间T(Q):
Figure FDA0003021124740000032
其中,pτ表示用户想要查询的第τ维数据的下限,qτ表示用户想要查询的第τ维数据的上限,x表示用户想要查询的维度的数量,||表示数据间的级联,00和11表示2比特长的比较参数,r表示与每一维上下限等长的一个随机数且每一个r都是不同的,Q中每一维上下限均使用l比特表示;
(4b)用户对填充后的查询区间T(Q)进行前缀编码:
(4b1)将区间[pτ||00||r,qτ||11||r]内所有元素的2l+2比特长的二进制表示组成未处理的前缀编码集合P′([pτ,qτ]);
(4b2)从第一个元素开始遍历集合P′([pτ,qτ]),如果两个连续的元素前v个比特都是相同的,且第v+1比特分别为0和1,则将两个数据合并成由前v比特与2l+2-v个*比特级联所形成的新数据,否则,不进行合并,再遍历下一个元素;
(4b3)重复(4b2)直到没有可以合并的元素,获得每一维查询区间的前缀编码集合:
Figure FDA0003021124740000041
其中,
Figure FDA0003021124740000042
代表第τ个前缀编码集合P([pτ,qτ])中的第eτ个元素,yτ代表前缀编码集合P([pτ,qτ])中元素的数量;
(4c)用户对区间的前缀编码进行哈希化处理,得到一系列的哈希值H(P[pτ,qτ]):
Figure FDA0003021124740000043
其中,
Figure FDA0003021124740000044
hi表示第i个伪随机哈希函数的种子,k表示伪随机哈希函数的种子数量,
Figure FDA0003021124740000045
表示使用第i个伪随机哈希函数种子对前缀编码
Figure FDA0003021124740000046
进行哈希化处理后的哈希值;
(4d)用户对每一维的一系列哈希值进行整合,得到处理后的查询区间Q*
Q*=(H(P([p1,q1])),H(P([p2,q2])),…,H(P([pτ,qτ])),…,H(P([px,qx])));
(4e)用户初始化一个n比特长的比特串,并根据查询区间将比特串对应的比特置为1,即如果想要查询第b维数据就将比特串的第b个比特置为1,再将该比特串记作查询参数U,其中,b∈[1,n],n表示数据集中数据的维数。
7.根据权利要求1所述的方法,其特征在于,所述(5)中根据用户发送的查询区间以及查询参数,确定每一维密文区间下限和上限,实现如下:
(5a)云服务器接收用户上传的查询区间Q*与查询参数U,逐比特遍历查询参数U的同时遍历查询区间Q*,如果遍历到U中的第b比特为1,就将Q*中的一个元素发送至第b棵B+树进行查询,每一个Q*中的元素被发送到B+树中进行查询后,下一次U中遍历到1时便依序发送Q*中的下一个元素,否则,继续逐比特遍历查询参数U;
(5b)云服务器在B+树进行查询时,判断查询区间Q*中第b维数据所对应的哈希化查询区间H(P([pτ,qτ]))中是否存在一组哈希值
Figure FDA0003021124740000047
在布隆过滤器数组B(P(sb,ε))中所有位置都为1,如果是,则去访问该***节点数据所对应的子节点,否则,继续遍历,直到遍历完所有g个***节点数据,其中,g表示每一个根节点或内部节点存储g个布隆过滤器数组:
B(P(sb,1)),B(P(sb,2)),…,B(P(sb,ε)),…,B(P(sb,g)),ε∈[1,9],
sb,ε表示第b棵B+树中根节点或内部节点的第ε个***节点数据,B(P(sb,ε))表示sb,ε所对应的布隆过滤器数组;
(5c)云服务器判断查询区间Q*中第b维数据所对应的哈希化查询区间H(P([pτ,qτ]))中是否存在一组哈希值
Figure FDA0003021124740000051
在布隆过滤器数组B(P(sb,ε))中所有位置都为1,如果是,则去访问该***节点数据所对应的子节点,否则,继续遍历,直到遍历完所有g个***节点数据;
(5d)云服务器在B+树中逐个从小到大遍历已访问到的最左边叶子节点中的布隆过滤器数组,直到出现第b维数据所对应的哈希化查询区间H(P([pτ,qτ]))中,存在一组哈希值
Figure FDA0003021124740000052
在某个数据分量所对应的布隆过滤器数组B(P(da,b))中所有位置都为1时,将该数组作为当前维度的查询下限;
(5e)云服务器在B+树中逐个从大到小遍历已访问到的最右边叶子节点中的布隆过滤器数组,直到出现第b维数据所对应的哈希化查询区间H(P([pτ,qτ]))中,存在一组哈希值
Figure FDA0003021124740000053
在某个数据分量所对应的布隆过滤器数组B(P(da,b))中所有位置都为1时,将该数组作为当前维度的查询上限。
8.根据权利要求1所述的方法,其特征在于,(6)中用户对云服务器返回的密文结果进行解密,是将第二密钥sk2和密文结果I*作为高级加密标准AES加密方案中解密算法的输入,得到查询结果I:
I=AES.Dec(I*,sk2),
其中,AES.Dec表示AES加密方案的解密算法。
CN202110403024.1A 2021-04-15 2021-04-15 基于保序加密的多维数据查询方法 Active CN113111090B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110403024.1A CN113111090B (zh) 2021-04-15 2021-04-15 基于保序加密的多维数据查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110403024.1A CN113111090B (zh) 2021-04-15 2021-04-15 基于保序加密的多维数据查询方法

Publications (2)

Publication Number Publication Date
CN113111090A CN113111090A (zh) 2021-07-13
CN113111090B true CN113111090B (zh) 2023-01-06

Family

ID=76716942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110403024.1A Active CN113111090B (zh) 2021-04-15 2021-04-15 基于保序加密的多维数据查询方法

Country Status (1)

Country Link
CN (1) CN113111090B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115935429B (zh) * 2022-12-30 2023-08-22 上海零数众合信息科技有限公司 一种数据处理方法、装置、介质以及电子设备
CN116150795B (zh) * 2023-04-17 2023-07-14 粤港澳大湾区数字经济研究院(福田) 基于同态加密的数据处理方法、***及相关设备
CN116933299B (zh) * 2023-09-18 2023-12-05 国网智能电网研究院有限公司 一种税电数据安全融合方法、税电节点、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105721485A (zh) * 2016-03-04 2016-06-29 安徽大学 外包云环境下面向多数据拥有者的安全最近邻查询方法
CN106407447A (zh) * 2016-09-30 2017-02-15 福州大学 一种加密云数据下基于Simhash的模糊排序搜索方法
CN108337085A (zh) * 2018-01-03 2018-07-27 西安电子科技大学 一种支持动态更新的近似邻检索构建方法
CN108985094A (zh) * 2018-06-28 2018-12-11 电子科技大学 云环境下实现密文空间数据的访问控制和范围查询方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9531679B2 (en) * 2014-02-06 2016-12-27 Palo Alto Research Center Incorporated Content-based transport security for distributed producers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105721485A (zh) * 2016-03-04 2016-06-29 安徽大学 外包云环境下面向多数据拥有者的安全最近邻查询方法
CN106407447A (zh) * 2016-09-30 2017-02-15 福州大学 一种加密云数据下基于Simhash的模糊排序搜索方法
CN108337085A (zh) * 2018-01-03 2018-07-27 西安电子科技大学 一种支持动态更新的近似邻检索构建方法
CN108985094A (zh) * 2018-06-28 2018-12-11 电子科技大学 云环境下实现密文空间数据的访问控制和范围查询方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A Privacy-Preserving Online Medical Prediagnosis Scheme for Cloud Environment;Wei Guo,等;《IEEE Access》;20180823;第6卷;第48946-48957页 *
支持结果排序的安全密文检索方法研究;姚寒冰,等;《计算机科学》;20180531;第45卷(第5期);第123-130页 *

Also Published As

Publication number Publication date
CN113111090A (zh) 2021-07-13

Similar Documents

Publication Publication Date Title
CN113111090B (zh) 基于保序加密的多维数据查询方法
CN106815350B (zh) 一种云环境中动态的密文多关键词模糊搜索方法
CN112800088B (zh) 基于双向安全索引的数据库密文检索***及方法
CN104780161B (zh) 一种云存储中支持多用户的可搜索加密方法
CN109543061B (zh) 一种支持多密钥的加密图像检索方法
CN105681280A (zh) 一种云环境中基于中文的可搜索加密方法
CN112270006A (zh) 电商平台中隐藏搜索模式和访问模式的可搜索加密方法
CN109740362B (zh) 一种基于熵编码的密文索引生成与检索方法及***
CN111026788B (zh) 一种混合云中基于同态加密的多关键词密文排序检索方法
CN109145079B (zh) 基于个人兴趣用户模型的云端可搜索加密方法
KR20110068542A (ko) 대칭 키 기반 검색 가능 암호 방법
CN114826703B (zh) 基于区块链的数据搜索细粒度访问控制方法及***
CN102024054A (zh) 一种面向密文云存储的文档检索方法与***
JP6381128B2 (ja) 検索システム、クライアント、サーバ、検索プログラムおよび検索方法
CN106934301B (zh) 一种支持密文数据操作的关系型数据库安全外包数据处理方法
CN113221155B (zh) 一种多层级与多等级加密的云储存***
CN108768639B (zh) 一种公钥保序加密方法
CN110166466A (zh) 一种可高效更新权限的多用户可搜索加密方法和***
CN106874516A (zh) 一种云存储中基于kcb树和布隆过滤器的高效密文检索方法
WO2018070932A1 (en) System and method for querying an encrypted database for documents satisfying an expressive keyword access structure
CN110727951B (zh) 具有隐私保护的轻量级外包文件多关键词检索方法及***
CN113434739B (zh) 一种云环境下前向安全的多用户动态对称加密检索方法
JP2003186725A (ja) リレーショナルデータベース及びそのリレーショナルデータベースにおけるインデックステーブルの作成方法並びに該リレーショナルデータベースにおける範囲検索の方法およびその範囲検索のための順位検索方法
CN108197491B (zh) 一种基于密文的子图检索方法
CN108011713B (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
GR01 Patent grant
GR01 Patent grant