CN101520800A - 一种基于密文的安全全文索引和检索系统 - Google Patents
一种基于密文的安全全文索引和检索系统 Download PDFInfo
- Publication number
- CN101520800A CN101520800A CN200910061325A CN200910061325A CN101520800A CN 101520800 A CN101520800 A CN 101520800A CN 200910061325 A CN200910061325 A CN 200910061325A CN 200910061325 A CN200910061325 A CN 200910061325A CN 101520800 A CN101520800 A CN 101520800A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- document
- entry
- index
- module
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于密文的安全全文索引和检索系统。系统中,密文索引库包含密文词条倒排索引和内部文档对象集合;密文文档库负责存储和管理密态XML文档;分词加密服务器将明文文本进行中文分词并逐条加密;密文全文索引服务器将原始明文文档规范为XML文档,加密存储到密文文档库,并结合文档元信息在密文索引库中创建相应内部文档对象,再利用密文词条为其构建密文倒排索引;密文全文检索服务器利用用户权限信息和密文词条检索密文索引库得到内部文档对象集合,根据其指针从密文文档库获取相应密态XML文档结果集,解密后返回给用户。本发明基于满足密文全文索引特殊要求的中文分词方法、安全高效的索引结构和检索机制,实现了结合访问控制策略的密文全文检索,具有索引过程安全高效、检索过程检索词不脱密、在密文环境中查全率和查准率高等特点。
Description
技术领域
本发明涉及信息检索和信息安全技术领域,具体涉及一种基于密文的安全全文索引和检索系统。
背景技术
全文检索这种情报检索技术最早出现于20世纪50年代。1959年,美国匹兹堡大学卫生法律中心建成的法律情报检索系统是世界上第一个全文检索系统。1973年,美国米德公司面向公众查询的收录有大量以法律、新闻、商业经济、政府出版物等内容为主的大型全文数据库Lexis的投入使用,标志着全文检索领域的诞生。20世纪80年代以来,英文全文检索发展得较为迅速和完善,如今已成为国外文字型信息检索的主流。
在国内,基于中文分词的全文检索技术目前也正在得到广泛的应用,但在安全性能上还远不能满足各领域用户的实际需求。随着信息系统在党政办公领域的广泛应用和政府上网工程的开展,在给党政办公带来极大方便的同时,也带来了安全方面的问题。信息安全一直是电子党务、电子政务建设中一个不可回避而且十分紧迫、重要的问题。另外,在国防、安全、公安、外交、商务、金融等高安全需求及涉密单位,文献信息资源的检索利用也必须建立在很高的安全性的基础之上。信息安全也是全文检索目前遇到的最迫切的难题之一。因此,我们需要寻求加密技术和全文索引的结合,以对这些密文文档提供密文状态下的全文检索。这里面涉及到三项亟待解决的技术难点:满足密文全文索引特殊要求的中文分词方法,高效安全的密文全文索引结构,密文全文检索与访问控制的结合策略。
传统的基于字符串匹配的中文分词方法从实现方式上可分为正向最长匹配、逆向最长匹配、双向最长匹配以及最短路径方法。但这些方法都不适用于我们的应用领域:密文全文检索。对于明文全文检索系统,由传统的基于字符串匹配的中文分词方法得到原始明文分词结果,送入全文索引引擎即可构建明文全文索引。该全文索引的倒排词表里记录了每一个词在每一篇文档中的位置信息,进而可以得到该词在每一篇文档中的频率信息。同时对于明文索引,倒排词表里没有出现,但可以通过位置信息来拼出的词条是可以被检索到的。而对于密文全文检索系统,出于安全考虑,词条位置信息和频率信息在密文索引里都必须被屏蔽掉,所以密文索引不能像明文索引那样,通过位置信息来拼出倒排词表里没有的词条。同时,密文索引倒排词表中的词条都是处于密态,无法进行模糊匹配。也就是说,密文索引倒排词表必须覆盖尽可能多的词条,以便于检索时对不同粒度的词条都能进行完全匹配;但倒排词表又不能过于庞大,以至于影响到密文检索的效率。因此,适用于密文全文索引的中文分词方法必须满足以下三个特征:词条粒度小、词条覆盖率高、倒排词表大小适中。满足这三个特征的中文分词方法是我们构建安全高效的密文全文索引的前提。
明文全文检索系统普遍采用倒排索引结构,以全文中所有可检索项(包括字段信息、任意字词)建立一个或多个索引。索引文件和倒排文件在物理上是分开的,逻辑上也可组合成为倒排索引文件。在索引中,每条记录包含索引词以及与该词有关逻辑记录号或指针。倒排文档中还可加入文献中各个词的位置信息,包括逻辑记录号、段号、行号等。检索时,由索引文件指向倒排文件,倒排文件指向主文件。这种索引结构虽然高效,但它本身没有安全上的考虑。我们需要在保留其高效特征的基础上,结合加密技术来进行索引安全性的扩展。
另外,明文全文检索系统普遍没有实施访问控制策略,其检索服务面向所有用户开放。为了提高密文全文检索系统在安全方面的可控性,我们需要在索引构建时注入文档的权限信息,在用户检索时引入相应的访问控制策略。
发明内容
本发明的目的在于提供一种基于密文的安全全文索引和检索系统,该系统基于我们提出的中文分词方法、密文全文索引结构和密文全文检索访问控制策略,对明文文档进行处理,实现了安全高效的密文全文索引构建及密文状态下的全文检索。
本发明提供的基于密文的安全全文索引和检索系统,其特征在于:该系统包括分词加密服务器、密文全文索引服务器、密文全文检索服务器、密文索引库和密文文档库;
密文索引库包含密文词条倒排索引和内部文档对象集合;其中,密文词条倒排索引由两级索引文件和倒排地址文件构成;两级索引文件中一级索引包含全部密文词条元组集合,每一个元组由密文词条和指向倒排地址文件的指针捆绑加密所得;将一级索引划分区间,取每一区间的首个词条再次建立索引即得二级索引,二级索引的每个元组由密文词条和指向一级索引中该词条所处区间的首地址指针构成,二级索引采取整体加密的方式存储;倒排地址文件中地址指针指向内部文档对象;内部文档对象由文档密态权限信息和密态路径指针构成;内部文档对象与原始明文文档一一对应;
密文文档库负责存储和管理密态XML文档;密态XML文档由原始明文文档规范化处理后整体加密所得;它与密文索引库的内部文档对象通过后者的密态路径指针关联;密态XML文档也与原始明文文档一一对应;
分词加密服务器接收来自密文全文索引服务器提交的明文文档文本和密文全文检索服务器提交的明文查询请求,将其进行中文分词后再逐条进行加密,最后将得到的密文词条分别传送给密文全文索引服务器和密文全文检索服务器;
密文全文索引服务器接收系统管理员提交的原始明文文档,该原始明文文档包括文档文本和元信息,其中元信息包括权限信息及用户自定义的描述信息;密文全文索引服务器将明文文档文本转发至分词加密服务器;同时,将原始明文文档进行规范化处理得到相应的XML文档,加密存储到密文文档库;密文全文索引服务器根据分词加密服务器提供的密文词条,结合原始明文文档的权限信息创建相应内部文档对象,并利用密文词条在密文索引库中构建该文档的密文倒排索引;
密文全文检索服务器在用户登录后,获取其权限信息,转发其提交的明文查询请求至分词加密服务器,并接收其返回的密文词条;根据密文词条和用户权限信息组合成复合查询条件,检索密文索引库,并接收其返回的用户权限范围内命中的内部文档对象集合,密文全文检索服务器根据该集合调用密文文档库获取相应的密文文档结果集,解密后返回给用户。
本发明解决了文献信息资源的检索利用与保密安全之间的矛盾,适用于高安全需求领域及涉密单位,具有索引过程安全高效、检索过程检索词不脱密、在密文环境中查全率和查准率高等效果,使用户在权限范围内得到很好的全文检索体验。与现有技术相比,本发明具有以下特点:
(1)本发明提出的中文分词方法满足密文全文索引的特殊要求:词条粒度小、词条覆盖率高、倒排词表大小适中。
(2)本发明提出的密文全文索引结构满足数据安全要求:密文全文索引基于密文词条构建,既保证了倒排索引的有序以不至于影响检索效率,又屏蔽了该索引序的实际语义;它也屏蔽了词条的位置信息和频率信息以抵抗统计攻击。在密文索引库中将密文词条和指向倒排地址文件的指针捆绑加密存储,既保护了指针的安全性,又屏蔽了明文索引词和密文索引内容的静态对应关系,进一步增强了索引的安全性。密文索引库和密文文档库隔离开来,通过密态路径指针关联,满足了系统数据的安全存储要求。
(3)本发明提出的密文全文索引结构满足高效检索要求:密文全文索引在倒排索引的基础上引入两级索引结构,在系统初始化时将二级索引一次性导入内存,较大地提高了检索效率,弥补了索引加密带来的性能损失。
(4)本发明实现了密文全文检索与访问控制的结合:文档在构建密文索引时,其权限信息以密态形式被安全的注入索引结构中;用户在全文检索时,其权限信息被注入提交的查询请求中;系统在密文索引库中检索时,对文档和用户的权限信息进行计算,保证了检索操作在用户权限范围内进行。
附图说明
图1为本发明系统的体系结构图。
图2为本发明系统所述分词加密服务器的工作流程图。
图3是本发明系统所述双向最短匹配分词方法的流程图。
图4为本发明系统所述密文全文索引服务器的工作流程图。
图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)为最大词长限制进行组词,将组词结果提供给重复词条过滤模块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)词条加密。将上述明文词条逐条加密,即得到相应密文词条。
使用该例,我们希望能说明这种中文分词方法比现有的中文分词方法更适合于密文全文索引的构建。现有的中文分词方法一般采取双向最长匹配法和最短路径方法,对“北京市政府”进行解析得到的分词结果为“北京市政府”,采取双向最短匹配法和最长路径方法得到的分词结果为“北京市政府”。对于明文索引,前者的分词结果很好的满足了索引和检索需求,因为“北京”这个词已经内包含在“北京市”词条中,利用模糊检索可以得到“北京”这个词条的查询请求。而对于密文索引,前者分词结果进入密文索引后,“北京市”和“政府”首先分别被加密,然后再建索引,而对于任何加密算法,“北京市”与“北京”加密后的密文串就不存在内包含关系了。也就是说我们只能检索“北京市”和“政府”这两个词条,“北京”、“市政府”这两个词条就无法被检索到,即发生了词条损失。我们采取双向最短匹配法和最长路径方法得到的初次分词结果为“北京市政府”,再以5为最大词长进行组词得到最终的明文分词结果为“北京”、“政府”、“市政府”和“北京市政府”,这些明文分词之间的部分重叠,对于明文索引来讲是冗余,但对于密文索引而言却是必须的,因为对各词条加密后,重叠关系就不再存在,进入密文索引后才能被全部检索到,避免了上述的词条损失情况。
我们的初次分词结果没有出现任何词条损失,词条组合后,保证了较高的词条覆盖率,而限制最大词长k为5也保证了倒排词表大小适中。所以该分词方法用于密文全文索引时,很好的满足了这三个特征:词条粒度小、词条覆盖率高、倒排词表大小适中。
另外,大家可以注意到,组词过程中出现了很多并未出现于词典的词汇,如“关于北京关于北京市北京市各级市各级市各级人民各级人民”等。之所以保留这样的组词结果,是为了保证词条覆盖率,从而在保证查全率的同时提高查准率,为密文检索结果集排序服务。原因在于词条的位置信息和频率信息在密文索引里都必须被屏蔽掉,那么当“关于”和“北京”相邻出现时,如果我们不组合出“关于北京”这样的词条,用户提交“关于北京”检索请求时,含有“关于北京市各级人民法院”的文档和含有“关于青岛市承办2008年北京奥运会帆船比赛”的文档在检索结果集中将并列出现,而实际上前者应该更符合用户的检索请求。我们的组词结果就能实现这种情况下的密文检索结果集排序,从而提高查准率。
如图4所示,密文全文索引服务器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中包含两级索引文件、倒排地址文件和内部文档对象集合。
所述两级索引中,一级索引包含全部密文词条元组集合,每一个元组由密文词条和指向倒排地址文件的指针捆绑加密所得。这样做的好处有三点:其一,采用密文词条而不是明文词条构建索引,既实现了倒排索引的有序又屏蔽了该索引序的实际语义;其二,将密文词条和指向倒排地址文件的指针捆绑加密,保护了该指针的安全性;其三,在索引构建过程中,指向倒排地址文件的指针会随着索引库的规模变化而动态改变,这样捆绑加密后的密文也是动态变化的,即破坏了明文索引词和密文索引内容的静态对应关系,进一步增强了索引的安全性。
将一级索引按一定词条数目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文档集合,解密后返回给用户。
以上所述为本发明的较佳实施例而已,但本发明不应该局限于该实施例和附图所公开的内容。所以凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。
Claims (4)
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文档集合,解密后返回给用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910061325XA CN101520800B (zh) | 2009-03-27 | 2009-03-27 | 一种基于密文的安全全文索引和检索系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910061325XA CN101520800B (zh) | 2009-03-27 | 2009-03-27 | 一种基于密文的安全全文索引和检索系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101520800A true CN101520800A (zh) | 2009-09-02 |
CN101520800B CN101520800B (zh) | 2010-09-01 |
Family
ID=41081389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910061325XA Expired - Fee Related CN101520800B (zh) | 2009-03-27 | 2009-03-27 | 一种基于密文的安全全文索引和检索系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101520800B (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101859323A (zh) * | 2010-05-31 | 2010-10-13 | 广西大学 | 密文全文检索系统 |
CN102262640A (zh) * | 2010-05-31 | 2011-11-30 | 中国移动通信集团贵州有限公司 | 一种全文检索文档数据库的方法及装置 |
CN102708216A (zh) * | 2012-06-28 | 2012-10-03 | 北京邮电大学 | 一种面向密文搜索的分词组织方法和聚类方法 |
CN102855292A (zh) * | 2010-05-31 | 2013-01-02 | 广西大学 | 密文全文检索系统的安全覆盖网构建方法及对应的全文检索方法 |
CN103049466A (zh) * | 2012-05-14 | 2013-04-17 | 深圳市朗科科技股份有限公司 | 一种基于分布式密文存储的全文检索方法及系统 |
CN103399913A (zh) * | 2013-07-31 | 2013-11-20 | 北京华易互动科技有限公司 | 一种搜索引擎索引的加密压缩方法及信息检索方法 |
CN103714096A (zh) * | 2012-10-09 | 2014-04-09 | 阿里巴巴集团控股有限公司 | 基于Lucene的倒排索引系统构建、数据处理方法及装置 |
CN102023985B (zh) * | 2009-09-17 | 2014-05-28 | 日电(中国)有限公司 | 盲化混合倒排索引表产生方法和设备、联合关键字搜索方法和设备 |
CN103995900A (zh) * | 2014-06-10 | 2014-08-20 | 福建师范大学 | 一种密文云数据查询方法 |
CN104376067A (zh) * | 2014-11-13 | 2015-02-25 | 北京海泰方圆科技有限公司 | 一种索引文件的录入和基于该索引文件的检索方法 |
CN104572827A (zh) * | 2014-12-08 | 2015-04-29 | 北京工业大学 | 一种基于跨明文与密文的混合搜索系统 |
CN104598550A (zh) * | 2014-12-31 | 2015-05-06 | 北京奇艺世纪科技有限公司 | 一种网络视频索引的更新方法和装置 |
CN104657460A (zh) * | 2015-02-10 | 2015-05-27 | 北京航空航天大学 | 一种基于大规模文件系统负载特征关键字的文件搜索方法 |
CN102110104B (zh) * | 2009-12-28 | 2016-12-14 | 北大方正集团有限公司 | 索引库的建立方法、检索方法和索引库的更新方法 |
CN106295262A (zh) * | 2015-05-18 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 一种可执行文件的处理方法、装置和系统 |
CN106599719A (zh) * | 2016-12-12 | 2017-04-26 | 西安电子科技大学 | 支持高效密钥管理的密文检索方法 |
CN106874401A (zh) * | 2016-12-30 | 2017-06-20 | 中安威士(北京)科技有限公司 | 一种面向数据库加密字段模糊检索的密文索引方法 |
CN108595978A (zh) * | 2018-03-30 | 2018-09-28 | 平安科技(深圳)有限公司 | 信息屏蔽方法、装置、终端及计算机可读存储介质 |
CN109255248A (zh) * | 2018-08-28 | 2019-01-22 | 福建南威软件有限公司 | 一种基于加解密算法的全文检索方法 |
CN109982105A (zh) * | 2017-12-27 | 2019-07-05 | 上海文广互动电视有限公司 | 用于广播平台的内容检索系统及方法 |
CN110263556A (zh) * | 2019-05-22 | 2019-09-20 | 广东安创信息科技开发有限公司 | 一种oa系统数据的加解密方法及系统 |
WO2019200699A1 (zh) * | 2018-04-19 | 2019-10-24 | 平安科技(深圳)有限公司 | 政务系统发文方法、装置、计算机设备及存储介质 |
CN111061731A (zh) * | 2019-12-02 | 2020-04-24 | 中国人民解放军国防科技大学 | 一种加密数据全文检索方法 |
-
2009
- 2009-03-27 CN CN200910061325XA patent/CN101520800B/zh not_active Expired - Fee Related
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102023985B (zh) * | 2009-09-17 | 2014-05-28 | 日电(中国)有限公司 | 盲化混合倒排索引表产生方法和设备、联合关键字搜索方法和设备 |
CN102110104B (zh) * | 2009-12-28 | 2016-12-14 | 北大方正集团有限公司 | 索引库的建立方法、检索方法和索引库的更新方法 |
CN102855292A (zh) * | 2010-05-31 | 2013-01-02 | 广西大学 | 密文全文检索系统的安全覆盖网构建方法及对应的全文检索方法 |
CN102262640A (zh) * | 2010-05-31 | 2011-11-30 | 中国移动通信集团贵州有限公司 | 一种全文检索文档数据库的方法及装置 |
CN102855292B (zh) * | 2010-05-31 | 2015-04-08 | 广西大学 | 密文全文检索系统的安全覆盖网构建方法及对应的全文检索方法 |
CN101859323B (zh) * | 2010-05-31 | 2013-01-16 | 广西大学 | 密文全文检索系统 |
CN101859323A (zh) * | 2010-05-31 | 2010-10-13 | 广西大学 | 密文全文检索系统 |
CN103049466B (zh) * | 2012-05-14 | 2016-04-27 | 深圳市朗科科技股份有限公司 | 一种基于分布式密文存储的全文检索方法及系统 |
CN103049466A (zh) * | 2012-05-14 | 2013-04-17 | 深圳市朗科科技股份有限公司 | 一种基于分布式密文存储的全文检索方法及系统 |
CN102708216A (zh) * | 2012-06-28 | 2012-10-03 | 北京邮电大学 | 一种面向密文搜索的分词组织方法和聚类方法 |
CN103714096B (zh) * | 2012-10-09 | 2018-02-13 | 阿里巴巴集团控股有限公司 | 基于Lucene的倒排索引系统构建、数据处理方法及装置 |
CN103714096A (zh) * | 2012-10-09 | 2014-04-09 | 阿里巴巴集团控股有限公司 | 基于Lucene的倒排索引系统构建、数据处理方法及装置 |
CN103399913A (zh) * | 2013-07-31 | 2013-11-20 | 北京华易互动科技有限公司 | 一种搜索引擎索引的加密压缩方法及信息检索方法 |
CN103995900A (zh) * | 2014-06-10 | 2014-08-20 | 福建师范大学 | 一种密文云数据查询方法 |
CN104376067A (zh) * | 2014-11-13 | 2015-02-25 | 北京海泰方圆科技有限公司 | 一种索引文件的录入和基于该索引文件的检索方法 |
CN104376067B (zh) * | 2014-11-13 | 2018-07-20 | 北京海泰方圆科技股份有限公司 | 一种索引文件的录入和基于该索引文件的检索方法 |
CN104572827B (zh) * | 2014-12-08 | 2017-12-15 | 北京工业大学 | 一种基于跨明文与密文的混合搜索系统 |
CN104572827A (zh) * | 2014-12-08 | 2015-04-29 | 北京工业大学 | 一种基于跨明文与密文的混合搜索系统 |
CN104598550A (zh) * | 2014-12-31 | 2015-05-06 | 北京奇艺世纪科技有限公司 | 一种网络视频索引的更新方法和装置 |
CN104598550B (zh) * | 2014-12-31 | 2018-09-25 | 北京奇艺世纪科技有限公司 | 一种网络视频索引的更新方法和装置 |
CN104657460A (zh) * | 2015-02-10 | 2015-05-27 | 北京航空航天大学 | 一种基于大规模文件系统负载特征关键字的文件搜索方法 |
CN104657460B (zh) * | 2015-02-10 | 2018-02-09 | 北京航空航天大学 | 一种基于大规模文件系统负载特征关键字的文件搜索方法 |
CN106295262A (zh) * | 2015-05-18 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 一种可执行文件的处理方法、装置和系统 |
CN106295262B (zh) * | 2015-05-18 | 2021-08-03 | 腾讯科技(深圳)有限公司 | 一种可执行文件的处理方法、装置和系统 |
CN106599719A (zh) * | 2016-12-12 | 2017-04-26 | 西安电子科技大学 | 支持高效密钥管理的密文检索方法 |
CN106874401A (zh) * | 2016-12-30 | 2017-06-20 | 中安威士(北京)科技有限公司 | 一种面向数据库加密字段模糊检索的密文索引方法 |
CN106874401B (zh) * | 2016-12-30 | 2020-06-23 | 中安威士(北京)科技有限公司 | 一种面向数据库加密字段模糊检索的密文索引方法 |
CN109982105A (zh) * | 2017-12-27 | 2019-07-05 | 上海文广互动电视有限公司 | 用于广播平台的内容检索系统及方法 |
CN108595978A (zh) * | 2018-03-30 | 2018-09-28 | 平安科技(深圳)有限公司 | 信息屏蔽方法、装置、终端及计算机可读存储介质 |
WO2019200699A1 (zh) * | 2018-04-19 | 2019-10-24 | 平安科技(深圳)有限公司 | 政务系统发文方法、装置、计算机设备及存储介质 |
CN109255248A (zh) * | 2018-08-28 | 2019-01-22 | 福建南威软件有限公司 | 一种基于加解密算法的全文检索方法 |
CN110263556A (zh) * | 2019-05-22 | 2019-09-20 | 广东安创信息科技开发有限公司 | 一种oa系统数据的加解密方法及系统 |
CN111061731A (zh) * | 2019-12-02 | 2020-04-24 | 中国人民解放军国防科技大学 | 一种加密数据全文检索方法 |
CN111061731B (zh) * | 2019-12-02 | 2023-10-10 | 中国人民解放军国防科技大学 | 一种加密数据全文检索方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101520800B (zh) | 2010-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101520800B (zh) | 一种基于密文的安全全文索引和检索系统 | |
Fu et al. | Enabling semantic search based on conceptual graphs over encrypted outsourced data | |
Fu et al. | Toward efficient multi-keyword fuzzy search over encrypted outsourced data with accuracy improvement | |
US10235335B1 (en) | Systems and methods for cryptographically-secure queries using filters generated by multiple parties | |
Fu et al. | Enabling central keyword-based semantic extension search over encrypted outsourced data | |
US7874013B2 (en) | Secure and granular index for information retrieval | |
US7519835B2 (en) | Encrypted table indexes and searching encrypted tables | |
CN100424704C (zh) | 基于密文的全文检索系统 | |
CN108334612A (zh) | 一种针对密文域的形近汉字全文模糊检索方法 | |
CN108062485A (zh) | 一种面向多服务器多用户的模糊关键字搜索方法 | |
US9946720B1 (en) | Searching data files using a key map | |
Li et al. | Enabling efficient fuzzy keyword search over encrypted data in cloud computing | |
CN115314295A (zh) | 一种基于区块链的可搜索加密技术方法 | |
Rane et al. | Multi-user multi-keyword privacy preserving ranked based search over encrypted cloud data | |
Boucenna et al. | Secure inverted index based search over encrypted cloud data with user access rights management | |
Mittal et al. | Privacy preserving synonym based fuzzy multi-keyword ranked search over encrypted cloud data | |
Bijral et al. | Efficient fuzzy search engine with B-tree search mechanism | |
CN103414555A (zh) | 阵列基于io块加密的密钥管理方法 | |
CN108549701A (zh) | 云环境加密外包数据语义扩展搜索方法及系统 | |
CN107291851A (zh) | 基于属性加密的密文索引构造方法及其查询方法 | |
CN114528370B (zh) | 动态多关键字模糊排序搜索方法及系统 | |
Grzebala et al. | Private record linkage: Comparison of selected techniques for name matching | |
Gampala et al. | An efficient Multi-Keyword Synonym Ranked Query over Encrypted Cloud Data using BMS Tree | |
Nepolean et al. | Privacy preserving ranked keyword search over encrypted cloud data | |
CN110324402A (zh) | 一种基于可信用户前端的可信云存储服务平台及工作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100901 Termination date: 20130327 |