1.一种基于短语的可搜索对称加密方法,其特征在于它是由下述步骤组成:(1) 客户端初始化
生成全局密钥x、y、z ;选择三个伪随机置换ω、θ、ρ ;选择两个伪随机函数g、(2) 生成关键词索引从待加密文件中抽取关键词及其位置关系建立关键词索引,关键词索引为三级链表结构,依次为:头节点链表、后继词链表及关键词位置链表;生成关键词索引的方法为:按关键词在文档集合中出现的先后顺序建立头节点链表,每个关键词仅出现一次,且指向一个后继词链表,即该关键词是其所指向后继词链表的头节点;头节点和其指向的后继词链表中的每一个节点组成具有前后继关系的关键词对;将每一个关键词对在文档中出现的次数及位置记录在关键词位置链表中生成关键词索引,后继词链表中每一个节点是其对应的每一个关键词位置链表的头节点;(3) 生成安全索引并上传云端服务器分别对关键词索引的头节点链表、后继词链表、关键词位置链表进行加密生成安全索引,并将其和用户以自选加密方案加密的文档一起上传至云端服务器;(4) 生成查询陷门并上传云端服务器客户查询时,客户端将用户的查询短语生成查询陷门并发送给云端服务器;生成查询陷门的方法为:将查询语句拆分成关键词集合{w1,w2,...,wn},用密钥x 和伪随机函数对关键词wi生成用密钥y 和伪随机函数g 对关键词wi生成g y(wi),用密钥z 和伪随机置换ω 对关键词wi生成ω z(wi) ;gy(wi)、和ωz(wi) 组合为一个三元组,所有三元组组成查询陷门如下:其中n 为用户输入的查询语句中关键词个数, 并上传至云端服务器;(5) 云端服务器执行查询并返回结果云端服务器接收到查询陷门后,用查询陷门中的三元组集合遍历上述安全索引,根据查询陷门长度将检索操作分为单关键词查询,双关键词查询和至少3 个关键词查询;单关键词查询查询陷门长度和双关键词查询陷门长度分别为1 个三元组和1 对三元组,进行一次查询操作;至少3 个关键词查询陷门长度至少为3 个三元组,每相邻的两个三元组做一次双关键词查询操作,对第n 次的查询操作的结果集合中的关键词位置l 减去n-1,再对所有结果集合进行交集运算,生成一个最终结果集合;将最终的结果集合中所有的文件标识id(d) 返回至客户端。2.根据权利要求1 所述的基于短语的可搜索对称加密方法,其特征在于所述的步骤(3) 中对关键词索引的头节点链表进行加密生成安全索引的方法为:用密钥x 和伪随机函数对头节点链表中第i 个节点的关键字wi生成由密钥生成算法生成密钥ki,0和密钥r ;用密钥r 和伪随机数生成器生成的si通过伪随机置换θ 得到θ r(si) ;用全局密钥y 和伪随机函数g 生成gy(wi) ;用gy(wi) 与密钥ki,0和θ r(si) 进行异或运算,将结果与连接组成一个节点的加密结果,即其中1 ≤i ≤头节点链表长度;对关键词索引的后继词链表进行加密生成安全索引的方法为:初始化一个计数器c 从1 开始,每加密一个节点,计数器c 加1 ;从第一个节点开始加密,节点由头节点链表节点所指向时,用指向它的头节点链表节点中的θr(si) 作为前缀;节点由后继词链表节点所指向时,用伪随机置换θ 和密钥r 对计数器c 生成θr(c) 作为前缀;用全局密钥z 和伪随机置换ω 对节点关键字wi,j生成ω z(wi,j),其中wi,j表示w i的第j 个后继关键词;由密钥生成算法生成密钥si,0和密钥λ ;用伪随机数生成器生成m 并由伪随机置换ρ 得到ρλ(m) ;由密钥生成算法生成密钥ki,j和密钥r ;用计数器c、密钥r 和伪随机置换θ 得到θr(c+1) ;将上述五个部分按顺序连接,使用指向该节点的上一个节点中的密钥ki,j-1作为加密密钥,用AES 加密算法按照密码分组链接模式进行加密,将加密结果与前缀θr(si) 或前缀θr(c) 连接组成节点wi,j的加密结果,即密节点,获取ωz(wi,j)、密钥si,0、ρλ(t)、密钥ki,j、θr(c+1) ;再比较ωz(w2) 与ωz(wi,j) 是否相同;若不相同,使用θr(c+1) 在安全的后继词链表中寻找对应节点,并用密钥ki,j解密获取新的ωz(wi,j)、新的密钥si,0,新的ρλ(t)、新的密钥ki,j、新的θr(c+1),比较ωz(wi+1)与新的ωz(wi,j) 是否相同,循环以上操作直至匹配成功;若相同,使用ρλ(t) 在安全的关键词位置链表中寻找对应节点,并用密钥si,0解密,获得文件标识id(d)、关键词对位置l、新的ρλ(t)、si,j,再用新的ρλ(t) 在安全的关键词位置链表中寻找对应节点,并用si,j解密,循环此操作直至安全的关键词位置链表结束,所有获得的文件标识id(d),关键词对位置l 构成一次查询的结果集合。4.根据权利要求1 所述的基于短语的可搜索对称加密方法,其特征在于所述的步骤(5) 中单关键词查询的方法为:单关键查询的查询陷门为:
用在安全的头节点链表中寻找对应的节点,用gy(w1) 与找到的节点异或运算获得θr(si) 和密钥ki,0,获取θr(si) 在安全的后继词链表中寻找对应的节点,用密钥ki,0解密节点,获得ωz(wi,j)、密钥si,0、ρλ(t)、密钥ki,j、θr(c+1) ;使用ρλ(t) 在安全的关键词位置链表中寻找对应节点,并用密钥si,0解密,获得文件标识id(d)、关键词对位置l、新的ρλ(t)、si,j,再用新的ρλ(t) 在安全的关键词位置链表中寻找对应节点,并用si,j解密,循环此操作直至安全的关键词位置链表结束,再用θr(c+1) 在安全的后继词链表中寻找对应的节点,用密钥ki,j解密,获得新的密钥s i,0、新的ρλ(t)、新的密钥ki,j、新的θr(c+1),重复以上操作直至安全的后继词链表结束,所有获得的文件标识id(d),关键词对位置l 构成一次查询的结果集合。5.根据权利要求1 所述的基于短语的可搜索对称加密方法,其特征在于所述的步骤(5) 中至少3 个关键词查询的方法为:至少3 个关键词查询的查询陷门为:进行多次双关键词查询,每次使用查询陷门中的第i 个三元组和第i+1 个三元组进行一次双关键词查询,i 初始为1,每做一次双关键词查询i 加1,每次查询中获得的位置信息l 减去i-1,将多次双关键词查询的结果集合进行交集运算获得最终结果集合,最终结果集合中所有文件标识返回至客户端。