APP下载

云环境下基于改进AONT的安全存储方案

2022-10-15边根庆李欣妍

小型微型计算机系统 2022年10期
关键词:密文加密消息

边根庆,李欣妍

(西安建筑科技大学 信息与控制工程学院,西安 710055)

E-mail:lxy96_east@163.com

1 引 言

由于独立用户的设备性能受限,如何存储其产生的海量数据成为了制约用户使用互联网的瓶颈.因此,云服务提供商(CSP)应运而生.CSP将其统一维护管理的、拥有巨大内存空间的云服务器以弹性购买的方式向外界出租,通过提供安全可靠的云存储[1,2]服务来提高其核心竞争力.但是云环境十分复杂,一方面用户需要通过可靠的加密手段将明文数据隐藏,防止外包数据泄露隐私信息[3,4],另一方面CSP并不完全可信,所以需要建立完善的完整性审计机制[5,6]以抵抗来自云端的多重攻击.因此,如何确保外包数据的隐私性和实现准确、高效地验证数据完整性成为了长期以来的研究热点.

首先,为了保护用户隐私,传统的数据外包方案仅对明文信息进行加密,将生成的密文数据上传到云端存储[7].这使得一旦攻击者破解了私钥,外包的密文数据则可能无法承担被恢复出可用信息的风险,从而造成用户隐私泄露的重大事故.其次,为了确保远程数据的准确性、可用性和安全性[8],许多研究提出了丰富的数据完整性审计模型[9,10].例如,Ma等人[11]提出了一种分层的远程数据持有性检查方案.该研究虽然解决了验证多个文件效率低的问题,但是依赖用户进行验证操作仍然会给计算性能一般的用户端带来较为沉重的计算开销.为了减轻用户端的计算负担,大多数研究将数据的持有性验证操作授权给可信第三方(TPA)执行[12,13].但是第三方是好奇的,其可信性是一种概率性假设,当TPA能够从用户上传的数据中获取隐私信息时,便成为最有可能窃取用户信息的机构.在文献[14]的研究中授权了TPA计算数据标签,但是由于用户端仅对编码文件的系数向量进行加密,其安全性不足以抵抗第三方攻击,使得第三方窃取用户隐私的可行性增加.为避免第三方攻击,Xue等人[15]提出了基于身份的公共审计方案,通过增加用户端的计算开销来提高TPA服务的可信度,该方案未有效减轻用户的计算负担.通常情况下,用户和第三方为客户-服务的关系,服务方可能存在一定的好奇心,但是由于始终无法窃取用户的隐私,便在收取合理服务费用的情况下,忠诚于服务协议以保护自己的声誉.可见,外包数据抵抗攻击的能力与第三方可信的的概率成正比,若用户的外包数据没有任何可用性,那么只要完善相关的管理制度,收取合理的代理费用,就能够在一定程度上促使TPA公平、公正地执行审计任务.基于此,用户便可以将远程数据的持有性验证操作授权给高可信度的第三方服务器,从而减轻本地服务器的计算压力.

针对上述问题,本文提出一种安全的数据存储方案,降低了外包数据泄露隐私信息的可能性,提高了第三方审计机构的可信度,使得用户可以将远程数据的完整性审计任务迁移至第三方执行,从而降低本地的计算开销.首先,用户利用基于Hash算法改进的全有或全无转换(All-or-Nothing Transformation,AONT)机制[16](H-AONT)对数据进行预处理,生成具有强不可分性的伪消息数据块.随后,对伪消息数据块集合进行加密,并将部分密文数据块发送给TPA.相较于仅通过传统的加密算法处理数据,本文提出的转换加密机制提高了密文数据的隐私性.随后,由TPA利用Hash运算的同态性[17,18]代替用户完成文件分块、生成标签、数据上传和持有性验证操作.由于本文方案降低了用户端与第三方的耦合度,所以大大降低了用户的计算成本.此外,当用户申请删除云端数据时,可以同时销毁本地存储的部分伪消息数据块,根据强不可分性达到安全删除的目的,增强了系统的安全性.实验表明,该方案显著降低了用户端的计算开销且具有良好的安全性.

2 预备知识

2.1 强不可分性

Rivest在文献[16]中指出,在传统的数据加密机制中,若攻击者通过穷尽密钥搜索的方式解密了其中一个密文数据块,就可以测试候选密钥的有效性,这被称为可分离性.因此,Rivest提出加密方式应该满足强不可分性,其定义如下:

定义1.强不可分性 若将明文集合 {d1,d2,…,dn} 通过一个加密算法γ转换,生成一个密文序列 {c1,c2,…,cn}.当在获得所有密文块之前,任何人都不能读取明文信息,则称算法γ具有强不可分性.

2.2 AONT转换机制及改进

为了满足强不可分性,Rivest提出了一种全有或全无(All-or-Nothing Transformation,AONT)数据转换机制[16]:

1)g具有可逆性.根据伪消息数据块序列可以通过逆运算g-1获得正确的明文信息.

2)g具有时限性.正向转换g与逆向转换g-1都满足在多项式时间内完成计算.

3)g具有强不可分性.在确定所有伪消息数据块之前,都无法通过g-1计算得出正确的明文数据块.

AONT算法负责将数据转换成伪消息数据块,可以与任何传统的加密方式相结合,生成密文伪消息数据块.因此,Rivest基于AONT算法提出了一种数据加密机制:

转换加密过程:(E(.)为分组加密算法,k是随机密钥,k′是一个固定的公钥,⊕代表异或运算)

逆转换解密过程:

在Rivest定义的转换加密算法中,利用s个密文伪消息数据块生成第s+1个伪消息数据块,该算法中执行了两轮分组加密和3s次异或运算.为了提高计算效率,本文提出将转换过程与加密过程分离,并运用伪随机函数、伪随机置换函数和安全的Hash算法对AONT转换机制进行改进,将改进的AONT算法称为H-AONT.H-AONT中的密码变换包括(|k|表示密钥长度):

Υ(.):{0,1}|k|×{0,1}l→{0,1}l为伪随机函数(pseudo-random function,PRF),用于生成伪随机数;

T(.):{0,1}|k|×{1,2,…,s}→{1,2,…,s}为伪随机置换( pseudo-random permutation,PRP),用于置换产生新的消息序列;

Hash(.):{0,1}*→Zp为安全的无密钥Hash函数,其中p为随机大素数.Hash函数具有实用性、单向性和抗碰撞性[19],用于计算伪随机序列的Hash值.

H-AONT转换过程:

H-AONT逆转换过程:

H-AONT转换机制是对消息的预处理过程,可以和任何加密算法配合使用,增强数据的安全性.

2.3 同态哈希函数

同态性是指假设集合A、B分别具有两种运算,若它们之间存在一种映射f(A;*)→(B;*),使得f(g1×g2)=f(g1)×f(g2),其中g1,g2∈A,f(g1),f(g2)∈B.则表示映射f具有同态性.

定义4.同态哈希函数 具有同态性的哈希算法为同态哈希函数,通常用于在无需下载远程数据块的场景下,验证分布式系统中部分数据块的完整性,以抵抗多种攻击.根据文献[20]中提出的同态哈希构造方案,任意选取随机大素数p、q和随机数g,使得q=p-1,且gq%p=1.那么对于数据块b1的Hash值表示为h1=gb1%p,对整体Hash为H=g(b1+b2+…+bk)%p.若H=h1+h2+h3+…+hk% p,则证明该Hash函数具有加同态性.hash(.):{0,1}*×{0,1}β→{0,1}λp是同态hash函数,其中,β表示数据块大小(bit),λp为随机大素数p的离散对数安全参数,λp=|p|.

3 系统模型及设计目标

3.1 系统模型

本文提出的安全云存储方案包括外包数据的安全性和正确性两个方面.如图1所示,安全存储方案的系统模型涉及3个实体:用户(Users)、第三方审计代理(TPA)和云服务提供商(CSP).

图1 云端数据的安全存储模型Fig.1 Secure storage model for cloud data

·Users:数据的拥有者.对大量的数据进行转换加密处理并上传至云端服务器.

·TPA:第三方审计代理机构.为用户文件生成验证密钥和数据块标签,并代替用户验证云端数据的完整性.

·CSP:云服务提供商.为用户提供海量数据的存储服务,并将完整持有数据的证明消息返回给TPA.

3.2 威胁模型

本文方案主要解决了外包数据泄露可用信息的问题,所以在实验中认为TPA能够遵守公共审计协议,诚实地执行云端数据的持有性验证任务.因此,该模型的安全威胁主要来自两个方面:

·入侵者攻击:攻击者通过各种途径获得用户的隐私数据,即用户的外包数据被非法入侵者窃取,并试图从中获得可用的信息.

·CSP攻击:当云服务器受到以下攻击时,仍尝试通过持有性验证:1)替换攻击.攻击者试图使用其他完整数据块的标签替换损坏数据块的标签来通过数据完整性审计;2)伪造攻击.当数据损坏时,对手试图伪造CS的证明信息来欺骗TPA;3)重放攻击.CS将之前的验证信息与任意完整的数据块进行运算以证明损坏或丢失的数据块被完整持有.

3.3 设计目标

为了抵抗上述威胁模型,实现更安全、高效的数据持有性证明,本文方案应满足以下设计目标:

1)转换加密:用户需要在本地对文件执行上锁操作,首先通过H-AONT转换机制将原始文件转换为强不可分的伪消息数据块,随后利用安全的加密算法生成密文数据;

2)轻量架构:用户授权可信第三方代理执行复杂的数据完整性审计任务.例如,为数据块生成标签,并验证CSP是否完整持有数据;

3)存储安全:TPA和任何攻击者都无法通过部分、甚至所有的外包数据块获取明文信息,即云服务器中的碎片数据块不具有不可用性;

4)低通信量:在持有性证明过程中,只有TPA与CSP通信.TPA仅发送文件标识符和一个索引密钥作为挑战消息,CSP返回完整存储部分数据块的证明.

4 云端数据的安全存储方案

本文提出的安全存储方案包括外包数据的安全性和正确性,由Lock(.),SliceGen(.),TagGen(.),ChallGen(.),ProofGen(.),ProofVeri(.)和Unlock(.)7个算法组成.主要分为4个阶段:1)文件上锁阶段:包含算法Lock(.),用户在本地结合H-AONT转换机制和对称加密算法处理原始文件,生成强不可分的伪消息密文数据块并发送给TPA,提高了外包数据的安全性;2)预处理阶段:包含算法SliceGen(.),TagGen(.),TPA对密文进行分片并为数据块生成标签.在标签中加入随机数和块位置信息,不仅保证了数据块的唯一性,而且避免了云服务器的多重攻击;3)数据持有性证明阶段:包含算法ChallGen(.),ProofGen(.),ProofVeri(.),由TPA向CSP发送挑战,并对CSP返回的证明信息进行正确性验证;4)文件解锁阶段:包含算法Unlock(.),用户从云端下载所有的外包数据并结合本地的部分数据块解密恢复出原始文件.

接下来将详细说明本文方案的具体算法过程.

4.1 文件上锁阶段

Lock(F)→UF文件上锁操作在用户端执行.

1)将原始文件分成n个文件块:F→{f1,f2,f3,…,fn};

2)用户随机指定文件块置换规则t和转换密钥ktr;

Input:

PriFile:F=f1,f2,f3,…,fn

ReplaceRule:t

TransKey:ktr

Output:

1.for i=1 to n do

3.end

4.for i=1 to n do

6.end

7.order n′=n+1

9.done

11.return F′

4)用户随机选择私钥k并对伪消息数据块集合F′进行加密.选择对称加密函数E(.),根据用户私钥进行加密操作:Ek(F′)→C,产生的密文数据块集合C={C1,C2,C3,…,Cn′};

5)将密文数据块集合C切分成两个长度不同的集合α,β,则C=α+β,其中|α|<<|β|.

6)将长集合 β 作为用户文件(user file,UF)上传至TPA.

7)用户在本地保存私钥k和短集合α.

4.2 预处理阶段

当TPA收到用户上传的UF后,可以代替用户对文件进行预处理.具体操作如下:

1.数据分片:SliceGen(UF,s,t)→{ufij}

1)TPA将UF切分成s个数据块,UF={ufi}1≤i≤s≤n′.

2)随机选择数据分片个数t,将{ufi}切分成t片,形成一个s×t数据分片矩阵ufi={ufij}1≤i≤s,1≤j≤t.

2.生成标签:TagGen(kver,{ufij})→Φ

1)TPA选择一个验证密钥kver

2)计算UF唯一的文件标识符UFID:ε=Hash(UFname‖s‖t).该Hash函数中包含文件名UFname、数据块的数量s和每个数据块的切片数量t.

3)为每个数据块ufi生成标签:

(1)

其中,h(.)为同态Hash函数.随机数ri由伪随机函数ω(.):{0,1}|i|×{0,1}l→{0,1}l产生,ω(i)→ri,i表示数据块在矩阵中的位置信息,结合ri计算数据块标签确保了标签的唯一性.令Φ={φi}1≤i≤s.

4)将消息(ufi,ε,φi)上传到CSP中,由CSP将s个数据块及其标签分别存储在s个云服务器中.

4.3 数据持有性证明阶段

数据持有性证明阶段包括TPA向CSP发送挑战消息、CSP生成数据持有的证明消息并返回给TPA以及TPA验证CSP是否正确持有被挑战的数据块.

1.ChallGen(λ)→chall.TPA生成一个挑战消息.

1)TPA选择一个随机参数λ来获得挑战块索引密钥kind←f(λ).f (.):{0,1}|kind|×{1,2,…,s}→{1,2,…,s}是TPA中的一个伪随机函数,根据输入的参数随机生成索引密钥kind.

2)TPA指定挑战块的数量Z.

3)生成一个挑战消息chall=(ε,kind,Z)并将其发送给CSP.

2.ProofGen(ε,kind,Z)→proof.CSP生成证明消息.

1)CSP接收挑战消息chall=(ε,kind,Z)并计算Z个挑战块的集合:

Bz|1≤z≤Z={(ε,ufi)}|1≤i≤s,[i]=σKind(z)|1≤z≤Z

σ(.):{0,1}|kind|×{1,2,…,z}→{1,2,…,z}是伪随机置换函数,根据接收的索引密钥确定每个文件标识符为ε的挑战块在云服务器中的存储位置[i].

2)计算:

(2)

(3)

3)向TPA返回证明信息proof=(δ,ζ).

3.ProofVeri(kind,z,proof)→(True,False)TPA验证挑战数据块的完整性.

1)TPA计算挑战块索引[i]和与挑战块对应的随机数ri:

i=σKind(z)|1≤z≤Z

ri=ω(i)

2)验证:

(4)

在验证公式(4)中,若等式成立,则验证结果为True,证明挑战块被正确持有;否则,输出False,表示挑战块损坏、丢失或被篡改.

4.4 文件解锁

Unlock(α,β,k)→F.文件解锁操作在用户端执行.

1)用户从云端下载完整的用户文件(UF=β).

2)将外包数据β与本地短集合α结合得到所有的伪消息密文数据块.

3)文件解锁阶段包括数据解密(D(.)为解密函数)和H-AONT逆运算过程,具体算法步骤如下:

Input:

PrivateKey:k

ReplaceRule:t

Short-block Set:α

Long-block Set:β

Output:

PriFile:F=f1,f2,f3,…,fn

3.for i=1 to n do

5.end

7.for i=1 to n do

9.done

10. F=f1,f2,…,fn

11.return F

5 安全性分析

针对第3.2节中提出的威胁模型,本节分别分析外包数据的强不可分性和持有性证明的确定性两个方面,从而证明本文系统能够抵抗入侵者攻击和CSP的多重攻击.另外,由于对称加密算法的安全性已在文献[21]中充分证明,因此在本节中针对外包数据的安全性主要从强不可分性角度证明,暂不考虑对称加密的安全性.

5.1 强不可分性证明

定理1.H-AONT能够抵抗入侵者通过外包数据获取有用信息.

接下来通过两种情形分析外包数据的安全性.

Case 1若排列规则t泄露,且攻击者窃取n个外包数据块.

M′= m2,m3,…,mn′

同理,由于H(M′)≠H(M),故攻击者窃取信息失败.可见,只要置换规则没有泄露,即使攻击者获得完整的n+1个伪消息数据块,也无法遵循正确的规则得到有效的消息序列M′.

注意到置换规则t和本地存储的伪消息数据块不能同时泄露,只要用户确保任意一种消息保密就能够保证外包数据的信息安全.可以看出,原文件通过H-AONT算法生成了n+1个伪消息数据块,使得隐私数据的安全性随着转换数据块个数n的增加成倍增长.

5.2 正确性证明

定理2.以对所有外包数据的确定性验证为例,如果TPA和CSP都遵守挑战-应答协议,且所有数据块都是完整的,则持有性证明方案可以正确判断CSP是否完整保存数据块.

证明:当数据块没有损坏或丢失时,CSP可以通过TPA的数据持有性证明:

若外包数据丢失或受到如替换、伪造及重放攻击,CSP就无法通过TPA的持有性验证.

1)本方案可以抵抗CSP的替换攻击.

当挑战块ufi被损坏或丢失时,CSP试图使用其他完整的数据块uft及其标签φt(ufi≠uft)来实施替换攻击,以欺骗TPA并通过数据持有性验证.则在返回的证据中:

TPA根据CSP返回的证据进行持有性证明时,发现:

这是因为TPA在验证时需要计算每个数据块唯一对应的随机数ri,因为rj≠ri,所以等式不成立,证明了本文方案可以抵抗CSP的替换攻击.

2)本方案可以抵抗CSP的伪造攻击.

3)本方案可以抵抗CSP的重放攻击.

CSP为了隐瞒数据块丢失的事实,将已通过完整性验证的证据消息(δ1,ζ1)与其他未损坏的数据块uft及其标签φt进行运算,并返回证据信息:

δ′=(uft+δ1)modp

ζ′=(φt×ζ1)modp

通过TPA的验证公式,得到:

可见,当标签中加入了数据块的位置信息时,在持有性验证过程中每次产生的随机数都不同,使得CSP无法使用先前的证据消息欺骗TPA.

6 性能评估

为了进一步验证本文解决方案的性能,我们使用一台配备Intel Core i7 CPU和16GB RAM的国产DELL台式机以及阿里云服务器搭建系统模型.主要测试了本文方案的存储开销、通信开销和计算开销,并与基于第三方审计的DIPOR[14]和IBPA[15]方案的安全性进行比较.

6.1 通信开销

本节通过挑战-应答过程作为参考来计算通信开销.在挑战消息中,本方案使用索引密钥、挑战块数和文件标识符构成索引集,CSP仅返回数据块聚合与标签聚合作为证明消息,使得挑战-应答阶段产生的通信负载较低.

6.2 存储开销

在用户端,当用户将UF上传到云端后,可以删除本地的副本文件.用户端只需要保留私钥(k=128bit)和短密文数据块集合α(|α| =a×q bit).其中a表示用户端保留的密文数据块数量,q表示每个密文数据块的长度.在执行锁操作的实验中,将每个数据块的长度(length)设置为l=128bit.通过安全性分析,用户端仅保留一个密文数据块就可以实现上传云数据的强不可分割性,即|α|=128bit.

在TPA中的额外存储开销包括每个文件唯一的验证密钥.另外,CSP需要保存文件的标签集.当取|p|=1024bit时,相较于与16KB的数据块,本方案的额外存储开销可以忽略.

6.3 计算开销

本文基于H-AONT算法将明文划分为若干个长度为128bit的数据块进行转换加密,相比于原始的AONT算法,H-AONT采用计算伪随机重组序列的Hash值代替2s-1次异或运算.因为Hash函数具有实用性,使得根据重组序列Y计算H(Y)是非常容易的,因此H-AONT在大量数据块的转换操作中具有明显优势.为保证测试的公平性,在实验中将2.2节所描述的基于AONT实现的转换加密机制进行分离,即单独执行转换流程,并使用相同结构的伪随机函数代替加密算法.如图2所示,H-AONT算法的计算效率优于AONT转换机制和传统加密算法(AES-128).对经过H-AONT预处理的文件再次进行对称加密时,不仅提升了数据的安全性,而且未明显增加用户端的计算开销.

图2 H-AONT算法与传统加密算法的计算开销对比Fig.2 Comparison of computational cost between H-AONT algorithm and traditional encryption algorithm

以一个20M大小的文本文件为例,根据图2可知在用户端执行文件上锁操作的计算开销为9.32s.随后用户将部分数据块上传至云端,由TPA代替用户生成数据块标签和验证远程数据块正确性,且用户不参与审计过程.

从图3中可以看出,在数据的预处理阶段,由于用户端仅执行转换加密操作而不参与数据块标签的生成,所以当用户将大小为20M的上锁文件发送给TPA之后,随着验证数据块个数的增加,用户端的计算开销不发生改变,而TPA的计算开销与数据块个数呈正相关.此外,当20M文件的数据块大约低于30个时,用户端对数据上锁操作的计算开销高于TPA生成标签的计算开销.这是因为TPA在生成标签时以数据块为单位,当生成少量数据块的标签时,并不会对TPA造成过大的计算负担.而用户端服务器的性能受限,在处理文件时会产生一定的计算开销,并且根据图2所示,用户端的计算开销随着文件大小的改变呈正相关曲线.

图3 数据预处理阶段用户端和TPA的计算开销Fig.3 Computational cost of user side and TPA during data preprocessing

综上所述,本文方案在数据的转换过程中有明显优势,通过结合传统的加密算法提高了数据的安全性而且未造成严重的计算负担.另外,用户将经过安全加密的信息发送到云端,并授权TPA验证云端数据的持有性,有效地降低了用户端的计算开销,而且不用担心泄露隐私信息,同时还能够利用加密机制的强不可分性保证数据的确定性删除.

6.4 安全性对比

表1总结了本文方案与其他两种方案的安全性能比较.

表1 相关方案的安全性比较Table 1 Security comparison of related schemes

DIPOR[14]和IBPA[15]均依赖第三方审计服务,3种方案都可以抵抗替换、伪造和重放攻击,但是其他两种方案基于传统的非对称加密方式,一旦私钥泄露,便无法阻止攻击者获取明文信息.此外,IBPA方案提出了基于身份的公共审计,有效地抵抗了恶意的审计人员,提高了TPA审计服务的可信度,而DIPOR方案缺少了对TPA的约束,使得第三方的可信度下降.本文方案通过增强数据的隐私性,不仅防止了密钥丢失造成信息泄露,而且能够在一定程度上促使TPA诚实地遵守数据持有性证明协议.

7 总 结

本文方案根据实际应用中云存储环境较复杂的情况提出了基于改进AONT的安全存储方案,通过双重加密增强了数据的隐私性,避免了外包数据泄露可用信息,从而提高了第三方审计服务的可信度.因此,用户可以将计算开销较大的操作迁移至可信第三方执行,有效地减轻了用户端的计算负担在本文方案的基础上,TPA可以根据用户的需求为用户文件冗余存储多个副本文件,增强系统可靠性.同时,为使该模型达到更好的抗风险能力,下一步研究计划在计算同态标签之前,为数据块进行纠删码编码操作,保证损坏数据及时得到恢复.此外,若用户能够在不增加过多计算开销的情况下实现对远程数据正确性的抽查也将成为下一步研究重点.

猜你喜欢

密文加密消息
一种支持动态更新的可排名密文搜索方案
嵌入式异构物联网密文数据动态捕获方法
保护数据按需创建多种加密磁盘
一张图看5G消息
一种新的密文策略的属性基加密方案研究
谷歌禁止加密货币应用程序
一种抗攻击的网络加密算法研究
晚步见道旁花开
加密与解密