一种用于对网络传输的数据块进行验证的方法和装置的制作方法

文档序号:7685374阅读:123来源:国知局
专利名称:一种用于对网络传输的数据块进行验证的方法和装置的制作方法
技术领域
本发明涉及数据校验技术,尤其涉及在用户设备中用于验证从网络 中下载的数据块的验证方法及装置,以及在网络服务器中用于辅助用户 设备对下载的数据块进行验证的辅助方法及装置。
背景技术
当今世界已经进入了信息时代,信息成为 一 种重要的战略资源。 随着互联网的迅猛发展和普及,人们越来越多地利用互联网进行数据 共享、交换和传播,以更方便快捷地获得更多更新的信息。然而,随 之带来的数据验证也成为待完善和加强的技术难题。
以基于P2P协议的网络通信为例,其优越之处在于得益于其开放 性模型的可扩展性,然而正是该性质带来了网络安全问题。然而与之 对应的是,由于受带宽和传输速度的限制,现有技术并未有专门针对 基于P2P协议的数据块进行正确性验证的验证技术。而未经验证的数 据在网络上大量传播将会造成不良影响,如用户下载的数据被恶意篡 改,将造成网络传输混乱,甚至成为网络犯罪的温床。
因此,迫切地需要一种数据正确性验证技术来对网络传输数据的 正确性进行有效验证。

发明内容
本发明为了解决现有技术的上述缺陷,提出了一种用于对网络传输 的数据块进行验证的方法和装置。首先,在网络服务器端对数据块进行 辅助校验,得到一个或多个辅助校验值,并将该一个或多个辅助校验值 发送给将要或正在或已经下载该数据块的一个或多个用户设备。用户设 备端从网络中获取所述数据块对应的一个或多个辅助校验值,并对该数
6据块进行重新校验,得到一个或多个本地校验值,最后将所述一个或多 个辅助校验值与所述一个或多个本地校验值进行比较,以判断该数据块 是否正确。
根据本发明的第 一方面,提供了 一种在用户设备中用于验证从网络 中下载的数据块的验证方法,其中,包括如下步骤A.从网络中获取 所述数据块对应的一个或多个校验值,并且对该数据块进行校验,得到 一个或多个本地校验值;B.将所述一个或多个校验值与所述一个或多 个本地校验值进行比较,如所述一个或多个校验值与所述一个或多个本 地校验值相对应或相同,则判断该数据块为正确的数据块。
根据本发明的第二方面,提供了 一种在网络服务器中用于辅助用户
设备对下载的数据块进行验证的辅助方法,其中,包括以下步骤a.对 数据块进行校验,得到一个或多个校验值;b.将该一个或多个校验值发 送给一个或多个用户设备。
根据本发明的第三方面,提供了 一种在用户设备中用于验证从网络 中下载的数据块的验证装置,其中,其包括获取装置,用于从网络中 获取所述数据块对应的一个或多个校验值;第一校验装置,用于对该数 据块进行校验,得到一个或多个本地校验值;比较装置,用于将所述一 个或多个校验值与所述一个或多个本地校验值进行比较,如所述一个或 多个校验值与所述一个或多个本地校验值相对应或相同,则判断该数据 块为正确的数据块。
根据本发明的第四方面,提供了 一种在网络服务器中用于辅助用户 设备对下载的数据块进行验证的辅助装置,其中,其包括第二校验装 置,用于对数据块进行校验,得到一个或多个校验值;发送装置,用于 将该一个或多个校-验值发送给下载该数据块的一个或多个用户设备。
通过采用本发明的方法和装置,能够对网络传输数据块的正确性进 行快速有效地验证。本发明还特别适用对基于P2P协议的网络传输数据 的验证。此外,本发明结合网络传输数据的相关信息对数据进行验证, 更加有效和严密。


通过阅读以下参照附图所作的对非限制性实施例的详细描述,本发 明的其它特征、目的和优点将会变得更明显。
图1是根据本发明的一个具体实施例的1个网络服务器和多个用户
设备基于P2P协议进行通信的网络拓朴结构示意图2a是根据本发明的一个具体实施例的在网络服务器中用于辅助 用户设备对下载的数据块进行验证的辅助方法的步骤流程图2b是图la所示步骤Sll的根据本发明的一个具体实施方式
的详 细流程图
图3a是根据本发明的一个具体实施例的将数据特征信息设置于 数据块头部的结构示意图3b是根据本发明的一个具体实施例的将数据特征信息设置于 数据块尾部的结构示意图3c是根据本发明的一个具体实施例的将数据特征信息设置于 数据块中间的结构示意图3d是根据本发明的一个具体实施例的将数据特征信息分别设 置于数据块头部和尾部的结构示意图3e是根据本发明的一个具体实施例的将数据特征信息分别设 置于数据块头部和尾部的结构示意图3f是根据本发明的一个具体实施例的将数据特征信息分别设 置于数据块头部和中间以及尾部的结构示意图4是根据本发明一个具体实施方式
的信息列表的格式示意图5是根据本发明的一个具体实施例的在用户设备中用于验证从网 络中下载的数据块的验证方法的步骤流程图6是根据本发明的一个具体实施例的1个网络服务器和1个用户 设备基于C/S (Client/Server)模式进行通信的网络拓朴结构示意图7a是根据本发明的一个具体实施例的在网络服务器中用于辅助 用户设备对下载的数据块进行验证的辅助装置;
图7b是图7a所示第二校验装置11的根据本发明的一个具体实施方式
的详细结构示意图8是根据本发明的一个具体实施例的在用户设备中用于验证从网 络中下载的数据块的验证装置。
具体实施例方式
为方便理解,首先对本文中出现的部分术语进行解释,以便理解。
-P2P (点对点,即Peer-to-Peer)协议基于该协议的网络也称 对等网络,意为一个网络中所有节点的角色、行为、责任和义务都是 平等的。在P2P网络中,Peer (端)可为网络服务器,可为多个用户 设备中任意用户设备。
-网络服务器本文中,将基于P2P协议的网络中提供各种数据 包的源端主机称为网络服务器。
-用户设备本文中,将基于P2P协议的网络中的客户主机统称 为用户设备,其中包括直接从服务器获取数据包的用户设备,以及从 其它用户设备中获取数据包的用户设备。所述用户设备包括但不限于 个人电脑,手机等。
-文件或文件分片文件包括但不限于媒体文件和广告文件等, 其格式包括但不限于AVI、 RMVB、 RM、 WMV及ASF等。文件分 片为包含文件的数据部分的数据信息的分片。同 一媒体文件的分片大 小为64KB (千比特) 8MB (兆比特)左右不等,通常在512KB 1MB 左右。
-MD5 ( Message-Digest Algorithm 5,信息画摘要算法)其为Hash 算法的一种单向函数算法,由国际著名的公匙加密算法标准RSA的 第一设计者R.Rivest于上个世纪90年代初开发。MD5身见则的核心算 法在于能够将任意长度的字符串经过 一 系列演算,从而使其变换成一 个128比特的长整数。MD5的最大作用在于将不同格式的大容量文 件信息在用数字签名软件来签署私人密匙前"压缩"成一种保密的格 式,关键之处在于该"压缩"是不可逆的。换言之,通过利用MD5规 则,即使;故看到源程序和算法描述,也无法将一个MD5值还原成为原始的字符串。例如,我们将一段话写在一个叫eg.txt的文件中,并 对该eg.txt文件进行MD5运算从而产生一个MD5值并记录在案,接 着将该文件发送给其他人,如果其他人修改了文件中的任何内容,则 当我们对修改后的该文件再次进行MD5运算并得到另外一个MD5值 时,上述两个MD5值必然是不相同的。本发明正是利用MD5规则的 上述特征对网络传输数据的正确性进行验证。
在此后的说明中将陆续对文中出现的其他概念进行解释。
以下结合附图对本发明作进 一 步详细描述。
图1示出了根据本发明的一个具体实施例的1个网络服务器和多个 用户设备基于P2P协议进行通信的网络拓朴结构示意图。为简明起见, 图中仅列出5个用户设备。首先,网络服务器A对数据块进行辅助校 验,得到一个或多个辅助校验值,并将该一个或多个辅助校验值发送给 将要或正在或已经下载该数据块的一个或多个用户设备(如图示的用户 设备1~3)。用户设备(如图示的用户设备1~5中的任意一个或多个 用户设备)从网络中(包括网络服务器A或用户设备3 4)获取所述数 据块对应的一个或多个辅助校验值,并对该数据块进行重新校验,得到
一个或多个本地校验值,最后将所述一个或多个辅助校验值与所述一个 或多个本地校验值进行比较,以判断该数据块是否正确。
图2a示出了根据本发明的一个具体实施例的在网络服务器中用于 辅助用户设备对下载的数据块进行验证的辅助方法的步骤流程图,以下 以MD5校验规则为例,以图1中的网络服务器A和用户设备1为例 对图1中所示的流程进行详细说明。
首先,在步骤Sll中,网络服务器A首先对用于网络传输的数据 块进行MD5运算,得到一个或多个MD5校验值。在此,数据块可包 括一个或多个文件或文件分片。
具体地,图2a所示步骤S11又可细分为如图2b所示的三个子步骤。
首先,在步骤S111中,网络服务器A首先对文件(例如广告文 件《人文奥运》)或文件分片(例如媒体文件《乱世佳人》第一分片) 进行初始分组处理。其中,每个分组通常为512位,接着分别再将每个分组进一步划分为16个32位的子分组。
然后,在步骤S112中,网络服务器A对文件或文件分片的单个 分组的数据进行"填充",即在该分组数据的最后位后附上一个'T,,接 着在'T,后添加多个"O,,,直至满足所有分组数据的长度皆恰好比512 位的整数倍小64位的变量。假设,其中四个子分组数据变量(以下 将子分组数据变量简称为变量)分别为(为简明起见,下文的所有变 量值皆以 16进制表示)A=0x01234567 ; B=0x89abcdef ; C二0xfedcba98; D=0x76543210。然后,将上述变量A、 B、 C、 D复 制到其他变量中去,例如A复制到变量a, B复制到b, C复制到c, D复制到d。
最后,在步骤S113中,网络服务器对所述变量A、 B、 C、 D进 行循环计算。具体地,首先对上述4个变量中的任意3个变量做一次 非线形函数运算,得到l个运算值;然后将该运算值加上上述4个变 量中未做非线形函数运算的变量,文件或文件分片的1个子分组和1 个随机常数,得到l个叠加值;再将该叠加值向右移动不定位,并加 上上述4个变量其中之一,得到l个换算值;最后用该换算值覆盖变 量A、 B、 C、 D其中之一。
具体地,如F(X,Y,Z) 、 G(X,Y,Z)、 H(X,Y,Z)、 I(X,Y,Z)为非线形 函数,Mj为文件或文件分片的第j个子分组(]=0~15) ,s为移动位数, ti为随机数,假设
FF(a, b, c, d, Mj, s, ti)表示,a=b+((a+(F(b, c, d)+Mj+ti)《<s);
GG(a, b, c, d, Mj, s, ti)表示,a=b+((a+(G(b, c, d)+Mj+ti)《<s);
HH(a, b, c, d, Mj, s, ti)表示,a=b+((a+(H(b, c, d)+Mj+ti) <s);
II(a, b, c, d, Mj, s, ti)表示,a=b+((a+(I(b, c, d)+Mj+ti)《<s)。 则对单个子分组进行循环运算(共4轮64步)的详细过程为如下
第一轮
FF(a, b, c, d, M0, 7, 0xd76aa478); FF(d, a, b, c, M,12, 0xe8c7b756);FF(c,d,a,b,M2,17, 0x242070db);
FF(b,c,d,a,M3,22, Oxclbdceee);
FF(a,b,c,d,M4,7, 0xf57c0faf);
FF(d,3,b,c,M5,12, 0x4787c62a);
FF(c,d,a,b,M6,17, 0xa8304613);
FF(b,c,d,a,M7,22, 0xfd469501);
FF(a,b,c,d,M8,7, 0x698098d8);
FF(d,a,b,c,M9,12, 0x8b44f7af);
FF(c,d,a,b,M10,17, Oxffff5bbl);
FF(b,c,d,3,Mn,22, 0x895cd7be);
FF(a,b,c,d,M12,7, 0x6b901122);
FF(d,&b,c,M13,12, 0xfd987193);
FF(c,d,a,b,M14,17, 0xa679438e);
FF(b,c,d,a5M15,22, 0x49b40821)。
第二轮
GG(a,b,c5d,5, 0xf61e2562);
GG(d,a,b,c,M6,9, 0xc040b340);
GG(c,d,a,b,M11:,14, 0x265e5a51);
GG(b,c,d,a,M0,20, 0xe9b6c7aa);
GG(a,b,c,d,M5,5, 0xd62fl05d);
GG(d,a,b,c,M10:,9, 0x02441453);
GG(c,d,a,b,M15:,14, Oxd8ale681);
GG(b,c,d,a,M4,20, 0xe7d3fbc8);
GG(a,b,d,M9,5, 0x21elcde6);
GG(d,a,b,c,M14:,9, 0xc33707d6);
GG(c,d,a,b,M3,14, 0xf4d50d87);
GG(b,c,d,a,M8,20, 0x455al4ed);
GG(a,b,c5d,M13,'5, 0xa9e3e905);
GG(d,a,b,c,M2,9, Oxfcefa3f8);GG(c, d, GG(b, c, 第三轮 HH(a, b, 朋(d, a, 朋(c, d, HH(b, c, 朋(a, b, 朋(d, a, HH(c, d, HH(b, c, 朋(a, b, HH(d, a, HH(c, d, 朋(b, c, HH(a, b, HH(d, a, 朋(c, d, HH(b, c, 第四轮; II(a, b, c, II(d, a, b, II(c, d, a, II(b, c, d, II(a, b, c, II(d, a, b, II(c, d, a, II(b, c, d, II(a, b, c,
c,
b, 3, d,
c,
b, 3,
d, " b,
a, d,
c,
b, 3,
d,
b,M7,14, 0x676腿9);
a,M12,20, 0x8d2a4c8a)。
d,M5,4, 0xfffa3942);
c,M8,11, 0x8771伤81);
b,M ,16, 0x6d9d6122);
3,M14,23, 0xfde5380c);
d,M!,4, 0xa4beea44);
c5M4,11, 0x4bdecfa9);
b,M7,16, 0xf6bb4b60);
a,M10,23, 0xbebfbc70);
d,M13,4, 0x289b7ec6);
c,M0,11, 0xeaal27fa);
b,M3,16, 0xd4e簡5);
&M6,23, 0x04881d05);
d,M9,4, 0xd9d4d039);
c,M12,11, 0xe6db99e5);
b,M15,16, 0xlfa27cf8);
a5M2,23, 0xc4ac5665)。
d, M0, 6, 0xf4292244);
c, M7, 10, 0x432aff97); b, M4, 15, 0xab9423a7)
a, M5, 21, 0xfc93a039) d, M12, 6, 0x655b59c3) c, M3, 10, 0x8f0ccc92)
b, M10, 15, 0xffeff47d) a, M', 21, 0x85845ddl);
d, M8, 6, 0x6fa87e4f);II(d, a, b, c,M15,10, 0xfe2ce6e0);
II(c, d, a, b,M6,15, 0xa3014314);
II(b, c, d, a,M13,21, 0x4e0811al);
II(a, b, c, d,M4,6, Oxf7537e82);
II(d, a, b, c,M ,10, 0xbd3af235);
II(c, d, a, b,M2,15, 0x2ad7d2bb);
II(b, c, d, a,M9,21, 0xeb86d391)。
然后将变量A,B,C, D分别加上其进行MD5运算后的变量
b, c, d。最后输出的MD5校验值即为变量A, B, C, D级联的128
位长整数。
以此类推,可按照上述算法规则继续对下1个512位的分组进行计算。
随后即进入到步骤S12,网络服务器A将在所述步骤Sll中得到 的一个或多个MD5校验值发送给用户设备1。
优选地,本发明还可以利用网络传输数据块的特征信息对网络传 输数据块进行校验。具体地,例如,网络服务器A可以对网络传输数 据的相关信息进行MD5运算,得到一个或多个MD5校验值,再与该 数据块的MD5校验值一起对数据进行校验。或者,网络服务器可以 将特征信息作为数据块的一部分,如将其设置于数据块的头部、中间、 尾部从而使数据块及其相关信息成为一个数据集合,并对该数据集合 进行MD5运算,得到一个或多个MD5校验值。其中,所述特征信息 包括以下一项或任多项文件长度,即文件或文件分片的长度;文件 生成时间,即文件出现在网络系统中的长度;文件属性,可包括文件 格式,读写状态等信息;文件名,即文件名称。图3a示出了根据本 发明的 一 个具体实施例的将数据特征信息设置于数据块头部的结构 示意图,其中,网络服务器将数据特征信息文件名,文件长度,文件 属性,文件生成时间均设置于数据块(文件)的头部从而使该文件及 其特征信息成为一个数据集合,并对该数据集合进行MD5运算,得 到一个或多个MD5校验值。图3b示出了本发明的一个具体实施例的将数据特征信息设置于数据块尾部的结构示意图,其中,网络服务器 将数据特征信息文件名,文件长度,文件属性,文件生成时间均设置 于数据块(文件)的尾部从而使该文件及其特征信息成为一个数据集
合,并对该数据集合进行MD5运算,得到一个或多个MD5校验值。 图3c示出了本发明的一个具体实施例的将数据特征信息设置于数据
块中间的结构示意图,其中,网络服务器将数据特征信息文件名,文 件长度,文件属性,文件生成时间均设置于数据块(文件)的中间从 而使该文件及其特征信息成为一个数据集合,并对该数据集合进行
MD5运算,得到一个或多个MD5校验值。图3d示出了本发明的一 个具体实施例的将数据特征信息分别设置于数据块头部和尾部的结 构示意图,其中,网络服务器将数据特征信息文件名,文件长度设置 于数据块(文件)的头部,将文件属性,文件生成时间设置于文件的 尾部从而使该文件及其特征信息成为一个数据集合,并对该数据集合 进行MD5运算,得到一个或多个MD5校验值。图3e示出了本发明 的 一 个具体实施例的将数据特征信息分别设置于数据块头部和尾部 的结构示意图,其中,网络服务器将文件名,文件长度,文件属性设 置于文件的头部,将数据特征信息文件生成时间设置于文件的尾部, 从而使该文件及其特征信息成为 一个数据集合,并对该数据集合进行 MD5运算,得到一个或多个MD5校验值。图3f示出了本发明的一个 具体实施例的将数据特征信息分别设置于数据块头部和中间以及尾 部的结构示意图,其中,网络服务器将文件名设置于文件的头部,将 数据特征信息文件长度和文件属性设置于文件的中间,将数据特征信 息文件生成时间设置于文件尾部从而使该文件及其特征信息成为一 个数据集合,并对该数据集合进行MD5运算,得到一个或多个MD5 校验值。
具体地,结合MD5规则,本发明利用网络传输数据块的特征信 息对该数据块进行校验的具体算法过程,与前文对文件或文件分片进 行MD5运算的具体算法过程基本相似,在此不再赘述。
需要说明的是,由于所述特征信息的唯一性和难获得性,相比较于单对文件内容做验证,通过所述特征信息对网络数据块进行校验将 更加有效和严密。假设这样一种情况,基于仅对数据(内容)作MD5 运算的校验机制,如图1所示的用户设备对用户设备4将下载的数据 块进行替换(例如将《乱世佳人》媒体文件替换为某广告片段文件),
并破解该媒体文件的MD5校验值从而伪造与之相同的某广告片段文 件的MD5校验值,然后将该广告片段文件及其MD5校验值一并发送 给该用户设备4,基于收到的该MD5校验值与其从网络服务器下载 的该媒体文件的MD5校验值相同,该用户设备4可能并未察觉该媒 体文件已被而已篡改。然而,若结合该媒体文件的相关信息对该媒体 文件进行校验,由于该媒体文件的唯 一 的相关信息如生成时间等难以 获取,用户设备3则难以以上述方法达到恶意篡改该媒体文件的目的。 这更加说明了本发明的优越性。
基于利用MD5规则对网络传输数据块进行校验的校验机制,由 于每个文件或文件的每个文件分片都对应了一个或多个MD5校验 值,因此可以将MD5校验值作为其对应的文件或文件分片的标识。 假设这样一种情况,如图1所示的用户设备4首先向用户设备3发送 查询消息,该查询消息用于查询所述用户设备3是否拥有某文件分片 (例如媒体文件《西游记》的文件分片1)。如果网络协议为TCP/IP 协议,该查询信息中可以包括源用户设备(即用户设备4)和目标用 户设备(即用户设备3)的端口和ip地址信息,需要传输的该文件分 片1的标识信息等各种信息。其中,该标示信息为该文件分片1的 MD5校—验值。用户设备3在接收到该查询消息后查看本机中该文件 分片1的状态。如果用户设备3用有该文件分片1,则向用户设备4 发送响应消息告知用户设备2拥有该文件分片l并将该文件分片l发 送给用户设备3。基于仅对该文件分片1作MD5运算的校验机制, 若用户设备4还拥有一内容与之相同的文件分片5,则该文件分片1 和文件分片5的MD5 4交-验值应相同。而用户"i殳备4无法通过以MD5 值作为标示来区分该文件分片l和文件分5,因此误将错误的文件分 片(例如文件分片5)发送给用户设备3。由此,将造成用户设备3和4以MD5值作为标志对文件分片排序,并整合成媒体文件《西游 记》时的文件出错。更严重的,基于P2P通信网络的传播速度快和范 围广的特点,错误的文件分片将通过用户设备3或用户设备4传播至 整个网络,导致网络通信的紊乱。然而,若基于利用文件分片l的特 征信息(如文件分片名)对该文件分片1作MD5运算,所得到的文 件分片1和文件分片5的MD5校验值必然不同,则不会出现上述错 误。这更加说明了本发明的优越性。
需要说明的是,上述以利用MD5规则的校验方式对数据块的校 验进行了举例说明,本领域的普通技术人员应能理解,本发明不限于 此,其他的校验方式也适用于本发明,例如CRC校验,PKI检验等。
此外,在步骤S12中,网络服务器A可以预先将MD5校验值发 送给下载网络传输数据块的用户设备1。例如,运行基于P2P协议的 网络中,网络服务器A通过文件信息列表将其中供用户设备下载的文 件或文件分片的MD5值发送给用户设备1。图4示出了根据本发明 一个具体实施方式
的信息列表的格式示意图。信息列表中包括当前用
户设备可以从服务器上得到(但非必须从服务器得到)的1个或多个 数据块的相关信息。该信息列表中可以包含每个数据块的数据块名、 优先级,MD5校验值等任意信息。参照图4,其中,其中媒体文件《乱 世佳人》的MD5校验值为1,其为该媒体文件第一分片的MD5校验 值;广告文件《人文奥运》的MD5校验值为m,其为该广告文件整 个文件的MD5校验值;媒体文件《西游记》的MD5校验值为n,其 为该媒体文件的相关信息文件长度和文件生成时间的MD5校验值。
需要说明的是,上述以文件列表的方式将MD5校验值发送给下 载网络传输数据块的1个或多个用户设备进行了举例说明,本领域的 普通技术人员应能理解,本发明不限于此,其他的发送方式也适用于 本发明,例如以消息方式等。
图5示出了根据本发明的一个具体实施例的在用户设备中用于验证 从网络中下载的数据块的验证方法的步骤流程图。
首先,在步骤S21中,用户设备从网络中(包括网络服务器,或拥有其网络传输数据块所对应的 一个或多个MD5值的任意其他用户设备)
获取网络传输数据块所对应的一个或多个MD5校验值(例如图4所示 MD5校验值1, m, n中的任意一个或多个)。
可选地,用户设备可以基于P2P协议从网络中获取网络传输数据块 所对应的一个或多个MD5才交验值。参照图1,基于P2P协议,用户设 备1~3直接从网络服务器A获取网络传输数据块对应的l个或多个 MD5校验值,用户设备4从拥有该数据块对应的1个或多个MD5值 校验值的所述用户设备3中获取该1个或多个MD5校验值,用户设 备5进一步地从所述用户设备4获取该1个或多个MD5值。
需要说明的是,本发明不仅适用于上述基于P2P协议的数据块的 验证,还适用于基于其他通信模式的数据块的验证,例如C/S (Client/Server)模式。图6示出了根据本发明的一个具体实施例的1 个网络服务器和1个用户设备基于C/S模式进行通信的网络拓朴结构示 意图。为简明起见,图中仅列出4个用户设备。其中,用户设备6 9 皆直接从网络服务器B获取网络传输数据块对应的1个或多个MD5 值。
然后,用户设备端(如用户设备1)将下载的数据块进行MD5运算 (其运算过程如前文所述,在此不再赘述),得到1个或多个本地MD5 校验值。参照图4,例如,用户设备1可分别对媒体文件《乱世佳人》 第一分片,广告文件《人文奥运》,媒体文件《西游记》的相关信息文 件长度和文件生成时间进行MD5运算,得到本地MD5校验值1', m,, n'。
需要说明的是,上文仅以获取一个或多个MD5校验值的步骤在先, 而对数据块进行MD5运算的步骤在后的次序进行了举例说明,本领域 的普通领域技术人员应能理解,本发明不限于此,所述获取一个或多个 MD5校验值和对数据块进行MD5运算的步骤并无必然的前后次序,其 他次序关系也适用于本发明,例如对数据块进行MD5运算在先和获取 一个或多个MD5校验值在后,或对数据块进行MD5运算和获取一个或 多个MD5校验值同时进行等。最后,在步骤S22中,用户设备端将所述步骤S21中获取的一个或
多个MD5校验值(1, m, n)与在所述步骤S22中得到的一个或多个 MD5本地校验值(l,, m,, n,)进行比较。如果MD5校验值1, m, n与 MD5本地校-验值1', m,, n,相同,则判断该数据块为正确的数据块。
需要说明的是,本文所述一个或多个校验值(如一个或多个MD5 值)针对不同实施例情况有所不同。例如,当本发明仅对文件进行校 验,则得到一个校验值;当本发明对文件及其相关信息分别进行校验, 则得到两个校验值。
图7a示出了根据本发明的一个具体实施例的在网络服务器中用于 辅助用户设备对下载的数据块进行验证的辅助装置。以下以MD5校验 规则为例,以图1中的网络服务器A和用户设备1为例对图7a中所示 的装置进行详细说明。该辅助装置1包括第二校验装置11和发送装置 12。
首先,第二校验装置11对网络传输数据块进行MD5运算,得到 一个或多个MD5校验值,并将该一个或多个MD5值发送给发送装置 12。在此,数据块可包括一个或多个文件或文件分片。
具体地,图7a所示第二校验装置11又可细分为如图7b所示的 三个子装置。
首先,分组装置111首先对文件(例如广告文件《人文奥运》) 或文件分片(例如媒体文件《乱世佳人》第一分片)进行初始分组处
每个分组通常为512位,接着分别再将每个分组进一步划分为16个 32位的子分组。
然后,填充装置112对文件或文件分片的单个分组的数据进行"填 充,,,即在该分组数据的最后位后附上一个"l",接着在"l"后添加多个 "0",直至满足所有分组数据的长度皆恰好比512位的整数倍小64位 的变量,并将经过"填充"处理后的分组的子分组数据发送给循环计算 装置113。假设,其中四个子分组数据变量(以下将子分组数据变量 简称为变量)分别为(为简明起见,下文的所有变量值皆以16进制表示)A=0x01234567; B=0x89abcdef; C=0xfedcba98; D=0x76543210。 然后,将上述变量A、 B、 C、 D复制到其他变量中去,例如A复制 到变量a, B复制到b, C复制到c, D复制到d。
最后,循环计算装置113对所述变量A、 B、 C、 D进行循环计算。 具体地,首先对上述4个变量中的任意3个变量做一次非线形函数运 算,得到l个运算值;然后将该运算值加上上述4个变量中未做非线 形函数运算的变量,文件或文件分片的1个子分组和1个随机常数, 得到l个叠加值;再将该叠加值向右移动不定位,并加上上述4个变 量其中之一,得到1个换算值;最后用该换算值覆盖变量A、 B、 C、 D其中之一。
具体地,如F(X,Y,Z) 、 G(X,Y,Z)、 H(X,Y,Z)、 I(X,Y,Z)为非线形 函数,Mj为文件或文件分片的第j个子分组(]=0 15) ,s为移动位数, ti为随机数,假设
FF(a, b, c, d, Mj, s, ti)表示,a=b+((a+(F(b, c, d)+Mj+ti)《<s);
GG(a, b, c, d, Mj, s, ti)表示,a=b+((a+(G(b, c, d)+Mj+ti) <s);
HH(a, b, c, d, Mj, s, ti)表示,a=b+((a+(H(b, c, d)+Mj+ti)<《s);
II(a, b, c, d, Mj, s, ti)表示,a=b+((a+(I(b, c, d)+Mj+ti)< s)。 则对单个子分组进行循环运算(共4轮64步)的详细过程为如下 所示
第一轮
FF(a,b,c,d,M0,7,0xd76aa478);
FF(d,3,b,c,12,0xe8c7b756);
FF(c,d,a,b,M2,17,0x242070db);
FF(b,d,M3,22,0xclbdceee》
FF(a,b,c,d,M4,7,0xf57c0faf);
FF(d,a,b,c,M5,12,0x4787c62a);
FF(c,d,a,b,M6,17,0xa8304613);
FF(b,c,d,&M7,22,0xfd469501);
FF(a,b,c,d,M8,7,0x698098d8);FF(d,a,b,c,M9,12, 0x8b44f7af);
FF(c,d,a,b,M10,17, Oxffff5bbl);
FF(b,c,d,a,M ,22, 0x895cd7be);
FF(a,b,c,d,M12,7, 0x6b901122);
FF(d,3,b,c,M13,12, 0xfd987193);
FF(c,d,&b,M14,17, 0xa679438e);
FF(b,c,d,a,M15,22, 0x49b40821)。
第二轮
GG(a,b,c5d,Mn5, 0xf61e2562);
GG(d,a,b,c,M6,9, 0xc040b340);
GG(c,d,a,b,M ,14, 0x265e5a51);
GG(b,c,d,a,M0,20, 0xe9b6c7aa);
GG(a,b,c,d,M5,5, 0xd62簡d);
GG(d,a,b,c,M10,9, 0x02441453);
GG(c,d,a,b,M15,14, 0xd8ale681);
GG(b,c;d,a,M4,20, 0xe7d3fbc8);
GG(a,b,c5d,M9,5, 0x21elcde6);
GG(d,a,b,c,M14,9, 0xc33707d6);
GG(c,d,a,b,M3,14, 0xf4d50d87);
GG(b,c,d,a,M8,20, 0x455al4ed);
GG(a,b,c,d,M13,5, 0xa9e3e905);
GG(d,a,b,c,M2,9, 0xfcefa3fB);
GG(c,d,a5b,M7,14, 0x676f02d9);
GG(b,c,d,a,M12,20, 0x8d2a4c8a)。
第三轮
HH(a,b,c5d,M5,4, 0xfffa3942);
HH(d,a.b,c,M8,11, 0x8771f681);
HH(c,d,a,b,M ,16, 0x6d9d6122);
HH(b,c5d,M14,23, Oxfde5380c);HH(a,b,c,d,M,4, 0xa4beea44);
HH(d,&b,c,M4,11, 0x4bdecfa9);
HH(c,d,a,b,M7,16, 0x伤bb4b60);
HH(b,c,d,a.M10,23, 0xbebfbc70);
HH(a,b,c,d,M13,4, 0x289b7ec6);
HH(d,3,b,c5M0,11, 0xeaal27fa);
HH(c,d,a,b,M3,16, 0xd4e簡5);
朋(b,c,d,a,M6,23, 0x0488ld05);
HH(a,b,c,d,M9,4, 0xd9d4d039);
HH(d,3,b,c,M12,11, 0xe6db99e5);
HH(c,d,a;b,M15,16, 0xlfa27c化);
HH(b,c,d,&M2,23, 0xc4ac5665)。
第四轮;
II(a,b,c,d,M0,6, 0xf4292244);
II(d,a,b,c,M7,10, 0x432a脂);
n(c,d,a,b,M14,15, 0xab9423a7);
II(b,c,d,a,M5,21, 0xfc93a039);
II(a,b,c,d,M12,6, 0x655b59c3);
II(d,a,b,c,M3,10, 0x8f0ccc92);
II(c,d,a,b,M10,15, 0xffeff47d);
n(b,c,d,3,M],21, 0x85845ddl);
II(a,b,c,d,M8,6, 0x6fa87e4f);
n(d,a,b,c,M15,10, 0xfe2ce6e0);
n(c,d,a,b,M6,15, 0xa3014314);
n(b,c,d,a,M13,21, 0x4e0811al);
II(a,b,c,d,M4,6, 0xf7537e82);
n(d,a,b,c,Mu,10, Oxbd3af235);
II(c,d,&b,M2,15, 0x2ad7d2bb);
II(b,c,d,3,M9,21, 0xeb86d391)。然后将变量A, B, C, D分别加上其进行MD5运算后的变量a, b, c, d。最后输出的MD5校验值即为变量A, B, C, D级联的128
位长整数。
以此类推,可按照上述算法规则继缘对下1个512位的分组进行计算。
随后,发送装置12将从第二校验装置11中得到的一个或多个 MD5校验值发送给用户设备1 。
优选地,本发明还可以利用网络传输数据块的特征信息对网络传 输数据块进行校验。具体地,例如,辅助装置1可以对网络传输数据 的相关信息进行MD5运算,得到一个或多个MD54交^r值,再与该数 据块的MD5校验值一起对数据进行校验。或者,辅助装置1可以将 特征信息作为数据块的一部分,如将其设置于数据块的头部、中间、 尾部从而使数据块及其相关信息成为一个数据集合,并对该数据集合 进行MD5运算,得到一个或多个MD5校验值。其中,所述特征信息 包括以下一项或任多项文件长度,即文件或文件分片的长度;文件 生成时间,即文件出现在网络系统中的长度;文件属性,可包括文件 格式,读写状态等信息;文件名,即文件名称。图3a示出了根据本 发明的 一 个具体实施例的将数据特征信息设置于数据块头部的结构 示意图,其中,网络服务器将数据特征信息文件名,文件长度,文件 属性,文件生成时间均设置于数据块(文件)的头部从而使该文件及 其特征信息成为一个数据集合,并对该数据集合进行MD5运算,得 到一个或多个MD5校验值。图3b示出了本发明的一个具体实施例的 将数据特征信息设置于数据块尾部的结构示意图,其中,网络服务器 将数据特征信息文件名,文件长度,文件属性,文件生成时间均设置 于数据块(文件)的尾部从而使该文件及其特征信息成为一个数据集 合,并对该数据集合进行MD5运算,得到一个或多个MD5校验值。 图3c示出了本发明的一个具体实施例的将数据特征信息设置于数据 块中间的结构示意图,其中,网络服务器将数据特征信息文件名,文 件长度,文件属性,文件生成时间均设置于数据块(文件)的中间从而使该文件及其特征信息成为一个数据集合,并对该数据集合进行
MD5运算,得到一个或多个MD5校验值。图3d示出了本发明的一 个具体实施例的将数据特征信息分别设置于数据块头部和尾部的结
构示意图,其中,网络服务器将数据特征信息文件名,文件长度设置 于数据块(文件)的头部,将文件属性,文件生成时间设置于文件的 尾部从而使该文件及其特征信息成为 一个数据集合,并对该数据集合 进行MD5运算,得到一个或多个MD5校验值。图3e示出了本发明 的 一 个具体实施例的将数据特征信息分别设置于数据块头部和尾部 的结构示意图,其中,网络服务器将文件名,文件长度,文件属性设 置于文件的头部,将数据特征信息文件生成时间设置于文件的尾部, 从而使该文件及其特征信息成为一个数据集合,并对该数据集合进行 MD5运算,得到一个或多个MD5校验值。图3f示出了本发明的一个 具体实施例的将数据特征信息分别设置于数据块头部和中间以及尾 部的结构示意图,其中,网络服务器将文件名设置于文件的头部,将 数据特征信息文件长度和文件属性设置于文件的中间,将数据特征信 息文件生成时间设置于文件尾部从而使该文件及其特征信息成为一 个数据集合,并对该数据集合进行MD5运算,得到一个或多个MD5 校验值。
具体地,结合MD5规则,本发明利用网络传输数据块的特征信 息对该数据块进行校验的具体算法过程,与前文对文件或文件分片进 行MD5运算的具体算法过程基本相似,在此不再赘述。
需要说明的是,由于所述特征信息的唯一性和难获得性,相比较 于单对文件内容做验证,通过所述特征信息对网络数据块进行校验将 更加有效和严密。假设这样一种情况,若某用户设备(如图1所示用 户设备3)将另一用户设备(如图1所示用户设备4)将下载的数据 块进行替换(例如将《乱世佳人》媒体文件替换为某广告片段文件), 并破解该媒体文件的MD5校验值从而伪造与之相同的某广告片段文 件的MD5校验值,然后将该广告片段文件及其MD5校验值一并发送 给该用户设备4,基于收到的该MD5校验值与其从网络服务器下载值相同,该用户设备4可能并未察觉该媒
体文件已被而已篡改。然而,若利用该媒体文件的相关信息对该媒体 文件进行校验,由于该媒体文件的唯一 的相关信息如生成时间等难以
获取,用户设备3则难以以上述方法达到恶意攒改该媒体文件的目的。
这更加说明了本发明的优越性。
基于利用MD5规则对网络传输数据块进行校验的校验机制,由 于每个文件或文件的每个文件分片都对应了一个或多个MD5校验 值,因此可以将MD5校验值作为其对应的文件或文件分片的标识。 假设这样一种情况,如图1所示的用户设备4首先向用户设备3发送 查询消息,该查询消息用于查询所述用户设备3是否拥有某文件分片 (例如媒体文件《西游记》的文件分片1)。如果网络协议为TCP/IP 协议,该查询信息中可以包括源用户设备(即用户设备4)和目标用 户设备(即用户设备3)的端口和ip地址信息,需要传输的该文件分 片1的标识信息等各种信息。其中,该标示信息为该文件分片1的 MD5校验值。用户设备3在接收到该查询消息后查看本机中该文件 分片1的状态。如果用户设备3用有该文件分片1,则向用户设备4 发送响应消息告知用户设备2拥有该文件分片l并将该文件分片l发 送给用户设备3。基于仅对该文件分片1作MD5运算的校验机制, 若用户设备4还拥有一内容与之相同的文件分片5,则该文件分片1 和文件分片5的MD5校验值应相同。而用户设备4无法通过以MD5 值作为标示来区分该文件分片l和文件分5,因此误将错误的文件分 片(例如文件分片5)发送给用户设备3。由此,将造成用户设备3 和4以MD5值作为标志对文件分片排序,并整合成媒体文件《西游 记》时的文件出错。更严重的,基于P2P通信网络的传播速度快和范 围广的特点,错误的文件分片将通过用户设备3或用户设备4传播至 整个网络,导致网络通信的紊乱。然而,若基于利用文件分片1的特 征信息(如文件分片名)对该文件分片1作MD5运算,所得到的文 件分片1和文件分片5的MD5校验值必然不同,则不会出现上述错 误。这更加说明了本发明的优越性。需要说明的是,上述以利用MD5规则的校验方式对数据块的校 验进行了举例说明,本领域的普通技术人员应能理解,本发明不限于
此,其他的校验方式也适用于本发明,例如CRC校验,PKI检验等。
此外,发送装置12可以预先将MD5校验值发送给下载网络传输 数据块的用户设备l。例如,运行基于P2P协议的网络中,辅助装置 1通过文件信息列表将其中供用户设备下载的文件或文件分片的 MD5值发送给用户设备1。图4示出了根据本发明一个具体实施方式
的信息列表的格式示意图。信息列表中包括当前用户设备可以从服务 器上得到(但非必须从服务器得到)的1个或多个数据块的相关信息。 该信息列表中可以包含每个数据块的数据块名、优先级,MD5校验 值等任意信息。参照图4,其中,其中媒体文件《乱世佳人》的MD5 校验值为1,其为该媒体文件第一分片的MD5校验值;广告文件《人 文奥运》的MD5校验值为m,其为该广告文件整个文件的MD5校验 值;媒体文件《西游记》的MD5校验值为n,其为该媒体文件的相 关信息文件长度和文件生成时间的MD5校验值。
需要说明的是,上述以文件列表的方式将MD5校验值发送给下 载网络传输一个或多个用户设备进行了举例说明,本领域的普通技术 人员应能理解,本发明不限于此,其他的发送方式也适用于本发明, 例如以消息方式等。
图8示出了根据本发明的一个具体实施例的在用户设备中用于验证 从网络中下载的数据块的验证装置。
首先,获取装置21从网络中(包括网络服务器,或拥有其网络传 输数据块所对应的一个或多个MD5值的任意其他用户设备)获取网络 传输数据块所对应的一个或多个MD5校验值(例如图4所示MD5校验 值l, m, n中的任意一个或多个)。
可选地,用户设备可以基于P2P协议/人网络中获耳又网络传输数据块 所对应的一个或多个MD5校验值。参照图1,基于P2P协议,用户设 备1~3直接从网络服务器A获取网络传输数据块对应的1个或多个 MD5校验值,用户设备4从拥有该数据块对应的1个或多个MD5值校验值的所述用户设备3中获取该1个或多个MD5校验值,用户设 备5进一步地从所述用户设备4获取该1个或多个MD5值。
需要说明的是,本发明不仅适用于上述基于P2P协议的数据块的 验证,还适用于基于其他通信模式的数据块的验证,例如C/S (Client/Server)模式。图5示出了根据本发明的一个具体实施例的1 个网络服务器和1个用户设备基于C/S模式进行通信的网络拓朴结构示 意图。为简明起见,图中仅列出4个用户设备。其中,用户设备6~9 皆直接从网络服务器B获取网络传输数据块对应的1个或多个MD5 值。
然后,第 一校验装置22对网络传输数据块进行MD5运算(其运算 过程如前文所述,在此不再赘述),得到1个或多个本地MD5校验值。 参照图4,例如,用户设备1可分别对媒体文件《乱世佳人》第一分片, 广告文件《人文奥运》,媒体文件《西游记》的相关信息文件长度和文 件生成时间进行MD5运算,得到本地MD5校验值1', m,, n,。
需要说明的是,上文仅以该获取装置21获取一个或多个MD5校验 值在先,而该第一校验装置22对数据块进行MD5运算在后的次序进行 了举例说明,本领域的普通领域技术人员应能理解,本发明不限于此, 所述获取装置21和第一校验装置22的工作并无必然的前后次序,其他 次序关系也适用于本发明,例如该第一校验装置22对数据块进行MD5 运算在先和该获取装置21获取一个或多个MD5校验值在后,或该第一 校验装置22对数据块进行MD5运算和该获取装置21获取一个或多个 MD5校验值同时进行等。
最后,比较装置23将所述步骤S21中获取的一个或多个MD5校验 值(l, m, n)与在所述步骤S22中得到的一个或多个MD5本地校验值 (r, m,, n,)进行比较。如果MD5校验值1, m, n与MD5本地校验值1,, m,, n,相同,则判断该数据块为正确的数据块。
需要说明的是,本文所述一个或多个校验值(如一个或多个MD5 值)针对不同实施例情况有所不同。例如,当本发明仅对文件进行校 验,则得到一个校验值;当本发明对文件及其相关信息分别进行校验,则得到两个校验值。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明 并不局限于上述特定实施方式,本领域技术人员可以在所附权利要求 的范围内做出各种变形或修改。
权利要求
1. 一种在用户设备中用于验证从网络中下载的数据块的验证方法,其中,包括如下步骤A. 从网络中获取所述数据块对应的一个或多个校验值,并且对该数据块进行校验,得到一个或多个本地校验值;B. 将所述一个或多个校验值与所述一个或多个本地校验值进行比较,-如所述一个或多个校验值与所述一个或多个本地校验值相对应或相同,则判断该数据块为正确的数据块。
2. 根据权利要求1所述的验证方法,其特征在于,所述步骤B中 的对数据块进行校-验的方法还包括-利用该数据块的特征信息对该数据块进行校验。
3. 根据权利要求1或2所述的验证方法,其特征在于,对所述数 据块进行校验的校验规则包括以下任一项-MD5; -CRC; -PKL
4. 根据权利要求1所述的验证方法,其特征在于,所述数据块包 括以下任一项或任多项-文件;-文件的一个或多个文件分片。
5. 根据权利要求2所述的验证方法,其特征在于,所述数据块的 特征信息包括以下任一项或任多项-文件长度; -文件生成时间; -文件属性; -文件名。
6. 根据权利要求1 5中任一项所述的验证方法,其特征在于,所 述数据块包括基于点对点协议传输的数据块。
7. —种在网络服务器中用于辅助用户设备对下载的数据块进行验证的辅助方法,其中,包括以下步骤a. 对数据块进行校验,得到一个或多个校验值;b. 将该一个或多个校验值发送给一个或多个用户设备。
8. 根据权利要求7所述的辅助方法,其特征在于,所述步骤a中的 对数据块进行校验的方法还包括-利用该数据块的特征信息对该数据块进行校验。
9. 根据权利要求7或8所述的辅助方法,其特征在于,对所述数 据块进行校验的校验规则包括以下任一项-MD5; -CRC; -PKI。
10. 根据权利要求7所述的辅助方法,其特征在于,所述数据块包 括以下任一项或任多项-文件;-文件的一个或多个文件分片。
11. 根据权利要求8所述的辅助方法,其特征在于,所述特征信息 包括以下任一项或任多项-文件长度; -文件生成时间; -文件属性; -文件名。
12. 根据权利要求7 11中任一项所述的辅助方法,其特征在于, 所述数据块包括基于点对点协议传输的数据块。
13. —种在用户设备中用于验证从网络中下载的数据块的验证装 置,其中,其包括获取装置,用于从网络中获取所述数据块对应的一个或多个校验值;第一校验装置,用于对该数据块进行校验,得到一个或多个本地校 验值;比较装置,用于将所述一个或多个校验值与所述一个或多个本地校 验值进行比较,-如所述一个或多个校一险值与所述一个或多个本地校验值相对应或 相同,则判断该数据块为正确的数据块。
14. 根据权利要求13所述的验证装置,其特征在于,所述第一校 验装置还用于-利用该数据块的特征信息对该数据块进行校验。
15. 根据权利要求13或14所述的验证装置,其特征在于,对所述 数据块进行校验的校验规则包括以下任一项-MD5; -CRC; -PKI。
16. 根据权利要求13所述的验证装置,其特征在于,所述数据块 包括以下任一项或任多项-文件;-文件的一个或多个文件分片。
17. 根据权利要求14所述的验证装置,其特征在于,所述数据块 的特征信息包括以下任一项或任多项-文件长度; -文件生成时间; -文件属性; -文件名。
18. 根据权利要求13 17所述的验证装置,其特征在于,所述数据 块包括基于点对点协议传输的数据块。
19. 一种在网络服务器中用于辅助用户设备对下载的数据块进行验 证的辅助装置,其中,其包括第二校验装置,用于对数据块进行校验,得到一个或多个校验值; 发送装置,用于将该一个或多个校验值发送给下载该数据块的一个 或多个用户设备。
20. 根据权利要求19所述的辅助装置,其特征在于,所述第二校验装置还用于-利用该数据块的特征信息对该数据块进行校验。
21. 根据权利要求19或20所述的辅助装置,其特征在于,对所述 数据块进行校验的校验规则包括以下任一项-MD5; -CRC; -PKI。
22. 根据权利要求19所述的辅助装置,其特征在于,所述数据块 包括以下任一项或任多项-文件;-文件的一个或多个文件分片。
23. 根据权利要求20所述的辅助装置,其特征在于,所述特征信 息包括以下任一项或任多项-文件长度; -文件生成时间; -文件属性; -文件名。
24. 根据权利要求19 23中任一项所述的辅助装置,其特征在于, 所述数据块包括基于点对点协议传输的数据块。
全文摘要
本发明提供了一种用于对网络传输的数据块进行验证的方法和装置。首先,网络服务器端对数据块进行辅助校验,得到一个或多个辅助校验值,并将该一个或多个辅助校验值发送给将要或正在或已经下载该数据块的一个或多个用户设备;然后,用户设备端从网络中获取所述数据块对应的一个或多个辅助校验值,并对该数据块进行重新校验,得到一个或多个本地校验值,最后将所述一个或多个辅助校验值与所述一个或多个本地校验值进行比较,以判断该数据块是否正确。通过采用本发明的方法和装置,能够对网络传输数据块的正确性进行快速有效地验证,本发明还特别适用对基于P2P协议的网络传输数据的验证。
文档编号H04L29/06GK101547184SQ20081003504
公开日2009年9月30日 申请日期2008年3月24日 优先权日2008年3月24日
发明者张少华 申请人:突触计算机系统(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1