一种实现支持细粒度访问控制的加密方法

文档序号:7721337阅读:1044来源:国知局
专利名称:一种实现支持细粒度访问控制的加密方法
技术领域
本发明涉及一种在分布式环境下,针对文件共享及安全存储的要求,提出的一种灵活的、细粒度的访问控制方法,主要通过扩展原基于属性的加密算法的扩展树来实现细粒度的访问控制。
背景技术
在分布式环境中,尤其是在云计算的服务模型中,用户数据集中后,保证运营服务提供商内部的安全管理和访问控制机制符合用户的安全需求,避免分布式环境中多用户共同存在或共享数据带来的潜在风险,是分布式环境中面临的安全挑战。目前,数据中心对数据的保护主要通过两种方式访问控制和加密。常用的访问控制方式有自主访问控制策略(DAC)、强制访问控制策略(MAC)或基于角色的访问控制策略 (RBAC)等。在系统运转良好的情况下,一个设计良好的访问控制系统,可以防止用户或恶意软件对数据的非法访问,而一旦系统被非法入侵或控制,这些访问控制系统将失效。为了弥补访问控制技术的不足,加密是保护数据不被非法访问的另一常用技术。然而,常规的加密技术包括对称加密技术和公钥加密技术都只能对文件进行单调的加密,在分布式环境中密钥的分发与管理较为复杂,而且不能实现访问控制技术所具有的灵活控制功能。近来提出的基于属性的加密体制(ABE)可以实现基于加密算法的访问控制,无需负载的密钥管理及密钥分发机制,但是基于属性加密算法只能够支持与、或和门限运算,不能实现细粒度的访问控制,且扩展性差。

发明内容
本发明的技术解决的问题克服现有技术的不足,通过扩展密文策略的基于属性加密算法中的访问控制结构,使其具有丰富的访问控制运算能力,从而实现细粒度的、灵活的访问控制。本发明的技术解决方案一种实现支持细粒度访问控制的加密方法,其特征在于以下方面(1)通过添加虚拟叶子节点来实现运算符扩展原密文策略的基于属性的加密算法中访问控制结构的设计基于门限秘密共享体制,其访问控制结构为一棵访问控制树,如

图1所示。访问控制树中节点包括阈值k和子节点数num两个属性,其中0 < k < num。本发明使用k < 0的范围表示扩展属性节点,k表示运算标识符,对应于特定的运算(或函数),扩展属性的叶子节点为一个或多个属性与属性值对,如图2所示。扩展属性节点相当于原来方案中的叶子节点,而〈属性名,属性值〉 对,相当于k指代的函数所需的输入参数。函数的输出对应于扩展属性节点的属性值。(2)密钥生成中心(PKG)负责用户扩展属性的验证原密文策略的基于属性的加密算法中,PKG负责公开参数分发、私钥生成功能外、 和用户属性提取的功能,在本扩展方案中,PKG除了以上功能,还负责根据扩展的运算标识符,使用对应的运算函数对用户提供的扩展属性进行动态验证。(3)扩展运算函数的格式及已扩展的访问控制运算扩展运算对应的函数具有一下原型f: (attrbute_name, attribute, value, . . .) ^ Requred Attribute | Empyte String。胃巾 1 ^= ^fg.f < M 个生名,属性值 > 对,函数的返回值为确定的字符串。扩展的运算包括匹配函数和逻辑运算符。具体如下:<,>,<,>,in—range,regex_matchb、逻辑运算符Not其中,<、>、彡和彡为算术比较运算符;irurange为验证参数是否在一定范围内的函数;regexjiiatch为正则表达式匹配函数,正则表达式使用Java正则表达式的标准格式。扩展的运算函数具体定义如下
权利要求
1. 一种实现支持细粒度访问控制的加密方法,其特征如下(1)通过添加虚拟叶子节点来实现运算符扩展原密文策略的基于属性的加密体制中访问控制结构的设计基于门限秘密共享体制,其访问控制结构为一棵访问控制树,访问控制树中节点包括阈值k和子节点数num两个属性, 其中0 < k彡num,使用k < 0的范围表示扩展属性节点,k表示运算标识符,对应于特定的运算或函数;扩展属性的叶子节点为一个或多个属性与属性值对,扩展属性节点相当于密文策略的基于属性的加密体制中的叶子节点,而〈属性名,属性值〉相当于k指代的函数所需的输入参数,函数的输出对应于扩展属性节点的属性值;(2)密钥生成中心PKG负责用户扩展属性的验证PKG具有公开参数分发、私钥生成和用户扩展属性提取的功能,同时,PKG还负责根据扩展的运算标识符,使用对应的运算函数对用户提供的扩展属性进行动态验证;(3)扩展运算函数的格式及已扩展的访问控制运算扩展运算对应的函数具有以下原型f :(attribute_name,attribute, value. . .) — Requred Attribute | Empty String,< Mft^, M性值〉对,函数的返回值为确定的字符串;扩展的运算包括匹配函数和逻辑运算符,具体如下a.251O ,H in_range, regex_match ;b.逻辑运算符=Not;其中,<、>、<和彡为算术比较运算符;in_range为验证参数是否在一定范围内的函数;regexjiiatch为正则表达式匹配函数,正则表达式使用Java正则表达式的标准格式;(4)密文解密及私钥获取过程执行解密算法须取得针对密文中已扩展的访问控制树的私钥,其过程如下从访问控制树中提取运算函数标志符k,和存储于虚拟叶子节点中的 < 属性名,属性值 > 对,将它们和用户身份信息发送到密钥生成中心,密钥生成中心生成对应的私钥并返回给用户;密钥生成中心生成私钥的过程如下密钥生成中心首先验证用户身份,如果身份验证没有通过则拒绝该请求;通过身份验证后,密钥生成中心根据用户提交的运算标识符确定对应的访问控制运算函数,然后密钥生成中心从用户属性信息用户具有的属性集S,运行该函数获取对应的输出,如果输出不为空则将该扩展属性添加到属性集S中;当用户提交的所有扩展属性验证都被执行后,以属性集S为输入运行密文策略的基于属性的加密算法中密钥生成算法生成私钥。
全文摘要
一种实现支持细粒度访问控制的加密方法,基于属性的加密体制中访问控制结构为一棵访问控制树,使用k<0的范围表示扩展属性节点,k表示运算标识符,对应于特定的运算(或函数);k<0的叶子节点称为扩展属性的叶子节点,这类节点的子节点为一个或多个属性与属性值对。子节点中数据为与运算标识符k对应的运算函数所需的输入参数。函数的输出对应于扩展属性节点的属性值,扩展的运算包括匹配函数和逻辑运算符。本发明使基于属性加密算法支持丰富的运算,使改进后基于属性的加密算法具有灵活的、细粒度的访问控制能力。
文档编号H04L29/06GK102244660SQ201110193448
公开日2011年11月16日 申请日期2011年7月12日 优先权日2011年7月12日
发明者张然, 李未, 牛虹婷, 郎波, 高昊 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1