文件完整性驗(yàn)證方法及文件處理器的制造方法
【專利摘要】本發(fā)明涉及一種文件完整性驗(yàn)證方法及文件處理器,其中,該文件完整性驗(yàn)證方法包括:按預(yù)定的分塊策略將文件切分成至少兩個(gè)數(shù)據(jù)塊;以及基于所述文件的校驗(yàn)值文件驗(yàn)證所述數(shù)據(jù)塊的完整性,其中,所述校驗(yàn)值文件包括所述至少兩個(gè)數(shù)據(jù)塊各自的校驗(yàn)值,若任一所述數(shù)據(jù)塊被認(rèn)定為不完整,則判定所述文件不完整并停止所述驗(yàn)證。本發(fā)明實(shí)施例提供的文件完整性驗(yàn)證方法及文件處理器,能夠縮短文件校驗(yàn)值提取和文件完整性驗(yàn)證的時(shí)間以及避免此前的文件完整性驗(yàn)證方法固有的可偽造特性。
【專利說(shuō)明】文件完整性驗(yàn)證方法及文件處理器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,尤其涉及一種文件完整性驗(yàn)證方法及文件處理器。
【背景技術(shù)】
[0002]由于文件在存儲(chǔ)和傳輸過(guò)程中可能被破壞,所以要對(duì)文件進(jìn)行完整性驗(yàn)證。通常情況下,文件完整性驗(yàn)證主要分為校驗(yàn)值文件生成和完整性檢測(cè)兩個(gè)階段。例如,在校驗(yàn)值文件生成階段,首先把文件切成多個(gè)數(shù)據(jù)塊,然后利用多線程并行地對(duì)數(shù)據(jù)塊執(zhí)行HASH(哈希)算法例如MD5 (Message Digest Algorithm MD5,消息摘要算法第五版)算法,分別得到各數(shù)據(jù)塊的校驗(yàn)值,通過(guò)將各個(gè)數(shù)據(jù)塊的校驗(yàn)值相加得到整個(gè)文件的校驗(yàn)值,并將所得到的整個(gè)文件的校驗(yàn)值保存在隨文件一起分發(fā)的校驗(yàn)值文件中。在完整性檢測(cè)階段,首先利用與校驗(yàn)值文件生成階段相同的步驟對(duì)接收到的文件提取校驗(yàn)值,并將所提取到的校驗(yàn)值與保存在校驗(yàn)值文件中的校驗(yàn)值進(jìn)行比較,如果二者相同則認(rèn)為文件完整、即文件沒(méi)有被篡改或破壞,否則認(rèn)為文件的完整性被破壞了。
[0003]在上述技術(shù)中,即使在只有一個(gè)數(shù)據(jù)塊被破壞或篡改的情況下,也要在對(duì)整個(gè)文件的所有數(shù)據(jù)塊進(jìn)行校驗(yàn)值提取之后,通過(guò)完整性檢測(cè)才能判定文件是否完整。這明顯耗時(shí)較長(zhǎng),尤其對(duì)于數(shù)據(jù)量較大、例如達(dá)到IOGB的文件來(lái)說(shuō),可能不太適用。
【發(fā)明內(nèi)容】
[0004]摶術(shù)問(wèn)是頁(yè)
[0005]有鑒于此,本發(fā)明要解決的技術(shù)問(wèn)題是如何盡量縮短文件完整性驗(yàn)證的時(shí)間。
[0006]解決方案
[0007]為了解決上述問(wèn)題,根據(jù)本發(fā)明一實(shí)施例,提供了一種文件完整性驗(yàn)證方法,包括:
[0008]按預(yù)定的分塊策略將文件切分成至少兩個(gè)數(shù)據(jù)塊;以及
[0009]基于所述文件的校驗(yàn)值文件驗(yàn)證所述數(shù)據(jù)塊的完整性,其中,所述校驗(yàn)值文件包括所述至少兩個(gè)數(shù)據(jù)塊各自的校驗(yàn)值,若任一所述數(shù)據(jù)塊被認(rèn)定為不完整,則判定所述文件不完整并停止所述驗(yàn)證。
[0010]對(duì)于上述文件完整性驗(yàn)證方法,在一種可能的實(shí)現(xiàn)方式中,基于所述文件的校驗(yàn)值文件驗(yàn)證所述數(shù)據(jù)塊的完整性,包括:
[0011]計(jì)算所述數(shù)據(jù)塊的校驗(yàn)值;
[0012]將所計(jì)算出的所述數(shù)據(jù)塊的校驗(yàn)值與所述校驗(yàn)值文件中的所述數(shù)據(jù)塊的校驗(yàn)值進(jìn)行比較;以及
[0013]若上述比較的結(jié)果為相同,則認(rèn)定所述數(shù)據(jù)塊完整,否則認(rèn)定所述數(shù)據(jù)塊不完整。
[0014]對(duì)于上述文件完整性驗(yàn)證方法,在一種可能的實(shí)現(xiàn)方式中,所述校驗(yàn)值文件為布
隆向量庫(kù),
[0015]所述布隆向量庫(kù)包括各所述數(shù)據(jù)塊的布隆向量,[0016]各所述數(shù)據(jù)塊的布隆向量是在生成所述校驗(yàn)值文件時(shí),使各所述數(shù)據(jù)塊的校驗(yàn)值通過(guò)布隆過(guò)濾器而得到的。
[0017]對(duì)于上述文件完整性驗(yàn)證方法,在一種可能的實(shí)現(xiàn)方式中,基于所述文件的校驗(yàn)值文件驗(yàn)證所述數(shù)據(jù)塊的完整性,包括:
[0018]計(jì)算所述數(shù)據(jù)塊的校驗(yàn)值;
[0019]將所計(jì)算出的所述數(shù)據(jù)塊的校驗(yàn)值通過(guò)所述布隆過(guò)濾器轉(zhuǎn)換為布隆向量;
[0020]將所轉(zhuǎn)換得到的布隆向量與所述布隆向量庫(kù)中的所述數(shù)據(jù)塊的布隆向量進(jìn)行比較;以及
[0021]若上述比較的結(jié)果為相同,則認(rèn)定所述數(shù)據(jù)塊完整,否則認(rèn)定所述數(shù)據(jù)塊不完整。
[0022]對(duì)于上述文件完整性驗(yàn)證方法,在一種可能的實(shí)現(xiàn)方式中,所述校驗(yàn)值是通過(guò)對(duì)所述數(shù)據(jù)塊進(jìn)行HASH運(yùn)算提取到的。
[0023]對(duì)于上述文件完整性驗(yàn)證方法,在一種可能的實(shí)現(xiàn)方式中,所述分塊策略包括按預(yù)定長(zhǎng)度進(jìn)行所述切分,所述預(yù)定長(zhǎng)度為頁(yè)面大小的整數(shù)倍。
[0024]為了解決上述技術(shù)問(wèn)題,根據(jù)本發(fā)明另一實(shí)施例,提供了一種文件處理器,包括:
[0025]切分模塊,用于按預(yù)定的分塊策略將文件切分成至少兩個(gè)數(shù)據(jù)塊;以及
[0026]驗(yàn)證模塊,與所述切分模塊連接,用于基于所述文件的校驗(yàn)值文件驗(yàn)證所述數(shù)據(jù)塊的完整性,并且若任一所述數(shù)據(jù)塊被認(rèn)定為不完整,則判定所述文件不完整并停止操作,其中,所述校驗(yàn)值文件包括所述至少兩個(gè)數(shù)據(jù)塊各自的校驗(yàn)值。
[0027]對(duì)于上述文件處理器,在一種可能的實(shí)現(xiàn)方式中,還包括:
[0028]計(jì)算模塊,與所述切分模塊連接,用于計(jì)算由所述切分模塊切分出的數(shù)據(jù)塊的校驗(yàn)值;以及
[0029]生成模塊,與所述計(jì)算模塊連接,用于將從待分發(fā)文件切分出的數(shù)據(jù)塊的校驗(yàn)值保存于所述待分發(fā)文件的校驗(yàn)值文件中。
[0030]對(duì)于上述文件處理器,在一種可能的實(shí)現(xiàn)方式中,所述驗(yàn)證模塊包括:
[0031]第一提取單元,與所述計(jì)算模塊連接,用于將從待驗(yàn)證文件切分出的數(shù)據(jù)塊作為關(guān)注數(shù)據(jù)塊,并提取所述計(jì)算模塊針對(duì)所述關(guān)注數(shù)據(jù)塊計(jì)算出的校驗(yàn)值;
[0032]第一比較單元,與所述第一提取單元連接,用于將所述第一提取單元所提取到的所述關(guān)注數(shù)據(jù)塊的校驗(yàn)值與所述待驗(yàn)證文件的校驗(yàn)值文件中的所述關(guān)注數(shù)據(jù)塊的校驗(yàn)值進(jìn)行比較;以及
[0033]第一停止單元,與所述第一比較單元連接,用于在所述第一比較單元輸出的比較結(jié)果為不相同的情況下,認(rèn)定所述關(guān)注數(shù)據(jù)塊以及所述待驗(yàn)證文件不完整,并使所述驗(yàn)證模塊停止操作。
[0034]對(duì)于上述文件處理器,在一種可能的實(shí)現(xiàn)方式中,還包括布隆過(guò)濾器,
[0035]所述布隆過(guò)濾器與所述計(jì)算模塊連接,用于將所述計(jì)算模塊計(jì)算出的校驗(yàn)值轉(zhuǎn)換為相應(yīng)的布隆向量;以及
[0036]所述生成模塊還與所述布隆過(guò)濾器連接,用于將從待分發(fā)文件切分出的數(shù)據(jù)塊的布隆向量保存于作為所述待分發(fā)文件的校驗(yàn)值文件的布隆向量庫(kù)中。
[0037]對(duì)于上述文件處理器,在一種可能的實(shí)現(xiàn)方式中,所述驗(yàn)證模塊包括:
[0038]第二提取單元,與所述計(jì)算模塊以及所述布隆過(guò)濾器連接,用于將從待驗(yàn)證文件切分出的數(shù)據(jù)塊作為關(guān)注數(shù)據(jù)塊,并提取所述計(jì)算模塊針對(duì)所述關(guān)注數(shù)據(jù)塊計(jì)算出的校驗(yàn)值經(jīng)所述布隆過(guò)濾器轉(zhuǎn)換得到的布隆向量;
[0039]第二比較單元,與所述第二提取單元連接,用于將所述第二提取單元所提取到的所述關(guān)注數(shù)據(jù)塊的布隆向量與所述待驗(yàn)證文件的校驗(yàn)值文件中的所述關(guān)注數(shù)據(jù)塊的布隆向量進(jìn)行比較;以及
[0040]第二停止單元,與所述第二比較單元連接,用于在所述第二比較單元輸出的比較結(jié)果為不相同的情況下,認(rèn)定所述關(guān)注數(shù)據(jù)塊以及所述待驗(yàn)證文件不完整,并使所述驗(yàn)證模塊停止操作。
[0041]對(duì)于上述文件處理器,在一種可能的實(shí)現(xiàn)方式中,其特征在于,所述計(jì)算模塊通過(guò)對(duì)所述數(shù)據(jù)塊進(jìn)行HASH運(yùn)算來(lái)計(jì)算所述數(shù)據(jù)塊的校驗(yàn)值。
[0042]對(duì)于上述文件處理器,在一種可能的實(shí)現(xiàn)方式中,所述分塊策略包括按預(yù)定長(zhǎng)度進(jìn)行所述切分,所述預(yù)定長(zhǎng)度為頁(yè)面大小的整數(shù)倍。
[0043]有益.效果
[0044]本發(fā)明實(shí)施例提供的文件完整性驗(yàn)證方法,可以對(duì)切分后每個(gè)數(shù)據(jù)塊獨(dú)立提取其校驗(yàn)值,并對(duì)每個(gè)數(shù)據(jù)塊單獨(dú)進(jìn)行完整性驗(yàn)證。如果某一數(shù)據(jù)塊的完整性被驗(yàn)證為不完整,則可判定該數(shù)據(jù)塊被破壞,這時(shí)可以直接得出這個(gè)文件的完整性被破壞的結(jié)論,將不再進(jìn)行剩余數(shù)據(jù)塊的驗(yàn)證,這樣可以縮短文件完整性檢測(cè)過(guò)程。進(jìn)一步地,由于每個(gè)數(shù)據(jù)塊的校驗(yàn)值提取和完整性驗(yàn)證都是獨(dú)立進(jìn)行的,因此可以對(duì)數(shù)據(jù)塊的校驗(yàn)值提取和完整性驗(yàn)證采用并行方式進(jìn)行處理,這樣可以縮短文件校驗(yàn)值提取和文件完整性驗(yàn)證的時(shí)間。
[0045]根據(jù)下面參考附圖對(duì)示例性實(shí)施例的詳細(xì)說(shuō)明,本發(fā)明的其它特征及方面將變得清楚。
【專利附圖】
【附圖說(shuō)明】
[0046]包含在說(shuō)明書(shū)中并且構(gòu)成說(shuō)明書(shū)的一部分的附圖與說(shuō)明書(shū)一起示出了本發(fā)明的示例性實(shí)施例、特征和方面,并且用于解釋本發(fā)明的原理。
[0047]圖1示出根據(jù)本發(fā)明一實(shí)施例的文件完整性驗(yàn)證方法的流程圖;
[0048]圖2示出根據(jù)本發(fā)明另一實(shí)施例的文件完整性驗(yàn)證方法的流程圖;
[0049]圖3示出根據(jù)本發(fā)明又一實(shí)施例的文件完整性驗(yàn)證方法的流程圖;
[0050]圖4示出根據(jù)本發(fā)明一實(shí)施例的文件校驗(yàn)值分片提取過(guò)程的示意圖;
[0051]圖5示出根據(jù)本發(fā)明一實(shí)施例的文件處理器的結(jié)構(gòu)框圖;
[0052]圖6示出根據(jù)本發(fā)明另一實(shí)施例的文件處理器的結(jié)構(gòu)框圖;
[0053]圖7示出根據(jù)本發(fā)明又一實(shí)施例的文件處理器的結(jié)構(gòu)框圖;
[0054]圖8示出根據(jù)本發(fā)明又一實(shí)施例的文件處理器的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0055]以下將參考附圖詳細(xì)說(shuō)明本發(fā)明的各種示例性實(shí)施例、特征和方面。附圖中相同的附圖標(biāo)記表示功能相同或相似的元件。盡管在附圖中示出了實(shí)施例的各種方面,但是除非特別指出,不必按比例繪制附圖。
[0056]在這里專用的詞“示例性”意為“用作例子、實(shí)施例或說(shuō)明性”。這里作為“示例性”所說(shuō)明的任何實(shí)施例不必解釋為優(yōu)于或好于其它實(shí)施例。
[0057]另外,為了更好的說(shuō)明本發(fā)明,在下文的【具體實(shí)施方式】中給出了眾多的具體細(xì)節(jié)。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,沒(méi)有某些具體細(xì)節(jié),本發(fā)明同樣可以實(shí)施。在一些實(shí)例中,對(duì)于本領(lǐng)域技術(shù)人員熟知的方法、手段、元件和電路未作詳細(xì)描述,以便于凸顯本發(fā)明的主旨。
[0058]實(shí)施例1
[0059]圖1示出根據(jù)本發(fā)明一實(shí)施例的文件完整性驗(yàn)證方法的流程圖。如圖1所示,該文件完整性驗(yàn)證方法主要可以包括以下步驟:
[0060]步驟S100、按預(yù)定的分塊策略將文件切分成至少兩個(gè)數(shù)據(jù)塊;以及
[0061]步驟S110、基于所述文件的校驗(yàn)值文件驗(yàn)證所述數(shù)據(jù)塊的完整性,其中,所述校驗(yàn)值文件包括所述至少兩個(gè)數(shù)據(jù)塊各自的校驗(yàn)值,若任一所述數(shù)據(jù)塊被認(rèn)定為不完整,則判定所述文件不完整并停止所述驗(yàn)證。
[0062]具體地,在接收到一個(gè)文件的同時(shí),通常還會(huì)接收到隨該文件一起分發(fā)的校驗(yàn)值文件,該校驗(yàn)值文件主要用于驗(yàn)證該文件的完整性。在一種可能的實(shí)現(xiàn)方式中,文件的校驗(yàn)值文件可以通過(guò)以下操作生成:首先按照預(yù)定的分塊策略將待驗(yàn)證文件切分為至少兩個(gè)數(shù)據(jù)塊,其中,預(yù)定的分塊策略可以是預(yù)定的長(zhǎng)度,例如頁(yè)面大小的整數(shù)倍;然后再計(jì)算切分后的各所述數(shù)據(jù)塊的校驗(yàn)值,其中,計(jì)算校驗(yàn)值所采用的算法可以是HASH算法,例如MD5算法;最后將計(jì)算出的各數(shù)據(jù)塊的校驗(yàn)值保存到上述校驗(yàn)值文件中,并將該校驗(yàn)值文件隨待驗(yàn)證的文件一起分發(fā)給驗(yàn)證方。
[0063]對(duì)于上述步驟S100,當(dāng)接收到待驗(yàn)證的文件及其對(duì)應(yīng)的校驗(yàn)值文件后,驗(yàn)證方會(huì)按照與校驗(yàn)值文件生成相同的分塊策略對(duì)所接收到的待驗(yàn)證的文件進(jìn)行切分,以得到至少兩個(gè)數(shù)據(jù)塊。
[0064]對(duì)于上述步驟S110,在得到至少兩個(gè)數(shù)據(jù)塊后,驗(yàn)證方會(huì)基于接收到的校驗(yàn)值文件驗(yàn)證數(shù)據(jù)塊的完整性,若任一數(shù)據(jù)塊被認(rèn)定為不完整、即該數(shù)據(jù)塊被破壞,則判定所述文件不完整、即文件被破壞,此時(shí),停止對(duì)文件完整性的驗(yàn)證。
[0065]本發(fā)明實(shí)施例的文件完整性驗(yàn)證方法,首先按預(yù)定的分塊策略將文件切分成至少兩個(gè)數(shù)據(jù)塊,然后基于所述文件的校驗(yàn)值文件驗(yàn)證所述數(shù)據(jù)塊的完整性。本發(fā)明實(shí)施例提供的文件完整性驗(yàn)證方法可以基于校驗(yàn)值文件分別驗(yàn)證文件被切分后的每個(gè)數(shù)據(jù)塊的完整性,當(dāng)其中只有一個(gè)或幾個(gè)數(shù)據(jù)塊被破壞的時(shí)候,只要驗(yàn)證到其中一個(gè)數(shù)據(jù)塊被破壞后,就可以判定該文件不完整,而不用在對(duì)整個(gè)文件的所有數(shù)據(jù)塊進(jìn)行校驗(yàn)提取之后,通過(guò)驗(yàn)證整個(gè)文件是否完整。因此,發(fā)明實(shí)施例提供的文件完整性驗(yàn)證方法能夠縮短文件完整性驗(yàn)證的時(shí)間。
[0066]實(shí)施例2
[0067]圖2示出根據(jù)本發(fā)明另一實(shí)施例的文件完整性驗(yàn)證方法的流程圖。圖2中標(biāo)號(hào)與圖1標(biāo)號(hào)相同的步驟具有相同的功能,為簡(jiǎn)明起見(jiàn),省略對(duì)這些步驟的詳細(xì)說(shuō)明。
[0068]如圖2所示,圖2所示的文件完整性驗(yàn)證方法與圖1所示的文件完整性驗(yàn)證方法的主要區(qū)別在于,上述步驟SllO具體可以包括以下步驟:
[0069]步驟S1101、計(jì)算所述數(shù)據(jù)塊的校驗(yàn)值;
[0070]步驟S1102、將所計(jì)算出的所述數(shù)據(jù)塊的校驗(yàn)值與所述校驗(yàn)值文件中的所述數(shù)據(jù)塊的校驗(yàn)值進(jìn)行比較;以及[0071]步驟S1103、若上述比較的結(jié)果為相同,則認(rèn)定所述數(shù)據(jù)塊完整,否則認(rèn)定所述數(shù)據(jù)塊不完整。
[0072] 具體地,為了縮短文件完整性驗(yàn)證過(guò)程的時(shí)間,提升用戶體驗(yàn)。本實(shí)施例將整個(gè)文件按預(yù)定的分塊策略例如按頁(yè)面大小的整數(shù)倍對(duì)文件進(jìn)行切分,以切分后得到的數(shù)據(jù)塊作為完整性驗(yàn)證的最小單元。
[0073]對(duì)每個(gè)數(shù)據(jù)塊獨(dú)立提取其校驗(yàn)值,并對(duì)每個(gè)數(shù)據(jù)塊單獨(dú)進(jìn)行完整性驗(yàn)證。例如,可以將接收到的待驗(yàn)證文件切分后的一個(gè)待驗(yàn)證的數(shù)據(jù)塊作為關(guān)注數(shù)據(jù)塊,并計(jì)算所述關(guān)注數(shù)據(jù)塊的校驗(yàn)值,計(jì)算方法與校驗(yàn)值文件中各個(gè)數(shù)據(jù)塊生成采用相同的算法,例如HASH算法中的MD5算法。然后將所計(jì)算出的所述關(guān)注數(shù)據(jù)塊的校驗(yàn)值與所述校驗(yàn)值文件中的所述關(guān)注數(shù)據(jù)塊的校驗(yàn)值進(jìn)行比較。由于所計(jì)算出的校驗(yàn)值反應(yīng)的是關(guān)注數(shù)據(jù)塊當(dāng)前的狀態(tài),而所述校驗(yàn)值文件中的所述關(guān)注數(shù)據(jù)塊的校驗(yàn)值是關(guān)注數(shù)據(jù)塊在校驗(yàn)值文件生成時(shí)的狀態(tài)。因此,若這兩者相同,則表明所述關(guān)注數(shù)據(jù)塊從校驗(yàn)值文件生成起就沒(méi)有遭到破壞、也即可認(rèn)定所述關(guān)注數(shù)據(jù)塊完整。此時(shí),再將其它待驗(yàn)證的數(shù)據(jù)塊作為關(guān)注數(shù)據(jù)塊,并按照上述方法進(jìn)行完整性驗(yàn)證。如果兩者不同,則認(rèn)定所述關(guān)注數(shù)據(jù)塊不完整,即該關(guān)注數(shù)據(jù)塊的被破壞。如果驗(yàn)證到某一數(shù)據(jù)塊的完整性被破壞,則可以直接得出這個(gè)文件的完整性被破壞的結(jié)論,將不再進(jìn)行剩余數(shù)據(jù)塊的驗(yàn)證。如果所有的比較結(jié)果均相同,則認(rèn)定所有的數(shù)據(jù)塊均完整,即該文件完整。
[0074]進(jìn)一步地,由于每個(gè)數(shù)據(jù)塊的校驗(yàn)值提取和完整性驗(yàn)證是獨(dú)立進(jìn)行的,因此可以對(duì)各個(gè)數(shù)據(jù)塊的校驗(yàn)值提取和完整性驗(yàn)證采用并行方式進(jìn)行處理。例如,可以采取多線程的方法對(duì)上述各數(shù)據(jù)塊進(jìn)行校驗(yàn)值提取和完整性驗(yàn)證。
[0075]本發(fā)明實(shí)施例提供的文件完整性驗(yàn)證方法,可以對(duì)切分后每個(gè)數(shù)據(jù)塊獨(dú)立提取其校驗(yàn)值,并對(duì)每個(gè)數(shù)據(jù)塊單獨(dú)進(jìn)行完整性驗(yàn)證。如果某一數(shù)據(jù)塊的完整性被驗(yàn)證為不完整,則可判定該數(shù)據(jù)塊被破壞,這時(shí)可以直接得出這個(gè)文件的完整性被破壞的結(jié)論,將不再進(jìn)行剩余數(shù)據(jù)塊的驗(yàn)證,這樣可以縮短文件完整性檢測(cè)過(guò)程。進(jìn)一步地,由于每個(gè)數(shù)據(jù)塊的校驗(yàn)值提取和完整性驗(yàn)證都是獨(dú)立進(jìn)行的,因此可以對(duì)數(shù)據(jù)塊的校驗(yàn)值提取和完整性驗(yàn)證采用并行方式進(jìn)行處理,這樣可以縮短文件校驗(yàn)值提取和文件完整性驗(yàn)證的時(shí)間。
[0076]實(shí)施例3
[0077]圖3示出根據(jù)本發(fā)明又一實(shí)施例的文件完整性驗(yàn)證方法的流程圖。圖3中標(biāo)號(hào)與圖1、圖2相同的步驟具有相同的功能,為簡(jiǎn)明起見(jiàn),省略對(duì)這些步驟的詳細(xì)說(shuō)明。
[0078]本發(fā)明實(shí)施例與上一實(shí)施例的主要區(qū)別在于,所述校驗(yàn)值文件為布隆向量庫(kù),所述布隆向量庫(kù)包括各所述數(shù)據(jù)塊的布隆向量,各所述數(shù)據(jù)塊的布隆向量是在生成所述校驗(yàn)值文件時(shí),使各所述數(shù)據(jù)塊的校驗(yàn)值通過(guò)布隆過(guò)濾器而得到的。
[0079]具體地,如圖4所示,在將文件切分成各數(shù)據(jù)塊后,在一種可能的實(shí)現(xiàn)方式中,可以將切分后得到的各個(gè)數(shù)據(jù)塊均勻的分給不同的線程。每個(gè)線程通過(guò)如文件數(shù)據(jù)塊映射的方式直接對(duì)數(shù)據(jù)塊進(jìn)行校驗(yàn)值的生成,校驗(yàn)值的生成可以通過(guò)HASH算法例如MD5算法生成;然后將得到的校驗(yàn)值通過(guò)布隆過(guò)濾器轉(zhuǎn)換為布隆向量后,存儲(chǔ)在布隆向量庫(kù)中。
[0080]舉例而言,布隆過(guò)濾器首先把長(zhǎng)度為m (m為整數(shù))比特的布隆向量(b1,b2……bj中的所有比特位初始化為O。然后,在每個(gè)線程中,將返回值在I到m間的k (k為整數(shù))個(gè)相互獨(dú)立的HASH函數(shù)hp h2、…、hk作用于一個(gè)數(shù)據(jù)塊的校驗(yàn)值上,得到k個(gè)返回值r1、r2、…、rk,并將布隆向量中位置在r1、r2、…、rk的比特位置為1,然后將得到的布隆向量存儲(chǔ)在布隆向量庫(kù)中。例如,m為16,k為4,計(jì)算出的某一個(gè)數(shù)據(jù)塊的校驗(yàn)值為e,如式I可得出Wlvb13值為1,其余為O。
[0082]將這個(gè)線程的其它數(shù)據(jù)塊的校驗(yàn)值依次經(jīng)過(guò)這個(gè)布隆過(guò)濾器,可以得到相應(yīng)的布隆向量,并將得到的這些布隆向量存儲(chǔ)到布隆向量庫(kù)中。對(duì)于其它線程的數(shù)據(jù)塊的校驗(yàn)值可以采用相同的方法得到所有數(shù)據(jù)塊相應(yīng)的布隆向量并存儲(chǔ)到布隆向量庫(kù)中。
[0083]在一種可能的實(shí)現(xiàn)方式中,如圖3所示,本發(fā)明實(shí)施例的文件完整性驗(yàn)證方法主要可以包括以下步驟:
[0084]步驟S200、按預(yù)定的分塊策略將文件切分成至少兩個(gè)數(shù)據(jù)塊;
[0085]步驟S210、基于所述文件的校驗(yàn)值文件驗(yàn)證所述數(shù)據(jù)塊的完整性。
[0086]在一種可能的實(shí)現(xiàn)方式中,步驟S210主要可以包括以下步驟:
[0087]步驟S2101、計(jì)算所述數(shù)據(jù)塊的校驗(yàn)值;
[0088]步驟S2102、將所計(jì)算出的所述數(shù)據(jù)塊的校驗(yàn)值通過(guò)所述布隆過(guò)濾器轉(zhuǎn)換為布隆
向量;
[0089]步驟S2103、將所轉(zhuǎn)換得到的布隆向量與所述布隆向量庫(kù)中的所述數(shù)據(jù)塊的布隆向量進(jìn)行比較;以及
[0090]步驟S2104、若上述比較的結(jié)果為相同,則認(rèn)定所述數(shù)據(jù)塊完整,否則認(rèn)定所述數(shù)據(jù)塊不完整。
[0091]具體地,先將文件切分,以得到至少兩個(gè)數(shù)據(jù)塊,然后將切分后得到的各數(shù)據(jù)塊均勻的分給不同的線程。每個(gè)線程通過(guò)文件數(shù)據(jù)塊映射的方式直接對(duì)各數(shù)據(jù)塊采用HASH算法進(jìn)行校驗(yàn)值提取。每個(gè)數(shù)據(jù)塊的驗(yàn)證過(guò)程如下:將待驗(yàn)證的一個(gè)數(shù)據(jù)塊作為關(guān)注數(shù)據(jù)塊,將計(jì)算出的關(guān)注數(shù)據(jù)塊的校驗(yàn)值經(jīng)過(guò)布隆過(guò)濾器,即使用k個(gè)相互獨(dú)立的HASH函數(shù)比、h2、…、hk,得到k個(gè)返回值r1、r2、…、rk,這里使用的HASH算法和k個(gè)相互獨(dú)立的HASH函數(shù)hphy…、hk與生成布隆向量庫(kù)中的布隆向量的函數(shù)相同。將所轉(zhuǎn)換得到的布隆向量與布隆向量庫(kù)中的所述關(guān)注數(shù)據(jù)塊的布隆向量進(jìn)行比較,由于所計(jì)算出的布隆向量反應(yīng)的是關(guān)注數(shù)據(jù)塊當(dāng)前的狀態(tài),而所述布隆向量庫(kù)中的所述關(guān)注數(shù)據(jù)塊的布隆向量是關(guān)注數(shù)據(jù)塊在布隆向量庫(kù)生成時(shí)的狀態(tài)。如果兩者相同,即轉(zhuǎn)換得到的布隆向量在位置r2、…、rk的比特位均為1,則表明所述關(guān)注數(shù)據(jù)塊從布隆向量庫(kù)生成起就沒(méi)有遭到破壞、也即可認(rèn)定所述關(guān)注數(shù)據(jù)塊完整。此時(shí),再將其它待驗(yàn)證的數(shù)據(jù)塊作為關(guān)注數(shù)據(jù)塊,并按照上述方法進(jìn)行完整性驗(yàn)證。如果兩者不同,即轉(zhuǎn)換得到的布隆向量在位置r1、r2、…、rk的比特位中存在某一個(gè)比特位為0,則表明這個(gè)比特位對(duì)應(yīng)所述關(guān)注數(shù)據(jù)塊的校驗(yàn)值不同,從而表明所述關(guān)注數(shù)據(jù)塊被篡改,則該數(shù)據(jù)塊遭到了破壞,進(jìn)而整個(gè)文件的完整性也就遭到了破壞。這時(shí),將停止所有線程繼續(xù)處理剩余的數(shù)據(jù)塊,直接退出并報(bào)告文件完整性遭到破壞。如果經(jīng)布隆過(guò)濾器轉(zhuǎn)換得到的所有的數(shù)據(jù)塊的布隆向量與布隆向量庫(kù)中的布隆向量相同,則判定整個(gè)文件完整。[0092]本發(fā)明實(shí)施例提供的文件完整性驗(yàn)證方法,可以對(duì)切分后每個(gè)數(shù)據(jù)塊獨(dú)立提取其校驗(yàn)值,進(jìn)而提取其布隆向量,然后基于提取的每個(gè)數(shù)據(jù)塊布隆向量及存儲(chǔ)在布隆向量庫(kù)中對(duì)應(yīng)的每個(gè)數(shù)據(jù)塊的布隆向量對(duì)每個(gè)數(shù)據(jù)塊單獨(dú)進(jìn)行完整性驗(yàn)證。如果驗(yàn)證到某一數(shù)據(jù)塊的完整性被破壞,則可以直接得出這個(gè)文件的完整性被破壞的結(jié)論,將不再進(jìn)行剩余數(shù)據(jù)塊的驗(yàn)證,這樣可以縮短文件完整性驗(yàn)證過(guò)程。進(jìn)一步地,由于每個(gè)數(shù)據(jù)塊的校驗(yàn)值提取和完整性驗(yàn)證都是獨(dú)立進(jìn)行的,因此可以對(duì)各個(gè)數(shù)據(jù)塊的校驗(yàn)值提取和完整性驗(yàn)證采用并行方式進(jìn)行處理,這樣可以縮短文件校驗(yàn)值提取和文件完整性驗(yàn)證的時(shí)間。進(jìn)一步地,本發(fā)明實(shí)施例使用的布隆過(guò)濾器具有天然的保密性和防偽造性,避免了此前的文件完整性驗(yàn)證方法固有的可偽造特性。
[0093]實(shí)施例4
[0094]圖5示出根據(jù)本發(fā)明一實(shí)施例的文件處理器的結(jié)構(gòu)框圖。如圖5所示,該文件處理器500主要可以包括切分模塊510和驗(yàn)證模塊520。其中,切分模塊510主要用于按預(yù)定的分塊策略將文件切分成至少兩個(gè)數(shù)據(jù)塊;驗(yàn)證模塊520,與所述切分模塊510連接,主要用于基于所述文件的校驗(yàn)值文件驗(yàn)證所述數(shù)據(jù)塊的完整性,并且若任一所述數(shù)據(jù)塊被認(rèn)定為不完整,則判定所述文件不完整并停止操作,其中,所述校驗(yàn)值文件包括所述至少兩個(gè)數(shù)據(jù)塊各自的校驗(yàn)值。
[0095]在一種可能的實(shí)現(xiàn)方式中,文件處理器500還可以包括計(jì)算模塊530和生成模塊540。計(jì)算模塊530與切分模塊510連接,主要用于計(jì)算由切分模塊510切分出的數(shù)據(jù)塊的校驗(yàn)值;生成模塊540與計(jì)算模塊530連接,主要用于將從待分發(fā)文件切分出的數(shù)據(jù)塊的校驗(yàn)值保存于所述待分發(fā)文件的校驗(yàn)值文件中。
[0096]在一種可能的實(shí)現(xiàn)方式中,所述分塊策略包括按預(yù)定長(zhǎng)度進(jìn)行所述切分,所述預(yù)定長(zhǎng)度為頁(yè)面大小的整數(shù)倍。
[0097]本發(fā)明實(shí)施例提供的文件處理器500可以用來(lái)執(zhí)行上述實(shí)施例1中文件完整性驗(yàn)證方法。
[0098]本發(fā)明實(shí)施例的文件處理器,切分模塊按預(yù)定的分塊策略將文件切分成至少兩個(gè)數(shù)據(jù)塊,然后驗(yàn)證模塊基于所述文件的校驗(yàn)值文件驗(yàn)證所述數(shù)據(jù)塊的完整性。本發(fā)明實(shí)施例提供的文件處理器可以基于校驗(yàn)值文件分別驗(yàn)證文件被切分模塊切分后的數(shù)據(jù)塊的完整性,當(dāng)其中只有一個(gè)或幾個(gè)數(shù)據(jù)塊被破壞的時(shí)候,只要驗(yàn)證到其中一個(gè)數(shù)據(jù)塊被破壞后,就可以判定該文件不完整,而不用在對(duì)整個(gè)文件的所有數(shù)據(jù)塊進(jìn)行校驗(yàn)提取之后,再驗(yàn)證整個(gè)文件是否完整。因此,本發(fā)明實(shí)施例提供的文件處理器能夠縮短文件完整性驗(yàn)證的時(shí)間。
[0099]實(shí)施例5
[0100]圖6示出根據(jù)本發(fā)明另一實(shí)施例的文件處理器的結(jié)構(gòu)框圖。圖6中標(biāo)號(hào)與圖5標(biāo)號(hào)相同的組件具有相同的功能,為簡(jiǎn)明起見(jiàn),省略對(duì)這些組件的詳細(xì)說(shuō)明。
[0101]如圖6所不,圖6所不的文件處理器600與圖5所不的文件處理器500的主要區(qū)別在于,上述驗(yàn)證模塊520具體可以包括第一提取單元5201、第一比較單元5202以及第一停止單元5203。第一提取單元5201與計(jì)算模塊530連接,主要用于將從待驗(yàn)證文件切分出的數(shù)據(jù)塊作為關(guān)注數(shù)據(jù)塊,并提取所述計(jì)算模塊530針對(duì)所述關(guān)注數(shù)據(jù)塊計(jì)算出的校驗(yàn)值;第一比較單元5202,與第一提取單元5201連接,主要用于將所述第一提取單元5201所提取到的所述關(guān)注數(shù)據(jù)塊的校驗(yàn)值與所述待驗(yàn)證文件的校驗(yàn)值文件中的所述關(guān)注數(shù)據(jù)塊的校驗(yàn)值進(jìn)行比較;第一停止單元5203,與所述第一比較單元5202連接,主要用于在所述第一比較單元5202輸出的比較結(jié)果為不相同的情況下,認(rèn)定所述關(guān)注數(shù)據(jù)塊以及所述待驗(yàn)證文件不完整,并使所述驗(yàn)證模塊520停止操作。
[0102]本發(fā)明實(shí)施例的文件處理器600可以用來(lái)執(zhí)行上述實(shí)施例2中的文件完整性驗(yàn)證方法。
[0103]本發(fā)明實(shí)施例提供的文件處理器,可以對(duì)切分模塊切分后的每個(gè)數(shù)據(jù)塊利用第一提取單元獨(dú)立提取其校驗(yàn)值,并利用第一比較單元將每個(gè)數(shù)據(jù)塊與校驗(yàn)值文件中相應(yīng)的數(shù)據(jù)塊的校驗(yàn)值單獨(dú)進(jìn)行比較,第一停止單元在所述第一比較單元輸出的比較結(jié)果為不相同的情況下,認(rèn)定所比較的數(shù)據(jù)塊以及所述待驗(yàn)證文件不完整,并使所述驗(yàn)證模塊停止操作。如果驗(yàn)證到某一數(shù)據(jù)塊的完整性被破壞,則可以直接得出這個(gè)文件的完整性被破壞的結(jié)論,將不再進(jìn)行剩余數(shù)據(jù)塊的驗(yàn)證。這樣可以縮短文件完整性檢測(cè)過(guò)程。進(jìn)一步地,由于每個(gè)數(shù)據(jù)塊的校驗(yàn)值提取和完整性驗(yàn)證都是獨(dú)立進(jìn)行的,因此可以對(duì)各個(gè)數(shù)據(jù)塊的校驗(yàn)值提取和完整性驗(yàn)證采用并行方式進(jìn)行處理,這樣可以縮短文件校驗(yàn)值和文件完整性驗(yàn)證的時(shí)間。
[0104]實(shí)施例6
[0105]圖7示出根據(jù)本發(fā)明又一實(shí)施例的文件處理器的結(jié)構(gòu)框圖。圖7中標(biāo)號(hào)與圖5、圖6相同的組件具有相同的功能,為簡(jiǎn)明起見(jiàn),省略對(duì)這些組件的詳細(xì)說(shuō)明。
[0106]本發(fā)明實(shí)施例的文件處理器700與上一實(shí)施例的文件處理器600的主要區(qū)別在于,文件處理器700還可以包括布隆過(guò)濾器550。生成模塊540還與布隆過(guò)濾器550連接,主要用于將從待分發(fā)文件切分出的數(shù)據(jù)塊的布隆向量保存于作為所述待分發(fā)文件的校驗(yàn)值文件的布隆向量庫(kù)中。
[0107]在一種可能的實(shí)現(xiàn)方式中,驗(yàn)證模塊520包括第二提取單元5204、第二比較單元5205以及第二停止單元5206。其中,第二提取單元5204與計(jì)算模塊530以及布隆過(guò)濾器550連接,主要用于將從待驗(yàn)證文件切分出的數(shù)據(jù)塊作為關(guān)注數(shù)據(jù)塊,并提取所述計(jì)算模塊530針對(duì)所述關(guān)注數(shù)據(jù)塊計(jì)算出的校驗(yàn)值經(jīng)所述布隆過(guò)濾器550轉(zhuǎn)換得到的布隆向量;第二比較單元5205,與所述第二提取單元5204連接,主要用于將所述第二提取單元5204所提取到的所述關(guān)注數(shù)據(jù)塊的布隆向量與所述待驗(yàn)證文件的校驗(yàn)值文件中的所述關(guān)注數(shù)據(jù)塊的布隆向量進(jìn)行比較。第二停止單元5206,與所述第二比較單元5205連接,主要用于在所述第二比較單元5205輸出的比較結(jié)果為不相同的情況下,認(rèn)定所述關(guān)注數(shù)據(jù)塊以及所述待驗(yàn)證文件不完整,并使所述驗(yàn)證模塊520停止操作。
[0108]本發(fā)明實(shí)施例提供的文件處理器,可以利用第二提取單元對(duì)切分模塊切分后的每個(gè)數(shù)據(jù)塊獨(dú)立提取其校驗(yàn)值,進(jìn)而提取其布隆向量,然后利用第二比較單元基于第二提取單元提取到的每個(gè)數(shù)據(jù)塊布隆向量及存儲(chǔ)在布隆向量庫(kù)中對(duì)應(yīng)的每個(gè)數(shù)據(jù)塊的布隆向量對(duì)每個(gè)數(shù)據(jù)塊單獨(dú)進(jìn)行比較,第二停止單元在第二比較單元輸出的比較結(jié)果為不相同的情況下,認(rèn)定所比較的數(shù)據(jù)塊以及所述待驗(yàn)證文件不完整,并使所述驗(yàn)證模塊停止操作。如果驗(yàn)證到某一數(shù)據(jù)塊的完整性被破壞,則可以直接得出這個(gè)文件的完整性被破壞的結(jié)論,將不再進(jìn)行剩余數(shù)據(jù)塊的驗(yàn)證,這樣可以縮短文件完整性驗(yàn)證過(guò)程。進(jìn)一步地,由于每個(gè)數(shù)據(jù)塊的校驗(yàn)值提取和完整性驗(yàn)證都是獨(dú)立進(jìn)行的,因此可以對(duì)數(shù)據(jù)塊的校驗(yàn)值提取和完整性驗(yàn)證采用并行方式進(jìn)行處理,這樣可以縮短文件校驗(yàn)值和文件完整性驗(yàn)證的時(shí)間。進(jìn)一步地,本發(fā)明實(shí)施例使用的布隆過(guò)濾器具有天然的保密性和防偽造性,避免了此前的文件完整性驗(yàn)證方法固有的可偽造特性。
[0109]實(shí)施例7
[0110]圖8示出根據(jù)本發(fā)明又一實(shí)施例的文件處理器的結(jié)構(gòu)框圖。所述文件處理器800可以是具備計(jì)算能力的主機(jī)服務(wù)器、個(gè)人計(jì)算機(jī)PC、或者可攜帶的便攜式計(jì)算機(jī)或終端等。本發(fā)明具體實(shí)施例并不對(duì)計(jì)算節(jié)點(diǎn)的具體實(shí)現(xiàn)做限定。
[0111]所述文件處理器800包括處理器(processor)810、通信接口(CommunicationsInterface) 820、存儲(chǔ)器(memory) 830和總線840。其中,處理器810、通信接口 820、以及存儲(chǔ)器830通過(guò)總線840完成相互間的通信。
[0112]通信接口 820用于與網(wǎng)絡(luò)設(shè)備通信,其中網(wǎng)絡(luò)設(shè)備包括例如虛擬機(jī)管理中心、共
享存儲(chǔ)等。
[0113]處理器810用于執(zhí)行程序。處理器810可能是一個(gè)中央處理器CPU,或者是專用集成電路ASIC (Application Specific Integrated Circuit),或者是被配置成實(shí)施本發(fā)明實(shí)施例的一個(gè)或多個(gè)集成電路。
[0114]存儲(chǔ)器830用于存放文件。存儲(chǔ)器830可能包含高速RAM存儲(chǔ)器,也可能還包括非易失性存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤存儲(chǔ)器。存儲(chǔ)器830也可以是存儲(chǔ)器陣列。存儲(chǔ)器830還可能被分塊,并且所述塊可按一定的規(guī)則組合成虛擬卷。
[0115]在一種可能的實(shí)現(xiàn)方式中,上述程序可為包括計(jì)算機(jī)操作指令的程序代碼。該程序具體可用于:
[0116]按預(yù)定的分塊策略將文件切分成至少兩個(gè)數(shù)據(jù)塊;以及
[0117]基于所述文件的校驗(yàn)值文件驗(yàn)證所述數(shù)據(jù)塊的完整性,其中,所述校驗(yàn)值文件包括所述至少兩個(gè)數(shù)據(jù)塊各自的校驗(yàn)值,若任一所述數(shù)據(jù)塊被認(rèn)定為不完整,則判定所述文件不完整并停止所述驗(yàn)證。
[0118]在一種可能的實(shí)現(xiàn)方式中,基于所述文件的校驗(yàn)值文件驗(yàn)證所述數(shù)據(jù)塊的完整性,包括:
[0119]計(jì)算所述數(shù)據(jù)塊的校驗(yàn)值;
[0120]將所計(jì)算出的所述數(shù)據(jù)塊的校驗(yàn)值與所述校驗(yàn)值文件中的所述數(shù)據(jù)塊的校驗(yàn)值進(jìn)行比較;以及
[0121 ] 若上述比較的結(jié)果為相同,則認(rèn)定所述數(shù)據(jù)塊完整,否則認(rèn)定所述數(shù)據(jù)塊不完整。
[0122]在一種可能的實(shí)現(xiàn)方式中,所述校驗(yàn)值文件為布隆向量庫(kù),
[0123]所述布隆向量庫(kù)包括各所述數(shù)據(jù)塊的布隆向量,
[0124]各所述數(shù)據(jù)塊的布隆向量是在生成所述校驗(yàn)值文件時(shí),使各所述數(shù)據(jù)塊的校驗(yàn)值通過(guò)布隆過(guò)濾器而得到的。
[0125]在一種可能的實(shí)現(xiàn)方式中,基于所述文件的校驗(yàn)值文件驗(yàn)證所述數(shù)據(jù)塊的完整性,包括:
[0126]計(jì)算所述數(shù)據(jù)塊的校驗(yàn)值;
[0127]將所計(jì)算出的所述數(shù)據(jù)塊的校驗(yàn)值通過(guò)所述布隆過(guò)濾器轉(zhuǎn)換為布隆向量;
[0128]將所轉(zhuǎn)換得到的布隆向量與所述布隆向量庫(kù)中的所述數(shù)據(jù)塊的布隆向量進(jìn)行比較;以及
[0129]若上述比較的結(jié)果為相同,則認(rèn)定所述數(shù)據(jù)塊完整,否則認(rèn)定所述數(shù)據(jù)塊不完整。
[0130]在一種可能的實(shí)現(xiàn)方式中,所述校驗(yàn)值是通過(guò)對(duì)所述數(shù)據(jù)塊進(jìn)行HASH運(yùn)算提取到的。
[0131]在一種可能的實(shí)現(xiàn)方式中,所述分塊策略包括按預(yù)定長(zhǎng)度進(jìn)行所述切分,所述預(yù)定長(zhǎng)度為頁(yè)面大小的整數(shù)倍。
[0132]本領(lǐng)域普通技術(shù)人員可以意識(shí)到,本文所描述的實(shí)施例中的各示例性單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來(lái)實(shí)現(xiàn)。這些功能究竟以硬件還是軟件形式來(lái)實(shí)現(xiàn),取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以針對(duì)特定的應(yīng)用選擇不同的方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
[0133]如果以計(jì)算機(jī)軟件的形式來(lái)實(shí)現(xiàn)所述功能并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),則在一定程度上可認(rèn)為本發(fā)明的技術(shù)方案的全部或部分(例如對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分)是以計(jì)算機(jī)軟件產(chǎn)品的形式體現(xiàn)的。該計(jì)算機(jī)軟件產(chǎn)品通常存儲(chǔ)在計(jì)算機(jī)可讀取的非易失性存儲(chǔ)介質(zhì)中,包括若干指令用以使得計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各實(shí)施例方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)>磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0134]以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1.一種文件完整性驗(yàn)證方法,其特征在于,包括: 按預(yù)定的分塊策略將文件切分成至少兩個(gè)數(shù)據(jù)塊;以及 基于所述文件的校驗(yàn)值文件驗(yàn)證所述數(shù)據(jù)塊的完整性,其中,所述校驗(yàn)值文件包括所述至少兩個(gè)數(shù)據(jù)塊各自的校驗(yàn)值,若任一所述數(shù)據(jù)塊被認(rèn)定為不完整,則判定所述文件不完整并停止所述驗(yàn)證。
2.根據(jù)權(quán)利要求1所述的文件完整性驗(yàn)證方法,其特征在于,基于所述文件的校驗(yàn)值文件驗(yàn)證所述數(shù)據(jù)塊的完整性,包括: 計(jì)算所述數(shù)據(jù)塊的校驗(yàn)值; 將所計(jì)算出的所述數(shù)據(jù)塊的校驗(yàn)值與所述校驗(yàn)值文件中的所述數(shù)據(jù)塊的校驗(yàn)值進(jìn)行比較;以及若上述比較的結(jié)果為相同,則認(rèn)定所述數(shù)據(jù)塊完整,否則認(rèn)定所述數(shù)據(jù)塊不完難iF.0
3.根據(jù)權(quán)利要求1所述的文件完整性驗(yàn)證方法,其特征在于,所述校驗(yàn)值文件為布隆向量庫(kù), 所述布隆向量庫(kù)包括各所述數(shù)據(jù)塊的布隆向量, 各所述數(shù)據(jù)塊的布隆向量是在生成所述校驗(yàn)值文件時(shí),使各所述數(shù)據(jù)塊的校驗(yàn)值通過(guò)布隆過(guò)濾器而得到的。
4.根據(jù)權(quán)利要求3所述的文件完整性驗(yàn)證方法,其特征在于,基于所述文件的校驗(yàn)值文件驗(yàn)證所述數(shù)據(jù)塊的完整性,包括: 計(jì)算所述數(shù)據(jù)塊的校驗(yàn)值; 將所計(jì)算出的所述數(shù)據(jù)塊的校驗(yàn)值通過(guò)所述布隆過(guò)濾器轉(zhuǎn)換為布隆向量; 將所轉(zhuǎn)換得到的布隆向量與所述布隆向量庫(kù)中的所述數(shù)據(jù)塊的布隆向量進(jìn)行比較;以及若上述比較的結(jié)果為相同,則認(rèn)定所述數(shù)據(jù)塊完整,否則認(rèn)定所述數(shù)據(jù)塊不完整。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的文件完整性驗(yàn)證方法,其特征在于,所述校驗(yàn)值是通過(guò)對(duì)所述數(shù)據(jù)塊進(jìn)行HASH運(yùn)算提取到的。
6.根據(jù)權(quán)利要求1至5中任一項(xiàng)所述的文件完整性驗(yàn)證方法,其特征在于,所述分塊策略包括按預(yù)定長(zhǎng)度進(jìn)行所述切分,所述預(yù)定長(zhǎng)度為頁(yè)面大小的整數(shù)倍。
7.一種文件處理器,其特征在于,包括: 切分模塊,用于按預(yù)定的分塊策略將文件切分成至少兩個(gè)數(shù)據(jù)塊;以及驗(yàn)證模塊,與所述切分模塊連接,用于基于所述文件的校驗(yàn)值文件驗(yàn)證所述數(shù)據(jù)塊的完整性,并且若任一所述數(shù)據(jù)塊被認(rèn)定為不完整,則判定所述文件不完整并停止操作,其中,所述校驗(yàn)值文件包括所述至少兩個(gè)數(shù)據(jù)塊各自的校驗(yàn)值。
8.根據(jù)權(quán)利要求7所述的文件處理器,其特征在于,還包括: 計(jì)算模塊,與所述切分模塊連接,用于計(jì)算由所述切分模塊切分出的數(shù)據(jù)塊的校驗(yàn)值;以及生成模塊,與所述計(jì)算模塊連接,用于將從待分發(fā)文件切分出的數(shù)據(jù)塊的校驗(yàn)值保存于所述待分發(fā)文件的校驗(yàn)值文件中。
9.根據(jù)權(quán)利要求8所述的文件處理器,其特征在于,所述驗(yàn)證模塊包括: 第一提取單元,與所述計(jì)算模塊連接,用于將從待驗(yàn)證文件切分出的數(shù)據(jù)塊作為關(guān)注數(shù)據(jù)塊,并提取所述計(jì)算模塊針對(duì)所述關(guān)注數(shù)據(jù)塊計(jì)算出的校驗(yàn)值; 第一比較單元,與所述第一提取單元連接,用于將所述第一提取單元所提取到的所述關(guān)注數(shù)據(jù)塊的校驗(yàn)值與所述待驗(yàn)證文件的校驗(yàn)值文件中的所述關(guān)注數(shù)據(jù)塊的校驗(yàn)值進(jìn)行比較;以及 第一停止單元,與所述第一比較單元連接,用于在所述第一比較單元輸出的比較結(jié)果為不相同的情況下,認(rèn)定所述關(guān)注數(shù)據(jù)塊以及所述待驗(yàn)證文件不完整,并使所述驗(yàn)證模塊停止操作。
10.根據(jù)權(quán)利要求8所述的文件處理器,其特征在于,還包括布隆過(guò)濾器, 所述布隆過(guò)濾器與所述計(jì)算模塊連接,用于將所述計(jì)算模塊計(jì)算出的校驗(yàn)值轉(zhuǎn)換為相應(yīng)的布隆向量;以及 所述生成模塊還與所述布隆過(guò)濾器連接,用于將從待分發(fā)文件切分出的數(shù)據(jù)塊的布隆向量保存于作為所述待分發(fā)文件的校驗(yàn)值文件的布隆向量庫(kù)中。
11.根據(jù)權(quán)利要求10所述的文件處理器,其特征在于,所述驗(yàn)證模塊包括: 第二提取單元,與所述計(jì)算模塊以及所述布隆過(guò)濾器連接,用于將從待驗(yàn)證文件切分出的數(shù)據(jù)塊作為關(guān)注數(shù)據(jù)塊,并提取所述計(jì)算模塊針對(duì)所述關(guān)注數(shù)據(jù)塊計(jì)算出的校驗(yàn)值經(jīng)所述布隆過(guò)濾器轉(zhuǎn)換得到的布隆向量; 第二比較單元,與所述第二提取單元連接,用于將所述第二提取單元所提取到的所述關(guān)注數(shù)據(jù)塊的布隆向量與所述待驗(yàn)證文件的校驗(yàn)值文件中的所述關(guān)注數(shù)據(jù)塊的布隆向量進(jìn)行比較;以及 第二停止單元,與所述第二比較單元連接,用于在所述第二比較單元輸出的比較結(jié)果為不相同的情況下,認(rèn)定所述關(guān)注數(shù)據(jù)塊以及所述待驗(yàn)證文件不完整,并使所述驗(yàn)證模塊停止操作。
12.根據(jù)權(quán)利要求8至11中任一項(xiàng)所述的文件處理器,其特征在于,所述計(jì)算模塊通過(guò)對(duì)所述數(shù)據(jù)塊進(jìn)行HASH運(yùn)算來(lái)計(jì)算所述數(shù)據(jù)塊的校驗(yàn)值。
13.根據(jù)權(quán)利要求7至12中任一項(xiàng)所述的文件處理器,其特征在于,所述分塊策略包括按預(yù)定長(zhǎng)度進(jìn)行所述切分,所述預(yù)定長(zhǎng)度為頁(yè)面大小的整數(shù)倍。
【文檔編號(hào)】G06F17/30GK103488952SQ201310461083
【公開(kāi)日】2014年1月1日 申請(qǐng)日期:2013年9月24日 優(yōu)先權(quán)日:2013年9月24日
【發(fā)明者】王顯雷 申請(qǐng)人:華為技術(shù)有限公司