一种支持skyline查询的可搜索加密方法与系统技术方案

技术编号:21225079 阅读:28 留言:0更新日期:2019-05-29 05:49
本发明专利技术公开了一种支持skyline查询的可搜索加密方法与系统。其步骤为:1)客户端生成元组的用于最近邻查询的安全索引

A Searchable Encryption Method and System Supporting Skyline Query

The invention discloses a searchable encryption method and system supporting skyline query. The steps are as follows: 1) Client generates tuple security index for nearest neighbor query

【技术实现步骤摘要】
一种支持skyline查询的可搜索加密方法与系统
本专利技术属于信息安全
,具体涉及一种支持skyline查询(天际线查询)的可搜索加密方法与系统。
技术介绍
随着云计算技术的迅速发展,越来越多的企业和组织将海量数据存储到云存储系统,从而节约软硬件成本和人力成本。然而,云存储系统中的数据却面临着外部黑客和内部管理员的双重威胁,这可能导致敏感数据的泄露和滥用。因此,用户通常将敏感数据加密后再存储到云存储系统。当需要查询数据时,用户首先将全部密文数据下载到本地并解密,然后对明文数据进行查询。显然,该过程的代价对于大部分客户端而言是难以承受的,并且没有充分利用云存储系统的计算资源。可搜索加密技术允许用户在不解密密文数据的前提下查找数据。在上传数据时,用户为敏感数据生成安全索引,并将密文数据和安全索引一同发送给云存储系统。在查询数据时,用户根据查询条件生成安全陷门,并将其发送给云存储系统。随后云存储系统依据安全索引和安全陷门进行查找,并将符合查询条件的密文数据返回给用户。该过程不会泄露数据内容和查询条件,且大部分计算工作由云存储系统完成。Skyline查询是一种非常重要的数据库查询类型,用于在数据库中查找不被其他元组支配的用户感兴趣的元组。目前支持skyline查询的可搜索加密方法主要基于保序加密和同态加密。其中,基于保序加密的方法会泄露数据的排序特征,而基于同态加密的方法的查询效率较低。因此,设计并实现一种安全高效的skyline查询方法与系统,对提高密文云存储系统的安全性和可用性至关重要。
技术实现思路
针对上述问题需求,本专利技术提供了一种支持skyline查询的可搜索加密方法与系统。与skyline查询算法NN(NearestNeighbor,最近邻算法)和BBS(Branch-and-BoundSkyline,分支定界算法)的思路类似,本专利技术将skyline查询过程拆分为最近邻查询和支配查询。为了保证安全性,本专利技术将查询过程变换为求解向量内积的形式,并借助加密技术保护向量。为了实现上述目的,本专利技术采用的技术方案为:一种支持skyline查询的可搜索加密方法,通过客户端和云存储系统实现,步骤包括:1)客户端分别生成用于加解密元组的密钥以及加密索引向量和陷门向量的密钥。元组是关系数据库中的一行,也称一条记录;优选地,客户端可以使用任意安全可靠的加密算法对元组进行加解密操作,如SMS4、AES256等。优选地,客户端可以使用任意保留向量内积的加密算法对索引向量和陷门向量进行加密操作,如ASPE。2)客户端为用户希望上传的各元组生成用于最近邻查询的安全索引。优选地,对于一个d维元组P=(p1,p2,...,pd),为其构造一个长度为2d的索引向量并将其加密得到用于最近邻查询的安全索引pd表示元组P的第d维属性值,是一个实数。3)客户端为用户希望上传的各元组生成用于支配查询的安全索引。优选地,对于一个d维元组P=(p1,p2,...,pd),对于i∈[1,d],分别构造一个长度为3的索引向量并将其加密得到最终得到用于支配查询的安全索引4)客户端将希望上传的各元组分别加密,然后将密文数据和安全索引(包括用于最近邻查询的安全索引、用于支配查询的安全索引)一同发送给云存储系统。5)当用户需要进行skyline查询时,客户端为查询条件生成用于最近邻查询的安全陷门。优选地,对于一个d维查询条件Q=(q1,q2,...,qd),为其构造一个长度为2d的陷门向量并将其加密得到用于最近邻查询的安全陷门表示查询条件Q的第d维属性值,是一个实数。6)客户端将安全陷门发送给云存储系统。7)云存储系统根据用于最近邻查询的安全索引和安全陷门,找到与查询条件的欧式距离最小的一个元组,并将其对应的密文数据返回给客户端。优选地,对于查询条件Q对应的最近邻查询安全陷门以及元组P和P'对应的最近邻查询安全索引和安全索引和与安全陷门的内积之差等价于元组P和P'与查询条件Q的欧式距离的平方差综上,通过分别计算各元组对应的最近邻查询安全索引与查询条件对应的最近邻查询安全陷门的内积,其中结果值最小的元组与查询条件的欧式距离最小,且根据已知定理,该元组必为skyline;即如果元组P对应的最近邻查询安全索引与查询条件对应的最近邻查询安全陷门的内积最小,则元组P为与查询条件的欧式距离最小的一个元组。8)客户端将云存储系统返回的密文数据解密。如果需要继续查找,则根据解密得到的元组以及查询条件生成用于支配查询的安全陷门。优选地,对于客户端解密得到的元组R=(r1,r2,...,rd)和查询条件Q=(q1,q2,...,qd),对于i∈[1,d],分别构造一个长度为3的向量并将其加密得到最终得到用于支配查询的安全陷门其中,rd表示元组R的第d维属性值,是一个实数。9)客户端将用于支配查询的安全陷门发送给云存储系统。10)云存储系统根据用于支配查询的安全索引和安全陷门,将被支配的元组剔除。优选地,对于查询条件Q对应的支配查询安全陷门以及元组P对应的支配查询安全索引对于i∈[1,d],根据skyline的定义,如果对于任意i∈[1,d]均满足且至少存在一个i∈[1,d]使得则元组P被元组R支配,在后续的查询过程中不再考虑元组P。11)除了已被返回给客户端和已被剔除的元组外,如果还有其他元组,则对这些元组重复步骤7)到步骤11)。如果步骤8)中不需要继续查找,则整个查询过程结束。优选地,在后续步骤中,不需要再重复计算各元组对应的最近邻查询安全索引与查询条件对应的最近邻查询安全陷门的内积,只需要根据之前的计算结果找到最小值。本专利技术提供的支持skyline查询的可搜索加密系统,该系统包括云存储系统和若干客户端,所述客户端分别通过网络与所述云存储系统连接,所述客户端包括安全模块、索引操作模块、陷门操作模块,所述云存储系统包括查询服务器和密文存储服务器,其中:所述安全模块主要用于对元组进行加解密操作,并对索引向量和陷门向量进行加密操作;所述索引操作模块主要用于生成索引向量,由安全模块加密元组和索引向量后,将密文数据和安全索引发送给云存储系统;所述陷门操作模块主要用于生成陷门向量,由安全模块加密陷门向量后,将安全陷门发送给云存储系统;所述查询服务器主要用于存储安全索引,并根据安全索引和安全陷门进行查询操作,将查询到的元组对应的标识id发送给密文存储服务器;所述密文存储服务器主要用于存储密文数据,并将查询服务器发来的标识id对应的密文数据返回给客户端。进一步地,所述安全模块又包含数据加解密组件和索引陷门加密组件,其中:所述数据加解密组件主要用于生成加解密元组所需的密钥和相关参数,并对需要加解密操作的元组进行加密和解密操作;所述索引陷门加密组件主要用于生成加密索引向量和陷门向量所需的密钥和相关参数,并对需要加密操作的索引向量和陷门向量进行加密操作。进一步地,所述索引操作模块又包含最近邻查询索引构造组件、支配查询索引构造组件和传输组件,其中:所述最近邻查询索引构造组件主要为用户的数据构造用于最近邻查询的索引向量;所述支配查询索引构造组件主要为用户的数据构造用于支配查询的索引向量;所述传输组件主要用于将安全模块加密后的密文数据和安全索引等发送给云存储系统。进一步地,所述陷门操作本文档来自技高网...

【技术保护点】
1.一种支持skyline查询的索引生成方法,其步骤包括:1)对于每一待上传的元组,客户端生成该元组的用于最近邻查询的安全索引

【技术特征摘要】
1.一种支持skyline查询的索引生成方法,其步骤包括:1)对于每一待上传的元组,客户端生成该元组的用于最近邻查询的安全索引以及该元组的用于支配查询的安全索引并对该元组进行加密;然后将该元组的密文数据、安全索引以及安全索引发送给云存储系统;2)云存储系统根据收到的各元组的密文数据、安全索引以及安全索引生成密文索引。2.如权利要求1所述的方法,其特征在于,生成所述安全索引的方法为:对于一个d维元组P=(p1,p2,...,pd),为其构造一个长度为2d的向量并对进行加密得到用于最近邻查询的安全索引其中,pd表示元组P的第d维属性值。3.如权利要求1所述的方法,其特征在于,生成所述安全索引的方法为:对于一个d维元组P=(p1,p2,...,pd),对于i∈[1,d],分别构造一个长度为3的向量并将其加密得到最终得到用于支配查询的安全索引4.如权利要求1所述的方法,其特征在于,所述元组为关系数据库中的一条记录。5.一种支持skyline查询的可搜索加密方法,其步骤包括:1)对于每一待上传的元组,客户端生成该元组的用于最近邻查询的安全索引以及该元组的用于支配查询的安全索引并对该元组进行加密;然后将该元组的密文数据、安全索引以及安全索引发送给云存储系统;2)客户端根据skyline查询中的查询条件生成用于最近邻查询的安全陷门并将其发送给云存储系统;3)云存储系统根据用于最近邻查询的安全索引和安全陷门找到匹配的元组,并将其对应的密文数据返回给客户端;4)客户端对云存储系统返回的密文数据进行解密;如果需要继续查找,则根据解密得到的元组以及查询条件生成用于支配查询的安全陷门并将其发送给云存储系统;5)云存储系统根据用于支配查询的安全索引和安全陷门确定出被支配的元组并剔除;6)将已被返回给客户端和已被剔除的元组之外的元组构成一集合;7)如果该集合不为空,则对该集合中的元组重复步骤3)~6),直至该集合为空或不再需要继续查找。6.如权利要求5所述的方法,其特征在于,生成所述安全陷门的方法为:对于一个d维查询条件Q=(q1,q2,...,qd),为其构造一个长度...

【专利技术属性】
技术研发人员:迟佳琳冯登国张敏李昊张立武
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1