构建数据指纹的方法、装置及电子设备的制作方法

文档序号:6578119阅读:181来源:国知局
专利名称:构建数据指纹的方法、装置及电子设备的制作方法
技术领域
本发明涉及信息技术领域,特别涉及一种构建数据指纹的方法、装置及电子设备。
背景技术
数据指纹(fingerprint)是根据目标数据所生成的独一无二的定长数字片段, 所以数据指纹技术应当具有确认原始目标数据内容独一无二的特性,即唯一的目标数据 具有唯一的数据指纹,目标数据一旦发生改变,其数据指纹必然发生改变。数据指纹在实 际使用中应该能完全代表目标数据进行相同性比较等操作。例如内容寻址CAS(Content Addressable Storage)存储系统的内容寻址方式会根据存储数据的数据指纹生成其唯 一的“内容地址”以存取数据;在单实例(Single-Instance)存储系统中,系统根据存 储数据的数据指纹判断此数据是否已经存在于存储系统内;而在数据去重技术(Data De-duplication)中,系统根据存储数据的数据指纹判断该存储数据是否是系统中已经存 在的重复数据。由此可以看出,在上述应用中数据指纹完全代表了存储数据本身在系统中 进行比较操作。如果数据指纹不能唯一的代表存储数据,即当两个“内容不同”的存储数据 具有相同数据指纹时,那么在存储系统中会引发灾难性后果。所以如何根据目标数据构建 唯一的、可靠的数据指纹的方法显得非常关键。而发明人在实现本发明的过程中发现,现有技术中存在的问题在于目前根据目 标数据构建唯一的、可靠的数据指纹的方法大多比较复杂,构建时需要进行大量的运算,系 统的工作负担太大。

发明内容
本发明实施例的目的在于提供一种构建数据指纹的方法、装置及电子设备,使得 通过本发明实施例提供的方法、装置及电子设备,可以降低构建数据指纹的运算量,提高数 据指纹的可靠性。本发明实施例提供一种构建数据指纹的方法,所述方法包括根据第一哈希算法对目标数据进行哈希运算,获取所述目标数据的第一摘要值;截取所述目标数据中的数据片段,根据第二哈希算法对所述数据片段进行哈希运 算,获取所述数据片段的第二摘要值;根据所述第一摘要值和所述第二摘要值,生成所述目标数据的数据指纹。本发明实施例还提供一种构建数据指纹的装置,所述装置包括第一获取单元,用于根据第一哈希算法对目标数据进行哈希运算,获取所述目标 数据的第一摘要值;数据截取单元,用于截取所述目标数据中的数据片段;第二获取单元,根据第二哈希算法对所述数据片段进行哈希运算,获取所述数据 片段的第二摘要值;数据指纹生成单元,根据所述第一摘要值和所述第二摘要值,生成所述目标数据的数据指纹。本发明实施例还提供一种电子设备,其包括上述构建数据指纹的装置。本发明实施例的有益效果包括通过对目标数据及所述目标数据中的数据片段 进行哈希运算,即可获得有独立特征的数据参数,即摘要值,再根据所述摘要值生成数据指 纹,这种方案比较简单,运算量小,获得的数据指纹具有一定的唯一性和可靠性。


为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用 的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本 领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他 的附图。图1为本发明实施例一的构建数据指纹的方法的示意流程图;图2为本发明实施例二的构建数据指纹的方法的示意流程图;图3为本发明实施例三的第一种构建数据指纹的方法的示意流程图;图4为本发明实施例三的第二种构建数据指纹的方法的示意流程图;图5为本发明实施例三的第三种构建数据指纹的方法的示意流程图;图6为本发明实施例四的一种构建数据指纹的装置的结构框图;图7为本发明实施例四的另一种构建数据指纹的装置的结构框图;图8为本发明实施例五的电子设备的结构框图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发 明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施 例,都属于本发明保护的范围。本发明实施例为一种构建目标数据的数据指纹的技术,这种技术通过对目标数据 以及该数据的片段进行哈希运算获得摘要值,再根据所述摘要值生成该目标数据的数据指纹。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的 限定。实施例一如图1所示,图1为本实施例的构建目标数据的数据指纹的方法的示意流程图,该 流程包括如下步骤101、根据第一哈希算法对目标数据进行哈希运算,获取所述目标数据的第一摘要 值;102、截取所述目标数据中的数据片段;103、根据第二哈希算法对所述数据片段进行哈希运算,获取所述数据片段的第二 摘要值;104、根据所述第一摘要值和所述第二摘要值,生成所述目标数据的数据指纹。
本发明实施例中的第一哈希算法和第二哈希算法可以为相同的哈希算法,也可以 为不同的哈希算法。但不管是用相同的哈希算法还是用不同的哈希算法,所获得的第一摘 要值和第二摘要值都是不同的。生成的数据指纹包括了第一摘要值和第二摘要值,比如所 述数据指纹可以是将第一摘要值和第二摘要值首尾相接组合而成的,其中第一摘要值和第 二摘要值可以任意组合前后次序。这样获得的数据指纹不再单纯的依靠于某种哈希算法, 从而保证了所述数据指纹的“碰撞约束”强度能够不低于在本实施例的方法中所使用的最 脆弱哈希算法正常使用下的设计强度,具有较好的可靠性。需要说明的是,本发明实施例方法可以根据实际需要对各个步骤顺序进行调整。 比如可先依序执行步骤102、103,再执行步骤101,最后执行步骤104,这样仍然可以获得上 述本实施例方法中的相同的数据指纹,本发明实施例并不以此作为限制。
本发明实施例与现有技术相比的优点在于,通过对目标数据及所述目标数据中的 数据片段进行哈希运算,即可获得有独立特征的数据参数,即摘要值,再根据所述摘要值生 成数据指纹,通过这种方法获得的数据指纹不仅简单实用,运算量小,减小了系统的工作负 担,而且唯一性、可靠性都非常高。实施例二如图2所示,图2为本实施例的构建目标数据的数据指纹的方法的示意流程图,该 流程包括如下步骤201、根据第一哈希算法对目标数据进行哈希运算,获取所述目标数据的第一摘要 值;202、截取所述目标数据中的数据片段;203、判断所述数据片段的长度是否至少为128字节;若所述数据片段的长度至少 为128字节,则执行步骤204 ;若所述数据片段的长度小于128字节,则执行步骤202。204、根据第二哈希算法对所述数据片段进行哈希运算,获取所述数据片段的第二 摘要值;205、根据所述第一摘要值和所述第二摘要值,生成所述目标数据的数据指纹。本发明实施例中,在截取了所述目标数据片段后,还要判断所述截取的数据片段 长度是否至少为128个字节,若所述数据片段的长度至少为128字节,则执行步骤204 ;若 所述数据片段的长度小于128字节,则执行步骤202。这么做的目的主要是为了保证生成的 数据指纹有足够的强度,因为数据指纹的强度与第一摘要值和第二摘要值的长度有关,而 所述的第一摘要值和第二摘要值的长度又分别与第一哈希算法强度和第二哈希算法强度 有关,而第一哈希算法是对目标数据进行的运算,由于目标数据长度是固定的,所以第一哈 希算法强度主要由第一哈希算法相关联;第二哈希算法是对目标数据的数据片段进行的运 算,所述数据片段的长度若太小,则通过第二哈希算法获得的第二摘要值长度就小,所以数 据指纹的强度就弱。其中,数据指纹的强度可以通过常数关系来表示,当所述第一哈希算法的算法强 度为2的N次方时,所述第二哈希算法的算法强度为2的M次方时,所述数据指纹的长度即 为第一摘要值与第二摘要值的长度之和一N+M位,所以,所生成数据指纹在正常使用或“碰 撞攻击”条件下的算法强度范围就是“2K 2ν+μ”,其中,常数K为N与M之间的最小值。当 所述数据指纹强度为2Κ时,其强度最弱。
上述截取所述目标数据中的至少128字节长度的数据片段,具体可以是从所述目 标数据的头部截取至少128字节长度的数据片段;或者从所述目标数据的尾部截取至少 128字节长度的数据片段;或者从所述目标数据的头部与尾部之间截取至少128字节长度 的数据片段。本发明实施例与实施例一相比优点在于,可以对截取的数据片段的长度进行判 断,使得截取的数据片段长度满足一定的要求,保证了最终生成的数据指纹的强度最弱也 可以正常使用或抵御“碰撞攻击”。并且还提供了有效截取数据片段方法,进一步保证了截 取数据片段对数据指纹可靠性的要求。需要说明的是,本发明实施例方法可以根据实际需要对各个步骤顺序进行调整。 比如可先依序执行步骤202、203、204,再执行步骤201,最后执行步骤205,这样仍然可以获 得上述本实施例方法中的相同的数据指纹,本发明实施例并不以此作为限制。实施例三 根据实施例一或实施例二所述的方法,在此,分别用三个独立的实施例来说明本 发明实施例的技术方案。如图3所示,图3为本发明实施例的第一种构建目标数据的数据指纹的方法的示 意流程图,该流程包括如下步骤301、根据MD5 (Message-Digest Algorithm 5,数据摘要算法5)哈希算法对目标 数据File进行哈希运算,获取所述File的摘要值Digest-File ;302、从File头部截取一个长度为128Byte (1024bit)的数据片段File-Seg ;303、使用所述MD5哈希算法对所述数据片段File-Seg进行哈希运算,获取所述 File-Seg 的摘要值 Digest-Seg ;304、将所述摘要值Digest-File与所述摘要值Digest-Seg首尾相接,生成目标数 据文件File的数据指纹Fingerprint-File。在本发明实施例的第一种构建目标数据的数据指纹的方法中,第一哈希算法和 第二哈希算法相同,都是MD5哈希算法,这种哈希算法的强度是216,所以Digest-File与 Digest-Seg的长度都为16位,生成目标数据文件File的数据指纹Fingerprint-File长 度就等于32位,而所生成数据指纹在正常使用或“碰撞攻击”条件下的算法强度范围就是 “216 232”,即当所述数据指纹强度为216时其强度最弱。如图4所示,图4为本发明实施例的第二种构建目标数据的数据指纹的方法的示 意流程图,该流程包括如下步骤401、根据SHA-I (Secure Hash Algorithm安全哈希算法)哈希算法对目标数据 File进行一次哈希运算,获取所述File的摘要值Digest-File_SHA_l ;402、从File尾部截取一个长度为128Byte (1024bit)的数据片段File-Seg ;403、使用MD5哈希算法对所述数据片段File-Seg进行一次哈希运算,获取所述 File-Seg 的摘要值 Digest_Seg_MD5 ;404、将所述摘要值Digest-File_SHA_l与所述摘要值Digest_Seg_MD5首尾相接, 生成目标数据文件File的数据指纹Fingerprint-File。在本发明实施例的第二种构建目标数据的数据指纹的方法中,第一哈希算法和第 二哈希算法不同,第一哈希算法为SHA-I哈希算法,这种哈希算法的强度是22°,而第二哈希算法为MD5哈希算法,这种哈希算法的强度是216,所以Digest-File_SHA-l的长度为20位, Digest-Seg_MD5的长度为16位,生成目标数据文件File的数据指纹Fingerprint-File长 度就等于36位,而所生成数据指纹在正常使用或“碰撞攻击”条件下的算法强度范围就是 “216 236”,即当所述数据指纹强度为216时其强度最弱。如图5所示,图5为本发明实施例的第三种构建目标数据的数据指纹的方法的示 意流程图,该流程包括如下步骤501、根据MD5哈希算法对目标数据File进行哈希运算,获取所述File的摘要值 Digest-File ;502、从所述目标数据的头部与尾部之间截取128字节长度的数据片段File-Seg ;503、判断所述数据片段File-Seg的长度是否为128字节;若所述数据片段的长度 为128字节,则执行步骤504 ;若所述数据片段的长度小于128字节,则执行步骤502。504、使用所述MD5哈希算法对所述数据片段File-Seg进行哈希运算,获取所述 File-Seg 的摘要值 Digest-Seg ;505、将所述摘要值Digest-File与所述摘要值Digest-Seg首尾相接,生成目标数 据文件File的数据指纹Fingerprint-File。在本发明实施例的第三种构建目标数据的数据指纹的方法中,第一哈希算法和第 二哈希算法相同,都是MD5哈希算法,这种哈希算法的强度是216;但本方法中截取数据片段 是从所述目标数据的头部与尾部之间来截取的,具体从所述目标数据的头部与尾部之间截 取的方法可以为根据目标数据File中16字节的数据长度除以128取整得到P,再将P与 16相除取余得到Q,将Q乘以128即获得所抽取文件片断的偏移量Q*128字节,从File文 件的Q*128字节的偏移量处读取128字节的File-Seg ;判断所述数据片段File-Seg的长 度是否为128字节;若读取的所述数据片段的长度为128字节,则执行步骤504 ;若所述数 据片段File-Seg的原始数据长度小于128字节,则返回502重复读取的所述数据片段直到 满足128字节的长度要求。最后生成目标数据文件File的数据指纹Fingerprint-File长 度就等于32位,而所生成数据指纹在正常使用或“碰撞攻击”条件下的算法强度范围就是 “216 232”,即当所述数据指纹强度为216时其强度最弱。需要说明的是,与实施例一和实施例二类似,本发明实施例方法也可以根据实际 需要对各个步骤顺序进行调整。这样仍然可以获得本实施例各方法中相同的数据指纹,本 发明实施例并不以此作为限制。由上述三种构建目标数据的数据指纹的方法可以看出,不管第一哈希算法和第二 哈希算法相同还是不同,不管截取数据片段是从目标数据的头部、尾部还是通过特定算法 截取,本发明实施例都不需要经过大量运算即可获得可靠性较高的数据指纹,减小了系统 的工作负担,简单实用,并保证了最终生成的数据指纹的强度最弱也可以正常使用或抵御 “碰撞攻击”。实施例四本发明实施例 还提供一种构建目标数据的数据指纹的装置,如图6所示,图6为本 发明实施例的一种构建目标数据的数据指纹的装置的结构框图,该装置包括第一获取单 元601、数据截取单元602、第二获取单元603、数据指纹生成单元604,还可以包括判断模块 621,其中
第一获取单元601,主要用于根据第一哈希算法对目标数据进行哈希运算,获取所 述目标数据的第一摘要值;数据截取单元602,主要用于截取所述目标数据中的数据片段;比如从所述目标 数据的头部截取至少128字节长度的数据片段;或者从所述目标数据的尾部截取至少128 字节长度的数据片段;或者从所述目标数据的头部与尾部之间截取至少128字节长度的数 据片段。第二获取单元603,主要用于根据第二哈希算法对所述数据片段进行哈希运算,获取所述数据片段的第二摘要值;数据指纹生成单元604,主要用于根据所述第一摘要值和所述第二摘要值,生成所 述目标数据的数据指纹。其中,所述数据截取单元602可以包括判断模块621,主要用于判断所述数据片 段的长度是否至少为128字节,并生成判断结果;当判断结果为是时,则所述数据截取单元 602将截取到的所述至少为128字节的数据片段发送至第二获取单元603 ;当判断结果为否 时,则不发送截取到的数据片段,并重新截取数据片段。当上述第一哈希算法与所第二哈希算法为同一算法时,所述第二获取单元603为 所述第一获取单元601,所以所述第一获取单元601还可以用于根据第二哈希算法对所述 数据片段进行哈希运算(如图7所示),获取所述数据片段的第二摘要值。如图7所示,图 7为本发明实施例的另一种构建目标数据的数据指纹的装置的结构框图。所以根据本发明实施例的装置,当所述第一哈希算法的算法强度为2的N次方时, 所述第二哈希算法的算法强度为2的M次方时,所述数据指纹的长度为N+M位。不管第一 哈希算法和第二哈希算法相同还是不同,不管截取数据片段是从目标数据的头部、尾部还 是通过特定算法截取,本发明实施例都不需要经过大量运算即可获得可靠性较高的数据指 纹,减小了系统的工作负担,简单实用,并保证了最终生成的数据指纹的强度最弱也可以正 常使用或抵御“碰撞攻击”。需要说明的是,本发明实施例的装置可以集成电路或芯片中,包括CPU、或DSP(数 字信号处理,Digital Signal Processing)、或通信芯片等,也可以是软件模块,也可以是 软件和硬件的结合体。本发明实施例的各个单元可以集成于一体,也可以分离部署。上述 单元可以合并为一个单元,也可以进一步拆分成多个子单元。实施例五本发明实施例还提供一种电子设备,如图8所示,该电子设备包括应用数据指纹 的装置81和上述实施例提供的构建目标数据的数据指纹的装置82,其中构建目标数据的数据指纹的装置82,用于根据第一哈希算法对目标数据进行哈希 运算,获取所述目标数据的第一摘要值,截取所述目标数据中的数据片段,根据第二哈希算 法对所述数据片段进行哈希运算,获取所述数据片段的第二摘要值,根据所述第一摘要值 和所述第二摘要值,生成所述目标数据的数据指纹。该构建目标数据的数据指纹的装置82 的技术方案可以结合参考实施例一至实施例四提供的技术方案,在此不作赘述。应用数据指纹的装置81可以用于根据数据指纹判断该存储数据是否是系统中 已经存在的重复数据或者根据数据指纹判断对应的目标数据是否已经存在等。本发明实施例电子设备的类型可以是路由器、交换机、基站、基站控制器、数字用户线路接入复用器(DSLAM)、归属位置寄存器(Home Location Register, HLR)、手机、个人 数码助理(Personal Digital Assistant,PDA)、计算机、服务器、机顶盒、家用电器、以及各 种电子设备、网络设备或计算机相关设备等。本发明实施例的有益效果在于,本发明实施例提供构建目标数据的数据指纹的技 术不仅简单实用,运算量小,减小了系统的工作负担,而且生成的数据指纹唯一性、可靠性 都非常高,保证了最终生成的数据指纹的最弱强度也可以正常使用或抵御“碰撞攻击”,大 大提高了数据的安全性。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,或者二者的结合来实施。 基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件 产品的形式体现出来,该软件模块或计算机软件产品可以存储在一个存储介质中,包括若 干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发 明各个实施例所述的方法。存储介质可以是随机存储器(RAM)、内存、只读存储器(ROM)、电 可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知 的任意其它形式的存储介质。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详 细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保 护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本 发明的保护范围之内。
权利要求
一种构建数据指纹的方法,其特征在于,所述方法包括,根据第一哈希算法对目标数据进行哈希运算,获取所述目标数据的第一摘要值;截取所述目标数据中的数据片段,根据第二哈希算法对所述数据片段进行哈希运算,获取所述数据片段的第二摘要值;根据所述第一摘要值和所述第二摘要值,生成所述目标数据的数据指纹。
2.根据权利要求1所述的构建数据指纹的方法,其特征在于,所述第一哈希算法与所 述第二哈希算法相同或不同。
3.根据权利要求1或2所述的构建数据指纹的方法,其特征在于,所述截取所述目标数 据中的数据片段包括从所述目标数据的头部截取数据片段;或者从所述目标数据的尾部截取数据片段;或者从所述目标数据的头部与尾部之间截取数据片段。
4.根据权利要求3所述的构建数据指纹的方法,其特征在于,在截取所述目标数据中 的数据片段之后,还包括判断所述数据片段的长度是否至少为128字节;若所述数据片段的长度至少为128字 节,则执行后续步骤;若所述数据片段的长度小于128字节,则重新截取所述目标数据中的 数据片段。
5.根据权利要求1或4所述的构建数据指纹的方法,其特征在于,当所述第一哈希算法 的算法强度为2的N次方时,所述第二哈希算法的算法强度为2的M次方时,所述数据指纹 的长度为N+M位。
6.一种构建数据指纹的装置,其特征在于,所述装置包括第一获取单元,用于根据第一哈希算法对目标数据进行哈希运算,获取所述目标数据 的第一摘要值;数据截取单元,用于截取所述目标数据中的数据片段;第二获取单元,用于根据第二哈希算法对所述数据片段进行哈希运算,获取所述数据 片段的第二摘要值;数据指纹生成单元,用于根据所述第一摘要值和所述第二摘要值,生成所述目标数据 的数据指纹。
7.根据权利要求6所述的构建数据指纹的装置,其特征在于,当所述第一哈希算法与 所述第二哈希算法相同时,所述第二获取单元与所述第一获取单元为同一单元。
8.根据权利要求6或7所述的构建数据指纹的装置,其特征在于,所述数据截取单元包括判断模块,用于判断所述数据片段的长度是否至少为128字节,并生成判断结果;当判 断结果为是时,则所述数据截取单元将截取到的所述至少为128字节的数据片段发送至第 二获取单元;当判断结果为否时,则不发送截取到的数据片段,重新截取数据片段。
9.根据权利要求8所述的构建数据指纹的装置,其特征在于,所述数据截取单元具体 用于从所述目标数据的头部截取至少128字节长度的数据片段;或者从所述目标数据的尾 部截取至少128字节长度的数据片段;或者从所述目标数据的头部与尾部之间截取至少 128字节长度的数据片段。
10.一种电子设备,其特征在于,所述电子设备包括如权利要求6 9任一项所述的装置。
11.根据权利要求10的电子设备,其特征在于,所述电子设备的类型包括路由器、或 交换机、或网关、或手机、或计算机、或服务器。
全文摘要
本发明实施例公开了一种构建数据指纹的方法、装置及电子设备,所述方法包括根据第一哈希算法对目标数据进行哈希运算,获取所述目标数据的第一摘要值;截取所述目标数据中的数据片段,根据第二哈希算法对所述数据片段进行哈希运算,获取所述数据片段的第二摘要值;根据所述第一摘要值和所述第二摘要值,生成所述目标数据的数据指纹。通过本发明实施例,可以降低构建数据指纹的运算量。
文档编号G06K9/00GK101882216SQ20091013825
公开日2010年11月10日 申请日期2009年5月8日 优先权日2009年5月8日
发明者刘利锋, 杨琴琴, 王雨晨 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1