一种基于密文的安全全文索引和检索系统的制作方法

文档序号:6483219阅读:510来源:国知局
专利名称:一种基于密文的安全全文索引和检索系统的制作方法
技术领域
本发明涉及信息检索和信息安全技术领域,具体涉及一种基于密文的 安全全文索引和检索系统。
背景技术
全文检索这种情报检索技术最早出现于20世纪50年代。1959年,美 国匹兹堡大学卫生法律中心建成的法律情报检索系统是世界上第一个全文 检索系统。1973年,美国米德公司面向公众査询的收录有大量以法律、新 闻、商业经济、政府出版物等内容为主的大型全文数据库Lexis的投入使 用,标志着全文检索领域的诞生。20世纪80年代以来,英文全文检索发 展得较为迅速和完善,如今已成为国外文字型信息检索的主流。
在国内,基于中文分词的全文检索技术目前也正在得到广泛的应用, 但在安全性能上还远不能满足各领域用户的实际需求。随着信息系统在党 政办公领域的广泛应用和政府上网工程的开展,在给党政办公带来极大方 便的同时,也带来了安全方面的问题。信息安全一直是电子党务、电子政 务建设中一个不可回避而且十分紧迫、重要的问题。另外,在国防、安全、 公安、外交、商务、金融等高安全需求及涉密单位,文献信息资源的检索 利用也必须建立在很高的安全性的基础之上。信息安全也是全文检索目前 遇到的最迫切的难题之一。因此,我们需要寻求加密技术和全文索引的结 合,以对这些密文文档提供密文状态下的全文检索。这里面涉及到三项亟 待解决的技术难点满足密文全文索引特殊要求的中文分词方法,高效安 全的密文全文索引结构,密文全文检索与访问控制的结合策略。
传统的基于字符串匹配的中文分词方法从实现方式上可分为正向最长 匹配、逆向最长匹配、双向最长匹配以及最短路径方法。但这些方法都不 适用于我们的应用领域密文全文检索。对于明文全文检索系统,由传统 的基于字符串匹配的中文分词方法得到原始明文分词结果,送入全文索引
6引擎即可构建明文全文索引。该全文索引的倒排词表里记录了每一个词在 每一篇文档中的位置信息,进而可以得到该词在每一篇文档中的频率信息。 同时对于明文索引,倒排词表里没有出现,但可以通过位置信息来拼出的 词条是可以被检索到的。而对于密文全文检索系统,出于安全考虑,词条 位置信息和频率信息在密文索引里都必须被屏蔽掉,所以密文索引不能像 明文索引那样,通过位置信息来拼出倒排词表里没有的词条。同时,密文 索引倒排词表中的词条都是处于密态,无法进行模糊匹配。也就是说,密 文索引倒排词表必须覆盖尽可能多的词条,以便于检索时对不同粒度的词
条都能进行完全匹配;但倒排词表又不能过于庞大,以至于影响到密文检 索的效率。因此,适用于密文全文索引的中文分词方法必须满足以下三个 特征词条粒度小、词条覆盖率高、倒排词表大小适中。满足这三个特征 的中文分词方法是我们构建安全高效的密文全文索引的前提。
明文全文检索系统普遍采用倒排索引结构,以全文中所有可检索项(包 括字段信息、任意字词)建立一个或多个索引。索引文件和倒排文件在物理 上是分开的,逻辑上也可组合成为倒排索引文件。在索引中,每条记录包 含索引词以及与该词有关逻辑记录号或指针。倒排文档中还可加入文献中 各个词的位置信息,包括逻辑记录号、段号、行号等。检索时,由索引文 件指向倒排文件,倒排文件指向主文件。这种索引结构虽然高效,但它本 身没有安全上的考虑。我们需要在保留其高效特征的基础上,结合加密技 术来进行索引安全性的扩展。 '
另外,明文全文检索系统普遍没有实施访问控制策略,其检索服务面 向所有用户开放。为了提高密文全文检索系统在安全方面的可控性,我们 需要在索引构建时注入文档的权限信息,在用户检索时引入相应的访问控 制策略。

发明内容
本发明的目的在于提供一种基于密文的安全全文索引和检索系统,该 系统基于我们提出的中文分词方法、密文全文索引结构和密文全文检索访 问控制策略,对明文文档进行处理,实现了安全高效的密文全文索引构建 及密文状态下的全文检索。
7本发明提供的基于密文的安全全文索引和检索系统,其特征在于该 系统包括分词加密服务器、密文全文索引服务器、密文全文检索服务器、 密文索引库和密文文档库;
密文索引库包含密文词条倒排索引和内部文档对象集合;其中,密文 词条倒排索引由两级索引文件和倒排地址文件构成;两级索引文件中一级 索引包含全部密文词条元组集合,每一个元组由密文词条和指向倒排地址 文件的指针捆绑加密所得;将一级索引划分区间,取每一区间的首个词条 再次建立索引即得二级索引,二级索引的每个元组由密文词条和指向一级 索引中该词条所处区间的首地址指针构成,二级索引采取整体加密的方式 存储;倒排地址文件中地址指针指向内部文档对象;内部文档对象由文档 密态权限信息和密态路径指针构成;内部文档对象与原始明文文档一一对 应;
密文文档库负责存储和管理密态XML文档;密态XML文档由原始明 文文档规范化处理后整体加密所得;它与密文索引库的内部文档对象通过 后者的密态路径指针关联;密态XML文档也与原始明文文档一一对应;
分词加密服务器接收来自密文全文索引服务器提交的明文文档文本和 密文全文检索服务器提交的明文查询请求,将其进行中文分词后再逐条进 行加密,最后将得到的密文词条分别传送给密文全文索引服务器和密文全 文检索服务器;
密文全文索引服务器接收系统管理员提交的原始明文文档,该原始明 文文档包括文档文本和元信息,其中元信息包括权限信息及用户自定义的 描述信息;密文全文索引服务器将明文文档文本转发至分词加密服务器; 同时,将原始明文文档进行规范化处理得到相应的XML文档,加密存储到 密文文档库;密文全文索引服务器根据分词加密服务器提供的密文词条, 结合原始明文文档的权限信息创建相应内部文档对象,并利用密文词条在 密文索引库中构建该文档的密文倒排索引;
密文全文检索服务器在用户登录后,获取其权限信息,转发其提交的 明文査询请求至分词加密服务器,并接收其返回的密文词条;根据密文词 条和用户权限信息组合成复合査询条件,检索密文索引库,并接收其返回的用户权限范围内命中的内部文档对象集合,密文全文检索服务器根据该 集合调用密文文档库获取相应的密文文档结果集,解密后返回给用户。
本发明解决了文献信息资源的检索利用与保密安全之间的矛盾,适用 于高安全需求领域及涉密单位,具有索引过程安全高效、检索过程检索词 不脱密、在密文环境中查全率和査准率高等效果,使用户在权限范围内得 到很好的全文检索体验。与现有技术相比,本发明具有以下特点
(1) 本发明提出的中文分词方法满足密文全文索引的特殊要求词条 粒度小、词条覆盖率高、倒排词表大小适中。
(2) 本发明提出的密文全文索引结构满足数据安全要求密文全文索 引基于密文词条构建,既保证了倒排索引的有序以不至于影响检索效率, 又屏蔽了该索引序的实际语义;它也屏蔽了词条的位置信息和频率信息以 抵抗统计攻击。在密文索引库中将密文词条和指向倒排地址文件的指针捆 绑加密存储,既保护了指针的安全性,又屏蔽了明文索引词和密文索引内 容的静态对应关系,进一步增强了索引的安全性。密文索引库和密文文档 库隔离开来,通过密态路径指针关联,满足了系统数据的安全存储要求。
(3) 本发明提出的密文全文索引结构满足高效检索要求密文全文索 引在倒排索引的基础上引入两级索引结构,在系统初始化时将二级索引一 次性导入内存,较大地提高了检索效率,弥补了索引加密带来的性能损失。
(4) 本发明实现了密文全文检索与访问控制的结合文档在构建密文 索引时,其权限信息以密态形式被安全的注入索引结构中;用户在全文检 索时,其权限信息被注入提交的査询请求中;系统在密文索引库中检索时,
对文档和用户的权限信息进行计算,保证了检索操作在用户权限范围内进 行。


图1为本发明系统的体系结构图。
图2为本发明系统所述分词加密服务器的工作流程图。 图3是本发明系统所述双向最短匹配分词方法的流程图。 图4为本发明系统所述密文全文索引服务器的工作流程图。
9图5为本发明系统所述密文索引库和密文文档库的内部结构示意图。 图6为本发明系统所述密文全文检索服务器的工作流程图。
具体实施例方式
如图1所示,本发明包括分词加密服务器100、密文全文索引服务器 200、密文全文检索服务器300、密文索引库400和密文文档库500。
密文索引库400包含密文词条倒排索引和内部文档对象集合。其中, 密文词条倒排索引由两级索引文件和倒排地址文件构成,倒排地址文件中 地址指针指向内部文档对象。内部文档对象由文档密态权限信息和密态路 径指针构成。内部文档对象与原始明文文档一一对应。
密文文档库500负责存储和管理密态XML文档。密态XML文档由原 始明文文档规范化处理后整体加密所得。它与密文索引库400的内部文档 对象通过后者的密态路径指针关联。密态XML文档也与原始明文文档一一 对应。 '
分词加密服务器100接收来自密文全文索引服务器200提交的明文文 档文本和密文全文检索服务器300提交的明文査询请求,将其进行中文分 词后再逐条进行加密,得到粒度小、覆盖率高的密文词条,并分别传送给 密文全文索引服务器200和密文全文检索服务器300。
密文全文索引服务器200接收系统管理员提交的原始明文文档,该原 始明文文档包括文档文本和元信息,其中元信息包括权限信息及用户自定 义的描述信息,如标题、发文单位和作者等。密文全文索引服务器200将 明文文档文本转发至分词加密服务器100;同时,将原始明文文档进行规范 化处理得到相应的XML文档,加密存储到密文文档库500。密文全文索引 服务器200根据分词加密服务器100提供的密文词条,结合原始明文文档 的权限信息创建相应内部文档对象,并利用密文词条在密文索引库400中 构建该文档的密文倒排索引。
密文全文检索服务器300在用户登录后,获取其权限信息,转发其提 交的明文査询请求至分词加密服务器100,并接收其返回的密文词条。根据 密文词条和用户权限信息组合成复合査询条件,检索密文索引库400,并接收其返回的用户权限范围内命中的内部文档对象集合,密文全文检索服务
器300根据该集合调用密文文档库500获取相应的密文文档结果集,解密 后返回给用户。
下面举例说明上述各部分的一种具体实施方式

如图2所示,分词加密服务器100包括停用词过滤模块110、专用名词 分词模块120、 一般名词分词模块130、词条组合模块140、重复词条过滤 模块150、词条加密模块160、停用词词表170、专用名词词表180和一般 名词词表190。
停用词词表170用于存放分词过程中需要过滤的语言单位,如标点符 号、虚词和用户自定义的停用词等。
专用名词词表180用于存放各专业领域的专用名词词条,如中华人民 共和国、自然语言理解、边际效益等。
一般名词词表190用于存放日常生活中使用的一般名词词条,如汽车、 文献、法律等。
上述的专用名词词表180和一般名词词表190可以进行动态更新,停 用词词表170可以用户自行配置。
停用词过滤模块110接收明文文档文本,对照停用词词表170进行停 用词过滤,并由此输出所有的分词区间。其中,分词区间指两个停用词之 间的连续文本序列。如文本"奥林匹克运动会,简称奥运会,是由国际奥 林匹克委员会主办的国际性综合运动会。",其中包含标点符号","、"。" 和停用词"的",那么进行停用词过滤后可以得到以下四个分词区间"奥 林匹克运动会"、"简称奥运会"、"是由国际奥林匹克委员会主办"和"国 际性综合运动会"。
专用名词分词模块120接收停用词过滤模块110输出的分词区间,对 照专用名词词表180,在各分词区间内采取正向最长匹配法(由左到右的方 向)得到专用名词词条,提供给重复词条过滤模块150。正向最长匹配法是 传统的基于字符串匹配的分词方法常用的实现方式之一,此处不再赘述。
一般名词分词模块130接收停用词过滤模块110输出的分词区间,对 照一般名词词表190,在各分词区间内采取双向最短匹配法和最长路径方法 得到小粒度一般名词词条和组词单字,提供给词条组合模块140。采取双向最短匹配法和最长路径方法可以避免词条损失,这是本发明
与现有中文分词方法的本质区别所在。参考图3,我们用更详细的流程进行
说明
(1) 输入全部分词区间。
(2) 开始一个新的分词区间。
(3) 对照一般名词词表190,在该分词区间内采取最短匹配法双向进行 分词,得到两组小粒度的一般名词词条和组词单字。
最短匹配法可以从正向(通常指从左到右)和逆向(通常指从右到左) 两个方向进行,其具体的匹配规则是相同的,本发明分别进行正向和逆向
匹配。下面以正向为例予以具体说明
对分词区间由正向开始匹配词表, 一旦有词条匹配成功就将其切出, 不再匹配更长的词条,而是继续该分词区间内后续文本序列的切分。例如, 对于分词区间"北京市政府",词表中存在"北京"、"北京市"、"北京市政 府"等词汇,进行最短匹配法的时候, 一旦匹配"北京"成功,则马上将 该词切出,不再匹配更长的词条如"北京市"、"北京市政府"等,而"市" 和"政府"则将在接下来的分词过程中以同样的原则陆续被切出。此处组 词单字的含义是指除了停用词之外的可以参与组词的单字。因为它具有独
立的语义作用,所以予以保留并提供给词条组合模块140用以组词。例如, "省"、"市"等具有语义作用的单字就是我们所指的组词单字;"在"、"个"、 "唉"等就不在我们的组词单字范围内了,它们已经作为停用词在停用词
过滤模块110中被过滤掉。
(4) 最长路径分析。具体是指比较步骤(3)得到的两组分词的词条数, 取词条数多的分词结果输出。如果两组词条数相等,则任取其一输出即可, 可以默认取正向最短匹配法的分词结果输出。最长路径分析的目的是为了 提高词条覆盖率。
(5) 判断全部分词区间是否都已经处理完毕?如果是,则输出全部区间 的分词结果;否则,转向步骤(2)。
词条组合模块140接收一般名词分词模块130输出的全部分词区间的 词条和组词单字,在各分词区间内以阈值k (4《k《8)为最大词长限制进
12行组词,将组词结果提供给重复词条过滤模块150。实际测试结果表明k 取为5的组词方法让词条覆盖率和组词效率之间得到很好的平衡。
例如,假设取k为5,对于文本"北京市政府公文",经过一般名词分 词模块130处理,得到"北京市政府公文"。组词时,先从"北京"开 始,得到"北京市"、"北京市政府"(因为"北京市政府公文"词长为7, 大于5,所以不会被组合出来);再从"市"开始,得到"市政府"、"市政 府公文";再从"政府"开始,得到"政府公文"。至此组词结束,我们于 是可以得到所有的组词结果"北京市"、"北京市政府"、"市政府"、"市政 府公文"、"政府公文"。
然后汇合该分词区间内组词所得的词条和初次分词词条。上述例子中 的文本"北京市政府公文",经过本阶段处理,即可得到该分词区间内的所 有词条"北京"、"市"、"政府"、"公文"、"北京市"、"北京市政府"、"市 政府"、"市政府公文"、"政府公文"。
重复词条过滤模块150接收来自专用名词分词模块120和词条组合模 块140的全部词条,过滤其中的重复词条,将结果提供给词条加密模块160。 出于安全考虑,词条的位置信息和频率信息在密文索引里都必须被屏蔽掉, 将重复词条在分词阶段就过滤掉,可以提高密文索引构建的效率。
词条加密模块160从重复词条过滤模块150得到所有的明文词条,逐 条加密输出相应的密文词条。
词条加密模块160并不局限于特定的加密算法和加密介质,可以根据 具体应用采取相应强度的加密方案。
下面,我们用一个更加具体的例子对上述流程进行说明。假设取最大
词长限制k为5,对于一篇明文公文中的一段文字
"北京市高级人民法院《关于北京市各级人民法院民事、经济和行政 纠纷案件级别管辖的意见》的通知"
(1)停用词和标点符号过滤。将标点符号"《"、"、"、"》"以及停用 词"和"、"的"过滤之后,便得到了6个分词区间。结果如下
"北京市高级人民法院"、"关于北京市各级人民法院民事"、"经济"、 "行政纠纷案件级别管辖"、"意见"、"通知"(2) 专用名词分词。对照专用名词词表,在各分词区间内采取正向最
长匹配法(由左到右的方向)得到专用名词词条。结果如下 "高级人民法院"
(3) —般名词分词。对照一般名词词表,在各分词区间内采取双向最 短匹配法和最长路径方法得到小粒度一般名词词条和组词单字。结果如下
"北京市高级人民法院"、"关于北京市各级人民法院民 事"、"经济"、"行政纠纷案件级别管辖"、"意见"、"通知"
(4) 词条组合。在各分词区间内以k (k已假设取为5)为最大词长限 制,对小粒度一般名词词条进行组词。结果如下
"北京市高级人民法院""北京市高级人民法院北京市北 京市高级市高级市高级人民高级人民人民法院"
"关于北京市各级人民法院民事""关于北京市各级人民 法院民事关于北京关于北京市北京市北京市各级市各级市各级人 民各级人民人民法院法院民事"
"经济""经济"
"行政纠纷案件级别管辖""行政纠纷案件级别管辖行政纠 纷纠纷案件案件级别级别管辖" "意见""意见" "通知""通知" 再汇合前面的专用名词词条"高级人民法院"
(5) 重复词条过滤。过滤重复出现的词条"北京市北京市人民法 院人民法院",最终分词结果如下
"北京市高级人民法院北京市北京市高级市高级市高级人民 高级人民人民法院关于各级民事关于北京关于北京市北京市各级 市各级市各级人民各级人民法院民事经济行政纠纷案件级别管 辖行政纠纷纠纷案件案件级别级别管辖意见通知高级人民法院"
(6) 词条加密。将上述明文词条逐条加密,即得到相应密文词条。 使用该例,我们希望能说明这种中文分词方法比现有的中文分词方法
更适合于密文全文索引的构建。现有的中文分词方法一般采取双向最长匹 配法和最短路径方法,对"北京市政府"进行解析得到的分词结果为"北
14京市政府",采取双向最短匹配法和最长路径方法得到的分词结果为"北 京市政府"。对于明文索引,前者的分词结果很好的满足了索引和检索需 求,因为"北京"这个词已经内包含在"北京市"词条中,利用模糊检索 可以得到"北京"这个词条的査询请求。而对于密文索引,前者分词结果 进入密文索引后,"北京市"和"政府"首先分别被加密,然后再建索引, 而对于任何加密算法,"北京市"与"北京"加密后的密文串就不存在内包 含关系了。也就是说我们只能检索"北京市"和"政府"这两个词条,"北 京"、"市政府"这两个词条就无法被检索到,即发生了词条损失。我们采 取双向最短匹配法和最长路径方法得到的初次分词结果为"北京市政 府",再以5为最大词长进行组词得到最终的明文分词结果为"北京"、"政 府"、"市政府"和"北京市政府",这些明文分词之间的部分重叠,对于明 文索引来讲是冗余,但对于密文索引而言却是必须的,因为对各词条加密 后,重叠关系就不再存在,进入密文索引后才能被全部检索到,避免了上 述的词条损失情况。
我们的初次分词结果没有出现任何词条损失,词条组合后,保证了较
高的词条覆盖率,而限制最大词长k为5也保证了倒排词表大小适中。所
以该分词方法用于密文全文索引时,很好的满足了这三个特征词条粒度 小、词条覆盖率高、倒排词表大小适中。
另外,大家可以注意到,组词过程中出现了很多并未出现于词典的词 汇,如"关于北京关于北京市北京市各级市各级市各级人民各级人民" 等。之所以保留这样的组词结果,是为了保证词条覆盖率,从而在保证查 全率的同时提高查准率,为密文检索结果集排序服务。原因在于词条的位 置信息和频率信息在密文索引里都必须被屏蔽掉,那么当"关于"和"北 京"相邻出现时,如果我们不组合出"关于北京"这样的词条,用户提交 "关于北京"检索请求时,含有"关于北京市各级人民法院"的文档和含
有"关于青岛市承办2008年北京奥运会帆船比赛"的文档在检索结果集中
将并列出现,而实际上前者应该更符合用户的检索请求。我们的组词结果 就能实现这种情况下的密文检索结果集排序,从而提高査准率。如图4所示,密文全文索弓I服务器200包括内部文档对象创建模块210、 文档权限信息注入模块220、文档密文词条倒排模块230、原始文档规范化 处理模块240和XML文档加密模块250。
内部文档对象创建模块210接收来自分词加密服务器100的密文词条 在密文索引库400中创建一个与原始明文文档对应的内部文档对象,提供 给文档权限信息注入模块220。原始明文文档与内部文档对象不同之处在于 后者并不存储文档内容,只是一个密文词条的虚拟容器,这个容器同时还 会盛放文档密态权限信息和指向密文文档库500的密态路径指针。
文档权限信息注入模块220接收来自内部文档对象创建模块210的内 部文档对象,将原始明文文档权限信息注入其中,提供给文档密文词条倒 排模块230。该权限信息起到索引层面访问控制的作用,把对索引的访问操 作控制在安全范围内。
文档密文词条倒排模块230接收来自文档权限信息注入模块220的内 部文档对象,利用其包含的密文词条在密文索引库400中构建倒排索引。 与明文倒排索引结构不同,在密文词条的倒排地址文件中,词条位置信息 和频率信息都被屏蔽掉。而且将词条的倒排地址和词条本身分开存放,它 们通过一个地址指针连接。然后将该密文词条和地址指针捆绑加密存放, 这样实现了索引的安全性。为了提高索引文件的读写性能,我们还引入了 两级索引机制。具体的索引结构详见后文所述。
原始文档规范化处理模块240抽取原始明文文档的文档文本和元信息, 经过规范化处理,生成相应的XML文档,提供给XML文档加密模块250。 该XML文档包含哪些元信息,如标题、发文单位和作者等,将视具体应用 要求而定,用户也可以自行配置。
XML文档加密模块250接收来自原始文档规范化处理模块240的XML 文档,将其整体加密并存储至密文文档库500。
XML文档加密模块250并不局限于特定的加密算法和加密介质,可以 根据具体应用采取相应强度的加密方案。
图5详细的显示了本发明所述的密文索引库400和密文文档库500的 内部构成。密文索引库400中包含两级索引文件、倒排地址文件和内部文档对象
隹a
朱n o
所述两级索引中, 一级索引包含全部密文词条元组集合,每一个元组 由密文词条和指向倒排地址文件的指针捆绑加密所得。这样做的好处有三 点其一,采用密文词条而不是明文词条构建索引,既实现了倒排索引的 有序又屏蔽了该索引序的实际语义;其二,将密文词条和指向倒排地址文 件的指针捆绑加密,保护了该指针的安全性;其三,在索引构建过程中, 指向倒排地址文件的指针会随着索引库的规模变化而动态改变,这样捆绑 加密后的密文也是动态变化的,即破坏了明文索引词和密文索引内容的静 态对应关系,进一步增强了索引的安全性。
将一级索引按一定词条数目N (N的取值视一级索引总词条数目而定, 通常为总词条数目的1%。至1%之间)划分区间,取每一区间的首个词条再 次建立索引即得二级索引,二级索引的规模是一级索引的1/N,可以一次性 导入内存,起到加速访问索引的作用,以弥补索引加密带来的性能损失。 二级索引的每个元组由密文词条和指向一级索引中该词条所处区间的首地 址指针构成。二级索引采取整体加密的方式存储。
所述倒排地址文件按词条存储其对应的倒排文档地址指针集合,该指 针指向所倒排文档对应的内部文档对象。
所述内部文档对象由对应原始明文文档转换得到,包含原始明文文档 密态权限信息和密态路径指针。如图5所示,权限信息包括文档级别、可 査阅部门和发文时间等信息,路径指针是指向密文文档库500中对应XML
文档的外部路径。
密文文档库500中包含全部密态XML文档。
密态XML文档由原始明文文档规范化处理后整体加密所得。如图5 所示,XML文档包含标题、发文单位、作者和正文等域,它们通过抽取原 始明文文档文本和元信息得到,用户可以自行配置需要哪些域。
如图6所示,密文全文检索服务器300包括用户登录模块310、査询请 求提交模块320、检索条件组合模块330、密文全文检索模块340和检索结果集处理模块350。
用户登录模块310用于验证用户身份的合法性,如果合法才允许其进 入系统进行全文检索操作,并获取其权限信息提供给检索条件组合模块 330。与传统的明文全文检索系统不同,我们的密文全文检索服务只面向内 部用户开放,这就意味着对用户的访问必须有所控制。
査询请求提交模块320接收合法用户提交的明文查询请求并转发给分 词加密服务器100进行中文分词及加密处理。
检索条件组合模块330接收来自用户登录模块310的用户权限信息, 和分词加密服务器100的密文词条,然后把它们组合成复合查询条件提供 给密文全文检索模块340。
密文全文检索模块340接收来自检索条件组合模块330的复合査询条 件,根据它到密文索引库400中进行检索,得到用户权限范围内命中的内 部文档对象集合,提供给检索结果集处理模块350。详细过程如下
(1) 将图5中所述的二级索引导入内存;
(2) 将检索条件组合模块330中各密文词条根据二级索引快速定位至 一级索引,再由一级索引得到命中的内部文档对象集合,这个过程中会涉 及到两级索引中元组的解密操作,但检索词条本身是在不脱密的状态下进 行匹配的,所以整个检索过程是高度安全的;
(3) 结合检索条件组合模块330中用户的权限信息对步骤(2)中命 中结果进行过滤,最终得到用户权限范围内的内部文档对象集合。
检索结果集处理模块350接收来自密文全文检索模块340的内部文档 对象集合,逐一解密其中的密态路径指针,根据该指针从密文文档库500 中调取相应的密态XML文档集合,解密后返回给用户。
以上所述为本发明的较佳实施例而已,但本发明不应该局限于该实施 例和附图所公开的内容。所以凡是不脱离本发明所公开的精神下完成的等 效或修改,都落入本发明保护的范围。
18
权利要求
1、一种基于密文的安全全文索引和检索系统,其特征在于该系统包括分词加密服务器(100)、密文全文索引服务器(200)、密文全文检索服务器(300)、密文索引库(400)和密文文档库(500);密文索引库(400)包含密文词条倒排索引和内部文档对象集合;其中,密文词条倒排索引由两级索引文件和倒排地址文件构成;两级索引文件中一级索引包含全部密文词条元组集合,每一个元组由密文词条和指向倒排地址文件的指针捆绑加密所得;将一级索引划分区间,取每一区间的首个词条再次建立索引即得二级索引,二级索引的每个元组由密文词条和指向一级索引中该词条所处区间的首地址指针构成,二级索引采取整体加密的方式存储;倒排地址文件中地址指针指向内部文档对象;内部文档对象由文档密态权限信息和密态路径指针构成;内部文档对象与原始明文文档一一对应;密文文档库(500)负责存储和管理密态XML文档;密态XML文档由原始明文文档规范化处理后整体加密所得;它与密文索引库(400)的内部文档对象通过后者的密态路径指针关联;密态XML文档也与原始明文文档一一对应;分词加密服务器(100)接收来自密文全文索引服务器(200)提交的明文文档文本和密文全文检索服务器(300)提交的明文查询请求,将其进行中文分词后再逐条进行加密,最后将得到的密文词条分别传送给密文全文索引服务器(200)和密文全文检索服务器(300);密文全文索引服务器(200)接收系统管理员提交的原始明文文档,该原始明文文档包括文档文本和元信息,其中元信息包括权限信息及用户自定义的描述信息;密文全文索引服务器(200)将明文文档文本转发至分词加密服务器(100);同时,将原始明文文档进行规范化处理得到相应的XML文档,加密存储到密文文档库(500);密文全文索引服务器(200)根据分词加密服务器(100)提供的密文词条,结合原始明文文档的权限信息创建相应内部文档对象,并利用密文词条在密文索引库(400)中构建该文档的密文倒排索引;密文全文检索服务器(300)在用户登录后,获取其权限信息,转发其提交的明文查询请求至分词加密服务器(100),并接收其返回的密文词条;根据密文词条和用户权限信息组合成复合查询条件,检索密文索引库(400),并接收其返回的用户权限范围内命中的内部文档对象集合,密文全文检索服务器(300)根据该集合调用密文文档库(500)获取相应的密文文档结果集,解密后返回给用户。
2、根据权利要求1所述的基于密文的安全全文索引和检索系统,其特 征在于分词加密服务器(100)包括停用词过滤模块(110)、专用名词分词模 块(120)、 一般名词分词模块(130)、词条组合模块(140)、重复词条过滤模块 (150)、词条加密模块(160)、停用词词表(170)、专用名词词表(180)和一般名 词词表(190);停用词词表(170)用于存放分词过程中需要过滤的语言单位;专用名词词表(180)用于存放各专业领域的专用名词词条; 一般名词词表(190)用于存放日常生活中使用的一般名词词条;停用词过滤模块(110)接收明文文档文本,对照停用词词表(170)进行停 用词过滤,并由此输出所有的分词区间;其中,分词区间指两个停用词之 间的连续文本序列;专用名词分词模块(120)接收停用词过滤模块(110)输出的分词区间,对 照专用名词词表(180),在各分词区间内采取正向最长匹配法得到专用名词 词条,提供给重复词条过滤模块(150);一般名词分词模块(130)接收停用词过滤模块(110)输出的分词区间,对 照一般名词词表(190),在各分词区间内采取双向最短匹配法,得到两组一 般名词词条和组词单字;再在所述的两组一般名词词条和组词单字中取词 条数多的分词结果输出;词条组合模块(140)接收一般名词分词模块(130)输出的一般名词词条 和组词单字,在各分词区间内以阈值k为最大词长限制进行组词,将组词 结果提供给重复词条过滤模块(150);其中,4《k《8;重复词条过滤模块(150)接收来自专用名词分词模块(120)和词条组合模块(140)的全部词条,过滤其中的重复词条,将结果提供给词条加密模块(160);词条加密模块(160)从重复词条过滤模块(150)得到所有的明文词条,逐 条加密输出相应的密文词条。
3、 根据权利要求1或2所述的基于密文的安全全文索引和检索系统, 其特征在于密文全文索引服务器(200)包括内部文档对象创建模块(210)、 文档权限信息注入模块(220)、文档密文词条倒排模块(230)、原始文档规范 化处理模块(240)和XML文档加密模块(250);内部文档对象创建模块(210)接收来自分词加密服务器(100)的密文词 条,在密文索引库(400)中创建一个与原始明文文档对应的内部文档对象, 提供给文档权限信息注入模块(220);文档权限信息注入模块(220)接收来自内部文档对象创建模块(210)的 内部文档对象,将原始明文文档权限信息注入其中,提供给文档密文词条 倒排模块(230);文档密文词条倒排模块(230)接收来自文档权限信息注入模块(220)的 内部文档对象,利用其包含的密文词条在密文索引库(400)中构建倒排索引;原始文档规范化处理模块(240)抽取原始明文文档的文档文本和元信 息,经过规范化处理,生成相应的XML文档,提供给XML文档加密模块 (250);XML文档加密模块(250)接收来自原始文档规范化处理模块(240)的 XML文档,将其整体加密并存储至密文文档库(500)。
4、 根据权利要求1或2所述的基于密文的安全全文索引和检索系统, 其特征在于密文全文检索服务器(300)包括用户登录模块(310)、査询请求 提交模块(320)、检索条件组合模块(330)、密文全文检索模块(340)和检索结 果集处理模块(350);用户登录模块(310)用于验证用户身份的合法性,允许合法用户进入系 统进行全文检索操作,并获取其权限信息提供给检索条件组合模块(330); 查询请求提交模块(320)接收合法用户提交的明文查询请求并转发给分词加密服务器(100)进行中文分词及加密处理;检索条件组合模块(330)接收来自用户登录模块(310)的用户权限信息, 和分词加密服务器(100)的密文词条,然后把它们组合成复合査询条件提供 给密文全文检索模块(340);密文全文检索模块(340)接收来自检索条件组合模块(330)的复合查询 条件,根据它到密文索引库(400)中进行检索,得到用户权限范围内命中的 内部文档对象集合,提供给检索结果集处理模块(350);检索结果集处理模块(350)接收来自密文全文检索模块(340)的内部文 档对象集合,逐一解密其中的密态路径指针,根据该指针从密文文档库(500) 中调取相应的密态XML文档集合,解密后返回给用户。
全文摘要
本发明公开一种基于密文的安全全文索引和检索系统。系统中,密文索引库包含密文词条倒排索引和内部文档对象集合;密文文档库负责存储和管理密态XML文档;分词加密服务器将明文文本进行中文分词并逐条加密;密文全文索引服务器将原始明文文档规范为XML文档,加密存储到密文文档库,并结合文档元信息在密文索引库中创建相应内部文档对象,再利用密文词条为其构建密文倒排索引;密文全文检索服务器利用用户权限信息和密文词条检索密文索引库得到内部文档对象集合,根据其指针从密文文档库获取相应密态XML文档结果集,解密后返回给用户。本发明基于满足密文全文索引特殊要求的中文分词方法、安全高效的索引结构和检索机制,实现了结合访问控制策略的密文全文检索,具有索引过程安全高效、检索过程检索词不脱密、在密文环境中查全率和查准率高等特点。
文档编号G06F21/24GK101520800SQ20091006132
公开日2009年9月2日 申请日期2009年3月27日 优先权日2009年3月27日
发明者卢正鼎, 炜 吴, 赛 宋, 左翠华, 文坤梅, 李瑞轩, 李雨前, 昆 燕, 辜希武, 雷小强 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1