生成二进制文件内容签名的方法及系统的制作方法

文档序号:6465860阅读:188来源:国知局
专利名称:生成二进制文件内容签名的方法及系统的制作方法
技术领域
本发明涉及各种文件的索引和搜索,特别是二进制文件,例如包括软包括数字图象、MP3文件和其他视频与音频文件的多媒体文件。本发明还 涉及对上述文件进行索引和搜索后的排序,以及快速可靠地搜索和下载上 述文件的方法。
背景技术
在当今日益复杂的技术世界,用于索引和搜索因特网内容的方法在大 量的内容丰富的应用中充当了很重要的角色,例如普通的因特网搜索引擎 或企业搜索引擎。搜索引擎通常包括四个核心部分搜索蜘蛛(Spider)、语法分析器(Parser) 或索引器(Indexer)、查询引擎(Query engine)和Web界面。搜索蜘蛛又称为 机器人(Robot)或网络爬虫(Web crawler),是基于Web的搜索引擎的核心。 搜索蜘蛛是一种独立的网络客户端程序,它能自动地连接到Web服务器并 请求网页。其中会对响应进行检查,如果请求成功,则可获取网页并建立 索引。在建立索引阶段,将文本网页内的词与词位置等其他信息一起存入 索引内。创建的搜索引擎索引在原理上与书的索引相似。书的索引针对特 定词,而搜索引擎的索引包含有词以及对包含有这些词的网页的参考。对 某一关键字创建索引后,查询引擎将提供对包含有该关键字的网页的搜索。 由于包含某一特定关键字的网页数量很大,因而还需要根据某些特定规则 对这些网页进行排序,例如,根据被其他网页引用的数量进行排序。最后, 使用Web界面浏览匹配网页的分类表。Web界面的设计和布置不属于本申 请的范围。总之,文本Web搜索引擎对Web执行增量扫描和分析,提取关键字, 并生成索引以便之后响应用户的查询进行搜索。二进制Web搜索引擎更为 复杂。以下介绍的图片Web搜索引擎便是其中的一个例子。如果可以基于 每张图片的内容手动加入关键字,便可以像文本网页一样进行索引和搜索。 但是,这需要大量的体力劳动对Web上的图片添加标识。无可置疑的,这 种方法实际不可行,因为Web上存在大量的不断增加的图片。为了使搜索过程能自动进行,Web搜索引擎一般使用图片的文件名或 其他文字来标识该图片。但是,这种方法生成的搜索结果很差。Web上的 多数图片都没有合适的文件名来表达其内容。此外,文件名一般都很短, 而且多数文件名只有数字,不能准确清楚的描述文件的内容。而且这也进 一步降低了搜索结果的准确性。此外,由于因特网的全球性,Web上的图 片使用各种不同的语言来标识和描述,这进一步使索引和搜索正确的图片 文件的过程变得复杂了。多数现在使用的索引和搜索技术使用文本来实现前面介绍的索引和搜 索过程。此外,少数索引和搜索技术以图片文件为目标,关注于图片的特 定属性,例如颜色、亮度、线条的样式等等。这种方法在以下引用文件中 给出了介绍Chad Carson等,Blobworld: A system for region-based image indexing and retrieval, the Third Int. Conf. on Visual Information Systems, June 1999; Anil K. Jain and Aditya Vailaya, Image retrieval using color and shape, Pattern Recognition, 29(8), 1996;以及Michael Ortega等,Supporting Similarity Queries in MARS, ACM Multimedia 97.尽管这一方法是对纯文本 搜索方法的 一种改进,但这种方法对其搜索的二进制文件的类型以及用于 查找目标文件的参数仍存在局限性。此外,二进制Web搜索引擎还需要解 决下载问题,因为二进制文件可能非常大。然而,很少有搜索方法提供了 对这一问题的解决方案。因此,急需提出一种改进的索引和搜索方法,以 便能够定位和下载使用现有的方法不容易准确提供的想要的二进制文件。发明内容本发明提出并介绍了一种内容定向的索引和搜索(Content OrientedIndex aNd Search,简称COINS )技术。COINS介绍了 一种根据唯一标识二 进制文件的签名对所述二进制文件(例如多媒体文件)进行索引,并通过 对在索引阶段建立的索引图进行遍历(walkthrough)来搜索相关文件的方 法。具体来说,COINS可用于精确地标识一个唯一内容的多个源G艮据 URLs),该多个源可用于增加下载速度。最后,COINS还可与基于文本的 索引和搜索技术相结合来实现二进制文件搜索引擎,其中以二进制文件的 URL作为搜索结果,而不再以Web文件的URL为搜索结果。
本发明提供一种生成文件内容签名的方法和系统,包括如下步骤将 所述二进制文件分割为大小合适的多个片段;使用保证计算结果唯一性的 算法计算所述片段的内容签名,从而获得多个片段内容签名;基于所述多 个片内容签名生成所述二进制文件的内容签名。
根据本发明的又一个方面,还提供一种生成文件内容签名的方法和系 统,包括如下步骤将所述二进制文件分割为大小合适的多个片段;从每 个片段中提取多个样本;使用保证计算结果唯一性的算法,利用所述片段 的多个样本来计算所述每个片段的内容签名,从而获得多个片段内容签名; 基于所述多个片段内容签名生成所述二进制文件的内容签名。本发明的一 个优选实施例中,提供一种方法和系统,使用合适的算法例如SHA-1基于 所述片段签名来计算所述文件的内容签名,从而替代将所述片段链接在一 起的方案。
本发明的一个优选实施例中,提供一种验证所述下载的二进制文件的 完整性的方法和系统,另一个优选实施例中,本发明提供一种再下载和恢 复下载的目标二进制文件的错误部分的方法和系统。


以下附图组成说明书的一部分,对本发明的实施例给出说明,并与对 实施例的描述一起解释本发明。
图1是使用本发明的索引和搜索技术的四层COINS系统的示意图2是本发明索引图的一个示例,特别是两个多J 某体文件有着相同的内容的示例图3-1、 3-2和3-3是遍历本发明索引图的第一级搜索过程的示意图4-1和4-2是遍历本发明索引图的第二级搜索过程的示意图5是本发明的索引和搜索方法在端到服务器和端(P2SP)内容传递 网络(CDN)下载引擎领域的应用示意图。
具体实施例方式
下面结合附图对本发明进行具体的描述。但这些具体描述不是对本发 明的限制。相反,其只是用于解释本发明。
系统结构
图l是总体系统的示意图,其中包括四层索引层101、搜索层102、 排序层103和应用层,该应用层又包括二进制文件搜索引擎104和下载引 擎105。本申请中所使用的术语"二进制文件"包括多媒体文件,例如数字图 片、MP3文件、^t字^L频文件和其他音频和^L频文件。所述二进制文件还 包含其4也文件,例如可批J于文件和压缩文件(如RAR文件和Zip文件)。 索引层101为底层,它对由搜索蜘蛛获取的网页在该层中进行分析,并对 该网页内的二进制文件的URL以及周围语境(context)的文本进行才企索和 索引。然后,在该层中建立索引图和语境索引映射图。第二层是搜索层102, 该层提供隐式搜索(implicit search)和显式搜索(explicit search)两种月良务。 COINS搜索即为遍历COINS索引图的过程。第三层为排序层103,能通过 加权属性和内容相关性对搜索结果进行排序。最后,第四层基于COINS包 括两个应用COINS 二进制文件搜索引擎104和下载引擎105。
COINS技术是本发明的核心,其提供一种通过内容或数字签名来索引 和搜索因特网上的二进制文件(例如可执行文件和多媒体文件)的模型。 本节首先介绍内容签名,然后集中讨论索引层、搜索层和排序层的设计, 最后解释COINS多媒体文件搜索引擎和下载引擎。
内容签名内容签名用于标识COINS索引中的文件的唯一性。如果两个文件具有 相同的内容签名,即^吏该两个文件存放在两个不同的URL下,这两个文件 也将被作为相同文件来处理。这一点对搜索和下载因特网上包括有不同多 媒体文件例如图片、MP3和音频/视频的二进制文件来说非常重要。例如, 一张图片有时可能出现在不同的网页上,具有不同的名称不同的描述。然 而,传统的搜索引擎将这种情况视为不同的图片,而本发明可正确地将其 视为相同的图片。因此,本发明可用于明显地提高下载速度,同时提高搜 索结果以及排序的精确性和相关性。
内容签名计算算法
实际用于计算内容签名的算法可根据执行者的选择而不同。唯一需要 注意的是,要使用能保证每个计算结果的唯一性的算法。本发明可以采用 各种算法来计算内容签名,例如戴维斯-迈耶(Davies-Meyer )哈希函数。 其中,可直接使用、或经过用户化后使用"安全内容哈希"方法来计算二进制 文件的内容签名。这种方法又称为"安全哈希算法"(SHA)。
安全哈希算法SHA-1用于计算消息或数据文件的压缩形式。当输入任 何长度小于264位的消息时,SHA-1生成160位的输出,称为消息摘要。然 后将该消息摘要输入签名算法,由该签名算法生成或验证该消息的签名。
SHA-1被称为是安全的,是因为该算法不可能找到对应给定消息摘要 的消息,或不可能找到生成相同消息摘要的两个消息。
关于详细的计算介绍,请参考因特网RFC 3174,其可以从链接获得 http:〃www.faqs.org/rfcs/rfc3174.html。
生成内容签名的方法
二进制文件一般都很大。因此,如果整个文件需要由SHA-1算法进行 计算以生成内容签名并将其传递给服务器,将需要占用大量的资源。 一种 改进方法是将该文件分割成每个大小为256K(或其他大小)的N个片段(最 后一个片段可能没有256K),并从每个片段中取样。例如,从一个片段中 提取的样本可以是该片段的开始部分,也可以是该片段的结尾部分。有些时候,提取的样本可以是该片段的开始部分和结尾部分的结合。
取样后,本发明可基于经SHA-1算出的样本而计算片段内容签名。所
述片段内容签名可链接在一起表示源文件的签名。但是,缺点是签名通常
会比较长(例如,假设每个片段ID为20字节,1GB的文件的签名将为20 字节+4000-80KB)。因此,将在客户端与服务器之间占用大量的计算资源, 包括网络资源、CPU资源、内存以及存储器资源,以用于执行内容签名相 关计算,例如内容签名的完整性校验过程中的计算。
本发明介绍了一种明显减少所需的计算资源且不会影响签名的准确性 的新方法。代替将片段ID链接在一起,本发明再次使用SHA-1算法基于这 些片段ID计算出签名。然后将这一签名用作内容签名。使用这种方法的好 处是增加了标识将要搜索或下载的文件的效率,并同时减少签名的大小, 以及减少了需要的计算资源,特别是减少了网络流量。
COINS索引
COINS索引包括统一资源标识符(URI)索引图和语境索引映射图。 COINSURI索引图
该索引图包含有几种类型的元素, 一般用于描述和标识二进制文件, 包括内容签名、页面URI和文件URI。后两个元素又称为文件的主要识别 信息。此外,二进制文件还可以有其他类型的识别信息,包括但不限于周 围的语境文本例如锚文本(anchor text)和描述文本,以及文件URI属性例 如文件大小和文件协议等。这些定义为文件的次要识别信息。主要识别信 息和次要识别信息一起定义为文件识别信息。
本申请中,符号(P)用于表示页面URI, (F)用于表示文件URI, (C) 用于表示内容签名。由于"统一资源定位"(URL)的概念是"URT的子集, 因而页面URI的一个示例^更是页面URL,文件RUI的一个示例^f更是文件 URL。 (P)和(F)之间存在多对多的映射关系。"多对多"是指多个文件到 多个页面之间的内部链接,反之亦然。
此外,定义以下条件理论1:如果其对应的(C)相同,任何两个不同的(F)指向相同的 文件。
理论2:任何(F)可从多个(P)引出,同时任何(P)可指向多个(F)。
索引原理基于索引文本的传统技术的输出是关键字列表,它指向具 有该关键字的网页。不同地是,COINS索引的输出是包含(P)、 (F)和(C) 的三维图。(P)和(F)构成用于遍历搜索索引图的主要二维图,(C)位于 第三维,与(F)有链接。
索引方法搜索蜘蛛程序通过分析(P)来扫描因特网,(P)是通过输 入的源网址以及从源网址递归的引用网址找出。当搜索蜘蛛程序发现一个 合适的目标二进制文件(F)时,计算其(C)。如果(P)中含有(F),增 加一个从(P)到(F)的链接。同样地,如果两个文件生成相同的(C), 增加从两个(F)到(C)的两个链接,尽管这两个(F)的文件名和地址可 能完全不同。因此,便可以建立3-D索引图数据库,并且将出现的多对多 关系按照上述定义的条件在该数据库中表示出来。
图表建立索引图后,理解其如何用于查找想要的二进制文件很重要。 图2所示为索引图的一种可能形式。如图所示, 一个(F)可被多个(P) 引用。例如,F3被P。 P3、 P4和Ps引用。同时, 一组(F)可来自一个(P), 例如F!、 F2和Fs均来自P!。最后,如图中所示,有两个(F)即Fs和F8 指向位于第三维的一个(C2)。这表示位于Fs和F8的文件具有完全相同的 内容。也就是说,Fs和F8指向相同的文件。
语境索引映射图
语境是一组与关键字相关的语言,用于描述一个文件。对于具有相同 (C)的文件,他们的语境可以合并或相结合。因此便可能获得具有相同(C) 的(F)的列表与一组关键字之间的映射关系。
此外,关键字在语境中出现的次数被记录下来。当将两个语境合并时, 如果该关键字在两个语境中都有出现,则将给定关键字对应的在两个语境 中出现的次数相加。因此,关键词结果集如下{关键词J次数h...,关键词,次数J。这样的话,便可以建立映射关系列表,每个映射与以下表示类

((F0,…,(Fi)〉 — (C) — {关键词^次数h…,关键词j"欠数J
执行以上步骤后,进行反向处理以生成每个关键字和(c)列表之间的 新的映射关系如下
关键字i — ((d"次数h…,(Ci"次数j
…,其中每个(C)还映射至(F)列表
结果,搜索关键字"关键字i"生成多个(c),其中每个(c)与多个(f) 相关联。更重要的是,通过遍历该索引图,可以找到更多相关的(f)。
coins搜索
搜索二进制文件可分为显式搜索和隐式搜索。显式搜索从用户界面通 过自动生成的关键字或者终端用户输入的关键字来触发(更像传统搜索引 擎的搜索)。隐式搜索由一个事件触发,例如从下载引擎应用程序下载文件。 本发明使用的搜索查询可以是关键字或文件uri。在隐式搜索和显式搜索
这两种搜索中,搜索查询都可以是关#:字或者文件uri。
搜索推论当从因特网显式地或隐式地搜索任何(f)时,对coins 索引图执行遍历可生成相当大量的搜索结果。这些结果一般包含有嵌入(p ) 内的多种商业逻辑。该商业逻辑可以是瑞奇马丁新发行的专辑或拉丁男歌 手的mp3文件的汇集。
定义coins搜索,是指为搜索某一特定二进制文件而进行的遍历索 引图的过程。
为了开始所述搜索即遍历过程,深度优先(dfs )或广度优先(bfs ) 搜索算法皆可被用于遍历索引图。dfs和bfs是以系统的方式浏览索引图 的有效方法。这两种方法从定向图中的一个节点v (图中的任意一个节点) 开始,并访问从节点v可以到达的所有节点。这两种方法的区别在于其访 问节点的顺序。DFS首先从最近访问之节点的边界(edge)进行查找,也就是说,DFS 首先尽可能的往深度方向查找。
BFS按源节点被访问的顺序查找其边界。它首先查找当前节点所有边 界,然后访问下一个节点。
遍历将生成(F)的列表。所述遍历的步骤可直观化为如下
1. 搜索目标二进制文件(F4)的搜索查询被输入系统。此搜索查询可 来自任一发起源,例如终端用户/客户端,或下载引擎生成的计算机命令, 或通过其他合适的方式产生。为启动所述搜索过程,反向引用三个(P):
(P2)、 (P4)和(P6)。结果,根据反向引用的(P2)、 (P4)和(P6),可以 获得额外的四个(F),标识为(F2)、 (F3)、 (F6)和(F8)。这在图3-1、 3-2 和3-3中示出。第一步中,该组(P)的深度为l。
2. 对于从前一步骤中获得的四个(F)中的每一个,执行相同的反向 查找以获得另一组(P): (P!)、 (P3)和(Ps)。然后可以进一步获得一组三 个(F): (F!)、 (F5)和(F7)。这在图4-1和4-2中示出。第二步中,该组
(P)的深度为2。
3. 通过递归,可对整个索引图进行遍历直至遇到中止条件。该中止条 件包括但不限于
*遍历的深度数,
*汇集的(F)的总数量,
*遍历的超时,
*访问的(P)的数量。
4. 为了避免索引图遍历的无止尽的循环,可忽略对较高深度级实体的 引用。换句话说,步骤2中不会访问(P2)、 (P4)和(P6),因为其深度为1, 已经在第一层的遍历中被访问过了 。
COINS排序
搜索过程完成后, 一组二进制文件被呈现给终端用户。呈现的二进制文件包括与目标二进制文件相同的文件,或者与目标二进制文件不同但通 过其共享的共用商业逻辑或其他文件属性与目标二进制文件相关的文件。
通常情况下,从索引和搜索过程获得的结果还需要进一步进行排序和 分类,以便于该搜索结果更有用。因此,作为本发明的一个实施例,还需 要根据几个对象模型对搜索结果进行评估和排序。
对象模型以下关键信息将在对象模型中被存储,以增强排序结果以 及实现增值商业逻辑。
.(P)将存储访问次数、引用次数、实时服务器或对等带宽、在线状态等。
(F)将存储引用期、访问次数、源、源状态(即带宽、在线等)等。
通过加权属性排序(C)列表或源(F)
加权属性可在各种引擎中进行定制。具体来说,在下载引擎中,加权 属性可基于以下确定
*文件平均下载速度
*文件下载次H
*可用资源数量
*文件大小
因此,如果下载更快并且更流行的话,该(C)可以得到更高的排序。 通过内容相关性排序(C)列表或源(F)
通过内容相关性排序(C )列表主要基于相关的关键字"次数"值。例如, 使用关键字"Hello World"搜索时,在语境索引映射表内具有如下关系
"Hello" — 50, (C2)*25}
"World"— {(C2)* 30, (C3) *17}
然后,生成的(C)的排序组为{(。2), (C,), (C3)},因为(C)的对应次 数组为{(25+30), 50, 17}。(F)的访问次数
将访问次数作为排序规则之一,是本发明的首创。访问次数指被终端
用户访问的总数量。但是,如果(Fi)和(Fj)指向同一 (C),则认为(Fi) 或(Fj)的访问次数为Count(Fi)和Count(Fj)的总和。
最后值得指出的是,这种策略也可应用于一4殳的4叟索引擎。
(F)列表的排序
列表(F)的排序是(F)的加权属性的函数。对于搜索结果列表中的 每个(F),可计算出一个排序值。排序计算应该掌握以下这些事实
1 )搜索深度级level(n) (F)没有level(n-l) (F)的相关性高;
2)从其包含的实体的引用次数次数越大,该(F)越流行,因此终 端用户越感兴趣。在不止一个(F)映射至同一个(C)的情况下,每个(F) 的引用次数是所有(F)的引用次数的总和。例如,如果
a) (F!) —(C)且(F2) —(C),以及
b) RC ((F!)) = 10且RC ( (F2)) = 15
c) 则,FRC(F^F2"RC((F!))+RC((F2)"25
d) 同样,如果(F)—(d), (F2) — (C2),且(d)o(C2),则FRC(F,): RC(F!)且FRC(F2) = RC (F2)
其中RC指引用次数的函数,FRC指最后引用次数的函数,(C0<>(C2) 表示d不等于Q。
3 )来自终端用户的累积访问次数访问次数越多,该(F )对于终端 用户来i兌越流4亍。
4) (F)的类型相同类型(可能有不同的扩展名),例如音乐文件, 意味着更大的相关性。
5) 其包含的实体的访问次数(P)包含的实体得到的访问越多,(F) 对于终端用户来说越流行。6)自定义挂钩(CustomHook):为应用程序提供入口点以输入与应用 程序相关的属性。
注意,上述每个属性具有相关联的系数,该系数受实时调整的影响。
COINS搜索引擎和下载引擎
实际系统。以下结合COINS索引和搜索过程介绍了两种方法和系统。 一个 是针对二进制内容的基于COINS的搜索引擎,另 一个是可优化内容传递的 基于COINS的下载引擎。
COINS搜索引擎
二进制搜索引擎提供搜索二进制文件例如可执行文件和多媒体文件的 服务,不仅可以从因特网搜索,还可以从P2SP网络搜索。此处使用的术语 "P2SP"指端对服务器和端计算方法。换言之,与其他的P2P网络相比,P2SP 网络包括有服务器也包括有对等机。以下是对COINS搜索引擎如何工作以 及如何利用COINS的不同部分建立该搜索引擎的详细描述。
1) 搜索前,先通过搜索蜘蛛和终端用户的日常使用建立包括有URI 索引图和语境索引映射图的COINS索引数据库。
2) 搜索过程中,基于关键字分割策略分析用户的输入,以便生成有意 义的一组关键字。
3) 针对每个关键字,搜索该语境映射图以获取一组(C)。此步中使用 的语境映射图是在COINS索引过程中生成的第二映射
关键字i—{(Q)*次数i,…,(Cir次数i〉
4) 根据次数信息对该组(C)进行排序。
5) 针对步骤3中得到的每个(C), 乂人在COINS索引过程中生成的第 一映射图中导出一组源(F):
((F0,…,(Fi)}) — (C) — {关键字卢次数lv."关键字"欠数J
6) 在步骤5中得到的(F)上执行COINS搜索,以获得一组最终的(F)。COINS下载引擎
下载引擎引入了 P2SP的概念。如果可从多个源下载某一内容,便可以
明显地提高数据获取速度(通过并行地从多个计算较快的源获取数据的各 个部分)以及数据访问的稳定性(通过避免网络忙和某些时候的无效链接)。 所述源可以是因特网服务器或对等机或两者都有。
执行该操作的关键是获得用于获取数据的目标因特网服务器和对等机
的列表。这可以通过COINS解决。
内容传递推论当尝试从因特网获取任何(F)时,内容传递系统可通 过COINS智能地选择除了提供该(F)的原始源之外的任何源来下载(F), 因为已经确定位于这些源的内容是相同的,这是由相同的内容签名来保证 的。
以下是对COINS下载引擎如何工作的描述 1 )在终端用户的机器内安装客户端软件。
2) 下载前或下载过程中,建立COINS URI索引图。
3) 客户端发送下载目标二进制文件的下载请求给服务器,由服务器使 用COINS搜索能提供将要下载的内容的源。 一组因特网服务器和对等机以 URL的形式被返回,尽管该URL可能具有不同的因特网协议、不同的路径 和不同的文件名,但它们都能提供将要下载的内容。在COINS搜索索引图 数据库的过程中,在索引数据库中查找目标二进制文件。如果数据库中已 包括有该目标二进制文件的文件URI,则将该目标二进制文件的内容签名 链4妻至所述搜索查询。如果数据库中未含有该目标二进制文件的文件URI, 则计算该目标二进制文件的内容签名并存储在数据库中。这一 内容签名用 于链接至数据库中具有相同内容签名的其他文件URI。
的源包括不同的服务器和不同的对等机。成功下载后,客户端将数据的各 个部分结合成一个文件。
5)客户端通过比较从刚下载的数据中计算出的内容签名与存储在服务器中的内容签名来执行文件完整性验证。如果内容签名相同,则下载结束。
6) 如果在上一步中内容签名不匹配,客户端需要有效地识别出被破坏 的片段。 一个解决方法是循序地比较已下载的数据与存储在服务器内的数 据的片段ID。然而,这一方法对于容量大的文件来说占用的资源相当大。
例如,假设每个片段为256K且每个片段ID为20字节,1GB的游戏文件 将有4000个片段ID,这样的话,4000次的片段ID比较将产生服务器内的 80K带宽占用。相反,以下将介绍一种计算有效的方法,称为"在下载引擎 内使用内容签名的有限分治算法(The limited Divide-and-Conquer Algorithms with Content Signature in Downloading Engine )"。
该算法将片段ID分割成两部分A和B,并使用相同的内容签名计算方 法计算每一部分的签名。然后在客户端和服务器之间比较签名A和B。如 果签名A匹配,则表示A部分下载正确。但是如果不匹配,则将A部分再 分割成两部分,并重复上述处理。
如果被破坏的片段数量大且随机的分布在一个文件内,则使用上述分 治算法的代价也很大。因此,本方法设置可以查找的最大深度。例如,最 大为3的深度只需要7次ID比较,在服务器内占用140字节的带宽,便可 以找出任何纟皮破坏的部分。这种情况下,每个部分是该文件的1/8。
7) 客户端设法下载被破坏的部分,该部分的签名需要在下载后进行校验。
为了更好的理解下载引擎应用,分析以下给出的一例子
假设Red Hat Linux发布其9.1版本的操作系统后,许多内容(镜像) 站点都存储有该新版本操作系统的副本,以便服务其成员。同时,多个Linux 终端用户开始设法(快速)下载。接近100MB的下载使得一些知名站点变 得混乱,导致服务器极度繁忙,因此出现终端用户全球等待的现象。
作为示例,图5中由网络爬虫或搜索蜘蛛程序建立的索引图显示,标 识为(FL)的待下载的Linux新版本实际上可从标识为(FL)、 ( F3)和(F7 ) 的三个服务器源以及标识为(F12)的一个对等源获得。源的实际格式可根据不同的实现而不同。此处,服务器源定义为 (FL)为http:〃www. redhatlinux.com/releases/download/linux9-2-l. zip (F3)为ftp:〃218. 105.114. 254:3044/pub/software/topl0/linux9-2-l. zip (F7)为ftp:〃219. 101.18.20/pub/linux/linux-latest. Zip
同样,在一对等才几上的该源定义为jxta :〃uri-334/linux-latest-9-2-l. zip。
请注意,(FL)和(F3)具有相同的文件名linux9-2-l. zip,而(F7)和 (F12)具有不同的文件名。但是,由于他们的内容签名相同,他们都指向 相同的文件。
结果,根据这种设计建立的下载应用程序可选择从不止一个源中获取 该新发布的Linux操作系统软件的各个部分。实际上,这一下载策略将服务 器带宽的瓶颈转移至下载客户端。此外,服务器单点传输失败的情况下(因 服务器忙或与该服务器的连接很差),客户端仍然可从其他源获取该软件。
简而言之,上述的智能和自动路由使用核心索引图,并且该过程对终 端用户来说是透明的。可以建立全局负载平衡器来有效地减少任何内容服 务器在遇到无法预料或预料之中的流量拥塞时传输失败的可能性。
本申请中引用的所有专利、公开物、网站内容和其他资料和文件,无 论是印刷或电子格式,都作为本申请的一部分。
以上对本发明的具体实施例的描述仅出于解释和说明的目的,不是将 本发明穷尽或限制为上述公开的具体形式。根据上述内容的教导,还可以 做出各种修改和变更。可知,本发明的范围不受这些具体描述的限制,而 由本申请的权利要求来限定。上述说明、示例和数据提供了对实施本发明 的完整描述。由于还可以对本发明提出各种实施例而不脱离本发明的精神 和范围,因此本发明的范围取决于权利要求及其等效替换。
权利要求
1、一种生成二进制文件内容签名的方法,其特征在于,包括如下步骤a)将所述二进制文件分割为大小合适的多个片段;b)使用保证计算结果唯一性的算法计算所述片段的内容签名,从而获得多个片段内容签名;c)基于所述多个片段内容签名生成所述二进制文件的内容签名。
2、 根据权利要求1所述的方法,其特征在于,所述步骤c)包括通过 链接所述多个片段内容签名来生成所述文件内容签名。
3、 根据权利要求1所述的方法,其特征在于,所述步骤c)包括通过 使用保证计算结果唯一性的算法计算所述多个片段内容签名来生成所述文 件内容签名,>^人而获得所述文件内容签名。
4、 一种生成二进制文件内容签名的方法,其特征在于,包括如下步骤a) 将所述二进制文件分割为大小合适的多个片段;b) 从每个片段中提取多个样本;c) 使用保证计算结果唯一性的算法、利用所述片段的多个样本来计算 所述每个片段的内容签名,从而获得多个片段内容签名;d) 基于所述多个片段内容签名生成所述二进制文件的内容签名。
5、 根据权利要求4所述的方法,其特征在于,所述步骤d)包括通过 链接所述多个片段内容签名来生成所述文件内容签名。
6、 根据权利要求4所述的方法,其特征在于,所述步骤d)包括通过 使用保证计算结果唯一性的算法计算所述多个片段内容签名来生成所述文 件内容签名,从而获得所述文件内容签名。
7、 根据权利要求4所述的方法,其特征在于,所述片段的大小不大于 256K。
8、 根据权利要求4所述的方法,其特征在于,所述用于计算内容签名 的算法为SHA-1。
9、 根据权利要求4所述的方法,其特征在于,所述样本包括所述文件 的开始部分和结尾部分。
10、 根据权利要求4所述的方法,其特征在于,所述样本包括所述文件的开始部分或结尾部分。
11、 一种生成二进制文件内容签名的系统,其特征在于,包括 a)将所述二进制文件分割为大小合适的多个片段的装置;b )使用保证计算结果唯一性的算法计算所述片段的内容签名从而获得 多个片段内容签名的装置;c)基于所述多个片段内容签名生成所述二进制文件的内容签名的装置。
12、 一种生成二进制文件内容签名的系统,其特征在于,包括a) 将所述二进制文件分割为大小合适的多个片段的装置;b) 从每个片段中提取多个样本的装置;c) 使用保证计算结果唯一性的算法利用所述片段的多个样本来计算所 述每个片段的内容签名从而获得多个片段内容签名的装置;d) 基于所述多个片段内容签名生成所述二进制文件的内容签名的装置。
全文摘要
本发明公开了一种生成二进制文件内容签名的方法及系统。所述方法包括如下步骤a)将所述二进制文件分割为大小合适的多个片段;b)使用保证计算结果唯一性的算法计算所述片段的内容签名,从而获得多个片段内容签名;c)基于所述多个片段内容签名生成所述二进制文件的内容签名。
文档编号G06F17/30GK101408881SQ20081013496
公开日2009年4月15日 申请日期2004年9月29日 优先权日2004年9月29日
发明者明 胥, 邹胜龙 申请人:千兆科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1