基于密文的全文检索系统的制作方法

文档序号:6561487阅读:390来源:国知局
专利名称:基于密文的全文检索系统的制作方法
技术领域
本发明属于计算机检索技术领域,具体涉及一种基于密文的全文检索系统。
背景技术
信息时代产生了大量数字信息,其中文本信息是最基本和最常用的存储形式,为了能在浩如烟海的文本信息中找到自己所需,人们迫切需要一个高效的检索工具。如何高效地存储和查询文本这种非结构数据,就是一个很值得研究的问题。这其中的全文检索技术和全文数据库技术成为国内外学者研究的热点。
全文检索就是以文本数据为主要处理对象,基于全文标引,使用自然语言进行检索的技术。在信息检索领域,全文检索一直是一个比较复杂的问题。与普通数据库检索中的结构化数据查询不同,全文检索主要是对非结构化数据进行查询,比起标引检索来,全文检索提供了全新的,强大的检索功能,方便多角度、多侧面的综合利用信息资源。
现在全文检索技术已经发展得较为成熟,国外的全文检索软件较早地得到了应用。中文全文检索技术在原理上同西文全文检索是一致的,但汉字本身的特点使中文系统的实现比西文系统更为复杂。因此,国外许多完善的全文检索系统很难直接应用于处理汉字信息。目前,我国自主中文全文检索技术已经达到了较高水平,在传统市场也获得了很高的占有率。主要集中在汉字全文检索、超文本全文检索、网络环境下的全文检索技术等方面。
计算机网络技术的发展促进计算机应用日益广泛和深入,同时也使网络环境下计算机应用的安全问题日益复杂和突出。对数据进行加密处理是目前计算机应用中防范信息泄漏的主要安全手段之一。目前涉密和安全部门的计算机应用系统中数据信息都是以密文形式存放,最大限度地保证了系统和数据信息的安全性。虽然全文检索技术和加密算法都已经非常成熟并且有很好的商业产品出现,但是如何在密文前提下实现全文检索,在国内外的相关研究和产品领域内仍然还是空白。加密技术和全文索引的结合有很多难点,首先,为了保证索引信息的安全可靠,对于索引项的信息必须是经过加密处理的,而经过加密技术处理之后,密文信息就不能采用明文状态下的匹配技术进行处理,因此经过加密技术处理之后的文本信息是不能与现有全文检索机制直接结合而实现密文全文检索的。其次,现有的全文检索系统往往是构建全文索引,因此索引的数据量往往很大,而加密技术会进一步带来信息量的增大,这样作为一个实用系统,把加密技术引入全文检索系统中效率问题是必须予以考虑及高度重视的。

发明内容
本发明的目的在于提供一种基于密文的全文检索系统,该检索系统具有安全性强、执行效率高的特点。
本发明提供的一种基于密文的全文检索系统,该系统包括数据库、登录模块、查询模块、结果集处理模块、电子文档处理模块、索引模块、审计管理模块、用户管理模块和权限管理模块;其中,数据库用于存储用户及用户权限方面的信息,它包括用户信息库、部门信息库、部门组信息库、级别信息库和审计信息库;登录模块用于接收来自用户输入信息的服务请求,通过与数据库的信息交互,对服务请求进行验证,验证成功则允许用户进入系统,如果验证失败,则拒绝用户进入系统;当用户以管理员身份成功登录时,选择对审计管理模块、用户管理模块和权限管理模块进行管理;当用户以普通用户身份成功登录时,则进入查询模块;查询模块用于接收用户输入的检索信息,并对检索信息进行分词、加密、逻辑组合处理得到查询语句,然后根据查询语句在索引库中进行查询匹配,返回和查询语句匹配并且用户有权访问的所有文档信息,根据文档的匹配程度对结果集进行排序处理,将排序后的结果集交给结果集处理模块处理;结果集处理模块用于接收来自查询模块的结果集,并根据密文库的信息来建立结果集的文摘信息和快照信息,并将用户查看快照信息的审计信息存储于数据库中;电子文档处理模块对待归档电子文档文件进行预处理,将特定文件格式的文件转化为纯文本文件,然后将这些纯文本文件进行加密处理,建立密文库;索引模块提供所有纯文本文件的内容和标题信息;索引模块接收来自电子文档处理模块的纯文本文件的内容和标题信息,利用中文语义与自动切分相结合的分词策略对纯文本文件的内容和标题信息进行分词处理,得到索引词,然后加密索引词,再利用加密后的索引词和文档相关信息建立索引库;审计管理模块接收来自用户输入的查询信息,通过与数据库的信息交互,利用用户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的用户信息库110中去检索是否有此用户名存在,如果此用户名不存在,则转到(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权限描述


表2文档描述

表3用户权限描述

在基于密文的全文检索系统的访问控制策略中,只有当用户的部门属性包含于文档允许发布的部门属性集内,且用户的级别等级不大于文档允许发布的级别等级的基础上(级别等级越小,权限越大),用户才有访问文档的权限。这种访问控制策略是比较符合当前保密部门文档访问控制要求的一种访问控制策略。在本系统推广使用的过程中,可以根据各个部门的自身需求设计相应的访问控制策略。
结果集排序模块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中。
权利要求
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)中。
2.根据权利要求1所述的全文检索系统,其特征在于登录模块(200)包括密码验证模块(210)和校验模块(220);密码验证模块(210)用于从数据库(100)的用户信息库(110)中获得用户密码并进行解密,然后和该用户输入的密码进行匹配,看用户输入的密码是否正确;校验模块(220)用于验证数据库中存储的密码是否被恶意改变过。
3.根据权利要求1所述的全文检索系统,其特征在于查询模块(300)包括查询分词模块(310)、查询加密模块(320)、逻辑组合模块(330)、查询子模块(340)、访问控制模块(350)和结果集排序模块(360);查询分词模块(310)接收来用户的检索命令,采用中文语义与自动切分相结合的分词策略对检索命令进行分词,并将分词处理后的检索词发送给查询加密模块(320);查询加密模块(320)用于对经分词处理后的检索词进行加密处理,并将加密处理后的检索词发送给逻辑组合模块(330);逻辑组合模块(330)将加密处理后的检索词进行逻辑组合,并将逻辑组合信息发送给查询子模块(340);查询子模块(340)利用逻辑组合信息在索引库中查找所有匹配的文档信息,并利用访问控制模块(350)对匹配的文档信息进行筛选,从匹配的文档信息中选择出满足访问控制要求的那部分文档信息作为结果集,并将结果集发送给结果集排序模块(360);访问控制模块(350)用于对查询子模块(340)利用逻辑组合信息在索引库中查找得到的所有匹配的文档信息进行筛选,使得每个用户只能检索到其权限范围内的文档;结果集排序模块(360)用于对来自查询子模块(340)的结果集进行一个优先级排序,并将排序后的结果集发送给结果集处理模块(400)。
4.根据权利要求1所述的全文检索系统,其特征在于结果集处理模块(400)包括文摘模块(410)和快照模块(420);其中,文摘模块(410)用于显示排序后结果集的文档中包含有检索词的文摘信息;快照模块(420)用于显示排序后结果集中文档的全部明文文本信息,并且突出显示检索词,以便用户阅览,并且把用户已阅览文档的消息加入审计信息库(150)中。
5.根据权利要求1所述的全文检索系统,其特征在于索引模块(600)包括索引分词模块(610)、索引加密模块(620)和索引子模块(630);索引分词模块(610)用于对所有纯文本文档的内容按照查询分词模块(310)相同的分词方法进行分词处理,得到索引词,并将分词处理后的索引词发送给索引加密模块(620);索引加密模块620用于对索引词和纯文本文档的地址信息按照查询加密模块(320)相同的加密算法进行加密处理,并把加密后的索引词和文档地址信息发送给索引子模块(630);索引子模块(630)用于利用加密后的索引词和文档地址、文档级别和文档可查阅部门信息建立索引库。
全文摘要
本发明提供的一种基于密文的全文检索系统,该系统包括数据库、登录模块、查询模块、结果集处理模块、电子文档处理模块、索引模块、审计管理模块、用户管理模块和权限管理模块。其中查询模块包括查询分词模块、查询加密模块、逻辑组合模块、查询子模块、访问控制模块和结果集排序模块;结果集处理模块包括文摘模块和快照模块;索引模块包括索引分词模块、索引加密模块和索引子模块。本发明系统针对索引库不包含索引词在原文的位置信息的情况,提出了一种分词策略——中文语义与自动切分相结合的分词策略,并且在用户访问文档的过程中加入访问控制来限制用户的权限,以保证敏感信息的安全性。本发明系统可以实现密文条件下的全文信息检索,保证了敏感数据的安全性检索,本发明系统具有安全性强、执行效率高的特点。
文档编号G06F21/00GK1932816SQ20061012469
公开日2007年3月21日 申请日期2006年9月30日 优先权日2006年9月30日
发明者李瑞轩, 卢正鼎, 宋伟, 左翠华, 张茂元, 文坤梅, 何云天, 万宇涛 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1