本发明属于以通信技术,尤其涉及一种支持密态数据去重和完整性验证方法及系统。
背景技术:
目前,业内常用的现有技术是这样的:随着云计算的飞速发展,基于云平台构建的各种应用逐渐融入人们的工作和生活。通过云计算技术,用户和企业并不需要花费过高的代价用于前期硬件的购置和维护上。另外,强大的计算和存储能力也使得用户更愿意依托云来处理各种复杂的任务。用户的计算资源和管理能力非常有限,无法承担大规模的计算任务;通过将数据存储在云服务器中就可将用户从繁重的计算任务中解放出来。云存储作为未来存储技术的一种发展趋势,为用户提供便捷和低成本的海量存储服务,使得越来越多的人选择将数据存储在云中。用户将个人数据存储在云服务器中交由云存储服务提供商(cloudserviceprovider,csp)统一管理,不但大大减轻了用户的本地存储负担,而且使用户能够随时随地访问云端数据。由于用户不具有对云端个人数据的绝对控制权,数据安全是一个不可忽视的问题。为了自身经济利益的考虑,csp可能故意删除用户的一部分数据。即使csp能够诚实地存储用户的数据,也不可避免软硬件故障而导致数据的损坏问题。当上述问题发生时,csp可能隐藏这些错误,并且使用户相信他们的数据仍然被正确地存储在云服务器上。为确保用户存储在云服务器上个人数据的正确性,需要周期性地对云端个人数据执行云端数据完整性检查。如果用户将云数据下载到本地以验证其完整性,在数据量较大的情况下是低效的。为此,研究者们提出了数据持有性证明(provabledatapossession,pdp)和数据可恢复证明(proofofretrievability,por)。pdp方案使用户即使删除了本地数据,仍然可在无需下载数据的条件下,利用数据标签验证云服务器是否持有完整的用户数据,且在此过程中不会泄露数据内容。pdp方案注重快速验证云端数据是否损坏,而por方案除此功能之外还能恢复已损坏数据,二者对应的应用需求不同。此外,为了提高云存储服务提供商的存储效率,节约用户带宽消耗,还需要对数据进行去重操作,通过数据去重可以消除冗余的数据,相同的文件只保存一个物理副本,大大减少了用户上传带宽以及存储空间。然而机械的将数据去重与完整性验证结合起来不可避免地会导致上传者身份的混淆,以及由此而来的一些安全性问题。这是因为后续如果有用户需要上传一个服务器中已有的文件,在上传过程中如果生成的标签中含有用户的身份,则会导致标签与服务器中存储的相应的文件标签不一致,也就使得云服务器无端存储了许多额外的数据,且会与后续的完整性验证工作造成冲突。因此云存储环境中存在需要同时实现数据完整性验证和去重的情况。然而现有同时支持数据完整性验证和去重的方案均无法实现密钥更新,因而不能抗密钥泄露,这使得用户的密钥在完整性验证审计的过程中可能会遭到窃取。一旦恶意的云得到了用户的私钥就能通过伪造认证标签来隐藏数据丢失,甚至为了节省存储空间删除用户不常访问的数据而不被察觉。
综上所述,现有技术存在的问题是:
(1)用户不具有对云端个人数据的绝对控制权,数据安全得不到保证。
(2)机械的将数据去重与完整性验证结合起来不可避免地会导致上传者身份的混淆,以及由此产生的数据安全问题。
(3)现有同技术无法实现密钥更新,因而不能抗密钥泄露,使得用户的密钥在完整性审计的过程中可能会遭到窃取。
解决上述技术问题的难度和意义:
虽然现有数据完整性验证方案已经实现了数据去重或抗密钥泄露,但是仍然没有方案同时实现抗密钥泄露、数据去重和完整性验证三种功能。进一步地,如果只是单纯地在支持去重的验证审计方案中加密密钥更新,则可能导致在不同时间周期由于用户私钥不同而无法成功去重。本发明在同时支持完整性验证和密态数据去重的方案中实现密钥更新的目的。应用布隆过滤器技术实现数据去重,第三方验证审计者在每个时间周期开始时协助用户生成该时间周期下的私钥和签名私钥,且能保证每个时间周期下用户的私钥和签名私钥彼此相互独立,解决了密钥更新的问题。恶意的云服务器不能通过已泄露时间周期的签名私钥获得其他时间周期用户的签名私钥,保护了除密钥泄露发生的时间周期外任意时间周期审计方案的安全性。本发明引入密钥服务器协助用户生成文件的加密密钥,使得方案能在成功去重的前提下保证文件的机密性。
技术实现要素:
针对现有技术存在的问题,本发明提供了一种支持密态数据去重和完整性验证方法及系统。
本发明是这样实现的,一种支持密态数据去重和完整性验证方法,所述支持密态数据去重和完整性验证方法每一时间周期用户的签名私钥均为两部分的乘积,一部分是审计者根据自身私钥生成的更新消息,另一部分是由用户的私钥和当前时间周期计算;任何时间周期的签名私钥都需要用户和审计者共同生成;在数据去重中,利用布隆过滤器实现文件的客户端去重。
进一步,所述支持密态数据去重和完整性验证方法包括以下步骤:
步骤一,生成系统公开参数及用户和审计者的公私钥对;
步骤二,审计者每到一个时间间隔就利用自己的私钥协助用户更新签名私钥;
步骤三,用户在上传文件之前先将文件的哈希值发送给云服务器验证云服务器中是否存储过该文件;若没有则上传文件与签名,否则用户完成与云服务器的持有性证明协议;
步骤四,审计者与云服务器进行挑战与响应协议,验证云服务器存储的文件是否完整。
进一步,所述步骤一具体包括:给定安全参数1k,生成系统公开参数
进一步,所述步骤二具体包括:在时间周期t开始时,审计者利用私钥sktpa计算更新消息
进一步,所述步骤三具体包括:用户ui在时间周期t内需要上传文件f,将文件分为n个块m1,m2,…,mn,其中
进一步包括:
(1)若云服务器中没有找到相同的hi,j,云服务器发送“no”给用户ui。用户ui收到后利用更新消息δt计算
用户ui计算文件f中每个消息块mj(j=1,…,n)相应的证明值tj=h1(mj)和伪随机值pj=prf(tj,idj),然后将每个伪随机值pj插入布隆过滤器bff中,并将布隆过滤器bff连同文件f的密文集合(idf,{ctj|j=1,…,n}),文件标签tagt和认证标签集合φ一起上传给云服务器;云服务器计算h(f),验证认证标签的正确性以及hi=h(f)是否成立。若验证通过,云服务器将用户ui上传的内容存储起来,并返回用户ui文件f密文的链接和标签tagt;否则,云服务器返回出错消息;
(2)若云服务器中已经存储过文件f,则需要用户ui通过与云服务器的pow挑战。首先,云服务器随机选择文件f中的s个密文消息块,并将消息块的索引集合k={k1,…,kl}发送给用户ui,其中1≤l≤n;收到集合k后,用户ui计算集合中每个索引kq(q=1,…,l)对应的证明值
进一步,所述步骤四具体包括:若用户ui想要验证此前上传文件f的完整性,则首先将文件f的认证标签tagt发送给审计者;审计者收到后利用spk验证文件认证标签tagt的有效性;若有效,则选择一个索引集合
审计者收到响应值p后,验证以下等式:
若成立,返回“true”;否则,返回“false”。
本发明的另一目的在于提供一种实施所述支持密态数据去重和完整性验证方法的支持密态数据去重和完整性验证系统,所述支持密态数据去重和完整性验证系统包括:
云服务器,用于实现用户的客户端去重,发送响应值至第三方审计服务器;同时接收第三方审计服务器的挑战值;
用户,用于发送消息块的hash值到密钥服务器,发送认证标签至密钥服务器;
密钥服务器,用于发送文件的加密密钥至用户;
第三方审计服务器,用于发送密钥更新信息至用户。
本发明的另一目的在于提供一种实施所述支持密态数据去重和完整性验证方法的云服务器。
本发明的另一目的在于提供一种实施所述支持密态数据去重和完整性验证方法的云存储系统。
综上所述,本发明的优点及积极效果为:在实现抗密钥泄露时,每一时间周期用户的签名私钥均为两部分的乘积,一部分是审计者根据自身私钥生成的更新消息,另一部分是由用户的私钥和当前时间周期计算而来。任何时间周期的签名私钥都需要用户和审计者共同生成,保证了密钥更新的安全性和高效性。由于时间周期是认证标签的一部分,且无法分离出来,相同消息在不同时间周期的认证标签是不同的,实现了强抗密钥泄露。
本发明利用布隆过滤器实现文件的客户端去重,用户在云服务器已经存储相同文件的情况下无需进行二次上传,同时也能避免恶意用户在不拥有该文件的情况下通过伪造证明值非法获取该文件;在挑战与响应过程中,云服务器挑选文件的一部分消息块进行验证,审计者无法通过云服务器发送的响应值获得该文件。
与现有技术方案相比,本发明首次在支持数据去重的完整性验证方案中解决密钥泄露问题,发明不仅仅考虑密钥泄露之前的安全性,还考虑到密钥泄露之后的用户数据机密性保护问题,使得用户在某一时间周期内的私钥不会影响到其他时间周期,且敌手即使通过了pow挑战也很难恢复出明文数据。发明达到了强抗密钥泄露、可检测性以及响应值和证明值的不可伪造性。
附图说明
图1是本发明实施例提供的支持密态数据去重和完整性验证方法流程图。
图2是本发明实施例提供的支持密态数据去重和完整性验证系统结构示意图;
图中:1、云服务器;2、用户;3、密钥服务器;4、第三方审计服务器。
图3是本发明实施例提供的支持密态数据去重和完整性验证方法实现流程图。
图4是本发明实施例提供的用户、云服务器和tpa计算开销的变化趋势示意图;
图中:(a)无副本;(b)有副本。
图5是本发明实施例提供的用户、云服务器和tpa通信开销的变化趋势示意图;
图中:(a)无副本;(b)有副本。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术数据安全得不到保证;导致上传者身份的混淆;用户的密钥在完整性审计的过程中可能会遭到窃取的问题;本发明在实现抗密钥泄露时,每一时间周期用户的签名私钥均为两部分的乘积,一部分是审计者根据自身私钥生成的更新消息,另一部分是由用户的私钥和当前时间周期计算而来,任何时间周期的签名私钥需要用户和审计者共同生成。
下面结合附图对本发明的应用原理做详细的描述。
如图1所示,本发明实施例提供的支持密态数据去重和完整性验证方法包括:
s101:生成系统公开参数及用户和审计者的公私钥对;
s102:审计者每到一个时间间隔就利用自己的私钥协助用户更新其签名私钥;
s103:用户在上传文件之前先将文件的哈希值发送给云服务器验证云服务器中是否存储过该文件;若没有则上传文件与签名,否则用户完成与云服务器的持有性证明协议;
s104:审计者与云服务器进行挑战与响应协议,验证云服务器存储的文件是否完整。
如图2所示,本发明实施例提供的支持密态数据去重和完整性验证系统包括:云服务器1、用户2、密钥服务器3、第三方审计服务器4。
云服务器1,用于实现用户2的客户端去重,发送响应值至第三方审计服务器4;同时接收第三方审计服务器4的挑战值。
用户2,用于发送消息块的hash值到密钥服务器3,发送认证标签至密钥服务器3。
密钥服务器3,用于发送文件的加密密钥至用户2。
第三方审计服务器4,用于发送密钥更新信息至用户2。
下面结合附图对本发明的应用原理作进一步的描述。
如图3所示,本发明实施例提供的支持密态数据去重和完整性验证方法包括:
步骤一,给定安全参数1k,生成系统公开参数
步骤二,在时间周期t开始时,审计者利用私钥sktpa计算更新消息
步骤三,若用户ui在时间周期t内需要上传文件f,首先需要将文件分为n个块m1,m2,…,mn,其中
情况1:若云服务器中没有找到相同的hi,j,则说明云服务器中没有存储过文件f,这时云服务器发送“no”给用户ui。用户ui收到后利用更新消息δt计算
用户ui计算文件f中每个消息块mj(j=1,…,n)相应的证明值tj=h1(mj)和伪随机值pj=prf(tj,idj),然后将每个伪随机值pj插入布隆过滤器bff中,并将布隆过滤器bff连同文件f的密文集合(idf,{ctj|j=1,…,n}),文件标签tagt和认证标签集合φ一起上传给云服务器;云服务器计算h(f),验证认证标签的正确性以及hi=h(f)是否成立。若验证通过,云服务器将用户ui上传的内容存储起来,并返回用户ui文件f密文的链接和标签tagt;否则,云服务器返回出错消息;
情况2:若云服务器中已经存储过文件f,则需要用户ui通过与云服务器的pow挑战。首先,云服务器随机选择文件f中的s个密文消息块,并将这些消息块的索引集合k={k1,…,kl}发送给用户ui,其中1≤l≤n;收到集合k后,用户ui计算集合中每个索引kq(q=1,…,l)对应的证明值
步骤四,若用户ui想要验证此前上传文件f的完整性,则首先将文件f的认证标签tagt发送给审计者;审计者收到后利用spk验证文件认证标签tagt的有效性,若有效,则选择一个索引集合i={id1,id2,…,idc},其中的每个元素均在[1,n]中;对于每个
审计者收到响应值p后,验证以下等式:
若成立,返回“true”;否则,返回“false”。
为了进一步证明本发明的技术效果和优势,以下对本方法进行了效率分析与仿真分析。
目前没有能同时支持抗密钥泄露和密态数据去重的完整性审计方案,因此本发明方案在功能上具有优势。接下来,本发明从计算效率和通信效率两方面对方案的效率进行分析与实验仿真。见表1、图4和图5。为便于表示,用exp,mul,hash,pair分别表示指数运算、乘法运算、hash运算和双线性对运算。
表1支持密钥更新和密文数据去重的完整性验证方案的计算开销
件上传阶段,若云服务器中没有存储需要上传的文件,则用户需要计算签名私钥skt,文件标签tagt,认证标签集合φ和布隆过滤器bff,计算开销为(n+1)·hash+2exp+3mul+sig+prf,其中sig和prf分别为数字签名和伪随机函数;反之,若云服务器中已经存储过该文件,则用户需要生成pow挑战的证明值,相应的计算开销为l·hash。在挑战阶段,tpa仅随机选择一些消息块的索引生成挑战值,因此计算开销很小;然而在响应阶段,云服务器生成响应值时的计算开销为c·exp+(c-1)·mul+c·mul,其中c表示挑战值中选取消息块的个数。最后,在验证阶段,tpa判断响应值是否有效,计算开销为(c+2)·exp+(c+2)·mul+3pair。表1分析了方案的总体计算开销。
本发明方案的通信开销主要包括文件上传、挑战阶段和响应阶段三部分的开销。上传文件的过程用户需要将{f,t,σ1,…,σn,bff}发送给云服务器,这部分的通信开销为|f|+(n+1)|q|,其中,|f|,|q|分别是文件的大小和
通过实验仿真对方案的计算开销和通信开销进行分析,利用pbc库给出linux环境下的效率分析结果。假设
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。