摘要
条件代理重加密(Conditional PRE)是一种新的公钥原语,它可以在不向组外成员公开其明文或解密密钥的情况下实现组内机密数据的共享。在此之前,CPRE在云环境下的群组数据共享方面做了一些努力。在这方面,最先进的CPRE方案的主要缺点是,每当组成员发生变化时,数据的发起者需要下载云中所有现有的数据,用新的条件值再次加密它们,并将它们上传到云中。因此,它们不适合云环境下群组成员之间的大数据安全共享。在本文中,我们引入了一种新的CPRE方案,称为外包CPRE方案(O-CPRE),它大大降低了客户端的开销。当组成员发生变化时,在O-CPRE中,发起者只需要选择一个新的条件值并上传到云端。此外,O-CPRE将在初始设置阶段和将从客户端到云的每条消息解密时转移一部分客户端开销。因此,O-CPRE比现有的其他方案更适合云环境下的安全大数据共享。索引术语-云计算、云存储、大数据、代理重加密、条件代理重加密、效率。
介绍
云计算最近的进步极大地改变了当前信息技术行业的形态。这种新的计算范式使公司能够从云服务提供商购买所需的按次付费计算资源,这通常比建立自己的计算环境[1]便宜。然而,要使这一创新模式更具可行性,至关重要的是要保证公司在公共云中的数据安全,不受包括云提供商[2]-[4]在内的任何类型的对手的攻击。为了保护存储在云存储服务器上的数据的机密性,可以在发送给服务器之前使用安全密钥进行加密,从服务器下载后再进行解密。但是,这种策略在云环境中效率非常低,因为用户的开销很大。同时,由于存在保密性问题,云服务器也不适合代表用户获取加解密权限。如果数据是在一组成员不一定是静态的用户之间共享的,那么设计高效和安全的云存储的难题就会变得更加复杂。
解决安全问题的数据共享组在云环境中,代理的概念重加密(前)介绍了文献[5]-[7],其中一个数据发起者ui代表的特权为另一个用户对一个m加密的数据的ui,uj (a)的云存储等云不能看到m使用特权的明文,但(b) uj可以从重加密过的恢复明文消息(由云)有自己的私钥。这种策略将用户开销优雅地转移到云环境,但现有的PRE方案存在一种常见的安全问题,即滥用重新加密。详细地说,一旦ui向云存储发送了一个新的组成员uj的重新加密(特权)密钥,uj就可以与云存储操作员勾结,解密来自其他组成员的所有旧消息和来自ui的消息,即使uj没有访问这些消息的授权。
为了解决这个问题,我们引入了条件代理重加密(CPRE)。在CPRE中,ui使用特定的条件值(针对整个组)创建加密消息以及重新加密密钥(针对组中的每个成员)。具体来说,给定一个组,ui首先选择一个条件值w,然后使用w和它自己的私钥对要共享的消息进行加密。同时,ui使用w和成员的公钥为组中的每个成员创建一个重新加密密钥。然后将加密后的消息w和重加密密钥发送到云存储中进行消息重加密和分发,如PRE。更改组的成员关系后,ui选择一个新的条件值w',并对更改组后生成的新消息和云存储中的现有消息重复此过程。这样,任何被撤销的成员离开组后都不能访问新消息,而任何新成员都不能访问旧消息。
在[15]中,Son等人指出,现有的CPRE如果组的规模较大,且组的成员频繁变化,会出现严重的效率问题。这是因为每当成员关系发生变化时,每个数据发起者都会新生成每个组成员的重新加密密钥,必须使用这个新的条件值再次加密云中的现有消息。为了减轻开销,他们提出了一种高效的CPRE (E-CPRE),在这种CPRE中,每当组成员发生变化时,数据发起者需要选择一个新的条件值并将其发送到云服务器,但不需要为其他组成员创建和上传重新加密的密钥。当组成员关系发生变化时,ECPRE比现有的CPRE工作效率更高,因为它减少了数据发起者计算新的重加密密钥并将它们上传到云上的开销。然而,CPRE和E-CPRE都需要使用新的条件值对云上现有的消息进行加密并上传。这就导致了云环境下大数据组的安全共享效率低下。
本文介绍了E-CPRE的一个改进版本,即外包CPRE方案(O-CPRE)。与E-CPRE等现有的CPRE方案不同,O-CPRE中,当组成员变更时,消息发起者需要执行的任务仅为:
- 计算条件值更改键(CCK),其中包含一个新的条件值,以及
-
将CCK发送到云存储。然后,云存储将使用CCK转换现有的密文,以便使用新的条件值对密文内的消息进行加密。
显然,更改组成员关系后,消息发起者的开销大大减少了。此外,O-CPRE相对于E-CPRE(以及其他现有的CPRE方案)的优势正在随着云存储中数据量的增加而扩大。因此,O-CPRE方案在云环境下的安全群组大数据群组共享方面比现有的其他CPRE方案更为理想。
本文的其余部分组织如下。第二节讨论我们的系统和安全模型。在第三节中,我们介绍一些初步情况。我们的主要贡献是在第四节提出了具有更低用户开销的新条件代理重加密方案。第五节对所提方案的安全性和效率进行了分析。最后,我们在第六节对本文进行了总结。
系统模型和安全模型
系统模型
图一表示了云计算中数据共享的系统模型。我们定义了三个不同的实体,它们可以被如下识别。
- 外包服务器:这个实体在我们的系统模型中扮演着重要的角色。外包服务器(Outsourcing Server)是为了克服典型CPRE在重加密密钥生成和解密阶段需要客户端大量过载操作的缺点,而完成委托的昂贵操作。此外,我们假设一个诚实但好奇的系统模型。该模型中的外包服务器尽可能地运行给定的协议,同时关注客户端的数据。因此,存在查看数据内容或窃听数据传输过程等被动攻击的可能性。由于云服务器可以扮演外包服务器的角色,在下面的描述中,我们将交替使用外包服务器和云服务器。
- 云存储:以按次计费的方式向用户提供计算和存储资源。云存储维护用户的密文,根据客户的请求重新加密并发送数据。在下面的描述中,我们将交替使用“云存储”和“云”。
-
客户端:这个实体有大量的数据文件存储在云中,依赖云进行数据维护和计算。客户可以是个人消费者,也可以是组织。客户端可以通过各种设备连接到云。它包括资源有限的移动设备,如智能手机或平板电脑。因此,将大数据文件存储在云存储中,可以减轻维护和计算的负担。在我们的环境中,客户端既可以是数据文件的发起者,也可以是数据共享的目的地。
安全模型
我们认为该数据共享方案在满足以下条件时是安全的。
- 没有多项式时间提取器可以通过部分解密恢复原始数据文件。此条件适用于外包服务器。
- 不存在通过部分重加密密钥计算生成重加密密钥的多项式时间提取器。此条件适用于外包服务器。
- 没有多项式时间提取器可以恢复条件值或插入另一个条件值到密文。这个条件应用于云。
预备知识
符号
本文使用的表示法如表1所示。
假设
在本文中,我们建立以下两个假设。
- 假设1:所提出的方案假设客户端和云之间没有勾结。客户端不发送和接收向云解密数据所需的信息。
- 假设2:建议的方案假设客户端不与其他客户端共享其条件值。
加密的背景
接下来,我们介绍两个重要的定义。
定义1(双线性映射)。双线性映射是具有以下属性的映射。
- 可计算:存在一种高效可计算的算法来计算e,
- 双线性:对于所有和,, 而且
-
非简并的:,其中g是G的生成元。
定义2(DBDH)。群中的决策双线性Diffie-Hellman(DBDH)问题是,给定一个元组,且未知,无论。如果,多项式时间算法B在求解组的DBDH问题上具有优势。
其中概率取的随机选择,g在G中的随机选择,以及B消费的随机比特。
提出的安全外包CPRE
当一个条件值需要改变时,发起者必须生成新的条件值。然后,发起者生成包含新的条件值的CCK并发送给云。注意,CCK是通过指数运算生成的,因此条件值由离散对数问题保护。一旦云存储接收到CCK,它将执行与CCK的配对操作,并将其与存储的密文相乘,以更改旧的条件值。由于云可以使用CCK转换所有包含旧条件值的密文,所以初始者不需要像其他现有的CPRE方案那样手动检索密文来更改条件值。
此外,O-CPRE将现有CPRE中传统上由客户端负担的操作部分委托给了云,并通过两种方式进一步降低了客户端的开销。首先,我们的方案委托重新加密密钥生成过程。详细介绍了一种新的两阶段重加密策略。第一阶段由云执行,第二阶段由发起者在收到第一阶段的结果后执行。虽然在系统初始设置时只执行一次重新加密密钥生成过程,但我们的方案可以通过将指数计算委托给云来显著减少客户端的负担。其次,我们的方案将解密过程的一部分从客户端转移到云上。也就是说,根据客户端的部分解密请求,云服务器将与客户端的公钥和客户端的部分重新加密密钥执行配对操作。客户端收到来自云的部分解密结果后,只需进行一次指数运算即可完成解密。
设置
在输入安全参数1k时,设置过程首先确定。接下来,云选择,以及5个哈希函数。全局参数为。
客户端生成公钥/私钥对。客户取,计算。私钥为,公钥为。
重加密的密钥生成
为了将重加密密钥生成过程外包,我们构造了重加密密钥可以通过两个不同的阶段生成。首先,外包服务器计算需要大量指数运算的部分计算。然后客户端通过一次乘法生成重新加密密钥。该方法大大降低了移动客户端的计算开销。
作为密文发起者的Ui可以生成重新加密密钥,这意味着允许Uj共享数据。客户端通过发出请求部分重加密计算,然后外包服务器计算以下部分重加密密钥:。
在接收到此消息后,Ui完成重新加密密钥:
数据加密
CPRE方案有两个加密级别。第一级加密生成不允许重新加密的密文。因此,生成的第一级密文不带条件值。第二级加密生成允许重新加密的密文。第二级密文包含用于控制解密权限的条件值。客户端可以根据数据的重要性选择加密级别。第一级密文可以通过以下步骤生成。
Ui首先选取和。客户端计算出,生成第一级密文为
。
为了实现数据共享,客户端生成第二级密文的过程如下:
,
,
然后,客户端将这些加密的数据发送到云。
数据重加密
云可以根据Uj的请求对CTi进行重新加密。加密过程如下:
改变条件值
在以前的CPRE方案中,客户端必须接收到自己的密文,然后用新的条件值再次加密,以改变条件值。这对客户来说是繁琐的。因此,我们设计了一个系统,云可以通过客户端发出的条件值改变键来改变条件值。要改变条件值,客户端使用新生成的条件值w'执行如下操作:
客户端将和发送到云。现在,云通过执行以下过程生成新的C2,该C2具有新发布的条件值:
,
部分解密
当然,客户端可以用整个解密过程对密文进行解密,也可以委托外包服务器计算部分解密过程。对于部分解密,我们采用条件值作为保密因子。由于在我们的方案中外包服务器无法获得条件值,这个秘密因素使部分解密成为可能,而不暴露私钥或原始消息。对于客户端部分解密请求,外包服务器计算如下过程:
外包服务器发送CTpart给Uj。
数据解密
用户界面可以通过以下过程解密第一级密文。首先,Ui进行计算:
和。
接下来,Ui检查以确认数据的有效性。
Uj可以通过以下过程对部分解密的密文进行解密。Uj只有在知道条件值的情况下才能获得明文。
拟议方案分析
安全
本节对第4.2节安全模型上提出的方法的安全性进行了分析。该方法的主要目的是通过CPRE实现数据共享过程中繁重的计算开销的委托。因此,我们需要证明所提出的方案可以安全地委托CPRE的计算。
定理1。该方案在DBDH假设下对选择密文攻击是安全的。
证明。为了增强方案的鲁棒性,我们利用了[8]、[10]中建立子重加密密钥之间关系的思想。该方案基于n商双线性Diffie-Hellman假设设计,通过计算DBDH的复杂度证明了该方案的安全性。重加密密钥由两个值(rk1, rk2)组成,通过将加到rk1,形成rk1和rk2之间的关系。这样,该方案对所选择的密文攻击具有鲁棒性。在[8]中,他们已经证明了对选择密文攻击的安全性,我们不再详细重复验证。
定理2。外包服务器无法通过执行多个部分重新加密来恢复明文。
证明。为了实现安全的外包解密,我们使用条件值作为盲因子,该盲因子是用户组之间的共享秘密。通过这种盲目因素,我们的方案能够将部分解密操作委托给外包服务器,而不会产生私钥和明文泄露。此外,我们认为在DBDH假设下,条件值很难恢复。
定理3。外包服务器无法通过执行多个部分重新加密密钥计算来生成新的重新加密密钥。
证明。在我们的方案中,第一个重加密密钥rk1由两部分组成。第一部分由外包服务器计算,第二部分由客户端计算。客户端可以通过合并两个部分来完成重新加密密钥。在这里,rk1的第一部分只有公共价值。外包服务器为CPRE的健壮性增加了一个哈希值。尽管外包服务器有很多这种公共值和重新加密密钥,但它需要知道额外的数据来生成新的重新加密密钥。外包服务器必须知道s或r,并且在离散对数问题[12]难度下是安全的。另外,我们假设外包服务器的诚实但好奇系统,外包服务器通过RKpart发送有效性值。因此,我们省略了关于伪造RKpart的证明,即外包服务器使用另一个公钥而不是请求的公钥生成RKpart。
定理4。云不能通过携带多个条件值变化过程恢复该条件值,也不能向密文中插入其他条件值。
证明。客户端必须发送gW'和rW'-W来更改条件值。要锻造一个条件值,云需要计算rx-w(其中x是云想要锻造的条件值)。但是,在没有r的情况下,云从gW恢复W并计算rx-w在计算上是不可能的。
效率
我们设计O-CPRE的主要目的是在移动云中进行数据共享时,将客户端(尤其是数据发起者)的繁重计算开销委托给云存储。该方案最大的优点是通过将任务部分委托给服务器,大大降低了重新加密密钥生成、解密和条件值更改的昂贵成本。显然,从客户的角度来看,O-CPRE比现有的CPRE方案执行效率更高。在表2中,我们给出了CPRE、ECPRE和O-CPRE计算开销比较的结果。在该表中,tp、te、tm、th分别表示双线性配对、取幂、乘法和哈希的计算代价。
该方案的重加密密钥生成过程的计算开销与CPRE方案相似。由于客户端可以重用重加密密钥中用于完成重加密密钥的部分,因此在我们的方案中,客户端生成更多重加密密钥的效率更高。
图2给出了重新加密密钥生成、解密和改变一个条件值方面的整体仿真结果。我们的实验是在Intel core (TM) i7处理器上实现的,运行在1.5 GHZ、8.00 GB RAM和SSD Serial ATA 3.0 Gbit/s驱动器上,并带有16MB的缓冲区。所有算法在Linux Ubuntu 12.04 LTS 32位下使用C语言实现。我们的代码使用基于配对的加密(PBC)库版本0.5.12。所有实验结果为10次试验的平均值。图2 (a)是CPRE方案在生成重加密密钥方面的比较。由于该方案可以部分委托重加密密钥生成过程,在客户端可以提供较高的效率。我们的方案可以委托大约92.5%的计算量来重新生成加密密钥。由于发起者需要接收其他客户端的公钥来生成重新加密密钥。在我们的方案中,发起者接收云计算的部分重加密密钥而不是公钥。因此,总体通信开销与以前的CPRE方案类似。图2 (b)显示了CPRE方案在解密点上的比较。利用该方案的部分解密函数,我们可以委托约61.7%的计算量进行解密。图2 (c)为条件值变化点的对比。我们的方案可以委托大约30%的计算CCK。这种委托意味着使用CPRE为移动客户端共享数据所需的计算量更少。
结论
本文提出了一种外包CPRE方案,可以在移动云环境下的数据共享过程中安全地委派繁重的计算任务。该方案引入了外包服务器,利用其两个特点进行委托操作。首先,可以将部分重加密密钥的生成和解密阶段委托给外包服务器。其次,利用CCK将条件值变化阶段委托给云服务器,这是该方案的一种新方法。通过将CPRE的三个阶段委托给客户,我们的方案可以大大减轻客户的负担。