專利名稱::有限域向量空間上的細(xì)粒度數(shù)據(jù)完整性檢驗(yàn)方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計(jì)算機(jī)學(xué)科、信息安全學(xué)科中的數(shù)據(jù)安全領(lǐng)域,具體涉及計(jì)算機(jī)取證領(lǐng)域的證據(jù)固定。
背景技術(shù):
:使用單向Hash函數(shù)生成數(shù)據(jù)的數(shù)字摘要信息后存儲(chǔ)下來(lái),通過(guò)重新生成待檢驗(yàn)數(shù)據(jù)的數(shù)字摘要信息和所存儲(chǔ)的信息進(jìn)行比較可以撿査驗(yàn)證數(shù)據(jù)是否有變化,從而實(shí)現(xiàn)數(shù)據(jù)完整性檢驗(yàn)——如果數(shù)字摘要信息不完全相同,則數(shù)據(jù)已發(fā)生變化。上述數(shù)字摘要信息是具有固定長(zhǎng)度的Hash數(shù)據(jù)。數(shù)字摘要信息的實(shí)際長(zhǎng)度取決于完整性檢驗(yàn)中采用的單向Hash函數(shù),該長(zhǎng)度和Hash函數(shù)本身的安全性對(duì)完整性檢驗(yàn)問(wèn)題的安全性產(chǎn)生影響。為方便描述,Hash函數(shù)生成的一份Hash數(shù)據(jù)稱為一個(gè)Hash數(shù)據(jù)或一個(gè)Hash。在關(guān)心源數(shù)據(jù)是否具有完整性時(shí),重新生成Hash數(shù)據(jù)進(jìn)行比較,驗(yàn)證數(shù)據(jù)的完整性。信息社會(huì)人們面對(duì)的往往是海量數(shù)據(jù),大量的場(chǎng)合需要確認(rèn)數(shù)據(jù)(信息)的安全性。計(jì)算機(jī)取證領(lǐng)域典型的應(yīng)用是在進(jìn)行取證復(fù)制的過(guò)程中計(jì)算并存儲(chǔ)取證映像的數(shù)字摘要信息以實(shí)現(xiàn)證據(jù)固定,從而保證取證分析用的副本、最后的實(shí)際證據(jù)等的完整性。取證映像(完全復(fù)制件)的完整性如果只停留在整體是否可靠的層面,則偶然的數(shù)據(jù)變化就會(huì)影響全部數(shù)據(jù)的可用性,給數(shù)據(jù)的安全、證據(jù)的選用帶來(lái)災(zāi)難性的影響。所以,使用細(xì)粒度的數(shù)據(jù)完整性檢驗(yàn)是計(jì)算機(jī)取證的必然需求,即我們需要分別判斷單個(gè)文件或小數(shù)據(jù)塊(以下統(tǒng)稱為數(shù)據(jù)對(duì)象)是否具有完整性。依照傳統(tǒng)的方法就需要每個(gè)數(shù)據(jù)對(duì)象都需要單獨(dú)存儲(chǔ)一份固定長(zhǎng)度的Hash數(shù)據(jù)。當(dāng)處理海量數(shù)據(jù)對(duì)象時(shí),細(xì)粒度完整性檢驗(yàn)面臨新問(wèn)題——完整性檢驗(yàn)Hash數(shù)據(jù)也成了大規(guī)模數(shù)據(jù),且Hash檢驗(yàn)數(shù)據(jù)具有隨機(jī)性,無(wú)法使用數(shù)據(jù)壓縮技術(shù)進(jìn)行壓縮,這將給完整性檢驗(yàn)數(shù)據(jù)的存儲(chǔ)和網(wǎng)絡(luò)傳輸效率帶來(lái)較大的負(fù)面影響。例如一個(gè)512GB硬盤的扇區(qū)級(jí)MD5Hash值將需要16GB的存儲(chǔ)量,如果使用強(qiáng)度較高的SHA-256則需要32GB。VassilRoussev等人在文獻(xiàn)"md5bloom:ForensicFilesystemHashingRevisited"(見(jiàn)期刊DigitalInvestigation,2006,vol.3(sl):82-90)中考慮衡量海量數(shù)據(jù)之間的相似性時(shí)意識(shí)到了Hash數(shù)據(jù)的大數(shù)據(jù)量問(wèn)題,引入Bloomfilter技術(shù)將若干數(shù)據(jù)對(duì)象的Hash存儲(chǔ)到一起形成一個(gè)Hash包——Bloomfilter。該方法的Hash包不滿足原來(lái)單向Hash函數(shù)的單向性,即不具有抗碰撞性,即使兩個(gè)相同的Hash包對(duì)應(yīng)的原始數(shù)據(jù)也可能不同,所以不能用于完整性檢驗(yàn)。3Merkel在文獻(xiàn)"ProtocolsforPublicKeyCryptosystems"(見(jiàn)論文集IEEESymposiumonSecurityandPrivacy,Oakland,California,USA,1980,122—134)中討論存儲(chǔ)器內(nèi)容完整性檢驗(yàn)時(shí)為了加快頻繁計(jì)算單個(gè)Hash時(shí)的計(jì)算速度,采用了Hash數(shù)據(jù)的再Hash方式,其Hash數(shù)據(jù)關(guān)系形成一個(gè)多叉樹(shù)結(jié)構(gòu)。侯方勇、王志英、劉真在可信計(jì)算問(wèn)題中對(duì)非可信存儲(chǔ)器的完整性檢驗(yàn)應(yīng)用中也采用與此相同的基本思想,參見(jiàn)文獻(xiàn)"基于Hash樹(shù)熱點(diǎn)窗口的存儲(chǔ)器完整性校驗(yàn)方法"(計(jì)算機(jī)學(xué)報(bào).2004,Vol.27(ll):1471-1479)。該方法的本質(zhì)仍是單Hash檢驗(yàn)單個(gè)數(shù)據(jù)對(duì)象--個(gè)Hash檢驗(yàn)一片存儲(chǔ)區(qū)域。由于人們過(guò)去沒(méi)有關(guān)注細(xì)粒度的大量、海量數(shù)據(jù),按照傳統(tǒng)思路,有以下三種選擇一是忽略細(xì)粒度的完整性檢驗(yàn)的需求,仍使用單一Hash數(shù)據(jù);二是每份細(xì)粒度數(shù)據(jù)都生成獨(dú)立Hash數(shù)據(jù),存儲(chǔ)大規(guī)模的Hash數(shù)據(jù);三是折衷使用某一中等規(guī)模的粒度,生成適量的Hash數(shù)據(jù)。第一、二種選擇即會(huì)出現(xiàn)前面分析的問(wèn)題,或者完整性檢驗(yàn)需求未得到滿足,或者Hash數(shù)據(jù)規(guī)模太大。第三種選擇只實(shí)現(xiàn)了比細(xì)粒度要大的中等粒度的完整性檢驗(yàn),也沒(méi)有很好地滿足完整性檢驗(yàn)的需求。陳龍等在"基于糾錯(cuò)碼的電子證據(jù)網(wǎng)絡(luò)化保全方法"(通信技術(shù),2008,Vol.41(ll):156-157,159)論文中討論了細(xì)粒度數(shù)據(jù)完整性檢驗(yàn)的簡(jiǎn)單情形,只能指示很少的幾個(gè)錯(cuò)誤,且只能進(jìn)行少量Hash壓縮。本發(fā)明在有限域的多維向量空間上設(shè)計(jì)了一種高效的均勻交叉的完整性檢驗(yàn)方案,在數(shù)據(jù)對(duì)象出現(xiàn)不滿足完整性(簡(jiǎn)稱出錯(cuò))的可能性較小,或者在所有數(shù)據(jù)對(duì)象中出錯(cuò)的數(shù)據(jù)對(duì)象較少時(shí)(以下簡(jiǎn)稱低錯(cuò)誤率),利用該方案使用適量的Hash數(shù)據(jù)即可實(shí)現(xiàn)細(xì)粒度的數(shù)據(jù)完整性檢驗(yàn)。
發(fā)明內(nèi)容本發(fā)明設(shè)計(jì)了一種新的數(shù)據(jù)組合交叉完整性檢驗(yàn)方法,在低錯(cuò)誤率的條件下將所有數(shù)據(jù)對(duì)象進(jìn)行組合交叉,一個(gè)Hash監(jiān)督若干數(shù)據(jù)對(duì)象,一個(gè)數(shù)據(jù)對(duì)象被若干個(gè)Hash監(jiān)督。本發(fā)明實(shí)現(xiàn)了細(xì)粒度的數(shù)據(jù)完整性檢驗(yàn),且實(shí)現(xiàn)了Hash數(shù)據(jù)壓縮,從而提供一種高壓縮率的細(xì)粒度數(shù)據(jù)完整性檢驗(yàn)方案。利用較少的完整性檢驗(yàn)數(shù)據(jù)一一Hash數(shù)據(jù)指示較多的數(shù)據(jù)對(duì)象的完整性,節(jié)省存儲(chǔ)完整性檢驗(yàn)數(shù)據(jù)需要的存儲(chǔ)空間和傳輸完整性檢驗(yàn)數(shù)據(jù)需要的網(wǎng)絡(luò)帶寬。為了實(shí)現(xiàn)完整性檢驗(yàn)并同時(shí)實(shí)現(xiàn)Hash數(shù)據(jù)壓縮的目的,本發(fā)明釆用如下的技術(shù)方案首先根據(jù)需求,生成不同有限域GF(《)(具有《個(gè)元素的有限域記為GF(《))和不同維度"(&2)上具有特殊性質(zhì)的向量組T。其中T的每個(gè)向量都是d維向量,向量分量的元素屬于GF(g)有限域。該特殊性質(zhì)指從向量組中任取的d個(gè)向量都滿足線性無(wú)關(guān)的性質(zhì)(稱T為A線性無(wú)關(guān)向量組)。依據(jù)T中的每個(gè)向量設(shè)計(jì)一個(gè)對(duì)應(yīng)的投影函數(shù)實(shí)現(xiàn)GF(^)到GF^)的映射。該映射實(shí)現(xiàn)了將^個(gè)元素映射到《個(gè)元素,且映射到每個(gè)元素的元素個(gè)數(shù)都相同。然后確定數(shù)據(jù)對(duì)象監(jiān)督關(guān)系。一個(gè)Hash由某個(gè)數(shù)據(jù)對(duì)象作為其數(shù)據(jù)來(lái)源的一部分,則該Hash對(duì)該數(shù)據(jù)對(duì)象進(jìn)行了監(jiān)督,依據(jù)該Hash可檢驗(yàn)該數(shù)據(jù)對(duì)象的完整性。依照固定的次序?qū)?個(gè)數(shù)據(jù)對(duì)象進(jìn)行編號(hào)以對(duì)應(yīng)到GF(^)的每個(gè)元素。上面的映射可把^個(gè)數(shù)據(jù)對(duì)象進(jìn)行劃分為《個(gè)部分——數(shù)據(jù)對(duì)象集合,每個(gè)部分有^"個(gè)數(shù)據(jù)對(duì)象,即得到所有數(shù)據(jù)對(duì)象的一種均勻劃分。一個(gè)劃分的每個(gè)數(shù)據(jù)對(duì)象集都生成1個(gè)Hash,—種劃分就得到《個(gè)Hash。若使用A個(gè)向量,A個(gè)映射就可以得到A個(gè)劃分,由向量之間的線性無(wú)關(guān)特性,不同劃分之間實(shí)現(xiàn)了均勻交叉。本發(fā)明實(shí)現(xiàn)時(shí)每個(gè)數(shù)據(jù)對(duì)象受A個(gè)Hash監(jiān)督,即需要參與次Hash生成的計(jì)算過(guò)程。Hash計(jì)算的數(shù)據(jù)對(duì)象讀取是時(shí)間性能方面的主要制約因素,因此,提供并發(fā)計(jì)算方式保證數(shù)據(jù)對(duì)象只需讀取一次,減少磁盤等外設(shè)數(shù)據(jù)的輸入時(shí)間,此部分的時(shí)間花費(fèi)和傳統(tǒng)方案相同。同時(shí),由于Hash生成時(shí)計(jì)算量較大,所以在保證只讀入一次數(shù)據(jù)的同時(shí),還提供一種可選的快速再Hash計(jì)算方式實(shí)現(xiàn)Hash生成,所需時(shí)間只比傳統(tǒng)的所有數(shù)據(jù)生成單一Hash的方法略有增加,從而實(shí)現(xiàn)和傳統(tǒng)簡(jiǎn)單完整性檢驗(yàn)大體相當(dāng)?shù)臅r(shí)間性能而計(jì)算速度無(wú)大的差異。本方法可按照用戶的需求來(lái)自由設(shè)定數(shù)據(jù)對(duì)象的實(shí)際粒度,例如,具體數(shù)據(jù)對(duì)象既可以是一個(gè)大文件中的邏輯數(shù)據(jù)塊,也可以是一系列物理扇區(qū)數(shù)據(jù)塊,同時(shí)還可以是目錄中的具體文件。本方法可在一定范圍內(nèi)按照用戶的需求來(lái)設(shè)定準(zhǔn)確指示的錯(cuò)誤數(shù)量f和Hash數(shù)據(jù)壓縮的程度。本發(fā)明生成較多的獨(dú)立Hash數(shù)據(jù)組,任一組Hash數(shù)據(jù)可在某一中間粒度獨(dú)立指示所有數(shù)據(jù)的完整性,多組Hash數(shù)據(jù)組合起來(lái)則在更小的基本粒度指示數(shù)據(jù)的完整性。該方法可實(shí)現(xiàn)細(xì)粒度的數(shù)據(jù)完整性檢驗(yàn),能準(zhǔn)確指示出出錯(cuò)的任意f個(gè)數(shù)據(jù)對(duì)象,在超出該數(shù)量范圍的情形,也能大部分正確指示出實(shí)際錯(cuò)誤來(lái),但不會(huì)出現(xiàn)出錯(cuò)對(duì)象被判定為正常對(duì)象,從而不影響實(shí)際的應(yīng)用??蓮V泛應(yīng)用于計(jì)算機(jī)取證領(lǐng)域的證據(jù)固定。說(shuō)明書附圖圖lHash并發(fā)計(jì)算流程圖圖2再Hash計(jì)算流程圖圖3完整性檢驗(yàn)流程圖具體實(shí)施例方式細(xì)粒度數(shù)據(jù)完整性檢驗(yàn)可以減小因偶然的錯(cuò)誤或少數(shù)的篡改而造成整體數(shù)據(jù)失效的災(zāi)難性影響。本方法針對(duì)總量較多的細(xì)粒度數(shù)據(jù)對(duì)象,通過(guò)交叉檢驗(yàn)的方法,使用較少的Hash數(shù)據(jù)實(shí)現(xiàn)較多數(shù)據(jù)對(duì)象的完整性檢驗(yàn)。本方法包括向量組系列生成,確定數(shù)據(jù)對(duì)象監(jiān)督關(guān)系,數(shù)據(jù)的完整性Hash生成(其中含Hash并發(fā)計(jì)算方式和Hash后再Hash計(jì)算方式兩種具體實(shí)現(xiàn)方式),完整性Hash數(shù)據(jù)比較、待檢驗(yàn)數(shù)據(jù)的完整性判定等模塊組成。將待檢驗(yàn)的若干細(xì)粒度數(shù)據(jù)對(duì)象組織成有限域上的立方體或超方體結(jié)構(gòu),即依照固定的次序?qū)個(gè)數(shù)據(jù)對(duì)象進(jìn)行編號(hào)以對(duì)應(yīng)到有限域GF(^)的每個(gè)元素。使用有限域向量空間上的投影函數(shù)對(duì)數(shù)據(jù)對(duì)象進(jìn)行均勻劃分,每一種劃分生成一組Hash數(shù)據(jù),進(jìn)行均勻交叉檢驗(yàn),最終得到全面的數(shù)據(jù)完整性檢驗(yàn)方案,實(shí)現(xiàn)一定數(shù)量的出錯(cuò)數(shù)據(jù)對(duì)象的準(zhǔn)確指示和Hash數(shù)據(jù)壓縮。Hash檢驗(yàn)方法本身基于通用的安全單向Hash函數(shù)。本方法按以下步驟實(shí)施1)生成向量組系列將待檢驗(yàn)的若干細(xì)粒度數(shù)據(jù)對(duì)象組織成有限域上的立方體或超方體結(jié)構(gòu),不同的有限域GF(《)和不同維度J(&2)上都生成各自的A線性無(wú)關(guān)向量組T,有限域GF(《)中《只能取素?cái)?shù)或素?cái)?shù)的冪,常用的情形是甴3,4^-3。其中T的每個(gè)向量都是d維向量,向量的分量的元素屬于GF(《),從向量組T中任取的J個(gè)向量都線性無(wú)關(guān)。顯然,GF(《)上的d維向量中的任一非0向量及其所有的線性表示中只有一個(gè)有可能加入A線性無(wú)關(guān)向量組,于是選擇d個(gè)向量(l,O,...,O)、(O,l,...,O)、...、(O,...,O,l)構(gòu)成初始的向量組T,他們的其中1個(gè)分量為單位元1、其它分量為0。同樣根據(jù)單位元1的特殊性再將全1向量(l,l,...,l)加入向量組T。理論上與上述某個(gè)向量線性相關(guān)的向量都可以替換該向量,而且其它向量在滿足加入后向量組T中的任意J個(gè)向量都線性無(wú)關(guān)的條件時(shí)都可以加入。只依據(jù)這一原則任選某個(gè)向量并測(cè)試是否可以加入,效率很低。利用該條件我們知道某個(gè)向量及其所有的線性表示中只有一個(gè)有可能加入,所以可直接進(jìn)行限制加快搜索速度。所有新加入向量都限制第1個(gè)分量為l(其它任意非O元素均是其線性表示),第2個(gè)分量為與已加入向量對(duì)應(yīng)分量不同的任意元素,第3個(gè)分量為與第2個(gè)分量不等且與已加入向量對(duì)應(yīng)分量不同的任意元素,其它分量依據(jù)相同原則處理。逐個(gè)加入新向量直到不能添加任何新的向量。由于可能的組合還是非常多,基于這些啟發(fā)式規(guī)則進(jìn)行搜索逐步加入其它向量,以找到最多的向量加入A線性無(wú)關(guān)向量組?,F(xiàn)已得到常用有限域GF(《)上的3-線性無(wú)關(guān)向量組的總體信息見(jiàn)表1。表1已知3-線性無(wú)關(guān)向量組的最大向量數(shù)Y及編碼可用參數(shù)有限域GF(《)T中的向量數(shù)y錯(cuò)誤指示能力最大?數(shù)據(jù)對(duì)象數(shù)=《數(shù)據(jù)對(duì)象受監(jiān)督次數(shù)GF(4)62645GF(5)621255GF(7)733437GF(8)1045129GF(9)947299GF(ll)10413319GF(13)125219711GF(16)188409617GF(17)146491313GF(19)157685915GF(23)17812167172)用戶設(shè)定需求用戶可自主設(shè)定自己的需求。由用戶選擇Hash壓縮率,錯(cuò)誤指示能力"提供需要實(shí)現(xiàn)檢驗(yàn)的數(shù)據(jù)對(duì)象的粒度和總的數(shù)據(jù)對(duì)象規(guī)模。對(duì)所有數(shù)據(jù)對(duì)象進(jìn)行分組,每組數(shù)據(jù)對(duì)象分別應(yīng)用該交叉檢驗(yàn)方法。下面即設(shè)定每組數(shù)據(jù)對(duì)象數(shù)量為"。3)確定數(shù)據(jù)對(duì)象監(jiān)督關(guān)系設(shè)數(shù)據(jù)對(duì)象個(gè)數(shù)為w,錯(cuò)誤指示能力為"選取適當(dāng)?shù)乃財(cái)?shù)或素?cái)?shù)冪《,及維數(shù)J,使得"》di^=(A1)/+1,。從有限域GF④上的A線性無(wú)關(guān)向量組中選取A個(gè)向量(包含全部有0分量的向量)。數(shù)據(jù)對(duì)象對(duì)應(yīng)到有限域的元素把數(shù)據(jù)對(duì)象依次編號(hào)為0至U"-l,將每個(gè)編號(hào)/(/=0,1,...,"-1)表示為GF(《)上的d維向量(。,…,r2,n),滿足^(。,…,"2,n)-?!?+…+^W+n。對(duì)數(shù)據(jù)對(duì)象進(jìn)行投影劃分計(jì)算數(shù)據(jù)對(duì)象,'(—0,1,...,"-l)在第/個(gè)(乂=1,2,...,。向量(記、,,…,"2,"》)上的投影W,即"、(/)『^+…+fl,2+^(投影函數(shù)即為把投影向量和數(shù)據(jù)對(duì)象向量的對(duì)應(yīng)分量分別相乘再相加,其乘法及加法為有限域GF④中的特殊運(yùn)算),依據(jù)投影"判定第/個(gè)數(shù)據(jù)對(duì)象參與第"+l行第/列的Hash計(jì)算,即同一投影函數(shù)下投影相同的元素受同一個(gè)Hash監(jiān)督。每個(gè)Hash值都是由同一投影函數(shù)下投影相同的^"個(gè)數(shù)據(jù)對(duì)象計(jì)算Hash值得到的。每個(gè)投影函數(shù)可生成一組Hash,有g(shù)個(gè)。A:個(gè)投影函數(shù)所生成的Hash共得到《行A:列的Hash矩陣,見(jiàn)表2。表2Hash矩陣<table>tableseeoriginaldocumentpage8</column></row><table>下面以實(shí)例詳細(xì)說(shuō)明有限域向量空間上的數(shù)據(jù)對(duì)象劃分。以有限域GF(2),^/=3為例,數(shù)據(jù)對(duì)象的劃分方法如下假設(shè)共有23=8個(gè)待檢測(cè)的數(shù)據(jù)對(duì)象,依次編號(hào)為0、1、2、3、4、5、6、7,將8個(gè)對(duì)象的編號(hào)表示為有限域3維向量空間上的點(diǎn)(0,0,0),(0,0,1),(O,l,O),(0,1,1),(l,O,O),(l,O,l),(l,l,O),(l,U)。q=2,d=3對(duì)應(yīng)線性無(wú)關(guān)向量組T的4個(gè)向量為{(1,0,0)、(0,1,0)、(O,O,l)、(1,1,1)}。用T中的1個(gè)向量和數(shù)據(jù)對(duì)象對(duì)應(yīng)的向量進(jìn)行投影運(yùn)算對(duì)應(yīng)分量相乘再相加(加法和異或運(yùn)算結(jié)果相同)。如向量(l,O,O)——投影向量的第3維為1,且有限域GF(2)只有0和1兩個(gè)元素,所以劃分的依據(jù)就是數(shù)據(jù)對(duì)象的向量在該維上是0還是1;結(jié)果前4個(gè)數(shù)據(jù)對(duì)象得到0,后4個(gè)數(shù)據(jù)對(duì)象得到1,所以第1個(gè)向量將數(shù)據(jù)對(duì)象分為(0,1,2,3)和(4,5,6,7),可分別生成兩個(gè)Hash。同理,第2個(gè)向量將數(shù)據(jù)對(duì)象分為(0,1,4,5)和(2,3,6,7);第3個(gè)向量將數(shù)據(jù)對(duì)象分為(0,2,4,6)和(1,3,5,7);第4個(gè)向量將數(shù)據(jù)對(duì)象分為(0,3,5,6)和(1,2,4,7)。如表3所示為數(shù)據(jù)對(duì)象與Hash之間的均勻交叉檢驗(yàn)關(guān)系(以GF(2),d=3,/=l為例,表中l(wèi)表示有監(jiān)督關(guān)系,0表示沒(méi)有)。表3數(shù)據(jù)對(duì)象與Hash之間的均勻交叉檢驗(yàn)關(guān)系<table>tableseeoriginaldocumentpage8</column></row><table>4)Hash矩陣生成算法Hash矩陣生成包含并發(fā)計(jì)算和再Hash兩種方式,可選其中之一生成Hash矩陣。并發(fā)計(jì)算方式依次讀入數(shù)據(jù)對(duì)象,同時(shí)推進(jìn)所有Hash的計(jì)算過(guò)程,該方式保證源數(shù)據(jù)只需讀入一次,每個(gè)數(shù)據(jù)對(duì)象參與Hash計(jì)算A:次,所得Hash與將相關(guān)數(shù)據(jù)讀入直接計(jì)算Hash結(jié)果相同。Hash的數(shù)據(jù)計(jì)算總量為原來(lái)的A倍。如圖1所示為Hash并發(fā)計(jì)算方式Hash矩陣生成流程圖。并發(fā)計(jì)算算法描述如下步驟1:根據(jù)有限域GF("、維數(shù)d以及指示錯(cuò)誤能力/值從準(zhǔn)備好的相應(yīng)A線性無(wú)關(guān)向量組中取出h(cM)"+l個(gè)向量;步驟2:初始化Hash矩陣(由單向Hash函數(shù)決定),/=0;步驟3:讀入數(shù)據(jù)對(duì)象/;步驟4:由A個(gè)投影向量按前述方法計(jì)算該數(shù)據(jù)對(duì)象的監(jiān)督關(guān)系,確定需參與計(jì)算的A個(gè)Hash;歩驟5:分別取出Hash矩陣中對(duì)應(yīng)中間結(jié)果或初值計(jì)算所有A個(gè)Hash,將中間結(jié)果再存入Hash矩陣;步驟6:/=/+1,重復(fù)3到5直到數(shù)據(jù)對(duì)象處理完;步驟7:輸出Hash矩陣再Hash計(jì)算方式的原理是用完整性數(shù)據(jù)^諷印+^^)+...+風(fēng)"^》替代//(/)1+/)2+...+^)作為檢驗(yàn)用的依據(jù)。其中H表示完整性檢驗(yàn)單向Hash函數(shù),+表示數(shù)據(jù)連接,A為數(shù)據(jù)對(duì)象。該方式同樣保證源數(shù)據(jù)只需讀入一次,每個(gè)數(shù)據(jù)對(duì)象只參與Hash計(jì)算1次,另每個(gè)數(shù)據(jù)對(duì)象的Hash數(shù)據(jù)參與A:次Hash計(jì)算。由于一般情況下Hash數(shù)據(jù)比源數(shù)據(jù)少得多(按512字節(jié)的數(shù)據(jù)塊大小計(jì)算,MD5的Hash數(shù)據(jù)量是源數(shù)據(jù)的1/32),所以最終Hash計(jì)算數(shù)據(jù)總量只比源數(shù)據(jù)多出少量數(shù)據(jù)。又因?yàn)閿?shù)據(jù)輸入占實(shí)際執(zhí)行時(shí)間的相當(dāng)大一部分,所以總時(shí)間將和傳統(tǒng)所有數(shù)據(jù)計(jì)算單個(gè)Hash的時(shí)間相差很小。再Hash方式的計(jì)算過(guò)程中也采用了并發(fā)計(jì)算方式同時(shí)推進(jìn)所有Hash計(jì)算過(guò)程的思想。如圖2所示為再Hash計(jì)算方式Hash矩陣生成流程圖。再Hash計(jì)算算法描述如下步驟1:根據(jù)有限域GF(g)、維數(shù)d以及指示錯(cuò)誤能力f值從準(zhǔn)備好的相應(yīng)A線性無(wú)關(guān)向量組中取出h(Al)"+l個(gè)向量;步驟2:初始化Hash矩陣(由單向Hash函數(shù)決定),置數(shù)據(jù)對(duì)象/=0;步驟3:建立和Hash矩陣一一對(duì)應(yīng)的緩沖數(shù)據(jù)矩陣;步驟4:讀入數(shù)據(jù)對(duì)象Z';步驟5:計(jì)算該數(shù)據(jù)對(duì)象的Hash數(shù)據(jù)/2;步驟6:由^:個(gè)投影向量按前述方法計(jì)算該數(shù)據(jù)對(duì)象的監(jiān)督關(guān)系,確定監(jiān)督該數(shù)據(jù)對(duì)象的A個(gè)Hash以及相應(yīng)的Hash數(shù)據(jù)緩沖位置(兩者在各自矩陣中位置相同);步驟7:將Hash數(shù)據(jù)分別存入緩沖數(shù)據(jù)矩陣中的對(duì)應(yīng)A:個(gè)位置(已有緩沖數(shù)據(jù)之后);步驟8:如果A個(gè)位置中某個(gè)或某幾個(gè)位置的數(shù)據(jù)達(dá)到合適的規(guī)模(如32字節(jié)、512字節(jié)等),分別取出Hash矩陣中對(duì)應(yīng)中間結(jié)果或初值計(jì)算緩沖數(shù)據(jù)的對(duì)應(yīng)Hash,將中間結(jié)果再存入Hash矩陣,并把緩沖數(shù)據(jù)清除;否則繼續(xù);步驟9:/=/+1,重復(fù)4到8直到數(shù)據(jù)對(duì)象處理完;步驟10:輸出Hash矩陣5)Hash檢驗(yàn)算法如圖3所示為細(xì)粒度完整性檢驗(yàn)流程圖。步驟1:選取原Hash數(shù)據(jù)生成時(shí)相同的參數(shù),采用相同的Hash計(jì)算方式生成Hash矩陣步驟2:將所得Hash矩陣和原Hash矩陣進(jìn)行比較,如果任意一組(列)Hash完全相符,則沒(méi)有出錯(cuò),所有數(shù)據(jù)都具有完整性,結(jié)束。否則任意一組中至少有一個(gè)Hash不相符,繼續(xù)下一步;步驟3:先檢査含O分量的d個(gè)向量生成的Hash組,統(tǒng)計(jì)不相符的Hash數(shù)量;步驟4:設(shè)這d組分別有;cd,...A力個(gè)Hash不相符,則最多有xd*...*x2*Jd個(gè)數(shù)據(jù)對(duì)象出錯(cuò);步驟5:從Hash矩陣相應(yīng)列Xd個(gè)hash中取1個(gè)得到其行號(hào)(從小到大h,同理取得^M,…,r2,n。向量Od-l,…,r2-l,n-l)可對(duì)應(yīng)到一數(shù)據(jù)對(duì)象/;依據(jù)數(shù)據(jù)對(duì)象監(jiān)督關(guān)系依次檢查數(shù)據(jù)對(duì)象/在其他(^1)^/+1組Hash中對(duì)應(yīng)Hash是否相符,若全都不相符,則數(shù)據(jù)對(duì)象/出錯(cuò),不具有完整性;步驟6:重復(fù)步驟5驗(yàn)證其它數(shù)據(jù)對(duì)象是否出錯(cuò)。本發(fā)明的目的是設(shè)計(jì)出新的數(shù)據(jù)完整性交叉檢驗(yàn)方法,能在準(zhǔn)確指示一定數(shù)量的出錯(cuò)數(shù)據(jù)對(duì)象的同時(shí)實(shí)現(xiàn)Hash數(shù)據(jù)壓縮,顯著地提高了Hash數(shù)據(jù)的壓縮效率;可以減小因偶然的錯(cuò)誤或少數(shù)的篡改而造成整體數(shù)據(jù)失效的災(zāi)難性影響;可以有效壓縮海量Hash數(shù)據(jù),節(jié)省完整性檢驗(yàn)數(shù)據(jù)的存儲(chǔ)空間和傳輸時(shí)的網(wǎng)絡(luò)帶寬。本方法主要應(yīng)用于大量數(shù)據(jù)的完整性檢驗(yàn),適合包括電子數(shù)據(jù)業(yè)務(wù)等各類數(shù)據(jù)安全驗(yàn)證場(chǎng)合,計(jì)算機(jī)取證領(lǐng)域的原始取證映像完整性和電子數(shù)據(jù)證據(jù)固定等等場(chǎng)合。權(quán)利要求1、有限域向量空間上的細(xì)粒度數(shù)據(jù)完整性檢驗(yàn)方法,將待檢驗(yàn)的若干細(xì)粒度數(shù)據(jù)對(duì)象組織成有限域GF(q)上以q為階的立方體或超方體結(jié)構(gòu)——向量空間;根據(jù)不同有限域和不同維度生成一個(gè)向量組,向量組中任意d個(gè)向量都線性無(wú)關(guān),依據(jù)錯(cuò)誤指示能力t從向量組中選出k個(gè)向量建立k個(gè)投影函數(shù),利用投影函數(shù)對(duì)數(shù)據(jù)對(duì)象集合進(jìn)行均勻劃分,每個(gè)劃分的每份數(shù)據(jù)對(duì)象集合都生成一個(gè)Hash數(shù)據(jù),每個(gè)投影函數(shù)上投影相同的所有數(shù)據(jù)對(duì)象用一個(gè)Hash數(shù)據(jù)監(jiān)督,如此交叉實(shí)現(xiàn)均勻交叉Hash檢驗(yàn),實(shí)現(xiàn)出錯(cuò)數(shù)據(jù)對(duì)象的準(zhǔn)確指示和Hash數(shù)據(jù)壓縮。2、根據(jù)權(quán)利要求1所述的細(xì)粒度數(shù)據(jù)完整性檢驗(yàn)方法,其特征在于,所述向量組中向量盡量多以支持指示盡量多錯(cuò)誤,選取適當(dāng)?shù)乃財(cái)?shù)或素?cái)?shù)冪《,及維數(shù)",使得數(shù)據(jù)對(duì)象個(gè)數(shù)w^d且h(Al)汁l^Y,從有限域GF(《)上的J-線性無(wú)關(guān)向量組中選取A:個(gè)向量建立投影函數(shù)。3、根據(jù)權(quán)利要求1所述的細(xì)粒度數(shù)據(jù)完整性檢驗(yàn)方法,其特征在于,每個(gè)Hash數(shù)據(jù)都是由相同投影函數(shù)下投影相同的《d"個(gè)數(shù)據(jù)對(duì)象計(jì)算得到,通過(guò)只讀入一次數(shù)據(jù)對(duì)象,采用Hash并發(fā)計(jì)算或再Hash計(jì)算方式生成Hash矩陣,根據(jù)Hash矩陣確定監(jiān)督關(guān)系。4、根據(jù)權(quán)利要求1所述的方法,其特征在于,數(shù)據(jù)對(duì)象的粒度、錯(cuò)誤指示能力t和Hash數(shù)據(jù)壓縮程度;;根據(jù)用戶需求選擇。5、根據(jù)權(quán)利要求3所述的方法,其特征在于,所述Hash并發(fā)計(jì)算方式包括步驟步驟l:讀入一個(gè)數(shù)據(jù)對(duì)象;步驟2:由A個(gè)投影向量計(jì)算該數(shù)據(jù)對(duì)象的監(jiān)督關(guān)系,確定需參與計(jì)算的A個(gè)Hash數(shù)據(jù);步驟3:分別取出對(duì)應(yīng)中間結(jié)果或初值計(jì)算所有A:個(gè)Hash數(shù)據(jù),再暫存中間結(jié)果。6、根據(jù)權(quán)利要求3所述的方法,其特征在于,所述再Hash計(jì)算方式包括主要步驟步驟l:建立一個(gè)《行&列的緩沖數(shù)據(jù)矩陣;步驟2:讀入一個(gè)數(shù)據(jù)對(duì)象;步驟3:計(jì)算該數(shù)據(jù)對(duì)象的Hash數(shù)據(jù);步驟4:由^個(gè)投影向量計(jì)算該數(shù)據(jù)對(duì)象的監(jiān)督關(guān)系,確定該數(shù)據(jù)對(duì)象的A個(gè)Hash數(shù)據(jù)緩沖位置;步驟5:將Hash數(shù)據(jù)分別存入緩沖數(shù)據(jù)矩陣;步驟6:如果A個(gè)位置中某個(gè)或某幾個(gè)位置的數(shù)據(jù)達(dá)到規(guī)定的規(guī)模,分別用對(duì)應(yīng)Hash中間結(jié)果或初值計(jì)算緩沖數(shù)據(jù)的對(duì)應(yīng)Hash,再暫存中間結(jié)果,隨后清除緩沖數(shù)據(jù)。全文摘要本發(fā)明有限域向量空間上的細(xì)粒度數(shù)據(jù)完整性檢驗(yàn)方法,屬于計(jì)算機(jī)及信息安全領(lǐng)域,在細(xì)粒度層次上實(shí)現(xiàn)利用較少的檢驗(yàn)數(shù)據(jù)指示較多的數(shù)據(jù)對(duì)象的完整性,可根據(jù)用戶需求設(shè)定壓縮程度、準(zhǔn)確指示出錯(cuò)的數(shù)據(jù)對(duì)象數(shù)量。所述的細(xì)粒度數(shù)據(jù)完整性檢驗(yàn)方法將待檢驗(yàn)源數(shù)據(jù)對(duì)象映射到有限域GF(q)上的d維向量空間,將所有數(shù)據(jù)對(duì)象進(jìn)行均勻劃分,不同劃分之間實(shí)現(xiàn)均勻交叉。每一種劃分生成一組Hash,最終得到全面的數(shù)據(jù)完整性檢驗(yàn)方案。本發(fā)明可節(jié)省存儲(chǔ)完整性檢驗(yàn)數(shù)據(jù)需要的存儲(chǔ)空間和傳輸完整性檢驗(yàn)數(shù)據(jù)需要的網(wǎng)絡(luò)帶寬,適用于大量數(shù)據(jù)的完整性檢驗(yàn),及電子數(shù)據(jù)業(yè)務(wù)中的數(shù)據(jù)安全驗(yàn)證,原始取證映像完整性和電子數(shù)據(jù)證據(jù)固定等場(chǎng)合。文檔編號(hào)G06F21/00GK101477599SQ20081023714公開(kāi)日2009年7月8日申請(qǐng)日期2008年12月19日優(yōu)先權(quán)日2008年12月19日發(fā)明者王國(guó)胤,龍陳申請(qǐng)人:重慶郵電大學(xué)