一种数据安全存储方法_3

文档序号:8490014阅读:来源:国知局
上传到服务器端之前,数据库端需要将文件数据 格式进行相关处理,
[0化6] 具体的处理过程如下:
[0化7] 1)为文件分配一个唯一的ID;
[005引 2)为文件随机选择一个对称的加密密钥化,并对文件进行对称加密,同时利用数 据库端的根密钥对文件的Hash值进行签名;
[0化9] 3)将文件在索引树中二进制路径作为文件路径存放,W便用户获取鉴权链,同时 将flag作为文件是否有双层加密的标志,如果flag为0表示只有单层加密,如果为1则包 含双层加密,将其初始为0,服务器加密一次该值就增1。
[0060] 通过密钥树、再次加密机制、双层加密策略的有效结合降低了动态策略更新中密 钥的更新的复杂度,而且有效地提高了数据更新的效率,降低了数据库端的管理负担。
[0061] 本发明采用的体系架构包括数据库端、用户端和云服务器,数据库端主要包括密 钥树构建模块、文件权限更新模块、数据管理模块、角色更新模块、再次加密密钥模块;用户 端主要包括文件访问模块。其中密钥树构建模块根据访问控制矩阵转换成对应的密钥树, 并利用密钥运算机制,进一步降低了密钥管理复杂度,提高了密钥的安全性。角色更新模块 主要实现用户角色更新,同时处理由此带来的鉴权更新、密钥更新、数据更新。文件权限更 新模块主要负责授予或撤销角色R对文件f的访问权限,并更新相关的鉴权、密钥、数据。再 次加密模块生成文件密钥kf的再次加密密钥rk,并将其传递给服务器完成文件对称密钥的 再次加密,可W有效适应策略频繁更新的场景。
[0062] 数据管理模块主要实现数据的加密上传,W及根据双层加密策略完成数据更新。 用户端主要包含文件访问模块利用用户角色密钥及相关鉴权信息获得解密密钥W获取明 文信息。后续的访问流程和策略更改的流程程将主要由上述功能模块完成。
[0063] 在本发明技术方案中,数据访问过程分为参数初始化,文件发布,密钥分布,获取 文件该4个阶段。在数据访问过程中主要通过密钥树构建模块实现密钥树的构建和文件的 发布,利用文件访问模块实现文件密文的访问。
[0064] 在参数初始化阶段,数据库端生成系统初始化公开参数大素数P,域Z>p、生成元g、 随机参数rW及gfmodP。在文件发布阶段,由密钥树构建模块构建密钥树并实现文件的 加密发布功能。在数据库端新增文件f到服务器过程中,首先向服务器请求W根节点为起 点、路径为文件f的访问控制向量ACS讯的鉴权链,然后利用数据库端的密钥化和鉴权链 计算尾节点密钥vk;获得密钥vk之后分2种情况:首先如果链的长度与ACS(f)长度相等, 则说明密钥树中已经存在相应的安全资源组,直接利用vk加密f的对称密钥kf,由文件加 密模块完成文件f的加密和签名后上传至服务器。否则,需要根据ACS(f)创建索引树的分 支,同时创建索引树节点和对节点分发密钥由上至下构建鉴权链,并利用根节点的非对称 密钥加密文件密钥kf,最后利用文件加密模块实现文件的加密和签名,将索引树节点信息、 鉴权链、数据及密钥密文上传至服务器。
[0065] 在文件上传过程中:1)字符为1代表其对应的角色具有该文件的访问权限需要 增加对应角色到该节点之间的角色鉴权;2)密钥索引树叶节点对应的密钥为公私钥对(gx modp,X),非叶节点是随机产生的对称密钥所W在创建新的节点时需要判断该节点是否为 叶节点。具体W下文件发布方法,其中访问控制矩阵经过算法转换成密钥索引树,
[0066] W访问控制矩阵ACS讯,数据库端的对称密钥化作为输入,
[0067] 1)根据ACS(f)获取文件f对应的鉴权链;
[0068] 2)计算出链尾节点的密钥vk;
[0069] 3)如果ACS(f)〉链长,执行步骤4),否则执行步骤6);
[0070] 4)计算出链相对于ACS(f)缺少的控制向量ACS(f)';
[007U5)依次根据ACS(f)'对应的字符生成索引树左右节点,并为新节点分发密钥,最 后的叶节点分发公私钥对,由上至下形成鉴权,如果为右节点则同时生成对应角色与该右 节点的角色鉴权,最后随机生成文件f的对称密钥kf;
[0072] 6)调用文件加密模块实现文件和文件密钥的加密和签名,并将新创建的索引树节 点、鉴权链、角色鉴权、文件f及密钥kf的密文上传到服务器。在密钥分布阶段数据库端根 据用户所属的角色,通过安全信道将用户对应的角色密钥rk发送给所有用户,服务器为每 个角色对应的用户分发对应的外层密钥rk'。
[007引在获取文件阶段,利用文件访问模块获取文件的明文。用户向服务器发送用户角 色信息R及文件f的访问控制向量ACS(f),服务器返回文件对应的鉴权链W及文件密钥密 文化f、文件加密参数flag、文件密文Cf。在flag为0的情况下,用户利用持有的角色密钥 解析鉴权链获取加密文件密钥kf的密钥,此密钥为非对称密钥(私钥为a,公钥为gamod P),进而利用解密算法获取文件密钥kf,最后根据kf获得文件f的明文。在flag为1的情 况下,首先根据角色外层密钥解密外层加密获取文件的密文,进而获得文件f的密钥kf,进 行解密获取文件f明文数据。
[0074] 根据本发明的另一方面,策略更新主要包括文件权限更新,角色更新两种情况。分 别由权限更新模块和角色更新模块结合再次加密密钥模块、数据管理模块完成。
[0075] 针对文件权限更新情况,文件访问权限更新分为文件访问权限授予和回收,权限 回收将文件f对应的访问控制矩阵中角色R对应数值由1变为0而文件授权则由0变为1。 相对于密钥索引树而言,文件访问权限更新的实质是文件及文件密钥在不同安全资源组之 间的切换,故访问权限授予时利用再次加密密钥模块生成再次加密密钥(3'mod巧a^^,此时 不需要更新文件密钥kf,只需更新加密kf的密钥a,最后由服务器将文件密钥kf再次加密 成新密钥加密的密钥密文;权限撤销时不仅需要更新加密文件密钥kf的密钥a,同时需要 将文件密钥kf转变为k'f,最后还需要利用双层加密策略更新数据密文。文件权限更新过 程具体如下:
[0076] W文件索引ID、文件源和目的访问控制向量sacl,dacl、策略更新类型type作为 输入;
[0077] 1)首先获取sacl,dacl对应的鉴权链schain,dchain;
[007引 2)分别获取两条鉴权链的尾节点的密钥oldsk,newsk;
[0079] 3)如果dchain<dacl,执行步骤4),否则执行步骤5);
[0080] 4)利用上述文件发布方法完成对应dacl对应的索引树节点和鉴权链等生成,获 取该分支对应的叶节点的非对称密钥newsk',并赋值给newsk;
[0081] 5)如果type= 0需进行授权,执行步骤6)和步骤7),否则表示撤销,执行步骤 8);
[0082] 6)再次加密模块生成再次加密参数kfk' -If,oldsk-newsk,由服务器端生成rk= kf/k,f(gt mod F〇a-b.
[0083] 7)如果文件f策略更新参数flag= 0,由服务器完成密文数据的再次加密,并将 flag更改为1;否则由文件访问功能获取文件f明文,利用新加密密钥k'f生成新密文并上 传到服务器端,将flag改为0;
[0084] 8)再次加密模块生成再次加密参数参数oldsk-newsk,由服务器端生成rk=(gt mod巧a-b。
[0085] 针对角色更新情况,数据库端将用户的角色从sr变为化,服务器根据请求返回所 有需要更新节点密钥的鉴权,即返回sr能够访问数据的节点集合与化不能访问的节点集 合交集节点(srU办>及鉴权链。
[0086] 鉴权链集合包括W下3种:含叶节点鉴权链集合LT、不含叶节点鉴权链集合化T、 角色鉴权集合RT。首先获得角色化不能访问节点,而后获得sr能访问的节点集CN和化 不能访问的节点集合BN,获得从根节点出发经过BN和CN到叶节点的鉴权链,将其返回给数 据库端。数据库端对鉴权链中CN与BN之间的节点重新分发密钥,并由上至下形成新鉴权 链,同时类似权限撤销的方式批量处理鉴权链对应的安全资源组的文件密文及对应的文件 密钥密文的更新。
[0087] 角色更新具体过程如下所示:
[00能]1)获取原角色和目的角色R1,R2;如果Lei<Le2,转步骤。,否则
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1