发明名称 一种基于分块组织的密文索引结构及其管理方法
摘要 本发明公开了一种基于分块组织的密文索引结构及其管理方法。针对分块的密文索引结构,在创建索引时,首先是采用基于合并的索引创建方式创建明文索引,然后统一对明文索引进行分块加密。基于密文索引的维护机制则是分为索引中文档的添加、删除、修改。文档的添加主要分为二种情况,批量添加和少量添加,批量添加通过在磁盘上创建临时索引,少量添加则是通过创建内存索引。文档的删除首先为删除文档做一个删除标记,等到适当的时机文档进行统一删除。索引修改则是先删除原始文档,然后重新添加新文档。密钥管理策略是对索引加密密钥进行分层管理以及通过时间戳机制来实现密钥的更新。基于索引的访问控制策略是将访问控制信息整合到索引当中,实现文档级粒度的访问控制。
申请公布号 CN101655858B 申请公布日期 2011.05.18
申请号 CN200910063738.1 申请日期 2009.08.26
申请人 华中科技大学 发明人 李瑞轩;雷小强;吴炜;辜希武;文坤梅;卢正鼎;李雨前;燕昆;宋赛;高国强
分类号 G06F17/30(2006.01)I;G06F21/24(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 华中科技大学专利中心 42201 代理人 曹葆青
主权项 一种基于分块组织的密文索引结构的管理方法,所述密文索引结构包括词条表(100)、词条索引表(110)和倒排表(120);词条表(100)是文档集经过分词后的词条集合;在词条表中,首先通过哈希变换的方法将分词出来的原始词条映射到另外一个集合中,然后对新集合按照字典序排序,再按照分块进行存储,每个分块由时间戳、密钥参数和密文块三部分组成,时间戳用来对密文块的密钥参数更新进行控制,密钥参数用来和存储在加密卡中的主密钥一起生成工作密钥;每个密文块中含有固定数量的词条元组,每个词条元组包括一个词条,对于该分块的第一个词条元组,其后面的地址是该词条所对应文档频率和位置信息在倒排表(120)中的块的首地址, 而对于其他的词条元组,则其后面的地址是该词条所对应的文档频率和位置信息在倒排表(120)中对应的块偏移地址;词条索引表(110)是由词条表中每隔固定大小间隔取出的词条组成,对于词条索引表的组织方式,设置一个阈值N,记词条索引表中词条的个数为P,当P<=N时,将词条索引表进行整体加密,而当P>N时,对词条索引表按照词条表一样的方式进行分块加密; 倒排表(120)由词条在文档中频率信息和位置信息组成,其中频率信息包括文档词条在文档集中的出现频率以及出现词条的文档id, 位置信息则是每个词条在每个文档中出现的位置的集合;  所述密文索引结构的管理方法包括索引创建,索引维护和密钥管理三个部分;索引创建的流程为:将输入的文档集进行分词,并且记录词条在文档中出现的频率和位置信息,分词得到的词条存储在内存的临时词条表中,频率和位置信息存储在临时的倒排表中,临时词条表和倒排表大小超过内存缓冲区时,使用Hash函数将词条表变换到另外一个集合中;然后对变换后的词条表进行排序;当排序结束后,对于词条表,每隔固定大小间隔取出一个词条并组成词条索引表,然后对词条索引表,词条表,以及倒排表进行预加密,即预留加密后所需要的空间大小,经过预加密后,将词条索引表,词条表,倒排表写入磁盘,构成临时索引;若此时还有文档没有进行分词处理,则按照上述索引创建的流程继续生成临时索引,当所有文档都解析完后,将临时索引合并,并对合并后的索引文件进行加密,得到加密后的索引;索引维护分为如下几种情况:(1)批量添加文档首先对文档集进行解析,然后对处理结果进行倒排处理,在处理过程中,按照设置好的分块参数对处理结果进行分块,对数据分块进行预加密,当所有的文档都被处理后并建立完明文索引后,然后解密原始磁盘上的索引,将刚建立的明文索引和解密后的原始磁盘上已有的索引进行合并,加密完后即形成了新的密文索引;(2)增量添加少量文档将新加入的文档的词条进行建立一个内存索引,该内存索引并不加密,当内存索引达到给定的阈值时,按照批量建立索引的方法,就将其写入到磁盘,并进行加密;写入磁盘后,并不立即和原始索引合并,而是建立一个单独的小索引,当这样的小索引累积到给定的数量后,对这些小索引进行合并,将小索引集并形成了一个大索引;(3)删除文档首先是创建一个待删除文档列表,同时在索引中作标记,表示该文档已经删除,不再供检索使用,但并不立即从索引中真正删除文档,当删除的文档达到给定的数量时,再真正执行删除已经有删除标记的文档;(4)更新文档首先删除需要更新的文档,然后再添加更新后的文档,完成文档的更新;密钥管理的过程:密文索引的密钥管理利用硬件加密卡来实现,密钥分为主密钥和工作密钥,主密钥存储在硬件加密卡中,用来作为生成工作密钥的一部分;而工作密钥不在硬件加密卡中存储,通过主密钥和密钥参数共同作用临时生成的,生成的过程也在硬件加密卡中进行;生成密钥的同时,调用硬件加密卡中的加解密算法对需要加密的数据块进行加解密;密钥参数通过一个随机函数生成或者采用当前系统时间值作为密钥参数,并且存储在预加密的数据块的前面。
地址 430074 湖北省武汉市洪山区珞喻路1037号