基于公钥系统的细粒度轻量级的密文访问控制方法和系统与流程

文档序号:13617481阅读:316来源:国知局
基于公钥系统的细粒度轻量级的密文访问控制方法和系统与流程

本发明涉及电子技术领域,特别是一种基于公钥系统的细粒度轻量级的密文访问控制方法和系统。



背景技术:

随着信息技术的发展,越来越多的数据通过电子形式存储和发送,因此对数据的加密也直接关系到数据的安全性。其中如何对密文数据进行授权访问将是密文存储中一个很重要的问题,只有通过授权访问控制才能保证数据得到合理的访问,提高数据的存储价值,并且利于数据在不同人员和部门之间的共享。

但是传统的访问控制都是基于明文的访问控制,例如基于属性的访问控制方案(abc)、基于角色的访问控制方案(rbc)、基于身份的访问控制(ibc)。而密文数据的访问控制除了需要像基于明文的访问控制方案中在应用的层面将数据项授权用户进行授权以外,还需要将与密文数据对应的安全密钥发送给用户。由此可以看出,现有技术中需要一套合理的密文访问控制方案来提供安全性保障。



技术实现要素:

针对现有技术中存在的问题,本发明实施例的目的是提供一种能够提高数据访问和存储安全性的基于公钥系统的细粒度轻量级的密文访问控制方法和系统。

为了实现上述目的,本发明实施例提出了一种基于公钥系统的细粒度轻量级的密文访问控制方法,包括:

数据发布步骤,获取数据拥有者deo发布的数据集ddeo以及该数据拥有者的公钥pubdeo,利用该公钥pubdeo对数据集ddeo中的每个数据di进行加密,以获得密文数据集ddeo';上传密文数据集ddeo'并构建相应的权限控制节点;

数据授权步骤:为了保证服务器端数据的安全性,引入数据镜像将数据的存储与访问分割开;同时引入代理冲加密机制来减少冗余副本。为了完成数据的重加密,系统为每个数据文件相应的镜像点分配一个对应的公钥/私钥对(pubi',prii'),其中数据文件di与其相应的镜像点mirrii之间的代理重加密密钥如下:rdi→mirri=(pubdeo/pubmirri)modφ(n);其中n是rsa加密系统中的公共参数;

数据访问步骤:在接收到用户uj对于加密数据di'的访问请求时,判断该用户uj是否属于该权限控制节点并对加密数据di'有访问权限,如果有则使用该代理重加密密钥rdi'→mirri对加密数据进行重加密得到重加密数据di”;获得相应权限控制节点中用户uj对应的加密镜像私钥primirrdi',并将该重加密数据di”和加密镜像私钥primirrdi'都返回给该用户uj。

其中,所述数据发布步骤具体包括:

步骤101、对于数据集中的每一数据i=1……ddeo;利用rsa加密算法对数据di加密,获得加密的数据di'=e(pubdeo,di);并将所有加密的数据一起生成密文数据集ddeo';

步骤102、上传密文数据集ddeo'至服务器;

步骤103、利用acc算法构建初始权限控制层,当该acc非空时,将其创建acci对应的权限控制节点,并将acci从acc删除。

其中,所述数据授权步骤包括:

步骤201、针对待授权数据集中的每一数据i=1……|sub(ddeo)|,为授权数据di生成相应的镜像数据mirrdi;

步骤202、利用镜像数据mirrdi的私钥/公钥对(primirrdi,pubmirrdi)与数据集ddeo的私钥/公钥对(prideo,pubdeo)生成代理重加密密钥rdi→mirri,并存储在服务器;

步骤203、如果授权用户uj对数据di有授权关系,则利用授权用户ui的公钥pubui对其镜像私钥primirrdi进行加密得到加密镜像私钥primirrdi';将加密镜像私钥primirrdi'存储在与uj对应的权限控制节点中。

其中,所述数据访问步骤具体包括:

步骤301、对于加密数据集中的每一加密数据i=1……|sub(ddeo')|;判断请求访问的加密数据di'判断在权限控制节点gdeo是否有对应的镜像点,如果是则跳转到下一步,如果否则加密数据di'无授权进行访问,拒绝对数据的访问;

步骤302、判断该镜像点下的权限控制节点是否存在该用户uj的授权信息uidj;如果有跳转到下一步;如果没有则uj属于该权限控制节点但无访问权限,步骤结束;

步骤303、获取加密数据di'与镜像数据mirrdi之前的代理重加密密钥rdi'→mirri;使用该代理重加密密钥rdi'→mirri对加密数据进行重加密得到重加密数据di”;

步骤304、获得相应权限控制节点中用户uj对应的加密镜像私钥primirrdi',并将该重加密数据di”和加密镜像私钥primirrdi'都返回给该用户uj。

其中,所述方法还包括:

更新步骤,用于当完成了基于镜像节点与权限控制节点的授权撤销之后,对数据所所有者deo发布的数据集ddeo进行更新,并更新访问控制结构图gdeo。

其中,所述更新步骤具体包括:

步骤401、针对每个数据集fori=1……|adddeo|,判断数据集ddeo中是否已经有新添加的数据集addi,如果有则跳转到步骤402,如果没有则跳转到步骤403;

步骤402、读取授权规则autaddd,判断判断新添加的数据集addi的授权数据:

如果授权规则autaddd中针对新添加的数据集addi的授权是保持,则不做任何操作;

如果授权规则autaddd中针对新添加的数据集addi的授权是撤销,则调用撤销授权步骤进行撤销授权;

如果授权规则autaddd中针对新添加的数据集addi的授权是添加,则调用数据授权步骤进行授权;

步骤结束;

步骤403、将新添加的数据集addi添加到数据集ddeo中,并获取授权规则autaddd中针对新添加的数据集addi的授权,跳转到步骤402。

其中,所述撤销授权步骤包括:在动态更新阶段,当用户ui拥有对加密数据di'的访问权时,授权给,用户ui有加密数据di'的解密密钥keydi';当撤销授权时,数据拥有者deo通过利用新加密密钥对加密数据di'进行重加密并替换原有的密文数据,然后将重加密后的密文数据的解密密钥分发给授权用户。

其中,所述撤销授权步骤具体包括:

步骤401、针对i=1……del(di',sub(u))|个数据进行撤销授权时,判断数据拥有者的数据集ddeo中是否存在加密数据di';如果否则步骤结束;

步骤402、判断该加密数据di'对应的sub(u)是访问权限还是用户集合,

如果sub(u)是访问权限则寻找di'对应的镜像点mirrdi',且mirrdi'对应的访问权限节点对应sub(u)的权限节点,则清空该权限节点下所有的用户授权信息;

如果sub(u)是用户集合,则当sub(u)==di'的授权用户集时,删除权限节点中的所有用户信息,并删除对应的mirrdi'镜像数据;当的授权用户集,则删除权限节点中的sub(u)用户授权信息,并为镜像数据成新的私钥/公钥对(primirrdi,pubmirrdi),并重新计算代理重加密密钥rdi'→mirri;

步骤403、对于当前权限控制节点中剩余的用户j=1…|,利用对应的公钥pubuj加密新的镜像私钥primirrdi并更新权限节点中相应信息。

同时,本发明实施例还提出了一种基于公钥系统的细粒度轻量级的密文访问控制系统,包括:

数据发布模块,用于获取数据拥有者deo发布的数据集ddeo以及该数据拥有者的公钥pubdeo,利用该公钥pubdeo对数据集ddeo中的每个数据di进行加密,以获得密文数据集ddeo';上传密文数据集ddeo'并构建相应的权限控制节点;

数据授权模块,用于完成数据的重加密,系统为每个数据文件相应的镜像点分配一个对应的公钥/私钥对(pubi',prii'),其中数据文件di与其相应的镜像点mirrii之间的代理重加密密钥如下:rdi→mirri=(pubdeo/pubmirri)modφ(n);其中n是rsa加密系统中的公共参数;

数据访问模块,用于在接收到用户uj对于加密数据di'的访问请求时,判断该用户uj是否属于该权限控制节点并对加密数据di'有访问权限,如果有则使用该代理重加密密钥rdi'→mirri对加密数据进行重加密得到重加密数据di”;获得相应权限控制节点中用户uj对应的加密镜像私钥primirrdi',并将该重加密数据di”和加密镜像私钥primirrdi'都返回给该用户uj。

本发明的上述技术方案的有益效果如下:上述技术方案提出了一种基于公钥系统的细粒度轻量级的密文访问控制方法和系统,其在公钥加密系统中通讯双方不需要事先取得信任和许可,同时加密和解密使用不同密钥,并且用户可以对外公布公钥用于验证,因此可以减少用户的计算开销。

附图说明

图1为本发明实施例的系统架构图;

图2为本发明实施例的流程框图。

具体实施方式

为了说明本发明的一种基下面结合附图和具体实施方式对本发明作进一步详细的说明。

在如图1的场景下,当数据拥有者deo需要上传数据时,首先通过本地的密钥对数据加密,然后将加密后的数据上传。当用户要针对某个数据进行数据访问授权时,首先为该数据生成数据镜像,并在数据与镜像点之间生成一条重加密路径,并生成相应的公私钥对。通过对镜像密钥的分发,将数据授权给不同用户。

如图2所示的,本发明实施例的方法具体包括:

在数据发布阶段,使用数据拥有者deo的pubdeo对ddeo中的每个数据di进行加密,当加密完成后,上传密文数据集ddeo'并构建相应的权限控制节点,具体流程如算法1:

在数据授权阶段,为了保证服务器端数据的安全性,引入数据镜像将数据的存储与访问分割开。同时引入代理冲加密机制来减少冗余副本。为了完成数据的重加密,系统为每个数据文件相应的镜像点分配一个对应的公私钥对(pubi',prii'),其中数据文件di与其相应的镜像点mirrii之间的代理重加密密钥关系如下:

rdi→mirri=(pubdeo/pubmirri)modφ(n)

其中n是rsa加密系统中的公共参数。通过上述公式将di的解密密钥由prideo转换成pri'从而完成对原始加密密钥prideo的访问隔离。之后利用授权用户ui的公钥pubui对prii'进行加密并将加密后的密钥密文存储在权限控制节点处。最后数据拥有者在本地进行重加密密钥计算,并将加密后的密钥密文存储在权限访问控制节点中。当针对已授权数据进行再次授权时,只需要针对新的镜像点生成新的密钥对,然后计算新的重加密密钥以及镜像私钥密文即可。针对数据授权的具体流程如算法2:

在数据访问阶段,当用户uj期望对某个数据进行访问时,并不需要数据拥有者do进行任何操作,uj只需要利用系统注册时分配的公私钥对数据进行访问即可,具体流程如算法3:

在动态更新阶段,当数据di'授权给用户ui,也即用户ui已经掌握了di'的解密密钥keydi'。因为针对密钥的回收是比较困难的,于是数据拥有者通过利用新加密密钥对di'进行重加密并替换原有的密文数据。同时还需要将密文数据的新的解密密钥分发给该数据对应的合法授权用户。其中授权撤销的具体流程如算法4:

当完成了基于镜像节点与权限控制节点的授权撤销之后,需要更新do的数据集并更新访问控制结构图gdeo。具体流程如算法5:

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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