本发明属于网络与信息安全中的数据加密技术领域,具体涉及一种基于准则的多授权机构访问控制方法。
背景技术:
近年来,云计算技术的高速发展使其得到了广泛的应用和普及,云存储系统为许多的企业和个人提供了不受时间和空间约束进行数据存储及访问的便利条件,但其数据外包的存储模式也带来了一定程度的安全威胁,如云服务提供商可能被恶意攻击者攻击,从而导致用户数据在非授权情况下被访问、获取或损坏。基于上述问题,在云环境中,用户通常将数据进行加密后再上传至云端,因此,灵活、可应用的访问控制机制对于云环境中的数据隐私保护是至关重要的。
sahai和waters在基于身份加密的基础上首次提出基于属性的加密(abe)机制,实现了更加灵活、细粒度的访问控制。最初的属性基加密机制仅支持门限访问策略,后又发展出密文策略属性基加密(cp-abe)和密钥策略属性基加密(kp-abe),使访问策略得以更加丰富和灵活的表达。其中,kp-abe将密文与属性相关联,策略与用户密钥相关联;而cp-abe将属性集与用户密钥相关联,由加密方指定密文中的访问策略,只有当用户属性满足访问策略时才可正确恢复明文,因此更适用于云存储系统。
但传统的abe方案具有以下几个弊端,其一,采用单一授权机构的机制,即由中央授权机构ca进行密钥的颁发和管理,这导致其成为系统的性能瓶颈,并且一旦中央授权机构被攻破,整个系统的安全都将受到威胁;其二,属性基加密方案并未对属性间的重要程度进行区分,而在实际应用场景中,不同属性的重要性应是不同的,并且由于加密方的需求不同,相同属性在不同的访问策略中的重要程度也可能不同,如:对于想要发布一项招聘信息的加密者而言,策略中的学历信息和工作经验应比年龄和健康状况具有更高的优先级;而在医疗咨询的场景中则应是年龄和健康状况更为重要。
技术实现要素:
本发明的目的在于提供解决单一权威机构负载过量及访问策略的灵活表达问题的一种基于准则的多授权机构访问控制方法。
本发明的目的通过如下技术方案来实现:包括以下步骤:
步骤1:中央授权机构ca运行群生成算法得到群参数
其中,e表示映射
步骤2:每个准则授权机构aaθ分别得到主秘密的一部分αθ,利用公共参数pp计算自身的公钥pkθ与私钥skθ,并将公钥pkθ发送给中央授权机构ca;
步骤2.1:每个准则授权机构aaθ随机选择t-1阶多项式qθ(x),且多项式qθ(x)满足αθ=qθ(0);
步骤2.2:每个准则授权机构aaθ生成nθ个共享份额,其中包括自身的共享份额sθθ=qθ(aidθ),以及为其他nθ-1个准则授权机构生成的共享份额sθξ=qθ(aidξ),ξ=1,2,…,θ-1,θ+1,…,nθ;
步骤2.3:每个准则授权机构aaθ将为其他nθ-1个准则授权机构生成的共享份额sθξ发送给对应准则授权机构aaξ;
步骤2.4:每个准则授权机构aaθ根据自身的共享份额sθθ和接受到的来自其他准则授权机构的nθ-1个共享份额sξθ生成私钥skθ和公钥pkθ,并将公钥pkθ发送给中央授权机构ca;
步骤3:中央授权机构ca随机选取t个准则授权机构交互,并构建di阶多项式pi表示全局准则域中的每一个准则;中央授权机构ca生成系统公钥pk;
其中,
步骤4:数据拥有者指定加密消息m与访问策略(m,ρ),其中m为l×n的矩阵,函数ρ将矩阵m中的第η行映射为准则ρ(η),η=1,2,…,l;
步骤5:加密者选择要分享的秘密s,并输出密文ct;
步骤5.1:加密者随机选择元素
步骤5.2:加密者设定累计权重阈值τ,构建访问策略中累计权重超过阈值τ的准则的所有组合的集合
步骤5.3:加密者输出密文ct;
c(1)=m·e(g,g)αs
c(2)=gs
其中,
步骤6:用户gid向云服务器发送访问加密数据请求,经过允许后,将密文ct加载至本地;用户gid向t个准则授权机构发送密钥生成请求,并获取t个准则授权机构返回的私钥
l=gu
其中,θc为用户gid随机选取的准则授权机构的索引,θc∈{1,2,…,nθ},c=1,2,…,t;cgid为用户gid满足的所有准则的集合;px为集合cgid中第x个准则对应于全局准则域中准则的索引,x=1,…,len(cgid);
步骤7:用户gid根据数据拥有者指定的访问策略(m,ρ),利用系统公共参数pp及用户密钥skgid解密密文ct;
步骤7.1:构建索引集合i={iη},集合i中的元素iη满足ρ(iη)∈cgid,
步骤7.2:计算向量
步骤7.3:从集合s中筛选出所有满足数据拥有者指定访问策略(m,ρ)的元素,构建集合
步骤7.4:获取集合t和集合s的交集w,
步骤7.5:计算数据拥有者指定加密消息m的明文;
m=c(1)·e(g,g)asu/j
其中,w为集合w中的元素,wt为元素w对应的集合t中元素的索引;ws为元素w对应的集合
本发明的有益效果在于:
本发明解决了单一权威机构负载过量及访问策略的灵活表达问题,采用基于准则的加密方法,加密方可根据自身需求制定访问策略,为其中包含的准则进行加权并设置累计权重阈值,访问者需同时满足策略和权重阈值才能成功解密,实现了较属性基加密而言更为灵活和细粒度的访问控制,同时该方法支持多授权机构,使方案的安全性得到有效提升。本发明采用基于准则的加密方法,将准则表示为多项式形式,每个准则所对应多项式的根表示用户满足该准则的情况集合,当用户拥有多项式的所有根时可以重构多项式从而进行解密,实现了比属性基加密更为细粒度的访问控制机制;同时支持对准则进行加权,提升了访问策略的灵活性;此外,多个授权机构间进行(t,n)-门限秘密共享,使得系统中不存在单一授权机构模式下所谓的性能瓶颈,同时提高了方案的安全性。
附图说明
图1是本发明的系统框架图。
图2是本发明的实施流程图。
具体实施方式
下面结合附图对本发明做进一步描述。
本发明涉及一种基于准则的多授权机构访问控制方法,属于网络与信息安全中的数据加密技术领域。本发明的目的是为了解决单一权威机构负载过量及访问策略的灵活表达问题而提供一种支持加权的多机构准则加密方法。该方法采用基于准则的加密,加密方可根据自身需求制定访问策略,为其中包含的准则进行加权并设置累计权重阈值,访问者需同时满足策略和权重阈值才能成功解密,实现了较属性基加密而言更为灵活和细粒度的访问控制,同时该方法支持多授权机构,使方案的安全性得到有效提升。
图1是本发明的框架图,其中涉及的主要实体及其功能如下:中央授权机构(ca)主要负责设置系统参数及生成系统公钥,接受用户及其他准则授权机构的注册请求,对申请者身份有效性进行验证并为其颁发用户身份认证(gid)或授权机构身份认证(aid);所有准则授权机构(aa)共同管理全局准则集合,其中每个aa同时负责授权机构公钥及用户私钥构件的生成;数据拥有者(do)负责指定访问策略,其中包括对准则进行加权和规定满足策略时需达到的权重阈值,并对数据进行加密;云服务器(cs)负责存储加密后的密文,并为用户提供下载服务;系统用户(user)持有自己的准则集合,可从云服务器(cs)下载密文,如果该用户(user)的准则集合满足加密密文对应的访问控制策略且累计权重高于规定的阈值,则可正确解密恢复明文信息。具体包含以下步骤:
1、中央授权机构ca生成系统公共参数pp,为申请注册的用户和授权机构颁发身份标识gid和aid。
2、准则授权机构aaθ间根据系统公共参数pp进行(t,n)-门限秘密共享,生成授权机构公钥pkθ和私钥skθ,保留skθ并将pkθ发送给中央授权机构ca。
3、ca随机选择t个授权机构的公钥,为每个准则计算对应的d次多项式,并生成系统公钥pk。
4、数据拥有者根据自身需求制定访问策略、设置策略中对应每个准则的权重,满足策略的累计权重阈值,以及系统公共参数pp和系统公钥pk进行加密,生成密文ct。
5、用户与任意t个准则授权机构逐一进行交互,提供用户身份标识gid和持有的准则集合cgid,并从每个授权机构aaθ获取对应的私钥构件,最终生成完整的用户私钥skgid。
6、系统用户利用公共参数pp和用户私钥skgid对密文进行解密,当且仅当私钥中的准则满足访问策略,且对应的权重之和高于规定阈值时,可以成功解密。
与现有技术相比,本发明的有益效果是:采用基于准则的加密方法,将准则表示为多项式形式,每个准则所对应多项式的根表示用户满足该准则的情况集合,当用户拥有多项式的所有根时可以重构多项式从而进行解密,实现了比属性基加密更为细粒度的访问控制机制;同时支持对准则进行加权,提升了访问策略的灵活性;此外,多个授权机构间进行(t,n)-门限秘密共享,使得系统中不存在单一授权机构模式下所谓的性能瓶颈,同时提高了方案的安全性。
图2为本发明所述的一种基于准则的多授权机构访问控制方法流程图。该方法的具体实施步骤包括:
globalsetup阶段:
ca运行群生成算法
aasetup阶段:
每个授权机构aaθ选择秘密
casetup阶段:
对于每个准则,中央授权机构ca运行n次迭代算法,每次选取di+1个随机数ai,d,ai,d-1,…,ai,0,其中i表示迭代次数,构建di阶多项式
中央授权机构ca随机选取
θb为中央授权机构ca随机选取的准则授权机构的索引,θb∈{1,2,…,nθ},b=1,2,…,t;di为第i个准则中包含的属性数量;
随后,ca取
encrypt阶段:
数据拥有者(do)设置访问策略(m,ρ),其中m是维度为l×n的矩阵,函数ρ将访问矩阵中的每一行映射为策略中的一个准则。随后,加密者为访问策略中每个准则指定权重,使用向量
c(1)=m·e(g,g)αs
c(2)=gs
最后输出密文
keygen阶段:用户需要根据公共参数pp中的阈值t,向t个准则授权机构申请密钥。具体执行过程如下:
令集合rootsx={x1,x2,…,xd}来表示多项式在x处的所有根。对于集合rootsx,授权机构aa生成向量:
令集合
用户与t个授权机构交互后,在本地进行密钥重构,计算
l=gu
随后计算:
其中,θc为用户gid随机选取的准则授权机构的索引,θc∈{1,2,…,nθ},c=1,2,…,t;cgid为用户gid满足的所有准则的集合;px为集合cgid中第x个准则对应于全局准则域中准则的索引,x=1,…,len(cgid);
最终,用户获得完整的密钥
decrypt阶段:解密过程包含两个子过程,其中,第一阶段判断与用户密钥相关的准则是否满足加密者指定的访问策略。第二阶段中,首先筛选集合s中满足访问策略的元素,筛选出的所有元素用集合
decrypt阶段1:
构建索引集合i={iη},集合i中的元素iη满足ρ(iη)∈cgid,
计算向量
decrypt阶段2:
令集合
最终,用户得到明文:m=c(1)·e(g,g)asu/j。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。