刘雪艳,贺啸梅,芦婷婷,罗玉坤
(西北师范大学 数学与统计学院,兰州 730070)
随着计算机技术的快速发展和网络数据的海量增加,云存储技术成为云计算不可或缺的一部分,它允许用户把大量的数据外包存储在云中,从而减少用户存储空间管理和计算的成本,但此时外包数据的安全也受到极大威胁,不可信的云存储提供者可能为了利益而篡改或删除数据,也有可能因为硬件/软件故障而造成数据丢失。因此,用户需要确认存储在云中的数据是未被篡改且被云存储器完整存储的[1]。
为有效验证外包数据的完整性,研究者相继提出很多审计方案。当用户想要检验数据的完整性时,第三方审计者 (Third Party Auditor,TPA)能够代替用户在不下载所有数据的前提下对数据进行完整性的检验。如果TPA在执行审计过程中没有删除用户的任何秘密值,则称为公开审计。文献[2]提出公开审计的方案,而为提高性能和安全性,文献[3-5]提出了新的审计方案,文献[3]方案支持无需第三方审计者帮助的公开审计,且不会向第三方审计者泄露用户的隐私信息,文献[4]提出一种灵活的分布式存储完整性审计机制,文献[5]提出一种安全的云存储系统支持保护隐私的公开审计方案。此外,文献[6-8]方案则是在前人所做工作基础上的改进。文献[6]针对半可信的第三方审计者,提出一种用户可以与云服务提供者进行交互,由用户自己完成数据完整性验证的方案,文献[7]提出一种改进的基于LBT树形认证结构的数据完整性公开审计方案,文献[8]提出已知数据伪造改造的概念,利用基于等级的认证跳表设计了相应的改进方案。之后,针对动态群组隐私保护的审计方案[9-10]和面向公有云及多管理者群组的公开审计方案[11]相继被提出。上述审计方案都是基于传统的公钥密码体制,由证书授权方产生用户的公私钥对,通过绑定用户的公钥来产生对应的私钥,而产生的证书都是由证书授权方管理,会出现证书管理问题,包括密钥的分发、存储、撤销和认证,并且密钥生成中心(Key Generation Center,KGC)有能力产生任何实体的签名,有可能会泄露用户的身份信息。针对证书管理问题,一系列基于身份的公开审计方案[12-14]被提出。文献[12]提出一种新的基于身份的聚合签名公开审计方案,解决了存储用户在上传数据前需要先颁发证书从而产生巨大成本的问题,并在其安全模型下是可证明安全的,文献[13]采用一种有效的基于证书的公钥设置密钥管理方案,将基于身份的聚合签名与公开验证相结合,构造了可证明数据完整性协议,减少了TPA单个任务的审计时间,文献[14]则提出针对多个云环境的基于身份的审计方案。
然而,上述方案都存在密钥托管问题,用户的私钥完全是由KGC产生,而KGC有可能不是完全可信的,可能会泄露用户的隐私信息。在这种情况下,该问题可以通过设定KGC是完全可信的实体而得以解决,这在文献[15-16]的方案中有所体现。文献[17]提出了无证书的公开审计(Certificateless Public Key Cryptography,CLPKC)的概念。在CLPKC中,用户的私钥包含两部分,一部分是由用户自己生成的,另一部分是由KGC生成的。因此,CLPKC解决了传统公钥密码体制中的证书管理和密钥托管问题。基于先前的工作,文献[18]提出了新的签名机制——无证书签名机制,该机制由无块验证和同态认证来实现,是首个通过无证书签名产生的无证书公开审计方案。该方案的提出解决了传统密码体制中的证书管理问题和基于身份公开审计中的密钥托管问题,但其签名方案不能抵抗第一类型攻击,即攻击者可以在他的意愿下替换用户的公钥,并且当用户出现恶意行为时,不支持用户追踪的功能。
本文提出一种无证书的公开审计方案,采用同态技术完成多用户的审计请求,从而减少计算量,提高审计效率。同时利用ELGamal体制对恶意用户身份进行追踪,以保证数据和签名用户身份的隐私性。
本文方案的系统模型如图1所示,其中包含4个实体:KGC,TPA,云存储器提供者(Cloud Server Provider,CSP),群组用户(Users)。每类实体的主要功能描述如下:
1)KGC:KGC是完全可信的,它生成系统主密钥、公共参数以及产生用户和群管理者的部分公私钥对。
2)TPA:TPA是完全可信的,它负责验证存储在CSP中数据的完整性,在验证过程中不会获得任何具体的数据信息。
3)CSP:CSP是半可信的,它提供足量的存储空间和检索功能,但同时它是好奇的,并会在多种动机的促使下返回错误的数据,造成机密数据的泄露。
4)Users:群组用户包含一个群管理者和其他用户,管理者具有注册和追踪用户的权利,通过管理者完成注册的用户,可以访问和更新共享数据。
图1 系统模型Fig.1 System model
本文方案需要满足以下性质:
1)公开审计:公开审计者可以在不检索整篇数据的前提下验证共享数据的完整性。
2)正确性:公开验证者可以正确验证共享数据的完整性。
3)不可伪造性:只有群组用户可以产生有效、共享数据的原始数据(如签名)。
4)身份的隐私性:公开审计者在对共享数据块的审计过程中不能区分签名者的身份信息。
5)批量审计:公开审计可以满足多个数据块的一次性验证需求,提高审计效率。
6)追踪性:当群管理者发现群组用户有恶意的访问行为时,可以使用追踪权限找到该用户。
设p为大素数,G1是阶为p的乘法循环群,g是G1的生成元。定义一个双线性映射e:G1×G1=G2满足以下3个性质[20]:
2)非退化性:存在∀P,Q∈G1,使e(P,Q)≠1。
3)可计算性:对于∀P,Q,可以通过多项式时间算法来计算e(P,Q)。
本文方案的安全性证明基于以下困难性问题:
定义1Computational Diffie-Hellman(CDH)问题。对于2个随机数a、b,已知(g,ga,gb),计算gab的值是困难的,其中G1是q阶的循环群,g是G1的生成元。
本文方案使用有效的群签名以获得数据完整性的审计,通过群签名嵌入椭圆曲线上的ElGamal加密体制来保护群组用户的私钥。椭圆曲线上的ElGamal加密体制安全是基于DDH困难性问题而成立的,其加密过程描述如下:
本文可证明安全的无证书公开审计方案包括以下9个运算阶段。
3)用户注册(UserEnroll) 阶段。用户Ui将自己的身份信息IDi发送给群管理者,群管理者根据用户Ui的IDi和公钥{Ti}i∈[1,n]建立用户列表List,完成用户的注册。
5)签名验证(SignVerify) 阶段。CSP接收到用户上传的签名值{σl,Cl,1,Cl,2}l∈[1,n]后对其进行验证。验证式(1)是否成立。若等式成立,则签名有效;若不成立,则签名无效,需重新生成对应签名。
(1)
8)证据验证(ProofVerify)阶段。TPA接受到CSP发送证据proof={E,σ}后,对CSP生成的证据进行验证。若式(2)成立,则表示数据被CSP正确持有;否则,数据可能被篡改或丢失。
(2)
9)用户追踪(Trace)阶段。如果用户存在恶意的访问行为或上传不合法的数据情况,群管理者可以行使追踪权限,用专属私钥d进行追踪,查询到该用户的身份信息并将其从注册用户名单中删除,更新用户列表List,并将更新后的用户列表发送给CSP,CSP删除与之对应存储的签名值,使其不能通过签名验证,从而保证签名的有效性。如果有新的用户想要加入群组,可以通过群管理者进行注册加入。重新对撤销用户生成签名标签的数据块签名,生成新的签名,签名验证过程与之前一致。在群管理者行使追踪权限时,用专属私钥d进行追踪,通过下式进行验证:
(3)
当出现多个用户发送审计请求时,TPA可以在同一时间完成审计。若给定m个用户Ui,i=1,2,…,m,每个用户需要审计的数据块数目为ni,对应的数据块标识符为idi,j。TPA向CSP发送审计挑战为:chal={j,ρi,j},j=1,2,…,ni。
TPA接收到CSP发送证据proof={σ,E1,E2,…,Em}后,验证下式是否成立:
(4)
定理1给定共享数据块和对应的合法签名,TPA可以检验共享数据的完整性。
证明本文方案的正确性基于式(1)和式(2)。基于双线性对的性质,式(1)和式(2)的验证过程分别如式(5)和式(6)所示:
e(σl,g)=e(gh(idi)kiH(IDi)αtiml,g)=
e(gh(idi)ki,g)e(H(IDi)αtiml,g)=
e(gki,gh(idi))e(H(IDi)timl,gα)=
(5)
(6)
若式(1)和式(2)成立,则公开验证者认为共享数据是完整的。上述通过验证式(1)和式(2)的正确性,证明了本文方案的正确性。
对于多用户情形的批审计,式(4)验证过程如式(7)所示:
(7)
定理2CDH困难性假设在G1中成立,则任何多项式敌手在本文方案下伪造签名在计算上是不可行的。
证明如文献[5,17]中所述,使用无证书签名方案的标准安全模型应考虑2种类型的敌手,分别称为I型敌手和II型敌手,具有不同的攻击能力。这2类敌手的详细定义如下:
1)I型敌手:该类型的敌手无法询问KGC的主密钥,但能够用其选择的值替换任何实体的公钥(敌手具有此能力的原因为无证书签名方案中没有涉及到证书管理)。
2)II型敌手:该类型的敌手可以询问KGC的主密钥,但不能替换任何实体的公钥(敌手的成功询问表明无证书签名方案中存在秘钥托管问题)。
下文将证明,如果I型敌手或II型敌手能够用审计方案生成一个伪造签名,那么就存在一个能够解决G1中CDH困难问题的算法F,这与G1中的CDH问题在计算上不可行的假设相矛盾。
定理3只要DL假设成立,半可信的云存储服务器在本文方案下生成伪造的审计证明在计算上是不可行的。
证明如定理2所证明的,对于不可信云,如果G1上的CDH问题是困难的,则在本文提出的机制下伪造签名是不可行的。在本文中,除了试图在每个数据块上计算伪造签名来生成伪造的审计证明之外,如果不可信的云可以赢得下面的安全游戏(称为Game1),则它可以伪造损坏的共享数据的审计证明。安全游戏描述如下:
Game1一个公开的验证者向云服务器发送一个审计挑战chal={j,ρj}j∈c,基于正确的共享数据M生成的审计证明应该是proof={E,σ},它能够通过式(2)的验证。不可信云生成证据为proof′={E′,σ′}是基于损坏的共享数据M′,其中M≠M′且为非零的。如果基于损坏的共享数据M′的无效证据可以成功地通过验证,则不可信云将获胜;否则,它会失败。
下文将证明如果不可信云可以赢得Game1,那么就能找到解决G1中的DL问题的方案,这与DL假设中G1中的DL问题在计算上是不可行的相矛盾。假设不可信云可以赢得Game1,根据式(2)得到:
proof′={E′,σ′}是一个正确的审计证明。
证明对于算法A,在一个数据块上揭示签名者身份信息的概率是1/d,因为选择的c个数据块的签名是独立的,其中c∈[1,n],公开验证者能区分共享数据中选择的c个数据块的所有签名者身份的总概率最多为1/dc。
在本文方案中,公开验证者知道共享数据中的每个数据块都是由用户各自签名的,因为它需要用户的公共密钥来验证整个共享数据的正确性。然而,它不能区分每个特定数据块上的签名者是谁。因此,公开验证者在揭示私有信息方面不具有特殊的优势,例如在共享数据中对较多的数据块进行签名时,或者特定的数据块经常被不同的组员频繁修改时,公开验证者均不能有效地分辨出签名者具体的身份。根据上文对方案的正确性分析,证明了本文方案支持数据隐私保护。
定理5假设一个审计证明proof={E,σ},只要DL假设成立,对于公开验证者来说,揭示本文机制下共享数据中的任何私有数据在计算上是不可行的。
在计算开销方面,将本文方案与文献[18]方案进行分析对比,如表1所示。其中,Texp表示指数运算所需的时间,Tmul表示乘法运算所需的时间,Tpair表示双线性对运算所需的时间,Thash表示Hash运算所需的时间,Tm表示幂运算所需的时间,d表示签名的用户数,c表示挑战的数据块数目,n表示数据分块数,s表示每个数据块中包含的子数据块数。从表1可以看出,文献[18]方案主要是支持无证书的公共审计方案,但没有签名认证和用户追踪,其计算开销随着数据块的增多而增大,开销远大于本文方案。本文方案支持签名验证、多数据块的批量审计和用户追踪,而在多用户的情形下,审计时间没有太多的增加,且计算开销比文献[18]方案小。
表1 2种方案计算开销对比Table 1 Comparison of computation costs of two schemes
表2 2种方案审计阶段通信开销对比Table 2 Comparison of communication costs in the audit phase of two schemes
本文采用模拟实验来评估方案的计算开销和通信开销。实验测试环境为:Inter i5-7200U CPU2.50 GHz,8 GB内存,Windows10×64操作系统,采用Pairing Based Cryptography(PBC)(http://crypto.stanford.edu./pc/)在Visual C++ 6.0中编译实现。本文方案中主要阶段的运行时间如表3所示。
表3 本文方案各阶段运行时间Table 3 Runtime of each phase of the proposed scheme s
基于本文方案与文献[18]方案计算开销和通信开销的对比,图2和图3分别给出了选择不同数量的数据块时签名生成阶段和证据验证阶段运行时间的对比。
图2 签名生成阶段运行时间比较Fig.2 Comparison of runtime in signature generation phase
图3 证据验证阶段运行时间比较Fig.3 Comparison of runtime in evidence validation phase
本文方案和文献[18]方案都是基于无证书的公开审计方案,因此在证据验证阶段的运行时间相同,但本文方案在签名生成阶段和证据验证阶段的运算时间均少于文献[18]方案,从而减少了计算开销,节约了计算成本,提高了效率。
将本文方案与文献[18-19]方案的主要功能进行对比,如表4所示。其中,√表示支持该功能,×表示不支持该功能。
表4 不同方案审计功能对比Table 4 Comparison of audit functions of different schemes
从表4可以看出,文献[18-19]和本文方案同时具有批量审计的功能,但前2种方案不支持用户注册和签名验证,且文献[18]方案不支持用户追踪,文献[19]方案未解决证书管理问题。由此可知,本文方案实现的功能更为全面,不仅解决了传统密码体制中的证书管理问题,而且也实现了批量审计和用户追踪功能。
本文提出一种无证书的共享数据公开审计方案,解决了公钥密码体制中出现的证书管理问题,能够进行多用户多数据块的批量审计,并通过ELGamal体制支持群管理者对群组用户身份的追踪。安全性分析和实验结果表明,该方案基于CDH、DDH和DL困难性问题,实现了签名的不可伪造性和身份的隐私保护性,是安全高效的。下一步将研究具有动态群组用户隐私保护功能的公开批量审计方案。