数据传输的方法及系统的制作方法

文档序号:7693353阅读:111来源:国知局
专利名称:数据传输的方法及系统的制作方法
技术领域
本发明涉及通信技术领域,特别是数据传输的方法及系统。
背景技术
数字摘要(digital digest)又称为安全Hash编码法(SHA Secure Hash Algorithm)。该编码法采用单向Hash函数将需加密的明文"摘要"成一串 128bit的密文,这一串密文亦称为数字指紋(FingerPrint)。且不同的明文 摘要成密文,其结果总是不同的,这样这串摘要便可成为验证明文是否是"真 身"的"指紋"了。
采用数字摘要技术将任意长度的文件变成固定长度的短消息,它类似于 一个自变量是文件数据的函数,也就是Hash函数。 一个Hash函数的好坏是 由发生碰撞的概率决定的。如果攻击者能够轻易地构造出两个文件具有相同 的Hash值,那么这样的Hash函数是很危险的。 一般来说,安全Hash标准 的输出长度为160位,这样才能保证它足够的安全。
在目前现有的客户端向服务器端上传文件的方法中,服务器端除了进行 简单的内容过滤外,是不会对上传文件进行标识和识别的。例如A客户端 创建了一个名为a.mp3的文件,并上传给服务器,服务器对其存储备份;之 后B客户端创建了一个名为b,mp3的文件,虽然名称不同,但内容与a.mp3 完全一致,服务器对该文件的合法性进行验证后,同样进行存储备份。这样 的方法所带来的问题是
名称不同但内容相同的文件占据了大量的存储空间,造成极大数据冗余 和空间浪费;
客户端在上传服务器端已有文件的过程中,占用了较大带宽,这又是对网络资源的浪费。

发明内容
有鉴于此,本发明的目的在于提供数据传输的方法及系统,用于减小数 据冗余和网络资源的浪费。
为实现上述目的,本发明提供了一种数据传输的方法,客户端在保存文
件数据时,包括以下步骤
客户端将所述文件数据的数字摘要上传给服务器,服务器根据数据摘 要,获取是否存在与所述文件数据具有相同数据内容的文件数据的信息,如 果存在,则不需客户端上传所述数据文件,直接指示客户端上传结束。
本发明还提供了 一种数据传输的系统,包括客户端和服务器端两部分, 其中,客户端包括
数字摘要创建模块,用于创建文件数据的数字摘要;
数字摘要上传模块,用于将所述数字摘要上传到服务器端; 文件数据传输模块,用于向服务器端上传文件数据; 服务器端包括
数字摘要检索分析模块,用于接收所述客户端上传的数字摘要,并获取 是否存在具有相向数字摘要的文件数据的信息;
上传判决模块,用于根据所述信息,确定客户端是否上传所述数据文件;
存储器,用于保存数据文件的内容及其数字摘要。
本发明通过比对文件数据的数字摘要,避免重复保存内容相同的文件数 据,减少了服务器端存储空间的占用,提高网络带宽利用率。客户端在下载 文件时,可通过P2P传输,直接从其它拥有数据且在线的客户端上下载,从 而减少了对服务器的访问负栽。本发明进一步通过对消息和数据加密,提高 传输的安全性。


图1为本发明的实施例中客户端上传文件数据的方法流程图2为本发明的实施例中客户端上传文件数据后的映射关系结构图3为本发明的实施例中客户端下载文件数据的方法流程图4为本发明的实施例中其它客户端上传文件数据后的映射关系结构
图5为本发明的实施例中服务器端维护的某一客户端保存的文件数据 信息的结构图6为本发明的实施例中数据传输系统的结构图。
具体实施例方式
本发明的实施例通过比对数据文件的数字摘要,避免重复保存内容相同 的文件,减少了服务器端存储空间的占用,提高网络带宽利用率。在下栽文 件时,通过P2P传输,减少了对服务器的访问负栽。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明 作进一步的详细描述。其中,上传方法如图l所示
步骤IOI、发送端创建数据文件,并为该数据文件生成数字摘要。客户 端A创建了一个名为a.mp3的数据文件,保存于"目录1/a.mp3"下,create a,mp3。并依据一定的算法为该文件生成数字摘要hash (a,mp3)。
生成数字摘要的哈希函数的安全性直接关系到数字摘要的安全性,如果 哈希函数被攻破,数字摘要的有效性就会受到质疑.
目前,已经发明的Hash函数有多种,如Snefru、 N-Hash、 LOKI、 AR、 GOST、 MD、 SHA等。它们在数学上实现的方法各有不同,安全性也各有 不同。目前比较常用的Hash函数是MD5和SHA-1。 MD5哈希函数以512 位来处理输入数据,每一分组又划分为16个32位的子分组。算法的输出由 4个32位分组组成,将它们级联起来,形成一个128位的固定长度的哈希 值,即输入数据的摘要.SHA-1哈希函数在MD4的基础上增加了数学运算的复杂程度,即SHA-MD4+扩展转换+附加轮+更好的雪崩效应(哈希值中, 为0的比特和为1的比特,其总数应该大致相等;输入数据中一个比特的变 化,将导致哈希值中一半以上的比特变化,这就叫做雪崩效应)。SHA能 够产生160位的哈希值。对SHA还没有已知的密码攻击,并且由于它产生 的哈希值位数长于MD5,所以它能更有效地抵抗穷举攻击。
但是,任何一种算法都有其漏洞和局限性。任何一个哈希函数都会存在 碰撞,即在一些特定椅况下,两个不同的文件或信息会指向同一个数字摘要。 在一般情况下,类似碰撞只能尽可能地减少,而不能完全避免。
采用密码技术对信息加密,是最常用的安全交易手段,在电子商务中获 得广泛应用的加密技术是公共密钥和私用密钥(public key and private key ) 在加密应用时,某个用户总是将一个密钥公开,让需发信的人员将信息用公 共密钥加密后发给该用户,而一旦信息加密后,只有该用户一个人知道的私 用密钥才能解密。具有数字凭证身份的人员的公共密钥可在网上查到,亦可 在请对方发信息时主动将公共密钥传给对方,这样保证在Internet上传输信 息的保密和安全。
为了避免数字摘要在传输过程中被截获和破译,在本发明的较佳实施例 中,将数字摘要和密钥加密两种方法结合起来使用。可以进一步在摘要发送 端使用对称密钥来加密数字摘要,然后将此对称密钥用接收者的公钥加密, 称为加密数据的"数字信封",将其和加密数字摘要一起发送给接收者,接 收者先用自己的私钥解密数字信封,得到对称密钥,然后使用对称密钥解密 数字摘要。
服务器端的文件系统创建所述数据文件时,发送端应将相应数据文件上 传i具体执行以下步骤
步骤l02、发送端向服务器端发送创建文件请求及上传数据请求。客户 端A将包含"目录l/a、mp3"的创建文件请求发送给服务器severl,并发送 包含hash(a.mp3)的上传a,mp3的上传数据请求。在较佳实施例中,发送 的是加密的hash (a.mp3)和数字信封。在具体应用中,这两个消息可以合并,在一个消息中发送。
步骤103、服务器接收到所述创建文件请求后,在用户文件信息系统中 创建指定文件;在接收到上传数据请求时,检索该数字摘要hash(a.mp3), 根据数字摘要定位服务器上是否存在与欲传输的文件内容相同的文件数据, 如果有,指示客户端上传结束,建立文件名和文件内容所在位置的映射关系。 结束本流程(在本发明的较佳实施例中,如果具有相同数字摘要的文件名称 为b.mp3,服务器端可以记录"目录1/ a.nip3",建立"目录1/ a.mp3"和 该文件数字摘要之间的映射关系);否则,执行步骤104。
步骤104、服务器通知发送端上传数据文件。severl向客户端A发送请 求数据消息,指示A发送a.mp3数据内容。
步骤105、发送端上传数据文件。客户端A将a.mp3的数据内容发送给 服务器。severl接收到文件后进行保存,并建立a.mp3在服务器端的存储地 址、目录1/ a.mp3和hash ( a.mp3 )之间的映射关系,具体是所述存储地址 和目录1/ a.mp3的映射,及所述存储地址和hash ( a.mp3 )的映射。severl 并不一定要将a.mp3保存在本地,也可保存在备份服务器Storage Server中, 此时应建立其存储地址locate ID、目录1/ a.mp3和hash ( a.mp3 )之间的映 射关系。该映射关系如图2所示,具体是locateID和目录1/a,mp3的映射, locate ID和hash的映射。
在应用中,客户端A在删除文件时,应通知服务器删除目录l/a.mp3, 以及目录1/ a,mp3和locate ID的关联。如果发现locate ID没有和任何文件 目录信息关联,则删除locate ID所代表的文件。
以上流程是发送端用户向服务器端上传数据文件的流程,在上传过程 中,会存在两种情况即该文件是第一次上传,服务器中并无相同文件存在; 另一种情况是服务器中已保存有该文件,即使文件名称不一致,服务器端也 可通过数字摘要判断出来,从而拒绝发送端重复上传已有的文件。
通过该流程,能够有效避免不同发送端重复上传相同文件,从而节省服 务器端的存储空间;另外,发送端想要上传已有文件时,仅仅发送了该文件的数字摘要,数字摘要由于其体量很小(如128位的哈希值),只占用极小 带宽,节约了网络资源。
此外,在步骤103中,如果发现存在相同的数字摘要,有时并不一定表 明其文件数据也相同,因为数字摘要是存在碰撞可能的,例如较短的数字摘 要发生碰撞的几率是相对较高的。虽然这是一个极小概率事件,但会造成严 重的后果,比如用户信息的泄漏。例如,客户端A想要上传数据,但通过 数字摘要的验证,发现用户B中存在具有相同数字摘要的文件,但实际的文 件内容不同。于是客户端A结束上传,并在随后的某一时刻清空緩存,丢 失了欲上传的数据。当客户端再次需要获取该数据时,通过发送请求,从服 务器端获得了用户B对应文件的地址,并错误地下栽了用户B的数据,而 该数据对用户B来讲,可能是对安全性要求较高的敏感数据。另外,也可能 存在客户端恶意伪造数字摘要,以窃取其他用户文件数据,或者破坏系统正 常运行的潜在危险。
这种情况在本发明的较佳实施例中,是可以进一步避免的,即通it^:户 端和服务器之间的进一步校验,校验文件数据的有效性,是否数据内容确实 相同;如果进一步校验失敗,文件内容并不相同,此时,则请求下一个具有 同样hash值的文件,同样进一步校验,直到确认没有相同文件为止,这时 候才继续上传数据。进一步校验的方法可以是客户端向服务器发送更为详 细的校验信息,由服务器负责进一步验证;或客户端请求更为详细的检验信 息,由客户端进一步验证,或者是双方交换校验信息,由双方共同验证。所 述更为详细的校验信息,包括但不仅限于使用更高强度的hash算法算出 的hash值;对文件内容进行分块(segment),并且对每个子块分别计算hash 值。 一种特殊的情况,所述更为详细的校验信息也可以是文件数据内容本身, 即通过全部文件内容进行校验,这种方法当然可以完全避免碰撞的发生,但 为保证安全性,应将文件数据内容使用公钥加密,.
所述的更为详细的校验信息,可以是在客户端发送请求的时候立即生 成,也可以是在客户端请求之前已经生成并且保存在系统中。例如如果所述更为详细的校验信息是指更高强度的hash值,而客户端直接向服务器请 求所述hash值时,该hash值可以是其它客户端以前在上传文件数据时同时 上传的,也可以是当前客户端请求更为详细的校验信息时,根据文件数据计 算而成。
所述客户端请求更为详细的校验信息,可以是客户直接向服务器请求, 也可以是客户端向服务器请求获知具有该hash值文件内容的( 一个或多个) 客户端,然后向该(一个或多个)客户端请求,还可以是两种模式混合。
在本发明的较佳实施例中,能够对发送端和服务器端间传输的消息内容 加密,保证了安全性。
在本发明的另 一较佳实施案例中,客户端不需要保存文件的数据内容, 只有当需要用到该文件时才向服务器请求数据,把数据下栽到客户端本地緩 存,当不需要用到数据时,可以把数据内容从本地緩存删除,同时通知服务 器本客户端不拥有相应数据内容。
在本发明的另一较佳实施例中,当服务器端通过数字摘要获知发送端欲 上传已有文件时,除了中止文件传输外,还标记该客户端拥有该文件的数据 内容,同时服务器跟踪并记录客户端是否在线的信息,当其它客户端想要下 载该文件时,不仅可以提供从服务器下栽(从服务器下栽只是可选的,图3 中也一样),还可通过P2P的方式,将存有该文件数据内容并且在线的客户 端信息发送给所述其它客户端,所述其它客户端可以从多个下栽地址下载文 件的不同片段,提高了下栽速度。其具体流程如图3所示
下载方法
步骤106、客户端B向服务器端发送欲下栽文件的文件名。如该文件名 为b. mp3。该消息同样可以加密保护。
步骤107、服务器端根据文件名查找该文件的locate ID,通过locate ID 的映射关系,定位文件数据内容。(同时定位其他拥有该文件数据并且在线 的客户端,并把这些客户端信息发送给请求的客户端B)
步骤108、客户端B开始下载数据,客户端B可以从其他拥有数据的客户端(以下称提供服务客户端)下载数据,可以从服务器下载数据,也可以 是两者的组合。较佳的实施案例是当提供服务客户端不能提供足够的下栽速 度时,才从服务器下栽数据,以降低服务器的负载。下栽文件数据时,可以 从多个提供服务客户端同时下载,每个提供服务客户端提供文件数据的一部 分。下栽文件数据时,客户对文件数据进行校验,如杲发现错误则对错误数
据部分进行重新传输。服务器端建立与客户端B的连接,并开始传输文件数 据内容,同时查询客户端A是否在线,如果在线,则将客户端A的地址信 息及"目录1/a,mp3"发送给客户端B。如杲存在多个具有该文件的客户端, 则选择发送部分优先级较高的客户端的相关信息。
存在一种情况是,客户端A不一定有文件数据内容,因为客户端A在 应用过程中可能已经把本地的数据内容清理掉了。当客户端A需要a.mp3 的时候,先访问"目录l/a.mp3"检查是否本地存在,如果存在,就直接使 用;否则,就向服务器请求。如果客户端A的用户从别的机器登陆,那台 机器上面只会下栽文件系统信息,即"目录l/a.mp3",而数据内容是在需 要的时候才下栽的,因此,服务器端需要维护哪些客户端在本地保存有文件 数据的信息,向某客户端请求数据时,它不仅要在线,还要有数据内容。图 5是服务器端维护的某一客户端保存的文件数据信息,其中"LocateID"是 文件数据内容在该客户端上保存的地址,"是否在线"标识该客户端当前是 否在线。
步骤109、客户端建立与客户端A的连接,传输数据,
步骤IIO、服务器端记录所述客户端拥有该文件。
在一种相反的情况中,假设客户端B想要上传文件b. mp3,其内容与 a.mp3相同,客户端B发送请求后,服务器发现文件重复,于是拒绝B上传 文件数据,并建立新的映射关系,如图4所示,并标识客户端B拥有该文件 数据内容,并记录图5的信息。
在以上流程中,请求下栽文件的客户端可以同时从服务器端和存有该文 件的其它客户端下栽数据,极大提高了传输速度。此外,当客户端之间进行P2P传输时,如果源端离线,则下载端可继续向具有该文件的其它客户端建
立连接,下栽数据.
图6本发明的数据传输系统实施例的结构图,该系统包括客户端和服务
器端两部分,其中,客户端包括
数字摘要创建模块61,用于创建文件数据的数字摘要; 数字摘要上传模块62,用于将所述数字摘要上传到服务器端; 文件数据传输模块63,用于向服务器端上传文件数据的内容; 服务器端包括
数字摘要检索分析模块64,用于接收所述客户端的数字摘要上传模块 62上传的数字摘要,并获取是否存在具有相同数字摘要的文件数据的信息;
上传判决模块65,用于根据所述信息,确定客户端是否上传所述数据 文件的内容;
存储器66,用于保存数据文件的内容及其数字摘要。 该系统通过客户端上传文件数据的数字摘要,在服务器端对该数字摘要 进行检索,判定是否已经保存了相同内容的文件数据,如果有的话,就无需 客户端再重复上传数据,从而节约了服务器的存储空间,并减少了对网络资 源的占用。
为提高消息和数据传输的安全性,该系统的服务器端和客户端还可以进 一步包括
加解密单元67,用于对发送和接收到的消息以及其它数据进行加密和 解密。
此外,为保证接收数据的有效性,该系统的客户端还可以进一步包括
数据校验单元68,用于对接收到的文件数据进行校验,
图6仅为本系统的一个较佳实施例,即所有消息和数据都通过加解密单
元进行传输,以提高传输安全性。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的
保护范围。
权利要求
1、一种数据传输的方法,客户端在保存文件数据时,其特征在于,包括以下步骤客户端将所述文件数据的数字摘要上传给服务器,服务器根据数字摘要,获取是否存在与所述文件数据具有相同数据内容的文件数据的信息,如果存在,则不需客户端上传所述数据文件,直接指示客户端上传结束。
2、 根据权利要求1所述的方法,其特征在于,所述将数字摘要上传给 服务器具体包括客户端向服务器发送创建文件请求及上传数据请求,所述上传数据请求 包括所述文件数据的数字摘要。
3、 根据权利要求2所述的方法,其特征在于,该方法进一步包括对所 述数字摘要加密。
4、 根据权利要求2或3所述的方法,其特征在于,所述服务器获取信 息进一步包括服务器接收到所述创建文件请求后,创建指定文件;服务器接收到所述上传数据请求后,检索所述数字摘要,定位本地是否 存在与所述文件数据内容相同的文件数据,如果不存在,则通知客户端上传 所述文件数据。
5、 根据权利要求4所述的方法,其特征在于,所述通知客户端上传文 件数据进一步包括服务器向客户端发送请求数据消息; 客户端将文件数据发送给服务器;服务器接收到文件数据后进行保存,并建立所述文件数据在服务器上的 存储地址、文件名及文件数据的数字摘要之间的映射关系,并指示客户端上 传结束。
6、 根据权利要求4所述的方法,其特征在于,该方法进一步包括如果存在与所述文件数据内容相同的文件数据,则指示客户端上传结束,建立所述文件数据的文件名和文件数据内容所在位置的映射关系;或客户端与服务器之间进行更高强度校验,进一步校验所述文件数据内容 是否相同,如杲是,则指示客户端上传结束,建立所述文件数据的文件名和 文件数据内容所在位置的映射关系;否则,客户端上传文件数据。
7、 根据权利要求6所述的方法,其特征在于,该方法进一步包括所 述客户端向服务器请求获知具有所述文件数据内容的其它一个或多个客户 端信息,该客户端与服务器和/或所述一个或多个客户端之间进行更高强度 的校验。
8、 根据权利要求6所迷的方法,其特征在于,当服务器指示客户端上 传结束后,还要进一步标记所述客户端拥有所述文件数据内容,并持续跟踪 记录该客户端是否在线的信息;当客户端删除所述文件数据的内容时,向服 务器发送自己不再拥有所述文件数据内容的信息。
9、 根据权利要求5所述的方法,其特征在于,所述客户端上传文件数据后,再次访问该文件时,先检查所述文件数据 内容是否在本地存在,如果不存在,则向服务器请求下栽所述文件数据,或 另一客户端下栽所述文件数据时,先检查所述文件数据内容是否在本地存在,如果不存在,则向服务器请求下栽所述文件数据, 该方法进一步包括客户端向服务器发送欲下载文件数据的文件名;服务器根据所述文件名查找所述文件数据在服务器上的存储地址,并根 据所述存储地址的映射关系,定位文件数据的内容;所述客户端从拥有所述文件数据内容的其它一个或多个在线客户端和/ 或服务器上下栽文件数据。
10、 根据权利要求9所述的方法,其特征在于,所迷另一客户端在下栽 文件数据时,对文件数据的内容进行校验,如果发现错误,则对错误数据部分进行重传。
11、 一种数据传输的系统,其特征在于,包括客户端和服务器端两部分,其中,客户端包括数字摘要创建模块,用于创建文件数据的数字摘要; 数字摘要上传模块,用于将所述数字摘要上传到服务器端; 文件数据传输模块,用于向服务器端上传文件数据; 服务器端包括数字摘要检索分析模块,用于接收所述客户端上传的数字摘要,并获取 是否存在具有相同数字摘要的文件数据的信息;上传判决模块,用于根据所述信息,确定客户端是否上传所述数据文件; 存储器,用于保存数据文件的内容及其数字摘要,
12、 根据权利要求11所述的系统,其特征在于,该系统的服务器端和 客户端进一步包括加解密单元,用于对发送和接收到的消息进行加密和解密。
13、 根据权利要求11或12所迷的系统,其特征在于,该系统的客户端 进一步包括数据校验单元,用于对接收到的文件数据进行校验。
全文摘要
本发明公开了一种数据传输的方法,客户端在保存文件数据时,包括以下步骤客户端将所述文件数据的数字摘要上传给服务器,服务器根据数据摘要,获取是否存在与所述文件数据具有相同数据内容的文件数据的信息,如果存在,则不需客户端上传所述数据文件,直接指示客户端上传结束。本发明还公开了一种数据传输的系统,包括数字摘要创建模块、数字摘要上传模块、文件数据传输模块、数字摘要检索分析模块、上传判决模块及存储器。本发明通过比对数据文件的数字摘要,避免重复保存内容相同的文件,减少了服务器端存储空间的占用,提高网络带宽利用率。在下载文件时,通过P2P传输,减少了对服务器的访问负载。
文档编号H04L9/32GK101552669SQ20081010327
公开日2009年10月7日 申请日期2008年4月2日 优先权日2008年4月2日
发明者林兆祥 申请人:林兆祥
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1