CN101471779B - 可证数据完整性验证方法、设备和系统 - Google Patents

可证数据完整性验证方法、设备和系统 Download PDF

Info

Publication number
CN101471779B
CN101471779B CN200810165864.3A CN200810165864A CN101471779B CN 101471779 B CN101471779 B CN 101471779B CN 200810165864 A CN200810165864 A CN 200810165864A CN 101471779 B CN101471779 B CN 101471779B
Authority
CN
China
Prior art keywords
conversion
super piece
fingerprint
data
knowledge proof
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200810165864.3A
Other languages
English (en)
Other versions
CN101471779A (zh
Inventor
曾珂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC China Co Ltd
Original Assignee
NEC China Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC China Co Ltd filed Critical NEC China Co Ltd
Priority to CN200810165864.3A priority Critical patent/CN101471779B/zh
Priority to JP2008324039A priority patent/JP4884456B2/ja
Priority to US12/345,348 priority patent/US8254569B2/en
Publication of CN101471779A publication Critical patent/CN101471779A/zh
Application granted granted Critical
Publication of CN101471779B publication Critical patent/CN101471779B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提出了一种可证数据完整性(PDI)验证方法,其中首先在客户端侧产生数据的数字指纹,将指纹与数据一并发送至存档服务器;当需要时,客户端或第三方验证器向该存档服务器发送“质询”,以确定数据的完整性,该存档服务器通过使用接收到的指纹来证明数据的完整性;最后,客户端或第三方验证器根据来自存档服务器的响应该“质询”的输出,验证数据的完整性。具体地,在本发明中,分别提出了一种产生数据指纹的方法和设备、一种证明数据的数据完整性的方法和设备、以及一种验证数据完整性的方法和设备。

Description

可证数据完整性验证方法、设备和系统
技术领域
本发明涉及存储网络安全领域,具体涉及可证数据完整性(PDI)验证方法、设备和系统。
背景技术
互联网正朝着从个人的本地存储向全球规模的数据存储外包服务而高速发展。Amazon Simple Storage Service(Amazon S3)(参考文献1:Amazon Simple Storage Service(Amazon S3),http://aws.amazon.com/s3)是这种互联网存储系统之一。Amazon S3提供了可用于存储和获取数据的网络服务接口。Amazon S3的服务是全球规模和商业类别的,而其价格十分合理:对于所用存储量,US$0.15GB/月;对于所有传入数据,US$0.10GB/月;对于第一个10TB/月的数据传出,US$0.18GB/月。对于寻求免费全球规模存储服务的人,也有如下服务。MediaMax(参考文献2:MediaMax Free Online Storage,http://www.mediamax.com)提供25GB免费在线存储,Gmail FileSystem(参考文献3:Gmail Drive Shell Extension,http://www.viksoe.dk/code/gmail.htm)项目已将免费Gmail帐户转换为一个永久免费的网络存储空间。
利用这些公共存储空间服务,客户端可以丢弃自己的本地存储子系统,通过互联网从任何地方随时获取数据。这种惊人的前景吸引了大量产业力量,这些力量已使存储外包成为了不可避免的趋势。
IETF Network WG抓住了这种趋势,从而发布了RFC4810“Long-Term Archive Service Requirement”(参考文献4:RFC4810,Long-Term Archive Service Requirement,IETF Network WG,http://www.ietf.org/rfc/rfc4810.txt)。RFC4810描述了对负责长期保存数据的长期存档服务的要求。支持数据存在的无抵赖性、完整性和归属性是对长期存档服务的主要要求。如RFC4810所记载的,长期存档服务必须能够在从接收到数据直到该数据的存档周期到期时,提供可用于证明该服务所负责的数据的完整性的证据。
从客户端存储到存档服务外包数据具有两个基本步骤,一是提交数据,另一步骤是获取数据。用于数据完整性验证的不成熟解决方案包括从存档服务器中获取数据。但是,在目前以及不远的将来,要提供从远程存档服务器到客户端验证器的高带宽是不切实际的。尤其对于移动客户端,难以享有高带宽连接。此外,如RFC4810所述,可以是用于检查用户完整性的第三方验证器。在这种情况下,第三方验证器不应该访问用户数据;否则它可能侵犯用户数据隐私。为了验证数据完整性,同时避免从存档服务器中获取数据,现有技术采用了三步骤操作模型,如图1所示。注意,为了简化表示(并且不失一般性),以下将以客户端(即,数据所有者)即是用户数据完整性验证器为例。但如上所述,实际上验证器也可以是第三方,而不是数据所有者。
在步骤0,数据的数字指纹由客户端产生并与该数据一并发送至存档服务器。除了数据本身,存档服务器还需要存储数据的指纹。在步骤1,客户端向存档服务器发送关于数据完整性的质询。存档服务器一并利用数据内容、数据指纹和客户端质询,计算数据完整性证明,在步骤2,将该数据完整性证明返回客户端,以用于验证。步骤1和步骤2可以重复多次,直到数据的存档周期到期为止。
基于上述操作模型,以下列出了针对可证数据完整性问题的任何技术方案应该考虑的关键因素。
(I)客户端产生数据指纹所花费的时间
(II)数据指纹所消耗的存档服务器存储大小
(III)验证器向存档服务器发送的质询的大小
(IV)存档服务器计算数据完整性证明所用的时间
(V)存档服务器向验证器发送的数据完整性证明的大小
(VI)验证器检查数据完整性证明所用的时间
存在看似可以处理数据完整性的简单解决方法。初始,数据所有者将数据划分成多个部分,并针对每个部分预先计算消息鉴别码(MAC)。无论验证器、数据所有者或第三方何时需要数据完整性证明,它从存档服务中获取多个随机选择的部分,并重新计算每个部分的MAC,以用于比较。
Deswarte等人(参考文献5:Y.Deswarte,J.J.Quisquater,A.Saidane,Remote integri tychecking,In Proc.of Conferenceon Integrity and Internal control in Information systems(IICIS’03),2003)和Filho等人(参考文献6:D.L.G.Filho,P.S.L.M.Baretto.Demonstrating Data Possession and UncheatableData Transfer,http://eprint.iacr.org/2006/150.pdf)提出了使用基于RSA的哈希函数来验证存档服务器正确存储了文件。
最近,Ateniese等人(参考文献7:G.Ateniese,R.Burns,R.Curtmola,J.Herring,L.Kissner,Z.Peterson,D.Song,ProvableData Possession at Untrusted Stores,http://eprint.iacr.org/2007/202.pdf)提出了一种基于RSA的可证数据持有方案,即S-PDP方案,其中“S”代表“采样”。采样的意思是,客户端随机选择一部分数据,并要求存档服务器显示该随机选择的数据处于健康状态(即,所选数据的数据完整性被保持)的证据。S-PDP方案不需要对整个文件进行幂运算,通信复杂度也是恒定的,这使S-PDP方案成为现有技术方案中最有效的方案。
不成熟方案的缺点在于,其通信复杂度与所查询的数据量大小是成线性关系的。此外,在第三方验证器的情况下,禁止向验证器发送用户数据,因为这侵犯了数据所有者的隐私。为了避免从存储服务器中获取数据,可以通过选择多个秘密密钥并预先计算该数据的多个带密钥哈希MAC。因此,验证器可以每次向存储服务器公开秘密密钥,并要求其计算带密钥的哈希MAC,用于比较。但是,可以验证特定数据的次数受到必须先验固定的秘密密钥的数目的限制。当密钥用完时,为了计算新的带密钥的哈希MAC,不可避免要从存档服务器中获取数据。
参考文献5和6的提议的缺点在于存档服务器不得不对整个文件进行幂运算。作为参考,给定2048比特RSA模数,在Intel Core Duo2.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比特的文件块。结果产生大量文件块,并且必须为每个文件块产生标签。换言之,标签的大小至少是文件本身的两倍,并且客户端向文件加标签所花费的时间也太长,从而在实际中是不可行的。
发明内容
鉴于上述现有技术的缺点,本发明提出了可证数据完整性(PDI)验证方法,其中,首先在客户端侧产生数据的指纹,并将该指纹与数据一并发送至存档服务器;当需要时,客户端或第三方验证器向存档服务器发送“质询”,以确定数据的完整性,存档服务器使用接收到的指纹来证明数据的完整性;最后,客户端或第三方验证器根据来自存档服务器的响应该“质询”的输出,验证数据的完整性。
根据本发明的第一方面,提出了一种产生数据指纹的方法,包括步骤:将数据划分成N个块Mi,i=1,2,...,N;将每nB个块组合成超块,以得到
Figure G2008101658643D00051
个超块;从有限循环群中选择nB个元素hj,j=1,2,..,nB;通过使用针对第k超块的定位符Wk、所选的nB个元素hj和第一私钥
Figure G2008101658643D0005164258QIETU
,分别产生第k超块的指纹Tk,k=1,2,...,n。
优选地,所述nB个元素hj是与第一私钥
Figure G2008101658643D0005132242QIETU
相对应的公钥的一部分。
优选地,所述nB个元素hj满足关系 h j = g 1 r j , rj是秘密密钥。
优选地,根据
T k = ( W k · Π j = 1 n B h j M ( k - 1 ) * n B + j ) 1 x + z M
产生第k超块的指纹Tk,zM是所述数据的标识符。更加优选地,第k超块的定位符Wk是至少以k为输入的哈希值。
优选地,根据
T k = ( W k · Π j = 1 n B h j M ( k - 1 ) * n B + j ) x
产生第k超块的指纹Tk。更加优选地,第k超块的定位符Wk是至少以k和所述数据的标识符zM为输入的哈希值。
根据本发明第二方面,提供了一种证明数据的数据完整性的方法,其中采用根据本发明第一方面的产生数据指纹的方法产生所述数据的指纹,所述方法包括步骤:接收质询,所述质询至少包括第一随机性定义密钥κ1和第二随机性定义密钥κ2;构造Φ个盒子;以第一随机性定义密钥κ1定义的第一随机方式,随机地将n个指纹分配到所述Φ个盒子中,每个指纹放在一个盒子中;基于所述n个指纹的分配,产生Φ个封装超块和相应的封装指纹;以由第二随机性定义密钥κ2定义的第二随机方式,随机地变换所述Φ个封装超块和相应的封装指纹,以产生变换超块和变换指纹;以及产生所述变换超块的知识证明。
优选地,所述变换超块的知识证明是所述变换超块本身。
优选地,所述变换超块的知识证明是基于所述公钥和所述变换超块而产生的。更加优选地,变换超块的知识证明H表示为
H = Π j = 1 n B H j E j
Figure G2008101658643D00061
Figure G2008101658643D00062
是第二私钥,Ej是变换超块。可选地,变换超块的知识证明H表示为
H = prf 5 ( Π j = 1 n B H j E j )
Figure G2008101658643D00064
Figure G2008101658643D00065
是第二私钥,Ej是变换超块,prf5(·)表示伪随机函数。
优选地,所述质询还包括超块选择密钥对(κ3,Λ),用于定义将选择哪A个超块和相应指纹来用于数据完整性证明,而不是所有n个超块及相应指纹。
优选地,所述质询还包括重复因子ψ,将从构造盒子到产生知识证明的步骤重复ψ次,每次均产生变换超块的一个知识证明,表示为变换超块的第m个知识证明Hm,m=1,2,...,ψ。更加优选地,所述数目Φ等于2φ
Figure G2008101658643D0006140816QIETU
,l是安全级别因子,用于确定所述方法的安全级别。
优选地,由验证器选择第一和第二随机性定义密钥κ1和κ2以及超块选择密钥对(κ3,Λ)。
优选地,所述质询包含来自时间戳权威机构TSA的数字签名时间戳。更加优选地,根据所述数字签名时间戳产生第一和第二随机性定义密钥κ1和κ2以及超块选择密钥κ3中至少一个。
优选地,该证明数据完整性的方法还包括发送变换超块的变换指纹和知识证明。
根据本发明第三方面,提供了一种与根据本发明第二方面的证明数据完整性的方法相结合的、验证数据完整性的方法,其中采用根据本发明第一方面的产生数据指纹的方法产生所述数据的指纹,该方法包括步骤:产生并发送质询,所述质询至少包括第一随机性定义密钥κ1和第二随机性定义密钥κ2;接收变换超块的变换指纹和知识证明;构造Φ个盒子;以所述第一随机方式,随机地将n个定位符Wk分配到Φ个盒子中,每个定位符放在一个盒子中;基于所述n个定位符的分配,产生Φ个封装定位符;以所述第二随机方式,随机变换所述Φ个封装定位符,以产生变换定位符;根据所述变换指纹和所述变换定位符,产生所述变换超块的推定知识证明;将所述变换超块的推定知识证明与所接收的所述变换超块的知识证明相比较;以及如果比较结果是肯定的,则验证所述数据的数据完整性。
优选地,基于所述数据的标识符zM、所述变换指纹和所述变换定位符产生所述变换超块的推定知识证明。
优选地,还基于第一和第二私钥
Figure G2008101658643D0007140909QIETU
Figure G2008101658643D00071
产生所述变换超块的推定知识证明。更加优选地,所述变换超块的推定知识证明表示为
Figure G2008101658643D00072
T表示变换指纹,W表示变换定位符;并且第k超块的定位符Wk是至少以k和所述数据的标识符zM为输入的哈希值。可选地,所述变换超块的推定知识证明表示为
T表示变换指纹,W表示变换定位符;并且第k超块的定位符Wk是至少以k为输入的哈希值。
更加优选地,所述变换超块的推定知识证明产生为
Figure G2008101658643D00074
Figure G2008101658643D00075
Figure G2008101658643D00076
Figure G2008101658643D00078
是在
Figure G2008101658643D00079
的情况下、具有附加群
Figure G2008101658643D0007140955QIETU
的有限循环群,以使
Figure G2008101658643D000710
p是大质数;
Figure G2008101658643D000711
是双线性映射函数;T表示变换指纹,W表示变换定位符;第k超块的定位符Wk是至少以k为输入的哈希值;
Figure G2008101658643D0007141024QIETU
Figure G2008101658643D000712
是第一和第二私钥;如下将所述变换超块的推定知识证明与所述变换超块的知识证明相比较,
Figure G2008101658643D000713
H表示所述变换超块的知识证明。
更加优选地,所述变换超块的推定知识证明产生为
Figure G2008101658643D000714
Figure G2008101658643D000715
Figure G2008101658643D000716
Figure G2008101658643D000717
是在
Figure G2008101658643D000719
的情况下、具有附加群的有限循环群,以使
Figure G2008101658643D000721
p是大质数;
Figure G2008101658643D000722
是双线性映射函数;T表示变换指纹,W表示变换定位符;第k超块的定位符Wk是至少以k和所述数据的标识符zM为输入的哈希值;
Figure 2008101658643100002G2008101658643D0007141024QIETU
Figure G2008101658643D0008164513QIETU
是第一和第二私钥;如下将所述变换超块的推定知识证明与所述变换超块的知识证明相比较,
Figure G2008101658643D00081
H表示所述变换超块的知识证明。
优选地所述质询还包括超块选择密钥对(κ3,A),用于定义将选择哪Λ个定位符来用于数据完整性证明,而不是所有n个定位符。
优选地,所述质询还包括重复因子ψ,将从构造盒子到比较知识证明和推定知识证明的步骤重复ψ次,仅当所有比较结果均为肯定的时,才验证所述数据的数据完整性。
优选地,由验证器选择第一和第二随机性定义密钥κ1和κ2以及超块选择密钥对(κ3,Λ)。
优选地,所述质询包含来自时间戳权威机构TSA的数字签名时间戳,并根据所述数字签名时间戳产生第一和第二随机性定义密钥κ1和κ2以及超块选择密钥κ3中至少一个。
根据本发明第四方面,提供了一种用于产生数据指纹的设备,包括:超块产生单元,用于将数据划分成N个块Mi,i=1,2,...,N,并将每nB个块组合成超块,以得到
Figure G2008101658643D0008141340QIETU
个超块;以及指纹产生单元,用于从有限循环群
Figure G2008101658643D00082
中选择nB个元素hj,j=1,2,...,nB,并通过使用针对第k超块的定位符Wk、所选的nB个元素hj和第一私钥
Figure G2008101658643D0008141409QIETU
,分别产生第k超块的指纹Tk,k=1,2,...,n。
优选地,所述nB个元素hj是与第一私钥
Figure 2008101658643100002G2008101658643D0008141409QIETU
相对应的公钥的一部分。
优选地,所述nB个元素hj满足关系
Figure G2008101658643D00083
rj是秘密密钥。
根据本发明第五方面,提供了一种用于证明数据完整性的设备,包括:接收单元,用于接收质询,所述质询至少包括第一随机性定义密钥κ1和第二随机性定义密钥κ2;封装单元,用于构造Φ个盒子;用于以第一随机性定义密钥κ1定义的第一随机方式,随机地将n个指纹分配到所述Φ个盒子中,每个指纹放在一个盒子中;并用于基于所述n个指纹的分配,产生Φ个封装超块和相应的封装指纹;变换单元,用于以由第二随机性定义密钥κ2定义的第二随机方式,随机地变换所述Φ个封装超块和相应的封装指纹,以产生变换超块和变换指纹;以及知识证明产生单元,用于产生所述变换超块的知识证明。
优选地,所述知识证明产生单元产生作为所述变换超块本身的所述变换超块的知识证明。
优选地,所述知识证明产生单元基于所述公钥和所述变换超块而产生所述变换超块的知识证明。
优选地,所述质询还包括超块选择密钥对(κ3,Λ),用于定义将由所述封装单元选择哪Λ个超块和相应指纹来用于数据完整性证明,而不是所有n个超块及相应指纹。
优选地,所述质询还包括重复因子ψ,将所述封装单元、变换单元和知识证明产生单元的操作重复ψ次,每次均产生变换超块的一个知识证明,表示为变换超块的第m个知识证明Hm,m=1,2,...,ψ。
优选地,所述质询包含来自时间戳权威机构TSA的数字签名时间戳。更加优选地,根据所述数字签名时间戳产生第一和第二随机性定义密钥κ1和κ2以及超块选择密钥κ3中至少一个。
优选地,该证明数据完整性的设备,还包括:发送单元,用于发送变换超块的变换指纹和知识证明。
根据本发明第六方面,提供了一种用于验证数据完整性的设备,包括:质询产生和发送单元,用于产生并发送质询,所述质询至少包括第一随机性定义密钥κ1和第二随机性定义密钥κ2;接收单元,用于接收变换超块的变换指纹和知识证明;定位符封装单元,用于构造Φ个盒子,以所述第一随机方式,随机地将n个定位符Wk分配到Φ个盒子中,每个定位符放在一个盒子中,并基于所述n个定位符的分配,产生Φ个封装定位符;推定知识证明产生单元,用于以所述第二随机方式,随机变换所述Φ个封装定位符,以产生变换定位符,并根据所述变换指纹和所述变换定位符,产生所述变换超块的推定知识证明;比较器,用于将所述变换超块的推定知识证明与所接收的所述变换超块的知识证明相比较;以及验证单元,如果比较结果是肯定的,则验证所述数据的数据完整性。
优选地,所述推定知识证明产生单元基于所述数据的标识符zM、所述变换指纹和所述变换定位符产生所述变换超块的推定知识证明。更加优选地,所述推定知识证明产生单元还基于第一和第二私钥
Figure G2008101658643D0010165447QIETU
Figure G2008101658643D0010164558QIETU
产生所述变换超块的推定知识证明。
优选地,由所述质询产生和发送单元产生的所述质询还包括超块选择密钥对(κ3,Λ),用于定义将由所述定位符封装单元选择哪A个定位符来用于数据完整性证明,而不是所有n个定位符。
优选地,由所述质询产生和发送单元产生的所述质询还包括重复因子ψ,将所述定位符封装单元、推断知识证明产生单元和比较器的操作重复ψ次,仅当所有比较结果均为肯定的时,验证单元才验证所述数据完整性。
优选地,由所述质询产生和发送单元产生的所述质询包含来自时间戳权威机构(TSA)的数字签名时间戳。更加优选地,所述质询产生和发送单元根据所述数字签名时间戳来确定第一和第二随机性定义密钥κ1和κ2以及超块选择密钥κ3中至少一个。
根据本发明第七方面,提供了一种数据完整性验证系统,包括根据本发明第五方面的用于证明数据完整性的设备;以及根据本发明第六方面的用于验证数据完整性的设备。
优选地,该数据完整性验证系统还包括:根据本发明第四方面的用于产生数据指纹的设备。更加优选地,该用于产生数据指纹的设备也用作用于验证数据完整性的设备。
本发明PDI方案可以在极高的概率(例如,1-2-64)上确保数据的数据完整性。相比于实现了(1)确保每一比特数据的数据完整性,(2)客户端发送至存档服务器的质询的大小恒定,以及(3)存档服务器发送至客户端的数据完整性证明的大小恒定,的现有技术,本发明PDI方案主要具有如下四个优点:
(I)客户端产生数据指纹的速度最快;
(II)存档服务器产生客户端质询响应的速度最快;
(III)客户端验证存档服务器的响应的速度最快;
(IV)验证器可以是第三方验证器,同时仍然保持上述三个优点(I)-(III)。此外,指纹的大小最小。
具体以64MB的数据文件为例。安全强度设为可与2048比特RSA特征相比,l=64。当客户端是Intel Core Duo2.16GHz处理器,存档服务器端是Intel Qx6700 Core2 Quad 2.66GHz处理器时,使用PDI方案,客户端花费12.7秒产生文件指纹;存档服务器花费1.4秒产生变换指纹和变换超块的知识证明;客户端花费0.4秒验证知识证明。所有这些时间值甚至低于现有基于RSA方案的存档服务器在最好情况下所能达到的理论下限。
附图说明
结合附图,从下面对本发明非限制性实施例的详细描述中,本发明的上述和其他目的、特征和优点将更加明显,附图中:
图1示出了用于证明数据完整性的工作模型;
图2示出了根据本发明的数据完整性证明方法(原子证明过程)和数据完整性验证方法(原子验证过程)的流程图;
图3是数据的逻辑图;
图4~7示出了本发明的具体示例及其正确性的演示,其中使用6个块M1~M6,并以nB=2形成3个超块;
图8~11示出了实际实验结果,其中将各自均具有27个字节的256个块组合成一个超块,使用Φ==512个盒子,数据文件的大小为64M字节;
图12示出了可选的数据完整性证明的工作模型;
图13示出了另一可选的数据完整性证明的工作模型;
图14示出了用于实现本发明的客户端1400的框图;
图15示出了用于实现本发明的存档服务器1500的框图;以及
图16示出了用于实现本发明的验证器1600的框图。
具体实施方式
下面,根据附图描述本发明。在以下描述中,一些具体实施例仅用于描述目的,而不应该理解为对本发明有任何限制,而只是本发明的示例。省略了常规结构或构造,以免导致对本发明的理解不清楚。
原理说明
这里提出的可证数据完整性(PDI)方案不仅克服了现有技术中遇到的所有问题,在性能上还优于各种现有技术。
PDI方案基本具有如下三个步骤,这与图1所示的工作模型相符合。
步骤0’:
PDI方案需要有限循环群
Figure G2008101658643D0012172121QIETU
。优选地,
Figure G2008101658643D0012172130QIETU
是椭圆曲线上的有限循环群。在本发明公开中,使用传统的乘法群符号,而不是在椭圆曲线背景下经常使用的加法符号。客户端具有私钥
Figure G2008101658643D0012141634QIETU
和相应的公钥。
客户端将数据文件划分成N个块Mi,i=1,2,...,N。每nB个块组合在一起,形成超块。因此,将数据划分成
Figure G2008101658643D00121
个超块。如果数据文件的长度小于n个超块所需的,则在逻辑上对数据文件加零。对于每个数据文件,客户端准备
Figure G2008101658643D00122
的nB个元素hi,i=1,2,...,nB。在优选情况下,客户端选择ri,以使 h i = g 1 r i ,并保持ri是秘密的。更优选的,这些元素hi是客户端公钥的一部分,从而独立于数据文件。
客户端利用其私钥和上述nB个元素hi,产生所有超块的指纹。例如,第i个超块的指纹的形式为 T i = ( W i · Π j = 1 n B h j M ( i - 1 ) * n B + j ) 1 x + z M , 其中定位符Wi是至少以i为输入的哈希值,例如,定位符Wi的输入还可以包括数据文件的文件名和/或版本号;zM是针对数据文件而特别挑选的标识符,例如,为一组数据文件选择一个标识符zM,而为另一组数据文件选择另一个标识符
Figure G2008101658643D00125
可选地,指纹可以计算为 T i = ( W i · Π j = 1 n B h j M ( i - 1 ) * n B + j ) x , 其中定位符Wi采用i和zM作为输入。在优选情况下,客户端知道ri,以使 h i = g 1 r i . 因此,通过将
Figure G2008101658643D00128
替换为
Figure G2008101658643D00129
客户端可以利用知识ri来加快指纹产生过程。
步骤0’的结果为,客户端得到n个超块的n个指纹。客户端将所有指纹与数据文件和nB个元素hi一并发送给存档服务器。在优选情况下,nB个元素hi客户端公钥的一部分,存档服务器可以己从例如公钥目录中得到这些元素。因此,不必将这些元素连同数据文件一起传送。
步骤1’:
客户端向存档服务器发送“质询”,以确定数据的完整性。
基于从客户端接收到的质询,存档服务器需要执行多次原子证明过程,例如,执行次。
对于每个原子证明过程,存档服务器首先构造Φ=2φ个盒子,并随机地将n个指纹分配到盒子中。数目Φ和随机性由从客户端接收到的“质询”确定。每个指纹必须放入一个且仅这一个盒子中。注意,每个指纹精确地对应于一个超块,在所有n个指纹全部放入盒子之后,每个盒子均有“封装超块”及该“封装超块”的“封装指纹”,后者是基于分配给该盒子的指纹产生。例如,考虑只有第η和第ω个超块上的两个指纹放入第λ个盒子的情况。该盒子的“封装超块”包含 M ^ λj = M η * n B + j + M ω * n B + j , j=1,2,...,nB,该“封装超块”上的“封装指纹”是 T ^ λ = T η · T ω .
接下来,通过向所有盒子的“封装超块”和“封装指纹”应用另一随机性,存档服务器产生一个“变换超块”和该“变换超块”上的一个“变换指纹”。这里的随机性同样由从客户端接收到的“质询”确定的。继续采用上述示例,“变换超块”包含 E j = Σ λ = 1 Φ a λ · M ^ λj , j=1,2,...,nB,“变换超块”上的“变换指纹”是 T = Π λ = 1 Φ T ^ λ a λ , 其中aλ是由客户端的“质询”确定的随机数。
最后,存档服务器产生“变换超块的知识证明”,这可以直接是“变换超块”。可选地,变换超块的知识证明可以是通过标准交互式或非交互式零知识证明技术的“变换超块”的内容的知识。可选地,客户端“质询”包含
Figure G2008101658643D00135
j=1,2,..,nB,客户端为每个质询选择不同的并对
Figure G2008101658643D00137
保密。在优选情况下,Hi是客户端公钥的一部分,
Figure G2008101658643D00138
是客户端私钥的一部分。存档服务器利用Hi,计算“变换超块的知识证明”为 H = Π i = 1 n B H i E i .
存档服务器需要向客户端发送作为原子证明过程输出的“变换指纹”T和“变换超块的知识证明”H。
存档服务器总共应该重复原子证明过程ψ次,从而可以选择
Figure G2008101658643D0014165650QIETU
用于决定构造的盒子总数,其中l由客户端选择,并确定了安全级别。选择随机数aλ、的位长度为φ。通过重复该原子过程ψ次,PDI方案的安全级别可以是(n/ψ)·2-1这表示如果至少一个块受到损坏,则存档服务器能够说服验证器的概率最多为(n/ψ)·2-1
上述的“数目Φ和随机性由从客户端接收到的质询确定”以及“aλ、是由客户端的质询确定的随机数”还有其他参考实现。例如选择曲:φ=n,并将n个指纹均匀地分配到n个盒子中。即每个盒子有且只有一个指纹。选择aλ的位长度为l。此时选择ψ=1可实现安全级别n·2-l
步骤2’:
客户端接收来自存档服务器的全部ψ次原子证明过程的输出。
对于一次原子证明过程的每个“变换超块”上的“变换指纹”和“变换超块的知识证明”,客户端执行原子验证过程。
对于每个原子验证过程,客户端首先构造Φ个盒子,并在逻辑上随机地将定位符Wi分配到盒子中。因为该随机性由客户端选择的“质询”确定,所以该随机性与存档服务器用于分配指纹的随机性完全相同。每个定位符必须放进且仅放进一个盒子中。在所有n个定位符全部放入盒子之后,每个盒子中有基于分配给该盒子的定位符产生“封装定位符”。例如,考虑只有两个定位符Wη和Wω放入第λ个盒子的情况。该盒子的“封装定位符”是 W ^ λ = W η · W ω .
接下来,通过向所有盒子的“封装定位符”应用上述另一随机性,客户端产生一个“变换定位符”。因为该随机性由客户端选择的“质询”确定,所以该随机性与存档服务器用于计算“变换指纹”的随机性完全相同。“变换定位符”是 W = Π λ = 1 Φ W ^ λ a λ ,其中aλ是由客户端的“质询”确定的随机数。
最后,如果存档服务器产生“变换超块的知识证明”就是“变换超块”本身,客户端计算“变换超块的推定知识证明”为 H ′ = ( T x + z M / W ) 并将其与
Figure G2008101658643D00152
比较。如果相等,则原子验证过程输出成功。可选的,客户端计算“变换超块的推定知识证明”为并将其与从存档服务器接收到的值H比较。如果H=H',则原子验证过程输出成功。可选地,如果指纹计算为 T i = ( W i · Π j = 1 n B h j M ( i - 1 ) * n B + j ) x , 则将“变换超块的推定知识证明”计算为
Figure G2008101658643D00155
仅在所有的原子验证过程均成功时,才使客户端相信存档服务器端保持了数据完整性。在存档服务器端有至少一个块损坏的情况下,客户端被错误说服的概率最大是(n/ψ)·2-1
详细说明
下面将更加详细地描述本发明。
使用传统的乘法群符号,而不是椭圆曲线设置中常用的加法符号。
Figure G2008101658643D00157
是具有附加群
Figure G2008101658643D00158
的两个有限循环群,以使
Figure G2008101658643D00159
其中p是某一较大质数。双线性映射e
Figure G2008101658643D001510
是函数,以确保:
双线性:对于所有
Figure G2008101658643D001511
Figure G2008101658643D001512
所有
Figure G2008101658643D001513
e(h1 a,h2 b)=e(h1,h2)ab
非退化:
Figure G2008101658643D001514
Figure G2008101658643D001515
以使e(h1,h2)≠I,其中I是
Figure G2008101658643D001516
的幺元。
可计算:存在用于计算e的高效算法。
假设有设置算法Setup(·),当输入安全参数1k时,输出上述双线性映射设置,并写作
Figure G2008101658643D001517
因为都具有相同的质数阶p,根据双线性特性和非退化特性,易得
Figure G2008101658643D0015170639QIETU
给定
Figure G2008101658643D001520
以及5个伪随机函数
Figure G2008101658643D001521
Figure G2008101658643D001522
和prf5
Figure G2008101658643D001523
作为系统参数。
客户端产生数据指纹
客户端具有秘密密钥
Figure G2008101658643D00161
和公钥优选地,客户端具有来自认证权威机构的关于Y的证书。可选地,例如,客户端秘密密钥
Figure G2008101658643D00163
可以计算为
Figure G2008101658643D00164
此外,客户端计算i=1,2,..,nB作为其公钥。
给定划分成N个块Mi(i=1,2,..,N)的数据M,每个块是lM比特长,必须满足lM<logp。以M为参考,例如,其合格的文件名称表示为FNM
图3示出了逻辑上如何将划分数据M并构造成n个超块。
Figure G2008101658643D00166
表示超块的数量。注意在数据M的长度不等于N·lM或n·(nB·lM)的情况下,在逻辑上向数据M追加零。
客户端执行如下过程以产生数据的指纹。
a)客户端选择
Figure G2008101658643D00167
并计算定位符
Figure G2008101658643D00168
Figure G2008101658643D00169
i=1,2,..,n。将Ti命名为第i个超块的指纹。
b)客户端用秘密密钥
Figure G2008101658643D0016142555QIETU
签署(FNM,M,zM,{Ti}),产生签名s。
c)客户端针对FNM存储zM
d)客户端向存档服务器发送FNM,M,
Figure G2008101658643D001610
Figure G2008101658643D001611
和s。
e)当接收到FNM,M,
Figure G2008101658643D001612
Figure G2008101658643D001613
和s时,存档服务器验证s是(FNM,M,zM,{Ti})的有效签名。
存档服务器证明数据完整性
为了确定存档服务器是否以0比特误差保持FNM的内容(除了最大允许错误概率2-1),客户端质询存档服务器,并且存档服务器如下响应。
i)客户端选择重复因子1≤ψ≤l。
ii)客户端选择
Figure G2008101658643D00171
并向存档服务器发送FNM,chal=(l,ψ,κ1,κ2)。
iii)当接收到FNM和chal=(l,ψ,κ1,κ2)时,存档服务器首先计算
Figure G2008101658643D0017143028QIETU
,并初始化变换指纹
Figure G2008101658643D00172
k=1,2,...,ψ,其中
Figure G2008101658643D00174
的幺元。然后,存档服务器重复如下原子证明过程独立的ψ次:iii-a.初始化封装指纹
Figure G2008101658643D00175
封装超块eυj=0,变换超块Ej=0,υ=1,2,...,Φ=2φ,j=1,2,...,nB
iii-b.对于每个i=1,2,...,n,计算
b-i.σ=prf3(i,k,κ1)
b-ii. T &RightArrow; &sigma; * = T i ,表示向第σ个盒子的封装指纹加上Ti
b-iii.对于每个j=1,2,...,nB,计算 e &sigma;j + = M ( i - 1 ) * n B + j mod p ,
表示向第σ个盒子的封装超块加上
Figure G2008101658643D0017143207QIETU
iii-c.对于每个υ=1,2,..,Φ,计算
c-i.aυ=prf4(υ,k,κ2)
c-ii. T k * = T &RightArrow; &upsi; a &upsi;
c-iii.对于每个j=1,2,...,nB,计算Ej+=aυ·eυjmodp,
iii-d.计算 H k = prf 5 ( &Pi; j = 1 n B H j E j ) , 作为变换超块的知识证明
iv)存档服务器向客户端发送(Tk,Hk),k=1,2,...,ψ。
可选地,例如,客户端选择并且计算κ2=prf11,"second randomness defining key")。这样κ2可以不必传输。
客户端验证数据完整性
当接收到(Tk,Hk),k=1,2,...,ψ时,客户端独立地重复如下原子验证过程ψ次:
I)初始化,封装定位符
Figure G2008101658643D00181
υ=0,1,...,Φ-1=2φ-1
II)对于每个i=1,2,...,n,计算σ=prf3(i,k,κ1)和Wσ *=prf2(i,FNM)。
III)对于每个υ=1,2,..,Φ,计算aυ=prf4(υ,k,κ2)和 W k * = W &upsi; - a &upsi; .
IV)计算和验证
Figure G2008101658643D00183
。仅当一致性成立,输出真。
如果所有的原子验证过程都输出真,则客户被数据完整性证明说服。
具体示例
图4~7示出了本发明的具体示例及其正确性的演示,其中使用6个块M1~M6,并以nB=2形成3个超块。相信本领域技术人员通过参照图4~7,并结合上述的逐步描述,能够完全清楚地理解本发明。
实际实验
图8~11示出了实际实验结果,其中将各自均具有27个字节的256个块组合成一个超块,使用Φ=29=512个盒子,数据文件的大小为64M字节。同时,图9~11也列出了参考文献7的结果,从中可见,相比于参考文献7,本发明在计算时间成本方面取得了显著改进。
其他实施例
可选方案1:
对“客户端产生数据指纹”的步骤iii-d和“客户端验证数据完整性”的步骤IV)稍作修改,获得PDI-2方案。这是支持公共可验证性的方案。
附加地,客户端需要计算
Figure G2008101658643D00184
Figure G2008101658643D00185
,作为其公钥。
对“存档服务器证明数据完整性”的步骤iii-d的修改:
iii-dd.计算 H k = &Pi; j = 1 n B H j E j ,作为变换超块的知识证明。
对“客户端验证数据完整性”的步骤IV)的修改:
IV’)计算并验证
Figure G2008101658643D00187
PDI-2方案支持公共可验证性,这是因为“存档服务器证明数据完整性”和“客户端验证数据完整性”的任何步骤均未涉及客户端的密钥,从而可以由第三方验证器有效地执行。
可选方案1.1:
对于上述可选方案1,对“客户端验证数据完整性”的IV’)步骤稍作修改,产生支持验证加速的方案。
对“客户端验证数据完整性”的步骤IV’)的修改:
IV-e)选择k个随机数
Figure G2008101658643D00191
,k=1,2,...,ψ,计算并验证
Figure G2008101658643D00192
采用可选方案1.1,客户端验证数据完整性所需要执行的双线性对计算个数得到减少。
可选方案2:
对“客户端产生数据指纹”的步骤a)和“客户端验证数据完整性”的步骤IV)稍作修改,获得PDI-3方案。
对“客户端产生数据指纹”的步骤a)的修改:
aa)客户端选择标识符,并计算
Figure G2008101658643D00194
Figure G2008101658643D00195
,i=1,2,...,n
对“客户端验证数据完整性”的步骤IV)的修改:
IV”)计算并验证
Figure G2008101658643D00196
可选方案3:
在上述可选方案2之后,对“存档服务器证明数据完整性”的步骤iii-d和“客户端验证数据完整性”的步骤IV)稍作修改,获得PDI-3方案。这是支持公共可验证性的另一方案。
附加地,客户端需要计算
Figure G2008101658643D00197
Figure G2008101658643D00198
,作为其公钥。
对“存档服务器证明数据完整性”的步骤iii-d的修改:
iii-ddd.计算 H k = &Pi; j = 1 n B H j E j ,作为变换超块的知识证明。
对“客户端验证数据完整性”的步骤IV)的修改:
IV”’)计算并验证
PDI-3方案支持公共可验证性,这是因为“存档服务器证明数据完整性”和“客户端验证数据完整性”的任何步骤均未涉及客户端的秘密密钥,从而可以由第三方验证器有效地执行。
可选方案3.1:
对于上述可选方案3,对“客户端验证数据完整性”的IV”’)步骤稍作修改,产生支持验证加速的方案。
对“客户端验证数据完整性”的步骤IV”’)的修改:
IV-f)选择k个随机数k=1,2,...,ψ,计算并验证
Figure G2008101658643D00204
采用可选方案3.1,客户端验证数据完整性所需要执行的双线性对计算个数得到减少。
可选方案4:
对于上述所有方案,对“客户端产生数据指纹”的系统参数和步骤以及“客户端验证数据完整性”的步骤稍作修改,产生支持采样的方案。
为了支持采样,需要附加的系统参数prf6:{0,1}*→{1,2,...,n}。质询chal=(l,ψ,κ1,κ2)还附加地包括密钥
Figure G2008101658643D00205
和正数Λ。
然后,对于“客户端产生数据指纹”和“客户端验证数据完整性”所有步骤,用i=prf63,1),prf63,2),...,prf63,Λ)取代所有的i=1,2,...,n。因此,由于只涉及由i=prf63,1),prf63,2),...,prf63,Λ)选择的Λ个超块,所以只验证所采样的超块的数据完整性。
所以,采用可选方案4,存档服务器可以不使用所有超块来产生数据完整性证明。而是,客户端的质询向存档服务器通知将选择哪些和多少个超块来产生证明。
可选工作模型:
通过引入参考文献4(RFC4810)所建议的时间戳权威机构(TSA),可以用来自TSA的数字签名时间戳替换质询密钥
Figure G2008101658643D00211
,如图12所示。例如,将该时间戳表示为T。使用标准哈希算法SHA-1,可以获得κ1=SHA-1(T,“1”)和κ2=SHA-1(T,“2”)。采用这种替换,客户端所质询的是:直到不早于由TSA发布的时间戳为止,数据是否被正确地保持。此时,除了原子验证过程的最后步骤(该步骤必须利用存档服务器的响应,即,(Tk,Hk))之外,存档服务器和客户端均可以很大程度地受益于预计算。
此外,如图13所示,在验证器是第三方验证器的情况下,也可以从TSA的时间戳推导出κ1和κ2。在能够进行采样的情况下,例如,可以从TSA的时间戳推导出κ3为κ3=SHA-1(T,“3”)。
硬件实现:
对本领域技术人员而言,显而易见的是本发明也可以通过硬件结构实现。以下示出了一些示例,这些示例仅用于描述目的,而不应该视为对本发明有任何限制。
客户端
图14示出了用于实现本发明的客户端1400的框图。这里,客户端1400用作产生数据指纹的设备。
如图14所示,客户端1400包括:超块产生单元1410,用于将数据划分成N个块Mi,i=1,2,...,N,并将每nB个块组合成超块,以得到
Figure G2008101658643D00212
个超块;以及指纹产生单元1420,用于从有限循环群
Figure G2008101658643D00213
中选择nB个元素hj,j=1,2,...,nB,并通过使用针对第k超块的定位符Wk、所选的nB个元素hj和第一私钥,分别产生第k超块的指纹Tk,k=1,2,...,n。客户端1400也包括存储器1430,用于存储由超块产生单元1410和指纹产生单元1420使用或产生的信息,例如所产生的超块、有限循环群、所产生的指纹、定位符和私钥。但是,本领域技术人员必须清楚,存储器1430可以是上述独立的单元,或者可以是结合在超块产生单元1410和/或指纹产生单元1420中的一个/多个集成单元。
类似地,nB个元素hj可以是与第一私钥
Figure 2008101658643100002G2008101658643D0021143718QIETU
相对应的公钥的一部分。此外,nB个元素hj可以满足关系 h j = g 1 r j ,rj是秘密密钥。公钥和/或秘密密钥也可以存储在存储器1430中。
存档服务器
图15示出了用于实现本发明的存档服务器1500的框图。这里,存档服务器1500用作证明数据完整性的设备。
如图15所示,存档服务器1500包括:接收单元1510,用于接收质询,所述质询至少包括第一随机性定义密钥κ1和第二随机性定义密钥κ2;封装单元1520,用于构造Φ个盒子,所述数目Φ由所述质询确定;用于以第一随机性定义密钥κ1定义的第一随机方式,随机地将n个指纹分配到所述Φ个盒子中,每个指纹放在一个盒子中;并用于基于所述n个指纹的分配,产生Φ个封装超块和相应的封装指纹;变换单元1530,用于以由第二随机性定义密钥κ2定义的第二随机方式,随机地变换所述Φ个封装超块和相应的封装指纹,以产生变换超块和变换指纹;以及知识证明产生单元1540,用于产生所述变换超块的知识证明。存档服务器1500还可以包括存储器1550,用于存储由接收单元1510、封装单元1520、变换单元1530和知识证明产生单元1540使用或产生的信息。但是,本领域技术人员必须清楚,存储器1550可以是上述独立的单元,或者可以是结合在接收单元1510、封装单元1520、变换单元1530和知识证明产生单元1540中的一个/多个集成单元。
知识证明产生单元1540可以产生作为变换超块本身的变换超块的知识证明。可选地,知识证明产生单元1540可以基于公钥和变换超块而产生变换超块的知识证明。
质询还可以包括超块选择密钥对(κ3,Λ),用于定义将由封装单元1520选择哪Λ个超块和相应指纹来用于数据完整性证明,而不是所有n个超块及相应指纹。
质询还可以包括重复因子ψ,将接收单元1510、封装单元1520、变换单元1530和知识证明产生单元1540的操作重复ψ次,每次均产生变换超块的一个知识证明,表示为变换超块的第m个知识证明Hm,m=1,2,...,ψ。
质询可以包含来自时间戳权威机构(TSA)的数字签名时间戳。
此外,根据数字签名时间戳产生第一和第二随机性定义密钥κ1和κ2以及超块选择密钥κ3中至少一个。
此外,存档服务器1500还可以包括发送单元1560,用于发送变换超块的变换指纹和知识证明。
验证器(客户端或第三方验证器)
图16示出了用于实现本发明的验证器1600的框图。这里,验证器1600用作验证数据完整性的设备。对于本领域技术人员而言,显而易见的是验证器1600可以是客户端1400本身或第三方验证器。在验证器1600是客户端1400本身的前一种情况下,是指客户端1400包括如图14所示的用于产生数据指纹的子系统和如图16所示的用于验证数据的子系统。另一方面,在验证器1600是第三方验证器的后一种情况下,是指第三方验证器所必需的只是如图16所示的结构,而图14所示的结构是可选的。
如图16所示,验证器1600包括:质询产生和发送单元1610,用于产生并发送质询,所述质询至少包括第一随机性定义密钥κ1和第二随机性定义密钥κ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还基于第一和第二私钥
Figure G2008101658643D0024143904QIETU
Figure G2008101658643D0024143909QIETU
产生所述变换超块的推定知识证明。
由质询产生和发送单元1610产生的质询还包括超块选择密钥对(κ3,Λ),用于定义将由定位符封装单元1630选择哪A个定位符来用于数据完整性证明,而不是所有n个定位符。
由质询产生和发送单元1610产生的质询还包括重复因子ψ,将定位符封装单元1630、推断知识证明产生单元1640和比较器1650的操作重复ψ次,仅当所有比较结果均为肯定的时,验证单元1660才验证所述数据完整性。
由质询产生和发送单元1610产生的质询包含来自时间戳权威机构(TSA)的数字签名时间戳。
由质询产生和发送单元1610根据所述数字签名时间戳来确定第一和第二随机性定义密钥κ1和κ2以及超块选择密钥κ3中至少一个。
以上描述仅给出了本发明的优选实施例,而并不是要以任何方式限制本发明。因此,在本发明精神和原理内进行的任何修改、替换、改进等应该由本发明范围所涵盖。

Claims (29)

1.一种验证数据的数据完整性的方法,包括:在客户端,产生数据指纹,包括:
将数据划分成N个块Mi,i=1,2,...,N;
将每nB个块组合成超块,以得到
Figure FDA00002101827700011
个超块;
从有限循环群
Figure FDA00002101827700012
中选择nB个元素hj,j=1,2,...,nB;以及
通过使用针对第k超块的定位符Wk、所选的nB个元素hj和第一私钥x,分别产生第k超块的指纹Tk,k=1,2,...,n;
在客户端,将数据和数据指纹发送至存档服务器,
在客户端或验证方,产生质询,并向存档服务器发送所述质询,所述质询至少包括第一随机性定义密钥κ1和第二随机性定义密钥κ2
在存档服务器,接收所述质询,并证明数据的数据完整性,包括:
构造Φ个盒子;
以第一随机性定义密钥κ1定义的第一随机方式,随机地将n个指纹分配到所述Φ个盒子中,每个指纹放在一个盒子中;
基于所述n个指纹的分配,产生Φ个封装超块和相应的封装指纹;
以由第二随机性定义密钥κ2定义的第二随机方式,随机地变换所述Φ个封装超块和相应的封装指纹,以产生变换超块和变换指纹;以及
产生所述变换超块的知识证明;
在存档服务器,将变换超块的变换指纹和知识证明发送至客户端或验证方;
在客户端或验证方,接收变换超块的变换指纹和知识证明,并验证数据的数据完整性,包括:
构造Φ个盒子;
以所述第一随机方式,随机地将n个定位符Wk分配到Φ个盒子中,每个定位符放在一个盒子中;
基于所述n个定位符的分配,产生Φ个封装定位符;
以所述第二随机方式,随机变换所述Φ个封装定位符,以产生变换定位符;
根据所述变换指纹和所述变换定位符,产生所述变换超块的推定知识证明;
将所述变换超块的推定知识证明与所接收的所述变换超块的知识证明相比较;以及
如果比较结果是肯定的,则验证所述数据的数据完整性。
2.根据权利要求1所述的验证数据的数据完整性的方法,其中所述nB个元素hj是与第一私钥x相对应的公钥的一部分。
3.根据权利要求1所述的验证数据的数据完整性的方法,其中所述nB个元素hj满足关系
Figure FDA00002101827700021
rj是秘密密钥。
4.根据权利要求1所述的验证数据的数据完整性的方法,其中根据
T k = ( W k &CenterDot; &Pi; j = 1 n B h j M ( k - 1 ) * n B + j ) 1 x + z M
产生第k超块的指纹Tk,zM是所述数据的标识符,以及第k超块的定位符Wk是至少以k为输入的哈希值。
5.根据权利要求4所述的验证数据的数据完整性的方法,其中变换超块的知识证明H表示为
H = prf 5 ( &Pi; j = 1 n B H j E j )
Figure FDA00002101827700024
是第二私钥,Ej是变换超块,prf5(·)表示伪随机函数。
6.根据权利要求5所述的验证数据的数据完整性的方法,其中所述变换超块的推定知识证明表示为
T表示变换指纹,W表示变换定位符。
7.根据权利要求4所述的验证数据的数据完整性的方法,其中变换超块的知识证明H表示为
H = &Pi; j = 1 n B H j E j
Figure FDA00002101827700032
是第二私钥,Ej是变换超块。
8.根据权利要求7所述的验证数据的数据完整性的方法,其中所述变换超块的推定知识证明产生为
Figure FDA00002101827700033
Figure FDA00002101827700034
Figure FDA00002101827700035
Figure FDA00002101827700036
是在的情况下、具有附加群
Figure FDA00002101827700039
的有限循环群,以使
Figure FDA000021018277000310
p是大质数;是双线性映射函数;T表示变换指纹,W表示变换定位符;第k超块的定位符Wk是至少以k为输入的哈希值;x是第一私钥,
Figure FDA000021018277000312
是第二私钥;
如下将所述变换超块的推定知识证明与所述变换超块的知识证明相比较,
Figure FDA000021018277000313
H表示所述变换超块的知识证明。
9.根据权利要求8所述的验证数据的数据完整性的方法,其中所述质询还包括重复因子ψ,并选择k个随机数
Figure FDA000021018277000314
k=1,2,...,ψ,计算并验证
Figure FDA000021018277000315
10.根据权利要求4所述的验证数据的数据完整性的方法,其中第k超块的定位符Wk是以k和针对所述数据的数据文件名和/或数据版本号作为输入的哈希值。
11.根据权利要求1所述的验证数据的数据完整性的方法,其中根据
T k = ( W k &CenterDot; &Pi; j = 1 n B h j M ( k - 1 ) * n B + j ) x
产生第k超块的指纹Tk,第k超块的定位符Wk是至少以k和所述数据的标识符zM为输入的哈希值。
12.根据权利要求11所述的验证数据的数据完整性的方法,其中变换超块的知识证明H表示为
H = prf 5 ( &Pi; j = 1 n B H j E j )
Figure FDA00002101827700042
是第二私钥,Ej是变换超块,prf5(·)表示伪随机函数。
13.根据权利要求12所述的验证数据的数据完整性的方法,其中所述变换超块的推定知识证明表示为
Figure FDA00002101827700043
T表示变换指纹,W表示变换定位符。
14.根据权利要求11所述的验证数据的数据完整性的方法,其中变换超块的知识证明H表示为
H = &Pi; j = 1 n B H j E j
Figure FDA00002101827700045
是第二私钥,Ej是变换超块。
15.根据权利要求14所述的验证数据的数据完整性的方法,其中所述变换超块的推定知识证明产生为
Figure FDA00002101827700047
Figure FDA00002101827700048
Figure FDA00002101827700049
Figure FDA000021018277000410
是在的情况下、具有附加群
Figure FDA000021018277000412
的有限循环群,以使
Figure FDA000021018277000413
p是大质数;
Figure FDA000021018277000414
是双线性映射函数;T表示变换指纹,W表示变换定位符;第k超块的定位符Wk是至少以k和所述数据的标识符zM为输入的哈希值;x是第一私钥,
Figure FDA000021018277000415
是第二私钥;
如下将所述变换超块的推定知识证明与所述变换超块的知识证明相比较,
Figure FDA000021018277000416
H表示所述变换超块的知识证明。
16.根据权利要求15所述的验证数据的数据完整性的方法,其中所述质询还包括重复因子ψ,并选择k个随机数
Figure FDA000021018277000417
k=1,2,...,ψ,计算并验证
Figure FDA00002101827700051
17.根据权利要求11所述的验证数据的数据完整性的方法,其中第k超块的定位符Wk是以k、所述标识符zM和针对所述数据的数据文件名和/或数据版本号作为输入的哈希值。
18.根据权利要求4或11所述的验证数据的数据完整性的方法,其中所述标识符zM根据所述数据的不同而不同。
19.根据权利要求1所述的验证数据的数据完整性的方法,其中所述变换超块的知识证明是所述变换超块本身。
20.根据权利要求2所述的验证数据的数据完整性的方法,其中所述变换超块的知识证明是基于所述公钥和所述变换超块而产生的。
21.根据权利要求1所述的验证数据的数据完整性的方法,其中所述质询还包括超块选择密钥对(κ3,Λ),用于定义将选择哪Λ个超块和相应指纹来用于数据完整性证明,而不是所有n个超块及相应指纹。
22.根据权利要求1所述的验证数据的数据完整性的方法,其中所述质询还包括重复因子ψ,将从构造盒子到产生知识证明的步骤重复ψ次,每次均产生变换超块的一个知识证明,表示为变换超块的第m个知识证明Hm,m=1,2,...,ψ。
23.根据权利要求22所述的验证数据的数据完整性的方法,其中所述数目Φ等于2φ
Figure FDA00002101827700052
l是确定了所述方法的安全级别的安全级别因子。
24.根据权利要求1所述的验证数据的数据完整性的方法,其中所述质询包含来自时间戳权威机构TSA的数字签名时间戳。
25.根据权利要求24所述的验证数据的数据完整性的方法,其中根据所述数字签名时间戳产生第一随机性定义密钥κ1和第二随机性定义密钥κ1中至少一个。
26.根据权利要求21所述的验证数据的数据完整性的方法,其中所述质询包含来自时间戳权威机构TSA的数字签名时间戳。
27.根据权利要求26所述的验证数据的数据完整性的方法,其中根据所述数字签名时间戳产生第一随机性定义密钥κ1、第二随机性定义密钥κ2以及超块选择密钥κ3中至少一个。
28.一种数据完整性验证系统,包括客户端和存档服务器,
其中
客户端产生数据的数据指纹,并将数据和数据指纹发送至存档服务器,
客户端还产生质询,并向存档服务器发送质询,
存档服务器接收所述质询,证明数据的数据完整性,并向客户端发送变换超块的变换指纹和知识证明,
客户端接收变换超块的变换指纹和知识证明,并验证数据的数据完整性,
所述客户端包括:
超块产生单元,用于将数据划分成N个块Mi,i=1,2,...,N,并将每nB个块组合成超块,以得到个超块;以及
指纹产生单元,用于从有限循环群
Figure FDA00002101827700062
中选择nB个元素hj,j=1,2,...,nB,并通过使用针对第k超块的定位符Wk、所选的nB个元素hj和第一私钥x,分别产生第k超块的指纹Tk,k=1,2,...,n;
质询产生和发送单元,用于产生并发送质询,所述质询至少包括第一随机性定义密钥κ1和第二随机性定义密钥κ2
所述存档服务器包括:
接收单元,用于接收所述质询;
封装单元,用于构造Φ个盒子;用于以第一随机性定义密钥κ1定义的第一随机方式,随机地将n个指纹分配到所述Φ个盒子中,每个指纹放在一个盒子中;并用于基于所述n个指纹的分配,产生Φ个封装超块和相应的封装指纹;
变换单元,用于以由第二随机性定义密钥κ2定义的第二随机方式,随机地变换所述Φ个封装超块和相应的封装指纹,以产生变换超块和变换指纹;以及
知识证明产生单元,用于产生所述变换超块的知识证明;
发送单元,用于发送变换超块的变换指纹和知识证明;
所述客户端还包括:
接收单元,用于接收变换超块的变换指纹和知识证明;
定位符封装单元,用于构造Φ个盒子,以所述第一随机方式,随机地将n个定位符Wk分配到Φ个盒子中,每个定位符放在一个盒子中,并基于所述n个定位符的分配,产生Φ个封装定位符;
推定知识证明产生单元,用于以所述第二随机方式,随机变换所述Φ个封装定位符,以产生变换定位符,并根据所述变换指纹和所述变换定位符,产生所述变换超块的推定知识证明;
比较器,用于将所述变换超块的推定知识证明与所接收的所述变换超块的知识证明相比较;以及
验证单元,如果比较结果是肯定的,则验证所述数据的数据完整性。
29.一种数据完整性验证系统,包括客户端、存档服务器和验证方,
其中
客户端产生数据的数据指纹,并将数据和数据指纹发送至存档服务器,
验证方产生质询,并向存档服务器发送质询,
存档服务器接收所述质询,证明数据的数据完整性,并向验证方发送变换超块的变换指纹和知识证明,
验证方接收变换超块的变换指纹和知识证明,并验证数据的数据完整性,
所述客户端包括:
超块产生单元,用于将数据划分成N个块Mi,i=1,2,...,N,并将每nB个块组合成超块,以得到
Figure FDA00002101827700071
个超块;
以及
指纹产生单元,用于从有限循环群
Figure FDA00002101827700081
中选择nB个元素hj,j=1,2,...,nB,并通过使用针对第k超块的定位符Wk、所选的nB个元素hj和第一私钥x,分别产生第k超块的指纹Tk,k=1,2,...,n;
所述验证方包括:
质询产生和发送单元,用于产生并发送质询,所述质询至少包括第一随机性定义密钥κ1和第二随机性定义密钥κ2
所述存档服务器包括:
接收单元,用于接收所述质询;
封装单元,用于构造Φ个盒子;用于以第一随机性定义密钥κ1定义的第一随机方式,随机地将n个指纹分配到所述Φ个盒子中,每个指纹放在一个盒子中;并用于基于所述n个指纹的分配,产生Φ个封装超块和相应的封装指纹;
变换单元,用于以由第二随机性定义密钥κ2定义的第二随机方式,随机地变换所述Φ个封装超块和相应的封装指纹,以产生变换超块和变换指纹;以及
知识证明产生单元,用于产生所述变换超块的知识证明;
发送单元,用于发送变换超块的变换指纹和知识证明;所述验证方还包括:
接收单元,用于接收变换超块的变换指纹和知识证明;
定位符封装单元,用于构造Φ个盒子,以所述第一随机方式,随机地将n个定位符Wk分配到Φ个盒子中,每个定位符放在一个盒子中,并基于所述n个定位符的分配,产生Φ个封装定位符;
推定知识证明产生单元,用于以所述第二随机方式,随机变换所述Φ个封装定位符,以产生变换定位符,并根据所述变换指纹和所述变换定位符,产生所述变换超块的推定知识证明;
比较器,用于将所述变换超块的推定知识证明与所接收的所述变换超块的知识证明相比较;以及
验证单元,如果比较结果是肯定的,则验证所述数据的数据完整性。
CN200810165864.3A 2007-12-29 2008-09-25 可证数据完整性验证方法、设备和系统 Expired - Fee Related CN101471779B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN200810165864.3A CN101471779B (zh) 2007-12-29 2008-09-25 可证数据完整性验证方法、设备和系统
JP2008324039A JP4884456B2 (ja) 2007-12-29 2008-12-19 データ保全性検証方法、装置、およびシステム
US12/345,348 US8254569B2 (en) 2007-12-29 2008-12-29 Provable data integrity verifying method, apparatuses and system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN200710308148.1 2007-12-29
CN200710308148 2007-12-29
CN200810165864.3A CN101471779B (zh) 2007-12-29 2008-09-25 可证数据完整性验证方法、设备和系统

Publications (2)

Publication Number Publication Date
CN101471779A CN101471779A (zh) 2009-07-01
CN101471779B true CN101471779B (zh) 2013-03-27

Family

ID=40828921

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810165864.3A Expired - Fee Related CN101471779B (zh) 2007-12-29 2008-09-25 可证数据完整性验证方法、设备和系统

Country Status (2)

Country Link
JP (1) JP4884456B2 (zh)
CN (1) CN101471779B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101729250B (zh) * 2008-10-21 2014-03-26 日电(中国)有限公司 增量可证数据完整性验证方法、设备和系统
CN102710757B (zh) * 2012-05-21 2014-11-05 北京航空航天大学 一种分布式云存储数据完整性保护方法
CN111145401A (zh) * 2020-03-11 2020-05-12 杭州涂鸦信息技术有限公司 一种指纹数据传输系统及方法
CN111444548B (zh) * 2020-03-20 2024-03-19 苏州链原信息科技有限公司 用于数据完整性证明的方法、设备及计算机存储介质
CN113761585A (zh) * 2020-06-17 2021-12-07 北京沃东天骏信息技术有限公司 一种数据处理方法、装置和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1757197A (zh) * 2003-03-31 2006-04-05 西门子公司 为运行一个面向分组的数据传输的通信终端所使用的方法及控制程序
CN1858799A (zh) * 2005-05-08 2006-11-08 中国科学院计算技术研究所 一种数字图像哈希签名方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4130503B2 (ja) * 1998-11-30 2008-08-06 株式会社東芝 電子透かし埋込み装置
US7111171B2 (en) * 2002-07-09 2006-09-19 Kaleidescope, Inc. Parallel distribution and fingerprinting of digital content
KR20050061594A (ko) * 2002-11-01 2005-06-22 코닌클리케 필립스 일렉트로닉스 엔.브이. 개선된 오디오 데이터 지문 검색

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1757197A (zh) * 2003-03-31 2006-04-05 西门子公司 为运行一个面向分组的数据传输的通信终端所使用的方法及控制程序
CN1858799A (zh) * 2005-05-08 2006-11-08 中国科学院计算技术研究所 一种数字图像哈希签名方法

Also Published As

Publication number Publication date
CN101471779A (zh) 2009-07-01
JP2009187537A (ja) 2009-08-20
JP4884456B2 (ja) 2012-02-29

Similar Documents

Publication Publication Date Title
CN106254374B (zh) 一种具备去重功能的云数据公开审计方法
CN108965258B (zh) 一种基于全同态加密的云环境数据完整性验证方法
Fiore et al. Publicly verifiable delegation of large polynomials and matrix computations, with applications
CN103765809B (zh) 隐式认证的公钥
CN103425941B (zh) 云存储数据完整性的验证方法、设备和服务器
US8254569B2 (en) Provable data integrity verifying method, apparatuses and system
NL2013944B1 (en) Public-key encryption system.
Sun et al. Outsourced decentralized multi-authority attribute based signature and its application in IoT
CN101729250B (zh) 增量可证数据完整性验证方法、设备和系统
CN105721158A (zh) 云安全隐私性和完整性保护方法和系统
CN101471779B (zh) 可证数据完整性验证方法、设备和系统
TW201320701A (zh) 資訊處理裝置、資訊處理方法及程式
Schöder et al. VeriStream–a framework for verifiable data streaming
US6959085B1 (en) Secure user identification based on ring homomorphisms
Zhang et al. Provably secure cloud storage for mobile networks with less computation and smaller overhead
CN101697513A (zh) 数字签名方法、验证方法、数字签名装置及数字签名系统
Apolinário et al. S-audit: efficient data integrity verification for cloud storage
CN108809996A (zh) 不同流行度的删重存储数据的完整性审计方法
Parwekar et al. Public auditing: cloud data storage
Zhang et al. Zero knowledge proofs for cloud storage integrity checking
Seyitoglu et al. Compact and resilient cryptographic tools for digital forensics
CN102611550A (zh) 加密数据的方法和加密数据的传输方法
JP5651611B2 (ja) 鍵交換装置、鍵交換システム、鍵交換方法、プログラム
Rehman et al. Securing cloud storage by remote data integrity check with secured key generation
CN102057620B (zh) 生成针对消息的签名的方法和装置以及验证这种签名的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130327

Termination date: 20160925

CF01 Termination of patent right due to non-payment of annual fee