基于身份多条件代理重加密的文件分级访问控制方案

2021-12-07 10:09杨鸿飞董秀则
计算机应用 2021年11期
关键词:私钥密文密钥

李 莉,杨鸿飞,董秀则

(1.北京电子科技学院电子与通信工程系,北京 100070;2.西安电子科技大学计算机科学与技术学院,西安 710071)

0 引言

随着现代社会信息化和云计算服务的发展,用户将工作和生活中产生的大量电子文件远程存储到云端并共享给其他用户,然而云计算在为用户提供方便的同时也带来安全隐患[1]。首先,云计算环境是不完全可信的,为保护数据隐私,用户需要将文件加密后存储,并通过解密密钥实现密文访问。其次,身份认证是保证云服务安全的前提,云服务提供方需要对用户进行身份认证,以确保用户身份的正确性和合法性。最后,数据访问控制是云服务安全的核心,利用云平台对数据的访问控制,用户可以安全地将文件存储到云平台,并按权限对文件进行访问。

传统公钥加密体制需要用到证书管理机构(Certificate Authority,CA)对用户进行身份认证,CA 需要维护大量的用户数字证书。Shamir[2]提出了基于身份加密(Identity-Based Encryption,IBE)的思想。在IBE中,用户身份信息是公钥,用户私钥是由私钥生成器(Private Key Generator,PKG)利用用户身份信息产生的。当用户Alice 想要将文件File 共享给用户Bob时,Alice 可以利用其私钥对文件File 进行签名,并利用Bob 的身份信息对文件File 进行加密,然后将密文上传到云端。用户Bob 从云端获取Alice 的密文,利用Bob 的私钥解密文件,利用Alice的身份信息对签名进行验证。因此,IBE不需要将用户身份的验证交于第三方。假如用户Charlie 也想要获取文件File,Alice 必须利用Charlie 的身份信息重新加密文件File,再上传到云端,这造成了用户负担加重和资源浪费。Blaze 等[3]提出了代理重加密(Proxy Re-Encryption,PRE)的概念,PRE 允许一个半可信的代理利用一个重加密密钥将用户Alice 公钥加密的密文转换为用户Bob 公钥加密的密文,转换前后密文所对应的明文保持不变,并且代理也无法获取关于明文的任何信息。PRE中定义了多个重要属性[4]:

1)非交互性。是指被授权者和代理不参与重加密密钥的生成,其生成仅由授权者参与。

2)单向性。是指代理使用重加密密钥只能对密文进行单向转换,即密文可以从授权者转化到被授权者,而不能从被授权者转化到授权者。与单向性对应的是双向性,双向性是指重加密密钥可以将A 和B 两个用户的密文相互转换。双向重加密密钥可以由两个单向重加密密钥构造,因此单向的方案更具有一般性。

3)抗共谋攻击。是指即使被授权者和代理共谋,也不能获得授权者的私钥。

Green 等[5]将IBE 和PRE 进行结合,设计了第一个基于身份的代理重加密(Identity-Based PRE,IBPRE)方案,代理可以直接将用户Alice 身份信息加密的密文转换为用户Bob 身份信息加密的密文,并且满足PRE 的特性,即转换前后密文对应的明文保持不变,代理无法获得关于明文的任何信息。用户利用IBPRE 技术在云服务平台进行文件共享时,不需要将文件下载并解密,再重新加密上传,只需要生成重加密密钥交给云服务器,由云服务器进行密文转换即可。这一技术极大地减少了用户的计算开销,同时也减少了用户与云服务器、用户与用户之间的交互。随后,Shao 等[6]提出了一种基于身份的条件代理重加密(Identity-Based Conditional PRE,IBCPRE)方案,代理可以使用与条件ε相关的重加密密钥把在一个身份和条件ε下加密的密文转换为具有相同明文的另一身份下加密的密文。

在传统IBCPRE 中,数据拥有者生成条件重加密密钥来限制代理服务器的重加密行为,而没有限制用户的访问权限。在实际场景中,用户将大量文件密态托管到云平台后,由于不同文件有不同的访问群体,文件存在不同的访问级别,云平台需要对文件进行分类存储。在2020 年7 月发布的《数据安全法》草案中,也要求健全数据分级分类规则,实现分级分类管理。当用户访问云平台上分级文件时,云平台需要首先确认用户访问权限,只有满足权限的用户才可以解密相应密文。用户的访问权限由第三方权威机构确认,这样一方面减轻数据拥有者的负担,另一方可以使云平台方便管理用户权限。本文针对文件分级管理的应用需求,提出了一种基于身份多条件代理重加密(Identity-Based Multi-Conditional PRE,IBMCPRE)的文件分级访问控制方案,主要工作如下:1)引入可信分级管理单元,确定用户等级并生成用户重加密密钥;2)重加密密钥中嵌入代表用户访问权限的条件集;3)密文中嵌入文件等级条件,若密文条件在重加密密钥条件集内,则代理可以对密文进行重加密;4)用户上传文件之后,文件所有权不再仅属于用户自身,而是属于对文件有访问权限的所有用户;5)代理服务器和分级管理单元合作可以撤销用户对某一级别文件的访问权限;6)用户向服务器上传文件时不需公开自己身份。

1 相关工作

基于密文策略属性的加密(Ciphertext-Policy Attribute-Based Encryption,CP-ABE)常用于加密数据的访问控制。在CP-ABE中,若用户私钥内的属性与密文内的访问结构匹配成功,即可解密得到明文。在实际应用中,CP-ABE 不可避免地面临用户权限的更换。目前,支持用户属性更新的CP-ABE方案[7-8]在更新用户属性时,需要更新用户私钥和初始密文,增加了计算开销和对用户的影响。因此,可以借助CP-ABE实现条件代理重加密(Conditional PRE,CPRE)算法,使用户属性与重加密密钥相关,在更新用户属性时,只需更新与用户相关的重加密密钥。

在现有的条件代理重加密中,文献[9]首次利用条件来限制代理重加密权限,但是此方案需要额外的算法利用用户私钥生成条件私钥;文献[6]将CPRE 和IBPRE 结合起来,提出了第一个IBCPRE 方案,文献[10]提出安全性满足选择密文安全的IBCPRE 方案,这两个方案中,代理在拥有嵌入相同条件的密文和重加密密钥时才能完成重加密,但是这两个方案都不能实现对访问权限的细粒度控制。文献[11]将访问结构当作条件,首次实现了细粒度的CPRE 方案,文献[12]在文献[11]的基础上,提出了细粒度的IBCPRE 方案,在原始密文内嵌入条件集W,在重加密密钥中嵌入访问控制策略Γ,只有在条件集W满足访问控制策略Γ时,代理才可以完成正确的重加密,但是在这种方案中,重加密密钥一旦生成就不可更改,不能实现对用户访问权限的更新和撤销。近几年,还出现了各种不同的条件代理重加密方案。文献[13]提出了一种新的细粒度IBCPRE 算法,可以将原始密文重加密为拥有相同属性的一组用户可以解密的密文;文献[14]提出了一种多条件的广播代理重加密方案,在重加密密钥和原始密文中嵌入两个不同的条件集,若两个条件集内相同元素的数量大于门限值,则代理可以完成正确的重加密,但是这两个方案都没有考虑接收方解密权限的撤销问题。文献[15]提出了一种可以进行密文演变的条件代理重加密方案,在用户私钥泄露后更新私钥,还需要更新密文以适应新的私钥。在这些条件代理重加密中,为了实现共享,数据拥有者需要为每个接收方生成重加密密钥,每个用户也会拥有多个指向自己的重加密密钥。相较于CP-ABE,直接利用这些条件代理重加密方案实现文件分级访问控制,只会加重用户负担。

针对现有访问控制方案中用户访问权限更新复杂的问题,本文考虑设计了一种方案,使系统内每个用户拥有唯一一个指向自己的重加密密钥,此重加密密钥与用户的访问权限相关联。本文方案基于IBCPRE 思想,并引入可信分级管理单元,分级管理单元首先对系统内用户进行分级,同一等级用户具有相同的访问权限,接着为每个用户生成重加密密钥,并在用户等级发生变化时,及时更新用户重加密密钥。最终,本文方案实现了既保留条件限制代理的重加密权限,又可以对用户进行分级访问控制。

2 分级访问控制策略

2.1 分级管理

在本文所提方案中,需要对用户和文件进行分级[16],且用户等级和文件等级一一对应。用户和文件的分级管理阐述如下:

1)用户分级管理。用户级别由其所在实际场景决定,由分级管理单元确定用户等级。在此假设用户分为A、B、C、D四个等级,A等级最高,D等级最低。

2)文件分级管理。文件等级与用户等级一一对应,也分为A、B、C、D 四个等级。用户只能生成并上传与自身等级相一致的文件,例如,B 等级用户只能上传B 等级文件。用户可以访问自身等级以下的文件,A 等级用户可以访问A、B、C、D四个等级的文件,B 等级用户可以访问B、C、D 三个等级的文件,C 等级的用户能访问C、D 等级的文件,D 等级用户只能访问D 等级文件。当用户访问并修改文件后,此文件等级就转变为用户的等级。

2.2 访问控制策略

访问控制策略用来实现上述分级管理。用户在加密文件时,将自身等级S嵌入密文CT,即Encrypt(P,M,S) →CT,其中,P为分级管理单元身份公钥,M为明文文件。分级管理单元将用户访问条件集Γ嵌入重加密密钥RKID,Γ,访问条件集Γ表示用户可访问的密文等级集合。

假设用户重加密密钥RKID,Γ内的条件集为Γ={Γ1,Γ2,…,Γm},密文CT嵌入条件S。若S∈Γ,则代理服务器可以利用RKID,Γ对CT进行重加密;否则,代理无法完成重加密操作。

3 IB-MCPRE文件分级访问控制方案

3.1 系统模型

图1 为本文方案总体架构,主要包含分级管理单元(Hierarchical Management Unit,HMU)、代理服务器(Proxy Serve,PS)、密码卡(Password Card,PC)、数据拥有者(Data Owner,DO)、用户(Users)五个部分,各部分的主要功能如下。

图1 所提方案总体架构Fig.1 Overall architecture of proposed scheme

1)分级管理单元(HMU)。

HMU 是可信的权威机构,用户上传身份信息ID到HMU进行注册。HMU 首先根据用户身份信息ID生成用户私钥SKID,并将私钥SKID和等级信息S返回给用户,接着生成嵌入用户访问条件集Γ的重加密密钥RKID,Γ,最终将用户信息{ID,RKID,Γ}上传到代理服务器。HMU 实时监测系统内已注册用户的等级信息,一旦用户等级发生改变,HMU 需要及时对用户信息进行更新。

2)数据拥有者(DO)。

DO 利用HMU 身份公钥P对文件进行加密,并在密文CT中嵌入自己的等级条件S,然后将密文CT上传到PS。

3)用户(Users)。

Users 可向PS 发送访问某一文件的请求,若Users 有权限访问此文件,则可获得重加密密文CTID,利用自己的私钥SKID可以解密CTID。

4)代理服务器(PS)。

PS 是半可信机构,文件在PS 上是密态存储的。PS 负责维护用户列表(User List,UL)和文件列表(File List,FL),UL包含用户身份信息、用户重加密密钥,FL包含密文和文件等级。当Users 想要访问某一文件时,PS 查询UL确认用户重加密密钥,查询FL确认文件等级S,若S∈Γ,则Users 就有权访问此文件,接着PS 就将用户重加密密钥和密文CT上传到密码卡。

5)密码卡(PC)。

PC负责帮助PS完成密文转换,得到重加密密文CTID。

在本文方案中,分级管理单元利用用户身份ID和用户访问条件集Γ生成用户重加密密钥RKID,Γ,并将RKID,Γ上传到代理服务器PS。假设Alice 利用分级管理单元公钥P加密明文文件得到密文CT,并将CT上传到PS,CT中嵌入了Alice 的等级条件S。当Bob 向服务器发出下载密文CT的请求时,服务器需要判断密文CT 的条件S是否在Bob 访问条件集Γ内,若在,则利用Bob 的重加密密钥对CT进行重加密得到内不再包含等级条件,并且只能由Bob 的私钥解密。

在传统代理重加密方案中,重加密密钥由DO 生成并上传到PS,本文方案引入完全可信的HMU,一方面生成用户私钥,另一方面生成针对用户的重加密密钥。这样,既降低了DO 的计算开销,同时又可以利用HMU 生成的重加密密钥对用户的访问权限进行管理。在CP-ABE 中,由于用户访问权限与用户私钥相关联,所以更新用户访问权限时,需要对用户的私钥进行更换,此外,还需要更新与用户原私钥相关的密文,否则用户仍然可以利用原私钥解密此密文。与CP-ABE相比,本文方案在撤销用户访问权限时,不更新用户私钥,也不需要用户参与,只需由HMU 重新生成用户重加密密钥并上传到PS,这样减少了对用户的直接影响,并且不需要改变原始密文,减轻了计算负担。

3.2 基于身份多条件代理重加密算法

3.2.1 初始化算法

Setup(1λ) →(mpk,msk):此算法由分级管理单元运行。

1)输入安全参数λ,选取长度为λ的素数q,阶为q乘法循环 群G1,G2,g是G1的生成元,定义双线性映 射e:G1×G1→G2,令={1,2,…,q-1}。

2)随机选择α∈,令g1=gα。

4)定义伪随机函数(Pseudo Random Function,PRF):PRF:G1×G2→{0,1}λ1,其中λ1是PRF的安全参数,令λ1>λ。

5)定义抗碰撞哈希函数H:G2→G1。

6)定义强不可伪造一次签名(One Time Signature,OTS)算法:(Ks,Kv) ←Sign.KeyGen(1λ),生成签名密钥Ks,验证密钥Kv。σ←Sign(Ks,M),利用Ks对文件M进行签名得到σ。1/0 ←Verify(Kv,σ,M),利用Kv验证签名σ,若是有效签名则输出1,否则输出0。

7)输出主密钥msk=,主公钥mpk=(λ,λ1,g,g1,g2,,u3,0,U1,U2,U3,PRF,H,OTS)。

3.2.2 密钥生成算法

Extract(mpk,msk,ID) →SKID:此算法由分级管理单元运行。

1)随机选择r∈,利用用户身份ID∈{0,1}n和主密钥msk=,生成用户私钥:

其中VID是用户身份ID中二进制位为1的所有位置i的集合。

2)定义分级管理单元身份为P∈{0,1}n,其对应私钥为:

其中VP是分级管理单元身份P中二进制位为1 的所有位置i的集合。

3.2.3 加密算法

Encrypt(mpk,P,M,S) →CT:此算法由数据拥有者运行,其中S为条件。

1)运行(Ks,Kv) ←Sign.KeyGen(1λ)。

2)随机选择t∈,σ∈G2,文件M∈{0,1}λ,计算部分密文C0,C1,C2,C3,C4,C5,C6,其中ξS、χKv、VP分别是S、Kv、P中二进制位为1的所有位置i的集合。

输出密文CT=(S,Kv,C0,C1,C2,C3,C4,C5,C6)。

3.2.4 重加密密钥生成算法

ReKeyGen(mpk,SKP,IDu,Γ) →RKIDu,Γ:此算法由分级管理单元运行。

3.2.5 重加密算法

1)验证密文CT内的条件S是否在重加密密钥的访问策略Γ内,若不在,则停止重加密;否则记录S在Γ中的位置j。

2)计算式(1)~(4)来验证密文的有效性和完整性。

若式(1)~(4)任意一个不成立,则停止以下步骤。

3)计算:

4)输出重加密密文:

3.2.6 解密算法

Decrypt(mpk,SKIDu,CTIDu)→M:此算法由数据访问者运行。

1)验证式(5)~(7)。

3.2.7 用户访问权限更新算法

3.2.8 用户访问权限撤销算法

Revoke(IDu,UL) →UL:此算法由HMU 和PS 合作运行。HMU 将被撤销用户身份IDu上传到PS,PS 输出更新后的用户信息列表UL=UL} 。

4 访问控制流程

4.1 用户注册流程

用户需要与分级管理单元交互,获取自身私钥和等级信息。分级管理单元确定用户访问权限并生成用户重加密密钥。用户注册流程如下:

1)用户上传自己的身份信息ID到分级管理单元。

2)分级管理单元验证用户身份,确认用户等级并生成用户私钥,将等级信息和私钥返回给用户。

3)分级管理单元运行ReKeyGen(mpk,SKP,IDu,Γ)算法生成用户重加密密钥,接着将上传到代理服务器。

5)用户注册完成。

4.2 文件上传流程

用户注册完成后,就可以上传与自身等级相同的等级文件,文件在上传过程中处于密态。文件上传流程如下:

1)DO 利用Encrypt(mpk,P,M,S) →CT算法加密文件M,得到密文CT。

2)DO将密文CT上传到代理服务器。

3)代理服务器验证式(1)~(2),若不成立,则放弃此密文;否则,进行步骤4)。

4)代理服务器将密文CT和文件等级S保存在FL中。文件等级与DO等级保持一致。

5)文件上传完成。

4.3 文件访问流程

用户注册完成后,可以访问其权限内的密文文件。文件访问流程如下:

4.4 用户权限更新流程

当用户等级发生变化时,分级管理单元需要更新用户的访问权限,用户权限更新流程如下:

1)分级管理单元对用户等级进行实时监测,若用户的等级发生变化,则运行ReKeyGen(mpk,SKP,IDu,Γ)算法为其生成新的重加密密钥。

4)用户权限更新完成。

4.5 用户权限撤销流程

当用户注销时,分级管理单元需要及时撤销用户访问权限,用户权限撤销流程如下:

1)若用户离开系统,需对用户进行注销,分级管理单元向代理服务器上传撤销权限的用户ID。

2)代理服务器运行Revoke(IDu,UL)算法,删除UL中此用户的信息。

3)用户权限撤销完成。

5 方案性能分析

5.1 安全性分析

5.1.1 CCA安全性

文献[12]中IBCPRE 算法已证明为标准模型下选择密文攻击(Chosen Ciphertext Attack,CCA)安全,但是进行重加密计算时,将原密文C2与访问树根节点值相乘得到了重加密密文,在解密时,利用σ=得到秘密值σ,进一步可以得到明文,其中Fr用来限制代理的重加密权限。若代理服务器在进行重加密操作时,与数据访问者共谋,得到重加密密文C'2=σ·e(C4,H2(θ2)),那么在无需Fr的情况下,数据访问者也能够解密得到明文。这样就不能限制代理的重加密权限,也就不能实现对文件的访问控制。

本文方案仅对文献[12]的IBCPRE 算法的重加密密钥和重加密密文的计算方法进行了修改,修改后,若代理不进行完整的重加密,则用户就不能对重加密密文进行正确解密。基于文献[12]算法的构造和理论,本文的算法基于DBDH(Decisional Bilinear Diffie-Hellman)的困难性,在标准模型下达到CCA安全。

5.1.2 数据机密性

5.1.3 抗共谋攻击

5.2 效率分析

在本文的文件分级访问控制模型中,用户只需要进行加解密操作,数据拥有者需要进行一次加密,并将密文上传到代理服务器,数据访问者需要从代理服务器下载重加密密文并进行一次解密即可获得相应明文。假设t1为群内指数运算的时间,t2为双线性对运算的时间,用户在加密时所需时间为5t1+t2,在解密时所需时间为3t2。不同于传统代理重加密,用户不需要参与重加密密钥的生成,在增加额外计算量的前提下,降低了用户的计算负担。与文献[7]的CP-ABE 方案相比,本文方案在属性撤销阶段,HMU 只需要将用户重加密密钥内相应的属性值删除,再重新上传重加密密钥即可,无需进行用户密钥和初始密文的更新。并且只有当用户申请访问某一密文时,代理服务器才对相应的密文进行重加密,整个重加密操作可以由密码卡进行,代理服务器只需进行密文的存储与传输。

5.3 不同访问控制方案的对比

将本文的方案与其他方案在访问结构、访问策略控制者、访问权限是否可更新、上传者是否匿名等方面进行对比分析,结果如表1所示。

表1 本文方案与现有访问控制方案特点对比Tab.1 Characteristic comparison of proposed scheme and existing access control schemes

文献[17]提出了一种云存储加密数据共享方案,数据所有者利用对称加密算法加密明文文件,并利用嵌入访问树结构的密文策略属性基加密算法加密对称密钥,该算法由数据拥有者控制用户访问权限,但是不能实现访问权限的撤销。文献[18]提出了数据共享方案利用对称密钥加密密文,利用属性基加密算法加密对称密钥,并引入可信第三方来管理用户访问权限,可以实现属性撤销,但是需要第三方可信机构更新被撤销属性的用户私钥,还需要更新与被撤销属性相关的所有密文。文献[19]提出了一种基于多要素访问控制条件的代理重加密算法,该算法中重加密密钥是由重加密密钥管理服务器基于用户的客观访问条件生成的,重加密密钥管理服务器在判断数据访问者为合法用户时才生成重加密密钥,而用户的访问权限是由数据所有者确定的。在本文方案中,HMU 首先利用Extract 算法生成用户私钥,接着利用ReKeyGen 算法生成用户重加密密钥,最后利用Replace 和Revoke 算法对用户的权限进行更新和撤销,解决了CP-ABE中撤销属性需要更新用户私钥和原始密文以及传统IBCPRE不适用于文件访问控制等问题。这样,在不影响DO 和其他用户的前提下,实现了对系统内加密文件的分级访问控制,用户可以利用其私钥解密所有满足其访问权限的密文。此外,DO 向PS 上传密文时,无需表明自己身份,密文是由分级管理单元公钥加密得到的,保证了DO的身份隐私。

6 结语

针对现有访问控制方案存在用户权限更新复杂等问题,本文提出了一种基于身份多条件代理重加密的共享文件分级访问控制方案,考虑到对用户访问权限的控制、更新和撤销,引入可信的分级管理单元来管理用户的访问权限,有效减轻了用户负担。在此基础上,提出了适用于此方案的IBMCPRE 算法,该算法在保证安全性的前提下,在重加密密钥中加入分级权限条件集,限制用户的访问权限。因此,本文方案在不更新用户私钥和原始密文的前提下,就可以对用户访问权限更新和撤销,但本文方案的访问结构为多条件,所以,后续将着重研究细粒度访问结构的文件分级访问控制方案。

猜你喜欢
私钥密文密钥
一种支持动态更新的可排名密文搜索方案
比特币的安全性到底有多高
幻中邂逅之金色密钥
幻中邂逅之金色密钥
基于模糊数学的通信网络密文信息差错恢复
嵌入式异构物联网密文数据动态捕获方法
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
程序员把7500枚比特币扔掉损失巨大
一种新的密文策略的属性基加密方案研究
Android密钥库简析