一种数据加密方法
【技术领域】
[0001] 本发明设及云安全,特别设及一种用于云存储的数据加密方法。
【背景技术】
[0002] 云存储作为一种新兴的服务形式W其弹性配置、按需购买、易于维护等优点成为 众多组织的存储选择。然而在云存储模式下,数据脱离了用户的控制范围,该引起了用户对 服务器可靠性W及数据安全性的担忧。举例而言,随着智慧医疗的发展,基于云计算的医疗 平台被医疗机构广泛使用,医学和医疗中产生的敏感数据需要保证存储安全,此时密文访 问控制是云存储模式下提高医务工作者数据机密性和实现细粒度访问控制的重要方法。在 人员规模庞大且部口内部人员对资源的访问权限基本一致的组织中,如果依然将每个用户 作为单独的访问控制单元会浪费大量的计算资源和存储资源。高安全级别数据可能存在 频繁的权限更新操作,此时数据拥有者需从服务器取回数据和密钥密文并更新上传到服务 器,并分发新密钥给用户,显然数据再次加密和密钥重新生成给数据库端带来了严重的性 能开销,降低系统整体处理效率。因此,如何有效降低庞大用户规模下高安全数据频繁策略 更新给数据库端带来的密钥管理和数据更新性能开销是密文访问控制亟待解决的问题。现 有的支持动态策略的方案中密钥索引树虽然有效减少了部分权限更新的代价,但用户的密 钥维护量代价依旧很高,同时在权限更新情况下,高安全级别数据的更新依然需要由数据 库端完成,并未安全且有效地减少数据管理的代价。
【发明内容】
[0003] 为解决上述现有技术所存在的问题,本发明提出了一种数据加密方法,包括:
[0004] 构建基于密钥鉴权的密钥索引树;
[0005] 在密钥索引树的基础上对密钥再次加密操作;
[0006] 基于再次加密操作进行文件数据更新。
[0007] 优选地,所述密钥索引树的构建进一步包括:
[000引在构建密钥索引树之前,将访问控制矩阵中访问权限相同的用户归为同一角色, 访问对象相同的资源归为同一安全资源组,通过归类减少密钥维护量,并确保角色与安全 资源组之间没有用户与文件的交集;所述索引树的叶子节点与一一对应,非叶子节点的密 钥是对称密钥用于形成鉴权,叶子节点对应的密钥是非对称密钥,用于加密资源的对称密 钥。
[0009] 优选地所述文件数据更新包括文件权限更新和角色更新,分别由权限更新模块和 角色更新模块结合再次加密密钥模块、数据管理模块完成;
[0010] 针对文件权限更新,文件访问权限更新分为文件访问权限授予和回收,权限回收 将文件对应的访问控制矩阵中角色对应数值由1变为0而文件授权则由0变为1 ;文件访 问权限更新用于将文件及文件密钥在不同安全资源组之间切换,故访问权限授予时利用再 次加密密钥模块生成再次加密密钥,不需要更新文件密钥,只需更新文件密钥的加密密钥, 最后由服务器将文件密钥再次加密成新密钥加密的密钥密文;权限撤销时更新加密文件密 钥的加密密钥,利用双层加密策略更新数据密文,所述文件权限更新过程具体如下:
[0011] 1)W文件索引、文件源和目的访问控制向量、策略更新类型作为输入,首先获取文 件源和目的访问控制向量对应的鉴权链;
[0012] 2)分别获取两条鉴权链的尾节点的密钥;
[001引如如果目的访问控制向量对应的鉴权链小于目的访问控制向量,执行步骤4),否 则执行步骤5);
[0014] 4)完成对应目的访问控制向量对应的索引树节点和鉴权链等生成,获取该分支对 应的叶节点的非对称密钥;
[0015] 5)如果策略更新类型为0则进行授权,执行步骤6)和步骤7),否则表示撤销,执 行步骤8);
[0016] 6)生成再次加密参数,由服务器端生成再次加密密钥;
[0017] 7)如果文件策略更新参数为0,由服务器完成密文数据的再次加密;否则获取文 件明文,利用新加密密钥生成新密文并上传到服务器端;
[0018] 8)再次加密模块生成再次加密参数参数,由服务器端生成再次加密密钥。
[0019] 优选地,该方法还包括,在索引树的基础上对相应节点进行密钥分发、鉴权生成实 现索引树的构建,具体步骤进一步包括:
[0020] 1)在索引树建立后,从根节点开始到叶节点的每一个路径节点分发密钥,每个密 钥都是随机产生的对称密钥,数据库端为叶节点对应的每个安全资源组分配一个非对称密 钥;
[0021] 2)根据索引树中各个分支的密钥情况,由上至下依次生成节点鉴权,然后再为每 个角色生成角色密钥与密钥集合之间的所有角色鉴权,即生成角色密钥与对应的角色层次 右孩子节点之间的角色鉴权;
[0022] 3)根据加密策略对文件进行加密和签名,并上传到服务器,用户根据鉴权链和自 身的角色密钥获取文件的解密密钥W获取明文,在后期的访问策略更新的过程中,相应地 更新对应的鉴权链及密钥。
[0023] 本发明相比现有技术,具有W下优点:
[0024] 该方法降低了数据库端维护密钥的复杂度,提高了密钥安全性;将加密任务转移 到服务器执行,降低密钥更新的开销。同时,本发明利用改进的加密策略尽量降低数据的返 回频率,从密钥和数据两个方面节省计算开销和通信开销。
【附图说明】
[0025] 图1是根据本发明实施例的数据加密方法的流程图。
【具体实施方式】
[0026] 下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描 述。结合该样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权 利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节 W便提供对本发明的透彻理解。出于示例的目的而提供该些细节,并且无该些具体细节中 的一些或者所有细节也可w根据权利要求书实现本发明。
[0027] 本发明的一方面提供了一种数据加密方法。图1是根据本发明实施例的数据加密 方法流程图。针对服务器的可靠性问题,本发明采用主流应用情景服务器,服务器正确执行 实施例中所提出的访问控制策略,但是会尝试获取数据的明文信息。同时用户中可能存在 恶意的用户,尝试越权访问不属于自己的文件信息。因此,本发明主要是防止服务器获取数 据库端数据的明文信息和用户越权访问文件该两种攻击方式。
[002引本发明利用索引树保留其策略更新优势,并在其基础上对资源和用户进行归类为 资源组和角色,并结合密钥运算(鉴权)机制进一步降低数据库端维护密钥的复杂度,有效 保护节点密钥及文件加密密钥;为了访问控制策略更新带来的密钥更新代价,将加密任务 转移到服务器执行,数据库端只需要维护部分密钥的新生成任务,该样大量节省了通信开 销和计算开销,弥补了索引树权限撤销过程中密钥更新代价大的缺点。同时,为了提高数据 更新的效率,本发明利用双层加密策略尽量降低策略更新中数据的返回频率。本发明分别 从密钥和数据两方面节省了计算开销和通信开销,更好地支持访问控制策略的动态更新。
[0029] 下面具体介绍本发明的3个重要方面;密钥索引树的构建方法、再次加密方案W 及文件数据更新的策略。
[0030] 1密钥索引树的构建
[0031] 在构建密钥索引树之前,本发明需要将访问控制矩阵中访问权限相同的用户 归为同一角色(时,访问对象相同的资
源归为同一安全资源组(SC),通过归类减少密钥 维护量,并确保角色与安全资源组之间分别没有用户与文件的交集即:货〇&=0,及sCinsQ=0,i声j。由于此处只是对用户与资源进行归类,因此,转化过程的可靠性与完 备性是满足的。
[0032] 索引树在归类的的基础上可W进一步减少访问控制中的密钥维护量,然而用户依 然需要维护多个密钥,在最差的情况下需要维护2IEI4个密钥。在本发明模型中,索引树叶 子节点与SC-一对应,非叶子节点的密钥是对称密钥用于形成鉴权,叶子节点对应的密钥 是非对称密钥,用于加密资源的对称密钥,该将有利于减少动态策略中的文件密钥的更新 代价。在此基础上,本发明利用基于鉴权的密钥运算方法对索引树进行架构改进,并为用 户分配唯一的角色密钥,构建基于密钥运算的密钥索引树。在模型中所有的鉴权信息安全 并可公开,数据库端可W将其与资源存放在服务器端减少数据库端的负担,大大提高密钥 安全性,同时用户可W根据唯一的角色密钥及相关的鉴权运算出权限范围内所有文件的密 钥,减少了用户与数据拥有者数据库端的密钥维护量。
[0033] 在密钥树中,假设密钥ki和kj.分别是父节点Vi与孩子节点Vj.的密钥,则鉴权T1,j=kj?h(k1),其中?为异或操作,h为一个单向化sh函数,因此,任何持有父节点密钥ki 的用户,利用计算获得h也),并通过计算kj.=h化i) 0Ty获得子节点Vj.的密钥kJ。
[0034]定义1。密钥运算函数F。密钥集合记为K,鉴权集合记为T。直接密钥运算函数 F;K-2K表示由密钥ki直接运算的所有密钥构成的集合,定义为F化1) ={kjIkjGK, T^GT}。密钥运算函数F*;k- 2K表示由直接运算或者间接运算的所有密钥集合,定 义为F(ki)* ={kJkmEK,kjEK,kfEK,…,(Ti,j,...,Tt,m)EU。
[0035] 定义2。资源密钥分配函数9。文件集合记为File和叶节点非对称密钥集合记为 K%资源密钥分配函数9:f一 表示对任意文件f的对称密钥分配唯一的非对称加密密 钥,定义为抑-0二k.i,如果k卢K*,fGS。,ACSi=Pkj,其中ACSi为f的访问控制向量二 进制表示,pkj表示从根节点到对应密钥kj的叶节点路径。
[0036] 定义3。角色密钥分发C。在索引树中角色R在其接入索引树对应的层次上能获得 密钥集合为a(Ri)=体|VSQ如果A,ij=lkscj巨F(k)*}。角色密钥分发函数C;R-K 表示分配给角色R的用户唯一的密钥C巧1)=化If化)=a巧1)}。因此,角色R可访问 的密钥集合可W表示为F*(URi))=化IkGF化i)*,kiGa巧1)}。
[0037] 定义4。密钥管理模型0。3定义为一个^元组0 =巧>,封,其为整个系统完成 密钥的管理与运算,由密钥运算函数F*、资源密钥分配函数巧、角色密钥分发C组成。
[003引密钥管理模型5在索引树的基础上对相应节点进行密钥分发、鉴权生成实现索引 树的构建,具体步骤如下:
[0039] 1)在索引树建立后,为了保证模型的有效工作,该模型为从根节点开始到叶节点 的每一个路径节点分发密钥,每个密钥都是随机产生的对称密钥。数据库端为叶节点对应 的每个安全资源组分配一个非对称密钥。
[0040] 2)根据索引树中各个分支的密钥情况,由上至下依次生成节点鉴权,然后再为每 个角色生成角色密钥与密钥集合a(民0=体IvSCj,如果A,ij=l,kscj巨F(k)*}之间的 所有角色鉴权,即生成角色密钥与对应的角色层次右孩子节点之间的角色鉴权。
[0041] 3)根据加密策略对文件进行加密和签名,并上传到服务器。用户可W根据鉴权链 和自身的角色密钥获取文件的解密密钥W获取明文。在后期的访问策略更新的过程中,会 相应地更新对应的鉴权链及密钥。
[0042] 密钥管理模型6将用户访问控制矩阵表进行角色和资源归类,经过索引树的构 建、密钥的分发、文件的加密上传转变密钥树,增强了访问控制能力。通过该方法,数据库端 只需要维护根密钥和角色密钥,用户只需维护一个密钥即其所属角色密钥,大大减少了数 据库端需要维护的密钥数量,且提高了密钥的安全性。
[0043] 2再次加密
[0044] 在密钥树的基础上,为了将访问控制策略动态更新导致的文件密钥再次加密代价 转移到服务器执行,本发明利用再次加密算法更新叶节点非对称密钥加密的文件密钥。该 算法中文件密钥密文长度不随文件再次加密次数的增加而增加,满足访问控制策略频繁更 新的需求,同时服务器在执行再次加密的过程中无法获取明文的相关信息。再次加密的公 式如下:
[0045] k,f (gb modP)rmodP=kf (gS mod巧%〇(1Pkf/k,f(gt mod F〇a-b,
[0046] 式中,P为大素数、Z>p为模P的乘法循环群,g为循环群Ztp生成元,kf,k'f为密钥 明文信息,参数a,b,r满足条件1《a,b,r《P-2,其中a,b为私钥,r为加密随机参数, 其中k'f(gbmodP)rmodP,kf(gamodP)rmodP为加密kf,k'f所得到的密文的后半部 分,前半部分均为gtmodp。该算法将用公钥gamodP所加密的kf密文转换成使用公钥 gbmodP加密k'f所得到的密文,该个过程中不会泄露明文信息及相关密钥。再次加密密 钥公式为
[0047] rk = kf/k,f (gt mod F〇a-b。
[0048] 上述的公式满足再次加密的性质,且能保证加密的文件密钥安全。当策略发生改 变时数据库端只需要生成再次加密密钥的相关参数kf?k'-IfW及a-b,并将其传递给服务 器对文件密钥进行重新加密即可完成密钥的更新,减小访问控制策略更新给数据库端带来 的负担。
[0049] 3双层加密策略
[0化0] 上述机制能够有效地降低密钥的管理和维护的复杂度,但由于数据规模大,需采 用对称加密,且对称加密没有有效的再次加密的机制,因此,在策略更新的情况下,需要返 回对应的数据密文,由数据库端对相关数据进行再次加密,该样会大大地加重数据库端负 担。
[0化1] 因此,本发明使用双层加密策略有效地降低了文件大小返回频率及数据库端的数 据更新代价。主要思想是通过在权限回收过程中文件权限奇数次变化时,不返回文件数据 只通过再次加密机制完成密钥的更新,同时服务器利用角色的外层加密密钥对文件密文再 次加密,W防止权限撤销后的用户利用W前保存的密钥获取文件明文;在偶数次的情况下, 数据库端获取双层加密的密文进行解密和文件重新加密,同时利用再次加密完成密钥更 新,该样减少了文件数据返回的次数,提高了数据库端数据管理和更新代价。
[0化2] 为了实现双层加密,服务器需要为角色集R中的每个角色维护一个外层密钥,并 通过安全通道发放给对应的角色,并随着权限撤销次数的变化对角色的外层密钥进行更 新。W单个文件f为例描述文件和密钥的更新过程。在文件f奇数次权限回收时,数据库 端只需生成文件密钥kf的再次加密密钥rk(文件f的对称密钥不变),并将其发送到服务 器完成kf的再次加密。服务器端更新对应撤销角色的外层密钥,并利用对应角色的新外层 对称密钥对文件密文进行加密。在文件f偶数次权限回收时,数据库端将数
据密文返回,并 进行2层解密后重新生成文件密文,同时生成新文件密钥k'f与旧文件密钥kf的再次加 密密钥rk(文件f的对称密钥发生改变),并发送给服务器完成文件f密钥更新。
[0053] 为了支撑双层加密策略,在文件上传到服务器端之前,数据库端需要将文件数据 格式进行相关处理,
[0化4] 具体的处理过程如下:
[0化5] 1)为文件分配一个唯一的ID ;
[0056] 2)为文件随机选择一个对称的加密密钥化,并对文件进行对称加密,同时利用数 据库端的根密钥对文件的Hash值进行签名;
[0化7] 3)将文件在索引树中二进制路径作为文件路径存放,W便用户获取鉴权链,同时 将flag作为文件是否有双层加密的标志,如果flag为0表示只有单层加密,如果为1则包 含双层加密,将其初始为0,服务器加密一次该值就增1。
[005引通过密钥树、再次加密机制、双层加密策略的有效结合降低了动态策略更新中密 钥的更新的复杂度,而且有效地提高了数据更新的效率,降低了数据库端的管理负担。
[0化9] 本发明采用的体系架构包括数据库端、用户端和云服务器,数据库端主要包括密 钥树构建模块、文件权限更新模块、数据管理模块、角色更新模块、再次加密密钥模块;用户 端主要包括文件访问模块。其中密钥树构建模块根据访问控制矩阵转换成对应的密钥树, 并利用密钥运算机制,进一步降低了密钥管理复杂度,提高了密钥的安全性。角色更新模块 主要实现用户角色更新,同时处理由此带来的鉴权更新、密钥更新、数据更新。文件权限更 新模块主要负责授予或撤销角色R对文件f的访问权限,并更新相关的鉴权、密钥、数据。再 次加密模块生成文件密钥kf的再次加密密钥rk,并将其传递给服务器完成文件对称密钥的 再次加密,可W有效适应策略频繁更新的场景。
[0060] 数据管理模块主要实现数据的加密上传,W及根据双层加密策略完成数据更新。 用户端主要包含文件访问模块利用用户角色密钥及相关鉴权信息获得解密密钥W获取明 文信息。后续的访问流程和策略更改的流程程将主要由上述功能模块完成。
[0061] 在本发明技术方案中,数据访问过程分为参数初始化,文件发布,密钥分布,获取 文件该4个阶段。在数据访问过程中主要通过密钥树构建模块实现密钥树的构建和文件的 发布,利用文件访问模块实现文件密文的访问。
[0062] 在参数初始化阶段,数据库端生成系统初始化公开参数大素数P,域Z>p、生成元g、 随机参数rW及gfmodP。在文件发布阶段,由密钥树构建模块构建密钥树并实现文件的 加密发布功能。在数据库端新增文件f到服务器过程中,首先向服务器请求W根节点为起 点、路径为文件f的访问控制向量ACS讯的鉴权链,然后利用数据库端的密钥dk和鉴权链 计算尾节点密钥vk;获得密钥vk之后分2种情况;首先如果链的长度与ACS(f)长度相等, 则说明密钥树中已经存在相应的安全资源组,直接利用vk加密f的对称密钥kf,由文件加 密模块完成文件f的加密和签名后上传至服务器。否则,需要根据ACS(f)创建索引树的分 支,同时创建索引树节点和对节点分发密钥由上至下构建鉴权链,并利用根节点的非对称 密钥加密文件密钥kf,最后利用文件加密模块实现文件的加密和签名,将索引树节点信息、 鉴权链、数据及密钥密文上传至服务器。
[0063] 在文件上传过程中;1)字符为1代表其对应的角色具有该文件的访问权限需要 增加对应角色到该节点之间的角色鉴权;2)密钥索引树叶节点对应的密钥为公私钥对(gx modP,X),非叶节点是随机产生的对称密钥所W在创建新的节点时需要判断该节点是否为 叶节点。具体W下文件发布方法,其中访问控制矩阵经过算法转换成密钥索引树,
[0064] W访问控制矩阵ACS讯,数据库端的对称密钥化作为输入,
[0065] 1)根据ACS讯获取文件f对应的鉴权链;
[0066] 2)计算出链尾节点的密钥vk;
[0067] 如如果IACS讯I〉I链长I,执行步骤4),否则执行步骤6);
[0068] 4)计算出链相对于ACS讯缺少的控制向量ACS讯';
[0069] 5)依次根据ACS(f)'对应的字符生成索引树左右节点,并为新节点分发密钥,最 后的叶节点分发公私钥对,由上至下形成鉴权,如果为右节点则同时生成对应角色与该右 节点的角色鉴权,最后随机生成文件f的对称密钥kf;
[0070] 6)调用文件加密模块实现文件和文件密钥的加密和签名,并将新创建的索引树节 点、鉴权链、角色鉴权、文件f及密钥kf的密文上传到服务器。在密钥分布阶段数据库端根 据用户所属的角色,通过安全信道将用户对应的角色密钥rk发送给所有用户,服务器为每 个角色对应的用户分发对应的外层密钥rk'。
[007U 在获取文件阶段,利用文件访问模块获取文件的明文。用户向服务器发送用户角 色信息R及文件f的访问控制向量ACS(f),服务器返回文件对应的鉴权链W及文件密钥密 文化f、文件加密参数flag、文件密文Cf。在flag为0的情况下,用户利用持有的角色密钥 解析鉴权链获取加密文件密钥kf的密钥,此密钥为非对称密钥(私钥为a,公钥为gamod P),进而利用解密算法获取文件密钥kf,最后根据kf获得文件f的明文。在flag为1的情 况下,首先根据角色外层密钥解密外层加密获取文件的密文,进而获得文件f的密钥kf,进 行解密获取文件f明文数据。
[0072] 根据本发明的另一方面,策略更新主要包括文件权限更新,角色更新两种情况。分 别由权限更新模块和角色更新模块结合再次加密密钥模块、数据管理模块完成。
[0073] 针对文件权限更新情况,文件访问权限更新分为文件访问权限授予和回收,权限 回收将文件f对应的访问控制矩阵中角色R对应数值由1变为0而文件授权则由0变为1。 相对于密钥索引树而言,文件访问权限更新的实质是文件及文件密钥在不同安全资源组之 间的切换,故访问权限授予时利用再次加密密钥模块生成再次加密密钥(3'mod巧a^^,此时 不需要更新文件密钥kf,只需更新加密kf的密钥a,最后由服务器将文件密钥kf再次加密 成新密钥加密的密钥密文;权限撤销时不仅需要更新加密文件密钥kf的密钥a,同时需要 将文件密钥kf转变为k'f,最后还需要利用双层加密策略更新数据密文。文件权限更新过 程具体如下:
[0074] W文件索引ID、文件源和目的访问控制向量sacl,dacl、策略更新类型type作为 输入;
[00巧]1)首先获取sacl,dacl对应的鉴权链schain,dchain;
[0076] 2)分别获取两条鉴权链的尾节点的密钥oldsk,newsk;
[0077]如如果IdchainI<IdaclI,执行步骤4),否则执行步骤W ;
[007引 4)利用上述文件发布方法完成对应dacl对应的索引树节点和鉴权链等生成,获 取该分支对应的叶节点的非对称密钥newsk',并赋值给newsk;
[0079] 5)如果type= 0需进行授权,执行步骤6)和步骤7),否则表示撤销,执行步骤 8);
[0080] 6)再次加密模块生成再次加密参数kfk' -If,Oldsk-newsk,由服务器端生成rk= kf/k,f(gtmod
F〇a-b.
[0081] 7)如果文件f策略更新参数flag= 0,由服务器完成密文数据的再次加密,并将 flag更改为1;否则由文件访问功能获取文件f明文,利用新加密密钥k'f生成新密文并上 传到服务器端,将flag改为0;
[00間 8)再次加密模块生成再次加密参数参数oldsk-newsk,由服务器端生成rk=(gt mod巧a-b。
[0083] 针对角色更新情况,数据库端将用户的角色从sr变为化,服务器根据请求返回所 有需要更新节点密钥的鉴权,即返回sr能够访问数据的节点集合与化不能访问的节点集 合交集节点(srU品)及鉴权链。
[0084] 鉴权链集合包括W下3种;含叶节点鉴权链集合LT、不含叶节点鉴权链集合化T、 角色鉴权集合RT。首先获得角色化不能访问节点,而后获得sr能访问的节点集CN和化 不能访问的节点集合BN,获得从根节点出发经过BN和CN到叶节点的鉴权链,将其返回给数 据库端。数据库端对鉴权链中CN与BN之间的节点重新分发密钥,并由上至下形成新鉴权 链,同时类似权限撤销的方式批量处理鉴权链对应的安全资源组的文件密文及对应的文件 密钥密文的更新。
[0085] 角色更新具体过程如下所示:
[0086] 1)获取原角色和目的角色R1,R2 ;如果Lei<Le2,转步骤。,否则转步骤引;
[0087] 2)获取R1在Lk冲持有的密钥节点集合CN;
[0088] 3)循环遍历CN取节点n;
[0089] 4)先序遍历W节点n为根节点的索引树,依次获取LJ1所有要更新密钥的节点 集合及鉴权链,包括角色鉴权(R1可访问节点满足条件R2不可访问),转至步骤8);
[0090] 5)获取R2在Lk2层中不持有的密钥的节点集合BN;
[OOW] 6)循环遍历BN取节点;
[0092] 7)先序遍历Wn为根节点的索引树,依次所有要更新密钥的节点集合及鉴权链, 包括角色鉴权(节点满足条件R2不可访问R1可访问);
[0093] 8)将需要更新的鉴权信息、节点信息返回给数据库端,数据库端对需要更新的节 点重新进行密钥分发,并形成新鉴权链,对角色R1的所有角色鉴权进行更新,对角色R1重 新分发密钥;
[0094] 9)对设及的安全资源组SCi随机生成新对称密钥k'f,对叶节点重新生成非对称 密钥,并生成再次加密密钥参数kfk'f-i,oldsk-newsk;
[0095] 10)如果文件f策略更新参数flag= 0,由服务器完成密文数据的再次加密,并将 flag更改为1 ;否则由文件访问功能获取文件f明文,利用新加密密钥k'f生成新密文并上 传到服务器端,将flag置0。
[0096] 综上所述,本发明的加密方法降低了数据库端维护密钥的复杂度,提高了密钥安 全性;将加密任务转移到服务器执行,降低密钥更新的开销。同时,本发明利用改进的加密 策略尽量降低数据的返回频率,从密钥和数据两个方面节省计算开销和通信开销。
[0097] 显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可W用通用 的计算系统来实现,它们可W集中在单个的计算系统上,或者分布在多个计算系统所组成 的网络上,可选地,它们可W用计算系统可执行的程序代码来实现,从而,可W将它们存储 在存储系统中由计算系统来执行。该样,本发明不限制于任何特定的硬件和软件结合。
[009引应当理解的是,本发明的上述【具体实施方式】仅仅用于示例性说明或解释本发明的 原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何 修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨 在涵盖落入所附权利要求范围和边界、或者该种范围和边界的等同形式内的全部变化和修 改例。
【主权项】
1. 一种数据加密方法,其特征在于,包括: 构建基于密钥鉴权的密钥索引树; 在密钥索引树的基础上对密钥再次加密操作; 基于再次加密操作进行文件数据更新。2. 根据权利要求1所述的方法,其特征在于,所述构建基于密钥鉴权的密钥索引步骤 之前还包括: 将访问控制矩阵中访问权限相同的用户归为同一角色,访问对象相同的资源归为同一 安全资源组,通过归类减少密钥维护量,并确保角色与安全资源组之间没有用户与文件的 交集;所述索引树的非叶子节点的密钥是对称密钥,用于形成鉴权,叶子节点对应的密钥是 非对称密钥。3. 根据权利要求1所述的方法,其特征在于所述文件数据更新包括文件权限更新和 角色更新,分别由权限更新模块和角色更新模块结合再次加密密钥模块、数据管理模块完 成; 所述文件权限更新进一步包括文件访问权限授予和回收,权限的回收将文件对应的访 问控制矩阵中角色对应数值由1变为O而文件授权则由O变为1 ;文件访问权限更新用于将 文件及文件密钥在不同安全资源组之间切换,使得访问权限授予时利用再次加密密钥模块 生成再次加密密钥,不需要更新文件密钥,只需更新文件密钥的加密密钥,最后由服务器将 文件密钥再次加密成新密钥加密的密钥密文;权限撤销时更新加密文件密钥的加密密钥, 利用双层加密策略更新数据密文,所述文件权限更新过程具体如下: 1) 以文件索引、文件源和目的访问控制向量、策略更新类型作为输入,首先获取文件源 和目的访问控制向量对应的鉴权链; 2) 分别获取两条鉴权链的尾节点的密钥; 3) 如果目的访问控制向量对应的鉴权链小于目的访问控制向量,执行步骤4),否则执 行步骤5); 4) 完成对应目的访问控制向量对应的索引树节点和鉴权链生成,获取该分支对应的叶 节点的非对称密钥; 5) 如果策略更新类型为O则进行授权,执行步骤6)和步骤7),否则表示撤销,执行步 骤8); 6) 生成再次加密参数,由服务器端生成再次加密密钥; 7) 如果文件策略更新参数为0,由服务器完成密文数据的再次加密;否则获取文件明 文,利用新加密密钥生成新密文并上传到服务器端; 8) 再次加密模块生成再次加密参数参数,由服务器端生成再次加密密钥。4. 根据权利要求2所述的方法,其特征在于,该方法还包括,在索引树的基础上对相应 节点进行密钥分发、鉴权生成实现索引树的构建,具体步骤进一步包括: 1) 在索引树建立后,从根节点开始到叶节点的每一个路径节点分发密钥,每个密钥都 是随机产生的对称密钥,数据库端为叶节点对应的每个安全资源组分配一个非对称密钥; 2) 根据索引树中各个分支的密钥情况,由上至下依次生成节点鉴权,然后再为每个角 色生成角色密钥与密钥集合之间的所有角色鉴权,即生成角色密钥与对应的角色层次右孩 子节点之间的角色鉴权;
【专利摘要】本发明提供了一种数据加密方法,该方法包括:构建基于密钥鉴权的密钥索引树;在密钥索引树的基础上对密钥再次加密操作;基于再次加密操作进行文件数据更新。本发明进一步安全有效地降低云存储安全性能开销,降低数据库端的维护量,且构建高效的密钥和数据更新策略。
【IPC分类】H04L9/32, H04L29/06
【公开号】CN104901949
【申请号】CN201510191253
【发明人】刘颖
【申请人】成都汇智远景科技有限公司
【公开日】2015年9月9日
【申请日】2015年4月21日