发明名称 一种面向云存储的密文搜索认证方法
摘要 本发明提供一种面向云存储的密文搜索认证方法,涉及计算机信息安全领域,包括以下步骤:选择要上传的文件并指定关键字,构造倒排索引生成加密索引和搜索认证符,发送至云服务器存储;用户针对某关键字生成对应搜索令牌,云服务器进行搜索操作返回搜索结果;用户针对搜索结果生成挑战信息,云服务器生成证明,用户验证证明值完成搜索结果验证;用户选择要添加/删除的文件,生成更新令牌,云服务器更新加密索引、搜索认证符,返回更新信息。本发明不会向云服务器和攻击者泄露用户数据信息。用户可使用关键字对存储在云服务器的密文进行搜索,并可对搜索结果正确性进行认证,支持用户文件的动态更新,确保用户数据的机密性以及搜索结果的正确性。
申请公布号 CN103607405B 申请公布日期 2016.11.23
申请号 CN201310616577.0 申请日期 2013.11.27
申请人 东北大学 发明人 周福才;孟祥宇;徐剑;魏小淞;张昕昊
分类号 H04L29/06(2006.01)I;H04L29/08(2006.01)I;H04L9/00(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 沈阳东大知识产权代理有限公司 21109 代理人 梁焱
主权项 一种面向云存储的密文搜索认证方法,其特征在于:包括以下步骤:步骤1:用户选择要上传的文件并指定关键字,利用以文件为目录的文件索引构造以关键字为目录的倒排索引进而生成加密索引和搜索认证符,将加密后的密文、加密索引和搜索认证符发送至云服务器进行存储;利用倒排索引生成加密索引的过程如下:步骤1.1:初始化搜索数组和删除数组,分别用来存储文件链表及关键字链表,初始化搜索表和删除表,分别用来存放关键字链表头结点信息和文件链表头结点信息;文件索引中的每项索引称为文件链表,倒排索引中的每项索引称为关键字链表;步骤1.2:遍历倒排索引,计算文件及关键字的MD5值,利用计算出的MD5值填充入搜索数组随机位置,并在搜索数组节点中存储当前节点及其前驱节点在搜索数组中的位置和后继节点在搜索数组中的位置,存储随机字串并利用此字串对当前节点进行加密,将关键字链表头结点在搜索数组中的位置存入搜索表中;步骤1.3;遍历文件链表,计算文件及关键字的MD5值,利用计算出的MD5值填充入删除数组随机位置,并在删除数组节点中存储当前节点及其前驱、后继节点在删除数组中的位置,存储随机字串并利用此字串对当前节点进行加密,将文件链表头结点在删除数组中的位置存入删除表中;步骤1.4:遍历结束,构造空闲链表并存储在删除数组中;步骤1.5:将生成的搜索数组、删除数组、搜索表、删除表作为加密索引写入文件;利用倒排索引生成搜索认证符的过程如下:步骤1.6:根据倒排索引中关键字的个数初始化MHT数组,MHT英文全称是Merkle Hash Tree;步骤1.7:遍历倒排索引,针对倒排索引中的每一个关键字链表,利用关键字及对应的所有文件信息计算MHT叶子节点的值,计算后写入MHT数组对应的叶子位置;步骤1.8:遍历完成后,根据叶子节点的值向上计算,得到整个MHT即搜索认证符,用户存储MHT的根节点值;步骤2:用户针对某关键字计算其MD5值进而生成对应搜索令牌,发出搜索请求,云服务器利用搜索令牌在加密索引上进行搜索操作,返回搜索结果;云服务器利用搜索令牌在加密索引上进行搜索操作的过程如下:步骤2.1:接收搜索令牌,读取加密索引及密文文件信息;步骤2.2:加密索引中找到搜索令牌对应的文件ID集合;步骤2.3:从密文集合中找到对应的文件并返回给用户;步骤3:用户针对搜索结果生成挑战信息并发出验证请求,云服务器利用挑战信息在MHT上进行遍历从而生成证明,用户验证证明值从而完成搜索结果验证;具体步骤为:步骤3.1:用户获取关键字,计算关键字MD5值,生成挑战信息,发往云服务器; 步骤3.2:云服务器接收挑战信息,在MHT上找到挑战信息对应的叶子节点;步骤3.3:从叶子节点遍历至根节点,记录遍历路径上各个节点的兄弟节点并作为关键路径,整合关键路径作为证明值,返回给用户;步骤3.4:用户接收云服务器返回的证明信息,利用文件MD5值得到挑战对应的MHT叶子节点值;步骤3.5:利用叶子节点值和证明值计算验证值,该验证值为计算得到的MHT的根节点值,与用户存储MHT的根节点值对比:若计算得到的MHT的根节点与用户存储MHT的根节点值相同,则验证通过,搜索结果正确,否则,验证不通过;步骤4:用户选择要添加/删除的文件,生成更新令牌,发出更新请求,云服务器添加/删除文件,利用更新令牌更新加密索引、搜索认证符,返回更新信息;添加文件时,更新加密索引的步骤如下:步骤4.1:利用要添加的文件产生新的文件及关键字对,将该关键字对存入搜索数组对应的关键字链表中,更新新的文件及关键字对涉及的所有在搜索数组及删除数组中的节点,若该关键字首次出现,则将该关键字添加到搜索表中;步骤4.2:将文件及关键字对存储至删除数组;步骤4.3:将文件添加到删除表;删除文件时,更新加密索引的步骤如下:步骤4.4:利用要删除的文件找到其对应的文件链表头结点位置,进而遍历该文件链表,修改该文件链表中的所有节点;步骤4.5:从删除表中删除当前文件对应的节点。
地址 110819 辽宁省沈阳市和平区文化路3号巷11号