一种利用分层树结构控制访问的数据存储系统的制作方法

文档序号:14897328发布日期:2018-07-08 08:48阅读:120来源:国知局

本发明属于数据存储领域,特别涉及了一种高效的、利用分层树结构控制访问的数据存储系统。



背景技术:

现实生活中,我们经常会碰到一群人共享某些存储数据的场景,诸如一群学生共同使用图书馆资源、档案室资料,或者公司员工共享使用存储公司内部资料的公共电脑等等。一个性能优越的数据存储系统能够给这个团队的工作效率带来很大的提升。通常,这个数据存储系统以文件夹系统的形式展示给团体成员,数据首先按照日期、类型、内容、大小等等属性划分,随后存储到相应的文件夹之中,供日后查询使用。这群人之中一般会存在一个管理员,拥有对数据和用户的双重控制,既可以对系统中的数据进行增删修改操作,也可以控制不同用户对数据的访问权限等等。

对于一个共享的数据存储系统而言,不仅需要将非法用户拒之门外,同时也要对合法的用户进行细粒度的访问控制,也就是说,存储数据是具有访问等级的,某一用户能查看哪些数据是根据这个用户的身份来确定的。然而我们目前所应用的的诸多数据存储系统,均没有实现细粒度的访问控制,仅通过简单的管理员账号密码与用户账号密码来区别系统登录者,而普通用户进入系统之后,所能查看到的数据是一致的,这与我们实际生活中的要求细粒度访问控制的应用场景严重不符。

树状结构是计算机存储时常用的数据结构,对于一棵树而言,如果自顶向下所有结点满足一定的排序关系的话,我们则可以称其为分层树,也就是说这棵树的每一层拥有相同的等级或者类似的属性圈,我们计算机中常用的文件夹系统其实就是一种树结构,某个具体的文件夹对应树中的某一结点,其中的文件夹相当于此结点的子结点,存储的数据则对应结点的存储空间,为这个文件夹设置一个访问口令即对此结点做出了访问控制。树结构具有增删结点灵活、架构清晰、管理方便等优点。

基于以上背景技术,我们希望能够克服现有技术的缺点,结合分层树的特点,设计发明一种细粒度访问控制的多人共享数据存储系统。



技术实现要素:

本发明要解决的技术问题是,提供一种数据存储系统及方法,可以实现数据的分级控制访问,能够有效应用于要求细粒度访问控制的多人共享数据存储的场景。

为了解决上述问题,本发明公开了一种利用分层树结构控制访问的数据存储系统,包括系统建立模块、口令生成模块、口令分配模块、数据查询模块。其中:

所述系统建立模块,为所有共享数据基于他们的访问等级和属性集信息生成分层树,之后将所有数据按分层树结构存储到所述分层树的结点中;所述分层树为一个n(n≥2)层的多叉树,每个结点拥有独立的访问等级、属性集信息、一个唯一整数编号index与一个门限值k。

所述访问等级是指所有共享数据与用户的访问权限的属性,从高级向低级表示为(lv1,...,lvn),所述分层树的根结点所存储数据的访问等级为lv1,自根结点向下每层结点所存储数据的访问等级逐步递减。

所述属性集信息指所有共享数据的属性标签,表示为(attr1,...,attrm),包括数据的内容、类型等区别于其他数据的属性信息,几个不同访问级别的数据可以拥有同等的属性集信息,基于所述访问等级和属性集信息,某一数据会确定其在分层树中的唯一存储位置。

所述分层树的建立过程具体为:首先确认所有数据的由高到低的访问等级(lv1,...,lvn)和属性集信息(attr1,...,attrm),建立一个n层的满m叉树,其中n为访问等级的总数,m为全部属性集信息的个数,从根结点开始向下,从根结点作为第1层开始向下,第n层的结点存储所有访问级别为lvn的数据,其中1≤n≤n,任一结点的子结点的属性集信息各不相同,数据按访问等级和属性集信息存放到对应的结点中去,之后删除未存储数据的结点;从根结点开始顺次为每个结点分配一个唯一整数编号index和门限值k,某一结点门限值k是这么确定的:假定用户拥有至少k个子结点的访问权限才能向上访问非叶子结点的话,那么所述非叶子结点的门限值就为k;即k为一个不超过其子结点个数的正整数,叶子结点由于没有子结点,规定他们的k取1;由某一结点可以进而访问到其子结点,但是由其子结点向上访问此结点时需满足门限要求,即至少能访问到此结点的k个子结点才能访问到此结点。

所述口令生成模块从所述分层树的根结点开始为每个结点生成相互独立的访问口令,并用访问口令为结点中存储数据加密。所述访问口令为一个整数形式的访问密码,每个结点的访问口令相互独立,输入正确的访问口令才能够访问到此结点中存储的数据,其生成方法具体如下:

(a)为根结点分配一个随机整数s作为根结点的访问口令,以根结点作为父结点;

(b)假设父结点的门限值为k,以父结点访问口令作为常系数a并随机选取(k-1)个整数系数{a1,a2...ak-1}构造多项式f(x)=a+a1x+...+ak-1xk-1,对于其编号为index的子结点,取f(index)作为所述子结点的访问口令,从而得到父结点所有子结点的访问口令;

(c)然后对所有非叶子结点作为父结点按照步骤(b)生成对应的所有子结点的访问口令;

其中,自变量x代表子结点的唯一整数编号index。具体到根结点root的多项式为对于编号为index的子结点取froot(index)作为访问口令;

随后,对于所有结点,用上述步骤生成的访问口令为其中存储的数据加密。

所述口令分配模块,在所述口令生成模块为每个结点生成访问口令之后,将全部结点的访问等级、属性集信息、唯一整数编号index、门限值k以及分层树中若干个叶子结点的访问口令,按照用户访问等级分发给不同用户。所分配访问口令的结点符合被分配用户的访问等级,且均能被此用户访问,而且相对来说,访问等级高、属性集信息范围大的用户所分配到的不同叶子结点的访问口令数量多于访问等级低、属性集信息范围小的用户所分配到的不同叶子结点的访问口令数量。

所述数据查询模块,在用户输入所分配的访问口令后,触发查询所需数据的操作。用户需要查询本系统中的数据时,根据所有结点的门限值k和所分配的叶子结点的访问口令,确定所有可访问结点,具体为:自底向上地(从叶子结点开始),确认所有下层的可访问结点,然后判断是否有下层结点的集合满足他们的父结点的门限值k,如果满足则将其父结点也纳入可访问结点列表中。若计算出所需数据不在可访问结点中,则查询结束。

用户随机访问一个可访问的叶子结点,基于所需数据的属性确定其所在的存储层级和结点,计算出一条由此结点到目标层级和结点的先向上、后向下的路径。向下访问时,可以跳过访问口令直接访问并解密结点存储数据;向上访问时,则需要输入父结点的访问口令,如果用户满足父结点的门限k的要求,则能通过k个同级结点的访问口令,利用拉格朗日插值方法计算出父结点的访问口令,输入正确口令即可向上一层访问;重复此步骤直到查询到所需数据为止。

较佳的,上述数据存储系统还包括系统更新模块,所述系统更新模块触发对所述数据存储系统进行一系列更新操作,包括对所述共享数据的更新和对所述分层树结构的更新。当需要更新数据时,直接进入到数据所在结点进行更新。对分层树结构的更新具体包括增加或删除某一结点i的子结点。当树中某一结点i需要增加子结点i',而i的门限值ki保持不变时,首先为i'分配所述唯一整数编号index',假设i的多项式为fi(x),直接置i'的访问口令为f(index')即可;若其门限值改变,则需重新根据i的访问口令构造新的多项式,并按所述口令生成模块中的方法为其所有子结点(包含子结点的后续子结点)生成访问口令。同样地,删除结点i的某一子结点时,若其不影响i的门限值ki则将其直接删除;若影响,则将所述子结点删除后,从结点i开始重新构造多项式并分配后续子结点的访问口令。

本发明所设计的利用分层树结构控制访问的数据存储系统,结合多项式插值秘密共享方案,能够实现对所存储数据的细粒度访问控制,整个系统架构清晰,功能完善,操作简单,效率高而且符合实际生活需要,能够有效应用于诸如图书馆、公共课室、办公室公用电脑等多人共享存储数据的场景。

附图说明

图1是本发明中一种利用分层树结构控制访问的数据存储系统的示意图;

图2是本发明所述分层树的示意图。

具体实施办法

下面结合附图,对本发明中的利用分层树结构控制访问的数据存储系统进行完整描述。

实施例1

假设现在有一个群体g需要使用本发明所设计的系统来实现一个细粒度访问控制的共享数据存储系统,g中存在一个管理员,拥有对所有共享数据{data1,...,data11}和所有用户的控制权与管理权,负责建立此数据存储系统共享数据给用户群体使用,同时负责更新维护此系统。在使用过程中,按照时间顺序他们分别使用了本系统中的系统建立模块、口令生成模块、口令分配模块、数据查询模块以及系统更新模块,具体过程如下:

1.首先管理员确定所有数据{data1,...,data11}的访问等级,自高级向低级分为lv1、lv2和lv3,属性集信息分别有{总类,文史,理工,艺术,图书,音像,报刊}7种,如附图2所示,使用系统建立模块来为所有共享数据基于他们的访问等级和属性集信息生成3层的分层树,将所有共享的数据存储到分层树中不同层级的结点中。随后从根结点开始,记根结点的index为1,顺次为每个结点分配一个唯一整数编号index和门限值k,其中k为一个不超过其子结点个数的正整数,根据由这个结点的子结点向上访问此结点时所需的最少结点个数来确定,并定义所有叶子结点的k=1。在例1中从根结点开始每个结点的(访问等级,属性集信息,index,k)分别为{(结点1,lv1,总类,2),(结点2,lv2,文史,2),(结点3,lv2,理工,2),(结点4,lv2,艺术,2),(结点5,lv3,图书,1),(结点6,lv3,音像,1),(结点7,lv3,图书,1),(结点8,lv3,报刊,1),(结点9,lv3,音像,1),(结点10,lv3,图书,1),(结点11,lv3,音像,1)}。

2.系统建立之后,在口令生成模块中,管理员从根结点开始为分层树中每个结点生成相互独立的访问口令,并用访问口令为结点中存储数据加密。具体如下:

(a)从根结点1开始,为其分配一个随机整数68作为根结点的访问口令,选择结点1作为父结点;

(b)结点1的门限值k1=2,所以以68作为常系数,随机选择1个整数系数-13构造多项式f1(x)=68-13x,结点1有三个子结点,其index分别为2、3、4,那么结点2的访问口令为f1(2)=42,结点3的访问口令为f1(3)=29,结点4的访问口令为f1(4)=16;

(c)将结点2、结点3、结点4分别作为父结点,按照步骤(b)生成他们各自的子结点(也就是结点5、结点6,结点7、结点8、结点9和结点10、结点11)的访问口令(在例1中,结点2、结点3、结点4的多项式分别为f2(x)=42+76x、f3(x)=29-8x和f4(x)=16+10x,结点5、结点6,结点7、结点8、结点9和结点10、结点11的访问口令分别为422、498、-27、-35、-43、116和126);

完成对分层树中所有结点访问口令的生成之后,用访问口令作为密钥采用对称加密算法sm4分别为结点中所存储数据加密。

3.假定现在有u1和u2两个用户,u1的身份级别高一些,能够访问图书、音像、报刊等多种数据,u2的身份级别低一些,仅能访问部分类别中的图书或音像数据,管理员在所述口令分配模块中为上述两个用户按照其身份所对应的的访问等级,分发全部结点的访问等级、属性集信息、唯一整数编号index、门限值k和若干个分层树中叶子结点的访问口令。具体地,根据“所分配访问口令的结点均符合被分配用户的访问等级,且均能被此用户访问,而且相对来说,访问等级高、属性集信息范围大的用户所分配到的不同叶子结点的访问口令数量多于访问等级低、属性集信息范围小的用户所分配到的不同叶子结点的访问口令数量”的分配原则,为u1分配结点5、结点6、结点7和结点9的访问口令,为u2分配结点6和结点7的访问口令。

4.用户u1或u2可使用本系统的数据查询模块查询所需数据。假定目前u1和u2均想要查询data4(位于结点4之中)。u1的查询过程具体如下:根据所有结点的门限值k和所分配的叶子结点的访问口令,确定所有可访问的结点为结点1、结点2、结点3、结点4、结点5、结点6、结点7、结点8、结点9、结点10和结点11。确定目标结点为第2层的结点4,从可访问的叶子结点7开始,此结点中没有所需数据,需要向上访问结点3;由于用户u1拥有结点7和结点9的访问口令,满足结点3的门限值k3=2的要求,那么他能够通过这两个同层级结点的访问口令即-27和-43,利用拉格朗日插值方法计算出父结点的访问口令为29;同样地,他根据结点5和结点6的访问口令422和498,计算出结点2的访问口令为42;根据结点2和结点3的访问口令42和29,计算出结点1的访问口令为68,访问根结点;由根结点进而向下访问结点4中的数据时,可以跳过访问口令直接访问并解密得到所需数据data4。

5.用户u2首先计算出自己的所有可访问结点为结点6和结点7,不满足向上访问的条件,所以无法访问结点4中的存储数据data4,查询结束。

6.在需要对数据进行更新或者对分层树的结构进行更新时,管理员则会使用所述系统更新模块来对此数据存储系统进行一系列更新操作。当需要更新数据如data3时,由于管理员拥有分层树中全部结点的访问口令,进而可以直接输入结点3的访问口令29进入到数据所在结点进行更新操作。对分层树结构的更新则包括增加或删除某一结点的子结点。假设结点2现在要增加一个子结点12(我们假定其index为12),若结点2的门限值k2保持为2不变时,则结点12的访问口令为f2(12)=954;假定结点2的门限值由于增加一个子结点变更为k2=3时,那么则需按照所述口令生成模块中的方法,选择随机数40和-36,重新构造结点2的多项式为f2(x)=42+40x-36x2,所以结点5、结点6和结点12的访问口令分别为-658、-1014和-4662;同样地,假设目前需要删除结点8,若结点3的门限值k3保持为2不变,则可以将结点8直接删除;若k3由于结点8的删除而变为1,则重新生成结点3的多项式f3(x)=29,并分别置结点7和结点9的访问口令为29。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1