CN106980796B - 云环境下基于mdb+树的多域连接关键词的搜索方法 - Google Patents

云环境下基于mdb+树的多域连接关键词的搜索方法 Download PDF

Info

Publication number
CN106980796B
CN106980796B CN201710186150.XA CN201710186150A CN106980796B CN 106980796 B CN106980796 B CN 106980796B CN 201710186150 A CN201710186150 A CN 201710186150A CN 106980796 B CN106980796 B CN 106980796B
Authority
CN
China
Prior art keywords
tree
data
mdb
search
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.)
Active
Application number
CN201710186150.XA
Other languages
English (en)
Other versions
CN106980796A (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.)
Henan University of Science and Technology
Original Assignee
Henan University of Science and Technology
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 Henan University of Science and Technology filed Critical Henan University of Science and Technology
Priority to CN201710186150.XA priority Critical patent/CN106980796B/zh
Publication of CN106980796A publication Critical patent/CN106980796A/zh
Application granted granted Critical
Publication of CN106980796B publication Critical patent/CN106980796B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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
    • G06F21/6263Protecting personal data, e.g. for financial or medical purposes during internet communication, e.g. revealing personal data from cookies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Landscapes

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

Abstract

云环境下基于MDB+树的多域连接关键词的搜索方法,数据拥有者将每一个数据记录构建成基于MDB+树的安全索引,并将各数据记录对应的文档进行加密,然后将加密的索引以及加密的文档外包给云服务器,数据用户向数据拥有者请求搜索授权,数据拥有者根据授权规则决定是否授权,假如用户获得授权,数据拥有者向数据用户分发一个搜索陷门和解密秘钥,数据用户提交搜索陷门给云服务器,云服务器接收到用户提交的搜索陷门时,利用匹配算法搜索MDB+树,找出与用户查询需求匹配的所有记录。本发明有益效果:保证了用户的隐私及数据的安全,并且能快速的满足用户需求的查询,克服了以往绝大多数方案的线性查询的缺点。

Description

云环境下基于MDB+树的多域连接关键词的搜索方法
技术领域
本发明属于云存储加密搜索技术领域,具体涉及云环境下基于MDB+树的多域连接关键词的搜索方法。
背景技术
随着信息技术的快速发展,云计算受到越来越多人的关注。尽管云计算可以提供强大的存储和计算能力,但是云计算等外包服务器是由第三方互联网商业公司(如亚马逊、谷歌等)维护与管理的,很多公司和组织对云计算持谨慎态度,最主要是他们担心他们数据的安全和用户的隐私。
近几年来,随着医疗信息化的不断发展,电子医疗记录(Electric MedicalRecords,简称EMRs)数量越来越大,怎样对日益增大的EMRs执行有效的存储和管理是很多医院和医疗组织面临的需要解决的问题。具有强存储和计算能力的云计算等外包服务提供了潜在的解决方案。例如,医院将表1以及表中每条记录对应的具体的个人病例外包给云服务器。表中每一行数据是一个记录,代表一个病人,每个记录包含多个属性。每一个属性称为“关键词域”,而属性值称为“关键词”。由于EMRs的属性涉及病人的隐私,为了保护病人的隐私安全,EMRs 以及相应的详细的病人病例通常都是以密文形式存储在云服务器上。加密方法虽然有助于保护数据的安全和用户的隐私,但是给用户查询包含多个关键词的记录带来了极大的不便。例如,一个用户希望查询满足“(40<年龄<50)AND(性别=男) AND(疾病=糖尿病)”的记录从而实现信息统计的目的。因此,在确保数据安全和病人隐私的情况下,开发一个针对加密的EMRs的安全而且快速的连接关键词搜索方案,是一个尤其需要解决的问题。可搜索加密(searchable encryption,简称SE) 是近年来发展的一种支持用户在密文上进行关键字查找的密码学原语。以往的 SE方案根据其支持的关键词个数,可以分为单关键词查询和多关键词查询。
表1电子医疗记录表
Figure GDA0002277488140000011
Figure GDA0002277488140000021
因为单关键词SE方案只支持单个关键词的查询,所以他们不能完成多关键词的连接查询。针对单关键词SE查询方案的不足,简单的多关键词搜索方案已经提出。然而这些方案只支持简单的连接关键词相等查询,例如“(年龄=60)AND (疾病=糖尿病)”。为了完善搜索功能,支持范围和子集查询的多域上的连接关键词搜索方案也已经提出,在这些方案中,一般的方法是在复杂的代数结构,例如复合阶群或者双对矢量空间(Dual Pair VectorSpace,简称DPVS)上构造矢量。由于在复杂代数结构上双线性对的计算开销比在单阶群上的计算开销要大的多,因此这类方案的计算开销成了一个最大的问题。基于内积相似分数或者欧几里德距离的多关键词排序搜索是另外一类连接关键词搜索。为了增加安全性,这些方案向相似分数或距离引入一些随机变量,从而引起了结果的不精确性。
根据基于的算法,SE机制可以分为两大类:基于公钥密码(public keycryptography简称PKC)的和基于私钥密码(secret key cryptography,简称SKC) 的。一般情况下基于SKC的SE机制实现的搜索效率比较高,但是支持的查询表达式比较简单。而基于PKC的SE方案可以完成更加灵活的连接关键词查询,例如实现域内范围查询,子集查询等查询。然而相比基于SKC的SE机制来说,它们的搜索效率较低。因为基于PKC的SE机制中一般需要产生许多耗时的对操作。而且以前的实现多域连接关键词的查询实现的绝大多数都是线性查询,也即要查询某个搜索条件的记录,服务器需要搜索数据库中全部的记录方能返回正确的搜索结果。
发明内容
本发明所要解决的技术问题是提供云环境下基于MDB+树的多域连接关键词的搜索方法,解决目前云存储中多域连接关键词查询存在的问题,在保证用户隐私及数据安全的前提下,满足用户快速查询的需求,克服目前线性查询的缺点。
本发明为解决上述技术问题所采用的技术方案是:云环境下基于MDB+树的多域连接关键词的搜索方法,包括以下步骤:
步骤一、数据拥有者将每一个数据记录构建成基于MDB+树的安全索引,并将各数据记录对应的文档进行加密,然后将加密的索引以及加密的文档外包给云服务器,其具体的方法为:
(1)在初始化阶段,数据拥有者将数据记录的属性集A={A1,A2,…,Am}划分为h组,即A={A1 ,A2 ,…,Ah },其中m为属性的个数,h为MDB+树的最大层,然后随机产生一个Vi位的二进制矢量Si和一个Vi×Vi的可逆矩阵{M1,i,M2,i},其中Vi是对应于MDB+树第i层的矢量长度,私钥SKi为三元组{Si,M1,i,M2,i};
(2)数据拥有者将数据记录的每一条记录的各个子属性进行矢量表示后加密:将数据记录r的矢量
Figure GDA0002277488140000031
划分为h个子矢量
Figure GDA0002277488140000032
Figure GDA0002277488140000033
表示
Figure GDA0002277488140000034
对应于Ai′的矢量,对矢量
Figure GDA0002277488140000035
执行加密,加密过程如下:①用一个非零的随机数εi乘以
Figure GDA0002277488140000036
得到
Figure GDA0002277488140000037
也即
Figure GDA0002277488140000038
②将
Figure GDA0002277488140000039
划分为两个随机的矢量
Figure GDA00022774881400000310
对于j=1到 n,假如Si[j]=1,
Figure GDA00022774881400000311
Figure GDA00022774881400000312
被设置满足
Figure GDA00022774881400000313
假如Si[j]=0,
Figure GDA00022774881400000314
Figure GDA00022774881400000315
均被设置为
Figure GDA00022774881400000316
③产生加密的矢量Cr,i
Figure GDA00022774881400000317
(3)根据数据记录的每一条记录构建基于MDB+树的索引,数据拥有者将基于MDB+树的安全索引以及加密后的数据记录外包给云服务器;
步骤二、数据用户向数据拥有者请求搜索授权,数据拥有者根据授权规则决定是否授权,假如用户获得授权,数据拥有者执行步骤三;
步骤三、生成陷门,数据拥有者向数据用户分发一个搜索陷门和解密秘钥;
步骤四、数据用户提交搜索陷门给云服务器,云服务器接收到用户提交的搜索陷门时,利用匹配算法搜索MDB+树,找出与用户查询需求匹配的所有记录,搜索陷门不揭露查询的任何信息;
步骤五、云服务器返回满足特定搜索规则的记录,解密秘钥实现匹配记录的解密。
本发明所述步骤三中向用户发送的搜索陷门的生成方法为:根据授权用户搜索的关键词生成查询矢量q,对q按位取反得到矢量
Figure GDA0002277488140000041
Figure GDA0002277488140000042
表示矢量
Figure GDA0002277488140000043
中对应A′i的矢量,对
Figure GDA0002277488140000044
执行如下操作:(1)用不为0的随机数βi乘以
Figure GDA0002277488140000045
得到
Figure GDA0002277488140000046
Figure GDA0002277488140000047
(2)将
Figure GDA0002277488140000048
划分为两个随机的矢量
Figure GDA0002277488140000049
假如Si[j]=1,
Figure GDA00022774881400000410
Figure GDA00022774881400000411
均被设置为与
Figure GDA00022774881400000412
相等;假如Si[j]=0,
Figure GDA00022774881400000413
Figure GDA00022774881400000414
被设置满足
Figure GDA00022774881400000415
则陷门
Figure GDA00022774881400000416
即为
Figure GDA00022774881400000417
本发明所述步骤一中将数据记录的每一条记录的子属性进行矢量表示的方法,分为以下两种情况:
(1)对于一个不能分层的属性的矢量表示方法为:如果有m个属性,则每个属性值被依次在范围[1,m]内分配一个整数,这m个整数都被表示为一个m位的二进制矢量,对于整数i,它的第i位被设置为1,其它m-1位都为0;
(2)对于一个可以分层的属性的矢量表示方法为:先将属性进行分层,再对分层的属性进行矢量表示:对于最大层为k的任何分层属性Ai,将其扩展为k 个子属性:Ai,1,...,Ai,k,其中Ai,d值的集合是Trd(Ai),Ai,d的值是路径 P(x)上从顶端开始第d个元素,这里x是属性树Trd(Ai)的叶子结点;
在最大层为k的属性树Tr(Ai)中,对叶子结点x的矢量表示过程如下:
①找到路径P(x)=(N1,...,Nk),其中Nd(d=1,...,k)是路径P(x)上从根节点开始的第d个节点;
②令(Ai,1,...,Ai,k)分别等于(N1,...,Nk);
③Ai,1用二进制1表示,因为第1层属性只有一个属性值;
④假如Trd(Ai)(1≤i<k)的每一个节点都有n个子节点,那么Ai,d+1被表示成n位的二进制矢量,假如Ai,d+1是Ai,d的第j个子节点,那么只有第j位为1,其他n-1位都为0;假如Trd(Ai)(1≤i<k)中的节点N比同层其他节点有更多的子节点,那么Ai,d+1被表示成m位的二进制矢量,其中m 是节点N的子节点的个数。
本发明所述步骤一中步骤(3)构建基于MDB+树的索引的方法如下:若数据拥有者将属性集A划分为h个组,那么MDB+树最大层就是h,MDB+树的第 i层相对应于A′i,树的每个节点是一个B+树,并用三角形表示,每个节点包含多个来自A′i的关键词,分享上层的相同关键词的所有关键词形成下层的一个子节点,节点内关键词是以密文形式存在的。
本发明的有益效果是:本发明提供了云计算环境下对数据记录实现多域上连接关键词查询的安全有效方法,该方法保证了用户的隐私及数据的安全,并且能快速的满足用户需求的查询,克服了以往绝大多数方案的线性查询的缺点,具有以下优点:(1)提出了分层的属性和查询矢量的表示方法,利用该方法能实现属性域上范围和子集查询;(2)构建了基于MDB+树的索引结构,并提出了第i层的安全索引方法,该索引方案保证了数据的安全。该方案能够抵抗已知明文攻击; (3)提出了对MDB+树的搜索方法,方案不仅能支持灵活的连接关键词查询,如范围查询和子集查询,而且克服了搜索时间与数据库文档数成线性关系的弊端,该方法不需要搜索全部的记录便能搜索出所有满足搜索请求的所有记录,实现了搜索效率的提高,这种方法更加适用于大型数据库中的使用性。
附图说明
图1为根据本发明表1中数据记录构建成的MDB+树。
具体实施方式
如图所示,云环境下基于MDB+树的多域连接关键词的搜索方法,包括以下步骤:
步骤一、数据拥有者将每一个数据记录构建成基于MDB+树的安全索引,并将各数据记录对应的文档进行加密,然后将加密的索引以及加密的文档外包给云服务器,其具体的方法为:
(1)在初始化阶段,数据拥有者将数据记录的属性集A={A1,A2,…,Am}划分为h组,即A’={A1’,A2’,…,Ah’},其中m为属性的个数,h为MDB+树的最大层,然后随机产生一个Vi位的二进制矢量Si和一个Vi×Vi的可逆矩阵{M1,i,M2,i},其中Vi是对应于MDB+树第i层的矢量长度,私钥SKi为三元组{Si,M1,i,M2,i};
(2)数据拥有者将数据记录的每一条记录的各个子属性进行矢量表示后加密:将数据记录r的矢量
Figure GDA0002277488140000061
划分为h个子矢量
Figure GDA0002277488140000062
Figure GDA0002277488140000063
表示
Figure GDA0002277488140000064
对应于A′i的矢量,对矢量
Figure GDA0002277488140000065
执行加密,加密过程如下:①用一个非零的随机数εi乘以
Figure GDA0002277488140000066
得到
Figure GDA0002277488140000067
也即
Figure GDA0002277488140000068
②将
Figure GDA0002277488140000069
划分为两个随机的矢量
Figure GDA00022774881400000610
对于j=1到 n,假如Si[j]=1,
Figure GDA00022774881400000611
Figure GDA00022774881400000612
被设置满足
Figure GDA00022774881400000613
假如Si[j]=0,
Figure GDA00022774881400000614
Figure GDA00022774881400000615
均被设置为
Figure GDA00022774881400000616
③产生加密的矢量Cr,i
Figure GDA00022774881400000617
(3)根据数据记录的每一条记录构建基于MDB+树的索引,数据拥有者将基于MDB+树的安全索引以及加密后的数据记录外包给云服务器;
步骤二、数据用户向数据拥有者请求搜索授权,数据拥有者根据授权规则决定是否授权,假如用户获得授权,数据拥有者执行步骤三;
步骤三、生成陷门,数据拥有者向数据用户分发一个搜索陷门和解密秘钥;
步骤四、数据用户提交搜索陷门给云服务器,云服务器接收到用户提交的搜索陷门时,利用匹配算法搜索MDB+树,找出与用户查询需求匹配的所有记录,搜索陷门不揭露查询的任何信息;
步骤五、云服务器返回满足特定搜索规则的记录,解密秘钥实现匹配记录的解密。
进一步,所述步骤三中向用户发送的搜索陷门的生成方法为:根据授权用户搜索的关键词生成查询矢量q,对q按位取反得到矢量
Figure GDA0002277488140000071
Figure GDA0002277488140000072
表示矢量
Figure GDA0002277488140000073
中对应A′i的矢量,对
Figure GDA0002277488140000074
执行如下操作:(1)用不为0的随机数βi乘以
Figure GDA0002277488140000075
得到
Figure GDA0002277488140000076
Figure GDA0002277488140000077
(2)将
Figure GDA0002277488140000078
划分为两个随机的矢量
Figure GDA0002277488140000079
假如Si[j]=1,
Figure GDA00022774881400000710
Figure GDA00022774881400000711
均被设置为与
Figure GDA00022774881400000712
相等;假如Si[j]=0,
Figure GDA00022774881400000717
Figure GDA00022774881400000713
被设置满足
Figure GDA00022774881400000714
则陷门
Figure GDA00022774881400000715
即为
Figure GDA00022774881400000716
进一步,所述步骤一中将数据记录的每一条记录的子属性进行矢量表示的方法,分为以下两种情况:
(1)对于一个不能分层的属性的矢量表示方法为:如果有m个属性,则每个属性值被依次在范围[1,m]内分配一个整数,这m个整数都被表示为一个m位的二进制矢量,对于整数i,它的第i位被设置为1,其它m-1位都为0;
(2)对于一个可以分层的属性的矢量表示方法为:先将属性进行分层,再对分层的属性进行矢量表示:对于最大层为k的任何分层属性Ai,将其扩展为k 个子属性:Ai,1,...,Ai,k,其中Ai,d值的集合是Trd(Ai),Ai,d的值是路径 P(x)上从顶端开始第d个元素,这里x是属性树Trd(Ai)的叶子结点;
在最大层为k的属性树Tr(Ai)中,对叶子结点x的矢量表示过程如下:
①找到路径P(x)=(N1,...,Nk),其中Nd(d=1,...,k)是路径P(x)上从根节点开始的第d个节点;
②令(Ai,1,...,Ai,k)分别等于(N1,...,Nk);
③Ai,1用二进制1表示,因为第1层属性只有一个属性值;
④假如Trd(Ai)(1≤i<k)的每一个节点都有n个子节点,那么Ai,d+1被表示成n位的二进制矢量,假如Ai,d+1是Ai,d的第j个子节点,那么只有第j位为1,其他n-1位都为0;假如Trd(Ai)(1≤i<k)中的节点N比同层其他节点有更多的子节点,那么Ai,d+1被表示成m位的二进制矢量,其中m 是节点N的子节点的个数。
进一步,所述步骤一中步骤(3)构建基于MDB+树的索引的方法如下:若数据拥有者将属性集A划分为h个组,那么MDB+树最大层就是h,MDB+树的第i层相对应于A′i,树的每个节点是一个B+树,并用三角形表示,每个节点包含多个来自A′i的关键词,分享上层的相同关键词的所有关键词形成下层的一个子节点,节点内关键词是以密文形式存在的。例如
Figure GDA0002277488140000081
是以Cr,i形式存在的,每个关键词k都有一个指针,记为ρ(k),若k不是在树的最底层,那么ρ(k)指向下一层的一个节点,若k在树的最底层,那么ρ(k)指向一个ID号序列,该序列存储的是具有所有属性值都相同的记录的ID号。例如作为一个特例,将属性集 A={A1,,...,Am}={性别,年龄,疾病,地区}划为四组,每个属性对应树的一层,即Ai=A′i。表1的记录构建成MDB+树索引如图1所示。
本发明中所述的对MDB+树进行搜索的搜索算法为:当服务器接收到用户提交的用于查询的搜索陷门时,从根节点开始以递归的方式搜索MDB+树。也即是,当搜索过程进入第i层的一个节点的时候,从左向右的方向选择尚未选择的一个关键词Ki,接着对这个关键词的加密的矢量进行解密操作
Figure GDA0002277488140000082
Figure GDA0002277488140000091
时解密输出不为1,它表示该关键词与查询关键词不匹配,这时操作分两种情况:假如该关键词是该节点的最后一个关键词,搜索过程进入父节点的下一个关键词,否则搜索该节点的下一个关键词。当且仅当
Figure GDA0002277488140000092
时,解密输出为1,表示该关键词与查询关键词匹配(这里的“匹配”有四种含义:(1)该用户不关心属性Ai;(2)该关键词等于该查询域的关键词;(3)该关键词在该查询域的范围内;(4)该关键词是该查询域的子集)。这时操作分两种情况:若关键词Ki不是位于树的最底层,则搜索继续下到下一层的子节点,若关键词Ki位于树的最底层,也即ρ(ki)指向record ID array,将该 array中的record IDs添加到列表L中。
进一步,本发明所述的构造基于MDB+树的多域连接关键词搜索方法是最基本的方法,为了提高搜索效率和安全性,可以采用下述策略优化构建索引树的方法:(1)查询频率比较高的属性放在树的上层,这样当服务器搜索一个节点的关键词时,当判断出查询的该属性的属性值与记录的该属性的属性值不匹配时,选择该节点的下一个关键词,而不继续搜索以下的各层;(2)将属性值较少的属性(如性别)与其他属性合并后放在一层,例如性别与年龄合并到一层,那么该层节点的关键词的矢量将是年龄矢量和性别矢量的连接起来的矢量。

Claims (3)

1.云环境下基于MDB+树的多域连接关键词的搜索方法,其特征在于:包括以下步骤:
步骤一、数据拥有者将每一个数据记录构建成基于MDB+树的安全索引,并将各数据记录对应的文档进行加密,然后将加密的索引以及加密的文档外包给云服务器,其具体的方法为:
(1)在初始化阶段,数据拥有者将数据记录的属性集A={A1,A2,…,Am}划分为h组,即A’={A1’,A2’,…,Ah’},其中m为属性的个数,h为MDB+树的最大层,然后随机产生一个Vi位的二进制矢量Si和一个Vi×Vi的可逆矩阵{M1,i,M2,i},其中Vi是对应于MDB+树第i层的矢量长度,私钥SKi为三元组{Si,M1,i,M2,i};
(2)数据拥有者将数据记录的每一条记录的各个子属性进行矢量表示后加密:将数据记录r的矢量
Figure FDA0002277488130000011
划分为h个子矢量
Figure FDA0002277488130000012
Figure FDA0002277488130000013
表示
Figure FDA0002277488130000014
对应于Ai'的矢量,对矢量
Figure FDA0002277488130000015
执行加密,加密过程如下:①用一个非零的随机数εi乘以
Figure FDA0002277488130000016
得到
Figure FDA0002277488130000017
也即
Figure FDA0002277488130000018
②将
Figure FDA0002277488130000019
划分为两个随机的矢量
Figure FDA00022774881300000110
对于j=1到n,假如Si[j]=1,
Figure FDA00022774881300000111
Figure FDA00022774881300000112
被设置满足
Figure FDA00022774881300000113
假如Si[j]=0,
Figure FDA00022774881300000114
Figure FDA00022774881300000115
均被设置为
Figure FDA00022774881300000116
③产生加密的矢量Cr,i,
Figure FDA00022774881300000117
(3)根据数据记录的每一条记录构建基于MDB+树的索引,数据拥有者将基于MDB+树的安全索引以及加密后的数据记录外包给云服务器,构建基于MDB+树的索引的方法如下:若数据拥有者将属性集A划分为h个组,那么MDB+树最大层就是h,MDB+树的第i层相对应于Ai',树的每个节点是一个B+树,并用三角形表示,每个节点包含多个来自Ai'的关键词,分享上层的相同关键词的所有关键词形成下层的一个子节点,节点内关键词是以密文形式存在的;
步骤二、数据用户向数据拥有者请求搜索授权,数据拥有者根据授权规则决定是否授权,假如用户获得授权,数据拥有者执行步骤三;
步骤三、生成陷门,数据拥有者向数据用户分发一个搜索陷门和解密秘钥;
步骤四、数据用户提交搜索陷门给云服务器,云服务器接收到用户提交的搜索陷门时,利用匹配算法搜索MDB+树,找出与用户查询需求匹配的所有记录,搜索陷门不揭露查询的任何信息;所述匹配算法为:当服务器接收到用户提交的用于查询的搜索陷门时,从根节点开始以递归的方式搜索MDB+树,即当搜索过程进入第i层的一个节点的时候,从左向右的方向选择尚未选择的一个关键词Ki,接着对这个关键词的加密的矢量进行解密操作
Figure FDA0002277488130000021
Figure FDA0002277488130000022
时解密输出不为1,它表示该关键词与查询关键词不匹配,这时操作分两种情况:假如该关键词是该节点的最后一个关键词,搜索过程进入父节点的下一个关键词,否则搜索该节点的下一个关键词;当且仅当
Figure FDA0002277488130000023
时,解密输出为1,表示该关键词与查询关键词匹配,这时操作分两种情况:若关键词Ki不是位于树的最底层,则搜索继续下到下一层的子节点,若关键词Ki位于树的最底层,也即ρ(Ki)指向record IDarray,将该array中的record IDs添加到列表L中;
步骤五、云服务器返回满足特定搜索规则的记录,解密密钥实现匹配记录的解密。
2.根据权利要求1所述的云环境下基于MDB+树的多域连接关键词的搜索方法,其特征在于:所述步骤三中向用户发送的搜索陷门的生成方法为:根据授权用户搜索的关键词生成查询矢量q,对q按位取反得到矢量
Figure FDA0002277488130000031
Figure FDA0002277488130000032
表示矢量
Figure FDA0002277488130000033
中对应A′i的矢量,对
Figure FDA0002277488130000034
执行如下操作:
(1)用不为0的随机数βi乘以
Figure FDA0002277488130000035
得到
Figure FDA0002277488130000036
Figure FDA0002277488130000037
(2)将
Figure FDA0002277488130000038
划分为两个随机的矢量
Figure FDA0002277488130000039
假如Si[j]=1,
Figure FDA00022774881300000310
Figure FDA00022774881300000311
均被设置为与
Figure FDA00022774881300000312
相等;假如Si[j]=0,
Figure FDA00022774881300000313
Figure FDA00022774881300000314
被设置满足
Figure FDA00022774881300000315
则陷门
Figure FDA00022774881300000316
即为
Figure FDA00022774881300000317
3.根据权利要求1所述的云环境下基于MDB+树的多域连接关键词的搜索方法,其特征在于:所述步骤一中将数据记录的每一条记录的子属性进行矢量表示的方法,分为以下两种情况:
(1)对于一个不能分层的属性的矢量表示方法为:如果有m个属性,则每个属性值被依次在范围[1,m]内分配一个整数,这m个整数都被表示为一个m位的二进制矢量,对于整数i,它的第i位被设置为1,其它m-1位都为0;
(2)对于一个可以分层的属性的矢量表示方法为:先将属性进行分层,再对分层的属性进行矢量表示:对于最大层为k的任何分层属性Ai,将其扩展为k个子属性:Ai,1,...,Ai,k,其中Ai,d值的集合是Trd(Ai),Ai,d的值是路径P(x)上从顶端开始第d个元素,这里x是属性树Trd(Ai)的叶子结点;
在最大层为k的属性树Trd(Ai)中,对叶子结点x的矢量表示过程如下:
①找到路径P(x)=(N1,...,Nk),其中Nd(d=1,...,k)是路径P(x)上从根节点开始的第d个节点;
②令(Ai,1,...,Ai,k)分别等于(N1,...,Nk);
③Ai,1用二进制1表示,因为第1层属性只有一个属性值;
④假如Trd(Ai)(1≤i≤k)的每一个结点都有n个子节点,那么Ai,d+1被表示成n位的二进制矢量,假如Ai,d+1是Ai,d的第j个子节点,那么只有第j位为1,其他n-1位都为0;假如Trd(Ai)(1≤i≤k)中的节点N比同层其他节点有更多的子节点,那么Ai,d+1被表示成m位的二进制矢量,其中m是节点N的子节点的个数。
CN201710186150.XA 2017-03-27 2017-03-27 云环境下基于mdb+树的多域连接关键词的搜索方法 Active CN106980796B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710186150.XA CN106980796B (zh) 2017-03-27 2017-03-27 云环境下基于mdb+树的多域连接关键词的搜索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710186150.XA CN106980796B (zh) 2017-03-27 2017-03-27 云环境下基于mdb+树的多域连接关键词的搜索方法

Publications (2)

Publication Number Publication Date
CN106980796A CN106980796A (zh) 2017-07-25
CN106980796B true CN106980796B (zh) 2020-03-06

Family

ID=59339101

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710186150.XA Active CN106980796B (zh) 2017-03-27 2017-03-27 云环境下基于mdb+树的多域连接关键词的搜索方法

Country Status (1)

Country Link
CN (1) CN106980796B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107908779A (zh) * 2017-12-05 2018-04-13 河南科技大学 云环境下基于mat树的动态多属性连接关键词的搜索方法
CN108171066A (zh) * 2017-12-22 2018-06-15 湖北工业大学 一种医疗云中隐私保护下的关键词跨域搜索方法及系统
CN109509560A (zh) * 2018-10-23 2019-03-22 平安科技(深圳)有限公司 一种权限管理方法、装置、服务器及介质
CN109450935B (zh) * 2018-12-19 2021-02-02 河南科技大学 云存储中可验证的语义安全的多关键词搜索方法
CN111556009B (zh) * 2020-03-19 2021-10-01 河南大学 一种支持任意指定时间解密的时间控制加密系统及方法
CN114417068B (zh) * 2022-01-20 2023-06-09 三未信安科技股份有限公司 一种具有隐私性保护的大规模图数据匹配方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609490A (zh) * 2012-01-20 2012-07-25 东华大学 一种面向列存储dwms的b+树索引方法
CN104036050A (zh) * 2014-07-04 2014-09-10 福建师范大学 一种密文云数据复杂查询方法
KR101703828B1 (ko) * 2015-10-15 2017-02-08 한국전자통신연구원 암호화된 데이터에 대한 색인 태그 생성 방법, 색인 태그를 이용한 암호화된 데이터 검색 방법 및 이를 위한 데이터베이스 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609490A (zh) * 2012-01-20 2012-07-25 东华大学 一种面向列存储dwms的b+树索引方法
CN104036050A (zh) * 2014-07-04 2014-09-10 福建师范大学 一种密文云数据复杂查询方法
KR101703828B1 (ko) * 2015-10-15 2017-02-08 한국전자통신연구원 암호화된 데이터에 대한 색인 태그 생성 방법, 색인 태그를 이용한 암호화된 데이터 검색 방법 및 이를 위한 데이터베이스 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
对加密电子医疗记录有效的连接关键词的搜索;张丽丽等;《软件学报》;20160630(第6期);正文第1580页第3段、第1582页第4段及最后一段、第1583页第7-8段、第1585页第1段及最后一段、图3 *

Also Published As

Publication number Publication date
CN106980796A (zh) 2017-07-25

Similar Documents

Publication Publication Date Title
CN106980796B (zh) 云环境下基于mdb+树的多域连接关键词的搜索方法
Fu et al. Enabling central keyword-based semantic extension search over encrypted outsourced data
Zhang et al. SE-PPFM: A searchable encryption scheme supporting privacy-preserving fuzzy multikeyword in cloud systems
Faber et al. Rich queries on encrypted data: Beyond exact matches
Xia et al. A secure and dynamic multi-keyword ranked search scheme over encrypted cloud data
CN112332979B (zh) 云计算环境中的密文搜索方法及系统、设备
Zhang et al. Privacy-preserving and dynamic multi-attribute conjunctive keyword search over encrypted cloud data
CN111726363A (zh) 一种基于属性的多用户连接关键字可搜索加密方法
US20190156057A1 (en) Efficiently querying databases while providing differential privacy
Wang et al. Towards secure and effective utilization over encrypted cloud data
Yin et al. A fine-grained authorized keyword secure search scheme with efficient search permission update in cloud computing
CN111177787B (zh) 多数据拥有者环境中基于属性的连接关键字搜索方法
KR101489876B1 (ko) 암호화 문서 검색 시스템 및 방법
Wang et al. An efficient and privacy-preserving range query over encrypted cloud data
Mittal et al. Privacy preserving synonym based fuzzy multi-keyword ranked search over encrypted cloud data
Wang et al. Enabling efficient approximate nearest neighbor search for outsourced database in cloud computing
Smithamol et al. PECS: Privacy enhanced conjunctive search over encrypted data in the cloud supporting parallel search
Azraoui et al. Framework for Searchable Encryption with SQL Databases.
CN112328626B (zh) 面向云环境的支持模糊关键词排序的可搜索加密方法
Mayan et al. Semantic based multi lexical ranking technique for an effective search in protected cloud
He et al. An efficient ciphertext retrieval scheme based on homomorphic encryption for multiple data owners in hybrid cloud
CN108319670A (zh) 基于云计算的可验证的动态排名搜索方法
Guo et al. Privacy preserving weighted similarity search scheme for encrypted data
Rani et al. Top-K search scheme on encrypted data in cloud
Kamini et al. Encrypted multi-keyword ranked search supporting gram based search technique

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