CN100424704C - 基于密文的全文检索系统 - Google Patents

基于密文的全文检索系统 Download PDF

Info

Publication number
CN100424704C
CN100424704C CNB2006101246911A CN200610124691A CN100424704C CN 100424704 C CN100424704 C CN 100424704C CN B2006101246911 A CNB2006101246911 A CN B2006101246911A CN 200610124691 A CN200610124691 A CN 200610124691A CN 100424704 C CN100424704 C CN 100424704C
Authority
CN
China
Prior art keywords
module
index
information
user
document
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.)
Expired - Fee Related
Application number
CNB2006101246911A
Other languages
English (en)
Other versions
CN1932816A (zh
Inventor
李瑞轩
卢正鼎
宋伟
左翠华
张茂元
文坤梅
何云天
万宇涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CNB2006101246911A priority Critical patent/CN100424704C/zh
Publication of CN1932816A publication Critical patent/CN1932816A/zh
Application granted granted Critical
Publication of CN100424704C publication Critical patent/CN100424704C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供的一种基于密文的全文检索系统,该系统包括数据库、登录模块、查询模块、结果集处理模块、电子文档处理模块、索引模块、审计管理模块、用户管理模块和权限管理模块。其中查询模块包括查询分词模块、查询加密模块、逻辑组合模块、查询子模块、访问控制模块和结果集排序模块;结果集处理模块包括文摘模块和快照模块;索引模块包括索引分词模块、索引加密模块和索引子模块。本发明系统针对索引库不包含索引词在原文的位置信息的情况,提出了一种分词策略——中文语义与自动切分相结合的分词策略,并且在用户访问文档的过程中加入访问控制来限制用户的权限,以保证敏感信息的安全性。本发明系统可以实现密文条件下的全文信息检索,保证了敏感数据的安全性检索,本发明系统具有安全性强、执行效率高的特点。

Description

基于密文的全文检索系统
技术领域
本发明属于计算机检索技术领域,具体涉及一种基于密文的全文检索系统。
背景技术
信息时代产生了大量数字信息,其中文本信息是最基本和最常用的存储形式,为了能在浩如烟海的文本信息中找到自己所需,人们迫切需要一个高效的检索工具。如何高效地存储和查询文本这种非结构数据,就是一个很值得研究的问题。这其中的全文检索技术和全文数据库技术成为国内外学者研究的热点。
全文检索就是以文本数据为主要处理对象,基于全文标引,使用自然语言进行检索的技术。在信息检索领域,全文检索一直是一个比较复杂的问题。与普通数据库检索中的结构化数据查询不同,全文检索主要是对非结构化数据进行查询,比起标引检索来,全文检索提供了全新的,强大的检索功能,方便多角度、多侧面的综合利用信息资源。
现在全文检索技术已经发展得较为成熟,国外的全文检索软件较早地得到了应用。中文全文检索技术在原理上同西文全文检索是一致的,但汉字本身的特点使中文系统的实现比西文系统更为复杂。因此,国外许多完善的全文检索系统很难直接应用于处理汉字信息。目前,我国自主中文全文检索技术已经达到了较高水平,在传统市场也获得了很高的占有率。主要集中在汉字全文检索、超文本全文检索、网络环境下的全文检索技术等方面。
计算机网络技术的发展促进计算机应用日益广泛和深入,同时也使网络环境下计算机应用的安全问题日益复杂和突出。对数据进行加密处理是目前计算机应用中防范信息泄漏的主要安全手段之一。目前涉密和安全部门的计算机应用系统中数据信息都是以密文形式存放,最大限度地保证了系统和数据信息的安全性。虽然全文检索技术和加密算法都已经非常成熟并且有很好的商业产品出现,但是如何在密文前提下实现全文检索,在国内外的相关研究和产品领域内仍然还是空白。加密技术和全文索引的结合有很多难点,首先,为了保证索引信息的安全可靠,对于索引项的信息必须是经过加密处理的,而经过加密技术处理之后,密文信息就不能采用明文状态下的匹配技术进行处理,因此经过加密技术处理之后的文本信息是不能与现有全文检索机制直接结合而实现密文全文检索的。其次,现有的全文检索系统往往是构建全文索引,因此索引的数据量往往很大,而加密技术会进一步带来信息量的增大,这样作为一个实用系统,把加密技术引入全文检索系统中效率问题是必须予以考虑及高度重视的。
发明内容
本发明的目的在于提供一种基于密文的全文检索系统,该检索系统具有安全性强、执行效率高的特点。
本发明提供的一种基于密文的全文检索系统,该系统包括数据库、登录模块、查询模块、结果集处理模块、电子文档处理模块、索引模块、审计管理模块、用户管理模块和权限管理模块;其中,
数据库用于存储用户及用户权限方面的信息,它包括用户信息库、部门信息库、部门组信息库、级别信息库和审计信息库;
登录模块用于接收来自用户输入信息的服务请求,通过与数据库的信息交互,对服务请求进行验证,验证成功则允许用户进入系统,如果验证失败,则拒绝用户进入系统;当用户以管理员身份成功登录时,选择对审计管理模块、用户管理模块和权限管理模块进行管理;当用户以普通用户身份成功登录时,则进入查询模块;
查询模块用于接收用户输入的检索信息,并对检索信息进行分词、加密、逻辑组合处理得到查询语句,然后根据查询语句在索引库中进行查询匹配,返回和查询语句匹配并且用户有权访问的所有文档信息,根据文档的匹配程度对结果集进行排序处理,将排序后的结果集交给结果集处理模块处理;
结果集处理模块用于接收来自查询模块的结果集,并根据密文库的信息来建立结果集的文摘信息和快照信息,并将用户查看快照信息的记录存储于数据库中;
电子文档处理模块对待归档电子文档文件进行预处理,将特定文件格式的文件转化为纯文本文件,然后将这些纯文本文件进行加密处理,建立密文库;并为索引模块提供所有纯文本文件的内容和标题信息;
索引模块接收来自电子文档处理模块的纯文本文件的内容和标题信息,利用中文语义与自动切分相结合的分词策略对纯文本文件的内容和标题信息进行分词处理,得到索引词,然后加密索引词,再利用加密后的索引词和文档相关信息建立索引库;
审计管理模块接收来自用户输入的查询信息,通过与数据库的信息交互,利用用户IP地址、用户名和时间范围来对用户的操作进行查询,获得满足查询条件的所有记录;
用户管理模块用于接收来自管理员的操作请求,对用户信息进行管理,并与数据库进行交互,分别实现显示用户信息,添加用户信息,删除用户信息和修改用户信息,并将管理员的操作记入数据库中;
权限管理模块用于接收来自管理员的操作请求,对部门权限和部门组进行管理,并与数据库进行交互,并将管理员的操作记入数据库中;
登录模块包括密码验证模块和校验模块;
密码验证模块用于从数据库的用户信息库中获得用户密码并进行解密,然后和该用户输入的密码进行匹配,看用户输入的密码是否正确;
校验模块用于验证数据库中存储的密码是否被恶意改变过;
结果集处理模块包括文摘模块和快照模块;其中,
文摘模块用于显示排序后结果集的文档中包含有检索词的文摘信息;
快照模块用于显示排序后结果集中文档的全部明文文本信息,并且突出显示检索词,以便用户阅览,并且把用户已阅览文档的消息加入审计信息库中;
其特征在于:
查询模块包括查询分词模块、查询加密模块、逻辑组合模块、查询子模块、访问控制模块和结果集排序模块;
查询分词模块接收来用户的检索命令,采用下述中文语义与自动切分相结合的分词策略对检索命令进行分词,并将分词处理后的检索词发送给查询加密模块;所述中文语义与自动切分相结合的分词策略是指首先将待分词的内容进行中文语义分词后得到有语义的待分词序列,然后再将待分词序列基于词长进行组合处理得到检索词;
查询加密模块用于对经分词处理后的检索词进行加密处理,并将加密处理后的检索词发送给逻辑组合模块;
逻辑组合模块将加密处理后的检索词进行逻辑组合,并将逻辑组合信息发送给查询子模块;
查询子模块利用逻辑组合信息在索引库中查找所有匹配的文档信息,并利用访问控制模块对匹配的文档信息进行筛选,从匹配的文档信息中选择出满足访问控制要求的那部分文档信息作为结果集,并将结果集发送给结果集排序模块;
访问控制模块用于对查询子模块利用逻辑组合信息在索引库中查找得到的所有匹配的文档信息进行筛选,使得每个用户只能检索到其权限范围内的文档;
结果集排序模块用于对来自查询子模块的结果集进行一个优先级排序,并将排序后的结果集发送给结果集处理模块;
索引模块包括索引分词模块、索引加密模块和索引子模块;
索引分词模块用于对所有纯文本文档的内容按照查询分词模块相同的分词方法进行分词处理,得到索引词,并将分词处理后的索引词发送给索引加密模块;
索引加密模块用于对索引词和纯文本文档的地址信息按照查询加密模块相同的加密算法进行加密处理,并把加密后的索引词和文档地址信息发送给索引子模块;
索引子模块采用词索引构建结构,利用密文索引词和文档相关信息来构建密文索引库,所述词索引构建结构为:由密文索引词与所有含有该索引词的文档地址信息构成第一级索引,并且通过文档地址信息与第二级索引相关联;第二级索引为每个文档自身的内部结构,包含组成该文档的所有密文索引词、文档级别及部门集信息。
本发明系统针对索引库不包含索引词在原文的位置信息的情况,提出了一种分词策略——中文语文与自动切分相结合的分词策略,并且在用户访问文档的过程中加入访问控制来限制用户的权限,以保证敏感信息的安全性。本发明系统可以实现密文条件下的全文信息检索,保证了敏感数据的安全性检索。具体而言,本发明具有如下优点:
(1)安全性强:本系统的安全性主要是通过加密处理、访问控制及审计来达到的。在本系统中,放在服务器上面的所有的信息都是密文的,这样保证了敏感信息的安全性,并且为了防止对密文索引词的统计攻击,索引库中不包含索引词在原文的位置信息。在信息查询过程中,只有拥有查看文档级别的用户才可以检索到该文档,防止了信息向低级别用户的泄漏。审计部分记录了所有用户的一些关键性的操作,便于追溯,又进一步地保证了系统的安全性。
(2)执行效率高:本系统主要用于密文的全文信息检索,因而要求有较高的执行效率。在本系统中,建索引的过程就充分考虑了效率问题,采用了中文语义与自动切分相结合的分词策略,在尽可能包含所有有意义的词的前提条件下尽量减少索引量。此外,在显示用户检索信息前,系统对这些检索到的信息进行优化排序,让用户能够尽快地得到自己想要的信息。
附图说明
图1是本发明系统的体系结构图;
图2是本发明系统的结构示意图;
图3是登录模块的过程图;
图4是查询模块的过程图;
图5是结果集处理模块的过程图;
图6是词索引构建结构图;
图7是索引模块的过程图。
具体实施方式
下面结合附图和实例对本发明作进一步详细的说明。
如图1所示,本发明系统的功能可以划分为:构建密文索引、密文全文查询和后台管理,该系统包括数据库100、登录模块200、查询模块300、结果集处理模块400、电子文档处理模块500、索引模块600、审计管理模块700、用户管理模块800和权限管理模块900。
数据库100用于存储用户及用户权限方面的信息。
登录模块200用于接收来自用户输入信息的服务请求,通过与数据库100的信息交互,对服务请求进行验证,验证成功则允许用户进入系统,并且在登录模块200获得该用户在数据库100中的相关信息,保存在会话中。当用户以管理员身份成功登录时,则进入后台管理首页的界面,并可以选择对审计管理模块700、用户管理模块800和权限管理模块900这三个模块进行管理;当用户以普通用户身份成功登录时,则进入查询模块300。如果验证失败,则拒绝用户进入系统。不管用户是否成功登录系统,都需要把用户的登录操作信息加入数据库100中,以便日后追溯。
查询模块300用于接收用户输入的检索信息,并对检索信息进行分词、加密、逻辑组合处理得到查询语句,然后根据查询语句在索引库中进行查询匹配,返回和查询语句匹配并且用户行权访问的所有文档信息(称为结果集),根据文档的匹配程度对结果集进行排序处理,将排序后的结果集交给结果集处理模块400处理。
结果集处理模块400用于接收来自查询模块300的结果集,并根据密文库的信息来建立结果集的文摘信息和快照信息,并将用户查看快照信息的记录存储于数据库100中。
电子文档处理模块500对待归档电子文档文件进行预处理,将特定文件格式(如PDF和Doc格式)的文件转化为纯文本TXT文件,然后将这些纯文本文件进行加密处理,建立密文库。此外,电子文档处理模块500还为索引模块600提供所有纯文本文件的内容和标题信息。
索引模块600接收来自电子文档处理模块500的纯文本文件的内容和标题信息,利用中文语义与自动切分相结合的分词策略对纯文本文件的内容和标题信息进行分词处理,得到索引词,然后加密索引词,最后利用加密后的索引词和文档相关信息(如文件级别、文件可查阅部门)建立索引库。
审计管理模块700主要是对用户的所有操作提供查询功能,可以通过用户IP地址、用户名和时间范围来对用户的操作进行查询。审计管理模块700接收来自用户输入的查询信息,通过与数据库100的信息交互,获得满足查询条件的所有记录。这些记录主要涉及前台用户的登录操作和查看快照操作的记录,后台的用户和部门的添加、删除、修改操作记录。
用户管理模块800用于接收来自管理员的操作请求,对用户信息进行相应的管理,并与数据库100进行交互。分别实现了显示用户信息,添加用户信息,删除用户信息,修改用户信息等功能,并将管理员的操作记入数据库100中。
权限管理模块900用于接收来自管理员的操作请求,对部门权限和部门组进行相应的管理,并与数据库100进行交互。其中部门权限管理实现了显示部门权限信息,添加部门权限信息,删除部门权限信息,修改部门权限信息功能;部门组管理实现了显示部门组,添加部门组,删除部门组,修改部门组信息等功能。此外,权限管理模块900将管理员的操作记入数据库100中。
下面分别对各模块作进一步详细的说明。
如图2所示,数据库100存储的数据包括:用户信息库110、部门信息库120和部门组信息库130、级别信息库140和审计信息库150。
用户信息库110用于存储用户的相关信息,如用户名,密码,所在部门、用户级别等级、性别、邮箱、地址、电话等信息。
部门信息库120用于存储部门的相关信息,如部门名,部门级别等级,部门所属的部门组集合等信息。
部门组信息库130用于存储部门组的名称信息。
级别信息库140用于存储级别名称及具对应的级别等级信息。它通常是管理员事先定义好的,一般较少改动级别信息。
审计信息库150用于存储用户操作的相关信息,如用户名、操作、用户的IP地址、操作的时间。
数据库100接收来自登录模块200的查询请求,在用户信息库110中进行查询匹配,反馈信息给登录模块200,同时将用户登录操作的记录加入数据库100的审计信息库150中;数据库100接收来自审计管理模块700的查询请求,在审计信息库150中查询匹配,反馈信息到审计管理模块700;数据库100接收来自用户管理模块800的查询、添加、修改、删除操作请求,在用户信息库110中进行相应的处理,反馈信息给用户管理模块800;数据库100接收来自权限管理模块900的查询、添加、修改、删除操作请求,在部门信息库120、部门组信息库130、级别信息库140中进行相应的处理,反馈信息给权限管理模块900。
登录模块200是整个系统的入口,它包括密码验证模块210和校验模块220。
密码验证模块210用于从数据库100的用户信息库110中获得用户密码并进行解密,然后和该用户输入的密码进行匹配,看用户输入的密码是否正确。
校验模块220用于验证数据库中存储的密码是否被恶意改变过。当某个用户的密码被窜改了,恶意攻击者仍然无法通过这个用户名和窜改的密码进入系统,因为密码的校验将会失败。这样进一步保证了系统的安全性。
如图3所示,登录模块200负责:(1)接收来自用户输入的登录信息,将信息提交给系统,系统会根据用户名在数据库100的用户信息库10中去检索是否有此用户名存在,如果此用户名不存在,则转到(6),否则就会从用户信息库110中获取该用户名的其它相关信息(如密码、所在部门、用户级别、校验信息),并保存在会话中;(2)把从数据库中获得的密码信息进行解密;(3)检查用户输入的密码信息是否与(2)中的解密的密码信息一致,如果不一致,则转到(6);(4)校验数据库中的密码信息,如果校验失败,则转到(6);(5)成功进入系统(以普通用户身份登录的用户进入查询模块,而以管理员身份登录的用户则进入后台管理),并把用户本次登录的记录加入数据库的审计信息库150中;(6)登录失败,需重新登录,并把用户本次登录的记录加入数据库的审计信息库150中。
查询模块300是本系统提供给用户检索信息的模块,它包括查询分词模块310、查询加密模块320、逻辑组合模块330、查询子模块340、访问控制模块350和结果集排序模块360。
查询分词模块310接收来自用户的检索命令,采用中文语义与自动切分相结合的分词策略对检索命令进行分词,并将分词处理后的检索词发送给查询加密模块320。
查询分词模块310对用户的检索命令进行语言词法分析,适应不同语言的文档源和不同形式的检索命令,它负责把一个输入流中的字符串转换成一系列标记的集合,这些标记将是建立索引的基本单位,如对中文以汉字作为基本的索引单位,并且可以定义过滤器,实现中英文停用词的过滤。目前没有一个很全面的词表可以包括各个方面内容,为了能尽量包含所有有意义的词,本系统采用中文语义与自动切分相结合的分词策略。采用这种分词策略可以很大程度地减小索引量,同时检索过程中的匹配具有语义性,提高密文全文检索的查全率和查准率,具体方案如下所述。
为了使得可能被查询的词尽量被选择进入密文索引库,首先设计了一套自动切分的分词算法。我们定义一个K值,基于K对全文进行遍历,选择全文中所有词长小于或等于K的组合进行索引。算法描述如算法1所示。
算法1
输入:待索引全文f,最大词长K值;
输出:全文的分词序列。
待返回分词序列s;
For(int i=1;i<=K;i++)
{
    While(未到文档f末尾){
      文档f当前位置的词长为i的分词加入到s队列末尾;
      文档f的当前位置后移;}
}
Return s;
算法结束。
基于密文的全文检索系统主要面向中文密文文档处理,中文词汇大多是2字词为主,3字词和4字词相对较少,5字以上词就很少了,为了尽量包含用户可能提出的查询词,在本系统中选取K=5。经过上述分词算法进行分词处理后,文档中所有词长小于或等于K(这里K=5)的词都会被纳入密文索引库。但是通过实验发现,这样有很多无意义的词被加入到密文索引库中,这些词可以认为是不可能被查询到的。例如:原文是“华中科技大学计算机学院”,经过分词算法1处理后,得到的分词序列为{华,中,科,技,大,学,计,算,机,学,院,华中,中科,科技,技大,大学,学计,计算,算机,机学,学院,华中科,中科技,科技大,技大学,大学计,学计算,计算机,算机学,机学院,华中科技,中科技大,科技大学,技大学计,大学计算,学计算机,计算机学,算机学院,华中科技大,中科技大学,科技大学计,技大学计算,大学计算机,学计算机学,计算机学院}。从分词序列中可以发现很多是无意义的词,这样会使得索引数据库变得很大。通过试验发现,采用上述分词算法后,密文索引库的空间大小是待索引纯文本文档大小的10~20倍。极大地影响了查询效率。如果借助语义信息,则会使冗余信息大幅度下降。于是基于算法1,结合中文语义分词和停用词,提出了中文语义与自动切分相结合的分词算法,如算法2描述。
算法2
输入:待索引全文f,最大词长K值,停用词序列t;
输出:全文的分词序列。
待返回分词序列s;
待分词序列g=中文语义分词(f);
While(未到序列g的末尾){
     If(序列g中遇到停用词序列t中的停用词){
        不进行分词;
        continue;}
     序列g当前位置词长小于或等于K的所有分词加入到s队列末尾;
     序列g的当前位置后移;
}
Return s;
算法结束。
通过算法2,很多无意义的冗余分词被去除。同样的例子,原文是“华中科技大学计算机学院”,首先经过语义分词得到有语义的待分词序列为:{华中,科技,大学,计算机,学院};经过改进分词算法处理后,得到的分词序列为{华中,华中科技,科技,科技大学,大学,大学计算机,计算机,计算机学院,学院}。相对算法1,中文语义与自动切分相结合的分词算法使得分词数量大为减少,进入密文索引库的也全部是有意义的字段,减少了索引库空间大小,也提高了查询效率。经过试验,利用改进后的分词算法2,索引库空间的存储大小是待索引纯文本文档大小的3~7倍。
查询加密模块320用于对经分词处理后的检索词进行加密处理,并将加密处理后的检索词发送给逻辑组合模块330。为了提高速度,最好选择对称加密算法。
逻辑组合模块330将加密处理后的检索词进行逻辑组合,如采用“or”、“and”的关系进行组合,并将逻辑组合信息发送给查询子模块340。
查询子模块340利用逻辑组合信息在索引库中查找所有匹配的文档信息,并利用访问控制模块350对匹配的文档信息进行筛选,从匹配的文档信息中选择出满足访问控制要求的那部分文档信息作为结果集,并将结果集发送给结果集排序模块360。
访问控制模块350用于对查询子模块340利用逻辑组合信息在索引库中查找得到的所有匹配的文档信息进行筛选,使得每个用户只能检索到其权限范围内的文档。合法用户登录系统后都带有部门信息及个人级别等级的信息,如果用户所属的部门在某个文档发布的部门集之内,并且用户的级别等级高于这个文档所发布的级别等级,则该文档满足访问控制要求,将被加入结果集,否则,即使此文档符合检索要求也不会被加入结果集,具体策略如下所述。
在基于密文的全文检索系统中,按照用户和文档分别进行描述,用户和文档都包含部门和级别等级属性,本系统中所有的级别等级按照级别的高低构成一个偏序集。例如:部门属性全集为A={D1,D2,D3,D4},权限的偏序集描述如表1,权限级别越小表示相应的权限越高。文档描述如表2所示,用户描述如表3所示,其中表3的最后一列是通过比较得到的用户可以访问到的所有文档。在本系统的访问控制策略中,要求每份文档允许被发布到多个部门,每份文档只允许发布到某一个确定的级别等级上。用户只能属于一个确定的部门,且只能具有一个确定的级别等级。
表1权限描述
  级别名称   级别等级
  R<sub>1</sub>   0
  R<sub>2</sub>   1
  R<sub>3</sub>   2
  R<sub>4</sub>   2
  R<sub>5</sub>   3
表2文档描述
  文档名称   发布的部门集   文档所发布的级别等级
  S<sub>1</sub>   D<sub>1</sub>,D<sub>2</sub>,D<sub>4</sub>   2
  S<sub>2</sub>   D<sub>2</sub>,D<sub>3</sub>   1
  S<sub>3</sub>   D<sub>1</sub>   2
  S<sub>4</sub>   D<sub>3</sub>,D<sub>4</sub>   2
  S<sub>5</sub>   D<sub>1</sub>,D<sub>2</sub>,D<sub>3</sub>,D<sub>4</sub>   3
表3用户权限描述
  用户名称   所属部门   用户级别等级   允许访问的文档
  U<sub>1</sub>   D<sub>1</sub>   2   S<sub>1</sub>,S<sub>3</sub>,S<sub>5</sub>
  U<sub>2</sub>   D<sub>2</sub>   1   S<sub>1</sub>,S<sub>2</sub>,S<sub>5</sub>
  U<sub>3</sub>   D<sub>2</sub>   2   S<sub>1</sub>,S<sub>5</sub>
  U<sub>4</sub>   D<sub>3</sub>   2   S<sub>1</sub>,S<sub>4</sub>,S<sub>5</sub>
  U<sub>5</sub>   D<sub>4</sub>   3   S<sub>5</sub>
在基于密文的全文检索系统的访问控制策略中,只有当用户的部门属性包含于文档允许发布的部门属性集内,且用户的级别等级不大于文档允许发布的级别等级的基础上(级别等级越小,权限越大),用户才有访问文档的权限。这种访问控制策略是比较符合当前保密部门文档访问控制要求的一种访问控制策略。在本系统推广使用的过程中,可以根据各个部门的自身需求设计相应的访问控制策略。
结果集排序模块360用于对来自查询子模块340的结果集进行一个优先级排序,并将排序后的结果集发送给结果集处理模块400。匹配强度最高的文档排在结果集的最前面,这里的匹配强度是用检索词的长度来衡量的,当然也可以把检索词的权重纳入考虑范围之中。这里为了方便,仅选择命中词长来进行排序,当然,这也是和本系统的分词策略紧密联系的。
如图4所示,查询模块的处理流程为:(1)用户输入检索信息,系统会采用中文语义与自动切分相结合的分词策略对检索信息进行分词,获得查询检索词;(2)服务器把检索词进行加密处理;(3)服务器按照用户输入检索信息所原本包含的逻辑关系,将加密处理后的密文检索词进行逻辑组合,形成查询语句;(4)根据查询语句在索引库中进行密文匹配,并且在匹配信息的时候加入访问控制的限制,返回结果集。即对于命中的文档,只有用户所在部门在该文档能被访问的部门集之内并且用户级别等级不大于该文档的级别,那么该文档才能加入结果集返回给用户;(5)将得到的结果集进行排序,主要是利用命中词长及命中次数来进行排序,将命中词较长及命中次数较多的文档排在结果集的前面。
结果集处理模块400是用户查询显示的接口,它包括文摘模块410和快照模块420。
文摘模块410用于显示排序后结果集的文档中包含有检索词的文摘信息,一个文档里面可能有很多不同位置都包含有检索词,可以选择显示前N块文摘信息。每块文摘信息都是包含有突出显示的检索词的,类似于百度中的搜索结果情况。
快照模块420用于显示排序后结果集中文档的全部明文文本信息,并且突出显示检索词,以便用户阅览。并且把用户已阅览文档的消息加入审计信息库150中。由于服务器中保存的文本信息都是密文的,所以需要先对加密文本进行解密,然后经过通信加密的方式将快照信息返回给用户。
如图5所示,结果集处理模块的处理流程为:(1)接收来自查询模块300的结果集;(2)从密文库中获得结果集的文摘信息;(3)从密文库中获得结果集的快照信息;(4)用户需要快照信息时,反馈快照信息给用户,并且将此操作的记录加入数据库的审计信息库150中。
电子文档处理模块500是整个系统的预处理模块,其处理流程为:(1)将归档文件转化为纯文本格式txt文件并保存在指定的目录中,将纯文本文档的内容发送给索引分词模块610,将纯文本文档的地址、级别、可查阅部门的信息发送给索引模块600;(2)对纯文本文档进行加密,建立密文库。
索引模块600是本系统中较重要的一部分,它包括索引分词模块610、索引加密模块620和索引子模块630。
索引分词模块610用于对所有纯文本文档的内容进行分词处理,得到索引词,并将分词处理后的索引词发送给索引加密模块620,具体分词策略如查询分词模块310所述。
索引加密模块620用于对索引词、纯文本文档的地址信息进行加密处理,并把加密后的索引词、文档地址信息发送给索引子模块630。其中,索引词采用和查询加密模块相同的加密算法,而文档地址采用安全级别更高的非对称加密算法。
索引子模块630用于利用加密后的索引词和文档地址、文档级别和文档可查阅部门信息来建立索引库。如图6所示,每个密文索引词与所有含有该密文索引词的文档位置对应,每个文档都有自己的内部结构,并且还含有该文档的级别信息和能被访问的部门集信息。如有三个文档分别为:文档1、文档2和文档3。文档1的内容为“中华人民共和国,我爱中华人民共和国”;文档2的内容为“爱我中华”;文档3的内容为“计算机学院”。假定经分词处理后得到的索引词中含有“中华”,“中华”的密文作为图6中的密文索引词1,它对应所有含有“中华”的文档的位置,即文档1的位置DID1和文档2的位置DID2。在索引库中,每个文档又有自己的内部结构。以文档1为例,假定经过分词处理后得到的索引词为:中华、中华人民、人民、共和国、人民共和国,那么在索引库中文档1就含有上面5个索引词的密文以及文档1的级别和部门集。在建索引库的过程中,本系统为了避免统计等方面的攻击,没有引入索引词在原文中的位置信息。正因为所有的索引词都没有位置信息,无法利用位置信息来判断词,所以我们采用了中文语义与自动切分相结合的分词策略,使得索引库中尽可能包含所有有意义的词,以便于检索。
如图7所示,索引模块600的处理流程为:(1)接收电子文档处理模块500的所有归档纯文本txt文件信息;(2)对纯文本信息进行分词处理,得到所有索引词;(3)对索引词进行加密处理,采用和查询模块300中相同的加密算法;(4)利用加密后的索引词和文档地址、文档级别和文档可查阅部门信息来建立索引库。
审计管理模块700主要是对用户的所有操作提供查询功能,可以通过用户IP地址、用户名和时间范围来对用户的操作进行查询。
用户管理模块800是管理员管理用户信息时使用的模块。用户管理模块800的处理流程为:(1)管理员查看用户信息,用户管理模块800根据管理员指令读取数据库100中的用户信息库110,并显示所有的用户信息;(2)管理员填写待添加的新用户信息,用户管理模块800首先判断数据库100中的用户信息库110中该用户的用户名是否已经存在,若该用户名已经存在,返回错误提示,否则添加记录到用户信息库110,并将添加用户成功的记录加入数据库的审计信息库150中;(3)管理员删除用户信息,用户管理模块800根据管理员指令删除数据库100中用户信息库110的相关信息,并将删除用户成功的记录加入数据库的审计信息库150中;(4)管理员修改用户的信息,用户管理模块800根据管理员指令修改数据库100中用户信息库110的相应信息,并将修改用户成功的记录加入数据库的审计信息库150中。
权限管理模块900是管理员管理权限信息时使用的模块。权限管理模块900的处理流程为(1)管理员查看部门信息,系统根据管理员指令读取数据库中部门信息库120中的信息;(2)管理员添加新的部门信息,权限管理模块900首先判断数据库中的部门信息库120中是否已经存在该部门,若已经存在,则返回错误提示,否则添加记录到部门信息库120,并将添加部门成功的记录加入数据库的审计信息库150中;(3)管理员删除部门信息,权限管理模块900根据用户指令删除数据库中的部门信息库120的相关记录,同时级联删除拥有该权限的相关用户信息,并将删除部门和用户信息成功的记录加入数据库的审计信息库150中;(4)管理员修改部门信息,权限管理模块900使用管理员输入的新信息,更新数据库中的部门信息库120,同时也更新用户信息库110中的相应信息,并将修改部门和用户信息成功的记录加入数据库的审计信息库150中。(5)管理员查看部门信息,系统根据管理员指令读取数据库中部门信息库120中的信息;(6)管理员添加新的部门组信息,权限管理模块900首先判断数据库中的部门组信息库130中是否已经存在该部门组,若已经行在,则返回错误提示,否则添加记录到部门组信息库130,并将添加部门组成功的记录加入数据库的审计信息库150中;(7)管理员删除部门组信息,权限管理模块900根据用户指令删除数据库中的部门组信息库130的相关记录,并将删除部门组成功的记录加入数据库的审计信息库150中;(8)管理员修改部门组信息,权限管理模块900使用管理员输入的新信息,更新数据库中的部门组信息库130,并将修改部门组信息成功的记录加入数据库的审计信息库150中。

Claims (1)

1. 一种基于密文的全文检索系统,该系统包括数据库(100)、登录模块(200)、查询模块(300)、结果集处理模块(400)、电子文档处理模块(500)、索引模块(600)、审计管理模块(700)、用户管理模块(800)和权限管理模块(900);其中,
数据库(100)用于存储用户及用户权限方面的信息,它包括用户信息库(110)、部门信息库(120)、部门组信息库(130)、级别信息库(140)和审计信息库(150);
登录模块(200)用于接收来自用户输入信息的服务请求,通过与数据库(100)的信息交互,对服务请求进行验证,验证成功则允许用户进入系统,如果验证失败,则拒绝用户进入系统;当用户以管理员身份成功登录时,选择对审计管理模块(700)、用户管理模块(800)和权限管理模块(900)进行管理;当用户以普通用户身份成功登录时,则进入查询模块(300);
查询模块(300)用于接收用户输入的检索信息,并对检索信息进行分词、加密、逻辑组合处理得到查询语句,然后根据查询语句在索引库中进行查询匹配,返回和查询语句匹配并且用户有权访问的所有文档信息,根据文档的匹配程度对结果集进行排序处理,将排序后的结果集交给结果集处理模块(400)处理;
结果集处理模块(400)用于接收来自查询模块(300)的结果集,并根据密文库的信息来建立结果集的文摘信息和快照信息,并将用户查看快照信息的记录存储于数据库(100)中;
电子文档处理模块(500)对待归档电子文档文件进行预处理,将特定文件格式的文件转化为纯文本文件,然后将这些纯文本文件进行加密处理,建立密文库;并为索引模块(600)提供所有纯文本文件的内容和标题信息;
索引模块(600)接收来自电子文档处理模块(500)的纯文本文件的内容和标题信息,利用中文语义与自动切分相结合的分词策略对纯文本文件的内容和标题信息进行分词处理,得到索引词,然后加密索引词,再利用加密后的索引词和文档相关信息建立索引库;
审计管理模块(700)接收来自用户输入的查询信息,通过与数据库(100)的信息交互,利用用户IP地址、用户名和时间范围来对用户的操作进行查询,获得满足查询条件的所有记录:
用户管理模块(800)用于接收来自管理员的操作请求,对用户信息进行管理,并与数据库(100)进行交互,分别实现显示用户信息,添加用户信息,删除用户信息和修改用户信息,并将管理员的操作记入数据库(100)中;
权限管理模块(900)用于接收来自管理员的操作请求,对部门权限和部门组进行管理,并与数据库(100)进行交互,并将管理员的操作记入数据库(100)中;
登录模块(200)包括密码验证模块(210)和校验模块(220);
密码验证模块(210)用于从数据库(100)的用户信息库(110)中获得用户密码并进行解密,然后和该用户输入的密码进行匹配,看用户输入的密码是否正确;
校验模块(220)用于验证数据库中存储的密码是否被恶意改变过;
结果集处理模块(400)包括文摘模块(410)和快照模块(420);其中,
文摘模块(410)用于显示排序后结果集的文档中包含有检索词的文摘信息;
快照模块(420)用于显示排序后结果集中文档的全部明文文本信息,并且突出显示检索词,以便用户阅览,并且把用户已阅览文档的消息加入审计信息库(150)中;
其特征在于:
查询模块(300)包括查询分词模块(310)、查询加密模块(320)、逻辑组合模块(330)、查询子模块(340)、访问控制模块(350)和结果集排序模块(360);
查询分词模块(310)接收来用户的检索命令,采用下述中文语义与自动切分相结合的分词策略对检索命令进行分词,并将分词处理后的检索词发送给查询加密模块(320);所述中文语义与自动切分相结合的分词策略是指首先将待分词的内容进行中文语义分词后得到有语义的待分词序列,然后再将待分词序列基于词长进行组合处理得到检索词;
查询加密模块(320)用于对经分词处理后的检索词进行加密处理,并将加密处理后的检索词发送给逻辑组合模块(330);
逻辑组合模块(330)将加密处理后的检索词进行逻辑组合,并将逻辑组合信息发送给查询子模块(340);
查询子模块(340)利用逻辑组合信息在索引库中查找所有匹配的文档信息,并利用访问控制模块(350)对匹配的文档信息进行筛选,从匹配的文档信息中选择出满足访问控制要求的那部分文档信息作为结果集,并将结果集发送给结果集排序模块(360);
访问控制模块(350)用于对查询子模块(340)利用逻辑组合信息在索引库中查找得到的所有匹配的文档信息进行筛选,使得每个用户只能检索到其权限范围内的文档;
结果集排序模块(360)用于对来自查询子模块(340)的结果集进行一个优先级排序,并将排序后的结果集发送给结果集处理模块(400);
索引模块(600)包括索引分词模块(610)、索引加密模块(620)和索引子模块(630);
索引分词模块(610)用于对所有纯文本文档的内容按照查询分词模块(310)相同的分词方法进行分词处理,得到索引词,并将分词处理后的索引词发送给索引加密模块(620);
索引加密模块620用于对索引词和纯文本文档的地址信息按照查询加密模块(320)相同的加密算法进行加密处理,并把加密后的索引词和文档地址信息发送给索引子模块(630);
索引子模块(630)采用词索引构建结构,利用密文索引词和文档相关信息来构建密文索引库,所述词索引构建结构为:由密文索引词与所有含有该索引词的文档地址信息构成第一级索引,并且通过文档地址信息与第二级索引相关联;第二级索引为每个文档自身的内部结构,包含组成该文档的所有密文索引词、文档级别及部门集信息。
CNB2006101246911A 2006-09-30 2006-09-30 基于密文的全文检索系统 Expired - Fee Related CN100424704C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006101246911A CN100424704C (zh) 2006-09-30 2006-09-30 基于密文的全文检索系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006101246911A CN100424704C (zh) 2006-09-30 2006-09-30 基于密文的全文检索系统

Publications (2)

Publication Number Publication Date
CN1932816A CN1932816A (zh) 2007-03-21
CN100424704C true CN100424704C (zh) 2008-10-08

Family

ID=37878651

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101246911A Expired - Fee Related CN100424704C (zh) 2006-09-30 2006-09-30 基于密文的全文检索系统

Country Status (1)

Country Link
CN (1) CN100424704C (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101184214B (zh) * 2007-12-07 2012-12-19 中兴通讯股份有限公司 一种监控系统中用户权限的管理方法
JP4666065B2 (ja) * 2008-12-03 2011-04-06 富士ゼロックス株式会社 情報処理装置及びプログラム
CN101561815B (zh) * 2009-05-19 2010-10-13 华中科技大学 分布式密文全文检索系统
CN102262633B (zh) * 2010-05-27 2012-11-28 武汉力龙数码信息科技有限公司 一种面向全文检索的结构化数据安全检索方法
CN102855292B (zh) * 2010-05-31 2015-04-08 广西大学 密文全文检索系统的安全覆盖网构建方法及对应的全文检索方法
CN101859323B (zh) * 2010-05-31 2013-01-16 广西大学 密文全文检索系统
CN103049466B (zh) * 2012-05-14 2016-04-27 深圳市朗科科技股份有限公司 一种基于分布式密文存储的全文检索方法及系统
CN103136352B (zh) * 2013-02-27 2016-02-03 华中师范大学 基于双层语义分析的全文检索系统
CN109214198B (zh) * 2018-08-13 2021-09-24 苏州泥娃软件科技有限公司 一种可加密搜索的安全云文档系统
CN111209586A (zh) * 2018-11-21 2020-05-29 郑州科技学院 一种文档管理系统及方法
CN110324402B (zh) * 2019-05-08 2022-03-11 湖南文盾信息技术有限公司 一种基于可信用户前端的可信云存储服务平台及工作方法
CN110609959B (zh) * 2019-09-24 2023-10-24 珠海格力电器股份有限公司 基于项目生命周期的检索方法、存储介质及电子设备
CN110807141A (zh) * 2019-11-04 2020-02-18 北京联想协同科技有限公司 一种数据搜索方法、设备以及可读存储介质
CN114844714A (zh) * 2022-05-24 2022-08-02 中国民生银行股份有限公司 用户身份认证的方法和基于ldap协议的代理服务端
CN116029853B (zh) * 2023-02-15 2023-06-27 江西科技学院 一种会计数据处理方法、系统、计算机及存储介质
CN116402477A (zh) * 2023-06-07 2023-07-07 山东韵升科技股份有限公司 一种档案数字化信息管理系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000090093A (ja) * 1998-09-08 2000-03-31 Hitachi Software Eng Co Ltd 全文検索方法及び全文検索システム並びに全文検索プログラムを記録した記録媒体
CN1300026A (zh) * 1999-12-14 2001-06-20 三菱电机株式会社 全文检索设备及全文检索方法
CN1588365A (zh) * 2004-08-02 2005-03-02 中国科学院计算机网络信息中心 密文全文检索技术
JP2006031209A (ja) * 2004-07-14 2006-02-02 Ricoh Co Ltd 全文検索システム、全文検索方法、プログラムおよび記録媒体
US7007015B1 (en) * 2002-05-01 2006-02-28 Microsoft Corporation Prioritized merging for full-text index on relational store
CN1755691A (zh) * 2004-09-29 2006-04-05 株式会社东芝 全文检索系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000090093A (ja) * 1998-09-08 2000-03-31 Hitachi Software Eng Co Ltd 全文検索方法及び全文検索システム並びに全文検索プログラムを記録した記録媒体
CN1300026A (zh) * 1999-12-14 2001-06-20 三菱电机株式会社 全文检索设备及全文检索方法
US7007015B1 (en) * 2002-05-01 2006-02-28 Microsoft Corporation Prioritized merging for full-text index on relational store
JP2006031209A (ja) * 2004-07-14 2006-02-02 Ricoh Co Ltd 全文検索システム、全文検索方法、プログラムおよび記録媒体
CN1588365A (zh) * 2004-08-02 2005-03-02 中国科学院计算机网络信息中心 密文全文检索技术
CN1755691A (zh) * 2004-09-29 2006-04-05 株式会社东芝 全文检索系统及方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Web环境下全文检索系统开发平台的设计. 苏新宁,杨薇.情报科学,第20卷第4期. 2002
Web环境下全文检索系统开发平台的设计. 苏新宁,杨薇.情报科学,第20卷第4期. 2002 *
基于多层授权体制的档案全文检索系统设计与实现. 朱松岩,叶华平,李生林,方卫红.后勤工程学院学报,第2005年第1期卷. 2005
基于多层授权体制的档案全文检索系统设计与实现. 朱松岩,叶华平,李生林,方卫红.后勤工程学院学报,第2005年第1期卷. 2005 *

Also Published As

Publication number Publication date
CN1932816A (zh) 2007-03-21

Similar Documents

Publication Publication Date Title
CN100424704C (zh) 基于密文的全文检索系统
CN101561815B (zh) 分布式密文全文检索系统
Fu et al. Enabling central keyword-based semantic extension search over encrypted outsourced data
CN104765848B (zh) 混合云存储中支持结果高效排序的对称可搜索加密方法
US8423565B2 (en) Information life cycle search engine and method
US7594258B2 (en) Access control systems and methods using visibility tokens with automatic propagation
CN100541495C (zh) 一种个性化搜索引擎的搜索方法
CN109063509A (zh) 一种基于关键词语义排序的可搜索加密方法
CN102325143B (zh) 一种基于云平台的信息收集存储和加密检索系统
Boucenna et al. Secure inverted index based search over encrypted cloud data with user access rights management
Raghavendra et al. MSIGT: Most significant index generation technique for cloud environment
CN113377876B (zh) 基于Domino平台的数据分库处理方法、装置及平台
Ananthi et al. FSS-SDD: fuzzy-based semantic search for secure data discovery from outsourced cloud data
Mittal et al. Privacy preserving synonym based fuzzy multi-keyword ranked search over encrypted cloud data
CN102855292A (zh) 密文全文检索系统的安全覆盖网构建方法及对应的全文检索方法
Gampala et al. An efficient Multi-Keyword Synonym Ranked Query over Encrypted Cloud Data using BMS Tree
CN110324402B (zh) 一种基于可信用户前端的可信云存储服务平台及工作方法
Yue Design of information management system for structural monitoring based on network fragmentation
Manasrah et al. A privacy-preserving multi-keyword search approach in cloud computing
Xu et al. Achieving fine-grained multi-keyword ranked search over encrypted cloud data
Haridas et al. A Survey on Different Search Techniques Over Encrypted Data in Cloud
CN103246944A (zh) 多级别引擎管理方法
KR102304138B1 (ko) 웹 사이트 이용 기록 관리 시스템
Gayathri et al. Capability of Multi Keyword investigation in Cloud Computing
Chinna et al. A Scalable Multi Keyword Search and Relevance Oriented Ranking for Searchable Network Encrypted data in Cloud Storage Systems

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: 20081008

Termination date: 20120930

EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20070321

Assignee: Wuhan kinesisk laborers Anding Information Technology Co., Ltd.

Assignor: Huazhong University of Science and Technology

Contract record no.: 2011420000102

Denomination of invention: Full text search system based on ciphertext

Granted publication date: 20081008

License type: Exclusive License

Record date: 20110527

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model