专利名称:可证数据完整性验证方法、设备和系统的制作方法
技术领域:
本发明涉及存储网络安全领域,具体涉及可证数据完整性(PDI) 验证方法、设备和系统。
背景技术:
互联网正朝着从个人的本地存储向全球规模的数据存储外包服 务而高速发展。Amazon Simple Storage Service (Amazon S3)(参考 文献 1 : 爿鹏zo/ 6V邵Je Storage 5"ar7J.ce (Amazon S3), http://aws. amazon. com/s3)是这禾中互联网存储系统之一。Amazon S3 提供了可用于存储和获取数据的网络服务接口。 Amazon S3的服务是 全球规模和商业类别的,而其价格十分合理对于所用存储量,US $0. 15GB/月;对于所有传入数据,US$0. 10GB/月;对于第一个10TB/ 月的数据传出,US $0. 18GB/月。对于寻求免费全球规模存储服务的人, 也有如下服务。MediaMax(参考文献2: JfeW尸ree 6^h'/7e Storage, http:〃www.mediamax. com)提供25GB免费在线存储,Gmail File System (参考文献 3 : 6"鹏j7 5T eJ2 £>&;757'0/7 ,
http:〃蘭.viksoe. dk/code/gmail. htm)项目已将免费Gmail帐户转 换为 一个永久免费的网络存储空间。
利用这些公共存储空间服务,客户端可以丢弃自己的本地存储子 系统,通过互联网从任何地方随时获取数据。这种惊人的前景吸引了 大量产业力量,这些力量己使存储外包成为了不可避免的趋势。
IETF Network WG抓住了这种趋势,从而发布了 RFC 4810 "Long-Term Archive Service Requirement"(参考文献4: RFC 4810, 厶077g-rery 7 Arc/n'ye Service /fegtAZ're/nar £ , IETF Network WG , http:〃www. ietf. org/rf c/rf c4810. txt) 。 RFC 4810描述了对负责长期保存数据的长期存档服务的要求。支持数据存在的无抵颗性、完整
性和归属性是对长期存档服务的主要要求。如RFC 4810所记载的,长
期存档服务必须能够在从接收到数据直到该数据的存档周期到期时, 提供可用于证明该服务所负责的数据的完整性的证据。
从客户端存储到存档服务外包数据具有两个基本步骤, 一是提交 数据,另一步骤是获取数据。用于数据完整性验证的不成熟解决方案 包括从存档服务器中获取数据。但是,在目前以及不远的将来,要提 供从远程存档服务器到客户端验证器的高带宽是不切实际的。尤其对
于移动客户端,难以享有高带宽连接。此外,如RFC 4810所述,可以 是用于检查用户完整性的第三方验证器。在这种情况下,第三方验证 器不应该访问用户数据;否则它可能侵犯用户数据隐私。为了验证数 据完整性,同时避免从存档服务器中获取数据,现有技术采用了三步 骤操作模型,如图1所示。注意,为了简化表示(并且不失一般性), 以下将以客户端(即,数据所有者)即是用户数据完整性验证器为例。 但如上所述,实际上验证器也可以是第三方,而不是数据所有者。
在步骤0,数据的数字指纹由客户端产生并与该数据一并发送至 存档服务器。除了数据本身,存档服务器还需要存储数据的指纹。在 步骤1,客户端向存档服务器发送关于数据完整性的质询。存档服务 器一并利用数据内容、数据指纹和客户端质询,计算数据完整性证明, 在步骤2,将该数据完整性证明返回客户端,以用于验证。步骤l和 步骤2可以重复多次,直到数据的存档周期到期为止。
基于上述操作模型,以下列出了针对可证数据完整性问题的任何 技术方案应该考虑的关键因素。
(I )客户端产生数据指纹所花费的时间
(II) 数据指纹所消耗的存档服务器存储大小
(III) 验证器向存档服务器发送的质询的大小
(IV) 存档服务器计算数据完整性证明所用的时间
(V) 存档服务器向验证器发送的数据完整性证明的大小
(VI) 验证器检査数据完整性证明所用的时间 存在看似可以处理数据完整性的简单解决方法。初始,数据所有
12者将数据划分成多个部分,并针对每个部分预先计算消息鉴别码 (MAC)。无论验证器、数据所有者或第三方何时需要数据完整性证明, 它从存档服务中获取多个随机选择的部分,并重新计算每个部分的
MAC,以用于比较。
Deswarte等人(参考文献5: Y. Deswarte, J. J. Quisquater, A. Saidane, v e膨te j'/ te^ric力ecA"i/7g, In Proc. of Conference on Integrity and Internal control in Information systems (IICIS'03), 2003)和Filho等人(参考文献6: D. L. G. Filho, P. S. L. M. Baretto. "e迈0;7s^i^tj'77g / ata尸05^es5"j'(9/7 <3/ J 〃;7c力eataZJe "ata 7>a;^/er, http:〃印rint. iacr. org/2006/150, pdf)提出了使用 基于RSA的哈希函数来验证存档服务器正确存储了文件。
最近,Ateniese等人(参考文献7: G. Ateniese, R. Burns, R. Curtmola, J. Herring, L Kissner, Z. Peterson, D. Song, /Vora67e
http:〃印rint. iacr. org/2007/202, pdf)提出了一种基于RSA的可证 数据持有方案,即S-PDP方案,其中"S"代表"采样"。采样的意思 是,客户端随机选择一部分数据,并要求存档服务器显示该随机选择 的数据处于健康状态(即,所选数据的数据完整性被保持)的证据。 S-PDP方案不需要对整个文件进行幂运算,通信复杂度也是恒定的, 这使S-PDP方案成为现有技术方案中最有效的方案。
不成熟方案的缺点在于,其通信复杂度与所査询的数据量大小是 成线性关系的。此外,在第三方验证器的情况下,禁止向验证器发送 用户数据,因为这侵犯了数据所有者的隐私。为了避免从存储服务器 中获取数据,可以通过选择多个秘密密钥并预先计算该数据的多个带 密钥哈希MAC。因此,验证器可以每次向存储服务器公开秘密密钥, 并要求其计算带密钥的哈希MAC,用于比较。但是,可以验证特定数 据的次数受到必须先验固定的秘密密钥的数目的限制。当密钥用完时, 为了计算新的带密钥的哈希MAC,不可避免要从存档服务器中获取数 据。
参考文献5和6的提议的缺点在于存档服务器不得不对整个文件进行幂运算。作为参考,给定2048比特RSA模数,在Intel Core Duo 2. 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) 验证方法,其中,首先在客户端侧产生数据的指纹,并将该指纹与数 据一并发送至存档服务器;当需要时,客户端或第三方验证器向存档 服务器发送"质询",以确定数据的完整性,存档服务器使用接收到的 指纹来证明数据的完整性;最后,客户端或第三方验证器根据来自存 档服务器的响应该"质询"的输出,验证数据的完整性。
根据本发明的第一方面,提出了一种产生数据指纹的方法,包括步骤将数据划分成W个块M,, z = l,2,...,iV;将每 个块组合成超块, 以得到^pV ]个超块;从有限循环群G^&〉中选择 个元素、, J、l,2,…,n^通过使用针对第A超块的定位符^、所选的 个元素/i,和 第一私钥h分别产生第A超块的指纹7;, & = l,2,...,n。
优选地,所述 个元素^是与第一私钥o;相对应的公钥的一部分。 优选地,所述 个元素^满足关系、-W, r^是秘密密钥。 优选地,根据
产生第/t超块的指纹j;, ZM是所述数据的标识符。更加优选地,第*超
块的定位符R是至少以*为输入的哈希值。 优选地,根据
w也
、 X
产生第^超块的指纹7;。更加优选地,第A超块的定位符^是至少以)t 和所述数据的标识符ZM为输入的哈希值。
根据本发明第二方面,提供了一种证明数据的数据完整性的方 法,其中采用根据本发明第一方面的产生数据指纹的方法产生所述数
据的指纹,所述方法包括步骤接收质询,所述质询至少包括第一随
机性定义密钥A和第二随机性定义密钥/S;构造①个盒子;以第一随 机性定义密钥 定义的第一随机方式,随机地将"个指纹分配到所述o
个盒子中,每个指纹放在一个盒子中;基于所述"个指纹的分配,产 生o)个封装超块和相应的封装指纹;以由第二随机性定义密钥/S定义 的第二随机方式,随机地变换所述o)个封装超块和相应的封装指纹, 以产生变换超块和变换指纹;以及产生所述变换超块的知识证明。 优选地,所述变换超块的知识证明是所述变换超块本身。 优选地,所述变换超块的知识证明是基于所述公钥和所述变换超 块而产生的。更加优选地,变换超块的知识证明h表示为
h=n《'^是第二私钥,^是变换超块。可选地,变换超块的知识证 明H表示为
片i
& = 》是第二私钥,A是变换超块,p^O表示伪随机函数。
优选地,所述质询还包括超块选择密钥对(/s,A),用于定义将选 择哪A个超块和相应指纹来用于数据完整性证明,而不是所有n个超 块及相应指纹。
优选地,所述质询还包括重复因子^,将从构造盒子到产生知识 证明的步骤重复^次,每次均产生变换超块的一个知识证明,表示为 变换超块的第m个知识证明H^ m = l,2,...j。更加优选地,所述数目 cD等于2^ 0 = [Z/^ + l, ^是安全级别因子,用于确定所述方法的安 全级别。
优选地,由验证器选择第一和第二随机性定义密钥 和 以及超 块选择密钥对K,A)。
优选地,所述质询包含来自时间戳权威机构TSA的数字签名时间 戳。更加优选地,根据所述数字签名时间戳产生第一和第二随机性定 义密钥^和/S以及超块选择密钥 中至少一个。
优选地,该证明数据完整性的方法还包括发送变换超块的变换指 纹和知识证明。
根据本发明第三方面,提供了一种与根据本发明第二方面的证明 数据完整性的方法相结合的、验证数据完整性的方法,其中采用根据 本发明第一方面的产生数据指纹的方法产生所述数据的指纹,该方法 包括步骤产生并发送质询,所述质询至少包括第一随机性定义密钥 和第二随机性定义密钥 ;接收变换超块的变换指纹和知识证明;构 造O个盒子;以所述第一随机方式,随机地将n个定位符^分配到0)个
盒子中,每个定位符放在一个盒子中;基于所述n个定位符的分配, 产生O)个封装定位符;以所述第二随机方式,随机变换所述O个封装 定位符,以产生变换定位符;根据所述变换指纹和所述变换定位符, 产生所述变换超块的推定知识证明;将所述变换超块的推定知识证明
16与所接收的所述变换超块的知识证明相比较;以及如果比较结果是肯 定的,则验证所述数据的数据完整性。
优选地,基于所述数据的标识符ZM、所述变换指纹和所述变换定
位符产生所述变换超块的推定知识证明。
优选地,还基于第一和第二私钥:r和5产生所述变换超块的推定 知识证明。更加优选地,所述变换超块的推定知识证明表示为
T表示变换指纹,W表示变换定位符;并且第^超块的定位符^是至 少以/t和所述数据的标识符ZM为输入的哈希值。可选地,所述变换超 块的推定知识证明表示为
河5((T W)"
T表示变换指纹,W表示变换定位符;并且第;t超块的定位符^是至 少以A为输入的哈希值。
更加优选地,所述变换超块的推定知识证明产生为
e(T,VO.e(W,52l))
n = ^, ^ = ^' Y-《e^; G,〈&〉是在(G,〈^的情况下、具有 附加群^ =〈一的有限循环群,以使h卜l^卜lgl二p, p是大质数; e:^xG,4G是双线性映射函数;T表示变换指纹,W表示变换定位 符;第yt超块的定位符R是至少以&为输入的哈希值;r和5是第一和 第二私钥;如下将所述变换超块的推定知识证明与所述变换超块的知 识证明相比较,
<formula>formula see original document page 17</formula>
H表示所述变换超块的知识证明。
更加优选地,所述变换超块的推定知识证明产生为<formula>formula see original document page 17</formula>
^ = 9,, ~ = <, n2、G2; G^&〉是在G,〈"的情况下、具 有附加群《=〈"的有限循环群,以使l^卜lG」-^l二p, p是大质数; e:G,xG。—G是双线性映射函数;T表示变换指纹,W表示变换定位符;第/t超块的定位符R是至少以A:和所还数据的称识付^刃湔入的
哈希值;工和》是第一和第二私钥;如下将所述变换超块的推定知识证
明与所述变换超块的知识证明相比较,
e(H,^)"(T,i;).e(W,^)
H表示所述变换超块的知识证明。
优选地所述质询还包括超块选择密钥对K,A),用于定义将选择
哪A个定位符来用于数据完整性证明,而不是所有"个定位符。
优选地,所述质询还包括重复因子^,将从构造盒子到比较知识
证明和推定知识证明的步骤重复W次,仅当所有比较结果均为肯定的
时,才验证所述数据的数据完整性。
优选地,由验证器选择第一和第二随机性定义密钥 和、以及超
块选择密钥对( ,A)。
优选地,所述质询包含来自时间戳权威机构TSA的数字签名时间
戳,并根据所述数字签名时间戳产生第一和第二随机性定义密钥/s和 以及超块选择密钥 中至少一个。
根据本发明第四方面,提供了一种用于产生数据指纹的设备,包 括超块产生单元,用于将数据划分成W个块M,, z = l,2,...,iV,并将 每 个块组合成超块,以得到"-pV/ ,个超块;以及指纹产生单元, 用于从有限循环群G,二&〉中选择 个元素/v j = l,2,..., ,并通过使 用针对第^超块的定位符^、所选的 个元素^和第一私钥^分别 产生第A超块的指纹j;, A = l,2,...,n。
优选地,所述 个元素/^是与第一私钥x相对应的公钥的一部分。 优选地,所述 个元素^满足关系、.-g , r^是秘密密钥。 根据本发明第五方面,提供了一种用于证明数据完整性的设备, 包括接收单元,用于接收质询,所述质询至少包括第一随机性定义 密钥 和第二随机性定义密钥 ;封装单元,用于构造①个盒子;用 于以第一随机性定义密钥 定义的第一随机方式,随机地将n个指纹 分配到所述①个盒子中,每个指纹放在一个盒子中;并用于基于所述n 个指纹的分配,产生ci)个封装超块和相应的封装指纹;变换单元,用 于以由第二随机性定义密钥/S定义的第二随机方式,随机地变换所述①个封装超块和相应的封装指纹,以产生变换超块和变换指纹;以及 知识证明产生单元,用于产生所述变换超块的知识证明。
优选地,所述知识证明产生单元产生作为所述变换超块本身的所 述变换超块的知识证明。
优选地,所述知识证明产生单元基于所述公钥和所述变换超块而 产生所述变换超块的知识证明。
优选地,所述质询还包括超块选择密钥对K,A),用于定义将由 所述封装单元选择哪A个超块和相应指纹来用于数据完整性证明,而 不是所有w个超块及相应指纹。
优选地,所述质询还包括重复因子VM将所述封装单元、变换单 元和知识证明产生单元的操作重复仏次,每次均产生变换超块的一个 知识证明,表示为变换超块的第m个知识证明H^ m = l,2,...j。
优选地,所述质询包含来自时间戳权威机构TSA的数字签名时间 戳。更加优选地,根据所述数字签名时间戳产生第一和第二随机性定 义密钥 和k2以及超块选择密钥 中至少一个。
优选地,该证明数据完整性的设备,还包括发送单元,用于发 送变换超块的变换指纹和知识证明。
根据本发明第六方面,提供了一种用于验证数据完整性的设备, 包括质询产生和发送单元,用于产生并发送质询,所述质询至少包 括第一随机性定义密钥 和第二随机性定义密钥/S;接收单元,用于 接收变换超块的变换指纹和知识证明;定位符封装单元,用于构造O个 盒子,以所述第一随机方式,随机地将w个定位符^分配到0个盒子 中,每个定位符放在一个盒子中,并基于所述n个定位符的分配,产 生①个封装定位符;推定知识证明产生单元,用于以所述第二随机方 式,随机变换所述O个封装定位符,以产生变换定位符,并根据所述 变换指纹和所述变换定位符,产生所述变换超块的推定知识证明;比 较器,用于将所述变换超块的推定知识证明与所接收的所述变换超块 的知识证明相比较;以及验证单元,如果比较结果是肯定的,则验证 所述数据的数据完整性。
优选地,所述推定知识证明产生单元基于所述数据的标识符zm、所述变换指纹和所述变换定位符产生所述变换超块的推定知识证明。 更加优选地,所述推定知识证明产生单元还基于第一和第二私钥^和S
产生所述变换超块的推定知识证明。
优选地,由所述质询产生和发送单元产生的所述质询还包括超块 选择密钥对OS,A),用于定义将由所述定位符封装单元选择哪A个定位
符来用于数据完整性证明,而不是所有"个定位符。
优选地,由所述质询产生和发送单元产生的所述质询还包括重复 因子W,将所述定位符封装单元、推断知识证明产生单元和比较器的 操作重复W次,仅当所有比较结果均为肯定的时,验证单元才验证所 述数据完整性。
优选地,由所述质询产生和发送单元产生的所述质询包含来自时 间戳权威机构(TSA)的数字签名时间戳。更加优选地,所述质询产生
和发送单元根据所述数字签名时间戳来确定第一和第二随机性定义密 钥 和 以及超块选择密钥 中至少一个。
根据本发明第七方面,提供了一种数据完整性验证系统,包括根 据本发明第五方面的用于证明数据完整性的设备;以及根据本发明第
六方面的用于验证数据完整性的设备。
优选地,该数据完整性验证系统还包括根据本发明第四方面的
用于产生数据指纹的设备。更加优选地,该用于产生数据指纹的设备 也用作用于验证数据完整性的设备。
本发明PDI方案可以在极高的概率(例如,1-2-64)上确保数据
的数据完整性。相比于实现了 (1)确保每一比特数据的数据完整性,
(2)客户端发送至存档服务器的质询的大小恒定,以及(3)存档服
务器发送至客户端的数据完整性证明的大小恒定,的现有技术,本发
明PDI方案主要具有如下四个优点
(I) 客户端产生数据指纹的速度最快-,
(II) 存档服务器产生客户端质询响应的速度最快;
(III) 客户端验证存档服务器的响应的速度最快;
(IV) 验证器可以是第三方验证器,同时仍然保持上述三个优点
(i)-(m)。此外,指纹的大小最小。具体以64MB的数据文件为例。安全强度设为可与2048比特RSA 特征相比,z=64。当客户端是Intel Core Duo 2. 16GHz处理器,存档 服务器端是Intel Qx6700 Core2 Quad 2. 66GHz处理器时,使用PDI 方案,客户端花费12. 7秒产生文件指纹;存档服务器花费1. 4秒产生 变换指纹和变换超块的知识证明;客户端花费0.4秒验证知识证明。 所有这些时间值甚至低于现有基于RSA方案的存档服务器在最好情况 下所能达到的理论下限。
结合附图,从下面对本发明非限制性实施例的详细描述中,本发
明的上述和其他目的、特征和优点将更加明显,附图中 图1示出了用于证明数据完整性的工作模型; 图2示出了根据本发明的数据完整性证明方法(原子证明过程)
和数据完整性验证方法(原子验证过程)的流程图; 图3是数据的逻辑图4 7示出了本发明的具体示例及其正确性的演示,其中使用6 个块^ Me,并以 =2形成3个超块;
图8 11示出了实际实验结果,其中将各自均具有27个字节的 256个块组合成一个超块,使用0=29二512个盒子,数据文件的大小为 64M字节;
图12示出了可选的数据完整性证明的工作模型;
图13示出了另一可选的数据完整性证明的工作模型;
图14示出了用于实现本发明的客户端1400的框图15示出了用于实现本发明的存档服务器1500的框图;以及
图16示出了用于实现本发明的验证器1600的框图。
具体实施例方式
下面,根据附图描述本发明。在以下描述中, 一些具体实施例仅 用于描述目的,而不应该理解为对本发明有任何限制,而只是本发明 的示例。省略了常规结构或构造,以免导致对本发明的理解不清楚。
21原理说明
这里提出的可证数据完整性(PDI)方案不仅克服了现有技术中 遇到的所有问题,在性能上还优于各种现有技术。
PD工方案基本具有如下三个步骤,这与图1所示的工作模型相符合。
步骤0':
PDI方案需要有限循环群(^-^〉。优选地,(^是椭圆曲线上的有 限循环群。在本发明公开中,使用传统的乘法群符号,而不是在椭圆
曲线背景下经常使用的加法符号。客户端具有私钥^和相应的公钥。 客户端将数据文件划分成AT个块M,, z = l,2,...,W。每 个块组合
在一起,形成超块。因此,将数据划分成"=「^/"^个超块。如果数据 文件的长度小于n个超块所需的,则在逻辑上对数据文件加零。
对于每个数据文件,客户端准备C^的 个元素&, z = l,2,...,ns。
在优选情况下,客户端选择n,以使^=&,并保持r;是秘密的。更优 选的,这些元素/i,是客户端公钥的一部分,从而独立于数据文件。
客户端利用其私钥和上述 个元素&,产生所有超块的指纹。例
如,第/个超块的指纹的形式为2:=
,i
其中定位符w
是至少以/为输入的哈希值,例如,定位符w的输入还可以包括数据文
件的文件名和/或版本号;^是针对数据文件而特别挑选的标识符,例 如,为一组数据文件选择一个标识符^,而为另一组数据文件选择另
一个标识符《。可选地,指纹可以计算为r,-h.ft/^,—1,其中定
位符W,采用和zM作为输入。在优选情况下,客户端知道r;,以使、=W 。 因此,通过将J[C替换为^^-'一,客户端可以利用知识r,来加
快指纹产生过程。
步骤0'的结果为,客户端得到n个超块的n个指纹。客户端将所
22有指纹与数据文件和 个元素A,—并发送给存档服务器。在优选情况 下, 个元素A,客户端公钥的一部分,存档服务器可以己从例如公钥
目录中得到这些元素。因此,不必将这些元素连同数据文件一起传送。
步骤r:
客户端向存档服务器发送"质询",以确定数据的完整性。 基于从客户端接收到的质询,存档服务器需要执行多次原子证明
过程,例如,执行仏次。
对于每个原子证明过程,存档服务器首先构造①二y个盒子,并随
机地将n个指纹分配到盒子中。数目O和随机性由从客户端接收到的 "质询"确定。每个指纹必须放入一个且仅这一个盒子中。注意,每 个指纹精确地对应于一个超块,在所有n个指纹全部放入盒子之后, 每个盒子均有"封装超块"及该"封装超块"的"封装指纹",后者是 基于分配给该盒子的指纹产生。例如,考虑只有第77和第w个超块上 的两个指纹放入第A个盒子的情况。该盒子的"封装超块"包含 < , "1,2,..為,该"封装超块"上的"封装指纹"是
An
接下来,通过向所有盒子的"封装超块"和"封装指纹"应用另 一随机性,存档服务器产生一个"变换超块"和该"变换超块"上的 一个"变换指纹"。这里的随机性同样由从客户端接收到的"质询"确
定的。继续采用上述示例,"变换超块"包含丑^icvi^, ; = 1,2,...,^,
"变换超块"上的"变换指纹"是r-fjf,,其中A是由客户端的"质
询"确定的随机数。
最后,存档服务器产生"变换超块的知识证明",这可以直接是 "变换超块"。可选地,变换超块的知识证明可以是通过标准交互式或 非交互式零知识证明技术的"变换超块"的内容的知识。可选地,客
户端"质询"包含^=/^, ; = 1,2,..., ,客户端为每个质询选择不同W的 并对W呆密。在优选情况下,A是客户端公钥的一部分,d是客户端私 钥的一部分。存档服务器利用仏,计算"变换超块的知识证明"为
23
存档服务器需要向客户端发送作为原子证明过程输出的"变换指
纹"r和"变换超块的知识证明"H。
存档服务器总共应该重复原子证明过程仏次,从而可以选择 0 =卩/^ + 1用于决定构造的盒子总数,其中z由客户端选择,并确定
了安全级别。选择随机数aA的位长度为0。通过重复该原子过程W 次,PDI方案的安全级别可以是(rz/V0.2-',这表示如果至少一个块受 到损坏,则存档服务器能够说服验证器的概率最多为(n / VO . 2-'。
上述的"数目①和随机性由从客户端接收到的质询确定"以及" 是由客户端的质询确定的随机数"还有其他参考实现。例如选择0 = 1 并将n个指纹均匀地分配到rz个盒子中。即每个盒子有且只有一个指 纹。选择aA的位长度为Z。此时选择仏=1可实现安全级别^2-'。
步骤2':
客户端接收来自存档服务器的全部W次原子证明过程的输出。
对于一次原子证明过程的每个"变换超块"上的"变换指纹"和 "变换超块的知识证明",客户端执行原子验证过程。
对于每个原子验证过程,客户端首先构造O)个盒子,并在逻辑上 随机地将定位符^分配到盒子中。因为该随机性由客户端选择的"质 询"确定,所以该随机性与存档服务器用于分配指纹的随机性完全相 同。每个定位符必须放进且仅放进一个盒子中。在所有rz个定位符全 部放入盒子之后,每个盒子中有基于分配给该盒子的定位符产生"封 装定位符"。例如,考虑只有两个定位符^和^放入第A个盒子的情况。 该盒子的"封装定位符"是A"H。
接下来,通过向所有盒子的"封装定位符"应用上述另一随机性, 客户端产生一个"变换定位符"。因为该随机性由客户端选择的"质询" 确定,所以该随机性与存档服务器用于计算"变换指纹"的随机性完
全相同。"变换定位符"是^ = ^^。',其中 是由客户端的"质询" 确定的随机数。最后,如果存档服务器产生"变换超块的知识证明"就是"变换
超块"本身,客户端计算"变换超块的推定知识证明"为i7、(r"'vw)
并将其与ftC比较。如果相等,则原子验证过程输出成功。可选的,
客户端计算"变换超块的推定知识证明"为H、(r""w)、并将其与 从存档服务器接收到的值H比较。如果^ = ^',则原子验证过程输出
成功。可选地,如果指纹计算为?:=
i将"变换超块
的推定知识证明"计算为Cr"7w)。。
仅在所有的原子验证过程均成功时,才使客户端相信存档服务器 端保持了数据完整性。在存档服务器端有至少一个块损坏的情况下,
客户端被错误说服的概率最大是(n / V0 2-'。
详细说明
下面将更加详细地描述本发明。
使用传统的乘法群符号,而不是椭圆曲线设置中常用的加法符号。
设^ = &〉和G2 ="〉是具有附加群口 = 〈^的两个有限循环群,以使 1G^icgHS卜P,其中P是某一较大质数。双线性映射e:G,(^ — g是 函数,以确保
双线性对于所有&eGp 、eG2,所有MeZp, e(V,、') = e(~A)°'。 非退化3&eG,, 3、£([52,以使e(、W-"其中/是S的幺元。 可计算存在用于计算e的高效算法。
假设有设置算法Se鄉(.),当输入安全参数"时,输出上述双线性映 射设置,并写作(p,G,,G2,g,^^e) —Sei邵(l"。
因为G,, G,和^都具有相同的质数阶p,根据双线性特性和非退化 特性,易得e(^&卜^。
给定(p,G^2,"^^e) —Se一(l", 以及5个伪随机函数 ^ : {0,1}' — Zp 、 : {0,1}* — ^ 、 p训:{0,1}* — ~ 、 p训:{0,1}* — ^
和WA —{0,1}16。作为系统参数。客户端产生数据指纹
客户端具有秘密密钥Or一)二Z/和公钥r-^e(^。优选地,客户端
具有来自认证权威机构的关于r的证书。可选地,例如,客户端秘密 密钥d可以计算为W - pr/Jx,"second private key")。
此外,客户端计算(、-^^'^U,二OeG/, 2 = 1,2,..., 作为其公钥。
给定划分成W个块M, (1 = 1,2,..的数据M,每个块是Q比特长, 必须满足Qd。gP。以M为参考,例如,其合格的文件名称表示为i^M。
图3示出了逻辑上如何将划分数据M并构造成n个超块。 ^pV/wJ表示超块的数量。注意在数据M的长度不等于7V人或 n.( .W的情况下,在逻辑上向数据M追加零。
客户端执行如下过程以产生数据的指纹。
a)客户端选择^厶^,并计算定位符^ = ^^,、,尸 )£&,
名为第z个超块的指纹。
b) 客户端用秘密密钥o;签署(^WM,M,ZM,化n,产生签名S。
C) 客户端针对i^M存储^。
d) 客户端向存档服务器发送,M, M, 、eZp, (rJeGf和s。
e) 当接收到^Vm, M, eZp,化)eG,和s时,存档服务器验
证S是(FiVM,M,^,化"的有效签名。
存档服务器证明数据完整性
为了确定存档服务器是否以0比特误差保持i^M的内容(除了最
大允许错误概率2-'),客户端质询存档服务器,并且存档服务器如下响应。
i) 客户端选择重复因子i^"^z。
ii) 客户端选择( )厶",并向存档服务器发送FiVM ,
iii) 当接收到i^M和c/^^(Z一, , )时,存档服务器首先计算 0=^/^ + 1,并初始化变换指纹Tt二0eG「 A; = 1,2,...,W,其中O是g
的幺元。然后,存档服务器重复如下原子证明过程独立的^次
iii-a.初始化封装指纹g = 0 e G,,封装超块、=o ,变换超块
五;=0, u = 1,2,..., = 2* , j = l,2,...,ns
iii-b.对于每个&1,2,...^,计算
b-ii. r,,表示向第c7个盒子的封装指纹加上r,
b-iii.对于每个;=1,2,计算e" += M(i—D、+,m。dp, 表示向第a个盒子的封装超块加上M(,一
+,
iii-c.对于每个"=1,2,...,$,计算
C—11, 丄*—、
C-iii.对于每个J、1,2,…, ,计算S += a"'e"m。dP ,
iii-d.计算A =F/5(ftO,作为变换超块的知识证明 iv)存档服务器向客户端发送(T,凡),hl,2,…j。
可选地,例如,客户端选择 二Zp并且计算 =pr/J "second randomness defining key")。 这样 可以不必传输。
客户端验证数据完整性
当接收到(Tt,H,), fc-l,U时,客户端独立地重复如下原子验证 过程^次I) 初始化w,/eG,,封装定位符^-/eG,,
w = 0,1,…,《一l = —1
II) 对于每个1 = 1,2,...;,计算£7 = ^/3(" )禾口 WC *= WA滞m) °
III) 对于每个"=1,2,...,$ ,计算 =pr/>,fc, )和* = 。
IV) 计算和验证H^;^((ir、Wj)。仅当一致性成立,输出真。 如果所有的原子验证过程都输出真,则客户被数据完整性证明说服。
具体示例
图4 7示出了本发明的具体示例及其正确性的演示,其中使用6
个块碼 軌,并以 =2形成3个超块。相信本领域技术人员通过参
照图4 7,并结合上述的逐步描述,能够完全清楚地理解本发明。 实际实验
图8 11示出了实际实验结果,其中将各自均具有27个字节的 256个块组合成一个超块,使用0=29二512个盒子,数据文件的大小为 64M字节。同时,图9 11也列出了参考文献7的结果,从中可见, 相比于参考文献7,本发明在计算时间成本方面取得了显著改进。
其他实施例 可选方案l:
对"客户端产生数据指纹"的步骤iii-d和"客户端验证数据完整 性"的步骤IV)稍作修改,获得PDI-2方案。这是支持公共可验证性的 方案。
附加地,客户端需要计算r,-"和^二^/,作为其公钥。
对"存档服务器证明数据完整性"的步骤m-d的修改
iii-dd.计算A-f[77,,作为变换超块的知识证明。
卜l
对"客户端验证数据完整性"的步骤IV)的修改 IV')计算并验证e(H^2)"(TW^/M).e(Wk,^)。PDI-2方案支持公共可验证性,这是因为"存档服务器证明数据 完整性"和"客户端验证数据完整性"的任何步骤均未涉及客户端的 密钥,从而可以由第三方验证器有效地执行。
可选方案l.l:
对于上述可选方案l,对"客户端验证数据完整性"的iv')步骤
稍作修改,产生支持验证加速的方案。
对"客户端验证数据完整性"的步骤IV')的修改
IV-e)选择&个随机数r;eZ;^ , fc = l,2,...,^,计算并验证
(* 、,^ 、
、" ,
采用可选方案1.1,客户端验证数据完整性所需要执行的双线性 对计算个数得到减少。
可选方案2:
对"客户端产生数据指纹"的步骤a)和"客户端验证数据完整 性"的步骤IV)稍作修改,获得PDI-3方案。
对"客户端产生数据指纹"的步骤a)的修改
aa)客户端选择标识符&厶Zp,并计算w^^幼,ZM,,M)e^,
7; = (W;. W )1 e G, , i = 1,2,...,n
对"客户端验证数据完整性"的步骤IV)的修改 IV")计算并验证H^河5((T,.WJ)
可选方案3:
在上述可选方案2之后,对"存档服务器证明数据完整性"的步 骤iii-d和"客户端验证数据完整性"的步骤IV)稍作修改,获得PDI-3 方案。这是支持公共可验证性的另一方案。
附加地,客户端需要计算i;-^〃和^-^,作为其公钥。
对"存档服务器证明数据完整性"的步骤iii-d的修改iii-ddd.计算^=[]化5 ,作为变换超块的知识证明。
对"客户端验证数据完整性"的步骤IV)的修改 『')计算并验证e(H^2)"(m).e(W^2,)。
PDI-3方案支持公共可验证性,这是因为"存档服务器证明数据 完整性"和"客户端验证数据完整性"的任何步骤均未涉及客户端的 秘密密钥,从而可以由第三方验证器有效地执行。
可选方案3.1:
对于上述可选方案3,对"客户端验证数据完整性"的IV"')步骤 稍作修改,产生支持验证加速的方案。
对"客户端验证数据完整性"的步骤IV"')的修改
IV-f)选择fc个随机数^ezg^ , it = i,2,...,^ ,计算并验证
、jb=i ,一i '
采用可选方案3.1,客户端验证数据完整性所需要执行的双线性 对计算个数得到减少。
可选方案4:
对于上述所有方案,对"客户端产生数据指纹"的系统参数和步 骤以及"客户端验证数据完整性"的步骤稍作修改,产生支持采样的 方案。
为了支持采样,需要附加的系统参数^/6:{0,1}' —{l,2,...,n}。质询
c/mh(^, /g还附加地包括密钥 二Zp和正数A。
然后,对于"客户端产生数据指纹"和"客户端验证数据完整性" 所有步骤,用i = p《( ,l),pr/e( 2),…,pr/6( ,A)取代所有的i = 1,2,…,n 。 因此,由于只涉及由"pr/e( ,l),p"( ,2),…,pr/6( ,A)选择的A个超块,
所以只验证所采样的超块的数据完整性。
所以,采用可选方案4,存档服务器可以不使用所有超块来产生
30数据完整性证明。而是,客户端的质询向存档服务器通知将选择哪些 和多少个超块来产生证明。
可选工作模型
通过引入参考文献4(RFC 4810)所建议的时间戳权威机构(TSA), 可以用来自TSA的数字签名时间戳替换质询密钥( , )Az/,如图12
所示。例如,将该时间戳表示为T。使用标准哈希算法SHA-1,可以获 得k,SHA-l(T, "1")和k,SHA-l(T, "2")。采用这种替换,客户
端所质询的是直到不早于由TSA发布的时间戳为止,数据是否被正 确地保持。此时,除了原子验证过程的最后步骤(该步骤必须利用存 档服务器的响应,即,(Tt,H,))之外,存档服务器和客户端均可以很 大程度地受益于预计算。
此外,如图13所示,在验证器是第三方验证器的情况下,也可 以从TSA的时间戳推导出 和 。在能够进行采样的情况下,例如, 可以从TSA的时间戳推导出s为k,SHA-l(T, "3")。
硬件实现
对本领域技术人员而言,显而易见的是本发明也可以通过硬件结 构实现。以下示出了一些示例,这些示例仅用于描述目的,而不应该 视为对本发明有任何限制。
客户端
图14示出了用于实现本发明的客户端1400的框图。这里,客户 端1400用作产生数据指纹的设备。
如图14所示,客户端1400包括超块产生单元1410,用于将数 据划分成W个块M,, i = l,2,...,W,并将每 个块组合成超块,以得到 = ^/^个超±央;以及指纹产生单元1420,用于从有限循环群G,&〉 中选择 个元素^, j = l,2,..., ,并通过使用针对第A超块的定位符 R、所选的 个元素^和第一私钥o;,分别产生第;t超块的指纹7;, A二l,2,…,n。客户端1400也包括存储器1430,用于存储由超块产生单
31元1410和指纹产生单元1420使用或产生的信息,例如所产生的超块、 有限循环群、所产生的指纹、定位符和私钥。但是,本领域技术人员
必须清楚,存储器1430可以是上述独立的单元,或者可以是结合在超 块产生单元1410和/或指纹产生单元1420中的一个/多个集成单元。
类似地, 个元素、可以是与第一私钥工相对应的公钥的一部分。 此外, 个元素~可以满足关系 =^,。是秘密密钥。公钥和/或秘 密密钥也可以存储在存储器1430中。
存档服务器
图15示出了用于实现本发明的存档服务器1500的框图。这里, 存档服务器1500用作证明数据完整性的设备。
如图15所示,存档服务器1500包括接收单元1510,用于接收
质询,所述质询至少包括第一随机性定义密钥 和第二随机性定义密 钥 ;封装单元1520,用于构造①个盒子,所述数目①由所述质询确 定;用于以第一随机性定义密钥A定义的第一随机方式,随机地将n个 指纹分配到所述O个盒子中,每个指纹放在一个盒子中;并用于基于 所述n个指纹的分配,产生①个封装超块和相应的封装指纹;变换单 元1530,用于以由第二隨机性定义密钥 定义的第二随机方式,随机 地变换所述①个封装超块和相应的封装指纹,以产生变换超块和变换 指纹;以及知识证明产生单元1540,用于产生所述变换超块的知识证 明。存档服务器1500还可以包括存储器1550,用于存储由接收单元 1510、封装单元1520、变换单元1530和知识证明产生单元1540使用 或产生的信息。但是,本领域技术人员必须清楚,存储器1550可以是 上述独立的单元,或者可以是结合在接收单元1510、封装单元1520、 变换单元1530和知识证明产生单元1540中的一个/多个集成单元。
知识证明产生单元1540可以产生作为变换超块本身的变换超块 的知识证明。可选地,知识证明产生单元1540可以基于公钥和变换超 块而产生变换超块的知识证明。
质询还可以包括超块选择密钥对( ,A),用于定义将由封装单元 1520选择哪A个超块和相应指纹来用于数据完整性证明,而不是所有n个超块及相应指纹。
质询还可以包括重复因子仏,将接收单元1510、封装单元1520、
变换单元1530和知识证明产生单元1540的操作重复^次,每次均产 生变换超块的一个知识证明,表示为变换超块的第m个知识证明Hm,
m 二 1,2,...,^ 。
质询可以包含来自时间戳权烕机构(TSA)的数字签名时间戳。 此外,根据数字签名时间戳产生第一和第二随机性定义密钥 和 以及超块选择密钥 中至少一个。
此外,存档服务器1500还可以包括发送单元1560,用于发送变 换超块的变换指纹和知识证明。
验证器(客户端或第三方验证器)
图16示出了用于实现本发明的验证器1600的框图。这里,验证 器1600用作验证数据完整性的设备。对于本领域技术人员而言,显而 易见的是验证器1600可以是客户端1400本身或第三方验证器。在验 证器1600是客户端1400本身的前一种情况下,是指客户端1400包括 如图14所示的用于产生数据指纹的子系统和如图16所示的用于验证 数据的子系统。另一方面,在验证器1600是第三方验证器的后一种情 况下,是指第三方验证器所必需的只是如图16所示的结构,而图14 所示的结构是可选的。
如图16所示,验证器1600包括质询产生和发送单元1610,用 于产生并发送质询,所述质询至少包括第一随机性定义密钥 和第二 随机性定义密钥 ;接收单元1620,用于接收变换超块的变换指纹和 知识证明;定位符封装单元1630,用于构造O)个盒子,以所述第一随 机方式,随机地将"个定位符W分配到①个盒子中,每个定位符放在 一个盒子中,并基于所述n个定位符的分配,产生①个封装定位符; 推定知识证明产生单元1640,用于以所述第二随机方式,随机变换所 述O个封装定位符,以产生变换定位符,并根据所述变换指纹和所述 变换定位符,产生所述变换超块的推定知识证明;比较器1650,用于 将所述变换超块的推定知识证明与所接收的所述变换超块的知识证明相比较;以及验证单元1660,如果比较结果是肯定的,则验证所述数 据的数据完整性。验证器1600也可以包括存储器1670,用于存储由 质询产生和发送单元1610、接收单元1620、定位符封装单元1630、 推定知识证明产生单元1640、比较器1650和验证单元1660使用或产 生的信息。但是,本领域技术人员必须清楚,存储器1670可以是上述 独立的单元,或者可以是结合在质询产生和发送单元1610、接收单元 1620、定位符封装单元1630、推定知识证明产生单元1640、比较器 1650和验证单元1660中的一个/多个集成单元。
推定知识证明产生单元1640基于数据的标识符^、变换指纹和
变换定位符,产生变换超块的推定知识证明。
推定知识证明产生单元1640还基于第一和第二私钥:r和》产生所 述变换超块的推定知识证明。
由质询产生和发送单元1610产生的质询还包括超块选择密钥对 K,A),用于定义将由定位符封装单元1630选择哪A个定位符来用于 数据完整性证明,而不是所有n个定位符。
由质询产生和发送单元1610产生的质询还包括重复因子^,将定 位符封装单元1630、推断知识证明产生单元1640和比较器1650的操 作重复W次,仅当所有比较结果均为肯定的时,验证单元1660才验证 所述数据完整性。
由质询产生和发送单元1610产生的质询包含来自时间戳权威机 构(TSA)的数字签名时间戳。
由质询产生和发送单元1610根据所述数字签名时间戳来确定第 一和第二随机性定义密钥 和 以及超块选择密钥 中至少一个。
以上描述仅给出了本发明的优选实施例,而并不是要以任何方式 限制本发明。因此,在本发明精神和原理内进行的任何修改、替换、 改进等应该由本发明范围所涵盖。
权利要求
1. 一种产生数据指纹的方法,包括步骤将数据划分成N个块Mi,i=1,2,...,N;将每nB个块组合成超块,以得到个超块;从有限循环群中选择nB个元素hj,j=1,2,...,nB;通过使用针对第k超块的定位符Wk、所选的nB个元素hj和第一私钥x,分别产生第k超块的指纹Tk,k=1,2,...,n。
2. 根据权利要求1所述的产生数据指纹的方法,其中所述 个 元素^是与第一私钥^相对应的公钥的一部分。
3. 根据权利要求1所述的产生数据指纹的方法,其中所述 个 元素~满足关系~=^,。是秘密密钥。
4. 根据权利要求l所述的产生数据指纹的方法,其中根据<formula>formula see original document page 2</formula>产生第A超块的指纹j;, ZM是所述数据的标识符。
5. 根据权利要求4所述的产生数据指纹的方法,其中第yt超块的 定位符^是至少以&为输入的哈希值。
6. 根据权利要求l所述的产生数据指纹的方法,其中根据<formula>formula see original document page 2</formula>产生第^超块的指纹7;。
7. 根据权利要求6所述的产生数据指纹的方法,其中第)t超块的 的定位符^是至少以yt和所述数据的标识符ZM为输入的哈希值。
8. 根据权利要求5或7所述的产生数据指纹的方法,其中第;t超块的定位符K还包括针对所述数据的数据文件名和/或数据版本号。
9. 根据权利要求4或7所述的产生数据指纹的方法,其中所述 标识符^根据所述数据的不同而不同。
10. —种证明数据的数据完整性的方法,其中采用根据权利要求1 9之一所述的产生数据指纹的方法产生所述数据的指纹,所述方法 包括步骤接收质询,所述质询至少包括第一随机性定义密钥 和第二随机性定义密钥 ;构造d)个盒子;以第一随机性定义密钥 定义的第一随机方式,随机地将n个指纹分配到所述①个盒子中,每个指纹放在一个盒子中;基于所述n个指纹的分配,产生d)个封装超块和相应的封装指纹; 以由第二随机性定义密钥 定义的第二随机方式,随机地变换所述O个封装超块和相应的封装指纹,以产生变换超块和变换指纹;以及产生所述变换超块的知识证明。
11. 根据权利要求10所述的证明数据完整性的方法,其中所述 变换超块的知识证明是所述变换超块本身。
12. 根据权利要求10所述的证明数据完整性的方法,其中所述 变换超块的知识证明是基于所述公钥和所述变换超块而产生的。
13. 根据权利要求12所述的证明数据完整性的方法,其中变换 超块的知识证明H表示为Tl丑& =》是第二私钥,A是变换超块。
14. 根据权利要求12所述的证明数据完整性的方法,其中变换 超块的知识证明H表示为& = 》是第二私钥,A是变换超块,p&(.)表示伪随机函数。
15. 根据权利要求10所述的证明数据完整性的方法,其中所述 质询还包括超块选择密钥对K,A),用于定义将选择哪A个超块和相应指纹来用于数据完整性证明,而不是所有"个超块及相应指纹。
16. 根据权利要求10所述的证明数据完整性的方法,其中所述质询还包括重复因子^,将从构造盒子到产生知识证明的歩骤里复^ 次,每次均产生变换超块的一个知识证明,表示为变换超块的第m个 知识证明Hm, m = l,2,...,V>。
17. 根据权利要求16所述的证明数据完整性的方法,其中所述 数目0等于2-, 0 =卩/^ + 1, Z是安全级别因子,用于确定所述方法的安全级别。
18. 根据权利要求10所述的证明数据完整性的方法,其中由验 证器选择第一和第二随机性定义密钥 和 以及超块选择密钥对 (k3,A)。
19. 根据权利要求10所述的证明数据完整性的方法,其中所述 质询包含来自时间戳权威机构TSA的数字签名时间戳。
20. 根据权利要求19所述的证明数据完整性的方法,其中根据 所述数字签名时间戳产生第一和第二随机性定义密钥 和 以及超块 选择密钥 中至少一个。
21. 根据权利要求10所述的证明数据完整性的方法,还包括发 送变换超块的变换指纹和知识证明。
22. —种与根据权利要求10 21之一所述的证明数据完整性的 方法相结合的、验证数据完整性的方法,其中采用根据权利要求1 9 之一所述的产生数据指纹的方法产生所述数据的指纹,所述方法包括 步骤产生并发送质询,所述质询至少包括第一随机性定义密钥 和第 二随机性定义密钥^;接收变换超块的变换指纹和知识证明; 构造①个盒子;以所述第一随机方式,随机地将"个定位符^分配到①个盒子中,每个定位符放在一个盒子中;基于所述"个定位符的分配,产生①个封装定位符; 以所述第二随机方式,随机变换所述O个封装定位符,以产生变换定位符;根据所述变换指纹和所述变换定位符,产生所述变换超块的推定知识证明;将所述变换超块的推定知识证明与所接收的所述变换超块的知 识证明相比较;以及如果比较结果是肯定的,则验证所述数据的数据完整性。
23. 根据权利要求22所述的验证数据完整性的方法,其中基于 所述数据的标识符ZM、所述变换指纹和所述变换定位符产生所述变换超块的推定知识证明。
24. 根据权利要求23所述的验证数据完整性的方法,其中还基 于第一和第二私钥r和》产生所述变换超块的推定知识证明。
25. 根据权利要求24所述的验证数据完整性的方法,其中所述 变换超块的推定知识证明表示为F/5((,W,)T表示变换指纹,W表示变换定位符;并且第&超块的定位符K是至少以*和所述数据的标识符&为输入的哈希值。
26. 根据权利要求25所述的验证数据完整性的方法,其中第^t超块的定位符^还包括针对所述数据的数据文件名和/或数据版本号。
27. 根据权利要求22所述的产生数据指纹的方法,其中所述标识符zM根据所述数据的不同而不同。
28. 根据权利要求24所述的验证数据完整性的方法,其中所述 变换超块的推定知识证明表示为T表示变换指纹,W表示变换定位符;并且第)t超块的定位符^是至 少以/t为输入的哈希值。
29. 根据权利要求28所述的验证数据完整性的方法,其中第A超块的定位符^还包括针对所述数据的数据文件名和/或数据版本号。
30. 根据权利要求23所述的验证数据完整性的方法,其中所述变换超块的推定知识证明产生为e(T,VO.e(W,i)(52〉是在^=^〉的情况下、具有p是大质数;g,附加群《=〈^)的有限循环群,以使' e:glxg2—S是双线性映射函数;T表示变换指纹,W表示变换定位 符;第it超块的定位符R是至少以/t为输入的哈希值;i和》是第一和 第二私钥;如下将所述变换超块的推定知识证明与所述变换超块的知识证 明相比较,e(H,&):e(T,i;,/M).e(W,^) H表示所述变换超块的知识证明。
31. 根据权利要求30所述的验证数据完整性的方法,其中第A超块的定位符^还包括针对所述数据的数据文件名和/或数据版本号。
32. 根据权利要求30所述的验证数据完整性的方法,其中所述 质询还包括快验证因子^,并选择&个随机数r; eZ;Zp, & = 1,2,...一,计算并验证fc=lifc=l
33.根据权利要求23所述的验证数据完整性的方法,其中所述 变换超块的推定知识证明产生为乖~ = <, y = ^e(G2; G2-〈^〉是在g,〈^〉的情况下.有附加群9 =〈》的有限循环群,以使^卜Ig"二^I:p, p是大质数; e:glx(g2 —G是双线性映射函数;T表示变换指纹,W表示变换定位 符;第^超块的定位符^是至少以A和所述数据的标识符^为输入的 哈希值;^和<9是第一和第二私钥;如下将所述变换超块的推定知识证明与所述变换超块的知识证 明相比较,e(H,&)"(T,i;).e(W,^) H表示所述变换超块的知识证明。
34.根据权利要求33所述的验证数据完整性的方法,其中第A超 块的定位符^还包括针对所述数据的数据文件名和/或数据版本号。
35. 根据权利要求33所述的产生数据指纹的方法,其中所述标 识符^根据所述数据的不同而不同。
36. 根据权利要求33所述的产生数据指纹的方法,其中所述质 询还包括快速验证因子^,并选择&个随机数^eZ;Zp, A; = 1,2,...,^,计算并验证
37. 根据权利要求22所述的验证数据完整性的方法,其中所述 质询还包括超块选择密钥对( ,A),用于定义将选择哪A个定位符来用 于数据完整性证明,而不是所有w个定位符。
38. 根据权利要求22所述的验证数据完整性的方法,其中所述 质询还包括重复因子^,将从构造盒子到比较知识证明和推定知识证 明的步骤重复仏次,仅当所有比较结果均为肯定的时,才验证所述数 据的数据完整性。
39. 根据权利要求22所述的验证数据完整性的方法,其中由验 证器选择第一和第二随机性定义密钥 和 以及超块选择密钥对 K,A)。
40. 根据权利要求22所述的验证数据完整性的方法,其中所述 质询包含来自时间戳权威机构TSA的数字签名时间戳。
41. 根据权利要求40所述的验证数据完整性的方法,其中根据 所述数字签名时间戳产生第一和第二随机性定义密钥 和 以及超块 选择密钥 中至少一个。
42. —种用于产生数据指纹的设备,包括超块产生单元,用于将数据划分成iV个块M,, z = l,2,...,iV,并将 每 个块组合成超块,以得到n-「V/ ,个超块;以及指纹产生单元,用于从有限循环群^—^中选择 个元素^, j = l,2,...,ns ,并通过使用针对第;t超块的定位符^ 、所选的 个元素^ 和第一私钥i,分别产生第it超块的指纹 ;, fc = l,2,...,n。
43. 根据权利要求42所述的产生数据指纹的设备,其中所述r^个 元素^是与第一私钥x相对应的公钥的一部分。
44. 根据权利要求42所述的产生数据指纹的设备,其中所述 个 元素~满足关系~=&, r;.是秘密密钥。
45. —种用于证明数据完整性的设备,包括接收单元,用于接收质询,所述质询至少包括第一随机性定义密钥 和第二随机性定义密钥 ;封装单元,用于构造①个盒子;用于以第一随机性定义密钥 定 义的第一随机方式,随机地将"个指纹分配到所述①个盒子中,每个指纹放在一个盒子中;并用于基于所述"个指纹的分配,产生O个封 装超块和相应的封装指纹;变换单元,用于以由第二随机性定义密钥/S定义的第二随机方式, 随机地变换所述O)个封装超块和相应的封装指纹,以产生变换超块和 变换指纹;以及知识证明产生单元,用于产生所述变换超块的知识证明。
46. 根据权利要求45所述的证明数据完整性的设备,其中所述 知识证明产生单元产生作为所述变换超块本身的所述变换超块的知识 证明。
47. 根据权利要求45所述的证明数据完整性的设备,其中所述 知识证明产生单元基于所述公钥和所述变换超块而产生所述变换超块 的知识证明。
48. 根据权利要求45所述的证明数据完整性的设备,其中所述 质询还包括超块选择密钥对( ,A),用于定义将由所述封装单元选择哪 A个超块和相应指纹来用于数据完整性证明,而不是所有n个超块及 相应指纹。
49. 根据权利要求45所述的证明数据完整性的设备,其中所述 质询还包括重复因子仏,将所述封装单元、变换单元和知识证明产生 单元的操作重复^次,每次均产生变换超块的一个知识证明,表示为 变换超块的第w个知识证明H一 m = l,2,...^。
50. 根据权利要求45所述的证明数据完整性的设备,其中所述 质询包含来自时间戳权威机构TSA的数字签名时间戳。
51. 根据权利要求50所述的证明数据完整性的设备,其中根据所述数字签名时间戳产生第一和第二随机性定义密钥 和/s以及超块 选择密钥 中至少一个。
52. 根据权利要求45所述的证明数据完整性的设备,还包括 发送单元,用于发送变换超块的变换指纹和知识证明。
53. —种用于验证数据完整性的设备,包括质询产生和发送单元,用于产生并发送质询,所述质询至少包括第一随机性定义密钥 和第二随机性定义密钥 ;接收单元,用于接收变换超块的变换指纹和知识证明; 定位符封装单元,用于构造①个盒子,以所述第一随机方式,随机地将n个定位符K分配到O)个盒子中,每个定位符放在一个盒子中,并基于所述n个定位符的分配,产生O)个封装定位符;推定知识证明产生单元,用于以所述第二随机方式,随机变换所述cD个封装定位符,以产生变换定位符,并根据所述变换指纹和所述变换定位符,产生所述变换超块的推定知识证明;比较器,用于将所述变换超块的推定知识证明与所接收的所述变换超块的知识证明相比较;以及验证单元,如果比较结果是肯定的,则验证所述数据的数据完整性。
54. 根据权利要求53所述的验证数据完整性的设备,其中所述 推定知识证明产生单元基于所述数据的标识符^ 、所述变换指纹和所述变换定位符产生所述变换超块的推定知识证明。
55. 根据权利要求54所述的验证数据完整性的设备,其中还基 于第一和第二私钥:r和"产生所述变换超块的推定知识证明。
56. 根据权利要求53所述的验证数据完整性的设备,其中由所 述质询产生和发送单元产生的所述质询还包括超块选择密钥对K,A), 用于定义将由所述定位符封装单元选择哪A个定位符来用于数据完整 性证明,而不是所有n个定位符。
57. 根据权利要求53所述的验证数据完整性的设备,其中由所 述质询产生和发送单元产生的所述质询还包括重复因子W ,将所述定 位符封装单元、推断知识证明产生单元和比较器的操作重复W次,仅当所有比较结果均为肯定的时,验证单元才验证所述数据完整性。
58. 根据权利要求53所述的验证数据完整性的设备,其中由所述质询产生和发送单元产生的所述质询包含来自时间戳权烕机构TSA的数字签名时间戳。
59. 根据权利要求58所述的验证数据完整性的设备,其中所述质询产生和发送单元根据所述数字签名时间戳来确定第一和第二随机 性定义密钥 和/s以及超块选择密钥 中至少一个。
60. —种数据完整性验证系统,包括根据权利要求45-52之一所述的用于证明数据完整性的设备;以及根据权利要求53-59之一所述的用于验证数据完整性的设备。
61. 根据权利要求60所述的数据完整性验证系统,还包括-根据权利要求42-44之一所述的用于产生数据指纹的设备。
62. 根据权利要求61所述的数据完整性验证系统,其中用于产 生数据指纹的设备也用作用于验证数据完整性的设备。
全文摘要
本发明提出了一种可证数据完整性(PDI)验证方法,其中首先在客户端侧产生数据的数字指纹,将指纹与数据一并发送至存档服务器;当需要时,客户端或第三方验证器向该存档服务器发送“质询”,以确定数据的完整性,该存档服务器通过使用接收到的指纹来证明数据的完整性;最后,客户端或第三方验证器根据来自存档服务器的响应该“质询”的输出,验证数据的完整性。具体地,在本发明中,分别提出了一种产生数据指纹的方法和设备、一种证明数据的数据完整性的方法和设备、以及一种验证数据完整性的方法和设备。
文档编号H04L9/32GK101471779SQ20081016586
公开日2009年7月1日 申请日期2008年9月25日 优先权日2007年12月29日
发明者珂 曾 申请人:日电(中国)有限公司