增量可证数据完整性验证方法、设备和系统的利记博彩app

文档序号:7920572阅读:225来源:国知局

专利名称::增量可证数据完整性验证方法、设备和系统的利记博彩app
技术领域
:本发明涉及存储网络安全领域,具体涉及增量可证数据完整性(IPDI)验证方法、设备和系统。
背景技术
:互联网正朝着从个人的本地存储向全球规模的数据存储外包服务而高速发展。AmazonSimpleStorageService(AmazonS3)(参考文献1:AmazonSimpleStorageService(AmazonS3),http://aws.amazon.com/s3)是这禾中互联网存储系统之——。AmazonS3提供了可用于存储和获取数据的网络服务接口。AmazonS3的服务是全球规模和商业类别的,而其价格十分合理对于所用存储量,US$0.15GB/月;对于所有传入数据,US$0.10GB/月;对于第一个10TB/月的数据传出,US$0.18GB/月。对于寻求免费全球规模存储服务的人,也有如下服务。MediaMax(参考文献2:MediaMaxFreeOnlineStorage,http://www.mediamax.com)提供25GB免费在线存储,GmailFileSystem(参考文献3:GmailDriveShellExtension,http://www.viksoe.dk/code/gmail.htm)项目已将免费Gmail帐户转换为一个永久免费的网络存储空间。利用这些公共存储空间服务,客户端可以丢弃自己的本地存储子系统,通过互联网从任何地方随时获取数据。这种惊人的前景吸引了大量产业力量,这些力量已使存储外包成为了不可避免的趋势。IETFNetworkWG抓住了这种趋势,从而发布了RFC4810"Long-TermArchiveServiceRequirement"(参考文献4:RFC4810,Long-TermArchiveServiceRequirement,IETFNetworkWG,http:〃www.ietf.org/rfc/rfc4810.txt)。RFC4810描述了对负责长期保存数据的长期存档服务的要求。支持数据存在的无抵赖性、完整性和归属性是对长期存档服务的主要要求。如RFC4810所记载的,长期存档服务必须能够在从接收到数据直到该数据的存档周期到期时,提供可用于证明该服务所负责的数据的完整性的证据。从客户端存储到存档服务外包数据具有两个基本步骤,一是提交数据,另一步骤是获取数据。用于数据完整性验证的不成熟解决方案包括从存档服务器中获取数据。但是,在目前以及不远的将来,要提供从远程存档服务器到客户端验证器的高带宽是不切实际的。尤其对于移动客户端,难以享有高带宽连接。此外,如RFC4810所述,可以是用于检查用户完整性的第三方验证器。在这种情况下,第三方验证器不应该访问用户数据;否则它可能侵犯用户数据隐私。为了验证数据完整性,同时避免从存档服务器中获取数据,现有技术采用了三步骤操作模型,如图1所示。注意,为了简化表示(并且不失一般性),以下将以客户端(即,数据所有者)即是用户数据完整性验证器为例。但如上所述,实际上验证器也可以是第三方,而不是数据所有者。在步骤0,数据的数字指纹由客户端产生井与该数据一并发送至存档服务器。除了数据本身,存档服务器还需要存储数据的指纹。在步骤l,客户端向存档服务器发送关于数据完整性的质询。存档服务器一并利用数据内容、数据指纹和客户端质询,计算数据完整性证明,在步骤2,将该数据完整性证明返回客户端,以用于验证。步骤1和步骤2可以重复多次,直到数据的存档周期到期为止。基于上述操作模型,以下列出了针对可证数据完整性问题的任何技术方案应该考虑的关键因素。(I)客户端产生数据指纹所花费的时间(II)数据指纹所消耗的存档服务器存储大小(III)验证器向存档服务器发送的质询的大小(IV)存档服务器计算数据完整性证明所用的时间(V)存档服务器向验证器发送的数据完整性证明的大小(VI)验证器检查数据完整性证明所用的时间(VII)处理数据增量改变的能力存在看似可以处理数据完整性的简单解决方法。初始,数据所有者将数据划分成多个部分,并针对每个部分预先计算消息鉴别码(MAC)。无论验证器、数据所有者或第三方何时需要数据完整性证明,它从存档服务中获取多个随机选择的部分,并重新计算每个部分的MAC,以用于比较。Deswarte等人(参考文献5:Y.Deswarte,J.J.Quisquater,A.Saidane,Remoteintegritychecking,InProc.ofConferenceonIntegrityandInternalcontrolinInformationsystems(IICIS,03),2003)和Filho等人(参考文献6:D.L.G.Filho,P.S.LM.Baretto.DemonstratingDataPossessionandUncheatableDataTransfer,http:〃印rint.iacr.org/2006/150,pdf)提出了使用基于RSA的哈希函数来验证存档服务器正确存储了文件。最近,Ateniese等人(参考文献7:G.Ateniese,R.B證s,R.Curtmola,J.Herring,LKissner,Z.Peterson,D.Song,ProvableDataPossessionatUntrustedStores,http:〃印rint.iacr.org/2007/202,pdf)提出了一种基于RSA的可证数据持有方案,即S-PDP方案,其中"S"代表"采样"。采样的意思是,客户端随机选择一部分数据,并要求存档服务器显示该随机选择的数据处于健康状态(即,所选数据的数据完整性被保持)的证据。S-PDP方案不需要对整个文件进行幂运算,通信复杂度也是恒定的,这使S-PDP方案成为现有技术方案中最有效的方案。不成熟方案的缺点在于,其通信复杂度与所查询的数据量大小是成线性关系的。此外,在第三方验证器的情况下,禁止向验证器发送用户数据,因为这侵犯了数据所有者的隐私。为了避免从存储服务器中获取数据,可以通过选择多个秘密密钥并预先计算该数据的多个带密钥哈希MAC。因此,验证器可以每次向存储服务器公开秘密密钥,并要求其计算带密钥的哈希MAC,用于比较。但是,可以验证特定数据的次数受到必须先验固定的秘密密钥的数目的限制。当密钥用完时,为了计算新的带密钥的哈希MAC,不可避免要从存档服务器中获取数据。参考文献5和6的提议的缺点在于存档服务器不得不对整个文件进行幂运算。作为参考,给定2048比特RSA模数,在IntelCoreDuo2.16GHz进行一次全指数幂运算要花费61.325毫秒。因此,每兆字节的幂运算需要251.3秒。这意味着为了测试64MB文件的完整性,在客户端可以接收到数据完整性证明之前,存档服务器要花费16083.8秒。S-PDP方案的一个问题在于其设计目的,即采样,有时对于数据拥有者可能毫无意义。通过采样,S-PDP方案试图以似乎较高的检测概率容许文件块错误。例如,参考文献7论述了如何在1%的文件块错误的情况下达到99%的检测概率。但是,很多类型的文件甚至不能容忍一个比特的错误。例如,媒体文件中编解码配置参数所处于的首部的丢失会导致难以呈现该文件。另一示例是嵌入加密文件中的(公钥加密的)对称加密密钥的损坏会导致无法再恢复成明文的垃圾密文。通常,数据所有者要求的是100%的数据安全。这是无论如何都不可妥协的。S-PDP方案的另一问题在于,利用其构建的可第三方验证(或所谓的公开可验证性)系统效率非常低。为了公开可验证,S-PDP方案强制每个文件块必须小于RSA公钥e。以2048比特RSA模为例,公钥最多可以是1024比特。因此,根据公开可验证S-PDP方案的解决方法必须在逻辑上将文件分为多个1024比特的文件块。结果产生大量文件块,并且必须为每个文件块产生标签。换言之,标签的大小至少是文件本身的两倍,并且客户端向文件加标签所花费的时间也太长,从而在实际中是不可行的。转让给本申请同一申请人的在先中国发明专利申请CN200810165864.3提出了一种基于配对的可证数据完整性(PDI)方案。该在先PDI方案很好地满足了上述要求(I)到(VI),但是不能满足上述要求(VII)。S卩,该PDI方案不能对已经外包的数据进行增量改变。增量改变意味着向数据文件增加新的数据段。该PDI方案如果允许进行增量改变的话则会破坏安全性。也就是说,一旦数据文件已经进行过预处理(例如,针对该PDI方案产生指纹)并被外包出去,即,向第三方验证器公开了数据预处理所用的密钥,那么该PDI方案让新的数据段进入文件是不安全的。注意到,现有技术尚不能满足所有的七条要求(I)到(VII)。
发明内容鉴于上述现有技术的缺点,本发明提出了增量可证数据完整性(IPDI)验证方法,该方法基于CN200810165864.3(在此附上其全文公开用作参考)中公开的PDI方案,并克服了现有技术(不仅是该PDI方案)所遇到的增量改变难题。根据先前提出的PDI方案,已经提出了一种产生数据指纹的方法,包括步骤将数据划分成N个块Mi,i=1,2,...,N;将每ne个块组合成超块,以得到"=「^7"」个超块;从有限循环群^-〈^〉中选择ne个元素hj,j=1,2,...,ne;通过使用针对第k超块的定位符Wk、所选的nB个元素hj和第一私钥x,分别产生第k超块的指纹Tk,k=1,2,...,n。新提出的IPDI方案与该PDI方案的不同主要在于该IPDI方案引入了称作"虚拟文件块(VFB)"的概念。在该IPDI方案中,VFB被视为"真实"文件块,且"-「iV/"l个超块中的每一超块均由ne个数据块加上虚拟文件块(VFB)构成。因此,根据新提出的IPDI方案,提供了一种产生数据指纹的方法,包括步骤将数据划分成N个块Mi,i=1,2,...,N;将每ne个块与虚拟文件块^(wh+'+(v组合成超块,以得到"=[>/1个超块;从有限循环群(G,=〈&〉中选择1!8+1个元素hj,j=+0,1,2,..,nB;通过使用针对第k超块的定位符Wk、所选的nB+l个元素hj和第一私钥x,分别产生第k超块的指纹Tk,k二l,2,...,n。优选地,所述nB+l个元素hj是与第-私钥x相对应的公钥的--部分优选地,所述nB+l个元素hj满足关系~=g卩,r,.是秘密密钥优选地,根据—Z+产生第k超块的指纹Tk,zM是所述数据的标识符。更加优选地,第k超块的定位符Wk是至少以k为输入的哈希值。优选地,根据t;=产生第k超块的指纹Tk。更加优选地,第k超块的定位符Wk是至少以k和所述数据的标识符zM为输入的哈希值。根据本发明第二方面,提供了一种用于产生数据指纹的设备,包括虚拟文件块产生单元,用于针对每个待产生的超块,产生虚拟文件块^(w).^.+cr;超块产生单元,用于将数据划分成N个块Mi,i=1,2,...,N,并将每nB个块与来自虚拟文件块产生单元的虚拟文件块M(^.吣.+。.组合成超块,以得到"「iV/"l个超块;以及指纹产生单元,用于从有限循环群G,二〈ft〉中选择ne+l个元素hj,j=+0,1,2,...,rv并通过使用针对第k超块的定位符Wk、所选的nB+l个元素hj和第一私钥x,分别产生第k超块的指纹Tk,k=1,2,...,n。优选地,所述nB+l个元素hj是与第一私钥x相对应的公钥的一部分。优选地,所述nB+l个元素hj满足关系、=g卩,rj是秘密密钥。先前提出的PDI方案可以在极高的概率(例如,1-2—64)上确保数据的数据完整性。相比于实现了(1)确保每一比特数据的数据完整性,(2)客户端发送至存档服务器的质询的大小恒定,以及(3)存档服务器发送至客户端的数据完整性证明的大小恒定,的现有技术,该PDI方案主要具有如下四个优点(I)客户端产生数据指纹的速度最快;(II)存档服务器产生客户端质询响应的速度最快;(III)客户端验证存档服务器的响应的速度最快;(IV)验证器可以是第三方验证器,同时仍然保持上述三个优点(I)-(III)。此外,指纹的大小最小。具体以64MB的数据文件为例。安全强度设为可与2048比特RSA特征相比,1=64。当客户端是IntelCoreDuo2.16GHz处理器,存档服务器端是IntelQx6700Core2Quad2.66GHz处理器时,使用PDI方案,客户端花费12.7秒产生文件指纹;存档服务器花费1.4秒产生变换指纹和变换超块的知识证明;客户端花费0.4秒验证知识证明。所有这些时间值甚至低于现有基于RSA方案的存档服务器在最好情况下所能达到的理论下限。有利地,新提出的IPDI方案能够安全地实现向已经产生指纹且被外包的数据文件添加增量数据。该IPDI方案满足了所有七条要求(I)到(VII),并且不会带来额外的存储消耗。结合附图,从下面对本发明非限制性实施例的详细描述中,本发明的上述和其他目的、特征和优点将更加明显,附图中图1示出了用于证明数据完整性的工作模型;图2示出了根据本发明的数据完整性证明方法(原子证明过程)和数据完整性验证方法(原子验证过程)的流程图;图3是根据先前提出的PDI方案的数据的逻辑图;图3a是根据新提出的IPDI方案的数据的逻辑图;图4示出了可选的数据完整性证明的工作模型;图5示出了另一可选的数据完整性证明的工作模型;图6示出了用于实现本发明的客户端1400的框图;图7示出了用于实现本发明的存档服务器1500的框图;以及图8示出了用于实现本发明的验证器1600的框图。具体实施例方式下面,根据附图描述本发明。在以下描述中,一些具体实施例仅用于描述目的,而不应该理解为对本发明有任何限制,而只是本发明的示例。省略了常规结构或构造,以免导致对本发明的理解不清楚。原理说明这里提出的增量可证数据完整性(IPDI)方案不仅克服了现有技术中遇到的所有问题,在性能上还优于各种现有技术。IPDI方案基本具有如下三个步骤,这与图1所示的工作模型相符合。步骤0':IPDI方案需要有限循环群(^=〈ffl〉。优选地,G,是椭圆曲线上的有限循环群。在本发明公开中,使用传统的乘法群符号,而不是在椭圆曲线背景下经常使用的加法符号。客户端具有私钥x和相应的公钥。客户端将数据文件划分成N个块Mi,i=1,2,...,N。每nB个块与虚拟文件块M(,—D^+.+。.组合在一起,形成超块。因此,将数据划分成"=「^/,个超块。如果数据文件的长度小于n个超块所需的,则在逻辑上对数据文件加零。在本说明书中,逻辑上,超块中虚拟文件块位于nB个块之前。但是,超块中虚拟文件块可以位于nB个块之后,或者可以位于任何指定位置。在此,下标"+o"用来表示超块中紧接第一真实文件块之前的块。对于每个数据文件,客户端准备^的nB+l个元素hi,i=+0,1,2,...,nB。在优选情况下,客户端选择1>以使/^=^,并保持ri是秘密的。更优选的,这些元素hi是客户端公钥的一部分,从而独立于数据文件。客户端利用其私钥和上述nB+l个元素hi,产生所有超块的指纹。例如,第i个超9块的指纹的形式为T.=W.it&,其中定位符Wi是至少以i为输入的哈希值,例如,定位符Wi的输入还可以包括数据文件的文件名和/或版本号;ZM是针对数据文件而特别挑选的标识符,例如,为一组数据文件选择一个标识符ZM,而为另一组数据文件选择另标识符z'M。可选地,指纹可以计算为r,.i,其中定位符Wi采用和ZM作为输入。在优选情况下,客户端知道ri,以使因此,通过将ft^'—"w客户端可以利用知识ri来加快指纹产生过禾'王。*2r,.—')、刀^=+。,步骤0'的结果为,客户端得到n个超块的n个指纹。客户端将所有指纹与数据文件和nB个元素hi—并发送给存档服务器。在优选情况下,nB个元素hi客户端公钥的一部分,存档服务器可以已从例如公钥目录中得到这些元素。因此,不必将这些元素连同数据文件一起传送。步骤1,:客户端向存档服务器发送"质询",以确定数据的完整性。基于从客户端接收到的质询,存档服务器需要执行多次原子证明过程,例如,执行V次。2^个盒子,并随机地将n个指对于每个原子证明过程,存档服务器首先构造①纹分配到盒子中。数目①和随机性由从客户端接收到的"质询"确定。每个指纹必须放入一个且仅这一个盒子中。注意,每个指纹精确地对应于一个超块,在所有n个指纹全部放入盒子之后,每个盒子均有"封装超块"及该"封装超块"的"封装指纹",后者是基于分配给该盒子的指纹产生。例如,考虑只有第n和第o个超块上的两个指纹放入第A个盒子的情况。该盒子的"封装超块"包含A,M,、+j+ikU^,j=+0,1,2,...,rv该"封装超块"上的"封装指纹"是&=^义。接下来,通过向所有盒子的"封装超块"和"封装指纹"应用另一随机性,存档服务器产生一个"变换超块"和该"变换超块"上的一个"变换指纹"。这里的随机性同样由从客户端接收到的"质询"确定的。继续采用上述示例,"变换超块"包含丑,=^>^^^,j=1,2,...,rv"变换超块"上的"变换指纹"是T^fl:/r',其中a,是由客户端的"质询"确定的随机数。最后,存档服务器产生"变换超块的知识证明",这可以直接是"变换超块"。可选地,变换超块的知识证明可以是通过标准交互式或非交互式零知识证明技术的"变换超块"的内容的知识。可选地,客户端"质询"包含Hi=hie,i=+0,1,2,...,rv客户端为每个质询选择不同e的并对e保密。在优选情况下,Hi是客户端公钥的一部分,e是客户端私钥的一部分。存档服务器利用Hi,计算"变换超块的知识证明"为H:。存档服务器需要向客户端发送作为原子证明过程输出的"变换指纹"T和"变换超块的知识证明"H。存档服务器总共应该重复原子证明过程V次,从而可以选择^=f〖/+l用于决定构造的盒子总数,其中1由客户端选择,并确定了安全级别。选择随机数^的位长度为小。通过重复该原子过程V次,PDI方案的安全级别可以是(n/V)2—、这表示如果至少一个块受到损坏,则存档服务器能够说服验证器的概率最多为(n/uO,2一1。上述的"数目①和随机性由从客户端接收到的质询确定"以及"a,是由客户端的质询确定的随机数"还有其他参考实现。例如选择小=n,并将n个指纹均匀地分配到n个盒子中。即每个盒子有且只有一个指纹。选择^的位长度为1。此时选择V=l可实现安全级别n'2—、步骤2':客户端接收来自存档服务器的全部V次原子证明过程的输出。对于一次原子证明过程的每个"变换超块"上的"变换指纹"和"变换超块的知识证明",客户端执行原子验证过程。对于每个原子验证过程,客户端首先构造①个盒子,并在逻辑上随机地将定位符Wi分配到盒子中。因为该随机性由客户端选择的"质询"确定,所以该随机性与存档服务器用于分配指纹的随机性完全相同。每个定位符必须放进且仅放进一个盒子中。在所有n个定位符全部放入盒子之后,每个盒子中有基于分配给该盒子的定位符产生"封装定位符"。例如,考虑只有两个定位符W,和W。放入第A个盒子的情况。该盒子的"封装定位符"是接下来,通过向所有盒子的"封装定位符"应用上述另一随机性,客户端产生一个"变换定位符"。因为该随机性由客户端选择的"质询"确定,所以该随机性与存档服务器用于计算"变换指纹"的随机性完全相同。"变换定位符"是W^ft^"1,其中a,是由客户端的"质询"确定的随机数。最后,如果存档服务器产生"变换超块的知识证明"就是"变换超块"本身,客户端计算"变换超块的推定知识证明"为^、(""w)并将其与f[《'比较。如果相等,则原子验证过程输出成功。可选的,客户端计算"变换超块的推定知识证明"为^二(r"'vw)、并将其与从存档服务器接收到的值H比较。如果H=H',则原子验证过程输出成功。可选地,^、a;K'ftA,'-')、"如果指纹计算为:j=+0,则将"变换超块的推定知识证明"计算为(T1/x/W)仅在所有的原子验证过程均成功时,才使客户端相信存档服务器端保持了数据完整性。在存档服务器端有至少一个块损坏的情况下,客户端被错误说服的概率最大是2—、详细说明下面将更加详细地描述本发明。使用传统的乘法群符号,而不是椭圆曲线设置中常用的加法符号。11设^=&〉和G2="〉是具有附加群G=〈P〉的两个有限循环群,以使|G」=|G2|=问=P,其中P是某一较大质数。双线性映射e:&xG2—g是函数,以确保双线性:对于所有/^eG,、£G2,所有—GZp,e(h,,h,)=e(h"h2)ab。非退化3&GG,a/i2eG2,以使e(^,h2)-I,其中I是g的幺元。可计算存在用于计算e的高效算法。假设有设置算法Setup(),当输入安全参数lk时,输出上述双线性映射设置,并写作(p,G,2,g,ff"52'e)—。因为^,(G2和G都具有相同的质数阶p,根据双线性特性和非退化特性,易得给定(p,G"G2,g,^&,e)—Se鄉(l",以及6个伪随机函数p《{0,1}'—Zp、Pr/2:{0,1}'—G,、^/3(0):{0,1}*—~、p《FS:{0,1}'—Zp、pr/4(0):{0,1}—Z2^Ppr/5:G!—{o,l}作为系统参数。客户端产生数据指纹客户端具有秘密密钥&二zp2和公钥y=e<G2。优选地,客户端具有来自认证权威机构的关于Y的证书。可选地,例如,客户端秘密密钥e可以计算为e=prfjx,〃secondprivatekey〃)。此外,客户端计算(《=及,=A/)e,i=+0,1,2,...,nB作为其公钥。给定划分成N个块Mi(i=1,2,...,N)的数据M,每个块是1M比特长,必须满足1M<logp。以M为参考,例如,其合格的文件名称表示为FNM。图3示出了PDI方案中逻辑上如何将划分数据M并构造成n个超块。"=「7V/"J表示超块的数量。注意在数据M的长度不等于N'lM或n'(nB*lM)的情况下,在逻辑上向数据M追加零。根据本IPDI方案,在第i,i=1,2,,n,超块的nB个真实文件块M(,-D.w,…,M之前添加虚拟文件块M—d,^+,+。.。与长度为1M比特的真实文件块不同,虚拟文件块气,".+。.的长度为p比特。客户端按来计算虚拟文件块^(卜d.+.+。.。图3a中示出了第一超块,其中M+。是虚拟文件块,这里下标"+0"用来表示紧接第一真实文件块M工之前的块。同样的规则还适用于其他超块。可选地,通过选择,/,{0,1}'—Z,其中Z^Zp,虚拟文件块的长度可以小于p比特。客户端执行如下过程以产生数据的指纹。a)客户端选择^厶Zp,并计算定位符W^p《(MM,i^M)eG,,<formula>formulaseeoriginaldocumentpage13</formula>名为第i个超块的指纹。b)客户端用秘密密钥x签署(FNM,M,zM,(TJ),产生签名s。c)客户端针对FNM存储zM。d)客户端向存档服务器发送FNM,M,zM£zp,化}eG"口s。e)当接收到FNM,M,、eeG^和s时,存档服务器验证s是(FNM,M,zM,{TJ)的有效签名。客户端产生数据的增量指纹客户端执行如下过程以对数据的增量改变产生指纹。文件参考为^A^且文件密水钥为z的文件^已经具有nSB个超块。为了向jr的结尾添加一组新数据^^^".1,j2,...,nB,S卩,将i=nSB增加为i=r^+l,执行如下操作a)客户端计算虚拟文件块(VFB)1,Mb)客户端计算、+1=.n~气"'=+0)I+^M存档服务器证明数据完整性为了确定存档服务器是否以O比特误差保持FNM的内容(除了最大允许错误概率2—4,客户端质询存档服务器,并且存档服务器如下响应。i)客户端选择重复因子1《V《1。ii)客户端选择K,k2)^Z/,并向存档服务器发送FNM,chal=(1,V,k"k2)。iii)当接收到FNM和chal=(1,V,kpk2)时,存档服务器首先计算0=^/^+1,并初始化变换指纹l二0eg,k=1,2,...,V,其中0是&的幺元。然后,存档服务器重复如下原子证明过程独立的V次iii-a.初始化封装指纹g=OeGt,封装超块evj=O,变换超块E」=0,u=1,2,,①=2*,j=+0,1,2,,nBiii-b.对于每个i=1,2,n,计算b-i.o=prf3(i,k,k》b-ii.f。*=S,表示向第o个盒子的封装指纹加上Tib-iii.对于每个j=+0,l,2,...,rv计算e"+=M(i—modp,表示向第0个盒子的封装超块加上M(iii-c.对于每个v=1,2,.,O,计算c_i.av=prf4(v,k,k2)c-ii.Tt*二c-iii.对于每个j=+0,1,2,,riB,计算Ej+=avevjmodp,iii-d.计算A=^/5(ll丑/'),作为变换超块的知识证明iv)存档服务器向客户端发送(Tk,Hk),k=1,2,...,U/。可选地,例如,客户端选择"Zp并且计算k2=prf\(kp〃secondrandomnessdefiningkey")。这样"2可以不必传输。与先前提出的PDI方案中的"存档服务器证明数据完整性"过程相比,在使用文件块来进行计算的任何步骤或装置中,同样使用VFB来进行该计算,其中将VFB视为一真实块。客户端验证数据完整性当接收到(Tk,Hk),k=1,2,...,时,客户端独立地重复如下原子验证过程V次I)初始化w,=/e,封装定位符w;=/e&,u=o,l,...,o-l=2*-lII)对于每个i=1,2,,n,计算o=prf3(i,k,k》和W/二prf2(i,FNM)。III)对于每个v=1,2,,O,计算av=prf4(v,k,k2)和K*=°'。IV)计算和验证H,"《((TV+Z".Wj)。仅当一致性成立,输出真。如果所有的原子验证过程都输出真,则客户被数据完整性证明说服。与先前提出的PDI方案中的"客户端验证数据完整性"过程相比,不必进行任何修改。其他实施例可选方案1:对"存档服务器证明数据完整性"的步骤iii-d和"客户端验证数据完整性"的步骤IV)稍作修改,获得IPDI-2方案。这是支持公共可验证性的方案。附加地,客户端需要计算Ye=Ye和g2e=g/,作为其公钥。对"存档服务器证明数据完整性"的步骤iii-d的修改iii-dd.计算A=O丑,,作为变换超块的知识证明。对"客户端验证数据完整性"的步骤IV)的修改IV')计算并验证e(H^2):e(T;,iV^,)-e(Ww^)。IPDI-2方案支持公共可验证性,这是因为"存档服务器证明数据完整性"和"客户端验证数据完整性"的任何步骤均未涉及客户端的密钥,从而可以由第三方验证器有效地执行。可选方案1.1:对IPDI-2的"客户端验证数据完整性"稍作修改,产生加速IPDI-2方案。对"客户端验证数据完整性"的步骤IV')的修改14IV-e)选择k个随机数;eZ^Z,k=1,2,,U/,计算并验证采用加速IPDI-2方案,客户端验证数据完整性所需要执行的双线性对计算个数得到减少。可选方案2:对"客户端产生数据指纹"的步骤a)和"客户端验证数据完整性"的步骤IV)稍作修改,获得IPDI-3方案。对"客户端产生数据指纹"的步骤a)的修改aa)客户端选择标识符Zw厶Zp,并计算W^pr/^^FA^eg,2Gj,i=1,2,对"客户端验证数据完整性"的步骤IV)的修改IV")计算并验证H^pr/5((TVWj)可选方案3:在上述可选方案2之后,对"存档服务器证明数据完整性"的步骤iii-d和"客户端验证数据完整性"的步骤IV)稍作修改,获得IPDI-4方案。这是支持公共可验证性的另一方案。附加地,客户端需要计算Ye=g2e/!^Pg2e二g/,作为其公钥。对"存档服务器证明数据完整性"的步骤iii-d的修改iii-ddd.计算^=[I,作为变换超块的知识证明。=+0对"客户端验证数据完整性"的步骤IV)的修改IV"')计算并验证e(H^2):e(U》e(Ww^)。PDI-3方案支持公共可验证性,这是因为"存档服务器证明数据完整性"和"客户端验证数据完整性"的任何步骤均未涉及客户端的秘密密钥,从而可以由第三方验证器有改地执行c可选方案3.1:对IPDI-4的"客户端验证数据完整性"稍作修改,产生加速IPDI-4方案。对"客户端验证数据完整性"的步骤IV"')的修改IV-f)选择k个随机数^eZ;Z,k=1,2,...,u/,计算并验证<formula>formulaseeoriginaldocumentpage15</formula>采用加速IPDI-4方案,客户端验证数据完整性所需要执行的双线性对计算个数得到减少。可选方案4:对于上述所有方案,对"客户端产生数据指纹"的系统参数和步骤以及"客户端验证数据完整性"的步骤稍作修改,产生支持采样的方案。为了支持采样,需要附加的系统参数prf6:U),ir—{l,2,...,n}。质询chal=(1,V,KnK2)还附加地包括密钥二Zp和正数A。然后,对于"客户端产生数据指纹"和"客户端验证数据完整性"所有步骤,用i=prf6(K3,l),prf6(K3,2),...,prf6(K3,A)取代所有的i=1,2,...,n。因此,由于只涉及由i=prf6(K3,l),prf6(K3,2),...,prf6(K3,A)选择的A个超块,所以只验证所采样的超块的数据完整性。所以,采用可选方案4,存档服务器可以不使用所有超块来产生数据完整性证明。而是,客户端的质询向存档服务器通知将选择哪些和多少个超块来产生证明。可诜工作樽型通过引入参考文献4(RFC4810)所建议的时间戳权威机构(TSA),可以用来自TSA的数字签名时间戳替换质询密钥K,)二Z/,如图4所示。例如,将该时间戳表示为T。使用标准哈希算法SHA-1,可以获得k工=SHA-1(T,"1")和k2=SHA-1(T,"2")。采用这种替换,客户端所质询的是直到不早于由TSA发布的时间戳为止,数据是否被正确地保持。此时,除了原子验证过程的最后步骤(该步骤必须利用存档服务器的响应,即,(Tk,Hk))之外,存档服务器和客户端均可以很大程度地受益于预计算。此外,如图5所示,在验证器是第三方验证器的情况下,也可以从TSA的时间戳推导出!^和k2。在能够进行采样的情况下,例如,可以从TSA的时间戳推导出!^为k3=SHA-1(T,"3")。可选方案5:虚拟文件块(VFB)可以接受"真实"文件块"[M(,—lh+J,j=1,2,...,riB作为附加输入。也就是说,VFB可以如下计算得到硬件实现对本领域技术人员而言,显而易见的是本发明也可以通过硬件结构实现。以下示出了一些示例,这些示例仅用于描述目的,而不应该视为对本发明有任何限制。客户端图6示出了用于实现本发明的客户端1400的框图。这里,客户端1400用作产生数据指纹的设备。如图6所示,客户端1400包括虚拟文件块产生单元1405,用于针对每一待产生的超块,产生虚拟文件块^(^h+.+。.;超块产生单元1410,用于将数据划分成N个块Mi,i=1,2,...,N,并将每riB个块与来自虚拟文件块产生单元1405的虚拟文件块M(wh+.+。.组合成超±央,以得到"=「^/1个超块;以及指纹产生单元1420,用于从有限循环群G,=&〉中选择nB+l个元素hj,j=+0,1,2,...,nB,并通过使用针对第k超块的定位符Wk、所选的nB+l个元素hj和第一私钥x,分别产生第k超块的指纹Tk,k=1,2,...,n。客户端1400也包16括存储器1430,用于存储由超块产生单元1410和指纹产生单元1420使用或产生的信息,例如所产生的超块、有限循环群、所产生的指纹、定位符和私钥。但是,本领域技术人员必须清楚,存储器1430可以是上述独立的单元,或者可以是结合在超块产生单元1410和/或指纹产生单元1420中的一个/多个集成单元。类似地,nB+l个元素hj可以是与第一私钥x相对应的公钥的一部分。此夕卜,nB+l个元素hj可以满足关系^,rj是秘密密钥。公钥和/或秘密密钥也可以存储在存储器1430中。存档服务器图7示出了用于实现本发明的存档服务器1500的框图。这里,存档服务器1500用作证明数据完整性的设备。如图7所示,存档服务器1500包括接收单元1510,用于接收质询,所述质询至少包括第一随机性定义密钥^和第二随机性定义密钥k^封装单元1520,用于构造①个盒子,所述数目①由所述质询确定;用于以第一随机性定义密钥^定义的第一随机方式,随机地将n个指纹分配到所述①个盒子中,每个指纹放在一个盒子中;并用于基于所述n个指纹的分配,产生①个封装超块和相应的封装指纹;变换单元1530,用于以由第二随机性定义密钥k2定义的第二随机方式,随机地变换所述①个封装超块和相应的封装指纹,以产生变换超块和变换指纹;以及知识证明产生单元1540,用于产生所述变换超块的知识证明。存档服务器1500还可以包括存储器1550,用于存储由接收单元1510、封装单元1520、变换单元1530和知识证明产生单元1540使用或产生的信息。但是,本领域技术人员必须清楚,存储器1550可以是上述独立的单元,或者可以是结合在接收单元1510、封装单元1520、变换单元1530和知识证明产生单元1540中的一个/多个集成单元。知识证明产生单元1540可以产生作为变换超块本身的变换超块的知识证明。可选地,知识证明产生单元1540可以基于公钥和变换超块而产生变换超块的知识证明。质询还可以包括超块选择密钥对(k3,A),用于定义将由封装单元1520选择哪A个超块和相应指纹来用于数据完整性证明,而不是所有n个超块及相应指纹。质询还可以包括重复因子V,将接收单元1510、封装单元1520、变换单元1530和知识证明产生单元1540的操作重复V次,每次均产生变换超块的一个知识证明,表示为变换超块的第m个知识证明Hm,m=1,2,...,v。质询可以包含来自时间戳权威机构(TSA)的数字签名时间戳。此外,根据数字签名时间戳产生第一和第二随机性定义密钥kJPk2以及超块选择密钥k3中至少一个。此外,存档服务器1500还可以包括发送单元1560,用于发送变换超块的变换指纹和知识证明。验证器(客户端或第三方验证器)图8示出了用于实现本发明的验证器1600的框图。这里,验证器1600用作验证数据完整性的设备。对于本领域技术人员而言,显而易见的是验证器1600可以是客户端1400本身或第三方验证器。在验证器1600是客户端1400本身的前一种情况下,是指客户端1400包括如图6所示的用于产生数据指纹的子系统和如图8所示的用于验证数据的子系统。另一方面,在验证器1600是第三方验证器的后一种情况下,是指第三方验证器所必需的只是如图8所示的结构,而图6所示的结构是可选的。如图8所示,验证器1600包括质询产生和发送单元1610,用于产生并发送质询,所述质询至少包括第一随机性定义密钥^和第二随机性定义密钥!^2;接收单元1620,用于接收变换超块的变换指纹和知识证明;定位符封装单元1630,用于构造①个盒子,以所述第一随机方式,随机地将n个定位符Wk分配到①个盒子中,每个定位符放在一个盒子中,并基于所述n个定位符的分配,产生①个封装定位符;推定知识证明产生单元1640,用于以所述第二随机方式,随机变换所述①个封装定位符,以产生变换定位符,并根据所述变换指纹和所述变换定位符,产生所述变换超块的推定知识证明;比较器1650,用于将所述变换超块的推定知识证明与所接收的所述变换超块的知识证明相比较;以及验证单元1660,如果比较结果是肯定的,则验证所述数据的数据完整性。验证器1600也可以包括存储器1670,用于存储由质询产生和发送单元1610、接收单元1620、定位符封装单元1630、推定知识证明产生单元1640、比较器1650和验证单元1660使用或产生的信息。但是,本领域技术人员必须清楚,存储器1670可以是上述独立的单元,或者可以是结合在质询产生和发送单元1610、接收单元1620、定位符封装单元1630、推定知识证明产生单元1640、比较器1650和验证单元1660中的一个/多个集成单元。推定知识证明产生单元1640基于数据的标识符zm、变换指纹和变换定位符,产生变换超块的推定知识证明。推定知识证明产生单元1640还基于第一和第二私钥x和e产生所述变换超块的推定知识证明。由质询产生和发送单元1610产生的质询还包括超块选择密钥对(k3,A),用于定义将由定位符封装单元1630选择哪A个定位符来用于数据完整性证明,而不是所有n个定位符。由质询产生和发送单元1610产生的质询还包括重复因子V,将定位符封装单元1630、推断知识证明产生单元1640和比较器1650的操作重复V次,仅当所有比较结果均为肯定的时,验证单元1660才验证所述数据完整性。由质询产生和发送单元1610产生的质询包含来自时间戳权威机构(TSA)的数字签名时间戳。由质询产生和发送单元1610根据所述数字签名时间戳来确定第一和第二随机性定义密钥k工和k2以及超块选择密钥k3中至少一个。所提出的VFB的可选应用VFB的思想也可以应用于PDP方案。因此,可以如下构造能够处理数据文件增量改变的IPDP(基于参考文献7的第11页)。原理上,PDP方案可以视为PDI方案在nB=1时的简化情况。IPDP方案所做的基本上是对每一文件块mi计算VFB^。如果考虑超块包含一个文件块,即nB=1的情况,那么这和IPDI方案的核心思想完全相同,在IPDI方案中对每一超块(一组文件块)计算VFB并将该VFB添加到该超块。IPDP方案还对原始PDP方案稍作修改,以便在计算中考虑VFB。IPDP方案的优点在于这是目前为止能够满足上述要求(I)到(VII)的唯一基于RSA的方案。TagBlock(.):r,,m=.C.modAT,其中VFB^=pr/(w,z)。而且,h。GKQRN是公钥的附加参数(例如N、e、g和PRF():{0,1}*—QRn,其中edelmod小(N))。GenProof():r=r...r上=广…..尸i^(w'r■modiVV、lc'm、、lc。p^if((、^+…+^.C、+…+,"modA0,其中h。s:VGQRN,且H(.):{0,1}*—Z例如是SHA-1哈希函数。参数c、aj、ij,j=1,2,...,c、gs和h。s由质询确定。CheckProof():该部分保持不变。为了更加清楚且系统地理解本发明的这些细节,将在先中国发明专利申请CN200810165864.3的全部公开内容一并在此作为参考,从而相当于在本说明书中描述了所有这些已公开的内容,而不再重复。如果在理解本发明的过程中遇到一些疑问或困惑,可以参考CN200810165864.3,以解决甚至解释这些疑问和困惑。以上描述仅给出了本发明的优选实施例,而并不是要以任何方式限制本发明。因此,在本发明精神和原理内进行的任何修改、替换、改进等应该由本发明范围所涵盖。19权利要求一种产生数据指纹的方法,包括步骤将数据划分成N个块Mi,i=1,2,...,N;将每nB个块与虚拟文件块组合成超块,以得到个超块;从有限循环群中选择nB+1个元素hj,j=+0,1,2,...,nB;通过使用针对第k超块的定位符Wk、所选的nB+1个元素hj和第一私钥x,分别产生第k超块的指纹Tk,k=1,2,...,n。F2008101708040C0000011.tif,F2008101708040C0000012.tif,F2008101708040C0000013.tif2.根据权利要求1所述的产生数据指纹的方法,其中所述nB+l个元素hj是与第一私钥x相对应的公钥的一部分。3.根据权利要求1所述的产生数据指纹的方法,其中所述ne+l个元素hj满足关系,rj是秘密密钥。4.根据权利要求1所述的产生数据指纹的方法,其中根据<formula>formulaseeoriginaldocumentpage2</formula>产生第k超块的指纹Tk,zM是所述数据的标识符。5.根据权利要求4所述的产生数据指纹的方法,其中第k超块的定位符Wk是至少以k为输入的哈希值。6.根据权利要求1所述的产生数据指纹的方法,其中根据<formula>formulaseeoriginaldocumentpage2</formula>产生第k超块的指纹Tk。7.根据权利要求6所述的产生数据指纹的方法,其中第k超块的定位符Wk是至少以k和所述数据的标识符zM为输入的哈希值。8.根据权利要求1所述的产生数据指纹的方法,当新数据要添加到现有数据的结尾时,包括步骤将新数据划分成NNEW个块MiNEW,i=N+l,N+2,,N+NNEW;将每nB个块与虚拟文件块^(4,水超块;。,组合成超块,以得到n^w=通过使用针对第k超块的定位符Wk、所选的nB+l个元素hj和第一私钥x,分别产生第k超块的指纹Tk,k=n+l,n+2,,n+nNEW。9.根据权利要求1或8所述的产生数据指纹的方法,其中虚拟文件块^(wh+.+。.如下产生其中,zM是数据的标识符,FNM是数据的文件标识符,prfVFB()表示伪随机函数。10.根据权利要求1或8所述的产生数据指纹的方法,其中虚拟文件块A、-,h+.+。,如下产生<formula>formulaseeoriginaldocumentpage2</formula>其中,ZM是数据的标识符,FNM是数据的文件标识符,(M(wh+J是要与虚拟文件块^(Mhv+。'一起组合成超块的nB个块的数据集,prfVFB()表示伪随机函数。11.一种用于产生数据指纹的设备,包括虚拟文件块产生单元,用于针对每个待产生的超块,产生虚拟文件块^(w^+^;超块产生单元,用于将数据划分成N个块Mi,i=1,2,...,N,并将每nB个块与来自虚拟文件块产生单元的虚拟文件块^(wh+.+。.组合成超块,以得到"=「^/"5"|个超块;以及指纹产生单元,用于从有限循环群G,=〈ff,〉中选择nB+l个元素hj,j=+0,1,2,...,nB,并通过使用针对第k超块的定位符Wk、所选的nB+l个元素hj和第一私钥x,分别产生第k超块的指纹Tk,k二1,2,...,n。12.根据权利要求11所述的产生数据指纹的设备,其中所述nB+l个元素hj是与第一私钥x相对应的公钥的一部分。13.根据权利要求11所述的产生数据指纹的设备,其中所述nB+l个元素hj满足关系,rj是秘密密钥。14.根据权利要求11所述的产生数据指纹的设备,其中指纹产生单元根据<formula>formulaseeoriginaldocumentpage3</formula>产生第k超块的指纹Tk,zM是所述数据的标识符。15.根据权利要求14所述的产生数据指纹的设备,其中第k超块的定位符Wk是至少以k为输入的哈希值。16.根据权利要求11所述的产生数据指纹的设备,其中指纹产生单元根据<formula>formulaseeoriginaldocumentpage3</formula>产生第k超块的指纹Tk。17.根据权利要求16所述的产生数据指纹的设备,第k超块的定位符Wk是至少以k和所述数据的标识符zM为输入的哈希值。18.根据权利要求11所述的产生数据指纹的设备,当新数据要添加到现有数据的结尾时,虚拟文件块产生单元针对每个待产生的超块,产生虚拟文件块^(w).",+o,;超块产生单元将新数据划分成NNEW个块MiNEW,i=N+l,N+2,...,N+NNEW,并将每nB个块与虚拟文件块M(w^+,+。,组合成超i央,以得到n<formula>formulaseeoriginaldocumentpage3</formula>超块;以及指纹产生单元通过使用针对第k超块的定位符Wp所选的nB+l个元素hj和第一私钥x,分别产生第k超块的指纹Tk,k=n+l,n+2,...,n+nNEW。19.根据权利要求11或18所述的产生数据指纹的设备,其中指纹产生单元如下产生虚拟文件块MwW:<formula>formulaseeoriginaldocumentpage3</formula>其中,zM是数据的标识符,FNM是数据的文件标识符,prfVFB()表示伪随机函数。20.根据权利要求11或18所述的产生数据指纹的设备,其中指纹产生单元如下产生虚拟文件块^(w^+w:=《(MM,授m,{_—}),j=1,2…,nB其中,ZM是数据的标识符,FNM是数据的文件标识符,(M(w)^+J是要与虚拟文件块:^V,h+.+。.一起组合成超块的%个块的数据集,PrfVFB()表示伪随机函数。全文摘要本发明提出了一种增量可证数据完整性(IPDI)验证方法,其中首先在客户端侧产生数据的数字指纹,将指纹与数据一并发送至存档服务器;当需要时,客户端或第三方验证器向该存档服务器发送“质询”,以确定数据的完整性,该存档服务器通过使用接收到的指纹来证明数据的完整性;最后,客户端或第三方验证器根据来自存档服务器的响应该“质询”的输出,验证数据的完整性。另外,该IPDI方案安全地实现了向已经产生指纹且被外包的数据文件添加增量数据。文档编号H04L9/08GK101729250SQ20081017080公开日2010年6月9日申请日期2008年10月21日优先权日2008年10月21日发明者曾珂,雷浩申请人:日电(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1