一种多访问级别的电子文档网络存储管理的方法与流程

文档序号:11206340阅读:446来源:国知局
本发明属于云存储领域,特别涉及了一种多访问级别的电子文档网络存储管理的方法。
背景技术
::随着信息技术的飞速发展,人类进入了云存储和云计算的一个信息爆炸的时代。互联网上涌现出了大批“网络存储”“云盘”等服务,相比于传统的纸质文档存储和本地电子化存储,云服务器给我们带来了长期保存不变质、可移植、操作快捷、节省本地空间、管理方便等好处。但同时,云服务器的使用也引来了信息泄露等大批安全问题。曾经有一个网络安全实验室对当前国内的一些流行网盘做了抓包测试,发现简单的抓包工具都能轻易捕获未加密的用户文档信息。严重的信息泄露问题对于互联网云存储的发展无疑是最大的威胁。在信息时代,我们若想改变电子文档本地存储的效率低下、便捷性差的缺点,实现私人电子文档的安全、高效的云存储,就必须借助于密码技术。对私人电子文档上传网络所采取的最有力的保护措施就是加密技术。在现代密码学中,对称加密技术已经相当成熟,具有速度快、密钥短、效率高等特点。所以对私人电子文档使用对称加密技术不失为一个好的办法。如果由云服务器执行加密和解密操作,那么一旦云服务器管理人员在未授权的情况下私自解密用户的电子文档,同样会造成安全隐患。因此,用户需要将电子文档在本地加密后再上传至云服务器;查看文档时,下载至本地再进行解密查看,对称密钥由用户自己保存。但这样面临一个新的问题——用户无法在密文文档中执行搜索。可搜索加密技术(searchableencryption,简称se)是近年来发展的一种支持用户在密文上进行关键字搜索的密码学原语。按使用的密码技术不同又分为对称可搜索加密(searchablesymmetricencryption,简称sse)和公钥可搜索加密(publickeysearchableencryption,简称pkse)。sse主要使用了伪随机函数、伪随机置换以及hash函数,具有效率高、速度快等优点。一般的sse方案都包括如下五个算法:密钥生成(keygen),建立索引表与密文库(encryption),生成陷门(trapdoor),执行搜索(search)和解密(decryption)。用户首先将加密后的文档上传至云服务器;当需要搜索某个关键词时,用户生成一个基于该关键词的搜索凭证并将其发送给云服务器,云服务器会对所有密文文档和搜索凭证进行匹配,若匹配成功则返回该密文文档;用户在本地解密密文,并正常查看。云服务器除了能够获得搜索凭证、搜索结果、文档大小等信息外,无法获得搜索关键字、密文分类、明文信息等更多的有用信息。sse技术虽然强大,但只能用于个人的网络存储,无法满足有多访问级别要求的企业或单位的电子文档存储管理。一般的团队或组织都会有一个自顶向下的级别划分,同样地,不同级别的内部用户能够接触到不同级别的文档,某一用户只能接触到同级别及其以下级别的文档,低级用户是无法接触到高级文档的。多访问级别保证了团队内部框架的完整性,尤其是在保密局、大型企业、重点项目实验室等这些单位之中,控制严格的访问级别有着重要意义。但是,现有的电子文档网络存储方案无法解决既要满足对电子文档进行安全、高效的云存储,又要对电子文档进行多级别访问管理的问题,特别是对加密文档进行网络搜索并发送至特定级别用户的问题。因此,在本发明中我们设计了可实现多访问级别的电子文档网络存储管理的方法和系统。同时,我们引入了基于属性的加密方案(attributebasedencryption,简称abe),即只有满足一定属性的用户才可以解密。属性加密是一种公钥策略,对文档加密时将此文档的访问结构a包含在密文ct之中,在解密时将访问结构与用户属性s相匹配,匹配成功则可成功解密出明文;若s不满足a,则无法解密。abe按访问结构与私钥或者密文相关联一般可以分为密钥策略(kp-abe)和密文策略(cp-abe)两种。除此之外,电子文档相较于纸质文档的一大缺点就是容易复制,高级别权限的使用者可以轻易获得某些高级别的文档并私自复制给低级别使用者。传统方法上,我们使用印章来避免文档的非法复制。在信息时代,数字签名就是电子文档的“印章”。数字签名是基于公钥密码学的一种技术,由两部分组成——签名算法和验证算法。用户能够使用一个依赖于私钥的签名算法sig()来对某一消息m进行签名,签名结果sig(m)随后能使用一个公开的验证算法ver()来验证。若验证结果为正确,则我们可以放心地认为sig(m)确实是来自于某一用户对消息m的签名。基于以上所述,本发明提出了可以为存储在云服务器中的电子文档进行多访问级别管理的方法。技术实现要素:本发明设计了一种多访问级别的电子文档网络存储管理的方法,实现了云存储环境下对有安全保障、访问级别、搜索权限等多方面要求的电子文档的有效存储和搜索。一种多访问级别的电子文档网络存储管理的方法,具体方法如下:a.划分电子文档和用户的访问级别,生成对应的级别陷门,建立电子文档索引表;b.对电子文档进行加密并建立密文文档库,将密文文档库和索引表上传至云服务器;c.根据用户u的访问级别为用户u分配级别陷门和第二哈希密钥;d.用户u根据搜索关键字及为用户u分配的级别陷门和第二哈希密钥,生成搜索陷门,并发送给云服务器;e.云服务器根据所述搜索陷门查询所述索引表获得所有符合访问级别的、包含所述搜索关键字的所有文档的唯一存储标识号的集合,并根据所述集合查询所述密文文档库,获得所述集合对应的密文文档,并将获得的所述密文文档发送给用户u。具体地,对电子文档加密具体过程为:对每个待上传至云服务器的电子文档先用对称加密算法加密,其对称密钥再被属性加密算法加密,最终密文形式是文档唯一存储标识号、对称密钥密文、电子文档密文三者的级联;所述文档唯一存储标识号是指某一电子文档的唯一特定标识,在加密前后始终一致。特别地,对称加密算法包括sm4、des、aes等对称加密算法,加密和解密过程均需要对称密钥。特别地,属性加密算法包括基于密文策略的属性加密算法,是一种公钥算法,包括主密钥和公钥的生成、私钥生成、加密过程和解密过程,其公钥用来加密消息,主密钥用来生成私钥,算法对不同解密者基于其属性产生不同私钥,属性满足要求的私钥才可以成功解密。属性加密算法具体过程为:该算法在加密每一条消息之前,会先为该消息建立访问结构,即能够解密该消息的解密者的属性组合要求,如“局长并且是党员”,如果解密者的私钥不满足访问结构,则无法解密出消息;用户u的身份属性是指用户u的既定属性,如单位、职务、政治面貌等,与上述的访问结构中所包含的属性相一致。其中,属性私钥与用户的身份属性相关联,由属性加密算法生成,当用户的属性私钥所包含的身份属性满足用属性加密算法加密得到的密文的访问结构时,才能成功解密密文文档;其中,访问级别是一个具有严格偏序关系的有限集合,指为所有电子文档与用户划分的访问层次,有高低之分,用户可以访问到其访问层次及其以下访问层次的电子文档;其中,级别陷门是特定访问级别与第一哈希密钥级联之后,经由哈希函数计算所得的哈希值,哈希值指某一哈希函数对某一消息生成的固定长度的哈希值。这样在搜索的过程中,即使低级别用户输入了关键字,由于没有相应的级别陷门,同样无法生成有效搜索陷门在索引表中查询,从而避免了越权搜索。有效搜索陷门是指由关键字和对应级别陷门、合法第二哈希密钥生成的搜索陷门。其中,索引表是指基于“关键字-文档”索引形式的对称可搜索加密方案建立的索引表,索引表中的搜索陷门为搜索关键字、级别陷门和第二哈希密钥三者级联的哈希值,索引表中的有效搜索陷门将对应到存储信息,即本方法中的电子文档的唯一存储标识号。所述索引表包含一个或多个数组和一个表格的索引表。所述数组的建立具体步骤如下:选择所述数组中的一个随机位置,并在所述随机位置存放包含某个所述关键字的某个电子文档的唯一存储标识号的密文;若任意一个其它电子文档也包含所述关键字时,选择所述数组中未被占用的任意其它随机位置,并在所述其它随机位置存放所述其它电子文档的唯一存储标识号的密文,同时把所述其它随机位置信息以密文形式存放在所述某个电子文档的唯一存储标识号密文的位置;最终,把包含同一个所述关键字的所有电子文档的唯一存储标识号和位置信息以密文形式存储;所述表格中包含了每个所述数组的第一个电子文档唯一标识号存储的位置信息的密文。其中,级别陷门是指访问级别与第一哈希密钥的级联的哈希值;所述哈希值是指如sm3、sha-1等哈希函数对某一消息生成的固定长度的哈希值,不同的消息将生成完全不同的哈希值;在本方法中,我们均将消息与哈希密钥级联起来再求哈希值,选取两个哈希密钥k1和k2,第一哈希密钥k1将和访问级别一起哈希为级别陷门,第二哈希密钥k2将和搜索关键字、级别陷门一起哈希为搜索陷门。级别陷门的分配具体为:将每个特定用户u所在的访问级别及其以下的访问级别生成的所有级别陷门分配给用户u。其中,所述搜索陷门包括:由搜索关键字、所述级别陷门和所述第二哈希密钥三者级联的哈希值。用户本地生成的搜索陷门与在建立索引表时生成的搜索陷门的过程和内容相同。其中,第一哈希密钥用于生成级别陷门;第二哈希密钥是指为用户分发的哈希密钥,用于生成搜索陷门,与建立索引表时所用的第二哈希密钥一致。其中“搜索陷门查询所述索引表获得所有符合访问级别的、包含搜索关键字的所有文档的唯一存储标识号的集合,并根据所述集合查询所述密文文档库”具体过程为:云服务器根据用户发送过来的本地生成的所述搜索陷门,与索引表中的项目一一对应匹配,若匹配成功则表明搜索到了包含搜索关键字的、符合访问级别的相关电子文档的唯一存储标识号的集合,若匹配失败,则表示搜索不到符合要求的电子文档的唯一存储标识号的集合,返回空集合;低访问级别的用户因没有高级别的级别陷门,所以无法生成所需要的搜索陷门进行关键字的搜索;高级别用户可以将级别陷门转交给低级别用户,让其代为执行搜索;云服务器根据上一步所获得的电子文档唯一存储标识号的集合,访问存储在云服务器上的密文文档库,获得集合中所有唯一存储标识号所对应的密文文档。进一步,根据所述用户u的身份属性为其分配属性私钥,所述用户u根据自己的所述属性私钥解密发送给所述用户u的所述密文文档;具体过程为:用户先用自己的属性私钥解密获得加密文档用的对称密钥,然后再由获得的对称密钥解密电子文档密文得到明文形式的电子文档。进一步,还包括:用户登录云服务器进行身份认证具体过程为:云服务器通过“用户名-密码”的方式来检测登录用户的合法性,并增加手机验证码、动态口令和图片验证码等,验证登录用户的身份确实为合法授权用户。进一步,还包括所述云服务器在返回给所述用户u所有查询到的密文文档的集合之前,对于每个文档,会使用云服务器的数字签名私钥对所述文档的唯一存储标识号和用户名id进行签名,之后云服务器将密文文档连同签名一起发送给用户u。对于任何一个用户,均可以通过云服务器公开的数字签名公钥来验证签名的合法性,即验证某一用户u手中的某一电子文档是不是通过云服务器搜索下载这一途径合法得到的。其中,用户名id是指用户的云服务器客户端登录名,是唯一的。数字签名方案包括签名算法和验证算法两部分,其密钥包括数字签名私钥和数字签名公钥,数字签名私钥在签名算法中为云服务器用以生成消息签名的密钥,没有数字签名私钥即无法生成对消息的合法签名;数字签名公钥为云服务器生成并公开的,在验证算法中用于支持验证数字签名的合法性的密钥。验证者只要输入数字签名公钥,消息m和数字签名s,即可验证s是不是云服务器对m的签名。进一步地,本发明方法还包括如下步骤:对云服务器的密文数据库和所述索引表进行动态更新,具体过程为:当需要新增某一电子文档时,使用本发明中的方法加密此电子文档,使用第一哈希密钥和第二哈希密钥生成增加文档陷门,将新的电子文档密文和增加文档陷门发送给云服务器,由云服务器根据增加文档陷门来更新所述索引表,并将新的电子文档密文增加到存储在云服务器上的密文文档库,完成增加操作;当需要删除某一电子文档时,使用本发明中的第一哈希密钥和第二哈希密钥生成删除文档陷门并发送给云服务器,由云服务器根据删除文档陷门来更新所述索引表,并根据所要删除的文档唯一存储标识号将所要删除的文档从存储在云服务器上的密文文档库中删除,完成删除操作;当需要更新某一电子文档时,先执行删除操作,再执行增加操作。当用户访问级别或身份属性发生变动时,为变更用户重新生成并分配级别陷门和属性私钥,其生成与分配过程与前述方法一致。本发明具有以下优点:1)本发明所设计的方法和系统利用对称可搜索加密方案实现了电子文档的全密文化网络存储管理,有效避免了在网络传输阶段和存储阶段被恶意的网络窃听者和云服务器窃取到私人信息;而且内部用户能够执行有效搜索和查阅,提高办公效率;2)本发明设置了多种身份认证技术,有效地将非法用户拒之门外;3)本发明将电子文档按访问级别进行分类,并赋予不同级别的用户不同的级别陷门,可以防止低级别用户接触高级别的文档;4)本发明利用属性加密方案将加密文档的对称密钥加密起来,只有满足属性要求的用户才可以解密并查阅,其他用户即使拿到了某一文档,也会因为没有符合访问权限的属性私钥而无法解密;5)本发明使用了数字签名技术,任何人可以方便地验证某个电子文档的来源;6)本发明支持动态更新,如果某一电子文档超过其存储期限或者某一文档需要提高其访问级别等,电子文档管理者可以随时通过操作密文文档库并更新索引表来达到此目的。附图说明图1是本发明的使用流程图。具体实施办法下面结合实施例1,对本发明实施例中的技术方法进行完整描述。本发明基于对称可搜索加密、属性加密、数字签名和身份认证等密码学技术,设计了一种多访问级别的电子文档网络存储管理的方法,实现了云存储环境下对有安全保障、访问级别、搜索权限等多方面要求的电子文档的有效存储和搜索。在本方法中,所有电子文档在云服务器上均以密文形式存储,保证了文档的绝对机密性;以用户名和密码、手机验证码、动态口令等方式进行使用人员身份验证,这是防止非法用户窃取秘密信息的有力防线;云服务器会检查用户的级别陷门,并屏蔽掉高于用户的访问级别的文档,防止越权搜索查阅;使用基于属性加密的算法和对称加密算法对文档进行双重加密,用户必须拥有符合文档访问结构的属性私钥才可以成功解密出对称密钥,进而解密出明文文档并查看;云服务器使用数字签名方案对将要下载的文档唯一存储标识号和用户id进行签名,任何人都可以有效鉴别文档来源是否合法;电子文档管理者对电子文档在云服务器上的存储进行后台管理,实现密文文档库和索引表的动态更新。本发明可以分为电子文档上传准备阶段和用户搜索查阅电子文档阶段两部分,参见实施例1,具体流程如下所示:实施例1我们用kamara等在2012年提出的动态可更新sse方案和bethencourt等人在2007年提出的cp-abe方案为基础,利用sm4对称加密算法、sm2数字签名算法和sm3哈希函数,具体实施如下:电子文档管理者是指对所有电子文档和所有用户拥有管理权的管理者或管理组织,用户指使用本发明方法的对电子文档有搜索查阅需求的云服务器用户,云服务器指使用本发明方法并为电子文档管理者和用户提供服务的云端服务器。我们使用了用户集、属性集、电子文档集和访问级别集四个集合的概念,用户集和电子文档集分别到访问级别集有一个映射关系,表示不同用户有一定访问级别,不同的电子文档也有一定访问级别;用户集和属性集之间有一个映射关系,一个用户会对应属性集之间的若干属性,这里的属性是对用户身份的一种描述,如职位、单位等。符号说明:δ本例所使用的的sse算法,即对称可搜索加密算法本例所使用的的abe算法,即属性加密算法ε本例所使用的的sm4对称加密算法γ本例所使用的的sm2数字签名算法pk中的加密公钥mk中的主密钥w所有关键字的集合δ={l1,l2...lm}所有访问级别的集合lv(di),lv(ci)电子文档的访问级别id(di),id(ci)电子文档的唯一存储标识号h1(),h2()sm3哈希函数k1第一哈希密钥,h1()的哈希密钥,用于生成级别陷门k2,k3,k4第二哈希密钥,δ中h2()的哈希密钥,用于生成搜索陷门ds数字签名私钥,由云服务器掌握ps数字签名公钥,公开||级联符号一、电子文档上传准备阶段1)电子文档管理者使用{“jb01”,“jb02”...}作为访问级别,为每一电子文档di,根据其内容标注其应有的访问等级lv(di),并使用树结构为每个文档建立访问结构t,在t的叶子结点中存储单个属性信息,在非叶子结点中存储整数表示的门限信息,即表示了只有达到根结点门限要求的属性的组合才能访问该文档。根据sm4安全参数生成16进制表示的128bit随机数ki作为对称密钥,加密得到ε.enc(ki,di),对对称密钥用属性加密方案加密,得到最终其密文包括文档id,abe密文和sm4密文三部分,即2)电子文档管理者选取256bit随机数k1作为第一哈希密钥,针对每个访问级别lj,通过sm3哈希函数h1()和第一哈希密钥k1,映射为不同的256bit的哈希值,即级别陷门tj=h1(k1,lj);3)电子文档管理者建立可动态更新的索引表i,i=δ.buildindex(k2,d,w,δ),索引表包括array和table两部分,其中array是一个加密链表的数组,table是一个存储中链表头结点地址的表格,具体如下:针对每个关键字wi,每个访问级别lj与其级别陷门tj,生成搜索陷门ti,j,其中包含三部分256bit子陷门tr1,tr2,tr3,{tr1=h2(k2,wi||tj),tr2=h2(k3,wi||tj),tr3=h2(k4,wi||tj)};电子文档管理者整理出每个关键字、不同访问级别可搜索到的所有明文文档的id所组成的链表,链表中每个结点存储一个相关文档id的和下一结点地址,若无下一结点则指向空地址,将链表的每个结点与tr3异或后随机存储到array中,并将每个链表的头结点地址address与tr2异或后存储到table中的tr1位置,针对所有关键字、所有访问级别均照此法,完成i的建立;4)电子文档管理者将密文文档库c和索引表i一同上传至云云服务器。5)电子文档管理者确认所有使用用户,分配他们在云服务器上的用户名和密码,划分他们所能接触的访问范围,并为每个用户u分配他的访问级别及其以下的所有级别陷门{tj,1≤j≤m且lv(lj)≤lv(u)},同时将第二哈希密钥k2,k3,k4分发给用户;6)电子文档管理者对于单个用户u的实际情况如单位、职位、政治面貌等信息,将其属性集表示为单个属性的数组su,根据abe算法,由主密钥生成与用户属性相对应的属性私钥并分配给用户u;二、用户搜索查阅电子文档阶段1)用户登录,输入用户名、密码、手机验证码和动态口令等,完成登录;2)合法用户登录进入云服务器之后,输入想要查阅的电子文档的关键字wi和与其文档相匹配的的级别陷门tj,第二哈希密钥k2,k3,k4,由h2()哈希函数得到一个包含三个子陷门tr1、tr2、tr3的搜索陷门ti,j={tr1=h2(k2,wi||tj),tr2=h2(k3,wi||tj),tr3=h2(k4,wi||tj)}3)用户提交搜索陷门给云服务器,云服务器首先根据子陷门tr1在索引表的table中寻找对应项,若为空则报错;否则用tr2与对应项异或得到索引表的array中头结点的地址,若地址非法则同样报错;最后,在array中找到链表的头结点,用tr3异或解密,并顺势解密出链表所有结点从而得到所有相关文档的id集合s,若解密失败则报错,返回给用户提示信息;4)进一步地,云服务器根据上一步所得到的s去查询密文文档库,得到所有id的需求的密文文档{ci,ci∈c},对所有文档ci云服务器利用私钥ds对文档id和用户名u签名得到γ.sig(ds,id(ci)||u),返回给用户所有文档(包含其id)及其签名;任何人可以通过公开的验证算法验证某一文档的签名是否合法,即对于文档ci的签名y,验证γ.ver(ps,id(ci)||u,y),从而判断此文档是不是由用户u从云服务器得到的;5)解密时,用户u先用自己的属性私钥sku解密密文的第二部分即对称密钥密文部分,如果包含在sku中的用户属性与文档的访问结构t相匹配,即可得出128bit的对称密钥再用ki解密密文的第三部分得到明文di=ε.dec(ki,ci),即可正常查阅。进一步地,本方法还可以增加动态更新部分,具体如下:三、动态更新阶段1)当有新的电子文档di需要上传到云云服务器进行存储时,电子文档管理者使用同样的方法加密此文档生成ci,并生成增加文档陷门tadd=δ.addtoken(k2,k3,k4,di),其中增加文档陷门tadd的生成过程具体如下:我们将所有di的关键字集合表示为wdi,所有能够访问到di的访问级别的级别陷门集合为{t(di)},生成所有索引表中的子陷门tr={tr1=h2(k2,wi||tj),tr2=h2(k3,wi||tj),tr3=h2(k4,wi||tj),对而tadd={tr,id(di)},电子文档管理者将tadd和密文ci发送给云服务器,由云服务器执行δ.add(i,tadd),即增加操作,具体过程为:通过tadd中所包含的所有子陷门找到所有需要改动的链表头结点地址,使用头插法将存储有新文档id的结点插入到链表中,同时改变table中的地址指向,完成更新索引表,并将新的密文ci添加到密文文档库中,完成增加操作;2)当某一电子文档di由于超过存储期限或是其他原因而需要删除时,电子文档管理者生成删除文档陷门tdel=δ.deltoken(k2,k3,k4,di),其中删除文档陷门的生成过程具体如下:我们将所有di的关键字集合表示为wdi,所有能够访问到di的访问级别的级别陷门集合为{t(di)},生成所有索引表中的子陷门tr={tr1=h2(k2,wi||tj),tr2=h2(k3,wi||tj),tr3=h2(k4,wi||tj),对而tdel={tr,id(di)},电子文档管理者发送给云服务器,由云服务器执行δ.del(i,tdel),通过tdel中的子陷门找到所有array中的存储该陷门所对应的id集的链表,遍历链表找到存储信息与id(di)相一致的结点,删除该结点,若链表的头节点改动则同时变更table中的对应项,删除密文文档库中的文档,完成删除操作;3)当某一电子文档需要修改时,先执行删除操作,再执行增加操作;4)当用户访问级别或身份属性发生变动时,电子文档管理者为变更用户重新生成并分配级别陷门和属性私钥,其生成与分配过程与前述方法一致。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1