一种面向云存储的多机构加权准则加密方法与流程

文档序号:22971065发布日期:2020-11-19 21:55阅读:183来源:国知局
一种面向云存储的多机构加权准则加密方法与流程

本发明属于网络与信息安全中的数据加密技术领域,具体涉及一种面向云存储的多机构加权准则加密方法。



背景技术:

随着云计算技术的快速发展,企业或个人纷纷将本地数据或文件外包到云服务器中,这将导致由应用程序和设备产生的数据量大幅度增长。与此同时,云计算为消费者提供了丰富的计算与存储资源,消费者可以根据自身需求方便的获取计算服务或访问云端数据。相比于本地的服务器,云服务器提供了更灵活的资源扩容能力。可以预见,云计算是一项很有前途的技术,它将为我们未来的社会生活提供极大的便利。

然而,云服务器通常被认为是半可信的,云服务器可能会将个人信息、公司财务数据、政府文件等敏感信息泄露给公众,对数据所有者构成巨大威胁。因此,云环境下用户数据的访问控制便成为一项关键性问题。为了保护云端数据的隐私安全,一种行之有效的方式是将数据加密后以密文形式存储到云端。这样可保证用户在享受云存储便利的同时,不再担心数据隐私信息遭到泄露。基于属性的加密(abe)是一种有效的加密工具,可以为用户提供细粒度的访问控制策略。按照性质划分,abe可以划分为两种形式:密钥策略属性基加密(kp-abe)和密文策略属性基加密(cp-abe)。在cp-abe中,数据拥有者可以构造访问策略并将其嵌入到密文中,而用户的密钥与其自身相关的属性相关联。当且仅当用户的属性满足访问策略时,用户才能解密消息。因此,cp-abe更符合云环境的需求。

传统cp-abe方案存在两个主要问题。一方面,只有一个权限机构管理整个属性域并生成密钥。这限制了方案的安全性和有效性。另一方面,访问策略中的所有属性被认为是同等重要的,即所有属性之间的权重是相等的。但在实际的应用程序场景中,访问结构中的属性应该具有不同的重要性,比如用户的健康状况比他们的年龄更敏感。



技术实现要素:

本发明的目的在于克服密钥生成的安全问题与访问策略的灵活表达问题,提供有效解决密钥生成仅由单一机构参与完成的安全问题,降低单一权威机构的计算负载与存储消耗的一种面向云存储的多机构加权准则加密方法。

本发明的目的通过如下技术方案来实现:包括以下步骤:

步骤1:中央授权机构ca运行群生成算法得到群参数中央授权机构ca为每个属性机构aaθ生成全局身份标识aidθ,为用户生成全局身份标识gid,并建立系统公共参数pp;

其中,e表示映射g为群的生成元;p为群和群的阶;n为由中央授权机构ca设置的全局准则域大小;t为由中央授权机构ca设置的阈值,用户至少需要与t个属性机构交互才能获得密钥;nθ为属性机构的数量;为标记集合,标记集合中的元素从整数群中随机选取得到,

步骤2:每个属性机构aaθ分配得到主秘密的一部分αθ,并利用公共参数pp计算自身的公钥pkθ与私钥skθ;

步骤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θ;

步骤3:中央授权机构ca随机选取t个属性机构交互,并构建di阶多项式pi表示全局准则域中的每一个准则;中央授权机构ca为系统生成公钥pk;

其中,为中央授权机构ca随机选取的随机数;θb为中央授权机构ca随机选取的属性机构的索引,θb∈{1,2,…,nθ},b=1,2,…,t;di为全局准则域中第i个准则中包含的属性数量;为中央授权机构ca随机选取的di+1个随机数,{h1,…,hn}为中央授权机构ca从群中随机选取的n个随机数,

步骤4:数据拥有者指定加密消息m与访问策略(m,ρ),其中m为l×n的矩阵,函数ρ将矩阵m中的第η行映射为准则ρ(η),η=1,2,…,l;

步骤5:加密者选择要分享的秘密s,并输出密文ct;

步骤5.1:加密者随机选择元素构建向量并为访问策略(m,ρ)中的每个准则指定权重,构建向量表示要分享的秘密;π为访问策略中不重复的准则数量;

步骤5.2:加密者设定累计权重阈值τ,构建访问策略中累计权重超过阈值τ的准则的所有组合的集合σ表示集合t中元素的索引,σ=1,2,…,len(t);为集合t中第σ个组合中第j个元素对应于访问策略中准则的索引;μη表示访问策略中累计权重超过阈值τ的准则组合的最大长度;j=1,2,…,μη;

步骤5.3:加密者输出密文ct;

c(1)=m·e(g,g)αs

c(2)=gs

其中,mη为由矩阵m中第η行元素构成的向量;

步骤6:用户gid向云服务器发送访问加密数据请求,经过允许后,将密文ct加载至本地;用户gid向t个属性机构发送密钥生成请求,并获取t个属性机构返回的私钥用户在本地进行密钥重构操作,得到用户密钥skgid;

l=gu

其中,θc为用户gid随机选取的属性机构的索引,θc∈{1,2,…,nθ},c=1,2,…,t;cgid为用户gid满足的所有准则的集合;px为集合cgid中第x个准则对应于全局准则域中准则的索引,x=1,…,len(cgid);为从全局准则域中的第px个准则中随机选取的属性;s为集合中元素所有组合的集合;为集合s中第γ个组合中第f个元素对应于全局准则域中准则的索引;vγ表示集合s中元素对应的准则组合的最大长度;f=1,2,…,vγ;为属性机构选择的随机数;

步骤7:用户gid根据数据拥有者指定的访问策略(m,ρ),利用系统公共参数pp及用户密钥skgid解密密文ct;

步骤7.1:构建索引集合i={iη},集合i中的元素iη满足ρ(iη)∈cgid,若不存在满足ρ(iη)∈cgid,则判断用户的准则不满足数据拥有者指定的访问策略,停止计算并返回错误消息;

步骤7.2:计算向量根据索引集合i={iη}中元素的值,选择向量中对应索引值为iη的元素,构建集合

步骤7.3:从集合s中筛选出所有满足数据拥有者指定访问策略(m,ρ)的元素,构建集合

步骤7.4:获取集合t和集合s的交集w,若集合t和集合的交集为空集,则停止计算并返回错误消息;

步骤7.5:计算数据拥有者指定加密消息m的明文;

m=c(1)·e(g,g)asu/j

其中,w为集合w中的元素,wt为元素w对应的集合t中元素的索引;ws为元素w对应的集合中元素的索引。

本发明的有益效果在于:

本发明一方面解决了密钥生成阶段仅由单个机构参与实现而导致的安全与效率问题,另一方面,由于用户可以灵活的为每个准则设置不同的权重,使得访问策略表达更加适用于实际应用场景。

本发明采用多个属性机构共同管理全局准则域,并为用户生成解密密钥。解决了传统属性加密方案用户密钥仅由单一机构生成而带来的安全问题。同时,降低了密钥生成机构服务器的计算资源消耗。

本发明在传统属性加密方案的基础上,在访问策略中引入准则的概念。该方法将每个准则表示为多项式形式,而多项式的根对应于一个属性。用户满足准则的条件为用户至少拥有多项式的一个根。与此同时,用户可以为每个准则赋予不同的权重,使得访问策略更加符合实际应用需求。

附图说明

图1是本发明的框架图。

图2是本发明的流程图。

具体实施方式

下面结合附图对本发明做进一步描述。

本发明的目的是为了克服密钥生成的安全问题与访问策略的灵活表达问题而提供一种面向云存储的多机构加权准则加密方法。该方法有效解决了密钥生成仅由单一机构参与完成的安全问题,降低了单一权威机构的计算负载与存储消耗;本发明将准则权重引入到方法中,数据加密者可以根据应用需求构建更加灵活的访问控制策略。

图1为本发明的框架图,本发明涉及如下五个实体:中央授权机构(ca),属性授权机构(aa),数据拥有者(do),用户(user)及云服务器(cs)。其中,ca是一个完全受信的机构,负责为系统生成公共参数与系统公钥。同时,当用户或属性机构请求注册时,ca验证他们身份的合法性,并分别为用户与属性机构分配全局唯一身份标识gid及aid;aa负责生成机构公钥及管理全局准则域;do负责对数据的加密操作。具体而言,do负责指定加密数据的访问控制策略,并根据自身需求,为策略中的每项准则设置权重;cs为系统中的用户提供存储服务。具体而言,cs存储do上传的密文数据,同时接受用户对密文数据的下载请求;user拥有准则集合,可以向cs请求密文数据,当准则满足访问策略且权重超过累计阈值时可以获得正确的明文数据。

本发明提出了一种面向云存储的多机构加权准则加密方法,包含如下步骤:

1、中央授权机构ca为每个属性机构及用户生成全局身份标识aid与gid。随后建立系统公共参数pp。

2、每个属性机构aaθ利用ca所生成的公共参数计算属性机构公钥pkθ与私钥skθ,并将机构公钥发送给ca。

3、ca随机选取t个属性机构交互,获取他们的属性机构公钥。随后,建立多项式用于表示全局准则。最终,ca为系统生成公钥pk。

4、数据拥有者选择访问策略,并为策略中的每个准则指定相应的权重;同时设置累计权重阈值τ。最后利用上述参数加密消息,并将密文ct上传至云服务器。

5、用户gid向云服务器发送访问加密数据请求,经过允许后,将密文加载至本地。随后向t个属性机构发送密钥生成请求,每个属性机构返回skθ,gid。最终,用户在本地进行密钥重构操作,得到用户密钥skgid。

6、用户利用公共参数及密钥解密密文。当密钥中的准则集合满足访问策略且准则权重超过累计权重阈值τ时,成功返回明文消息;否则返回错误消息。

与传统技术相比,本方法一方面解决了密钥生成阶段仅由单个机构参与实现而导致的安全与效率问题。另一方面,由于用户可以灵活的为每个准则设置不同的权重,使得访问策略表达更加适用于实际应用场景。

本方案采用多个属性机构共同管理全局准则域,并为用户生成解密密钥。解决了传统属性加密方案用户密钥仅由单一机构生成而带来的安全问题。同时,降低了密钥生成机构服务器的计算资源消耗。

在传统属性加密方案的基础上,在访问策略中引入准则的概念。该方法将每个准则表示为多项式形式,而多项式的根对应于一个属性。用户满足准则的条件为用户至少拥有多项式的一个根。与此同时,用户可以为每个准则赋予不同的权重,使得访问策略更加符合实际应用需求。

图2为本发明所述的一种面向云存储的多机构加权准则加密方法流程图。该方法的具体实施步骤包括:

globalsetup阶段:

ca运行群生成算法得到群参数使得映射满足其中g为群的生成元,p为两个群的阶;ca设置全局准则域大小为n,设置阈值t,使得用户至少需要与t个属性机构交互可以获得密钥,并为所有准则选取标记集合此外,为属性机构及用户标记全局身份标识并标记属性机构个数为nθ;生成公共参数

aasetup阶段:

属性机构利用门限秘密共享技术为其他机构分配一定的秘密份额。每个aaθ首先选择秘密使得主秘密满足随后,属性机构随机选择t-1阶多项式qθ(x)满足αθ=qθ(0)。aaθ计算生成nθ个共享份额,其中包括aaθ自身的共享份额sθθ=qθ(aidθ),以及为其他nθ-1个机构aaξ(ξ=1,2,…,θ-1,θ+1,…,nθ)生成的共享份额sθξ=qθ(aidξ)。上述过程完成后,每个机构aaθ均收到由其他机构发送的nθ-1个共享份额sξθ=qξ(aidθ)和自己计算生成的sθθ,共获得nθ个共享份额sξθ(ξ=1,2,…,nθ)。最后,aaθ计算密钥与公钥

casetup阶段:

ca随机选取并计算ga。对于每个准则,中央授权机构ca运行n次迭代算法,每次选取di+1个随机数其中i表示迭代次数,构建di阶多项式其中di为该准则中所包含的属性个数。n个多项式用来表示全局准则。并利用公共参数中的标记每个多项式。这样,第i个多项式可以用向量描述为:

中央授权机构ca随机取同时,随机选择t个属性机构公钥,计算

其中,θb为中央授权机构ca随机选取的属性机构的索引,θb∈{1,2,…,nθ},b=1,2,…,t。

随后,对于i∈[1,n]进行n次迭代,ca计算得到最终返回公钥:

encrypt阶段:

数据拥有者(do)指定加密消息m与访问策略(m,ρ),其中m大小为l×n的矩阵,函数ρ将访问矩阵中的每一行mη映射为一个策略中的准则。然后,加密者随机选择元素构建向量其中表示要分享的秘密。对于η∈[1,l],计算上述过程完成后,加密者为访问策略中每个准则指定权重,用向量表示。随后根据累计权重值τ,计算集合累计权重超过阈值τ的其中μη表示准则η的最大可能组合,表示全局准则域的索引。对于η∈[1,l],加密者计算密文:

c(1)=m·e(g,g)αs,c(2)=gs

最后输出密文

keygen阶段:用户需要根据公共参数pp中阈值t,向不少于t个属性机构发起密钥请求。具体执行过程如下:

cgid为用户gid满足的所有准则的集合;px为集合cgid中第x个准则对应于全局准则域中准则的索引,x=1,…,len(cgid);为从全局准则域中的第px个准则中随机选取的属性;s为集合中元素所有组合的集合;为集合s中第γ个组合中第f个元素对应于全局准则域中准则的索引;vγ表示集合s中元素对应的准则组合的最大长度;f=1,2,…,vγ;为属性机构选择的随机数;用户与t个属性机构交互后,在本地重构密钥,计算得到l=gu,θc为用户gid随机选取的属性机构的索引,θc∈{1,2,…,nθ},c=1,2,…,t;随后计算:

l=gu

最终,用户得到密钥

decrypt阶段:解密阶段包含两个子阶段,第一阶段需要判断用户密钥中的准则是否满足数据拥有者所指定的访问策略。在第二阶段,首先需要筛选出集合s中满足访问策略的元素,筛选出的所有元素用集合表示。随后计算集合最终利用集合w进行第二次解密,判定用户满足的所有准则是否超过加密者给定的累计阈值。具体流程如下:

decrypt阶段1:

若集合cgid中元素满足则判定准则满足数据拥有者指定的访问策略;获取集合cgid中满足数据拥有者指定的访问策略的所有准则的索引,构建集合i={iη},用户计算向量其中m-1表示访问策略中矩阵m的逆矩阵。并进一步集合i中对应的索引值,选择向量中对应索引的元素,表示为集合使得若{λη}是对应访问策略的有效份额。那么用户可以计算得到秘密s=∑η∈iωηλη。随后用户计算过程如下:

decrypt阶段2:

令集合对于w∈w,令wt与ws分别表示集合t与集合的索引。用户计算如下:

最终,用户计算明文:m=c(1)·e(g,g)asu/j。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1