云计算多授权中心CP-ABE代理重加密方案

2022-06-24 02:35刘尚郭银章
网络与信息安全学报 2022年3期
关键词:私钥密文解密

刘尚,郭银章

(太原科技大学计算机科学与技术学院,山西 太原 030024)

0 引言

随着云计算服务领域的不断扩大,越来越多的企业和个人把数据外包存储在云端。但云服务提供商(CSP,cloud service provider)是半可信的,人们对存储的数据尤其是隐私数据的安全性和完整性未知[1],失去了对数据的掌控[2]。而密文访问控制技术可以解决数据的安全访问问题,采用密文策略基于属性加密(CP-ABE,ciphertext-policy attribute-based encryption)算法,实现了细粒度的访问控制。

但是,现有CP-ABE仍然存在加解密开销大、访问策略的变化导致重加密效率不高以及分享数据文件不便等问题。因此引入代理重加密技术实现数据安全高效的分享。1998年,Blaze等[3]提出代理重加密的概念,其允许一个半可信代理服务器(PS,proxy sever)在不解密出原文的情况下,将授权人(delegator)Alice公钥加密的密文转换为被授权人(delegatee)Bob公钥加密的密文,在解密过程中PS无法获取明文的任何信息。

CP-ABE方案中的数据属于主用访问结构加密数据,无须了解用户的身份,嵌入在用户私钥中的属性与数据属主设置的访问结构匹配时,用户可对数据进行访问,这是实现细粒度访问控制的有效手段之一[4]。将代理重加密技术引入CP-ABE中可实现策略转换,即代理服务器将一种访问策略加密的密文转换为另一种访问策略加密的密文,可以使满足后一种访问策略的用户进行数据的访问,实现数据分享,避免授权人想要分享给第三方时还需客户端下载、解密再重加密的麻烦,整个过程在代理服务器完成,利用云计算强大计算能力的同时又不会带来数据泄露的风险。

代理重加密方案大多是单属性授权机构为所有用户颁发密钥,存在权限过大,易成为系统的性能瓶颈等问题,因此本文提出多属性授权机构管理的方式。同时,现有的多属性授权机构下的代理重加密方案只满足应具有的部分特性,如单向性、非交互性,而不满足可重复性、可控制性与可验证性[5],因此基于文献[6]的方案,本文提出了支持重复可控特性的云计算多授权中心CP-ABE代理重加密方案。该方案具有如下特点。

1) 在多属性授权中心下支持代理重加密方案的5种特性。在重加密密钥中设置随机因子,代理无法得知随机因子也就无法进行解密,从而无法逆向重加密,实现了单向性;重加密密钥在授权者客户端独立执行,不需第三方交互,从而实现了非交互性;通过对随机因子密文的重加密实现了重复性;是否拥有初始密文中设置的密文子项可以决定是否能对重加密密文进行解密,实现了可控性;初始密文中的验证子项可对重加密结果进行验证,实现了可验证性,提高了方案的可用性。

2) 在多属性授权中心下结合外包加解密技术。在加密阶段,把一部分配对运算转移到云端;在解密阶段,利用盲化后的私钥对外包在云端的数据文件进行解密,而用户端只需要进行一次指数运算就可以解密,降低了用户的计算开销。

1 相关研究

访问控制是对用户资源的访问进行监控,根据访问者身份来决定其是否有访问权限,是云数据安全的第一道屏障[7],但在云计算环境中,访问者的身份未知,这时就需要对数据进行加密。2007年,Bethencourt等[8]提出CP-ABE方案,该方案引起了学者们广泛的研究。

代理重加密有许多方面的应用,如云计算、文件管理系统[9]、电子邮件[10]、医疗系统电子病历共享[11-12],为了抵抗量子攻击的基于格的代理重加密方案[13-14]等,这些应用实现了数据安全、高效的共享。

代理重加密不是独立存在与发展的,2009年,Liang等[15]将代理重加密技术引入 CP-ABE 中,提出密文策略基于属性代理重加密方案,解决了CP-ABE共享访问策略转换问题,但该方案仅具有单向性、非交互性和可重复性,只达到了选择明文安全。为提高方案的安全性,2015年,Liang[16]提出了具有适应性选择密文安全的代理重加密方案。Kawai[17]提出由授权中心外包生成重加密密钥,当访问结构改变时,用户执行很小计算并向授权中心提出生成重加密密钥请求,极大降低了用户的计算开销,但所有的重加密密钥都由一个授权中心生成,易造成授权中心的计算“瓶颈”,同时用户也失去了对重加密的掌控,此外,该方案仅具有单向性、非交互性。Ge等[18]提出了一种具有选择密文安全的密钥策略基于属性代理重加密方案,其支持任意单调的访问结构,但同样仅具有单向性、非交互性。2019年,冯朝胜等[5]提出了支持多种特性的基于属性代理重加密方案,该方案满足5种特性,但该方案只达到了选择明文安全。以上方案均是在单授权中心下构建的,存在系统规模不易扩充、安全和性能瓶颈以及权限过大等问题。

Chase[19]提出多授权机构属性基于加密方案,有效降低了用户密钥泄露的安全隐患。为了降低客户端计算开销,Chen等[20]提出了带预解密功能的多属性授权中心属性加密方案,适用于移动云环境。关志涛等[21]提出一种基于属性加密的多授权中心访问控制模型,降低了重加密属性数量,提高系统重加密效率,但仅具有单向性、非交互性。仲红等[22]提出了一种高效的、可验证的多授权机构属性基于加密方案,通过在线−离线加密技术,加解密流程的开销下降,验证外包解密的正确性的同时保护用户隐私。为解决多授权中心下合谋攻击和不同域共享数据的问题,杨小东等[23]将数据通过第三方处理降低了用户的计算开销,引入代理重加密方法实现了不同域之间以及相同域内用户数据分享,但该方案不支持可重复性、可控性。在移动网络社交中,罗思韬等[24]提出跨域环境下的代理重加密社交隐私保护方案,利用代理重加密技术实现访问结构策略的变换,扩大了交友范围,但该方案只达到了选择明文安全,且只满足单向性、非交互性。Ge[25]提出了一种可验证的、公平的基于属性的云数据共享代理重加密方案,但该代理重加密方案不满足可重复性与可控性。对于代理服务器是否存在数据泄露,Guo[26]等提出可问责的代理重加密方案,通过给代理和授权者设置不同的解密能力,通过输出结果确定恶意方,该方案仅满足单向性、非交互性与可验证性,同时不是基于属性的代理重加密方案,不能实现细粒度访问控制。

2 代理重加密方案

2.1 算法特性

(1)单向性

从Alice到Bob的解密不允许代理从Bob到Alice的重加密,即只允许一个方向的解密,不可逆向进行重加密。因为代理不知道重加密密钥中的随机因子,就不可以对数据执行解密操作,也就无法将Bob的访问策略(,)M''ρ变为Alice的访问策略(,)Mρ,即代理不能逆向进行重加密,具有单向性。

(2)非交互性

Alice可以使用Bob的公钥生成重加密密钥rk,此过程在用户中心授权者客户端执行,不需要任何受信任的第三方交互。

(3)可重复性

PS可以对相同密文进行多次重加密。将随机因子d嵌入重加密密钥组成部分中,并将编码E(gd)与新的访问结构相关组成重加密密钥的一部分。利用重加密密钥对密文进行重加密,生成的重加密密文由含有随机因子的密文和部分原始密文组成。若要对密文进行多次重加密,对随机因子的部分密文Crk进行重加密即可。

(4)可控性

数据属主(DO,data owner)可以控制数据是否能被进行重加密。在密文解密过程中,只有重加密密文解密时才需要原始密文子项C4参与,因此是否拥有该密文子项决定了密文是否能被重新加密。

(5)可验证性

用户可以验证重加密后的密文是否正确。若DO要验证重加密结果是否正确,则需要其结果A以及密文子项C0,C4发送给DO,验证:

若DO要验证外包数据解密的结果是否正确,则把密文子项C1、C3和预解密部分W进行解密并验证:

2.2 网络模型

多授权中心CP-ABE代理重加密方案网络模型如图1所示,包括中央授权机构(CA, central authority)、属性授权机构(AA,a ttributeauthority) 、数据属主(DO,d ataowner)、用户(User)、云服务提供商(CSP,CloudSeverProvider) 。服务器主要包括内容管理服务器、代理加密服务器、代理解密服务器、代理重加密服务器以及数据管理服务器。内容管理服务器分析处理User客户端提交的访问要求;代理加密服务器对DO的部分加密数据进行完整加密;代理解密服务器对符合访问策略的User要求访问的数据进行部分解密;代理重加密服务器可以在不解密出明文的条件下对加密的数据文件进行访问策略的转换,实现被授权者可以访问,达到了访问权限授权,实现了数据分享的目的;数据管理服务器用来存放加密后的数据文件。本文提出的支持重复可控特性的云计算多授权中心CP-ABE代理重加密方案流程如下。

图1 多授权中心CP-ABE代理重加密方案网络模型Figure 1 The model of CP-ABE proxy re-encryption scheme for cloud computing based on multi-authority

(1)数据生成

Step1:数据属主将数据用经典对称加密算法AES加密,得到数据密文AESC。

Step2:将对称加密的密钥key用访问结构加密,得到密钥密文m,上传到代理加密服务器之后得到完整的数据密文并存储在数据管理服务器中。

(2)数据访问

授权用户与被授权用户均可访问数据。授权用户访问数据的步骤如下。

Step1:授权用户向内容管理服务器发起访问请求,请求AESC和m。

Step2:内容管理服务器分析并提交请求至数据管理服务器,若用户私钥属性满足访问结构,判定其为合法用户,将m发送至代理解密服务器进行预解密,并将预解密结果通过内容管理服务器返回给授权用户。

被授权用户访问数据的步骤如下。

Step1:授权用户运行重加密密钥生成算法,将自身私钥和新的访问结构生成重加密密钥,发送给内容管理服务器,内容管理服务器分析再提交至代理重加密服务器,在此将利用重加密密钥与m生成重加密密文(此时的重加密密文是用新的访问结构加密的)。

Step2:生成的重加密密文被发送至代理解密服务器进行预解密,然后发送至内容管理服务器。被授权用户若访问数据,则可以通过自身私钥进行解密,因为被授权用户私钥属性满足新访问结构。

2.3 算法执行

本文所提算法执行流程如下,其关系如图2所示。

图2 各算法之间的关系Figure 2 The relation between algorithms

对算法按照执行主体进行分类如下。

(1)授权中心执行

1) Setup(k)→(MSK,PK,{s}),初始化算法由授权中心执行,输入安全参数k,输出主密钥MSK,系统公钥PK,各属性管理中心的标识s。

2) IDKeyGen(PK,MSK,IDu)→(PKu,SKu),用户身份私钥生成算法由CA执行。输入系统公钥PK,主密钥MSK,用户身份标识IDu,输出用户身份公钥PKu和用户身份私钥SKu。

(2)属性管理中心执行

1) AASetup(PK,s,i)→(APKi,ASKi),属性管理中心初始化算法由各个属性管理中心执行。输入系统公钥PK,该AA的标识s,以及该AA管理的属性i,输出属性i对应的属性公钥APKi和属性私钥ASKi。

2) AttrKeyGen(PK,S,{ASKi},PKu)→SKS,u,用户属性私钥生成算法由属性管理中心执行。输入系统公钥PK,用户的属性集S,属性私钥ASKi,用户身份公钥PKu,输出用户属性私钥SKS,u。

(3)数据属主执行

2) ReEncryptVerify(F,C0,C4)→(true/),重加密验证算法由用户执行。输入C(M',ρ')和密文组件C0、C4,若验证通过,则输出true,否则输出⊥。

(4)CSP加密代理服务器执行

3) OutDecrypt(C(M,ρ),TK)→Z,外包解密算法由CSP执行,输入密文C(M,ρ)和转换密钥TK,当S|=(M,ρ)时,输出部分解密密文Z,否则输出⊥。

(5)授权用户执行

1)ReKeyGen(PK,{APKi},SKu,SKS,u,S,(M',ρ'))→rkS→(M',ρ'),重加密密钥生成算法由授权用户(delegator)执行,输入系统公钥PK,属性公钥APKi,授权用户身份私钥SKu,用户属性私钥SKS,u,属性集S和新的LSSS访问结构(M',ρ'),输出一个重加密密钥rkS→(M',ρ')。若重加密密钥中,授权用户属性私钥SKS,u对应的属性集S,满足密文的访问结构(M,ρ)时,代理服务器可以利用该重加密密钥用于将访问结构(M,ρ)对应的密文向访问结构(M',ρ')对应的密文的替换。

2) OutKeyGen(SK,PKu)→(TK,DK),转换密钥生成算法由用户执行。输入用户私钥SK和身份公钥PKu,输出外包至CSP解密的转换密钥TK,以及最终用户解密时的密钥DK。

3) Dec(PK,DK,Z)→m,解密算法由授权用户执行,输入部分解密密文Z,用户保留的密钥DK,输出数据m。

(6)被授权用户执行

DecR(Z',,DK')→m重加密密文解密算法由被授权用户执行,如果被授权用户属性集满足新的访问结构(M',ρ'),即S|=(M',ρ'),则输出明文m,否则输出⊥。

正确性:对于任意属性集S∈U,任意访问结构(M,P)和任意明文m,若S|=(M,P),S'|=(M',P'),则有:

3 方案构造

本文提出的方案包括CA建立、AA建立、用户私钥生成、数据加密、外包加密、重加密密钥生成、密文重加密、重加密验证、转换密钥生成、外包解密以及解密(原始密文解密和重加密密文解密)。

(1)CA建立:Setup(k)

k为系统安全参数,CA选择阶为素数p的乘法循环群G和GT,生成元g,g1∈G。哈希函数,H2:GT→{0,1}2k,H3:{0,1}k→。选择经典的对称密码算法AES= (AES.Enc(⋅),AES.Dec(⋅))。设属性空间为U,属性最大个数为n,属性域为U={1,2,…,n}。系统中有k个属性管理中心AAk,每个AA管理互不交叉的属性组,一个AA可管理多个属性。

CA随机选择元素P,g2∈G,α∈Zp,利用伪随机函数为k个属性管理中心{AA}k生成标识s1,s2,…,sk。CA生成系统公钥如下:PK=,主密钥MSK=(gα)。

(2)AA建立:AASetup(PK,s,a)

对AAk管理的每一个属性i,生成随机值ti=PRFsk(i)∈Zp,生成属性i的私钥ASKi=ti,属性i的公钥。

(3)用户私钥生成

1) 用户身份私钥生成:IDKeyGen(PK, MSK,ID)。

CA对注册的每一个新用户,分配一个唯一身份标识符u∈Zp,CA随机选择一个对应值mku∈Zp,生成用户的身份公钥,用户身份私钥。

2) 用户属性私钥生成:AttrKeyGen(PK,S,{ASKi},PKu)

AA为合法用户输出属性i对应的属性私钥。

用户的属性集私钥SKS,u={SKi,u,∀i∈S}。

(4)数据加密:Enc(PK,m,{APKi},(M,ρ))

DO根据对称加密算法AES=(AES.Enc(⋅), AES.Dec(⋅)),产生对称密钥key∈{0,1}k,选择随机值β∈{0,1}k,令s=H1(key,β)。

DO对key进行加密,定义访问结构(M,ρ)(M是一个l×n的矩阵,ρ是矩阵每一行Mi到属性ρ(i)的映射关系)。随机选择一个向量v=(s,v2,v3,…,vn),其中,v2,v3,…,vn∈。随机选择z∈,,C1=H2(e(g,g)αs)⊕(key||β)。随机选择r1,r2,…,rn∈,C2=gs,C3=,∀i∈[1,l],。将,Z,以及数据密文CAES发送给CSP。部分密文:,。

(6)重加密密钥生成:ReKeyGen(PK, SK,(M′,ρ′)) 。

随机选择β′,δ∈{0,1}k,令s′=H1(β′,δ),选择随机向量,对i=1…l′,令是l′×n′的矩阵M′第i行的向量),,,。

(7)密文重加密:ReEncrypt(PK,C(M,ρ),

Crk=,选择常数ωi,使。计算:

(8)重加密验证

User使用重加密后的A,验证因子,C0,C4对重加密结果进行正确性验证。

(9)转换密钥生成:OutKeyGen(SK)

(10)外包解密:OutDecrypt(C(M,ρ),TK)

选择ωi,使。

(11)解密

对于被重加密的密文,按照上面的解密算法对Crk解密得到E(gd),解码得gd。设I′⊂{1,2,…,l′}被定义为I′={i:ρ′(i)∈S′},是一个常数集,是M′对秘密s′的共享秘密份额,。代理解密服务器计算:

4 安全性分析

判定性q-parallelBDHE(bilineardiffie-Hellman exponent)假设。给定阶为素数p的群G,g是G的一个生成元,随机选取a,s,b1,…,bq∈Zp和一个随机元素T∈GT。判定性q-parallelBDHE 问题描述为:如果给定敌手γ,

判断T是还是群GT中的一个随机元素R。敌手使用多项式算法B攻破上述假设的优势为:。

定义1如果不存在概率多项式时间(PPT)算法以不可忽略的优势解决判定性q-parallelBDHE 问题,则称q-parallelBDHE 问题是困难的。

定理1假设判定性q-parallelBDHE假设在(G,GT)上成立,那么不存在敌手A能在一个多项式时间内选择访问结构(M*,ρ*)攻破本文方案,本文方案在标准模型下可证IND-sAS-CCA-Or (selevetiveaccessstructureandchooseciphertext securityatoriginalciphertext)安全。

证明假设存在A能在IND-sAS- CCA-Or中以ε=AdvA的优势攻破本文方案,则可根据判定性q-parallelBDHE 假设,判断出还是属于TG的随机值。挑战者C和敌手A按下面方式进行游戏。

(1)初始化阶段

A将要挑战的访问结构**(,)Mρ发送给挑战者C,M*是一个l*×n*的矩阵,l*,n*≤q。A公布攻破的属性管理中心AAW′。C输入参数γ和T。

(2)系统建立阶段

A随机选择α′∈Zp,设置α=α′+αq+1,则有。C运行初始化算法将PK=e(g,g)发送给A。C运行AASetup算法,分为两种情况。若管理属性x被攻破,则C随机选择zx,,否则⋅。

对于未被攻破的AA,C仅将对应的APK发送给A;对于已被攻破的属性管理中心,C把该属性管理中心的APK和ASK都发送给A。

A进行如下询问。

1)H1(m,β):若在表ListH1中存在(m,β,s),则返回s给A;否则选择随机数s∈Zp,将(m,β,s)记录在表ListH1中并返回s给A。

2)H2(R):若在表ListH2中存在(R,r),则返回r给A;否则选择随机数r∈{0,1}2k,将(R,r)记录在表ListH2中并返回r给A。

3)H3(δ):若在表ListH3中存在(δ,ζ),则返回r给A;否则选择随机数,将(δ,ζ)记录在表ListH3中并返回ζ给A。

(3)查询阶段1

1) A向C提出请求Qsk(u,S),且对同一用户u只能进行一次查询。一个用户的私钥由SKu和SKa,u两部分组成。

由于用户S|=(M*,ρ*),因此式(12)、式(13)构造PKu和SKu:

2) A向C提出查询请求Qrk(u,S,(M',ρ')),若元组已经存在于对应的表中,C则把返回给A。否则,若S|=(M*,ρ*),且S'|=(M',ρ'),已被询问过的对应私钥不能再次询问,若没有询问过且对应的私钥不存在于重加密密钥列表里,构建如下:A随机选择,,记录到表ListRK中并返回给C。

3) A向C提出重加密密文查询:Qre(u,S,(M′,ρ′),C(M,ρ))。

(4)挑战阶段

A给C提交消息m0和m1,C随机选择一个mb(b=0或1),加密并返回密文,给A。

(5)查询阶段2

继续查询阶段1中的询问。

(6)猜测阶段

A对b进行猜测输出b'∈{0,1},若猜测正确,即b'=b,得到;否则得到的是GT中的随机T。

5 性能分析

下面从计算开销和存储开销两方面对本文所提方案进行分析。假设系统中的属性个数为N,属性管理中心AA的数量为k,Np为共享访问策略中的属性数。其中,双线性运算B和指数运算E运行时间最长(用ET、EG分别表示GT群和G群的指数运算),其他计算开销远小于这两个运算的计算开销可被忽略为0,所以用B和E来衡量性能。

5.1计算开销

表1列举并对比了几种经典方案的用户客户端计算开销,下面进行详细分析。

用户客户端加密数据,包括用对称密钥key加密数据文件,以及使用基于密文策略的属性加密算法对key进行加密得到密钥密文。前者的计算复杂度与数据文件的大小有关,而后者的计算开销如下:密文中Z,C0,C1,C2,C3,C4需执行6次指数运算,ρ中每个属性ρ(i)需执行两次指数运算,计算开销为(2Np+5)EG+ET。云服务器为LSSS共享访问结构中每个属性ρ(i)执行一次指数运算,开销为NpEG。

生成重加密密钥时,加密随机值δ并生成重加密密钥。主要计算开销为(2Np+8)B+ET,还需执行一次对编码E(gd)的加密过程。

CSP重加密时,计算共享策略的每个属性ρ(i)都参与两次B运算和一次E运算,计算A时,分子还需要进行两次双线性运算,计算开销为(2Np+2)B+NpET。CSP为新访问结构中的每个属性ρ(i)执行一次E运算的开销为NpEG,PS的计算代价为(2Np+2)B+NpET+NpEG。User对重加密结果进行正确性验证,计算开销为B+ET+EG。

文件解密时使用CP-ABE解密算法解密密钥密文,得到对称密钥key,再利用key进行对称解密即可得到数据文件。对称解密的复杂度与数据文件的大小有关,而前者的计算开销分为原始密文的解密和重加密密文解密两种情况。

原始密文解密时,User对Z执行一次E运算,验证需要一次E运算,故总代价为ET+EG。

重加密密文解密时,对随机因子进行一次解密,User需进行两次GT上的E运算,一次B运算,验证需再进行一次G上的E运算,所以在用户客户端的计算开销为2ET+EG+B。CSP解密流程与重加密流程类似,计算开销为NpET+2NpB。

5.2 存储开销

存储开销主要包括以下3个阶段。

用户私钥生成:包括用户身份私钥和用户属性私钥。身份私钥和属性私钥分别由一个G群元素和sN个G群元素组成。

文件加密:DO将数据文件用对称密钥key进行加密后,将密钥密文和数据密文传送给CSP。密钥密文由2Np+4个G群元素构成。方案中需要增加验证消息,故增加了一个G群上的元素。

重加密密文:PS对密文进行重加密生成的重加密密文由两个G群元素和一个GT群元素组成,由于需要验证正确性增加了一个G群元素。

私钥与密文存储开销对比如表2所示。

6 结束语

云计算环境存在大量密文流通、转换的场景,代理重加密技术可以在不解密密文的情况下实现访问策略的转换,从而实现对数据访问权限的传递。基于密文策略属性代理重加密方案大多只满足理想方案特性中的部分特性如:单向性、非交互性,而对可重复性、可控性和可验证性的研究不足。基于密文策略属性代理多重加密方法,一般只能解决理想方案特性中的一部分特征,如单向性、非交互性等,但对可重复性、可控性和可验证性方面的研究还不够。管理方案一般在单属性授权中心下,面临着密钥泄露、中央授权机构权限过大且易出现性能瓶颈等问题,为分散中央授权机构的管理权力,减少工作量,引入了多属性管理中心管理用户不同的属性组,用户私钥由各个属性管理中心发放,在一定限度上增强了稳定性。因此,本文提出了支持重复可控特性的云计算多授权中心CP-ABE代理重加密方案,该方案在多属性授权中心框架下构建且支持大多数代理重加密方案不满足的重复性、可控性与可验证性,同时,为了降低客户端计算开销使用了外包加解密技术,利用云计算强大的计算能力,分担了客户端的计算代价。且通过安全性证明,本文方案达到了选择密文安全。

猜你喜欢
私钥密文解密
解密电视剧 人世间
一种支持动态更新的可排名密文搜索方案
比特币的安全性到底有多高
群智感知网络环境下的一种高效安全数据聚合方案*
基于模糊数学的通信网络密文信息差错恢复
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
炫词解密
支持多跳的多策略属性基全同态短密文加密方案
程序员把7500枚比特币扔掉损失巨大
炫词解密