CN104811448A - 一种数据安全存储方法 - Google Patents

一种数据安全存储方法 Download PDF

Info

Publication number
CN104811448A
CN104811448A CN201510191689.5A CN201510191689A CN104811448A CN 104811448 A CN104811448 A CN 104811448A CN 201510191689 A CN201510191689 A CN 201510191689A CN 104811448 A CN104811448 A CN 104811448A
Authority
CN
China
Prior art keywords
key
file
node
encryption
role
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.)
Pending
Application number
CN201510191689.5A
Other languages
English (en)
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.)
Guangxi Power Grid Co Ltd
Original Assignee
Chengdu Hui Zhi Distant View Science And Technology Ltd
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 Chengdu Hui Zhi Distant View Science And Technology Ltd filed Critical Chengdu Hui Zhi Distant View Science And Technology Ltd
Priority to CN201510191689.5A priority Critical patent/CN104811448A/zh
Publication of CN104811448A publication Critical patent/CN104811448A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提供了一种数据安全存储方法,该方法包括:在密钥索引树中上将资源和用户分别归类为资源组和角色,利用密钥运算机制保护节点密钥及文件加密密钥,将再次加密任务从数据库端转移到服务器执行,数据库端只维护新生成密钥的任务。本发明进一步安全有效地降低云存储安全性能开销,降低数据库端的维护量,且构建高效的密钥和数据更新策略。

Description

一种数据安全存储方法
技术领域
本发明涉及云安全,特别涉及一种云数据安全存储方法。
背景技术
云存储作为一种新兴的服务形式以其弹性配置、按需购买、易于维护等优点成为众多组织的存储选择。然而在云存储模式下,数据脱离了用户的控制范围,这引起了用户对服务器可靠性以及数据安全性的担忧。举例而言,随着智慧医疗的发展,基于云计算的医疗平台被医疗机构广泛使用,医学和医疗中产生的敏感数据需要保证存储安全,此时密文访问控制是云存储模式下提高医务工作者数据机密性和实现细粒度访问控制的重要方法。在人员规模庞大且部门内部人员对资源的访问权限基本一致的组织中,如果依然将每个用户作为单独的访问控制单元会浪费大量的计算资源和存储资源。高安全级别数据可能存在频繁的权限更新操作,此时数据拥有者需从服务器取回数据和密钥密文并更新上传到服务器,并分发新密钥给用户,显然数据再次加密和密钥重新生成给数据库端带来了严重的性能开销,降低系统整体处理效率。因此,如何有效降低庞大用户规模下高安全数据频繁策略更新给数据库端带来的密钥管理和数据更新性能开销是密文访问控制亟待解决的问题。现有的支持动态策略的方案中密钥索引树虽然有效减少了部分权限更新的代价,但用户的密钥维护量代价依旧很高,同时在权限更新情况下,高安全级别数据的更新依然需要由数据库端完成,并未安全且有效地减少数据管理的代价。
发明内容
为解决上述现有技术所存在的问题,本发明提出了一种数据安全存储方法, 包括:
在密钥索引树中上将资源和用户分别归类为资源组和角色,利用密钥运算机制保护节点密钥及文件加密密钥,将再次加密任务从数据库端转移到服务器执行,数据库端只维护新生成密钥的任务。
优选地,在所述将资源和用户分别归类为资源组和角色之前,该方法还包括:
利用基于鉴权的密钥运算方法构建索引树架构,并为用户分配唯一的角色密钥,构建基于密钥运算的密钥索引树,所述密钥索引树中,对于父节点vi与子节点vj的密钥ki和kj,生成鉴权Ti,j=kj⊕h(ki),其中⊕为异或操作,h为一个单向Hash函数,以使任何持有父节点密钥ki的用户,利用计算获得h(ki),并通过计算kj=h(ki)⊕Ti,j获得子节点vj的密钥kj
优选地,所述再次加密用于将文件密钥再次加密代价转移到服务器执行,更新叶节点非对称密钥加密的文件密钥;文件密钥密文长度不随文件再次加密次数的增加而增加,并且使服务器在执行再次加密的过程中无法获取明文的相关信息;
所述再次加密的公式如下:
k’f(gb mod P)r mod P=kf(ga mod P)rmod P kf/k’f(gr mod P)a-b
式中,P为大素数、Z* p为模P的乘法循环群,g为循环群Z* p生成元,kf,k’f为密钥明文信息,参数a,b,r满足条件1≤a,b,r≤P-2,其中a,b为私钥,r为加密随机参数,其中k’f(gb mod P)r mod P,kf(ga mod P)r mod P为加密kf,k’f所得到的密文的后半部分,前半部分均为gr mod p;用公钥ga mod P所加密的kf密文转换成使用公钥gb mod P加密k’f所得到的密文;再次加密密钥公式为
rk=kf/k’f(gr mod P)a-b
当策略发生改变时,数据库端生成再次加密密钥的相关参数kf·k’-1 f以及a-b,并将其传递给服务器对文件密钥进行重新加密即可完成密钥的更新。
优选地,所述再次加密包括参数初始化,文件发布,密钥分布和获取文件步骤;
在在参数初始化阶段,数据库端生成系统初始化公开参数大素数P,域Z* p、生成元g、随机参数r以及gr mod P;在文件发布阶段,由密钥树构建模块构建密钥树并实现文件的加密发布功能;在数据库端新增文件f到服务器过程中,首先向服务器请求以根节点为起点、路径为文件f的访问控制向量ACS(f)的鉴权链,然后利用数据库端的密钥dk和鉴权链计算尾节点密钥vk;获得密钥vk之后:首先如果链的长度与ACS(f)长度相等,则直接利用vk加密f的对称密钥kf,由文件加密模块完成文件f的加密和签名后上传至服务器;否则,根据ACS(f)创建索引树的分支,同时创建索引树节点和对节点分发密钥由上至下构建鉴权链,并利用根节点的非对称密钥加密文件密钥kf,最后利用文件加密模块实现文件的加密和签名,将索引树节点信息、鉴权链、数据及密钥密文上传至服务器;
在文件上传过程中:1)字符为1代表其对应的角色具有该文件的访问权限需要增加对应角色到该节点之间的角色鉴权;2)密钥索引树叶节点对应的密钥为公私钥对(gx mod p,x),非叶节点是随机产生的对称密钥所以在创建新的节点时需要判断该节点是否为叶节点;
所述文件发布步骤进一步包括,其中访问控制矩阵经过算法转换成密钥索引树:
以访问控制矩阵ACS(f),数据库端的对称密钥dk作为输入,
1)根据ACS(f)获取文件f对应的鉴权链;
2)计算出链尾节点的密钥vk;
3)如果ACS(f)>链长,执行步骤4),否则执行步骤6);
4)计算出链相对于ACS(f)缺少的控制向量ACS(f)’;
5)依次根据ACS(f)’对应的字符生成索引树左右节点,并为新节点分发密钥,最后的叶节点分发公私钥对,由上至下形成鉴权,如果为右节点则同时生成对应角色与该右节点的角色鉴权,最后随机生成文件f的对称密钥kf
6)调用文件加密模块实现文件和文件密钥的加密和签名,并将新创建的索引树节点、鉴权链、角色鉴权、文件f及密钥kf的密文上传到服务器;在密钥分布阶段数据库端根据用户所属的角色,通过安全信道将用户对应的角色密钥rk发送给所有用户,服务器为每个角色对应的用户分发对应的外层密钥rk’;
在获取文件阶段,利用文件访问模块获取文件的明文;用户向服务器发送用户角色信息R及文件f的访问控制向量ACS(f),服务器返回文件对应的鉴权链以及文件密钥密文Ckf、文件加密参数flag、文件密文Cf;在flag为0的情况下,用户利用持有的角色密钥解析鉴权链获取加密文件密钥kf的密钥,此密钥为非对称密钥(私钥为a,公钥为ga mod P),进而利用解密算法获取文件密钥kf,最后根据kf获得文件f的明文;在flag为1的情况下,首先根据角色外层密钥解密外层加密获取文件的密文,进而获得文件f的密钥kf,进行解密获取文件f明文数据。
本发明相比现有技术,具有以下优点:
该方法降低了数据库端维护密钥的复杂度,提高了密钥安全性;将加密任务转移到服务器执行,降低密钥更新的开销。同时,本发明利用改进的加密策略尽量降低数据的返回频率,从密钥和数据两个方面节省计算开销和通信开销。
附图说明
图1是根据本发明实施例的数据安全存储方法的流程图。
具体实施方式
下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
本发明的一方面提供了一种数据安全存储方法。图1是根据本发明实施例的数据安全存储方法流程图。针对服务器的可靠性问题,本发明采用主流应用情景服务器,服务器正确执行实施例中所提出的访问控制策略,但是会尝试获取数据的明文信息。同时用户中可能存在恶意的用户,尝试越权访问不属于自己的文件信息。因此,本发明主要是防止服务器获取数据库端数据的明文信息和用户越权访问文件这两种攻击方式。
本发明利用索引树保留其策略更新优势,并在其基础上对资源和用户进行归类为资源组和角色,并结合密钥运算(鉴权)机制进一步降低数据库端维护密钥的复杂度,有效保护节点密钥及文件加密密钥;为了访问控制策略更新带来的密钥更新代价,将加密任务转移到服务器执行,数据库端只需要维护部分密钥的新生成任务,这样大量节省了通信开销和计算开销,弥补了索引树权限撤销过程中密钥更新代价大的缺点。同时,为了提高数据更新的效率,本发明利用双层加密策略尽量降低策略更新中数据的返回频率。本发明分别从密钥和数据两方面节省了计算开销和通信开销,更好地支持访问控制策略的动态更新。
下面具体介绍本发明的3个重要方面:密钥索引树的构建方法、再次加密方 案以及文件数据更新的策略。
1密钥索引树的构建
在构建密钥索引树之前,本发明需要将访问控制矩阵中访问权限相同的用户归为同一角色(R),访问对象相同的资源归为同一安全资源组(SC),通过归类减少密钥维护量,并确保角色与安全资源组之间分别没有用户与文件的交集即:由于此处只是对用户与资源进行归类,因此,转化过程的可靠性与完备性是满足的。
索引树在归类的的基础上可以进一步减少访问控制中的密钥维护量,然而用户依然需要维护多个密钥,在最差的情况下需要维护2R-1个密钥。在本发明模型中,索引树叶子节点与SC一一对应,非叶子节点的密钥是对称密钥用于形成鉴权,叶子节点对应的密钥是非对称密钥,用于加密资源的对称密钥,这将有利于减少动态策略中的文件密钥的更新代价。在此基础上,本发明利用基于鉴权的密钥运算方法对索引树进行架构改进,并为用户分配唯一的角色密钥,构建基于密钥运算的密钥索引树。在模型中所有的鉴权信息安全并可公开,数据库端可以将其与资源存放在服务器端减少数据库端的负担,大大提高密钥安全性,同时用户可以根据唯一的角色密钥及相关的鉴权运算出权限范围内所有文件的密钥,减少了用户与数据拥有者数据库端的密钥维护量。
在密钥树中,假设密钥ki和kj分别是父节点vi与孩子节点vj的密钥,则鉴权Ti,j=kj⊕h(ki),其中⊕为异或操作,h为一个单向Hash函数,因此,任何持有父节点密钥ki的用户,利用计算获得h(ki),并通过计算kj=h(ki)⊕Ti,j获得子节点vj的密钥kj
定义1。密钥运算函数F。密钥集合记为κ,鉴权集合记为T。直接密钥运算函数F:κ→2κ表示由密钥ki直接运算的所有密钥构成的集合,定义为 F(ki)={kjkj∈κ,Ti,j∈T}。密钥运算函数F*:κ→2κ表示由直接运算或者间接运算的所有密钥集合,定义为F(ki)*={kmkm∈κ,kj∈κ,kt∈κ,…,(Ti,j,…,Tt,m)∈T}。
定义2。资源密钥分配函数文件集合记为File和叶节点非对称密钥集合记为κ*,资源密钥分配函数表示对任意文件f的对称密钥分配唯一的非对称加密密钥,定义为如果kj∈κ*,f∈SCi,ACSi=Pkj,其中ACSi为f的访问控制向量二进制表示,pkj表示从根节点到对应密钥kj的叶节点路径。
定义3。角色密钥分发ξ。在索引树中角色R在其接入索引树对应的层次上能获得密钥集合为 α ( R i ) = k ∀ SC j ifA ′ i j = 1 ksc j ∈ F ( k ) * . 角色密钥分发函数ξ:R→κ表示分配给角色R的用户唯一的密钥ξ(Ri)={kF(k)=α(Ri)}。因此,角色R可访问的密钥集合可以表示为F*(ξ(Ri))={kk∈F(ki)*,ki∈α(Ri)}。
定义4。密钥管理模型定义为一个三元组其为整个系统完成密钥的管理与运算,由密钥运算函数F*、资源密钥分配函数角色密钥分发ξ组成。
密钥管理模型在索引树的基础上对相应节点进行密钥分发、鉴权生成实现索引树的构建,具体步骤如下:
1)在索引树建立后,为了保证模型的有效工作,该模型为从根节点开始到叶节点的每一个路径节点分发密钥,每个密钥都是随机产生的对称密钥。数据库端为叶节点对应的每个安全资源组分配一个非对称密钥。
2)根据索引树中各个分支的密钥情况,由上至下依次生成节点鉴权,然后再为每个角色生成角色密钥与密钥集合之间的所有角色鉴权,即生成角色密钥与对应的角色层次右孩子节点之间的角色鉴权。
3)根据加密策略对文件进行加密和签名,并上传到服务器。用户可以根据鉴权链和自身的角色密钥获取文件的解密密钥以获取明文。在后期的访问策略更新的过程中,会相应地更新对应的鉴权链及密钥。
密钥管理模型将用户访问控制矩阵表进行角色和资源归类,经过索引树的构建、密钥的分发、文件的加密上传转变密钥树,增强了访问控制能力。通过该方法,数据库端只需要维护根密钥和角色密钥,用户只需维护一个密钥即其所属角色密钥,大大减少了数据库端需要维护的密钥数量,且提高了密钥的安全性。
2再次加密
在密钥树的基础上,为了将访问控制策略动态更新导致的文件密钥再次加密代价转移到服务器执行,本发明利用再次加密算法更新叶节点非对称密钥加密的文件密钥。该算法中文件密钥密文长度不随文件再次加密次数的增加而增加,满足访问控制策略频繁更新的需求,同时服务器在执行再次加密的过程中无法获取明文的相关信息。再次加密的公式如下:
k’f(gb mod P)r mod P=kf(ga mod P)rmod P kf/k’f(gr mod P)a-b
式中,P为大素数、Z* p为模P的乘法循环群,g为循环群Z* p生成元,kf,k’f为密钥明文信息,参数a,b,r满足条件1≤a,b,r≤P-2,其中a,b为私钥,r为加密随机参数,其中k’f(gb mod P)r mod P,kf(ga mod P)r mod P为加密kf,k’f所得到的密文的后半部分,前半部分均为gr mod p。该算法将用公钥ga mod P所加密的kf密文转换成使用公钥gb mod P加密k’f所得到的密文,这个过程中不会泄露明文信息及相关密钥。再次加密密钥公式为
rk=kf/k’f(gr mod P)a-b
上述的公式满足再次加密的性质,且能保证加密的文件密钥安全。当策略 发生改变时数据库端只需要生成再次加密密钥的相关参数kf·k’-1 f以及a-b,并将其传递给服务器对文件密钥进行重新加密即可完成密钥的更新,减小访问控制策略更新给数据库端带来的负担。
3双层加密策略 
上述机制能够有效地降低密钥的管理和维护的复杂度,但由于数据规模大,需采用对称加密,且对称加密没有有效的再次加密的机制,因此,在策略更新的情况下,需要返回对应的数据密文,由数据库端对相关数据进行再次加密,这样会大大地加重数据库端负担。
因此,本发明使用双层加密策略有效地降低了文件大小返回频率及数据库端的数据更新代价。主要思想是通过在权限回收过程中文件权限奇数次变化时,不返回文件数据只通过再次加密机制完成密钥的更新,同时服务器利用角色的外层加密密钥对文件密文再次加密,以防止权限撤销后的用户利用以前保存的密钥获取文件明文;在偶数次的情况下,数据库端获取双层加密的密文进行解密和文件重新加密,同时利用再次加密完成密钥更新,这样减少了文件数据返回的次数,提高了数据库端数据管理和更新代价。
为了实现双层加密,服务器需要为角色集R中的每个角色维护一个外层密钥,并通过安全通道发放给对应的角色,并随着权限撤销次数的变化对角色的外层密钥进行更新。以单个文件f为例描述文件和密钥的更新过程。在文件f奇数次权限回收时,数据库端只需生成文件密钥kf的再次加密密钥rk(文件f的对称密钥不变),并将其发送到服务器完成kf的再次加密。服务器端更新对应撤销角色的外层密钥,并利用对应角色的新外层对称密钥对文件密文进行加密。在文件f偶数次权限回收时,数据库端将数据密文返回,并进行2层解密后重新生成文件密文,同时生成新文件密钥k’f与旧文件密钥kf的再次加密密钥rk(文件f 的对称密钥发生改变),并发送给服务器完成文件f密钥更新。
为了支撑双层加密策略,在文件上传到服务器端之前,数据库端需要将文件数据格式进行相关处理,
具体的处理过程如下:
1)为文件分配一个唯一的ID;
2)为文件随机选择一个对称的加密密钥dk,并对文件进行对称加密,同时利用数据库端的根密钥对文件的Hash值进行签名;
3)将文件在索引树中二进制路径作为文件路径存放,以便用户获取鉴权链,同时将flag作为文件是否有双层加密的标志,如果flag为0表示只有单层加密,如果为1则包含双层加密,将其初始为0,服务器加密一次该值就增1。
通过密钥树、再次加密机制、双层加密策略的有效结合降低了动态策略更新中密钥的更新的复杂度,而且有效地提高了数据更新的效率,降低了数据库端的管理负担。
本发明采用的体系架构包括数据库端、用户端和云服务器,数据库端主要包括密钥树构建模块、文件权限更新模块、数据管理模块、角色更新模块、再次加密密钥模块;用户端主要包括文件访问模块。其中密钥树构建模块根据访问控制矩阵转换成对应的密钥树,并利用密钥运算机制,进一步降低了密钥管理复杂度,提高了密钥的安全性。角色更新模块主要实现用户角色更新,同时处理由此带来的鉴权更新、密钥更新、数据更新。文件权限更新模块主要负责授予或撤销角色R对文件f的访问权限,并更新相关的鉴权、密钥、数据。再次加密模块生成文件密钥kf的再次加密密钥rk,并将其传递给服务器完成文件对称密钥的再次加密,可以有效适应策略频繁更新的场景。
数据管理模块主要实现数据的加密上传,以及根据双层加密策略完成数据 更新。用户端主要包含文件访问模块利用用户角色密钥及相关鉴权信息获得解密密钥以获取明文信息。后续的访问流程和策略更改的流程程将主要由上述功能模块完成。
在本发明技术方案中,数据访问过程分为参数初始化,文件发布,密钥分布,获取文件这4个阶段。在数据访问过程中主要通过密钥树构建模块实现密钥树的构建和文件的发布,利用文件访问模块实现文件密文的访问。
在参数初始化阶段,数据库端生成系统初始化公开参数大素数P,域Z* p、生成元g、随机参数r以及gr mod P。在文件发布阶段,由密钥树构建模块构建密钥树并实现文件的加密发布功能。在数据库端新增文件f到服务器过程中,首先向服务器请求以根节点为起点、路径为文件f的访问控制向量ACS(f)的鉴权链,然后利用数据库端的密钥dk和鉴权链计算尾节点密钥vk;获得密钥vk之后分2种情况:首先如果链的长度与ACS(f)长度相等,则说明密钥树中已经存在相应的安全资源组,直接利用vk加密f的对称密钥kf,由文件加密模块完成文件f的加密和签名后上传至服务器。否则,需要根据ACS(f)创建索引树的分支,同时创建索引树节点和对节点分发密钥由上至下构建鉴权链,并利用根节点的非对称密钥加密文件密钥kf,最后利用文件加密模块实现文件的加密和签名,将索引树节点信息、鉴权链、数据及密钥密文上传至服务器。
在文件上传过程中:1)字符为1代表其对应的角色具有该文件的访问权限需要增加对应角色到该节点之间的角色鉴权;2)密钥索引树叶节点对应的密钥为公私钥对(gx mod p,x),非叶节点是随机产生的对称密钥所以在创建新的节点时需要判断该节点是否为叶节点。具体以下文件发布方法,其中访问控制矩阵经过算法转换成密钥索引树,
以访问控制矩阵ACS(f),数据库端的对称密钥dk作为输入,
1)根据ACS(f)获取文件f对应的鉴权链;
2)计算出链尾节点的密钥vk;
3)如果ACS(f)>链长,执行步骤4),否则执行步骤6);
4)计算出链相对于ACS(f)缺少的控制向量ACS(f)’;
5)依次根据ACS(f)’对应的字符生成索引树左右节点,并为新节点分发密钥,最后的叶节点分发公私钥对,由上至下形成鉴权,如果为右节点则同时生成对应角色与该右节点的角色鉴权,最后随机生成文件f的对称密钥kf
6)调用文件加密模块实现文件和文件密钥的加密和签名,并将新创建的索引树节点、鉴权链、角色鉴权、文件f及密钥kf的密文上传到服务器。在密钥分布阶段数据库端根据用户所属的角色,通过安全信道将用户对应的角色密钥rk发送给所有用户,服务器为每个角色对应的用户分发对应的外层密钥rk’。
在获取文件阶段,利用文件访问模块获取文件的明文。用户向服务器发送用户角色信息R及文件f的访问控制向量ACS(f),服务器返回文件对应的鉴权链以及文件密钥密文Ckf、文件加密参数flag、文件密文Cf。在flag为0的情况下,用户利用持有的角色密钥解析鉴权链获取加密文件密钥kf的密钥,此密钥为非对称密钥(私钥为a,公钥为ga mod P),进而利用解密算法获取文件密钥kf,最后根据kf获得文件f的明文。在flag为1的情况下,首先根据角色外层密钥解密外层加密获取文件的密文,进而获得文件f的密钥kf,进行解密获取文件f明文数据。
根据本发明的另一方面,策略更新主要包括文件权限更新,角色更新两种情况。分别由权限更新模块和角色更新模块结合再次加密密钥模块、数据管理模块完成。
针对文件权限更新情况,文件访问权限更新分为文件访问权限授予和回收, 权限回收将文件f对应的访问控制矩阵中角色R对应数值由1变为0而文件授权则由0变为1。相对于密钥索引树而言,文件访问权限更新的实质是文件及文件密钥在不同安全资源组之间的切换,故访问权限授予时利用再次加密密钥模块生成再次加密密钥(gr mod P)a-b,此时不需要更新文件密钥kf,只需更新加密kf的密钥a,最后由服务器将文件密钥kf再次加密成新密钥加密的密钥密文;权限撤销时不仅需要更新加密文件密钥kf的密钥a,同时需要将文件密钥kf转变为k’f,最后还需要利用双层加密策略更新数据密文。文件权限更新过程具体如下:
以文件索引ID、文件源和目的访问控制向量sacl,dacl、策略更新类型type作为输入;
1)首先获取sacl,dacl对应的鉴权链schain,dchain;
2)分别获取两条鉴权链的尾节点的密钥oldsk,newsk;
3)如果dchain<dacl,执行步骤4),否则执行步骤5);
4)利用上述文件发布方法完成对应dacl对应的索引树节点和鉴权链等生成,获取该分支对应的叶节点的非对称密钥newsk’,并赋值给newsk;
5)如果type=0需进行授权,执行步骤6)和步骤7),否则表示撤销,执行步骤8);
6)再次加密模块生成再次加密参数kfk’-1 f,oldsk-newsk,由服务器端生成rk=kf/k’f(gr mod P)a-b
7)如果文件f策略更新参数flag=0,由服务器完成密文数据的再次加密,并将flag更改为1;否则由文件访问功能获取文件f明文,利用新加密密钥k’f生成新密文并上传到服务器端,将flag改为0;
8)再次加密模块生成再次加密参数参数oldsk-newsk,由服务器端生成rk=(gr  mod P)a-b
针对角色更新情况,数据库端将用户的角色从sr变为dr,服务器根据请求返回所有需要更新节点密钥的鉴权,即返回sr能够访问数据的节点集合与dr不能访问的节点集合交集节点及鉴权链。
鉴权链集合包括以下3种:含叶节点鉴权链集合LT、不含叶节点鉴权链集合NLT、角色鉴权集合RT。首先获得角色dr不能访问节点,而后获得sr能访问的节点集CN和dr不能访问的节点集合BN,获得从根节点出发经过BN和CN到叶节点的鉴权链,将其返回给数据库端。数据库端对鉴权链中CN与BN之间的节点重新分发密钥,并由上至下形成新鉴权链,同时类似权限撤销的方式批量处理鉴权链对应的安全资源组的文件密文及对应的文件密钥密文的更新。
角色更新具体过程如下所示:
1)获取原角色和目的角色R1,R2;如果LR1<LR2,转步骤2),否则转步骤5);
2)获取R1在LR1中持有的密钥节点集合CN;
3)循环遍历CN取节点n;
4)先序遍历以节点n为根节点的索引树,依次获取LR1层所有要更新密钥的节点集合及鉴权链,包括角色鉴权(R1可访问节点满足条件R2不可访问),转至步骤8);
5)获取R2在LR2层中不持有的密钥的节点集合BN;
6)循环遍历BN取节点;
7)先序遍历以n为根节点的索引树,依次所有要更新密钥的节点集合及鉴权链,包括角色鉴权(节点满足条件R2不可访问R1可访问);
8)将需要更新的鉴权信息、节点信息返回给数据库端,数据库端对需要更新 的节点重新进行密钥分发,并形成新鉴权链,对角色R1的所有角色鉴权进行更新,对角色R1重新分发密钥;
9)对涉及的安全资源组SCi随机生成新对称密钥k’f,对叶节点重新生成非对称密钥,并生成再次加密密钥参数kfk’f -1,oldsk-newsk;
10)如果文件f策略更新参数flag=0,由服务器完成密文数据的再次加密,并将flag更改为1;否则由文件访问功能获取文件f明文,利用新加密密钥k’f生成新密文并上传到服务器端,将flag置0。
综上所述,本发明的加密方法降低了数据库端维护密钥的复杂度,提高了密钥安全性;将加密任务转移到服务器执行,降低密钥更新的开销。同时,本发明利用改进的加密策略尽量降低数据的返回频率,从密钥和数据两个方面节省计算开销和通信开销。
显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

Claims (4)

1.一种数据安全存储方法,其特征在于,包括:
在密钥索引树上将资源和用户分别归类为资源组和角色;
利用密钥运算机制保护节点密钥及文件加密密钥;
将再次加密任务从数据库端转移到服务器执行,数据库端只维护新生成密钥的任务。
2.根据权利要求1所述的方法,其特征在于,在所述将资源和用户分别归类为资源组和角色之前,该方法还包括:
利用基于鉴权的密钥运算方法构建索引树架构,并为用户分配唯一的角色密钥,构建基于密钥运算的密钥索引树,所述密钥索引树中,对于父节点vi与子节点vj的密钥ki和kj,生成鉴权Ti,j=kj⊕h(ki),其中⊕为异或操作,h为一个单向Hash函数,以使任何持有父节点密钥ki的用户,利用计算获得h(ki),并通过计算kj=h(ki)⊕Ti,j获得子节点vj的密钥kj
3.根据权利要求1所述的方法,其特征在于,所述再次加密用于将文件密钥再次加密代价转移到服务器执行,更新叶节点非对称密钥加密的文件密钥;文件密钥密文长度不随文件再次加密次数的增加而增加,并且使服务器在执行再次加密的过程中无法获取明文的相关信息;
所述再次加密的公式如下:
k’f(gb mod P)r mod P=kf(ga mod P)r mod P kf/k’f(gr mod P)a-b
式中,P为大素数、Z* p为模P的乘法循环群,g为循环群Z* p生成元,kf,k’f为密钥明文信息,参数a,b,r满足条件1≤a,b,r≤P-2,其中a,b为私钥,r为加密随机参数,其中k’f(gb mod P)r mod P,kf(ga mod P)r mod P为加密kf,k’f所得到的密文的后半部分,前半部分均为gr mod p;用公钥ga mod P所加密的kf密文转换成使用公钥gb mod P加密k’f所得到的密文;再次加密密钥 公式为
rk=kf/k’f(gr mod P)a-b
当策略发生改变时,数据库端生成再次加密密钥的相关参数kf/k’f以及a-b,并将相关参数kf/k’f以及a-b传递给服务器对文件密钥进行重新加密即可完成密钥的更新。
4.根据权利要求1所述的方法,其特征在于,所述再次加密包括:
参数初始化步骤,数据库端生成系统初始化公开参数大素数P,域Z* p、生成元g、随机参数r以及gr mod P;
文件发布步骤,由密钥树构建模块构建密钥树并实现文件的加密发布功能;在数据库端新增文件f到服务器过程中,首先向服务器请求以根节点为起点、路径为文件f的访问控制向量ACS(f)的鉴权链,然后利用数据库端的密钥dk和鉴权链计算尾节点密钥vk;获得密钥vk之后:首先如果链的长度与ACS(f)长度相等,则直接利用vk加密f的对称密钥kf,由文件加密模块完成文件f的加密和签名后上传至服务器;否则,根据ACS(f)创建索引树的分支,同时创建索引树节点和对节点分发密钥由上至下构建鉴权链,并利用根节点的非对称密钥加密文件密钥kf,最后利用文件加密模块实现文件的加密和签名,将索引树节点信息、鉴权链、数据及密钥密文上传至服务器;在文件上传过程中:1)字符为1代表其对应的角色具有该文件的访问权限需要增加对应角色到该节点之间的角色鉴权;2)密钥索引树叶节点对应的密钥为公私钥对(gx mod p,x),非叶节点是随机产生的对称密钥所以在创建新的节点时需要判断该节点是否为叶节点;所述文件发布步骤进一步包括,其中访问控制矩阵经过算法转换成密钥索引树:
以访问控制矩阵ACS(f)和数据库端的对称密钥dk作为输入,
1)根据ACS(f)获取文件f对应的鉴权链;
2)计算出链尾节点的密钥vk;
3)如果ACS(f)>链长,执行步骤4),否则执行步骤6);
4)计算出链相对于ACS(f)缺少的控制向量ACS(f)’;
5)依次根据ACS(f)’对应的字符生成索引树左右节点,并为新节点分发密钥,最后的叶节点分发公私钥对,由上至下形成鉴权,如果为右节点则同时生成对应角色与该右节点的角色鉴权,最后随机生成文件f的对称密钥kf
6)调用文件加密模块实现文件和文件密钥的加密和签名,并将新创建的索引树节点、鉴权链、角色鉴权、文件f及密钥kf的密文上传到服务器;在密钥分布阶段数据库端根据用户所属的角色,通过安全信道将用户对应的角色密钥rk发送给所有用户,服务器为每个角色对应的用户分发对应的外层密钥rk’;
以及密钥分布和获取文件步骤,利用文件访问模块获取文件的明文;用户向服务器发送用户角色信息R及文件f的访问控制向量ACS(f),服务器返回文件对应的鉴权链以及文件密钥密文Ckf、文件加密参数flag、文件密文Cf;在flag为0的情况下,用户利用持有的角色密钥解析鉴权链获取加密文件密钥kf的密钥,此密钥为非对称密钥,其中私钥为a,公钥为ga mod P,进而利用解密算法获取文件密钥kf,最后根据kf获得文件f的明文;在flag为1的情况下,首先根据角色外层密钥解密外层加密获取文件的密文,进而获得文件f的密钥kf,进行解密获取文件f明文数据。
CN201510191689.5A 2015-04-21 2015-04-21 一种数据安全存储方法 Pending CN104811448A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510191689.5A CN104811448A (zh) 2015-04-21 2015-04-21 一种数据安全存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510191689.5A CN104811448A (zh) 2015-04-21 2015-04-21 一种数据安全存储方法

Publications (1)

Publication Number Publication Date
CN104811448A true CN104811448A (zh) 2015-07-29

Family

ID=53695942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510191689.5A Pending CN104811448A (zh) 2015-04-21 2015-04-21 一种数据安全存储方法

Country Status (1)

Country Link
CN (1) CN104811448A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106919828A (zh) * 2017-04-20 2017-07-04 北京蓝海华业科技股份有限公司 一种idc机房智能化管理系统
CN107220559A (zh) * 2017-06-11 2017-09-29 南京安链数据科技有限公司 一种针对不可篡改文件的加密存储方法
CN108234662A (zh) * 2018-01-09 2018-06-29 江苏徐工信息技术股份有限公司 一种具有主动式动态密钥分发机制的安全云存储方法
CN109040109A (zh) * 2018-08-31 2018-12-18 国鼎网络空间安全技术有限公司 基于密钥管理机制的数据交易方法及系统
CN110140336A (zh) * 2017-01-06 2019-08-16 微软技术许可有限责任公司 相继密码技术
CN111698326A (zh) * 2020-06-12 2020-09-22 北京百度网讯科技有限公司 用于确定云服务资源的成本归属的方法和装置
CN112106323A (zh) * 2018-07-12 2020-12-18 塞克罗斯股份有限公司 用于建立安全分层引用系统的方法
US11403407B2 (en) 2016-09-19 2022-08-02 Koninklijke Philips N.V. Oblivious outsourcing of file storage
CN118332603A (zh) * 2024-06-12 2024-07-12 北京北科融智云计算科技有限公司 一种针对大数据环境的数据隔离和安全共享方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104408177A (zh) * 2014-12-15 2015-03-11 西安电子科技大学 基于云文档系统的密文检索方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104408177A (zh) * 2014-12-15 2015-03-11 西安电子科技大学 基于云文档系统的密文检索方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张浩 等: "CACDP:适用于云存储动态策略的密文访问控制方法", 《计算机研究与发展》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11403407B2 (en) 2016-09-19 2022-08-02 Koninklijke Philips N.V. Oblivious outsourcing of file storage
CN110140336A (zh) * 2017-01-06 2019-08-16 微软技术许可有限责任公司 相继密码技术
CN106919828A (zh) * 2017-04-20 2017-07-04 北京蓝海华业科技股份有限公司 一种idc机房智能化管理系统
CN106919828B (zh) * 2017-04-20 2023-04-07 北京蓝海华业科技股份有限公司 一种idc机房智能化管理系统
CN107220559A (zh) * 2017-06-11 2017-09-29 南京安链数据科技有限公司 一种针对不可篡改文件的加密存储方法
CN108234662A (zh) * 2018-01-09 2018-06-29 江苏徐工信息技术股份有限公司 一种具有主动式动态密钥分发机制的安全云存储方法
CN112106323A (zh) * 2018-07-12 2020-12-18 塞克罗斯股份有限公司 用于建立安全分层引用系统的方法
CN112106323B (zh) * 2018-07-12 2024-03-22 塞克罗斯股份有限公司 用于存储和读取不信任环境中的存储设备上的数据的方法
CN109040109A (zh) * 2018-08-31 2018-12-18 国鼎网络空间安全技术有限公司 基于密钥管理机制的数据交易方法及系统
CN111698326A (zh) * 2020-06-12 2020-09-22 北京百度网讯科技有限公司 用于确定云服务资源的成本归属的方法和装置
CN118332603A (zh) * 2024-06-12 2024-07-12 北京北科融智云计算科技有限公司 一种针对大数据环境的数据隔离和安全共享方法和系统

Similar Documents

Publication Publication Date Title
CN104811448A (zh) 一种数据安全存储方法
CN104486315B (zh) 一种基于内容属性的可撤销密钥外包解密方法
CN103501352B (zh) 一种允许群组用户身份撤销的云存储数据安全审计方法
CN104363215B (zh) 一种基于属性的加密方法和系统
CN107359986A (zh) 可撤销用户的外包加解密cp‑abe方法
CN105100083B (zh) 一种隐私保护且支持用户撤销的基于属性加密方法和系统
CN106059763B (zh) 云环境下属性基多机构层次化密文策略权重加密方法
CN105208007A (zh) 一种数据共享系统
CN103297227B (zh) 支持灵活且直接撤销的密文策略下基于属性的加密
CN103220291A (zh) 一种基于属性加密算法的访问控制方法
CN108600171A (zh) 一种支持细粒度访问的云数据确定性删除方法
CN108540280B (zh) 一种资源高效的安全数据分享方法及系统
CN109478214A (zh) 用于证书注册的装置和方法
CN105915333B (zh) 一种基于属性加密的高效密钥分发方法
CN113434880A (zh) 一种面向多层级区块链政务数据的高效访问方法与系统
Liu et al. Dynamic attribute-based access control in cloud storage systems
CN114244838A (zh) 区块链数据的加密方法及系统、解密方法、装置及设备
CN104780174A (zh) 一种内容安全存取方法
CN104901949A (zh) 一种数据加密方法
CN108763944B (zh) 雾计算中安全可撤销多中心大属性域属性基加密方法
CN106612175A (zh) 移动云中多要素访问控制的代理重加密算法
Zhang et al. Data owner based attribute based encryption
CN105049449A (zh) 基于密钥技术的无线传感器网络簇内节点安全通信方法
CN112436942A (zh) 一种属性基/身份基异构的可撤销签密方法
CN108494552B (zh) 支持高效收敛密钥管理的云存储数据去重方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
CB03 Change of inventor or designer information

Inventor after: Chen Zubin

Inventor after: Huang Lianyue

Inventor after: Zheng Junming

Inventor after: Tang Lingli

Inventor after: Xie Ming

Inventor after: Hu Jijun

Inventor after: Weng Xiaoyun

Inventor after: Yuan Yong

Inventor after: Deng Gefeng

Inventor after: Mo Yinghong

Inventor after: Xie Jing

Inventor after: Zhang Peng

Inventor before: Liu Ying

COR Change of bibliographic data
TA01 Transfer of patent application right

Effective date of registration: 20151029

Address after: 530000 Xingning, Nanning District, democratic road, No. 6,

Applicant after: GUANGXI POWER GRID CO., LTD.

Address before: 610000 Sichuan city of Chengdu province high tech Zone Kyrgyzstan Road No. 666 Building 2 floor 13 No. 2

Applicant before: Chengdu Hui Zhi distant view Science and Technology Ltd.

C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20150729