專(zhuān)利名稱(chēng):數(shù)據(jù)管理設(shè)備,數(shù)據(jù)管理方法以及計(jì)算機(jī)程序的制作方法
背景技術(shù):
一般的,本發(fā)明涉及一種數(shù)據(jù)管理設(shè)備,在該數(shù)據(jù)管理設(shè)備中采用的數(shù)據(jù)管理方法,以及實(shí)現(xiàn)該數(shù)據(jù)管理方法的計(jì)算機(jī)程序。更具體的,本發(fā)明涉及一種具有防偽造驗(yàn)證功能的數(shù)據(jù)管理設(shè)備,該功能能夠有效的驗(yàn)證被假定沒(méi)有被偽造的信息數(shù)據(jù)的有效性,并適于進(jìn)行更新數(shù)據(jù)的操作,例如數(shù)據(jù)的增加和刪除,還涉及在該數(shù)據(jù)管理設(shè)備中采用的數(shù)據(jù)管理方法,以及實(shí)現(xiàn)該數(shù)據(jù)管理方法的計(jì)算機(jī)程序。完全被假定沒(méi)有被偽造的信息的實(shí)例就是內(nèi)容,許可信息以及記帳信息。
近年來(lái),通過(guò)提供各種包括互聯(lián)網(wǎng)在內(nèi)的通信網(wǎng)絡(luò)以及衛(wèi)星來(lái)有線及無(wú)線傳送各種數(shù)據(jù),例如音樂(lè)數(shù)據(jù),視頻數(shù)據(jù)以及游戲程序的服務(wù)日漸盛行。另外,通過(guò)可發(fā)行記錄介質(zhì)例如DVD,CD,以及存儲(chǔ)卡來(lái)發(fā)行內(nèi)容也變得日漸盛行。這些發(fā)行內(nèi)容被存儲(chǔ)在由用戶(hù)所有的設(shè)備或游戲設(shè)備中。由用戶(hù)所有的設(shè)備的例子為T(mén)V,PC(個(gè)人計(jì)算機(jī))以及復(fù)制設(shè)備。
當(dāng)在用戶(hù)設(shè)備,例如PC中使用上面提到的各種內(nèi)容時(shí),除了內(nèi)容以外,各種數(shù)據(jù)也都被存儲(chǔ)在用戶(hù)設(shè)備所采用的存儲(chǔ)單元中。該存儲(chǔ)的數(shù)據(jù)包括許可,每個(gè)許可都被用作使用內(nèi)容和記帳信息的權(quán)利。這些數(shù)據(jù)段的結(jié)構(gòu)可以防止用戶(hù)非法的改變?cè)摂?shù)據(jù)。
作為一個(gè)用于避免數(shù)據(jù)偽造并驗(yàn)證數(shù)據(jù)有效性的結(jié)構(gòu),使用了數(shù)字簽名。通過(guò)將一個(gè)公開(kāi)密鑰加密系統(tǒng)的密鑰應(yīng)用于編碼處理,可以在對(duì)用于防偽驗(yàn)證的數(shù)據(jù)或數(shù)據(jù)抽象值進(jìn)行的編碼過(guò)程中生成數(shù)字簽名。通過(guò)這種方式生成的數(shù)字簽名被加入到主數(shù)據(jù)中,用作防偽驗(yàn)證的數(shù)據(jù)。
在確定數(shù)據(jù)是否被偽造的數(shù)據(jù)驗(yàn)證過(guò)程中,通過(guò)采用對(duì)應(yīng)于用于上述過(guò)程中的密鑰的公開(kāi)密鑰生成數(shù)字簽名來(lái)進(jìn)行數(shù)字簽名的解密過(guò)程。接著,將作為解密數(shù)字簽名過(guò)程的結(jié)果而獲得的數(shù)據(jù)同原始數(shù)據(jù),也就是用于防偽驗(yàn)證或數(shù)據(jù)抽象值進(jìn)行比較,以確定得到的數(shù)據(jù)是否同原始數(shù)據(jù)相匹配。如果結(jié)果數(shù)據(jù)與原始數(shù)據(jù)相匹配則證明主數(shù)據(jù)并沒(méi)有被偽造。
可是,如果存儲(chǔ)在用戶(hù)設(shè)備中的主數(shù)據(jù)被更新了,則上述的數(shù)字簽名就不能被用作用于保證主數(shù)據(jù)已經(jīng)被合法更新的數(shù)據(jù)。
例如,用戶(hù)購(gòu)買(mǎi)了一個(gè)許可,該許可允許某一音樂(lè)內(nèi)容只能被復(fù)制三次。根據(jù)用于實(shí)現(xiàn)基于所述許可的內(nèi)容利用過(guò)程的內(nèi)容利用程序,該許可被存儲(chǔ)在用戶(hù)設(shè)備所采用的存儲(chǔ)單元中。內(nèi)容利用程序的一個(gè)例子就是例如內(nèi)容播放器,并且存儲(chǔ)單元的一個(gè)例子就是硬盤(pán)。
每次用戶(hù)復(fù)制音樂(lè)內(nèi)容時(shí),內(nèi)容利用程序都會(huì)更新許可,方式如下允許的剩余復(fù)制次數(shù)=2,允許的剩余復(fù)制次數(shù)=1,以及允許的剩余復(fù)制次數(shù)=0,如果根據(jù)許可正確使用該內(nèi)容,則該內(nèi)容就不會(huì)被復(fù)制超過(guò)三次。
可是,如果用戶(hù)拷貝該允許音樂(lè)內(nèi)容僅被復(fù)制三次的許可,并將許可的拷貝存儲(chǔ)在存儲(chǔ)單元中作為備份數(shù)據(jù)的話,則根據(jù)原始許可在復(fù)制內(nèi)容三次之后,仍可以通過(guò)使用作為備份數(shù)據(jù)保存的許可來(lái)再次使用該內(nèi)容。
即使被加到了許可上的數(shù)字簽名已經(jīng)被驗(yàn)證過(guò)了,但是與原始數(shù)字簽名相同的數(shù)字簽名也可以被加到該拷貝的許可上。這樣,就會(huì)出現(xiàn)這樣一種情況內(nèi)容利用程序確定拷貝許可是有效的,并允許復(fù)制該內(nèi)容。
文獻(xiàn),例如日本專(zhuān)利公開(kāi)NO.2003-85321就公開(kāi)了一種結(jié)構(gòu),其中管理對(duì)象數(shù)據(jù)的散列數(shù)值(hash value)被用作防偽驗(yàn)證數(shù)據(jù),用于數(shù)據(jù)的非偽造驗(yàn)證。在下面的描述中,日本專(zhuān)利公開(kāi)NO.2003-85321指的就是專(zhuān)利文獻(xiàn)1。但是,在專(zhuān)利文獻(xiàn)1的結(jié)構(gòu)中,需要為每個(gè)管理對(duì)象數(shù)據(jù)段生成一個(gè)散列數(shù)值并保存該生成的散列數(shù)值作為管理對(duì)象驗(yàn)證值。這樣,該結(jié)構(gòu)就會(huì)引發(fā)這樣的問(wèn)題由于管理對(duì)象數(shù)據(jù)段的數(shù)量增加了,因此管理數(shù)據(jù)驗(yàn)證值的數(shù)量也會(huì)增加。
發(fā)明概要針對(duì)上述問(wèn)題,本發(fā)明的一個(gè)目的就是提供一種數(shù)據(jù)管理設(shè)備,該設(shè)備能夠可靠地驗(yàn)證數(shù)據(jù)沒(méi)有被偽造,所述數(shù)據(jù)是與許可、記帳信息或其他各種信息一樣有可能被更新、提供附加數(shù)據(jù)或刪除的數(shù)據(jù),提供了一種在該數(shù)據(jù)管理設(shè)備中采用的數(shù)據(jù)管理方法,以及提供了一種用于實(shí)現(xiàn)該數(shù)據(jù)管理方法的計(jì)算機(jī)程序。
根據(jù)本發(fā)明的第一個(gè)方面,提供了一種數(shù)據(jù)管理設(shè)備,包括
管理數(shù)據(jù)存儲(chǔ)單元,用于存儲(chǔ)管理對(duì)象數(shù)據(jù);管理數(shù)據(jù)驗(yàn)證值存儲(chǔ)單元,用于存儲(chǔ)被置于n叉數(shù)據(jù)管理樹(shù)頂端的頂端數(shù)值,作為管理數(shù)據(jù)驗(yàn)證值,其中n為大于或等于2的整數(shù);數(shù)據(jù)驗(yàn)證處理單元,用于根據(jù)該管理數(shù)據(jù)驗(yàn)證值對(duì)該管理對(duì)象數(shù)據(jù)進(jìn)行驗(yàn)證其有效性的處理,其中該n叉數(shù)據(jù)管理樹(shù)包括位于該n叉數(shù)據(jù)管理樹(shù)最低層的級(jí)層上的該管理對(duì)象數(shù)據(jù)以及位于該n叉數(shù)據(jù)管理樹(shù)較高層的任意特定級(jí)層上的數(shù)據(jù),作為通過(guò)使用基于位于直接從屬于該特定級(jí)層的另一級(jí)層上的其它數(shù)據(jù)的不可逆函數(shù)來(lái)進(jìn)行計(jì)算的結(jié)果;以及該頂端數(shù)值是通過(guò)使用基于位于該n叉數(shù)據(jù)管理數(shù)最高層的級(jí)層上的數(shù)據(jù)的該不可逆函數(shù)來(lái)進(jìn)行計(jì)算的結(jié)果。
另外,在由本發(fā)明提供的數(shù)據(jù)管理設(shè)備的一個(gè)實(shí)施例中,不可逆函數(shù)為散列函數(shù)。
另外,在由本發(fā)明提供的數(shù)據(jù)管理設(shè)備的一個(gè)實(shí)施例中,該管理數(shù)據(jù)驗(yàn)證值存儲(chǔ)單元是一個(gè)嵌入在具有防止篡改結(jié)構(gòu)的安全芯片中的安全存儲(chǔ)器。
另外,在由本發(fā)明提供的數(shù)據(jù)管理設(shè)備的一個(gè)實(shí)施例中,該數(shù)據(jù)驗(yàn)證處理單元被嵌入在具有防止篡改結(jié)構(gòu)的安全芯片中;以及具有一個(gè)結(jié)構(gòu),用于通過(guò)從該管理數(shù)據(jù)存儲(chǔ)單元輸入該數(shù)據(jù)驗(yàn)證過(guò)程中所需的數(shù)據(jù)來(lái)進(jìn)行數(shù)據(jù)驗(yàn)證處理。
另外,在由本發(fā)明提供的數(shù)據(jù)管理設(shè)備的一個(gè)實(shí)施例中該管理數(shù)據(jù)驗(yàn)證值存儲(chǔ)單元是一個(gè)嵌入在具有防止篡改結(jié)構(gòu)的安全芯片中的安全存儲(chǔ)器;以及該數(shù)據(jù)驗(yàn)證處理單元具有一個(gè)結(jié)構(gòu),用于通過(guò)從該管理數(shù)據(jù)存儲(chǔ)單元輸入該數(shù)據(jù)驗(yàn)證過(guò)程中所需的數(shù)據(jù)來(lái)進(jìn)行數(shù)據(jù)驗(yàn)證處理。
另外,在由本發(fā)明提供的數(shù)據(jù)管理設(shè)備的一個(gè)實(shí)施例中各個(gè)構(gòu)成該n叉數(shù)據(jù)管理樹(shù)的節(jié)點(diǎn)都是一個(gè)包括n個(gè)數(shù)值的數(shù)據(jù)列表,其中每個(gè)數(shù)值都是作為通過(guò)使用基于位于直接從屬于該數(shù)據(jù)列表的一個(gè)級(jí)層上的n段數(shù)據(jù)的該不可逆函數(shù)來(lái)進(jìn)行計(jì)算的結(jié)果而被獲得的;以及該數(shù)據(jù)驗(yàn)證處理單元進(jìn)行數(shù)據(jù)驗(yàn)證過(guò)程,每個(gè)過(guò)程都確定在貫穿該n叉數(shù)據(jù)管理樹(shù)從高層的級(jí)層開(kāi)始至底層的級(jí)層結(jié)束,或者從低層的級(jí)層開(kāi)始至高層的級(jí)層結(jié)束的方向上是否驗(yàn)證數(shù)據(jù)與核對(duì)數(shù)據(jù)一個(gè)接一個(gè)的順序匹配,其中該驗(yàn)證數(shù)據(jù)是通過(guò)使用基于提供在較低級(jí)層上數(shù)據(jù)的該不可逆函數(shù)來(lái)進(jìn)行計(jì)算的結(jié)果;該核對(duì)數(shù)值就是已經(jīng)被包括在較高級(jí)層上的數(shù)據(jù)列表上的數(shù)據(jù),作為該不可逆函數(shù)的計(jì)算結(jié)果;以及該較低級(jí)層和該較高級(jí)層就是該n叉數(shù)據(jù)管理樹(shù)中任意的兩個(gè)級(jí)層,其中該較低級(jí)層被用作直接從屬于該較高級(jí)層。
另外,在由本發(fā)明提供的數(shù)據(jù)管理設(shè)備的一個(gè)實(shí)施例中,該數(shù)據(jù)驗(yàn)證處理單元根據(jù)被用作每個(gè)級(jí)層上數(shù)據(jù)列表的標(biāo)識(shí)的列表指數(shù)j并且根據(jù)被用作每個(gè)數(shù)據(jù)列表上不可逆函數(shù)計(jì)算結(jié)果的標(biāo)識(shí)的不可逆函數(shù)指數(shù)k,在整個(gè)該n叉數(shù)據(jù)管理樹(shù)中確定一個(gè)驗(yàn)證路徑,該路徑從高層的級(jí)層開(kāi)始向著低層的級(jí)層方向或者從低層的級(jí)層開(kāi)始向著高層的級(jí)層方向;以及對(duì)該確定驗(yàn)證路徑上的數(shù)據(jù)進(jìn)行該數(shù)據(jù)驗(yàn)證處理。
另外,在由本發(fā)明提供的數(shù)據(jù)管理設(shè)備的一個(gè)實(shí)施例中,該數(shù)據(jù)驗(yàn)證處理單元確定只有當(dāng)在整個(gè)該n叉數(shù)據(jù)管理樹(shù)中,從高層的級(jí)層開(kāi)始向著低層的級(jí)層方向或者從低層的級(jí)層開(kāi)始向著高層的級(jí)層方向上進(jìn)行的所有該數(shù)據(jù)驗(yàn)證過(guò)程中的該驗(yàn)證數(shù)據(jù)與該核對(duì)數(shù)據(jù)相匹配時(shí),該數(shù)據(jù)驗(yàn)證處理單元才確定沒(méi)有數(shù)據(jù)被偽造。
另外,在由本發(fā)明提供的數(shù)據(jù)管理設(shè)備的一個(gè)實(shí)施例中,該數(shù)據(jù)驗(yàn)證處理單元在整個(gè)該n叉數(shù)據(jù)管理樹(shù)中,從高層的級(jí)層開(kāi)始向著低層的級(jí)層方向或者從低層的級(jí)層開(kāi)始向著高層的級(jí)層方向上進(jìn)行的該數(shù)據(jù)驗(yàn)證處理,作為隨著在該n叉數(shù)據(jù)管理樹(shù)中進(jìn)行增加、刪除、或修改數(shù)據(jù)操作的數(shù)據(jù)更新處理的一部分,并且只有當(dāng)在所有該數(shù)據(jù)驗(yàn)證過(guò)程中的該驗(yàn)證數(shù)據(jù)與該核對(duì)數(shù)據(jù)相匹配時(shí)才更新數(shù)據(jù)。
另外,在由本發(fā)明提供的數(shù)據(jù)管理設(shè)備的一個(gè)實(shí)施例中,作為隨著向該n叉數(shù)據(jù)管理樹(shù)增加級(jí)層或從該n叉數(shù)據(jù)管理樹(shù)中刪除級(jí)層的操作同時(shí)進(jìn)行的用于修改級(jí)層結(jié)構(gòu)的一部分,該數(shù)據(jù)驗(yàn)證處理單元根據(jù)先更新數(shù)據(jù)進(jìn)行數(shù)據(jù)驗(yàn)證處理,作為驗(yàn)證隨著該修改級(jí)層結(jié)構(gòu)的處理同時(shí)進(jìn)行的數(shù)據(jù)更新處理所需數(shù)據(jù)有效性的處理,并且只有當(dāng)該數(shù)據(jù)驗(yàn)證處理確定沒(méi)有數(shù)據(jù)被偽造時(shí),才允許進(jìn)行該修改級(jí)層結(jié)構(gòu)的處理。
另外,在由本發(fā)明提供的數(shù)據(jù)管理設(shè)備的一個(gè)實(shí)施例中該管理數(shù)據(jù)驗(yàn)證值存儲(chǔ)單元被用于存儲(chǔ)該頂端數(shù)值作為管理數(shù)據(jù)驗(yàn)證值,其中該頂端數(shù)值被放置在該n叉數(shù)據(jù)管理樹(shù)的頂部作為通過(guò)使用該不可逆函數(shù)進(jìn)行計(jì)算的結(jié)果,還被用于存儲(chǔ)該n叉數(shù)據(jù)管理樹(shù)的的中間級(jí)層上的中間數(shù)據(jù)作為另一個(gè)管理數(shù)據(jù)驗(yàn)證值;以及為了驗(yàn)證包含在該n叉數(shù)據(jù)管理樹(shù)中作為從屬于該中間數(shù)據(jù)的數(shù)據(jù)的數(shù)據(jù)的有效性,該數(shù)據(jù)驗(yàn)證處理單元通過(guò)使用該中間數(shù)據(jù)作為管理數(shù)據(jù)驗(yàn)證值來(lái)進(jìn)行數(shù)據(jù)驗(yàn)證處理。
另外,在由本發(fā)明提供的數(shù)據(jù)管理設(shè)備的一個(gè)實(shí)施例中該數(shù)據(jù)驗(yàn)證處理單元被用于存儲(chǔ)多個(gè)計(jì)算結(jié)果,其中這些計(jì)算結(jié)果都由該不可逆函數(shù)輸出,因?yàn)閿?shù)據(jù)管理樹(shù)與該計(jì)算結(jié)果一樣多,并將其置于該各個(gè)數(shù)據(jù)管理樹(shù)的頂部,每一個(gè)都作為管理數(shù)據(jù)驗(yàn)證值;以及為了驗(yàn)證包含在該數(shù)據(jù)管理樹(shù)中一個(gè)特定數(shù)據(jù)管理樹(shù)中的數(shù)據(jù)的有效性,該驗(yàn)證處理單元進(jìn)行設(shè)置一個(gè)該計(jì)算結(jié)果的數(shù)據(jù)驗(yàn)證處理,該結(jié)果是由該不可逆函數(shù)輸出的,并被放置在該特定數(shù)據(jù)管理樹(shù)的頂部,作為管理數(shù)據(jù)驗(yàn)證值。
另外,在由本發(fā)明提供的數(shù)據(jù)管理設(shè)備的一個(gè)實(shí)施例中該管理數(shù)據(jù)存儲(chǔ)單元被用于存儲(chǔ)加密的管理對(duì)象數(shù)據(jù);以及一個(gè)適用于加密或解密該管理對(duì)象數(shù)據(jù)的密鑰被存儲(chǔ)在具有防止偽造結(jié)構(gòu)的安全芯片的存儲(chǔ)單元中。
另外,在由本發(fā)明提供的數(shù)據(jù)管理設(shè)備的一個(gè)實(shí)施例中該管理數(shù)據(jù)存儲(chǔ)單元被用于存儲(chǔ)加密后的管理對(duì)象數(shù)據(jù);用于對(duì)適于加密或解密該管理對(duì)象數(shù)據(jù)的第一密鑰進(jìn)行加密的第二密鑰被存儲(chǔ)在具有防止偽造結(jié)構(gòu)的安全芯片的存儲(chǔ)單元中;以及該加密后的第一密鑰通過(guò)使用該第二密鑰而在該安全芯片中被解密,并且作為解密結(jié)果而得到的該第一密鑰被輸出給該安全芯片外部的部件。
另外,在由本發(fā)明提供的數(shù)據(jù)管理設(shè)備的一個(gè)實(shí)施例中構(gòu)成該n叉數(shù)據(jù)管理樹(shù)的各個(gè)節(jié)點(diǎn)都包括僅僅一個(gè)通過(guò)使用該基于直接從屬于該節(jié)點(diǎn)的級(jí)層上的該n個(gè)數(shù)據(jù)段的不可逆函數(shù)作為計(jì)算結(jié)果而被生成的數(shù)值;以及該數(shù)據(jù)驗(yàn)證處理單元進(jìn)行處理,以確定是否驗(yàn)證數(shù)據(jù)與核對(duì)數(shù)據(jù)相匹配,其中該驗(yàn)證數(shù)據(jù)是通過(guò)使用該基于較低級(jí)層上的n段數(shù)據(jù)的不可逆函數(shù)進(jìn)行計(jì)算的結(jié)果;該核對(duì)數(shù)據(jù)是唯一的一個(gè)已經(jīng)被置于較高級(jí)層上的數(shù)值,作為該不可逆函數(shù)的計(jì)算結(jié)果;以及該較低層的級(jí)層以及該較高層的級(jí)層是該n叉數(shù)據(jù)管理樹(shù)中的任意兩個(gè)級(jí)層,并且該較低層的級(jí)層直接從屬于該較高層的級(jí)層。
另外,根據(jù)本發(fā)明的第二個(gè)方面,提供了一種數(shù)據(jù)管理方法,該數(shù)據(jù)管理方法中包括數(shù)據(jù)驗(yàn)證步驟,該步驟通過(guò)使用被置于n叉數(shù)據(jù)管理樹(shù)頂部的頂端數(shù)值作為管理數(shù)據(jù)驗(yàn)證值來(lái)進(jìn)行數(shù)據(jù)驗(yàn)證處理,其中n為大于或等于2的整數(shù),其中該n叉數(shù)據(jù)管理樹(shù)包括位于該n叉數(shù)據(jù)管理樹(shù)最低層的級(jí)層上的該管理對(duì)象數(shù)據(jù)以及位于該n叉數(shù)據(jù)管理樹(shù)較高層的任意特定級(jí)層上的數(shù)據(jù),作為通過(guò)使用基于位于直接從屬于該特定級(jí)層的另一級(jí)層上的其它數(shù)據(jù)的不可逆函數(shù)來(lái)進(jìn)行計(jì)算的結(jié)果;該頂端數(shù)值是通過(guò)使用基于位于該n叉數(shù)據(jù)管理數(shù)最高層的級(jí)層上的數(shù)據(jù)的該不可逆函數(shù)來(lái)進(jìn)行計(jì)算的結(jié)果;以及該數(shù)據(jù)驗(yàn)證步驟包括進(jìn)行確定過(guò)程的步驟,每個(gè)過(guò)程都確定在貫穿該n叉數(shù)據(jù)管理樹(shù)從高層的級(jí)層開(kāi)始至底層的級(jí)層結(jié)束,或者從低層的級(jí)層開(kāi)始至高層的級(jí)層結(jié)束的方向上是否驗(yàn)證數(shù)據(jù)與核對(duì)數(shù)據(jù)一個(gè)接一個(gè)的順序匹配,其中該驗(yàn)證數(shù)據(jù)是通過(guò)使用基于提供在較低級(jí)層上數(shù)據(jù)的該不可逆函數(shù)進(jìn)行計(jì)算的結(jié)果;該核對(duì)數(shù)值就是已經(jīng)被包括在較高級(jí)層上的數(shù)據(jù)列表上的數(shù)據(jù),作為該不可逆函數(shù)的計(jì)算結(jié)果;以及該較低級(jí)層和該較高級(jí)層就是該n叉數(shù)據(jù)管理樹(shù)中任意的兩個(gè)級(jí)層,其中該較低級(jí)層被用作直接從屬于該較高級(jí)層。
另外,在由本發(fā)明提供的數(shù)據(jù)管理方法的一個(gè)實(shí)施例中,該不可逆函數(shù)為散列函數(shù)。
另外,在由本發(fā)明提供的數(shù)據(jù)管理方法的一個(gè)實(shí)施例中,包括構(gòu)成該n叉數(shù)據(jù)管理樹(shù)的節(jié)點(diǎn)就是包括n個(gè)數(shù)值的數(shù)據(jù)列表,其中每個(gè)數(shù)值都是作為通過(guò)使用該基于直接從屬于該數(shù)據(jù)列表的級(jí)層上的該n個(gè)數(shù)據(jù)段的不可逆函數(shù)作為計(jì)算結(jié)果而得到的;以及在該數(shù)據(jù)驗(yàn)證步驟,進(jìn)行確定過(guò)程以確定在貫穿該n叉數(shù)據(jù)管理樹(shù)從高層的級(jí)層開(kāi)始至底層的級(jí)層結(jié)束,或者從低層的級(jí)層開(kāi)始至高層的級(jí)層結(jié)束的方向上是否驗(yàn)證數(shù)據(jù)與核對(duì)數(shù)據(jù)一個(gè)過(guò)程接著一個(gè)過(guò)程的順序匹配,其中該驗(yàn)證數(shù)據(jù)是通過(guò)使用基于提供在較低級(jí)層上數(shù)據(jù)的該不可逆函數(shù)進(jìn)行計(jì)算的結(jié)果;該核對(duì)數(shù)值就是已經(jīng)被包括在較高級(jí)層上的數(shù)據(jù)列表上的數(shù)據(jù),作為該不可逆函數(shù)的計(jì)算結(jié)果;以及該較低級(jí)層和該較高級(jí)層就是該n叉數(shù)據(jù)管理樹(shù)中任意的兩個(gè)級(jí)層,其中該較低級(jí)層被用作直接從屬于該較高級(jí)層。
另外,在由本發(fā)明提供的數(shù)據(jù)管理方法的一個(gè)實(shí)施例中,該數(shù)據(jù)管理方法還包括步驟根據(jù)被用作每個(gè)級(jí)層上數(shù)據(jù)列表的標(biāo)識(shí)的列表指數(shù)j并且根據(jù)被用作每個(gè)數(shù)據(jù)列表上不可逆函數(shù)計(jì)算結(jié)果的標(biāo)識(shí)的不可逆函數(shù)指數(shù)k,在整個(gè)該n叉數(shù)據(jù)管理樹(shù)中確定一個(gè)驗(yàn)證路徑,該路徑從高層的級(jí)層開(kāi)始向著低層的級(jí)層方向或者從低層的級(jí)層開(kāi)始向著高層的級(jí)層方向,在該數(shù)據(jù)驗(yàn)證步驟,對(duì)該確定驗(yàn)證路徑上的數(shù)據(jù)進(jìn)行該數(shù)據(jù)驗(yàn)證處理。
另外,在由本發(fā)明提供的數(shù)據(jù)管理方法的一個(gè)實(shí)施例中,該數(shù)據(jù)驗(yàn)證處理在整個(gè)該n叉數(shù)據(jù)管理樹(shù)中,從高層的級(jí)層開(kāi)始向著低層的級(jí)層方向或者從低層的級(jí)層開(kāi)始向著高層的級(jí)層方向上進(jìn)行的該數(shù)據(jù)驗(yàn)證處理,作為隨著在該n叉數(shù)據(jù)管理樹(shù)中進(jìn)行增加、刪除、或修改數(shù)據(jù)操作的數(shù)據(jù)更新處理的一部分,并且只有當(dāng)在所有該數(shù)據(jù)驗(yàn)證過(guò)程中的該驗(yàn)證數(shù)據(jù)與該核對(duì)數(shù)據(jù)相匹配時(shí)才更新數(shù)據(jù)。
另外,在由本發(fā)明提供的數(shù)據(jù)管理方法的一個(gè)實(shí)施例中,作為隨著向該n叉數(shù)據(jù)管理樹(shù)增加級(jí)層或從該n叉數(shù)據(jù)管理樹(shù)中刪除級(jí)層的操作同時(shí)進(jìn)行的用于修改級(jí)層結(jié)構(gòu)的一部分,進(jìn)行基于先更新數(shù)據(jù)的數(shù)據(jù)驗(yàn)證處理,以驗(yàn)證隨著該修改級(jí)層結(jié)構(gòu)的處理同時(shí)進(jìn)行的數(shù)據(jù)更新處理所需數(shù)據(jù)的有效性,并且只有當(dāng)該數(shù)據(jù)驗(yàn)證處理確定沒(méi)有數(shù)據(jù)被偽造時(shí),才允許進(jìn)行該修改級(jí)層結(jié)構(gòu)的處理。
另外,在由本發(fā)明提供的數(shù)據(jù)管理方法的一個(gè)實(shí)施例中,在該數(shù)據(jù)驗(yàn)證步驟中,為了驗(yàn)證包含在該n叉數(shù)據(jù)管理樹(shù)中作為從屬于該中間數(shù)據(jù)的數(shù)據(jù)的有效性,通過(guò)使用該n叉數(shù)據(jù)管理樹(shù)中間層的級(jí)層上的中間數(shù)據(jù)作為管理數(shù)據(jù)驗(yàn)證值來(lái)進(jìn)行數(shù)據(jù)驗(yàn)證處理。
另外,在由本發(fā)明提供的數(shù)據(jù)管理方法的一個(gè)實(shí)施例中,在該數(shù)據(jù)驗(yàn)證步驟,進(jìn)行一個(gè)過(guò)程以確定是否驗(yàn)證數(shù)據(jù)與核對(duì)數(shù)據(jù)相匹配,其中該驗(yàn)證數(shù)據(jù)是通過(guò)使用基于提供在較低級(jí)層上的n段數(shù)據(jù)的該不可逆函數(shù)進(jìn)行計(jì)算的結(jié)果;該核對(duì)數(shù)值就是已經(jīng)被置于較高級(jí)層上的唯一的一個(gè)數(shù)值,作為該不可逆函數(shù)的計(jì)算結(jié)果;以及該較低級(jí)層和該較高級(jí)層就是該n叉數(shù)據(jù)管理樹(shù)中任意的兩個(gè)級(jí)層,其中該較低級(jí)層被用作直接從屬于該較高級(jí)層。
另外,根據(jù)本發(fā)明的第三個(gè)方面,提供了一種在計(jì)算機(jī)系統(tǒng)中被執(zhí)行,用以進(jìn)行數(shù)據(jù)驗(yàn)證處理的計(jì)算機(jī)程序,該計(jì)算機(jī)程序包括數(shù)據(jù)驗(yàn)證步驟,該步驟通過(guò)使用被置于n叉數(shù)據(jù)管理樹(shù)頂部的頂端數(shù)值作為管理數(shù)據(jù)驗(yàn)證值來(lái)進(jìn)行數(shù)據(jù)驗(yàn)證處理,其中n為大于或等于2的整數(shù),其中該n叉數(shù)據(jù)管理樹(shù)包括位于該n叉數(shù)據(jù)管理樹(shù)最低層的級(jí)層上的該管理對(duì)象數(shù)據(jù)以及位于該n叉數(shù)據(jù)管理樹(shù)較高層的任意特定級(jí)層上的數(shù)據(jù),作為通過(guò)使用基于位于直接從屬于該特定級(jí)層的另一級(jí)層上的其它數(shù)據(jù)的不可逆函數(shù)來(lái)進(jìn)行計(jì)算的結(jié)果;該頂端數(shù)值是通過(guò)使用基于位于該n叉數(shù)據(jù)管理數(shù)最高層的級(jí)層上的數(shù)據(jù)的該不可逆函數(shù)來(lái)進(jìn)行計(jì)算的結(jié)果;以及該數(shù)據(jù)驗(yàn)證步驟包括進(jìn)行確定過(guò)程的步驟,每個(gè)過(guò)程都確定在貫穿該n叉數(shù)據(jù)管理樹(shù)從高層的級(jí)層開(kāi)始至底層的級(jí)層結(jié)束,或者從低層的級(jí)層開(kāi)始至高層的級(jí)層結(jié)束的方向上是否驗(yàn)證數(shù)據(jù)與核對(duì)數(shù)據(jù)一個(gè)接一個(gè)的順序匹配,其中該驗(yàn)證數(shù)據(jù)是通過(guò)使用基于提供在較低級(jí)層上數(shù)據(jù)的該不可逆函數(shù)進(jìn)行計(jì)算的結(jié)果;該核對(duì)數(shù)值就是已經(jīng)被包括在較高級(jí)層上的數(shù)據(jù)列表上的數(shù)據(jù),作為該不可逆函數(shù)的計(jì)算結(jié)果;以及該較低級(jí)層和該較高級(jí)層就是該n叉數(shù)據(jù)管理樹(shù)中任意的兩個(gè)級(jí)層,其中該較低級(jí)層被用作直接從屬于該較高級(jí)層。
需要注意的是,本發(fā)明提供的計(jì)算機(jī)程序可以被提供給一個(gè)計(jì)算機(jī)系統(tǒng),該系統(tǒng)能夠通過(guò)從記錄介質(zhì)例如用于存儲(chǔ)計(jì)算機(jī)可執(zhí)行格式的程序的CD、FD或MO將程序按照到計(jì)算機(jī)系統(tǒng)中,或者通過(guò)通信介質(zhì)例如網(wǎng)絡(luò)從下載站點(diǎn)將程序下載到計(jì)算機(jī)系統(tǒng)中。
下面參照附圖對(duì)本發(fā)明實(shí)施例的詳細(xì)說(shuō)明將會(huì)使得本發(fā)明的其它方面,還有本發(fā)明顯示出來(lái)的特性及其帶來(lái)的優(yōu)點(diǎn)變得更加清晰。需要注意的是,該說(shuō)明書(shū)中的系統(tǒng)就表示包括有多個(gè)邏輯上彼此相連設(shè)備的整個(gè)系統(tǒng)??墒牵撛O(shè)備并不是必須在物理上被封裝在一個(gè)盒子中。
根據(jù)本發(fā)明的結(jié)構(gòu),散列數(shù)值一般被存儲(chǔ)在安全芯片的存儲(chǔ)單元中。為了被用作管理數(shù)據(jù)驗(yàn)證值,通過(guò)使用基于數(shù)據(jù)管理樹(shù)最高級(jí)層上提供的并被置于該樹(shù)頂端的散列列表的不可逆函數(shù)來(lái)計(jì)算散列數(shù)值,通過(guò)使用該管理數(shù)據(jù)驗(yàn)證值,可以驗(yàn)證數(shù)據(jù)管理樹(shù)最低級(jí)層上所有管理對(duì)象數(shù)據(jù)段的有效性。這樣就可以驗(yàn)證許多管理數(shù)據(jù)段的有效性,而不需要隨著管理對(duì)象數(shù)據(jù)段數(shù)量的增加而增加被存儲(chǔ)在安全芯片存儲(chǔ)單元中的管理數(shù)據(jù)驗(yàn)證值的信息量。
另外,根據(jù)本發(fā)明的另一個(gè)結(jié)構(gòu),在數(shù)據(jù)更新過(guò)程,例如增加、刪除以及修改管理對(duì)象數(shù)據(jù)的過(guò)程中,也通過(guò)使用在數(shù)據(jù)管理樹(shù)上執(zhí)行的不可逆函數(shù)計(jì)算出的數(shù)值進(jìn)行數(shù)據(jù)驗(yàn)證處理。這樣,就可以避免更新管理對(duì)象數(shù)據(jù)的非法操作并實(shí)現(xiàn)數(shù)據(jù)的正確管理。由不可逆函數(shù)計(jì)算出的數(shù)值一般為散列數(shù)值。
除此以外,根據(jù)本發(fā)明的仍舊另一個(gè)結(jié)構(gòu),安全芯片中的存儲(chǔ)單元不光存儲(chǔ)被置于樹(shù)的頂部的頂端散列數(shù)值,作為使用基于數(shù)據(jù)管理樹(shù)最高級(jí)層上的散列列表的不可逆函數(shù)的計(jì)算結(jié)果,還存儲(chǔ)中間散列數(shù)值,該數(shù)值作為使用基于數(shù)據(jù)管理樹(shù)中間級(jí)層上的散列列表的不可逆函數(shù)的計(jì)算結(jié)果而被獲得。該中間散列數(shù)值被用作對(duì)從屬于中間散列數(shù)值的數(shù)值進(jìn)行驗(yàn)證過(guò)程中的管理數(shù)據(jù)驗(yàn)證值。這樣,對(duì)從屬于中間散列數(shù)值的數(shù)據(jù)進(jìn)行的驗(yàn)證處理可以非常高效的進(jìn)行。
進(jìn)一步,根據(jù)本發(fā)明的仍舊進(jìn)一步的結(jié)構(gòu),可以正當(dāng)?shù)倪M(jìn)行向數(shù)據(jù)管理樹(shù)中增加級(jí)層或從數(shù)據(jù)管理樹(shù)中刪除級(jí)層的處理,并且數(shù)據(jù)管理樹(shù)中的任何數(shù)據(jù)或中間散列數(shù)值都可以被用作管理數(shù)據(jù)驗(yàn)證值??梢詫?duì)具有各種形式的數(shù)據(jù)管理樹(shù)進(jìn)行數(shù)據(jù)管理。
并且,根據(jù)本發(fā)明的仍舊進(jìn)一步的結(jié)構(gòu),可以使用存儲(chǔ)在安全芯片中的密鑰在加密過(guò)程中對(duì)管理對(duì)象數(shù)據(jù)進(jìn)行加密,并且對(duì)包括加密管理對(duì)象數(shù)據(jù)的數(shù)據(jù)管理樹(shù)進(jìn)行數(shù)據(jù)管理。這樣,就可以有效的防止管理對(duì)象數(shù)據(jù)被泄漏。
圖1為由本發(fā)明提供的數(shù)據(jù)管理設(shè)備的結(jié)構(gòu)框圖;圖2為安全芯片的結(jié)構(gòu)框圖;圖3為數(shù)據(jù)管理樹(shù)的典型結(jié)構(gòu)框圖;圖4為說(shuō)明根據(jù)數(shù)據(jù)管理樹(shù)進(jìn)行的數(shù)據(jù)驗(yàn)證過(guò)程的流程圖;圖5為說(shuō)明設(shè)置驗(yàn)證路徑過(guò)程的說(shuō)明性框圖;圖6為說(shuō)明根據(jù)數(shù)據(jù)管理樹(shù)進(jìn)行的數(shù)據(jù)驗(yàn)證過(guò)程的流程圖;圖7為說(shuō)明根據(jù)數(shù)據(jù)管理樹(shù)進(jìn)行的更新數(shù)據(jù)和驗(yàn)證數(shù)據(jù)有效性過(guò)程的流程圖;圖8為設(shè)置驗(yàn)證路徑所需信息的說(shuō)明性框圖;圖9為僅包括一層無(wú)效數(shù)值列表的數(shù)據(jù)管理樹(shù)的結(jié)構(gòu)框圖;圖10為說(shuō)明增加數(shù)據(jù)管理樹(shù)中級(jí)層數(shù)的過(guò)程的流程圖;圖11為說(shuō)明增加數(shù)據(jù)管理樹(shù)中級(jí)層數(shù)的過(guò)程的說(shuō)明性框圖;圖12為說(shuō)明減少數(shù)據(jù)管理樹(shù)中級(jí)層數(shù)的過(guò)程的流程圖;圖13為說(shuō)明減少數(shù)據(jù)管理樹(shù)中級(jí)層數(shù)的過(guò)程的說(shuō)明性框圖;圖14為根據(jù)中間散列數(shù)值來(lái)說(shuō)明過(guò)程的說(shuō)明性框圖;圖15為根據(jù)多個(gè)數(shù)據(jù)管理樹(shù)的數(shù)據(jù)管理結(jié)構(gòu)的說(shuō)明性框圖;圖16為設(shè)置散列列表作為管理數(shù)據(jù)驗(yàn)證值的典型過(guò)程的說(shuō)明性框圖;圖17為設(shè)置數(shù)據(jù)管理樹(shù)中多個(gè)元素作為管理數(shù)據(jù)驗(yàn)證值的典型過(guò)程的說(shuō)明性框圖;圖18為包括級(jí)層中散列數(shù)值(hash value)的數(shù)據(jù)管理樹(shù)的結(jié)構(gòu)的說(shuō)明性框圖;圖19為包括一個(gè)級(jí)層中散列數(shù)值的數(shù)據(jù)管理樹(shù)的結(jié)構(gòu)的說(shuō)明性框圖;圖20為說(shuō)明生成各個(gè)管理對(duì)象數(shù)據(jù)段的散列數(shù)值以及產(chǎn)生包括該已生成的散列數(shù)值的數(shù)據(jù)管理樹(shù)的過(guò)程的說(shuō)明性框圖。
對(duì)優(yōu)選實(shí)施例的詳細(xì)說(shuō)明下面的描述說(shuō)明了本發(fā)明提供的數(shù)據(jù)管理設(shè)備,在該數(shù)據(jù)管理設(shè)備中采用的數(shù)據(jù)管理方法,以及實(shí)現(xiàn)該數(shù)據(jù)管理方法的計(jì)算機(jī)程序的詳細(xì)內(nèi)容。需要注意的是,這些詳細(xì)內(nèi)容按照下面的段落順序進(jìn)行說(shuō)明1數(shù)據(jù)管理設(shè)備的結(jié)構(gòu)2安全芯片的結(jié)構(gòu)3數(shù)據(jù)管理結(jié)構(gòu)4驗(yàn)證管理對(duì)象數(shù)據(jù)的有效性5數(shù)據(jù)的增加,修改以及刪除6確定驗(yàn)證路徑7具有一個(gè)散列數(shù)值列表級(jí)層的數(shù)據(jù)管理樹(shù)8增加和減少級(jí)層9加密和解密管理對(duì)象數(shù)據(jù)10使用中間級(jí)層散列列表進(jìn)行驗(yàn)證11根據(jù)多個(gè)數(shù)據(jù)管理樹(shù)的管理結(jié)構(gòu)12使用根散列列表作為數(shù)據(jù)管理驗(yàn)證數(shù)據(jù)的結(jié)構(gòu)13為數(shù)據(jù)管理樹(shù)的任何部分設(shè)置和管理管理數(shù)據(jù)驗(yàn)證值的結(jié)構(gòu)14包括散列數(shù)值的數(shù)據(jù)管理樹(shù)[1數(shù)據(jù)管理設(shè)備的結(jié)構(gòu)]圖1為由本發(fā)明一個(gè)實(shí)施例實(shí)現(xiàn)的數(shù)據(jù)管理設(shè)備的典型結(jié)構(gòu)框圖。如圖所示,該數(shù)據(jù)管理設(shè)備101包括一個(gè)CPU(中央處理單元)102,其具有程序執(zhí)行功能和操作處理功能。具體的說(shuō),該CPU102控制對(duì)安全芯片105的訪問(wèn)并將各種數(shù)據(jù)保存在主存儲(chǔ)單元104中,以及從主存儲(chǔ)單元104中讀出數(shù)據(jù)。
存儲(chǔ)器103包括ROM(只讀存儲(chǔ)器)和RAM(隨機(jī)存儲(chǔ)器)。該ROM是用于存儲(chǔ)各種程序,例如將要由CPU102執(zhí)行的各種應(yīng)用程序的存儲(chǔ)器。程序被載入到RAM中以便于執(zhí)行。RAM還被用作執(zhí)行程序的工作區(qū)。
主存儲(chǔ)單元104存儲(chǔ)數(shù)據(jù)管理設(shè)備101中所管理的各種管理對(duì)象數(shù)據(jù)以及數(shù)據(jù)管理樹(shù)的散列列表。管理對(duì)象數(shù)據(jù)的例子就是內(nèi)容,許可以及記帳信息。數(shù)據(jù)管理樹(shù)的散列列表將在下面詳細(xì)描述。
安全芯片105a和105b都能夠進(jìn)行驗(yàn)證數(shù)據(jù)管理設(shè)備101中管理的管理對(duì)象數(shù)據(jù)的有效性的處理。安全芯片105a和105b都具有防止篡改結(jié)構(gòu),以防止存儲(chǔ)的數(shù)據(jù)被外部訪問(wèn)者的非法訪問(wèn)改變。具體的說(shuō),存儲(chǔ)的數(shù)據(jù)只能有存儲(chǔ)在安全芯片105a和105b中的預(yù)定處理程序進(jìn)行修改。作為一種選擇,安全芯片105a和105b都可以進(jìn)行處理,例如只允許由授權(quán)外部設(shè)備提供的數(shù)據(jù)作為更新數(shù)據(jù)的過(guò)程。在該圖所示的結(jié)構(gòu)中,安全芯片105a位于數(shù)據(jù)管理設(shè)備101的內(nèi)部而安全芯片105b位于數(shù)據(jù)管理設(shè)備101的外部。可是,數(shù)據(jù)管理設(shè)備僅僅需要它們中的任何一個(gè)。也就是說(shuō),安全芯片可以在數(shù)據(jù)管理單元101的內(nèi)部或者外部。如果安全芯片位于數(shù)據(jù)管理單元101的外部,則該芯片就必須能夠與數(shù)據(jù)管理設(shè)備101進(jìn)行通信。
下面,參照?qǐng)D2對(duì)安全芯片105的結(jié)構(gòu)進(jìn)行說(shuō)明。CPU201同安全芯片105外部的單元交換數(shù)據(jù),訪問(wèn)裝在安全芯片105中的安全存儲(chǔ)器203,并處理從數(shù)據(jù)管理設(shè)備101中的其它單元接收到的數(shù)據(jù),以及將要輸出給數(shù)據(jù)管理設(shè)備101中的其它單元的數(shù)據(jù)。
存儲(chǔ)器202包括ROM(只讀存儲(chǔ)器)和RAM(隨機(jī)存儲(chǔ)器)。該ROM是用于存儲(chǔ)各種程序,例如將要由CPU201執(zhí)行的各種應(yīng)用程序的存儲(chǔ)器。程序被載入到RAM中以便于執(zhí)行。RAM還被用作執(zhí)行程序的工作區(qū)。
安全存儲(chǔ)器203是由CPU201執(zhí)行的程序能夠進(jìn)行訪問(wèn)的存儲(chǔ)區(qū)。該安全存儲(chǔ)器203也是根據(jù)位于存儲(chǔ)在安全存儲(chǔ)器203中的數(shù)據(jù)外部的訪問(wèn)者進(jìn)行的訪問(wèn),避免偽造的數(shù)據(jù)存儲(chǔ)區(qū)。接口204是一個(gè)模塊,具有防止對(duì)出現(xiàn)在安全芯片105內(nèi)部數(shù)據(jù)總線上的數(shù)據(jù)以及存儲(chǔ)在存儲(chǔ)器202和安全存儲(chǔ)器203中的數(shù)據(jù)進(jìn)行訪問(wèn)的功能。
下面的描述說(shuō)明了基于由各種管理對(duì)象數(shù)據(jù)以及數(shù)據(jù)管理樹(shù)的不可逆函數(shù)計(jì)算得出的數(shù)值的數(shù)據(jù)管理結(jié)構(gòu)。這種數(shù)據(jù)管理結(jié)構(gòu)的一個(gè)例子就是包括散列數(shù)值的數(shù)據(jù)管理。該管理對(duì)象數(shù)據(jù)包括內(nèi)容,許可以及記帳數(shù)據(jù)。構(gòu)成數(shù)據(jù)管理樹(shù)的散列列表以及管理對(duì)象數(shù)據(jù)被存儲(chǔ)在如圖1中所示的數(shù)據(jù)管理設(shè)備101中的主存儲(chǔ)單元104中。需要指出的是,在下面對(duì)一個(gè)實(shí)施例的說(shuō)明中,以使用不可逆函數(shù)計(jì)算應(yīng)用散列數(shù)值的典型情況作為例子。但是,本發(fā)明也包括使用除了用于計(jì)算散列數(shù)值以外的其它不可逆函數(shù)的結(jié)構(gòu)。
圖3為數(shù)據(jù)管理樹(shù)中管理對(duì)象數(shù)據(jù)的段結(jié)構(gòu)框圖,其中該數(shù)據(jù)管理樹(shù)的級(jí)層數(shù)為m,管理數(shù)據(jù)段數(shù)為n。在如圖3中所示數(shù)據(jù)結(jié)構(gòu)的最低級(jí)的級(jí)層上,也就是級(jí)層L(=1)上,設(shè)置管理對(duì)象數(shù)據(jù)段,例如內(nèi)容,許可以及記帳數(shù)據(jù)。管理對(duì)象數(shù)據(jù)D(x)為上面所述的管理對(duì)象數(shù)據(jù),其中x表示管理對(duì)象數(shù)據(jù)的指數(shù)。該指數(shù)x在下文中就是指數(shù)據(jù)指數(shù)。如果管理對(duì)象數(shù)據(jù)的段數(shù)為n,則數(shù)據(jù)指數(shù)的數(shù)值范圍就是0至(n-1)。
級(jí)層L(=0)上的管理對(duì)象數(shù)據(jù)D(x)就是各種管理對(duì)象數(shù)據(jù),例如內(nèi)容,許可以及記帳信息的實(shí)質(zhì)內(nèi)容。例如,由參考數(shù)字304表示的管理對(duì)象數(shù)據(jù)D(0)就是被指定數(shù)據(jù)指數(shù)0的管理對(duì)象數(shù)據(jù)的實(shí)質(zhì)內(nèi)容。
在數(shù)據(jù)管理樹(shù)中,各個(gè)除了L=0的較高級(jí)層上,也就是級(jí)層L(>0)上的數(shù)據(jù)HL(L,j)就是散列列表。數(shù)據(jù)管理樹(shù)中的HL(L,j)的符號(hào)L表示提供了散列列表HL(L,j)的級(jí)層的層號(hào)。層號(hào)L的數(shù)值范圍是0至(m-1)。另一方面,HL(L,j)的符號(hào)j表示指定給在級(jí)層L上提供的散列列表HL(L,j)的指數(shù)。例如,圖3中用參考數(shù)字303表示的散列列表HL(1,0)就是一個(gè)位于級(jí)層L(=1)并且具有指定指數(shù)j為0的散列列表。
指定給一個(gè)級(jí)層上特殊散列列表的指數(shù)就是一個(gè)標(biāo)識(shí)號(hào),用于將該特殊散列列表與相同級(jí)層上的其它散列列表區(qū)別開(kāi)來(lái)。例如,如圖3中所示,指數(shù)0就被指定給每個(gè)級(jí)層最左端的散列列表,而指數(shù){2(m-1)-1}被指定給層號(hào)為m的級(jí)層最左端的散列列表。也就是說(shuō),被指定給層號(hào)為m的級(jí)層上的散列列表的指數(shù)的數(shù)值范圍是0至{2(m-1)-1}。需要注意的是,如上所述,指定給一個(gè)散列列表的指數(shù)用參考數(shù)字j來(lái)表示。換句話說(shuō),被指定給層號(hào)為m的級(jí)層上的散列列表的指數(shù)j就是一個(gè)其數(shù)值范圍為0至{2(m-1)-1}的標(biāo)識(shí)號(hào)。
散列列表HL(L,j)中存儲(chǔ)了根據(jù)提供在散列列表HL(H,j)的直接下一級(jí)層上的數(shù)據(jù)生成的散列數(shù)值。如圖3中所示的數(shù)據(jù)管理樹(shù)是一個(gè)二叉數(shù)據(jù)管理樹(shù)。二叉數(shù)據(jù)管理樹(shù)中每個(gè)節(jié)點(diǎn)都有兩個(gè)直接從屬節(jié)點(diǎn)或者直接從屬葉子。需要注意的是,葉子就是最低級(jí)層L(=0)上的節(jié)點(diǎn)。在數(shù)據(jù)管理樹(shù)中,除了葉子以外的元素都是指節(jié)點(diǎn)。
由于圖3中所示的數(shù)據(jù)管理樹(shù)是一個(gè)二叉數(shù)據(jù)管理樹(shù),因此每個(gè)散列列表HL(H,j)都包括兩個(gè)散列數(shù)值,它們分別對(duì)應(yīng)于直接從屬于該散列列表HL(H,j)的兩個(gè)節(jié)點(diǎn)或者兩個(gè)葉子。
包含在散列列表HL(H,j)中的散列數(shù)值HL(H,j).H(k)是根據(jù)直接從屬于該散列列表HL(H,j)的數(shù)據(jù)生成的。符號(hào)k表示被指定給包含在散列列表HL(H,j)中的散列數(shù)值HL(H,j).H(k)的指數(shù)。在如上所述的二叉數(shù)據(jù)管理樹(shù)中,每個(gè)散列列表HL(H,j)都包括兩個(gè)分別被指定給指數(shù)0和1的散列數(shù)值H(k)。
在圖3中所示的數(shù)據(jù)管理樹(shù)中,級(jí)層L(=1)的左端上的散列列表HL(1,0)作為散列列表303包括兩個(gè)散列數(shù)值HL(1,0).H(0)和HL(1,0).H(1),它們分別對(duì)應(yīng)于直接從屬于該散列列表HL(1,0)的葉子上的兩個(gè)段數(shù)據(jù)D(0)和D(1)。具體的說(shuō),包含在散列列表HL(1,0)中的散列數(shù)值HL(1,0).H(0)對(duì)應(yīng)于直接從屬數(shù)據(jù)D(0),并且包含在散列列表HL(1,0)中的散列數(shù)值HL(1,0).H(1)對(duì)應(yīng)于直接從屬數(shù)據(jù)D(1)。
仍需要注意的是,用于計(jì)算散列數(shù)值的算法是一個(gè)預(yù)先設(shè)置的算法。一個(gè)這樣的例子就是SHA-1算法。
另外,還可以使用其中的每個(gè)節(jié)點(diǎn)都包括3個(gè)或更多的直接從屬節(jié)點(diǎn)或直接從屬葉子的數(shù)據(jù)管理樹(shù)。這種樹(shù)的一個(gè)例子就是三叉數(shù)據(jù)管理樹(shù),其中每個(gè)節(jié)點(diǎn)都包括3個(gè)直接從屬節(jié)點(diǎn)或直接從屬葉子。
被指定給散列數(shù)值的指數(shù)k也可以指不可逆函數(shù)指數(shù),用作不可逆函數(shù)的計(jì)算值標(biāo)識(shí)。散列數(shù)值指數(shù)k的數(shù)值范圍是由叉數(shù)確定的。例如,在二叉數(shù)據(jù)管理樹(shù)的情況下,散列數(shù)值指數(shù)k的數(shù)值為0或1。另一方面,在三叉數(shù)據(jù)管理樹(shù)的情況下,散列數(shù)值指數(shù)k的數(shù)值為0,1或2。
仍需要注意的是,并不是每個(gè)節(jié)點(diǎn)都具有直接從屬節(jié)點(diǎn)或葉子。這樣,如果包含在散列列表中的散列數(shù)值不具有相當(dāng)于散列數(shù)值的直接從屬數(shù)據(jù),則用于計(jì)算散列列表中散列數(shù)值的過(guò)程的配置可以被任意確定。如果包含在散列列表中的散列數(shù)值不具有相當(dāng)于散列數(shù)值的直接從屬數(shù)據(jù),則可以假設(shè)對(duì)應(yīng)于長(zhǎng)度為0的數(shù)據(jù)空的散列數(shù)值(Hash null)被用作散列數(shù)值。
包括在級(jí)層樹(shù)中的散列列表被分成如下兩種類(lèi)型類(lèi)型1級(jí)層L(=1)上的每個(gè)散列列表都包括對(duì)應(yīng)于直接從屬數(shù)據(jù)的散列數(shù)值。
類(lèi)型2級(jí)層L(>1)上的每個(gè)散列列表都包括對(duì)應(yīng)于直接從屬散列列表的散列數(shù)值。
如圖3所示,數(shù)據(jù)管理樹(shù)是一個(gè)具有級(jí)層結(jié)構(gòu)的樹(shù),其中最低級(jí)層上的每個(gè)葉子都是管理對(duì)象數(shù)據(jù),并且其它較高級(jí)層上的每個(gè)散列列表都包括根據(jù)直接從屬數(shù)據(jù)生成的散列數(shù)值。
如上所述,需要注意的是,包括在每個(gè)散列列表中的散列數(shù)值的數(shù)量是任意的。圖3中所示的樹(shù)結(jié)構(gòu)為二叉管理樹(shù),其中每個(gè)散列列表都包括兩個(gè)散列數(shù)值。
頂端散列數(shù)值301是根據(jù)包含在頂端散列列表302,也就是圖3中所示的散列列表HL(m-1,0)中的多個(gè)散列數(shù)值HL(m-1,0)H(0)以及HL(m-1,0).H(1)生成的。
構(gòu)成了數(shù)據(jù)管理樹(shù)的散列列表以及管理對(duì)象數(shù)據(jù)被存儲(chǔ)在如圖1所示的數(shù)據(jù)管理設(shè)備101中采用的主存儲(chǔ)單元104中。另外,在如圖2中所示的安全芯片105中采用的安全存儲(chǔ)器203被用于保持至少如圖3中所示的數(shù)據(jù)管理樹(shù)中的頂端散列數(shù)值301,作為管理數(shù)據(jù)標(biāo)識(shí)值。
由于安全芯片105中采用的安全存儲(chǔ)器203的存儲(chǔ)容量比較小,因此可以存儲(chǔ)在安全存儲(chǔ)器203中的數(shù)據(jù)量受到限制。但是,在本發(fā)明的結(jié)構(gòu)中,安全存儲(chǔ)器203的存儲(chǔ)容量足夠大,足以安全的保持至少上述頂端散列數(shù)值301。這樣,就可以驗(yàn)證每個(gè)葉子上數(shù)據(jù)的有效性。
下面的描述將會(huì)說(shuō)明由數(shù)據(jù)管理設(shè)備101進(jìn)行的數(shù)據(jù)驗(yàn)證處理過(guò)程,其中在該數(shù)據(jù)管理設(shè)備101中存儲(chǔ)了包含如圖3中所示的管理對(duì)象數(shù)據(jù)和散列列表的數(shù)據(jù)管理樹(shù)。更具體的,下面的描述將會(huì)說(shuō)明在一段管理對(duì)象數(shù)據(jù)上進(jìn)行的數(shù)據(jù)驗(yàn)證處理過(guò)程,其中該管理對(duì)象數(shù)據(jù)被表示成圖3的數(shù)據(jù)管理樹(shù)中的葉子。
更具體的,下面的描述將會(huì)說(shuō)明一個(gè)數(shù)據(jù)驗(yàn)證過(guò)程,以驗(yàn)證D(dataID)是正確的并且處于最近狀態(tài),其中符號(hào)dataID表示數(shù)據(jù)指數(shù)x而符號(hào)D(dataID)表示由數(shù)據(jù)指數(shù)x(=dataID)標(biāo)識(shí)的管理對(duì)象數(shù)據(jù)。
有兩種方法可以被用作驗(yàn)證技術(shù)。一種方法就是數(shù)據(jù)驗(yàn)證過(guò)程從最高層(L=m-1)的級(jí)層L開(kāi)始并向著從屬的方向進(jìn)行。另一種方法就是數(shù)據(jù)驗(yàn)證過(guò)程從最低級(jí)(L=0)的級(jí)層L開(kāi)始并向著較高級(jí)層的方向進(jìn)行。圖4說(shuō)明了從最高層的級(jí)層L開(kāi)始并向著從屬的方向進(jìn)行數(shù)據(jù)驗(yàn)證過(guò)程的流程圖。另一方面,圖6說(shuō)明了從最低級(jí)的級(jí)層L開(kāi)始并向著較高級(jí)層的方向進(jìn)行數(shù)據(jù)驗(yàn)證過(guò)程的流程圖。
該數(shù)據(jù)驗(yàn)證過(guò)程可以在圖1中數(shù)據(jù)管理設(shè)備101中所采用的CPU102的控制下進(jìn)行,或者在圖2中安全芯片105中所采用的CPU201的控制下進(jìn)行。如果該數(shù)據(jù)驗(yàn)證過(guò)程是在數(shù)據(jù)管理設(shè)備101中所采用的CPU102的控制下進(jìn)行,則CPU102就會(huì)獲取事先存儲(chǔ)在安全芯片105采用的安全存儲(chǔ)器203中的管理數(shù)據(jù)驗(yàn)證值,并接著根據(jù)獲得的管理數(shù)據(jù)驗(yàn)證值改變數(shù)據(jù)驗(yàn)證過(guò)程。
需要注意的是,該管理數(shù)據(jù)驗(yàn)證值包括圖3所示的數(shù)據(jù)管理樹(shù)中的頂端散列數(shù)值。另一方面,如果該數(shù)據(jù)驗(yàn)證過(guò)程是在安全芯片105中所采用的CPU201的控制下進(jìn)行,則CPU201就會(huì)適當(dāng)?shù)膹臄?shù)據(jù)管理設(shè)備101采用的主存儲(chǔ)單元104中獲取所需信息。
(1)從上到下的驗(yàn)證過(guò)程首先,參照?qǐng)D4中所示的流程圖對(duì)數(shù)據(jù)驗(yàn)證過(guò)程進(jìn)行說(shuō)明,該過(guò)程從數(shù)據(jù)管理樹(shù)最高層的級(jí)層開(kāi)始并向著從屬的方向進(jìn)行。該流程圖從步驟S101開(kāi)始,在該步驟中,對(duì)表示要被驗(yàn)證的數(shù)據(jù)的數(shù)據(jù)管理樹(shù)中級(jí)層的層數(shù)的變量L進(jìn)行初始化。也就是說(shuō),設(shè)置級(jí)層標(biāo)識(shí)L的初始值。
需要注意的是,要被驗(yàn)證的最后的數(shù)據(jù)就是最低層的級(jí)層上的正常數(shù)據(jù)。也就是說(shuō),最后的數(shù)據(jù)就是真實(shí)數(shù)據(jù)例如內(nèi)容,許可或者記賬數(shù)據(jù)。根據(jù)該從數(shù)據(jù)管理樹(shù)最高層的級(jí)層開(kāi)始并向著從屬的方向進(jìn)行的方法,順序的改變被驗(yàn)證的數(shù)據(jù),從頂端開(kāi)始,依次進(jìn)行至較低一層的級(jí)層上的數(shù)據(jù)段,直至到達(dá)最低層級(jí)層上的最后數(shù)據(jù),至此數(shù)據(jù)驗(yàn)證過(guò)程結(jié)束。
在步驟S101,級(jí)層標(biāo)識(shí)L被設(shè)置為初始值(m-1)。也就是說(shuō),該級(jí)層標(biāo)識(shí)L被設(shè)置為表示最高層的級(jí)層(m-1)的初始值,其中包括直接從屬于圖3中數(shù)據(jù)管理樹(shù)頂端散列數(shù)值301的散列列表HL(m-1)。
接著,在步驟S102,初始化核對(duì)值[P_Hash]。該核對(duì)值[P_Hash]被定義為與被驗(yàn)證數(shù)據(jù)進(jìn)行核對(duì)的數(shù)值。在從最高層的級(jí)層開(kāi)始并向著從屬的方向進(jìn)行數(shù)據(jù)驗(yàn)證的方法中,在步驟S102,核對(duì)值[P_Hash]被初始化為圖3中所示的數(shù)據(jù)管理樹(shù)的頂端散列數(shù)值301。
接著,在步驟S103,從主存儲(chǔ)單元104中獲取驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]并且將驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]的散列數(shù)值指數(shù)k作為定義驗(yàn)證路徑的信息,其中該路徑從數(shù)據(jù)管理樹(shù)最高層的級(jí)層開(kāi)始,并向著從屬的方向進(jìn)行。該驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]被用作基于核對(duì)值[P_Hash]的驗(yàn)證對(duì)象。第一驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]為圖3中所示的數(shù)據(jù)管理樹(shù)的散列列表302。將散列列表302的散列數(shù)值同被設(shè)置為頂端散列數(shù)值301的第一核對(duì)值[P_Hash]進(jìn)行比較。
一般來(lái)說(shuō),驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]為在級(jí)層L(L>0)上提供的散列列表(L,j),其中j表示指定給在級(jí)層L上提供的散列列表(L,j)的散列列表指數(shù)。在級(jí)層L為最低層的情況下,也就是,L=0時(shí),另一方面,驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]就是管理對(duì)象數(shù)據(jù)D(dataID)。
散列數(shù)值指數(shù)k為定義驗(yàn)證路徑的數(shù)值,其中該路徑從數(shù)據(jù)管理樹(shù)最高層的級(jí)層開(kāi)始,并向著從屬的方向進(jìn)行。例如,圖5的數(shù)據(jù)管理樹(shù)中最后驗(yàn)證對(duì)象數(shù)據(jù)327的驗(yàn)證路徑就是從頂端散列數(shù)值321開(kāi)始,經(jīng)過(guò)散列列表322,323,324,325以及326,至最后驗(yàn)證對(duì)象數(shù)據(jù)327結(jié)束。也就是說(shuō),散列數(shù)值指數(shù)k將連接頂端散列數(shù)值321和最后驗(yàn)證對(duì)象數(shù)據(jù)327的驗(yàn)證路徑定義為一個(gè)路徑,該路徑中包括被用作進(jìn)行數(shù)據(jù)驗(yàn)證處理的基礎(chǔ)的散列數(shù)值。
用作驗(yàn)證路徑定義信息的散列數(shù)值指數(shù)被用作定義從頂端散列數(shù)值321開(kāi)始至最后驗(yàn)證對(duì)象數(shù)據(jù)327結(jié)束的路徑。圖5為說(shuō)明典型散列數(shù)值指數(shù)k的框圖,其中該指數(shù)k具有左側(cè)的值0以及右側(cè)的值。由于圖5的數(shù)據(jù)管理樹(shù)中的數(shù)據(jù)327為最后被驗(yàn)證的數(shù)據(jù),因此用一串散列數(shù)值指數(shù)k0,0,1,1和1來(lái)定義從頂端散列數(shù)值321開(kāi)始至數(shù)據(jù)327結(jié)束的路徑。在上述的二叉數(shù)據(jù)管理樹(shù)中,散列數(shù)值指數(shù)k為不同類(lèi)型的數(shù)值,即0和1中的一個(gè)。兩種不同數(shù)值中的一個(gè)選擇了兩個(gè)路徑中的一個(gè)。在三叉數(shù)據(jù)管理樹(shù)的情況下,散列數(shù)值指數(shù)k為三種不同類(lèi)型的數(shù)值,即0,1和2中的一個(gè),可以在每個(gè)處理過(guò)程中選擇它們中的任何一個(gè),以確定一個(gè)驗(yàn)證路徑。需要注意的是,確定一個(gè)驗(yàn)證路徑的過(guò)程將在后面進(jìn)行詳細(xì)的描述。
如圖5所示,根據(jù)樹(shù)結(jié)構(gòu)和最后被驗(yàn)證的數(shù)據(jù)來(lái)確定路徑。如上所述,散列數(shù)值指數(shù)k被用作驗(yàn)證路徑定義信息??梢杂蓴?shù)據(jù)管理設(shè)備101中的CPU102或者安全芯片105中的CPU201來(lái)定義驗(yàn)證路徑。
在步驟S104,通過(guò)計(jì)算發(fā)現(xiàn)從主存儲(chǔ)單元104中獲得的驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]的散列數(shù)值[V_Hash]。需要注意的是,如上所述,事先確定用于發(fā)現(xiàn)散列數(shù)值的算法。作為它的一個(gè)例子,可以采用SHA-1算法。
如上所述,主存儲(chǔ)單元104中獲得的第一驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]就是散列列表302,其中包括兩個(gè)如圖3所示的散列數(shù)值HL(m-1,0).H(0)和HL(m-1,0).H(1)。在步驟S104,根據(jù)兩個(gè)散列數(shù)值HL(m-1,0).H(0)和HL(m-1,0).H(1)找到驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]的散列數(shù)值[V_Hash]。更具體的,散列數(shù)值算法例如SHA-1被應(yīng)用于將兩個(gè)散列數(shù)值HL(m-1,0).H(0)和HL(m-1,0).H(1)連接在一起的數(shù)據(jù),以發(fā)現(xiàn)驗(yàn)證對(duì)象散列數(shù)值[V_Hash]。
接著,在步驟S105,作為驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]的散列數(shù)值而被發(fā)現(xiàn)的驗(yàn)證對(duì)象散列數(shù)值[V_Hash]同核對(duì)散列數(shù)值[P_Hash]進(jìn)行核對(duì),以確定前者是否與后者匹配。
如果前者與后者不匹配,也就是如果P_Hash≠V_Hash,則驗(yàn)證對(duì)象散列數(shù)值[V_Hash]被確定為是偽造數(shù)據(jù)或者是其中包括根據(jù)偽造數(shù)據(jù)而發(fā)現(xiàn)的散列數(shù)值的散列列表。在這種情況下,處理流程繼續(xù)進(jìn)行至步驟S109,在步驟S109,數(shù)據(jù)驗(yàn)證過(guò)程以失敗結(jié)束。
另一方面,如果在步驟S105中進(jìn)行的核對(duì)顯示前者與后者匹配,也就是如果P_Hash=V_Hash,則驗(yàn)證對(duì)象散列數(shù)值[V_Hash]被確定為是真實(shí)數(shù)據(jù)或者是其中不包括根據(jù)偽造數(shù)據(jù)而發(fā)現(xiàn)的散列數(shù)值的散列列表。
如果如上所述驗(yàn)證了驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]的有效性,則處理流程繼續(xù)進(jìn)行至步驟S106,以通過(guò)找出是否級(jí)層標(biāo)識(shí)L為0來(lái)確定數(shù)據(jù)驗(yàn)證過(guò)程是否已經(jīng)完成,其中該標(biāo)識(shí)L標(biāo)識(shí)了作為含有驗(yàn)證對(duì)象數(shù)據(jù)的級(jí)層的包括在數(shù)據(jù)管理樹(shù)中的級(jí)層,也就是,是否被用作驗(yàn)證對(duì)象的數(shù)據(jù)對(duì)應(yīng)于數(shù)據(jù)管理樹(shù)中最低層的級(jí)層上的葉子。
在該驗(yàn)證方法中,一系列的驗(yàn)證過(guò)程沿著驗(yàn)證路徑進(jìn)行,該路徑從數(shù)據(jù)管理樹(shù)最高層的級(jí)層開(kāi)始并向著從屬的方向。當(dāng)數(shù)據(jù)驗(yàn)證過(guò)程達(dá)到級(jí)層L=0時(shí),就意味著在更低的層上沒(méi)有驗(yàn)證對(duì)象數(shù)據(jù)了。這樣,表示驗(yàn)證對(duì)象散列數(shù)值與核對(duì)散列數(shù)值相匹配的步驟S105的核對(duì)結(jié)果以及在步驟S106獲得的表示級(jí)層標(biāo)識(shí)L=0,也就是數(shù)據(jù)管理樹(shù)最低層的確定結(jié)果就意味著根據(jù)驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]生成的驗(yàn)證對(duì)象散列數(shù)值[V_Hash]與核對(duì)散列數(shù)值[P_Hash]相匹配,其中該驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]為L(zhǎng)=0的管理對(duì)象數(shù)據(jù)或者數(shù)據(jù)管理樹(shù)最下級(jí)層上的管理對(duì)象數(shù)據(jù)。對(duì)于L=0的與其核對(duì)散列數(shù)值相匹配的驗(yàn)證對(duì)象散列數(shù)值就意味著沿著從頂端散列數(shù)值321開(kāi)始至最后驗(yàn)證對(duì)象數(shù)據(jù)327結(jié)束的驗(yàn)證路徑進(jìn)行的數(shù)據(jù)驗(yàn)證過(guò)程給出了都表示成功核對(duì)的結(jié)果。也就是說(shuō),成功的進(jìn)行了數(shù)據(jù)驗(yàn)證過(guò)程。在這種情況下,處理流程繼續(xù)進(jìn)行至步驟S110,在步驟S110,數(shù)據(jù)驗(yàn)證過(guò)程正常結(jié)束。也就是說(shuō),數(shù)據(jù)驗(yàn)證過(guò)程以沒(méi)有數(shù)據(jù)偽造的確定結(jié)果結(jié)束。
另一方面,在步驟S106獲得的表示L不為0的確定結(jié)果就意味著在更低層的級(jí)層上仍舊還有節(jié)點(diǎn)或葉子需要驗(yàn)證。在這種情況下,處理流程繼續(xù)進(jìn)行至步驟S107,在步驟S107對(duì)核對(duì)散列數(shù)值[P_Hash]進(jìn)行更新。也就是說(shuō),用數(shù)據(jù)管理樹(shù)中當(dāng)前核對(duì)散列數(shù)值[P_Hash]下一層的級(jí)層上的散列數(shù)值代替當(dāng)前核對(duì)散列數(shù)值[P_Hash]。
用于替換當(dāng)前核對(duì)散列數(shù)值[P_Hash]的新的核對(duì)散列數(shù)值[P_Hash]被包括在其中還包括多個(gè)散列數(shù)值的當(dāng)前驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]中。這樣,由指數(shù)k,即V_Data.H(k)表示的散列數(shù)值被選作為新的核對(duì)散列數(shù)值[P_Hash]。
在貫穿圖5中所示的數(shù)據(jù)管理樹(shù)的典型驗(yàn)證過(guò)程中,例如,被用作當(dāng)前核對(duì)散列數(shù)值[P_Hash]的頂端散列數(shù)值321與根據(jù)被用作當(dāng)前驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]的散列列表HL322生成的散列數(shù)值進(jìn)行核對(duì),并且,如果它們彼此匹配,則根據(jù)被用作驗(yàn)證路徑定義信息的指數(shù)k的值選擇散列列表HL322的兩個(gè)散列數(shù)值H(0)和H(1)中的一個(gè)作為新的核對(duì)散列數(shù)值[P_Hash]。在這種情況下,由于k=0,因此散列數(shù)值H(0)被選作新的核對(duì)散列數(shù)值[P_Hash],以替換當(dāng)前核對(duì)散列數(shù)值[P_Hash]。
接著,在下一個(gè)步驟S108,用于標(biāo)識(shí)含有被驗(yàn)證數(shù)據(jù)的數(shù)據(jù)管理樹(shù)中的級(jí)層的標(biāo)識(shí)符L減1。更具體的,級(jí)層標(biāo)識(shí)符L被更新為當(dāng)前級(jí)層下一層的新級(jí)層,使得能夠?qū)ο乱粋€(gè)新的低一層的級(jí)層進(jìn)行數(shù)據(jù)驗(yàn)證處理。
接著,處理流程返回至步驟S103,以重復(fù)進(jìn)行從該步驟開(kāi)始如上所述的處理。重復(fù)進(jìn)行如上所述的處理,直到數(shù)據(jù)驗(yàn)證過(guò)程以失敗結(jié)束或者數(shù)據(jù)驗(yàn)證成功完成為止。通過(guò)這種方式,通過(guò)重復(fù)貫穿整個(gè)從數(shù)據(jù)管理樹(shù)的頂層級(jí)層到底層級(jí)層的驗(yàn)證路徑的核對(duì)來(lái)進(jìn)行數(shù)據(jù)驗(yàn)證處理。最后,當(dāng)根據(jù)驗(yàn)證對(duì)象數(shù)據(jù)[V_Data],也就是底層上的管理對(duì)象數(shù)據(jù)即級(jí)層L=0上的管理對(duì)象數(shù)據(jù),生成的驗(yàn)證對(duì)象散列數(shù)值[V_Hash]與底層上面的級(jí)層的核對(duì)散列數(shù)值[P_Hash]匹配時(shí),則沿著驗(yàn)證路徑所有相鄰的級(jí)層之間的數(shù)據(jù)核對(duì)都被認(rèn)為是已經(jīng)導(dǎo)致了表示沒(méi)有偽造數(shù)據(jù)的核對(duì)匹配結(jié)果。在這種情況下,數(shù)據(jù)驗(yàn)證過(guò)程正常完成。
另一方面,如果驗(yàn)證路徑上的任何數(shù)據(jù)核對(duì)結(jié)果表示核對(duì)的散列數(shù)值并不是彼此之間相互匹配,則處理流程繼續(xù)進(jìn)行至步驟S109,在步驟S109,數(shù)據(jù)驗(yàn)證過(guò)程以表示數(shù)據(jù)偽造事實(shí)的失敗而結(jié)束。
(2)從下到上的驗(yàn)證過(guò)程接下來(lái),參照?qǐng)D6中所示的流程圖對(duì)數(shù)據(jù)驗(yàn)證過(guò)程進(jìn)行說(shuō)明,該過(guò)程從數(shù)據(jù)管理樹(shù)最低層的級(jí)層開(kāi)始并向著更高層的級(jí)層方向進(jìn)行。該流程圖從步驟S201開(kāi)始,在該步驟中,對(duì)表示要被驗(yàn)證的數(shù)據(jù)的數(shù)據(jù)管理樹(shù)中級(jí)層的層數(shù)的變量L進(jìn)行初始化。也就是說(shuō),設(shè)置級(jí)層標(biāo)識(shí)L的初始值。
在采用該方法的情況下,變量L被設(shè)置為初始值0,表示數(shù)據(jù)管理樹(shù)中最低層的級(jí)層。
接著,在步驟S202,從主存儲(chǔ)單元104中獲取驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]。該驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]就是將要被用作根據(jù)核對(duì)散列數(shù)值[P_Hash]的驗(yàn)證對(duì)象的數(shù)據(jù)。在該例中,圖5中所示的數(shù)據(jù)管理樹(shù)的最低層的級(jí)層上的數(shù)據(jù)327被用作第一驗(yàn)證對(duì)象數(shù)據(jù)。對(duì)根據(jù)數(shù)據(jù)327生成的散列數(shù)值與從數(shù)據(jù)327上一層的級(jí)層上的散列列表326中選出的一個(gè)散列數(shù)值進(jìn)行核對(duì)。在這種情況下,散列列表326中的散列數(shù)值H(1)被選作核對(duì)散列數(shù)值[P_Hash]。
一般說(shuō)來(lái),驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]就是在級(jí)層L>0的級(jí)層上提供的散列列表(L,j),其中符號(hào)j表示指定給在級(jí)層L上提供的散列列表(L,j)的散列列表指數(shù)。另一方面,在級(jí)層L為最低層的情況下,也就是在L=0的情況下,驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]就是管理對(duì)象數(shù)據(jù)D[dataID]。在該例中管理對(duì)象數(shù)據(jù)D(dataID)就是被用作驗(yàn)證對(duì)象的管理對(duì)象數(shù)據(jù),并被用作第一驗(yàn)證對(duì)象數(shù)據(jù)。
接著,在下面的步驟S203中,通過(guò)計(jì)算發(fā)現(xiàn)從主存儲(chǔ)單元104中獲得的驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]的散列數(shù)值[V_Hash]。需要注意的是,如上所述,事先確定用于發(fā)現(xiàn)散列數(shù)值的算法。作為它的一個(gè)例子,可以采用SHA-1算法。
接著,在下面的步驟S204中,從主存儲(chǔ)單元104中讀出包括核對(duì)散列數(shù)值的散列列表HL,被用作核對(duì)數(shù)據(jù)[P_Data],并且找出核對(duì)數(shù)據(jù)[P_Data]的散列數(shù)值指數(shù)k,被用作定義驗(yàn)證路徑的信息。
該核對(duì)數(shù)據(jù)[P_Data]就是在其上存在驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]的級(jí)層的上一層的級(jí)層上提供的散列數(shù)值列表,并且直接與驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]相連。也就是說(shuō),在貫穿圖5所示的數(shù)據(jù)管理樹(shù)進(jìn)行的典型驗(yàn)證過(guò)程中,例如,第一驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]就是圖5中所示的相同樹(shù)的數(shù)據(jù)327。在這種情況下,核對(duì)數(shù)據(jù)[P_Data]就是其中包括多個(gè)散列數(shù)值的散列數(shù)值列表326。在如圖5所示的相同的二叉數(shù)據(jù)管理樹(shù)的情況下,每個(gè)散列列表都包括兩個(gè)分別用散列數(shù)值指數(shù)k0和1來(lái)表示的散列數(shù)值H(0)和H(1)。選擇散列數(shù)值H(0)和H(1)中的一個(gè)作為核對(duì)散列數(shù)值[P_Hash]。這就是為什么要獲得散列數(shù)值指數(shù)k來(lái)作為驗(yàn)證路徑定義信息,從而選擇散列數(shù)值H(0)和H(1)中的一個(gè)。
用作定義驗(yàn)證路徑信息的散列數(shù)值指數(shù)k也是定義驗(yàn)證路徑的數(shù)值,該路徑從數(shù)據(jù)管理樹(shù)的任一層的級(jí)層開(kāi)始,到該級(jí)層的上一層的級(jí)層為止。在貫穿圖5所示的數(shù)據(jù)管理樹(shù)進(jìn)行的典型驗(yàn)證過(guò)程中,例如,散列數(shù)值指數(shù)k的數(shù)值就定義了一個(gè)驗(yàn)證路徑,該路徑將驗(yàn)證對(duì)象數(shù)據(jù)327,經(jīng)散列列表326,325,324,323以及322,與頂端散列數(shù)值321連在一起。根據(jù)在該驗(yàn)證路徑中存在的散列列表,該數(shù)據(jù)驗(yàn)證過(guò)程是按照從下至上的方向進(jìn)行的。
如上所述,被用作定義驗(yàn)證路徑信息的散列數(shù)值指數(shù)k的數(shù)值也定義了一個(gè)將驗(yàn)證對(duì)象數(shù)據(jù)D327同頂端散列數(shù)值321連接在一起的路徑。結(jié)果,由于散列數(shù)值指數(shù)k的數(shù)值被設(shè)置為從下至上的序列1,1,1,0和0,因此該數(shù)值也定義了一個(gè)與先參照?qǐng)D4的流程圖說(shuō)明的驗(yàn)證路徑相同的驗(yàn)證路徑。
接著,在下一個(gè)步驟S205,根據(jù)被用作定義驗(yàn)證路徑信息的散列數(shù)值指數(shù)k,依照核對(duì)數(shù)據(jù)[P_Data]的散列數(shù)值指數(shù)k,從包括在位于驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]上方的核對(duì)數(shù)據(jù)[P_Data]中的散列數(shù)值中選擇一個(gè)核對(duì)散列數(shù)值[P_Hash]。
如上所述,根據(jù)樹(shù)結(jié)構(gòu)和提供在最低層的級(jí)層上的最后驗(yàn)證對(duì)象數(shù)據(jù)來(lái)確定路徑,并且用作定義驗(yàn)證路徑定義信息的散列數(shù)值指數(shù)k被設(shè)置為表示驗(yàn)證路徑的數(shù)值??梢杂蓴?shù)據(jù)管理設(shè)備101中的CPU102或者安全芯片105中的CPU201來(lái)設(shè)置驗(yàn)證路徑。
接著,在下一步驟S206,被發(fā)現(xiàn)作為驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]的散列數(shù)值的驗(yàn)證對(duì)象散列數(shù)值[V_Hash]同核對(duì)散列數(shù)值[P_Hash]進(jìn)行比對(duì),以確定前者是否與后者匹配。
如果前者與后者不匹配,也就是如果P_Hash≠V_Hash,則驗(yàn)證對(duì)象散列數(shù)值[V_Hash]被確定為是偽造數(shù)據(jù)或者是其中包括根據(jù)偽造數(shù)據(jù)而發(fā)現(xiàn)的散列數(shù)值的散列列表。在這種情況下,處理流程繼續(xù)進(jìn)行至步驟S210,在步驟S210,數(shù)據(jù)驗(yàn)證過(guò)程以失敗結(jié)束。
另一方面,如果在步驟S205中進(jìn)行的核對(duì)表明前者與后者匹配,也就是如果P_Hash=V_Hash,則驗(yàn)證對(duì)象散列數(shù)值[V_Hash]被確定為是真實(shí)數(shù)據(jù)或者是其中不包括根據(jù)偽造數(shù)據(jù)而發(fā)現(xiàn)的散列數(shù)值的散列列表。
如果如上所述驗(yàn)證驗(yàn)證了對(duì)象數(shù)據(jù)[V_Data]有效性,則處理流程繼續(xù)進(jìn)行至步驟S207,在步驟S207中,從包含在核對(duì)數(shù)據(jù)[P_Data]中的散列數(shù)值中計(jì)算出驗(yàn)證對(duì)象散列數(shù)值[V_Hash],并被用作下一個(gè)驗(yàn)證對(duì)象散列數(shù)值[V_Hash]。
具體的說(shuō),根據(jù)包括在核對(duì)數(shù)據(jù)[P_Data]中的散列數(shù)值H(0)和H(1)計(jì)算得出核對(duì)數(shù)據(jù)[P_Data]的驗(yàn)證對(duì)象散列數(shù)值[V_Hash]。典型的,將散列數(shù)值算法,例如SHA-1應(yīng)用于連接兩個(gè)散列數(shù)值的數(shù)據(jù),以找出驗(yàn)證對(duì)象散列數(shù)值[V_Hash]。
接著,在接下來(lái)的步驟S208,進(jìn)行確定數(shù)據(jù)驗(yàn)證過(guò)程級(jí)層的處理。該過(guò)程確定是否L等于(m-1)。具體的說(shuō),確定級(jí)層的過(guò)程就是確定這次與核對(duì)散列數(shù)值進(jìn)行比對(duì)的驗(yàn)證對(duì)象數(shù)據(jù)是否就是數(shù)據(jù)管理樹(shù)中頂端散列數(shù)值下一級(jí)層上的驗(yàn)證對(duì)象數(shù)據(jù)(或散列列表)的驗(yàn)證對(duì)象散列數(shù)值,也就是,這次與核對(duì)散列數(shù)值進(jìn)行比對(duì)的驗(yàn)證對(duì)象數(shù)據(jù)是否就是具有m級(jí)層的數(shù)據(jù)管理樹(shù)中最高級(jí)層m上頂端散列數(shù)值的下一級(jí)層(m-1)上的驗(yàn)證對(duì)象數(shù)據(jù)(或散列列表)的驗(yàn)證對(duì)象散列數(shù)值。
如果L=(m-1),則處理流程繼續(xù)進(jìn)行至步驟S211,在步驟S211中,頂端散列數(shù)值被用作核對(duì)散列數(shù)值[P_Hash]。接著,在下面的步驟S212,根據(jù)包含在驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]中的散列數(shù)值而發(fā)現(xiàn)作為散列數(shù)值的驗(yàn)證對(duì)象散列數(shù)值[V_Hash]與被用作核對(duì)散列數(shù)值[P_Hash]的頂端散列數(shù)值進(jìn)行核對(duì),以確定前者是否與后者匹配,其中的驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]就是在級(jí)層(m-1)上提供的散列列表。在該步驟中進(jìn)行的處理是整個(gè)從下至上的數(shù)據(jù)驗(yàn)證過(guò)程中的最后核對(duì)。表示前者與后者匹配的最后核對(duì)結(jié)果就意味著沿著驗(yàn)證路徑進(jìn)行的所有驗(yàn)證以表示散列數(shù)值匹配以正核對(duì)結(jié)果結(jié)束,其中該驗(yàn)證路徑從圖5中所示數(shù)據(jù)管理樹(shù)中的最低層的級(jí)層上的數(shù)據(jù)327開(kāi)始,至級(jí)層(m-1)上的最后驗(yàn)證對(duì)象散列列表322結(jié)束。這樣,數(shù)據(jù)驗(yàn)證過(guò)程就是成功的。在這種情況下,處理流程繼續(xù)進(jìn)行至步驟S213,在步驟S213中,驗(yàn)證正常結(jié)束。也就是說(shuō),通過(guò)確定沒(méi)有數(shù)據(jù)偽造來(lái)結(jié)束數(shù)據(jù)驗(yàn)證過(guò)程。
另一方面,如果在步驟S212進(jìn)行的核對(duì)結(jié)果表示前者與后者不匹配或者P_Hash≠V_Hash,則驗(yàn)證對(duì)象數(shù)值[V_Data]被確定為是偽造數(shù)據(jù)或者是其中包括根據(jù)偽造數(shù)據(jù)而發(fā)現(xiàn)的散列數(shù)值的散列列表。在這種情況下,處理流程繼續(xù)進(jìn)行至步驟S210,在步驟S210,數(shù)據(jù)驗(yàn)證過(guò)程以失敗結(jié)束。
另一方面,如果在步驟S208獲得的確定結(jié)果表示L不等于(m-1),則確定在更高層的級(jí)層上存在留待被驗(yàn)證的節(jié)點(diǎn)。在這種情況下,處理流程繼續(xù)進(jìn)行至步驟S209,在步驟S209中按照如下方式更新級(jí)層標(biāo)識(shí)LL=L+1。也就是說(shuō),通過(guò)在其本身上加1來(lái)更新級(jí)層標(biāo)識(shí)L。
接著,處理流程返回至步驟S204,以重復(fù)進(jìn)行從該步驟開(kāi)始如上所述的處理。重復(fù)進(jìn)行如上所述的處理,直到數(shù)據(jù)驗(yàn)證過(guò)程以失敗結(jié)束或者數(shù)據(jù)驗(yàn)證成功完成為止。通過(guò)這種方式,通過(guò)重復(fù)貫穿整個(gè)從數(shù)據(jù)管理樹(shù)的頂層級(jí)層到底層級(jí)層的驗(yàn)證路徑的核對(duì)來(lái)進(jìn)行數(shù)據(jù)驗(yàn)證處理。最后,如果在步驟S212進(jìn)行的核對(duì)結(jié)果表示根據(jù)被用作驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]的級(jí)層L(=m-1)上的數(shù)據(jù)找到的驗(yàn)證對(duì)象散列數(shù)值[V_Hash]與頂端散列數(shù)值相匹配,則沿著驗(yàn)證路徑所有相鄰的級(jí)層上的數(shù)據(jù)段之間的核對(duì)都被認(rèn)為是成功了,表示沒(méi)有偽造數(shù)據(jù)。在這種情況下,數(shù)據(jù)驗(yàn)證過(guò)程正常完成。在這種情況下,處理流程繼續(xù)進(jìn)行至步驟S213,在步驟S213中,數(shù)據(jù)驗(yàn)證正常結(jié)束。另一方面,如果驗(yàn)證路徑上的任何數(shù)據(jù)核對(duì)結(jié)果表示核對(duì)的散列數(shù)值并不是彼此之間相互匹配,則處理流程繼續(xù)進(jìn)行至步驟S210,在步驟S210,數(shù)據(jù)驗(yàn)證過(guò)程以表示數(shù)據(jù)偽造事實(shí)的失敗而結(jié)束。
接下來(lái),參照?qǐng)D7中的流程圖對(duì)包括增加,修改以及刪除管理對(duì)象數(shù)據(jù)的數(shù)據(jù)更新過(guò)程進(jìn)行說(shuō)明。
圖7示出了表示增加,修改以及刪除管理對(duì)象數(shù)據(jù)例如內(nèi)容,許可以及記帳數(shù)據(jù)的處理過(guò)程的流程圖。如果一個(gè)散列數(shù)值或散列列表的從屬中,既沒(méi)有散列列表也沒(méi)有管理對(duì)象數(shù)據(jù),則散列數(shù)值Hash(null)被用作散列數(shù)值。該散列數(shù)值Hash(null)是一個(gè)空的散列數(shù)值,其大小為0。另外,可以假設(shè)增加,修改或者刪除管理對(duì)象數(shù)據(jù)并不會(huì)改變包括數(shù)據(jù)管理樹(shù)的級(jí)層的層數(shù)。
在增加,修改或者刪除數(shù)據(jù)的過(guò)程中,當(dāng)前存在于數(shù)據(jù)管理樹(shù)中的某些數(shù)據(jù)被用作原始先更新數(shù)據(jù)[V_Data],其中存儲(chǔ)在主存儲(chǔ)單元104中的數(shù)據(jù)被用作原始后更新數(shù)據(jù)[U_Data],并在更新過(guò)程之后被記錄到數(shù)據(jù)管理樹(shù)中。特別的,在增加數(shù)據(jù)的過(guò)程中,該原始先更新數(shù)據(jù)[V_Data]以及原始后更新數(shù)據(jù)[U_Data]都是存儲(chǔ)在主存儲(chǔ)單元104中的管理對(duì)象數(shù)據(jù)或散列數(shù)值列表??墒?,由于原始先更新數(shù)據(jù)[V_Data]實(shí)際上并不存在,因此空數(shù)據(jù)被用作原始先更新數(shù)據(jù)[V_Data]。
特別的,在修改數(shù)據(jù)的情況下,原始先更新數(shù)據(jù)[V_Data]以及原始后更新數(shù)據(jù)[U_Data]都是存儲(chǔ)在主存儲(chǔ)單元104中的管理對(duì)象數(shù)據(jù)。
特別的,在刪除數(shù)據(jù)的過(guò)程中,原始先更新數(shù)據(jù)[V_Data]以及原始后更新數(shù)據(jù)[U_Data]都是存儲(chǔ)在主存儲(chǔ)單元104中的管理對(duì)象數(shù)據(jù)或散列數(shù)值列表??墒?,由于原始后更新數(shù)據(jù)[U_Data]實(shí)際上并不存在,因此空數(shù)據(jù)被用作原始后更新數(shù)據(jù)[U_Data]。
在增加、修改以及刪除數(shù)據(jù)的同時(shí),也進(jìn)行驗(yàn)證數(shù)據(jù)管理樹(shù)中散列列表有效性的處理。這是因?yàn)?,如果允許在數(shù)據(jù)更新的過(guò)程中可以不同時(shí)進(jìn)行數(shù)據(jù)驗(yàn)證過(guò)程,則在增加、修改以及刪除數(shù)據(jù)期間很有可能出現(xiàn)數(shù)據(jù)被偽造的情況。也就是說(shuō),為了防止出現(xiàn)黑客通過(guò)在樹(shù)中設(shè)置任意的數(shù)據(jù)來(lái)更新數(shù)據(jù)管理樹(shù)中的數(shù)據(jù)的情況,可以假設(shè)在增加、修改以及刪除數(shù)據(jù)的同時(shí)進(jìn)行驗(yàn)證數(shù)據(jù)管理樹(shù)中散列列表有效性的處理。
可以在數(shù)據(jù)更新的同時(shí)進(jìn)行驗(yàn)證數(shù)據(jù)管理樹(shù)中散列列表有效性的處理,該數(shù)據(jù)更新過(guò)程包括采用從上至下或從下至上的驗(yàn)證方法來(lái)增加、修改以及刪除數(shù)據(jù)的過(guò)程,其中該從上至下的驗(yàn)證方法從數(shù)據(jù)管理樹(shù)得最高層的級(jí)層L(L=m-1)開(kāi)始,正如在這之前參照?qǐng)D4中流程圖說(shuō)明的數(shù)據(jù)驗(yàn)證過(guò)程,而該從下至上的驗(yàn)證方法從數(shù)據(jù)管理樹(shù)得最底層的級(jí)層L(L=0)開(kāi)始,正如在這之前參照?qǐng)D6中流程圖說(shuō)明的數(shù)據(jù)驗(yàn)證過(guò)程。但是,通過(guò)在數(shù)據(jù)更新的同時(shí)采用從下至上的方法來(lái)驗(yàn)證數(shù)據(jù),可以非常高效的使用存儲(chǔ)器并且縮短了處理時(shí)間。圖7示出了一個(gè)流程圖,其中表示采用從下至上驗(yàn)證方法的數(shù)據(jù)驗(yàn)證過(guò)程以及在進(jìn)行數(shù)據(jù)驗(yàn)證的同時(shí)更新數(shù)據(jù)的過(guò)程。
可以在數(shù)據(jù)管理設(shè)備101中采用的CPU102或者安全芯片105中的CPU201的控制下進(jìn)行包括增加、修改以及刪除數(shù)據(jù)的數(shù)據(jù)更新處理。如果在數(shù)據(jù)管理設(shè)備101中采用的CPU102的控制下進(jìn)行數(shù)據(jù)更新處理,則數(shù)據(jù)管理設(shè)備101中的CPU102就會(huì)事先從安全芯片105的安全芯片105中獲取管理數(shù)據(jù)驗(yàn)證值,用作進(jìn)行數(shù)據(jù)驗(yàn)證處理的基礎(chǔ)。需要注意的是,該管理數(shù)據(jù)驗(yàn)證值包括圖3中所示的數(shù)據(jù)管理樹(shù)的頂端散列數(shù)值。另一方面,如果在安全芯片105中采用的CPU201的控制下進(jìn)行數(shù)據(jù)更新處理,則存儲(chǔ)在數(shù)據(jù)管理設(shè)備101的主存儲(chǔ)單元104中的所需信息就會(huì)被提供給安全芯片105。
為了防止違法的數(shù)據(jù)更新過(guò)程,在安全芯片105中的CPU201的控制下進(jìn)行增加、修改以及刪除數(shù)據(jù)的處理。在該結(jié)構(gòu)中,安全芯片105驗(yàn)證先更新數(shù)據(jù)[V_Data]的有效性以及后更新數(shù)據(jù)[U_Data]的有效性,或者安全芯片105自己生成后更新數(shù)據(jù)[U_Data]。
下面對(duì)圖7中處理流程的步驟進(jìn)行說(shuō)明。該流程開(kāi)始于步驟S301,以初始化變量L,其中該L表示數(shù)據(jù)管理樹(shù)中,該先更新數(shù)據(jù)[V_Data]所屬的級(jí)層。也就是說(shuō),在該步驟中,級(jí)層標(biāo)識(shí)L的初始值被設(shè)為0,表示該先更新數(shù)據(jù)[V_Data]相當(dāng)于數(shù)據(jù)管理樹(shù)中最低層的級(jí)層上的管理對(duì)象數(shù)據(jù)。需要注意的是,在增加數(shù)據(jù)的過(guò)程中,如上所述,該先更新數(shù)據(jù)[V_Data]是不存在的。在這種情況下,可以假設(shè)大小為0的空數(shù)據(jù)被用作先更新數(shù)據(jù)[V_Data]。
接著,在接下來(lái)的步驟S302,從主存儲(chǔ)單元104中讀出該先更新數(shù)據(jù)[V_Data]。該先更新數(shù)據(jù)[V_Data]是基于數(shù)據(jù)管理樹(shù)中上一級(jí)層上的核對(duì)散列數(shù)值[P_Hash]的驗(yàn)證過(guò)程中的一個(gè)對(duì)象。具體的說(shuō),該核對(duì)散列數(shù)值[P_Hash]就是包含在上一級(jí)層上提供的散列列表中的一個(gè)散列數(shù)值,并且與根據(jù)先更新數(shù)據(jù)[V_Data]生成的散列數(shù)值進(jìn)行比對(duì)。
一般來(lái)說(shuō),該先更新數(shù)據(jù)[V_Data]就是級(jí)層L(L>0)上的散列列表(L,j),其中j表示指定給級(jí)層L上的散列列表(L,j)的散列列表指數(shù)。當(dāng)級(jí)層L為最低層時(shí),即L=0,另一方面,該先更新數(shù)據(jù)[V_Data]就是管理對(duì)象數(shù)據(jù)D(dataID)。在該例中,作為驗(yàn)證對(duì)象的管理對(duì)象數(shù)據(jù)D(dataID)就被用作原始驗(yàn)證對(duì)象數(shù)據(jù)。
接著,在接下來(lái)的步驟S303,通過(guò)基于從主存儲(chǔ)單元104中獲取的先更新數(shù)據(jù)[V_Data]的計(jì)算來(lái)找到散列數(shù)值[V_Hash],作為先更新數(shù)據(jù)[V_Data]的散列數(shù)值。需要注意的是,如上所述,用于計(jì)算散列數(shù)值的算法是一個(gè)預(yù)先設(shè)置的算法。作為一個(gè)這樣的例子,可以采用SHA-1算法。
接著,在接下來(lái)的步驟S304,從主存儲(chǔ)單元104中獲取的后更新數(shù)據(jù)[U_Data]。該后更新數(shù)據(jù)[U_Data]就用用于替換先更新數(shù)據(jù)[V_Data]的數(shù)據(jù)。需要注意的是,在刪除數(shù)據(jù)的過(guò)程中,如上所述的后更新數(shù)據(jù)[U_Data]是不存在的。可以假設(shè),大小為0的空數(shù)據(jù)被用作后更新數(shù)據(jù)[U_Data]。
接著,在接下來(lái)的步驟S305,通過(guò)基于從主存儲(chǔ)單元104中獲取的后更新數(shù)據(jù)[U_Data]的計(jì)算來(lái)找到散列數(shù)值[U_Hash],作為后更新數(shù)據(jù)[U_Data]的散列數(shù)值。需要注意的是,如上所述,用于計(jì)算散列數(shù)值的算法是一個(gè)預(yù)先設(shè)置的算法。作為一個(gè)這樣的例子,可以采用SHA-1算法。
接著,在接下來(lái)的步驟S306,從主存儲(chǔ)器104中讀出包括核對(duì)散列數(shù)值的散列列表HL,作為核對(duì)數(shù)據(jù)[P_Data],并且找到散列列表HL的散列數(shù)值指數(shù)k作為定義更新路徑的信息。
該核對(duì)數(shù)據(jù)[P_Data]是較高級(jí)層上的散列列表,并與被用作驗(yàn)證對(duì)象的先更新數(shù)據(jù)[V_Data]直接相連。該核對(duì)數(shù)據(jù)[P_Data]是具有多個(gè)散列數(shù)值的散列列表。在二叉樹(shù)的情況下,該核對(duì)數(shù)據(jù)[P_Data]具有兩個(gè)散列數(shù)值H
和H[1],其中的一個(gè)被選作核對(duì)散列數(shù)值[P_Hash]。按照如上所述的方式獲得散列數(shù)值指數(shù)k,將其用作更新路徑定義信息,以選擇散列數(shù)值H
和H[1]中的一個(gè)。
非常類(lèi)似于早些所述的驗(yàn)證路徑定義數(shù)值k,被獲取作為驗(yàn)證路徑定義信息的散列數(shù)值指數(shù)k的數(shù)值定義了一個(gè)把要被更新的數(shù)據(jù)同頂端散列數(shù)值相連的路徑。
接著,在接下來(lái)的步驟S307,根據(jù)被獲取作為更新路徑定義信息的散列數(shù)值指數(shù)k從核對(duì)數(shù)據(jù)[P_Data]的兩個(gè)散列數(shù)值H
和H[1]中選擇一個(gè)核對(duì)散列數(shù)值[P_Hash],其中該核對(duì)數(shù)據(jù)[P_Data]就是高一級(jí)層上的散列列表,并直接與先更新數(shù)據(jù)[V_Data]相連。
如上所述,根據(jù)樹(shù)的結(jié)構(gòu)以及更新對(duì)象和驗(yàn)證對(duì)象數(shù)據(jù)來(lái)確定驗(yàn)證和更新路徑。由數(shù)據(jù)管理設(shè)備101中的CPU102或者安全芯片105中的CPU201來(lái)設(shè)置該更新路徑。
接著,在接下來(lái)的步驟S308,被找到作為先更新數(shù)據(jù)[V_Data]的散列數(shù)值的驗(yàn)證對(duì)象散列數(shù)值[V_Hash]與核對(duì)散列數(shù)值[P_Hash]進(jìn)行比對(duì),以確定前者是否與后者匹配。
如果前者與后者不匹配,也就是如果P_Hash≠V_Hash,則先更新數(shù)據(jù)[V_Data]被確定為是偽造數(shù)據(jù)或者是其中包括根據(jù)偽造數(shù)據(jù)而發(fā)現(xiàn)的散列數(shù)值的散列列表。在這種情況下,處理流程繼續(xù)進(jìn)行至步驟S315,在步驟S315,該數(shù)據(jù)驗(yàn)證/更新過(guò)程以失敗結(jié)束。
另一方面,如果在步驟S308中進(jìn)行的核對(duì)顯示前者與后者匹配,也就是如果P_Hash=V_Hash,則先更新數(shù)據(jù)[V_Data]被確定為是真實(shí)數(shù)據(jù)或者是其中不包括根據(jù)偽造數(shù)據(jù)而發(fā)現(xiàn)的散列數(shù)值的散列列表。
如果如上所述驗(yàn)證了先更新數(shù)據(jù)[V_Data]的有效性,則處理流程繼續(xù)進(jìn)行至步驟S309,在步驟S309,從包括在核對(duì)數(shù)據(jù)[P_Data]中的散列數(shù)值計(jì)算得出驗(yàn)證對(duì)象散列數(shù)值[V_Hash],并將其用作下一個(gè)驗(yàn)證對(duì)象散列數(shù)值[V_Hash]。
接著,在接下來(lái)的步驟S310,用后更新散列數(shù)值[U_Hash]替換包含在散列列表[P_Data]中的散列數(shù)值P_Data.H(k),作為驗(yàn)證對(duì)象散列數(shù)值[V_Hash],其已經(jīng)在步驟S308的核對(duì)中被用到過(guò)。具體說(shuō),通過(guò)采用預(yù)定的算法,例如SHA-1從后更新散列數(shù)值[U_Hash]中生成的散列數(shù)值被用作一個(gè)新的散列列表[P_Data]中的散列數(shù)值P_Data.H(k)。
接著,在接下來(lái)的步驟S311,通過(guò)計(jì)算找出包括新散列數(shù)值P_Data.H(k)的后更新散列列表[P_Data]的散列數(shù)值[U_Hash]。
接下來(lái),在下一步驟S312,將包括新散列數(shù)值P_Data.H(k)的后更新散列列表[P_Data]存儲(chǔ)在主存儲(chǔ)單元104中。可是在此時(shí)刻,并沒(méi)有對(duì)數(shù)據(jù)管理樹(shù)進(jìn)行更新。
該數(shù)據(jù)管理設(shè)備101中保存有包括新散列數(shù)值P_Data.H(k)的后更新散列列表[P_Data]。使用在上次驗(yàn)證以及正常完成更新序列時(shí)被保存的后更新散列列表[P_Data]在更新數(shù)據(jù)管理樹(shù)的過(guò)程中更新數(shù)據(jù)管理樹(shù)中的相關(guān)部分。另一方面,如果上次驗(yàn)證以及更新序列沒(méi)有正常完成,則為數(shù)據(jù)管理樹(shù)的一個(gè)節(jié)點(diǎn)臨時(shí)保持的后更新散列列表[P_Data]就被刪掉。
接著,在接下來(lái)的步驟S313,確定進(jìn)行數(shù)據(jù)驗(yàn)證以及更新過(guò)程的級(jí)層的層數(shù)。該處理過(guò)程確定L是否等于(m-1)。具體地說(shuō),確定級(jí)層的層數(shù)就是確定這時(shí)要與核對(duì)散列數(shù)值進(jìn)行比對(duì)的驗(yàn)證對(duì)象散列數(shù)值是否就是數(shù)據(jù)管理樹(shù)中直接從屬于頂端散列數(shù)值的級(jí)層上的驗(yàn)證對(duì)象數(shù)據(jù)(或散列列表)[V_Data]的驗(yàn)證對(duì)象散列數(shù)值,也就是,確定這時(shí)要與核對(duì)散列數(shù)值進(jìn)行比對(duì)的驗(yàn)證對(duì)象散列數(shù)值是否就是具有m級(jí)層的數(shù)據(jù)管理樹(shù)中直接從屬于最上級(jí)層m上的頂端散列數(shù)值的級(jí)層(m-1)上的驗(yàn)證對(duì)象數(shù)據(jù)(或散列列表)[V_Data]的驗(yàn)證對(duì)象散列數(shù)值。
如果L=(m-1),該處理流程繼續(xù)進(jìn)行至步驟S316,在步驟S316,該頂端散列數(shù)值被用作核對(duì)散列數(shù)值[U_Hash]。接著,在接下來(lái)的步驟S317,基于包括在驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]中的散列數(shù)值找出驗(yàn)證對(duì)象散列數(shù)值[V_Hash]作為散列數(shù)值,其中該驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]就是級(jí)層(m-1)上的散列列表,將驗(yàn)證對(duì)象散列數(shù)值[V_Hash]與被用作核對(duì)散列數(shù)值[P_Hash]的頂端散列數(shù)值進(jìn)行比對(duì),以確定前者是否與后者匹配。在該步驟中進(jìn)行的處理就是從下至上進(jìn)行的數(shù)據(jù)驗(yàn)證和更新過(guò)程中的最后核對(duì)過(guò)程。表示前者與后者匹配的最后核對(duì)的結(jié)果就意味著沿著驗(yàn)證和更新路徑進(jìn)行的所有驗(yàn)證都以表示散列數(shù)值匹配的正核對(duì)結(jié)果結(jié)束,其中該驗(yàn)證和更新路徑從最低層的級(jí)層上的更新對(duì)象數(shù)據(jù)開(kāi)始,至頂端散列數(shù)值下一級(jí)層上的最后驗(yàn)證對(duì)象散列列表結(jié)束。
在這種情況下,處理流程進(jìn)行至步驟S318,在該步驟318中,在步驟S311中計(jì)算得出的后更新散列數(shù)值[U_Hash]被存儲(chǔ)在安全芯片105的安全存儲(chǔ)器203中。在步驟S311中計(jì)算出的后更新散列數(shù)值[U_Hash]就是根據(jù)頂端散列數(shù)值下一級(jí)層上的散列列表的散列數(shù)值(包括更新散列數(shù)值)而計(jì)算得出的頂端散列數(shù)值[U_Hash]。接著,在接下來(lái)的步驟S319中,數(shù)據(jù)驗(yàn)證和更新過(guò)程正常結(jié)束。
另一方面,如果在步驟S317進(jìn)行的核對(duì)產(chǎn)生了表示數(shù)據(jù)不匹配,即P_Hash≠V_Hash的結(jié)果,則驗(yàn)證對(duì)象數(shù)值[V_Data]被確定為是偽造數(shù)據(jù)或者是其中包括根據(jù)偽造數(shù)據(jù)而發(fā)現(xiàn)的散列數(shù)值的散列列表。在這種情況下,處理流程繼續(xù)進(jìn)行至步驟S315,在步驟S315,數(shù)據(jù)驗(yàn)證/更新過(guò)程以失敗結(jié)束。
另一方面,如果在步驟S313獲得的確定結(jié)果表示L不等于(m-1),則確定在更高層的級(jí)層上存在留待被驗(yàn)證的節(jié)點(diǎn)。在這種情況下,處理流程繼續(xù)進(jìn)行至步驟S314,在步驟S314中按照如下方式更新級(jí)層標(biāo)識(shí)LL=L+1。也就是說(shuō),通過(guò)在其本身上加1來(lái)更新級(jí)層標(biāo)識(shí)L。
接著,處理流程返回至步驟S306,以重復(fù)進(jìn)行從該步驟開(kāi)始如上所述的處理。重復(fù)進(jìn)行如上所述的處理,直到數(shù)據(jù)驗(yàn)證過(guò)程以失敗結(jié)束或者數(shù)據(jù)驗(yàn)證成功完成為止。通過(guò)這種方式,通過(guò)重復(fù)貫穿整個(gè)數(shù)據(jù)管理樹(shù)從下至上的驗(yàn)證/更新路徑的核對(duì)和更新操作來(lái)進(jìn)行數(shù)據(jù)驗(yàn)證過(guò)程以及數(shù)據(jù)更新過(guò)程。最后,在步驟S318,將在步驟S311中計(jì)算得出的后更新散列數(shù)值[U_Hash]存儲(chǔ)在安全芯片105的安全存儲(chǔ)器203中。接著,在步驟S319,數(shù)據(jù)驗(yàn)證和更新過(guò)程正常結(jié)束。
另一方面,如果在數(shù)據(jù)驗(yàn)證過(guò)程以及數(shù)據(jù)更新過(guò)程中,驗(yàn)證路徑上的任何數(shù)據(jù)核對(duì)結(jié)果表示核對(duì)的核對(duì)后的散列數(shù)值并不是彼此之間相互匹配,則處理流程繼續(xù)進(jìn)行至步驟S315,在步驟S315,數(shù)據(jù)驗(yàn)證過(guò)程以表示數(shù)據(jù)偽造事實(shí)的失敗而結(jié)束。
在如上所述對(duì)數(shù)據(jù)管理樹(shù)進(jìn)行的數(shù)據(jù)驗(yàn)證或數(shù)據(jù)更新過(guò)程中,散列數(shù)值指數(shù)k被用作定義數(shù)據(jù)驗(yàn)證路徑或數(shù)據(jù)更新路徑。下面對(duì)通過(guò)使用散列數(shù)值指數(shù)k來(lái)確定數(shù)據(jù)驗(yàn)證路徑或數(shù)據(jù)更新路徑的方法進(jìn)行說(shuō)明。需要注意的是,可以由數(shù)據(jù)管理設(shè)備101中的CPU102或者安全芯片105中的CPU201來(lái)確定數(shù)據(jù)驗(yàn)證路徑或數(shù)據(jù)更新路徑。
(1)在從上至下的過(guò)程中確定路徑驗(yàn)證管理對(duì)象數(shù)據(jù)D(dataID)有效性的過(guò)程被假設(shè)為從數(shù)據(jù)管理樹(shù)的最高級(jí)層開(kāi)始,并沿著向著較低級(jí)層的方向進(jìn)行,其中該管理對(duì)象數(shù)據(jù)D(dataID)就是具有數(shù)據(jù)指數(shù)x=dataID的管理對(duì)象數(shù)據(jù)。需要注意的是,在上面所述的實(shí)施例中,數(shù)據(jù)管理樹(shù)是二叉樹(shù)。但是,在下面的說(shuō)明中,可以對(duì)n叉數(shù)據(jù)管理樹(shù)進(jìn)行路徑確定處理,其中的每個(gè)節(jié)點(diǎn)都具有n個(gè)叉,并且n為任意整數(shù)。
如圖8所示,數(shù)據(jù)管理樹(shù)被假設(shè)為具有n叉結(jié)構(gòu),其中每個(gè)散列列表的散列數(shù)值數(shù)為n,級(jí)層數(shù)為m。
最低層的級(jí)層L(=0)上的最后驗(yàn)證對(duì)象數(shù)據(jù)350的數(shù)據(jù)指數(shù)x(=dataID)是周知的,其中符號(hào)L為被指定給數(shù)據(jù)管理樹(shù)驗(yàn)證對(duì)象級(jí)層的數(shù)。級(jí)層數(shù)L是一個(gè)整數(shù),其范圍為0至(m-1)。對(duì)于一個(gè)給定的級(jí)層數(shù)L,被指定給層數(shù)為L(zhǎng)的級(jí)層上的散列列表指數(shù)j的數(shù)值范圍是0至n(m-L-1)-1。
為了指定如圖8中所示的數(shù)據(jù)管理樹(shù)中的級(jí)層L(=p)上的散列列表或數(shù)據(jù),將散列列表指數(shù)j指定給散列列表(當(dāng)L>0時(shí)),或者將數(shù)據(jù)指數(shù)x指定給數(shù)據(jù)(當(dāng)L=0時(shí))。對(duì)于一個(gè)給定的最后驗(yàn)證對(duì)象數(shù)據(jù)350的數(shù)據(jù)指數(shù)dataID以及給定的級(jí)層數(shù)L,可以從下面的等式中得出被指定給散列列表的散列列表指數(shù)j或者被指定給數(shù)據(jù)的數(shù)據(jù)指數(shù)xj或x=floor(dataID/nL))(等式1)其中符號(hào)dataID為最后驗(yàn)證對(duì)象數(shù)據(jù)的數(shù)據(jù)指數(shù)x,并且符號(hào)L為指定給提供散列列表或數(shù)據(jù)的驗(yàn)證對(duì)象級(jí)層的數(shù)字。
在上面的等式中,floor(x)是一個(gè)返回不大于x的最大整數(shù)的函數(shù)。表達(dá)式xy為x的y次冪,并且x/y表示x被y除。當(dāng)L>0時(shí),等式(1)確定了數(shù)據(jù)管理樹(shù)的級(jí)層L上的驗(yàn)證對(duì)象散列列表的散列列表指數(shù)j。當(dāng)L=0時(shí),給出了等于dataID本身的數(shù)據(jù)指數(shù)x,其就是被指定給數(shù)據(jù)管理樹(shù)中最低級(jí)層上的最后驗(yàn)證對(duì)象數(shù)據(jù)的給定數(shù)據(jù)指數(shù)。例如,在圖8所示的典型數(shù)據(jù)管理樹(shù)的情況下,將等式(1)應(yīng)用于級(jí)層L(=p,其中p為非零整數(shù))以計(jì)算出散列列表指數(shù)j的值。結(jié)果,散列列表351被選中。
另外,在貫穿數(shù)據(jù)管理樹(shù)按照從上至下的方向進(jìn)行驗(yàn)證處理的過(guò)程中,需要從如上所述由散列列表指數(shù)j確定的散列列表中選擇核對(duì)散列數(shù)值[P_Hash]。在上述例子中,圖8中所示的散列列表351被散列列表指數(shù)j確定為散列列表,從該散列列表中選擇所需的核對(duì)散列數(shù)值。每個(gè)散列列表都包括n個(gè)散列數(shù)值,其中符號(hào)n表示叉數(shù)。被指定給各個(gè)散列數(shù)值的散列數(shù)值指數(shù)k的數(shù)值范圍為0至(n-1)。
這樣,就需要確定散列數(shù)值指數(shù)k。對(duì)于具有數(shù)據(jù)指數(shù)x(=dataID)的最后驗(yàn)證對(duì)象數(shù)據(jù),根據(jù)下面的等式來(lái)確定級(jí)層L上驗(yàn)證對(duì)象散列列表的散列數(shù)值指數(shù)kk=floor(dataID/n(L-1))mod n(等式2)其中L≠0。
在上面的等式中,floor(x)是一個(gè)返回不大于x的最大整數(shù)的函數(shù)。表達(dá)式xy為x的y次冪,并且x/y表示x被y除,并且’x mod y’表示從x被y除的結(jié)果中得到的余數(shù)。當(dāng)L=0時(shí),該散列數(shù)值指數(shù)k是不相關(guān)的。
如上所述,對(duì)于一個(gè)給定的最后驗(yàn)證對(duì)象數(shù)據(jù)的數(shù)據(jù)指數(shù)x(=dataID)以及給定的最后驗(yàn)證對(duì)象數(shù)據(jù)或散列列表的級(jí)層數(shù)L,通過(guò)等式(1)來(lái)計(jì)算散列列表指數(shù)j或者數(shù)據(jù)指數(shù)x,而通過(guò)等式(2)來(lái)得到用于散列列表的散列數(shù)值指數(shù)k。
通過(guò)如上所述的方式得到散列列表指數(shù)j或者數(shù)據(jù)指數(shù)x,以及散列數(shù)值指數(shù)k,就可以確定一個(gè)從數(shù)據(jù)管理樹(shù)頂層的級(jí)層L(=m-1)開(kāi)始,到底層的級(jí)層L(=0)上的最后驗(yàn)證對(duì)象數(shù)據(jù)為止的驗(yàn)證路徑??梢詫?duì)這條路徑上的散列列表或數(shù)據(jù)進(jìn)行數(shù)據(jù)有效性的驗(yàn)證。
需要注意的是,更新數(shù)據(jù)的過(guò)程是在驗(yàn)證數(shù)據(jù)有效性的同時(shí)進(jìn)行的。這樣,就按照與確定驗(yàn)證數(shù)據(jù)有效性相同的方式來(lái)確定更新數(shù)據(jù)的路徑。
(2)在從下至上的過(guò)程中確定路徑驗(yàn)證管理對(duì)象數(shù)據(jù)D(dataID)有效性的過(guò)程被假設(shè)為從數(shù)據(jù)管理樹(shù)的最低級(jí)層開(kāi)始,并沿著向著較高級(jí)層的方向進(jìn)行,其中該管理對(duì)象數(shù)據(jù)D(dataID)就是具有數(shù)據(jù)指數(shù)x=dataID的管理對(duì)象數(shù)據(jù)。在下面的說(shuō)明中,在其中的每個(gè)節(jié)點(diǎn)都具有n個(gè)叉的n叉數(shù)據(jù)管理樹(shù)上進(jìn)行確定路徑的處理,其中n為任意整數(shù)。
可以假設(shè)下面描述的數(shù)據(jù)管理樹(shù)具有n叉結(jié)構(gòu),其中每個(gè)散列列表的散列數(shù)值數(shù)為n,級(jí)層數(shù)為m。
最低層的級(jí)層L(=0)上的驗(yàn)證對(duì)象數(shù)據(jù)的數(shù)據(jù)指數(shù)x(=dataID)是周知的,其中符號(hào)L為被指定給數(shù)據(jù)管理樹(shù)驗(yàn)證對(duì)象級(jí)層的數(shù)。在從下至上的進(jìn)行處理的情況下,對(duì)于給數(shù)據(jù)管理樹(shù)中級(jí)層L上的驗(yàn)證對(duì)象數(shù)據(jù)[V_Data],用作級(jí)層(L+1)上核對(duì)數(shù)據(jù)[P_Data]的散列列表被標(biāo)識(shí)出來(lái),其中級(jí)層數(shù)L是一個(gè)整數(shù),其范圍為0至(m-1)。對(duì)于一個(gè)給定的、其范圍為0至(m-1)的級(jí)層數(shù)L,散列列表指數(shù)j的數(shù)值范圍是0至n(m-L-1)-1。
在貫穿數(shù)據(jù)管理樹(shù)按照從下至上的方向確定驗(yàn)證路徑的過(guò)程中,首先,根據(jù)被指定給底層級(jí)層L(=0)上的最后驗(yàn)證對(duì)象數(shù)據(jù)的給定數(shù)據(jù)指數(shù)x(=dataID)對(duì)具有dataID的數(shù)據(jù)進(jìn)行標(biāo)識(shí)。接著需要標(biāo)識(shí)用作核對(duì)數(shù)據(jù)[P_Data]的散列列表,其中該核對(duì)數(shù)據(jù)[P_Data]中包括與最后驗(yàn)證對(duì)象數(shù)據(jù)鏈接在一起的核對(duì)散列數(shù)值[P_Hash]。通過(guò)計(jì)算核對(duì)數(shù)據(jù)[P_Data]的數(shù)據(jù)指數(shù)x或散列列表的散列列表指數(shù)j來(lái)分別標(biāo)識(shí)出核對(duì)數(shù)據(jù)[P_Data]或被用作核對(duì)數(shù)據(jù)[P_Data]的散列列表。對(duì)于一個(gè)給定的最后驗(yàn)證對(duì)象數(shù)據(jù)的數(shù)據(jù)指數(shù)dataID以及給定的級(jí)層數(shù)L,可以從下面的等式中得出被用作核對(duì)數(shù)據(jù)[P_Data]的核對(duì)散列列表的散列列表指數(shù)jj或x=floor(dataID/n(L+1)))(等式3)其中符號(hào)dataID為最后驗(yàn)證對(duì)象數(shù)據(jù)的數(shù)據(jù)指數(shù)x,并且符號(hào)L(≠(m-1))為指定給提供當(dāng)前散列列表或當(dāng)前驗(yàn)證對(duì)象散列列表的驗(yàn)證對(duì)象級(jí)層的數(shù)字。
在上面的等式中,floor(x)是一個(gè)返回不大于x的最大整數(shù)的函數(shù)。表達(dá)式xy為x的y次冪,并且x/y表示x被y除。當(dāng)L>0時(shí),等式(1)確定了被用作數(shù)據(jù)管理樹(shù)的級(jí)層L上面一層的級(jí)層(L+1)上核對(duì)數(shù)據(jù)[P_Data]的核對(duì)散列列表的散列列表指數(shù)j。
另一方面,當(dāng)L=0時(shí),等式(3)確定了被用作數(shù)據(jù)管理樹(shù)中最低級(jí)層的上一級(jí)層上的核對(duì)數(shù)據(jù)[P_Data]的核對(duì)散列列表的散列列表指數(shù)j。
另外,在貫穿數(shù)據(jù)管理樹(shù)按照從下至上的方向進(jìn)行驗(yàn)證處理的過(guò)程中,需要從如上所述由散列列表指數(shù)j確定的散列列表中選擇核對(duì)散列數(shù)值[P_Hash]。每個(gè)散列列表都包括n個(gè)散列數(shù)值,其中符號(hào)n表示叉數(shù)。被指定給各個(gè)散列數(shù)值的散列數(shù)值指數(shù)k的數(shù)值范圍為0至(n-1)。
這樣,為了確定核對(duì)散列數(shù)值[P_Hash]就需要找出散列數(shù)值指數(shù)k。對(duì)于具有數(shù)據(jù)指數(shù)x(=dataID)的最后驗(yàn)證對(duì)象數(shù)據(jù)以及包括驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]的級(jí)層L,根據(jù)下面的等式來(lái)確定驗(yàn)證對(duì)象散列列表的散列數(shù)值指數(shù)kk=floor(dataID/nL)mod n(等式4)其中L≠(m-1)。
在上面的等式中,floor(x)是一個(gè)返回不大于x的最大整數(shù)的函數(shù)。表達(dá)式xy為x的y次冪,并且x/y表示x被y除,并且’x mod y’表示從x被y除的結(jié)果中得到的余數(shù)。
當(dāng)L=(m-1)時(shí),頂端散列數(shù)值被用作核對(duì)散列數(shù)值[P_Hash]。這樣,在數(shù)據(jù)管理設(shè)備101中,安全芯片105將驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]同存儲(chǔ)在安全芯片105地安全存儲(chǔ)器203中的頂端散列數(shù)值進(jìn)行比較,并需要將核對(duì)散列數(shù)值[P_Hash]提供給安全芯片,結(jié)果可以消除根據(jù)等式(3)來(lái)確定散列列表以及根據(jù)等式(4)來(lái)確定包含在散列列表中的散列數(shù)值的處理過(guò)程。
如上所述,對(duì)于一個(gè)給定的最后驗(yàn)證對(duì)象數(shù)據(jù)的數(shù)據(jù)指數(shù)x(=dataID)以及給定的最后驗(yàn)證對(duì)象數(shù)據(jù)或散列列表的級(jí)層數(shù)L,通過(guò)等式(3)來(lái)計(jì)算散列列表指數(shù)j或者數(shù)據(jù)指數(shù)x,而從等式(4)得到散列數(shù)值指數(shù)k。
通過(guò)如上所述的方式得到散列列表指數(shù)j或者數(shù)據(jù)指數(shù)x,以及散列數(shù)值指數(shù)k,就可以確定一個(gè)從數(shù)據(jù)管理樹(shù)底層的級(jí)層L(=0)的最后驗(yàn)證對(duì)象數(shù)據(jù)開(kāi)始,到頂層的級(jí)層L(=m-1)為止的驗(yàn)證路徑??梢詫?duì)這條路徑上的散列列表或數(shù)據(jù)進(jìn)行數(shù)據(jù)有效性的驗(yàn)證。
需要注意的是,更新數(shù)據(jù)的過(guò)程是在驗(yàn)證數(shù)據(jù)有效性的同時(shí)進(jìn)行的。這樣,就按照與確定驗(yàn)證數(shù)據(jù)有效性相同的方式來(lái)確定更新數(shù)據(jù)的路徑。
還需要注意的是,在數(shù)據(jù)管理設(shè)備101中,CPU102通過(guò)使用上述路徑確定方法中的一種來(lái)確定路徑,并且根據(jù)數(shù)據(jù)管理樹(shù)的驗(yàn)證級(jí)層L以及被指定給驗(yàn)證對(duì)象級(jí)層L上的驗(yàn)證對(duì)象數(shù)據(jù)(或驗(yàn)證對(duì)象散列列表)的指數(shù)j來(lái)確定將要提供給安全芯片105的驗(yàn)證對(duì)象數(shù)據(jù)(或驗(yàn)證對(duì)象散列列表)。
另外,根據(jù)散列數(shù)值指數(shù)k從包含在驗(yàn)證對(duì)象散列列表中選擇一個(gè)散列數(shù)值。接著,從主存儲(chǔ)單元104中讀出確定的驗(yàn)證對(duì)象數(shù)據(jù)(或確定的證對(duì)象散列列表)或者被選中的散列數(shù)值并將其提供給安全芯片105,以用于由安全芯片105進(jìn)行的驗(yàn)證處理。
另一方面,如果安全芯片105確定了驗(yàn)證路徑,則將根據(jù)等式(1)和(4)確定的數(shù)據(jù)位置信息提供給數(shù)據(jù)管理設(shè)備101中的CPU102。接著,根據(jù)由安全芯片105提供的數(shù)據(jù)位置信息,數(shù)據(jù)管理設(shè)備101中的CPU102從主存儲(chǔ)單元104中讀出驗(yàn)證對(duì)象數(shù)據(jù)(或確定的證對(duì)象散列列表)或者被選中的散列數(shù)值并將其提供給安全芯片105,以用于由安全芯片105進(jìn)行的驗(yàn)證處理。
上面所述的實(shí)施例具有使用了數(shù)據(jù)管理樹(shù)的典型結(jié)構(gòu),其中該數(shù)據(jù)管理樹(shù)中包括在不同層的級(jí)層上提供的散列列表。
下面的描述將會(huì)說(shuō)明只包括一個(gè)散列列表級(jí)層的結(jié)構(gòu),以及在該結(jié)構(gòu)上進(jìn)行的處理。也就是說(shuō),該數(shù)據(jù)管理樹(shù)中的散列列表級(jí)層數(shù)為1。在該數(shù)據(jù)管理樹(shù)中,級(jí)層數(shù)m為2,這是由于該樹(shù)中包括一個(gè)直接從屬于該散列列表級(jí)層的數(shù)據(jù)級(jí)層。
圖9為一個(gè)數(shù)據(jù)管理樹(shù)的典型結(jié)構(gòu)框圖,其中該數(shù)據(jù)管理樹(shù)的級(jí)層數(shù)為m,管理數(shù)據(jù)數(shù)為n。在具有該典型結(jié)構(gòu)的數(shù)據(jù)管理樹(shù)中,只有一個(gè)由參考數(shù)字401表示的散列列表HL(1,0),在該列表中包括所有管理對(duì)象數(shù)據(jù)段的散列數(shù)值。
頂端散列數(shù)值402就是散列列表HL(1,0)401的散列數(shù)值。也就是說(shuō),頂端散列數(shù)值402是根據(jù)包含在散列列表HL(1,0)401中的n個(gè)散列數(shù)值生成的。一般的,頂端散列數(shù)值就是通過(guò)將散列算法例如SHA-1應(yīng)用于用于連接包含在散列列表HL(0,1)401中的n個(gè)散列數(shù)值的數(shù)據(jù)而生成的。
安全芯片105中的安全存儲(chǔ)器203至少包括頂端散列數(shù)值402作為管理對(duì)象驗(yàn)證值。其它數(shù)據(jù),例如散列列表401以及最低級(jí)層上從D(0)至D(n-1)的管理對(duì)象數(shù)據(jù)段都被存儲(chǔ)在數(shù)據(jù)管理設(shè)備101中的主存儲(chǔ)單元104中。
接下來(lái),對(duì)增加以及減少數(shù)據(jù)管理樹(shù)中級(jí)層數(shù)的過(guò)程進(jìn)行說(shuō)明。當(dāng)數(shù)據(jù)管理樹(shù)中的級(jí)層數(shù)增加或減少時(shí),需要更新存儲(chǔ)在安全芯片105的安全存儲(chǔ)器203中的管理數(shù)據(jù)驗(yàn)證值。
可以由數(shù)據(jù)管理設(shè)備101中的CPU102或者安全芯片105中的CPU201來(lái)進(jìn)行增加以及減少數(shù)據(jù)管理樹(shù)中的級(jí)層數(shù)的處理。如果在數(shù)據(jù)管理設(shè)備101中的CPU102的控制下增加以及減少數(shù)據(jù)管理樹(shù)中級(jí)層數(shù),則數(shù)據(jù)管理設(shè)備101中的CPU102事先從安全芯片105的安全存儲(chǔ)器203中獲得管理數(shù)據(jù)驗(yàn)證值,作為進(jìn)行數(shù)據(jù)驗(yàn)證過(guò)程的基礎(chǔ)。需要指出的是,該管理數(shù)據(jù)驗(yàn)證值包括位于如圖3所示的數(shù)據(jù)管理樹(shù)的頂端。另一方面,如果在安全芯片105中的CPU201的控制下增加以及減少數(shù)據(jù)管理樹(shù)中的級(jí)層數(shù),則需要將存儲(chǔ)在數(shù)據(jù)管理設(shè)備101主存儲(chǔ)器104中的所需信息提供給安全芯片105。另外,在增加以及減少數(shù)據(jù)管理樹(shù)中的級(jí)層數(shù)的過(guò)程中更新的信息被從安全芯片105輸入到數(shù)據(jù)管理設(shè)備101的主存儲(chǔ)器104中。
(1)增加級(jí)層的過(guò)程首先,參照?qǐng)D10中所示的流程圖對(duì)增加數(shù)據(jù)管理樹(shù)中的級(jí)層數(shù)的過(guò)程進(jìn)行說(shuō)明。該流程圖從步驟S401開(kāi)始,在該步驟S401,從主存儲(chǔ)單元104中獲取直接與數(shù)據(jù)管理樹(shù)的頂端散列數(shù)值相連的散列列表,作為驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]。
接著,在步驟S402,通過(guò)基于從主存儲(chǔ)單元104中獲取的驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]的計(jì)算來(lái)找到散列數(shù)值,作為驗(yàn)證對(duì)象散列數(shù)值[V_Hash]。需要注意的是,如上所述,用于計(jì)算散列數(shù)值的算法是一個(gè)預(yù)先設(shè)置的算法。作為一個(gè)這樣的例子,可以采用SHA-1算法。
接著,在接下來(lái)的步驟S403,確定核對(duì)散列數(shù)值[P_Hash]作為散列數(shù)值,以同驗(yàn)證對(duì)象數(shù)據(jù)的散列數(shù)值進(jìn)行比較。在這種情況下,將存儲(chǔ)在安全芯片105中的作為管理數(shù)據(jù)驗(yàn)證值的頂端散列數(shù)值作為核對(duì)散列數(shù)值[P_Hash]。接著,在接下來(lái)的步驟S404,被找到作為驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]的散列數(shù)值的驗(yàn)證對(duì)象散列數(shù)值[V_Hash]與核對(duì)散列數(shù)值[P_Hash]進(jìn)行比對(duì),以確定前者是否與后者匹配。
如果前者與后者不匹配,也就是如果P_Hash≠V_Hash,則驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]被確定為是偽造數(shù)據(jù)或者是其中包括根據(jù)偽造數(shù)據(jù)而發(fā)現(xiàn)的散列數(shù)值的散列列表。在這種情況下,處理流程繼續(xù)進(jìn)行至步驟S411,在步驟S315,該過(guò)程以失敗結(jié)束。
另一方面,如果在步驟S404中進(jìn)行的核對(duì)顯示前者與后者匹配,也就是如果P_Hash=V_Hash,則驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]被確定為是真實(shí)數(shù)據(jù)或者是其中不包括根據(jù)偽造數(shù)據(jù)而發(fā)現(xiàn)的散列數(shù)值的散列列表。
在這種情況下,處理流程繼續(xù)進(jìn)行至步驟S405,在步驟S405,在完成驗(yàn)證過(guò)程的散列列表上一層、最高層m的級(jí)層上生成一個(gè)新的散列列表N_Data。具體的說(shuō),在如圖14所示完成驗(yàn)證過(guò)程的散列列表452的級(jí)層與頂端散列數(shù)值451之間的級(jí)層上生成一個(gè)新近設(shè)置的散列列表N_Data453。
接著,在接下來(lái)的步驟S406,完成驗(yàn)證過(guò)程的散列列表452的散列數(shù)值[V_Hash]被設(shè)置作為新近設(shè)置的散列列表N_Data453的一個(gè)散列數(shù)值。接著,在接下來(lái)的步驟S407,大小為0的空數(shù)據(jù)段被設(shè)置作為新近設(shè)置的散列列表N_Data453的其它散列數(shù)值Hash(null)。在n叉數(shù)據(jù)管理樹(shù)的情況下,每個(gè)散列列表都包括n個(gè)散列數(shù)值。這樣,新近設(shè)置的散列列表N_Data453就包括完成驗(yàn)證過(guò)程的散列列表452的散列數(shù)值[V_Hash]以及(n-1)個(gè)其它散列數(shù)值Hash(null)。
接著,在接下來(lái)的步驟S408,根據(jù)新近設(shè)置的散列列表N_Data453的散列數(shù)值計(jì)算散列數(shù)值N_Hash。具體的說(shuō),將散列算法,例如SHA-1應(yīng)用于將完成驗(yàn)證過(guò)程的散列列表452的散列數(shù)值[V_Hash]與散列數(shù)值計(jì)算過(guò)程中的(n-1)個(gè)其它散列數(shù)值Hash(null)連接在一起的數(shù)據(jù),以計(jì)算出散列數(shù)值N_Hash。
接著,在接下來(lái)的步驟S409,計(jì)算得出的散列數(shù)值N_Hash被用作替換頂端散列數(shù)值。由安全芯片105將該計(jì)算得出的散列數(shù)值N_Hash用作新的管理數(shù)據(jù)驗(yàn)證值。也就是說(shuō),將計(jì)算得出的散列數(shù)值N_Hash存儲(chǔ)在安全存儲(chǔ)器203中作為更新的頂端散列數(shù)值。最后,在接下來(lái)的步驟S401,過(guò)程正常結(jié)束。
(2)減少級(jí)層的過(guò)程接下來(lái),參照?qǐng)D12中所示的流程圖對(duì)減少數(shù)據(jù)管理樹(shù)中的級(jí)層數(shù)的過(guò)程進(jìn)行說(shuō)明。該流程圖從步驟S501開(kāi)始,在該步驟S501,從主存儲(chǔ)單元104中獲取直接與數(shù)據(jù)管理樹(shù)的頂端散列數(shù)值相連的散列列表,作為驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]。
在這種情況下,驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]就是位于如圖13中數(shù)據(jù)管理樹(shù)最高級(jí)層上的散列列表472。在該過(guò)程中該最高級(jí)層上的散列列表472及其級(jí)層都被刪掉,以使得樹(shù)中的級(jí)層數(shù)減1。
作為刪除散列列表472及其級(jí)層的結(jié)果,直接從屬于該被刪除級(jí)層的另一個(gè)級(jí)層被新作為最高層,并且其它級(jí)層上的特殊散列列表473將直接與該頂端散列數(shù)值471相連。正由于此,在步驟S501并不需要找出目前位于最高層的散列列表472中散列數(shù)值得散列數(shù)值指數(shù)k。該散列數(shù)值指數(shù)k被指定給包含在驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]472中的散列數(shù)值,作為與特定散列列表473相連的散列數(shù)值,以用作新的最高級(jí)層上的散列列表,使得級(jí)層數(shù)m減1。
接著,在步驟S502,通過(guò)基于從主存儲(chǔ)單元104中獲取的驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]的計(jì)算來(lái)找到散列數(shù)值,作為驗(yàn)證對(duì)象散列數(shù)值[V_Hash]。需要注意的是,如上所述,用于計(jì)算散列數(shù)值的算法是一個(gè)預(yù)先設(shè)置的算法。作為一個(gè)這樣的例子,可以采用SHA-1算法。
接著,在接下來(lái)的步驟S503,確定核對(duì)散列數(shù)值[P_Hash]作為散列數(shù)值,以同驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]的散列數(shù)值[V_Hash]進(jìn)行比較。在這種情況下,將存儲(chǔ)在安全芯片105中的作為管理數(shù)據(jù)驗(yàn)證值的頂端散列數(shù)值作為核對(duì)散列數(shù)值[P_Hash]。
接著,在接下來(lái)的步驟S504,被找到作為驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]的散列數(shù)值的驗(yàn)證對(duì)象散列數(shù)值[V_Hash]與核對(duì)散列數(shù)值[P_Hash]進(jìn)行比對(duì),以確定前者是否與后者匹配。
如果前者與后者不匹配,也就是如果P_Hash≠V_Hash,則驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]被確定為是偽造數(shù)據(jù)或者是其中包括根據(jù)偽造數(shù)據(jù)而發(fā)現(xiàn)的散列數(shù)值的散列列表。在這種情況下,處理流程繼續(xù)進(jìn)行至步驟S509,在步驟S509,該過(guò)程以失敗結(jié)束。
另一方面,如果在步驟S504中進(jìn)行的核對(duì)顯示前者與后者匹配,也就是如果P_Hash=V_Hash,則驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]被確定為是真實(shí)數(shù)據(jù)或者是其中不包括根據(jù)偽造數(shù)據(jù)而發(fā)現(xiàn)的散列數(shù)值的散列列表。
在這種情況下,處理流程繼續(xù)進(jìn)行至步驟S505,在步驟S505,確定散列列表472的散列數(shù)值是否都是散列(空),其中該散列列表472就是要被刪除的驗(yàn)證對(duì)象數(shù)據(jù)[V_Data]。該散列數(shù)值都是包含在散列列表472中的n個(gè)散列數(shù)值,除了由在步驟S501中得到的散列數(shù)值指數(shù)k指示的散列數(shù)值以外。由散列數(shù)值指數(shù)k指示的散列數(shù)值與將新近被置于最高層的另一級(jí)層上的其它散列列表相連。上面所指散列(空)的就是指大小為0的空數(shù)據(jù)。
在圖13中所示的具體數(shù)據(jù)管理樹(shù)中,將新近被置于最高層的其它級(jí)層上的其它散列列表就是散列列表473,并且指示散列數(shù)值的散列數(shù)值指數(shù)k的值為0,其中該散列數(shù)值被包括在將要被刪除并與散列列表473相連的散列列表472中。這樣,在步驟S505,對(duì)包含在散列列表472中作為散列數(shù)值并且都由除了0以外的散列數(shù)值指數(shù)k指示的其它散列數(shù)值進(jìn)行檢查,以確定是否這些散列數(shù)值都是散列(空)。在這種情況下,k=1是除了0以外的唯一散列數(shù)值指數(shù)k。這是由于圖13中所示具體數(shù)據(jù)管理樹(shù)為2叉數(shù)據(jù)管理樹(shù),其中的每個(gè)散列列表都僅僅包括兩個(gè)散列數(shù)值。在n叉數(shù)據(jù)管理樹(shù)的情況下,每個(gè)散列列表都包括n個(gè)散列數(shù)值。
如果除了與將要被置于最頂層的另一個(gè)級(jí)層上的其它散列列表相連的散列數(shù)值以外的將要被刪除的散列列表的散列數(shù)值中包括有一個(gè)非空散列數(shù)值,則處理流程繼續(xù)進(jìn)行至步驟S509,在步驟S505,處理過(guò)程以失敗結(jié)束,而不刪除當(dāng)前最高級(jí)層上的散列列表。
如果除了與將要被置于最頂層的另一個(gè)級(jí)層上的其它散列列表相連的散列數(shù)值以外的將要被刪除的散列列表的散列數(shù)值都是空散列數(shù)值,則在級(jí)層數(shù)減1之后,根據(jù)包含在將要被升至最高層的級(jí)層上的散列列表中的散列數(shù)值計(jì)算出散列數(shù)值N_Hash。在圖13所示的具體數(shù)據(jù)管理樹(shù)種,將要被升至最高層的級(jí)層上的散列列表[V_Data]就是散列列表473,其由包含在將要被刪除的散列列表472中的散列數(shù)值的散列數(shù)值指數(shù)k來(lái)指示。
接著,在接下來(lái)的步驟S507,計(jì)算得出的散列數(shù)值N_Hash被用作替換安全芯片105中頂端散列數(shù)值的管理數(shù)據(jù)驗(yàn)證值并被存儲(chǔ)在安全存儲(chǔ)器203中,作為新的頂端散列數(shù)值。最后,處理流程繼續(xù)進(jìn)行至步驟S508,在步驟S508,處理過(guò)程正常結(jié)束。
如先前所述,用作管理對(duì)象的數(shù)據(jù)被放置在數(shù)據(jù)管理樹(shù)底層的級(jí)層上面并通過(guò)設(shè)置該樹(shù)中較高級(jí)層上的散列列表來(lái)對(duì)其進(jìn)行管理。該用作管理對(duì)象的數(shù)據(jù)包括各種數(shù)據(jù),例如內(nèi)容,許可以及記帳信息。為了防止這些種類(lèi)的數(shù)據(jù)被泄漏,希望對(duì)數(shù)據(jù)管理設(shè)備101中的數(shù)據(jù)進(jìn)行加密并將其存儲(chǔ)在主存儲(chǔ)單元104中。
在加密以及解密管理對(duì)象數(shù)據(jù)的過(guò)程中使用的密鑰被存儲(chǔ)在安全芯片105的安全存儲(chǔ)器203中。這個(gè)密鑰在下文中就是指存儲(chǔ)密鑰。數(shù)據(jù)管理設(shè)備101中的CPU102或安全芯片105中的CPU201能夠使用存儲(chǔ)密鑰來(lái)加密以及解密管理對(duì)象數(shù)據(jù)。
如果由數(shù)據(jù)管理設(shè)備101中的CPU102來(lái)進(jìn)行加密以及解密管理對(duì)象數(shù)據(jù)的處理,則從安全芯片105中輸入存儲(chǔ)密鑰,并在處理過(guò)程中使用。在數(shù)據(jù)管理設(shè)備中使用的CPU102通過(guò)執(zhí)行事先存儲(chǔ)在主存儲(chǔ)單元104中的加密程序來(lái)對(duì)管理對(duì)象數(shù)據(jù)進(jìn)行加密及解密。另一方面,如果使用安全芯片105中的CPU201來(lái)加密以及解密管理對(duì)象數(shù)據(jù),則安全芯片105就必須具有加密和解密處理的能力。
需要注意的是,加密過(guò)程的對(duì)象是管理對(duì)象數(shù)據(jù)的一部分或者全部,是數(shù)據(jù)例如內(nèi)容的實(shí)質(zhì)。事實(shí)上,加密過(guò)程的對(duì)象可以是具有各種包括散列列表的結(jié)構(gòu)的數(shù)據(jù)??梢蕴峁┮环N結(jié)構(gòu),在該結(jié)構(gòu)中,根據(jù)數(shù)據(jù)管理設(shè)備101或安全芯片105內(nèi)部算法設(shè)置分別由數(shù)據(jù)管理設(shè)備101中的CPU102或安全芯片105中的CPU201進(jìn)行確定加密對(duì)象的處理。
另外,還可以提供一種結(jié)構(gòu),在該結(jié)構(gòu)中,多種存儲(chǔ)密鑰被存儲(chǔ)在安全芯片105的安全存儲(chǔ)器203中。進(jìn)一步,還可以提供一種結(jié)構(gòu),在這種結(jié)構(gòu)中,在在安全芯片105的安全存儲(chǔ)器203中生成或者刪除多個(gè)存儲(chǔ)密鑰。為了防止使用的存儲(chǔ)密鑰被泄漏出去,最好是提供多個(gè)存儲(chǔ)密鑰并且在使用中適當(dāng)?shù)馗淖兇鎯?chǔ)密鑰,這樣就增強(qiáng)了安全性。
除此以外,還可以提供這樣一種結(jié)構(gòu),在該結(jié)構(gòu)中,采用了一種加強(qiáng)安全性的方法,該方法通過(guò)使用存儲(chǔ)在安全芯片105中的存儲(chǔ)密鑰來(lái)加密以及解密包絡(luò)密鑰,并通過(guò)使用包絡(luò)密鑰來(lái)加密以及解密數(shù)據(jù),并且通過(guò)存儲(chǔ)密鑰被加密的包絡(luò)密鑰被附在使用包絡(luò)密鑰加密后的管理對(duì)象數(shù)據(jù)。這樣,在該結(jié)構(gòu)中,黑客所知道的關(guān)于存儲(chǔ)密鑰信息的信息量可以被降低并且還會(huì)降低泄漏存儲(chǔ)密鑰的風(fēng)險(xiǎn)。需要注意的是,數(shù)據(jù)管理設(shè)備101中的CPU102或安全芯片105中的CPU201都可以通過(guò)使用存儲(chǔ)在安全芯片105中的存儲(chǔ)密鑰來(lái)對(duì)包絡(luò)密鑰進(jìn)行加密以及解密處理,并且通過(guò)使用包絡(luò)密鑰加密以及解密管理對(duì)象數(shù)據(jù)。當(dāng)通過(guò)使用存儲(chǔ)在安全芯片105的安全存儲(chǔ)器203中的存儲(chǔ)密鑰來(lái)進(jìn)行解密處理,以生成一個(gè)包絡(luò)密鑰,并且生成的包絡(luò)密鑰被輸出給安全芯片105外部的一個(gè)部件時(shí),就不需要將存儲(chǔ)密鑰輸出給安全芯片105外部的部件,并且因此加強(qiáng)了安全性。
需要注意的是,如果由加密過(guò)程來(lái)改變存儲(chǔ)的數(shù)據(jù)時(shí),要進(jìn)行更新數(shù)據(jù)管理樹(shù)的過(guò)程,以使得數(shù)據(jù)驗(yàn)證過(guò)程與前面所述的數(shù)據(jù)更新過(guò)程按照相同的方式同時(shí)進(jìn)行。在更新數(shù)據(jù)管理樹(shù)的過(guò)程之后,更新后的數(shù)據(jù)就被存儲(chǔ)在主存儲(chǔ)單元104中,而新的頂端散列數(shù)值被存儲(chǔ)在安全芯片105的安全存儲(chǔ)器203中??梢酝ㄟ^(guò)對(duì)解密的數(shù)據(jù)進(jìn)行解密來(lái)獲得先加密數(shù)據(jù),因此如前面所述的驗(yàn)證過(guò)程能夠驗(yàn)證管理對(duì)象數(shù)據(jù)的完整性以及最新近性,而不會(huì)帶來(lái)新的問(wèn)題。這樣,如果需要的話,除了驗(yàn)證完整性以及最新近性以外,可以保證數(shù)據(jù)的機(jī)密性。
如上所述,在該結(jié)構(gòu)中,對(duì)管理對(duì)象數(shù)據(jù)進(jìn)行加密,存儲(chǔ)加密后的管理對(duì)象數(shù)據(jù),并通過(guò)使用基于加密后的管理對(duì)象數(shù)據(jù)的數(shù)據(jù)管理樹(shù)來(lái)進(jìn)行數(shù)據(jù)管理。進(jìn)一步,還提供一種結(jié)構(gòu),在該結(jié)構(gòu)中,用于加密過(guò)程的密鑰被存儲(chǔ)在安全芯片105中。這樣,就可以有效的防止管理對(duì)象數(shù)據(jù)被泄漏。
如上面的實(shí)施例所述,至少,頂端散列數(shù)值被存儲(chǔ)作為安全芯片105的安全存儲(chǔ)器203中的管理數(shù)據(jù)驗(yàn)證值。還可以通過(guò)在數(shù)據(jù)管理樹(shù)中間級(jí)層上存儲(chǔ)散列列表,或者在安全芯片105的安全存儲(chǔ)器203中存儲(chǔ)該散列列表的散列數(shù)值,來(lái)縮短驗(yàn)證具體數(shù)據(jù)的有效性所花費(fèi)的時(shí)間。下面的描述將會(huì)說(shuō)明一個(gè)數(shù)據(jù)管理結(jié)構(gòu),其中數(shù)據(jù)管理樹(shù)中間級(jí)層上的散列列表或者該散列列表的散列數(shù)值被存儲(chǔ)在安全芯片105的安全存儲(chǔ)器203中,以便于在數(shù)據(jù)驗(yàn)證過(guò)程中使用。
圖14為一個(gè)數(shù)據(jù)管理樹(shù)的框圖,該數(shù)據(jù)管理樹(shù)為二叉樹(shù),并且級(jí)層數(shù)m為4。如前面所述,在二叉數(shù)據(jù)管理樹(shù)種,每個(gè)散列列表都包括兩個(gè)散列數(shù)值。安全芯片105的安全存儲(chǔ)器203被用于存儲(chǔ)頂端散列數(shù)值501以及中間散列數(shù)值502,作為管理對(duì)象驗(yàn)證值。中間散列數(shù)值502是數(shù)據(jù)管理樹(shù)中間級(jí)層上的散列列表HL(2,0)中的一個(gè)散列數(shù)值。
頂端散列數(shù)值501是根據(jù)最高層的級(jí)層L(=3)上的散列列表511的散列數(shù)值生成的。另一方面,中間散列數(shù)值502是根據(jù)中間層的級(jí)層L(=2)上的散列列表521的散列數(shù)值生成的。
在如圖14所述的數(shù)據(jù)管理樹(shù)最低層的級(jí)層L(=0)上有8段管理對(duì)象數(shù)據(jù)D(0)至D(7)??梢酝ㄟ^(guò)使用中間散列數(shù)值502來(lái)驗(yàn)證這些管理數(shù)據(jù)段中的4段管理對(duì)象數(shù)據(jù)D(0)至D(3)。
通過(guò)使用中間散列數(shù)值502進(jìn)行驗(yàn)證處理,可以只需要對(duì)兩個(gè)級(jí)層,即級(jí)層L(=1和2)的級(jí)層列表進(jìn)行驗(yàn)證就能夠完成整個(gè)過(guò)程。這樣就可以縮短驗(yàn)證數(shù)據(jù)有效性所花費(fèi)的時(shí)間?;谕瑯拥睦碛?,進(jìn)行數(shù)據(jù)更新,例如增加、修改以及刪除級(jí)層所花費(fèi)的時(shí)間也可以被縮短。需要注意的是,在驗(yàn)證4段管理對(duì)象數(shù)據(jù)D(4)至D(7)有效性的過(guò)程中需要頂端散列數(shù)值501。這是由于可以通過(guò)對(duì)所有3個(gè)級(jí)層,即級(jí)層L(=1,2和3)的級(jí)層列表進(jìn)行驗(yàn)證來(lái)完成整個(gè)處理過(guò)程。
另外,通過(guò)提供一種其中多個(gè)管理數(shù)據(jù)驗(yàn)證值被存儲(chǔ)在安全芯片105的安全存儲(chǔ)器203中的結(jié)構(gòu),可以對(duì)同管理數(shù)據(jù)驗(yàn)證值一樣多的數(shù)據(jù)管理樹(shù)進(jìn)行管理。
如圖15所示,例如,在一個(gè)結(jié)構(gòu)中包括2個(gè)二叉數(shù)據(jù)管理樹(shù),每個(gè)樹(shù)的級(jí)層數(shù)m為3并且每個(gè)散列列表都包括兩個(gè)散列數(shù)值,分別由參考數(shù)字521和531表示的頂端散列數(shù)值都被存儲(chǔ)在安全芯片105的安全存儲(chǔ)器203中,分別作為第一數(shù)據(jù)管理樹(shù)HT(1)520和第二數(shù)據(jù)管理樹(shù)HT(2)530的管理數(shù)據(jù)驗(yàn)證值。頂端散列數(shù)值521(頂端散列數(shù)值1)就是第一數(shù)據(jù)管理樹(shù)HT(1)520的最高級(jí)層上的散列列表522中的一個(gè)散列數(shù)值。另一方面,頂端散列數(shù)值531(頂端散列數(shù)值2)就是第二數(shù)據(jù)管理樹(shù)HT(2)530的最高級(jí)層上的散列列表532中的一個(gè)散列數(shù)值。
如果在該結(jié)構(gòu)中進(jìn)行數(shù)據(jù)驗(yàn)證或者數(shù)據(jù)更新處理,則該數(shù)據(jù)管理設(shè)備101就會(huì)通知安全芯片105對(duì)哪個(gè)包含管理對(duì)象數(shù)據(jù)的數(shù)據(jù)管理樹(shù)進(jìn)行處理。在收到數(shù)據(jù)管理設(shè)備101的通知之后,安全芯片105選擇包括將要被處理的管理對(duì)象數(shù)據(jù)的數(shù)據(jù)管理樹(shù),并進(jìn)行處理。通過(guò)提供一種結(jié)構(gòu),在該結(jié)構(gòu)中,根據(jù)由數(shù)據(jù)管理設(shè)備101的CPU102發(fā)出的命令增加以及刪除由安全芯片105的安全存儲(chǔ)器203管理的管理數(shù)據(jù)驗(yàn)證值,可以任意的改變被管理的管理數(shù)據(jù)樹(shù)的數(shù)量。
在上面所述的實(shí)施例中,頂端散列數(shù)值被存儲(chǔ)在安全芯片105的安全存儲(chǔ)器203中,作為數(shù)據(jù)管理驗(yàn)證值??墒牵骓敹松⒘袛?shù)值的是,頂端散列列表本身被存儲(chǔ)在安全芯片105的安全存儲(chǔ)器203中,作為數(shù)據(jù)管理驗(yàn)證值。
如圖16所示,數(shù)據(jù)管理樹(shù)的級(jí)層數(shù)m為3,例如,頂端(根)散列列表511自己被存儲(chǔ)在安全芯片105的安全存儲(chǔ)器203中,作為數(shù)據(jù)管理驗(yàn)證值,而不是根據(jù)頂端散列列表511得到頂端散列數(shù)值并將頂端散列數(shù)值存儲(chǔ)在安全芯片105的安全存儲(chǔ)器203中。需要注意的是,在n叉數(shù)據(jù)管理樹(shù)的情況下,頂端散列列表551包括n個(gè)散列數(shù)值,因此它們都被存儲(chǔ)在安全芯片105的安全存儲(chǔ)器203中。還值得注意的是,n個(gè)散列數(shù)值都被存儲(chǔ)在安全芯片105的安全存儲(chǔ)器203中,并與指定給它的散列數(shù)值指數(shù)k相關(guān)。
在上面所述的實(shí)施例中,一般的,管理數(shù)據(jù)驗(yàn)證值同數(shù)據(jù)管理樹(shù)相關(guān)。也就是說(shuō),頂端散列數(shù)值被設(shè)置作為管理數(shù)據(jù)驗(yàn)證值。但是,數(shù)據(jù)管理樹(shù)中的任何數(shù)據(jù)及其中的任何散列列表都可以被設(shè)置作為管理數(shù)據(jù)驗(yàn)證值。
如圖17所示,例如,數(shù)據(jù)管理樹(shù)中的任何數(shù)據(jù)及其中的任何散列列表都可以被設(shè)置作為管理數(shù)據(jù)驗(yàn)證值。圖17中所示的數(shù)據(jù)D(0)571就是數(shù)據(jù)管理樹(shù)572的管理數(shù)據(jù)驗(yàn)證值,其中包括散列列表HL-A以及數(shù)據(jù)段D-A。
圖17中所示的一個(gè)散列列表中的散列數(shù)值HL(2,1).HL(1)573就是數(shù)據(jù)管理樹(shù)574的管理數(shù)據(jù)驗(yàn)證值,其中包括散列列表HL-B以及數(shù)據(jù)段D-B。
這些管理數(shù)據(jù)驗(yàn)證值都被存儲(chǔ)在安全芯片105的安全存儲(chǔ)器203中并被從安全存儲(chǔ)器203中讀出來(lái),以根據(jù)數(shù)據(jù)管理樹(shù)被用于數(shù)據(jù)驗(yàn)證或更新過(guò)程,其中該數(shù)據(jù)管理樹(shù)包括被用作驗(yàn)證對(duì)象或者被更新的數(shù)據(jù)。
在上面所述的實(shí)施例中,數(shù)據(jù)管理樹(shù)包括散列列表,每個(gè)散列列表中都包括多個(gè)散列數(shù)值并被組織在一起構(gòu)成級(jí)層??墒牵摂?shù)據(jù)管理樹(shù)也可以被指定到一個(gè)結(jié)構(gòu)中,在該結(jié)構(gòu)中每個(gè)散列列表都被散列數(shù)值所代替。
如圖18中所示,管理對(duì)象數(shù)據(jù)段D(0)至D(7)被設(shè)置在最低的級(jí)層L(=0)上。在每個(gè)較高級(jí)層L(>0)上,由簡(jiǎn)單的散列數(shù)值替換多個(gè)散列列表中的每一個(gè),其中根據(jù)上面所述的實(shí)施例,每個(gè)散列列表通常都包括多個(gè)散列數(shù)值。
在圖18所示的數(shù)據(jù)管理數(shù)中,級(jí)層數(shù)為4并且管理對(duì)象數(shù)據(jù)段數(shù)為8。在圖中,符號(hào)D(x)表示級(jí)層L(=0)上的一段管理對(duì)象數(shù)據(jù),符號(hào)x表示指定給該管理對(duì)象數(shù)據(jù)D(x)的指數(shù)。符號(hào)H(x,y)表示級(jí)層L(>0)上的散列數(shù)值,符號(hào)x表示指定給該數(shù)據(jù)管理樹(shù)中級(jí)層L的數(shù)字,以及符號(hào)y表示指定給級(jí)層L(=x)上的散列數(shù)值(x,y)的指數(shù)。散列數(shù)值H(x,y)是根據(jù)將所有直接從屬的數(shù)據(jù)段與散列數(shù)值H(x,y)連接在一塊的數(shù)據(jù)生成的。
例如,由參考數(shù)字581表示的散列數(shù)值H(1,0)是根據(jù)數(shù)據(jù)段D(0)和D(1)生成的。具體的說(shuō),散列數(shù)值H(1,0)是根據(jù)連接數(shù)據(jù)段D(0)和D(1)的數(shù)據(jù)應(yīng)用散列算法例如SHA-1而生成的。也就是說(shuō),散列數(shù)值H(1,0)可以由以下的表達(dá)式表示Hash(D(0)‖D(1))其中符號(hào)‖表示數(shù)據(jù)鏈接操作符。
散列數(shù)值H(2,0)583是根據(jù)散列數(shù)值H(1,0)581和散列數(shù)值H(3,0)585生成的。另一方面,散列數(shù)值H(3,0)585是根據(jù)散列數(shù)值H(2,0)583和散列數(shù)值H(2,1)584生成的。
圖18示出了二叉數(shù)據(jù)管理樹(shù)的結(jié)構(gòu)框圖,其中的每個(gè)散列列表都包括兩個(gè)散列數(shù)值。數(shù)據(jù)管理樹(shù)的頂端散列數(shù)值就是散列數(shù)值H(3,0)585。安全芯片105中的安全存儲(chǔ)器203被用于存儲(chǔ)至少頂端散列數(shù)值H(3,0)作為管理數(shù)據(jù)驗(yàn)證值。其他的數(shù)據(jù)被存儲(chǔ)在數(shù)據(jù)管理設(shè)備101的主存儲(chǔ)單元104中。
根據(jù)包括構(gòu)成如上所述級(jí)層的散列數(shù)值的數(shù)據(jù)管理樹(shù)的數(shù)據(jù)管理方法允許例如數(shù)據(jù)驗(yàn)證處理,數(shù)據(jù)增加處理,數(shù)據(jù)修改處理,數(shù)據(jù)刪除處理,級(jí)層修改處理,加密處理,基于中間節(jié)點(diǎn)的數(shù)據(jù)驗(yàn)證處理,以及管理多個(gè)數(shù)據(jù)管理樹(shù)的過(guò)程按照與基于包括構(gòu)成級(jí)層的散列列表的數(shù)據(jù)管理樹(shù)的數(shù)據(jù)管理方法相同的方式進(jìn)行。與包括構(gòu)成級(jí)層的散列列表的數(shù)據(jù)管理樹(shù)相比,在包括構(gòu)成級(jí)層的散列列表的數(shù)據(jù)管理樹(shù)的情況下,通過(guò)將多個(gè)數(shù)據(jù)段鏈接在一塊來(lái)在數(shù)據(jù)驗(yàn)證過(guò)程中計(jì)算散列數(shù)值。這樣,就很有可能使得處理時(shí)間變長(zhǎng)。在管理對(duì)象數(shù)據(jù)較大時(shí),處理時(shí)間就會(huì)相當(dāng)長(zhǎng)??墒?,包括構(gòu)成級(jí)層的散列列表的數(shù)據(jù)管理樹(shù)會(huì)帶來(lái)的優(yōu)點(diǎn)就是,用于管理數(shù)據(jù)所需的信息量作為除了與管理對(duì)象數(shù)據(jù)本身以外的信息就是小的。圖19示出了一個(gè)用于實(shí)現(xiàn)一種方法的數(shù)據(jù)管理樹(shù)的框圖,其中該方法要求用于管理數(shù)據(jù)的信息,作為除了與管理對(duì)象數(shù)據(jù)本身以外的信息的信息量最小。
圖19為典型數(shù)據(jù)管理樹(shù)的框圖,該數(shù)據(jù)管理樹(shù)包括構(gòu)成級(jí)層的散列列表,級(jí)層數(shù)m為2,管理對(duì)象數(shù)據(jù)段為n。在具有這種結(jié)構(gòu)的數(shù)據(jù)管理樹(shù)的情況下,由參考數(shù)字591表示的頂端散列數(shù)值H(1,0)是根據(jù)將所有n段管理對(duì)象數(shù)據(jù)鏈接在一起的數(shù)據(jù)生成的。也就是說(shuō),該頂端散列數(shù)值H(1,0)是除了管理對(duì)象數(shù)據(jù)本身以外唯一所需的信息,并可以由下面的表達(dá)式表達(dá)Hash(D(0)‖D(1)‖D(2)‖D(3)‖-‖D(n-1))安全芯片105中的安全存儲(chǔ)器203被用于僅僅存儲(chǔ)頂端散列數(shù)值H(1,0)作為管理數(shù)據(jù)驗(yàn)證值。在這種情況下,不存在數(shù)據(jù)管理所需的信息作為除了管理對(duì)象數(shù)據(jù)段本身以外的信息,它們被存儲(chǔ)在數(shù)據(jù)管理設(shè)備101的主存儲(chǔ)單元104中。
圖20示出了一種基于有組織的散列數(shù)值的數(shù)據(jù)管理樹(shù)的數(shù)據(jù)結(jié)構(gòu)的框圖,對(duì)它們進(jìn)行調(diào)整,以縮短它們進(jìn)行處理,例如對(duì)于具有大尺寸的管理對(duì)象數(shù)據(jù)進(jìn)行數(shù)據(jù)驗(yàn)證處理,所花費(fèi)的時(shí)間。
圖20為顯示包括構(gòu)成級(jí)層的散列數(shù)值的典型數(shù)據(jù)管理樹(shù)的框圖,其中級(jí)層數(shù)m為5,管理數(shù)據(jù)數(shù)為8。該數(shù)據(jù)管理數(shù)同圖18中所示的不同之處在于在如圖20所示的數(shù)據(jù)管理樹(shù)的情況下,用于計(jì)算級(jí)層L(=1)上的各個(gè)散列數(shù)值所需的管理對(duì)象數(shù)據(jù)段的數(shù)量被減1??墒?,結(jié)果,級(jí)層數(shù)被加1。
也就是說(shuō),級(jí)層L(=1)上的各個(gè)散列數(shù)值是只從一段管理對(duì)象數(shù)據(jù)生成的。例如,只從管理對(duì)象數(shù)據(jù)D(0)生成由參考數(shù)字601表示的散列數(shù)值H(1,0)。
通過(guò)這種結(jié)構(gòu),就可以將進(jìn)行處理,例如數(shù)據(jù)驗(yàn)證處理所花費(fèi)的時(shí)間縮短為大致等于對(duì)于基于有組織散列列表的數(shù)據(jù)管理樹(shù)的值,即使是對(duì)于體積較大的管理對(duì)象數(shù)據(jù)??墒牵Y(jié)果,作為除了存儲(chǔ)在數(shù)據(jù)管理設(shè)備101的主存儲(chǔ)單元104中的管理對(duì)象數(shù)據(jù)本身以外的信息,用于管理數(shù)據(jù)所需的信息量被增加至大致等于基于有組織散列列表的數(shù)據(jù)管理樹(shù)的信息量。
至此,已經(jīng)參照優(yōu)選實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明??墒?,對(duì)于本領(lǐng)域內(nèi)的技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明的實(shí)質(zhì)的情況下對(duì)實(shí)施例進(jìn)行修改或者生成替代物是顯而易見(jiàn)的。也就是說(shuō),該說(shuō)明書(shū)僅僅通過(guò)優(yōu)選實(shí)施例對(duì)本發(fā)明進(jìn)行了說(shuō)明,但是這些優(yōu)選實(shí)施例不能被解釋為對(duì)本發(fā)明的限制。本發(fā)明的實(shí)質(zhì)只能由該說(shuō)明書(shū)后部所附的權(quán)利要求書(shū)所定義的范圍來(lái)確定。
需要注意的是,如上所述的一系列處理過(guò)程可以在硬件、軟件結(jié)構(gòu)中,或者同時(shí)使用硬件和軟件的組合結(jié)構(gòu)中進(jìn)行。如果通過(guò)執(zhí)行各種構(gòu)成軟件的程序來(lái)進(jìn)行一系列的處理,則一般從下載站點(diǎn)或記錄介質(zhì)將定義處理過(guò)程的程序安裝到包括嵌入式特定目的硬件的計(jì)算機(jī)中。該程序也可以被安裝到一般目的個(gè)人計(jì)算機(jī)中,其中該一般目的個(gè)人計(jì)算機(jī)可以通過(guò)執(zhí)行安裝的程序來(lái)實(shí)現(xiàn)各種功能。
除了從下載站點(diǎn)或記錄介質(zhì)中將程序安裝到計(jì)算機(jī)或個(gè)人計(jì)算機(jī)中之外,還可以通過(guò)事先將程序存儲(chǔ)在記錄介質(zhì)例如ROM和/或硬盤(pán)中來(lái)向用戶(hù)發(fā)行程序,其中該記錄介質(zhì)被包括在計(jì)算機(jī)或個(gè)人計(jì)算機(jī)中??墒?,如果要從記錄介質(zhì)將程序安裝到計(jì)算機(jī)或個(gè)人計(jì)算機(jī)中,則該程序就要被制成適用于臨時(shí)或永久記錄在可移動(dòng)記錄介質(zhì)的軟件包。從中將程序安裝到計(jì)算機(jī)或個(gè)人計(jì)算機(jī)中的可移動(dòng)記錄介質(zhì)可以是軟盤(pán),CD-ROM(光盤(pán)只讀存儲(chǔ)器),MO(磁光)盤(pán),DVD(數(shù)字化視頻光盤(pán)),磁盤(pán)或者可編程記錄介質(zhì),例如半導(dǎo)體存儲(chǔ)器。
需要注意的是,除了可以從如上所述的可移動(dòng)記錄介質(zhì)將程序安裝到計(jì)算機(jī)或個(gè)人計(jì)算機(jī)中以外,還可以從前面提到的下載站點(diǎn)將程序安裝到計(jì)算機(jī)或個(gè)人計(jì)算機(jī)中。在這種情況下,可以通過(guò)無(wú)線通信或借助網(wǎng)絡(luò)例如LAN(局域網(wǎng))或互聯(lián)網(wǎng)將程序下載到計(jì)算機(jī)或個(gè)人計(jì)算機(jī)中。接著,計(jì)算機(jī)或個(gè)人計(jì)算機(jī)就能夠?qū)⒔邮盏降某绦虬惭b到嵌入式的記錄介質(zhì),例如硬盤(pán)中。
需要注意的是,在該說(shuō)明書(shū)中,規(guī)定存儲(chǔ)在記錄介質(zhì)中的程序的步驟當(dāng)然也可以按照預(yù)定的次序沿著時(shí)間軸被順序執(zhí)行??墒牵孕枰赋龅氖?,這些步驟并不是必須按照預(yù)定的次序沿著時(shí)間軸被順序執(zhí)行。而是,這些步驟可以包括并行執(zhí)行,或依靠用于執(zhí)行處理的設(shè)備的處理能力單獨(dú)執(zhí)行,或者根據(jù)需要進(jìn)行的處理片斷。另外,該說(shuō)明書(shū)中的系統(tǒng)就表示包括有多個(gè)邏輯上彼此相連設(shè)備的整個(gè)系統(tǒng)。可是,該設(shè)備并不需要在物理上被封裝在一個(gè)盒子中。
由本發(fā)明提供的數(shù)據(jù)管理設(shè)備,應(yīng)用在該數(shù)據(jù)管理設(shè)備中的數(shù)據(jù)管理方法,以及用于實(shí)現(xiàn)該數(shù)據(jù)管理方法的計(jì)算機(jī)程序可以被應(yīng)用于一種結(jié)構(gòu),用于為了避免數(shù)據(jù)偽造而對(duì)包括內(nèi)容,許可以及記帳數(shù)據(jù)的數(shù)據(jù)進(jìn)行管理。
在本發(fā)明的結(jié)構(gòu)中,設(shè)置在數(shù)據(jù)管理樹(shù)頂端的數(shù)據(jù)被存儲(chǔ)在安全芯片的存儲(chǔ)器中。該存儲(chǔ)的數(shù)據(jù)例如散列數(shù)值(hash value)是通過(guò)應(yīng)用基于直接從屬于被計(jì)算數(shù)據(jù)的數(shù)據(jù)的不可逆函數(shù)進(jìn)行計(jì)算得到的結(jié)果。該被存儲(chǔ)的散列數(shù)值被用作管理數(shù)據(jù)驗(yàn)證值,用于驗(yàn)證數(shù)據(jù)管理樹(shù)底層的級(jí)層上提供的管理對(duì)象數(shù)據(jù)的有效性。這樣,即使管理對(duì)象數(shù)據(jù)段的數(shù)量增加了,也不要增加管理數(shù)據(jù)驗(yàn)證值的數(shù)據(jù)量。也就是說(shuō),可以對(duì)大量的管理對(duì)象數(shù)據(jù)段進(jìn)行防偽驗(yàn)證處理,而不需要增加管理數(shù)據(jù)驗(yàn)證值的數(shù)據(jù)量。因此,本發(fā)明可以被應(yīng)用于用于執(zhí)行各種數(shù)據(jù)管理的應(yīng)用中。另外,本發(fā)明還提供了一種結(jié)構(gòu),在該結(jié)構(gòu)中,基于包含在數(shù)據(jù)管理樹(shù)中的散列數(shù)值的數(shù)據(jù)驗(yàn)證過(guò)程也可以在數(shù)據(jù)更新過(guò)程,例如增加、刪除、修改管理對(duì)象數(shù)據(jù)的操作中同時(shí)進(jìn)行。這樣,本發(fā)明也可以在進(jìn)行數(shù)據(jù)更新處理,例如增加、刪除、修改管理對(duì)象數(shù)據(jù)的操作,的設(shè)備中被利用。
權(quán)利要求
1.一種數(shù)據(jù)管理設(shè)備,包括管理數(shù)據(jù)存儲(chǔ)單元,用于存儲(chǔ)管理對(duì)象數(shù)據(jù);管理數(shù)據(jù)驗(yàn)證值存儲(chǔ)單元,用于存儲(chǔ)被置于n叉數(shù)據(jù)管理樹(shù)頂端的頂端數(shù)值,作為管理數(shù)據(jù)驗(yàn)證值,其中n為大于或等于2的整數(shù);數(shù)據(jù)驗(yàn)證處理單元,用于根據(jù)所述管理數(shù)據(jù)驗(yàn)證值對(duì)所述管理對(duì)象數(shù)據(jù)進(jìn)行驗(yàn)證其有效性的處理,其中所述n叉數(shù)據(jù)管理樹(shù)包括位于所述n叉數(shù)據(jù)管理樹(shù)最低層的級(jí)層上的所述管理對(duì)象數(shù)據(jù)以及位于所述n叉數(shù)據(jù)管理樹(shù)較高層的任意特定級(jí)層上的數(shù)據(jù),作為通過(guò)使用基于位于直接從屬于所述特定級(jí)層的另一級(jí)層上的其它數(shù)據(jù)的不可逆函數(shù)來(lái)進(jìn)行計(jì)算的結(jié)果;以及所述頂端數(shù)值是通過(guò)使用基于位于所述n叉數(shù)據(jù)管理數(shù)最高層的級(jí)層上的數(shù)據(jù)的所述不可逆函數(shù)來(lái)進(jìn)行計(jì)算的結(jié)果。
2.根據(jù)權(quán)利要求1的數(shù)據(jù)管理設(shè)備,其中所述不可逆函數(shù)為散列函數(shù)。
3.根據(jù)權(quán)利要求1的數(shù)據(jù)管理設(shè)備,其中所述管理數(shù)據(jù)驗(yàn)證值存儲(chǔ)單元是一個(gè)嵌入在具有防止篡改結(jié)構(gòu)的安全芯片中的安全存儲(chǔ)器。
4.根據(jù)權(quán)利要求1的數(shù)據(jù)管理設(shè)備,其中所述數(shù)據(jù)驗(yàn)證處理單元被嵌入在具有防止篡改結(jié)構(gòu)的安全芯片中;以及具有一個(gè)結(jié)構(gòu),用于通過(guò)從所述管理數(shù)據(jù)存儲(chǔ)單元輸入所述數(shù)據(jù)驗(yàn)證過(guò)程中所需的數(shù)據(jù)來(lái)進(jìn)行數(shù)據(jù)驗(yàn)證處理。
5.根據(jù)權(quán)利要求1的數(shù)據(jù)管理設(shè)備,其中所述管理數(shù)據(jù)驗(yàn)證值存儲(chǔ)單元是一個(gè)嵌入在具有防止篡改結(jié)構(gòu)的安全芯片中的安全存儲(chǔ)器;以及所述數(shù)據(jù)驗(yàn)證處理單元具有一個(gè)結(jié)構(gòu),用于通過(guò)從所述管理數(shù)據(jù)存儲(chǔ)單元輸入所述數(shù)據(jù)驗(yàn)證過(guò)程中所需的數(shù)據(jù)來(lái)進(jìn)行數(shù)據(jù)驗(yàn)證處理。
6.根據(jù)權(quán)利要求1的數(shù)據(jù)管理設(shè)備,其中各個(gè)構(gòu)成所述n叉數(shù)據(jù)管理樹(shù)的節(jié)點(diǎn)都是一個(gè)包括n個(gè)數(shù)值的數(shù)據(jù)列表,其中每個(gè)數(shù)值都是作為通過(guò)使用基于位于直接從屬于所述數(shù)據(jù)列表的一個(gè)級(jí)層上的n段數(shù)據(jù)的所述不可逆函數(shù)來(lái)進(jìn)行計(jì)算的結(jié)果而被獲得的;以及所述數(shù)據(jù)驗(yàn)證處理單元進(jìn)行數(shù)據(jù)驗(yàn)證過(guò)程,每個(gè)過(guò)程都確定在貫穿所述n叉數(shù)據(jù)管理樹(shù)從高層的級(jí)層開(kāi)始至底層的級(jí)層結(jié)束,或者從低層的級(jí)層開(kāi)始至高層的級(jí)層結(jié)束的方向上是否驗(yàn)證數(shù)據(jù)與核對(duì)數(shù)據(jù)一個(gè)接一個(gè)的順序匹配,其中所述驗(yàn)證數(shù)據(jù)是通過(guò)使用基于提供在較低級(jí)層上數(shù)據(jù)的所述不可逆函數(shù)來(lái)進(jìn)行計(jì)算的結(jié)果;所述核對(duì)數(shù)值就是已經(jīng)被包括在較高級(jí)層上的數(shù)據(jù)列表上的數(shù)據(jù),作為所述不可逆函數(shù)的計(jì)算結(jié)果;以及所述較低級(jí)層和所述較高級(jí)層就是所述n叉數(shù)據(jù)管理樹(shù)中任意的兩個(gè)級(jí)層,其中所述較低級(jí)層被用作直接從屬于所述較高級(jí)層。
7.根據(jù)權(quán)利要求6的數(shù)據(jù)管理設(shè)備,其中所述數(shù)據(jù)驗(yàn)證處理單元根據(jù)被用作每個(gè)級(jí)層上數(shù)據(jù)列表的標(biāo)識(shí)的列表指數(shù)j并且根據(jù)被用作每個(gè)數(shù)據(jù)列表上不可逆函數(shù)計(jì)算結(jié)果的標(biāo)識(shí)的不可逆函數(shù)指數(shù)k,在整個(gè)所述n叉數(shù)據(jù)管理樹(shù)中確定一個(gè)驗(yàn)證路徑,該路徑從高層的級(jí)層開(kāi)始向著低層的級(jí)層方向或者從低層的級(jí)層開(kāi)始向著高層的級(jí)層方向;以及對(duì)所述確定驗(yàn)證路徑上的數(shù)據(jù)進(jìn)行所述數(shù)據(jù)驗(yàn)證處理。
8.根據(jù)權(quán)利要求7的數(shù)據(jù)管理設(shè)備,其中只有當(dāng)在整個(gè)所述n叉數(shù)據(jù)管理樹(shù)中,從高層的級(jí)層開(kāi)始向著低層的級(jí)層方向或者從低層的級(jí)層開(kāi)始向著高層的級(jí)層方向上進(jìn)行的所有所述數(shù)據(jù)驗(yàn)證過(guò)程中的所述驗(yàn)證數(shù)據(jù)與所述核對(duì)數(shù)據(jù)相匹配時(shí),所述數(shù)據(jù)驗(yàn)證處理單元才確定沒(méi)有數(shù)據(jù)被偽造。
9.根據(jù)權(quán)利要求1的數(shù)據(jù)管理設(shè)備,其中所述數(shù)據(jù)驗(yàn)證處理單元在整個(gè)所述n叉數(shù)據(jù)管理樹(shù)中,從高層的級(jí)層開(kāi)始向著低層的級(jí)層方向或者從低層的級(jí)層開(kāi)始向著高層的級(jí)層方向上進(jìn)行的所述數(shù)據(jù)驗(yàn)證處理,作為隨著在所述n叉數(shù)據(jù)管理樹(shù)中進(jìn)行增加、刪除、或修改數(shù)據(jù)操作的數(shù)據(jù)更新處理的一部分,并且只有當(dāng)在所有所述數(shù)據(jù)驗(yàn)證過(guò)程中的所述驗(yàn)證數(shù)據(jù)與所述核對(duì)數(shù)據(jù)相匹配時(shí)才更新數(shù)據(jù)。
10.根據(jù)權(quán)利要求1的數(shù)據(jù)管理設(shè)備,其中作為隨著向所述n叉數(shù)據(jù)管理樹(shù)增加級(jí)層或從所述n叉數(shù)據(jù)管理樹(shù)中刪除級(jí)層的操作同時(shí)進(jìn)行的用于修改級(jí)層結(jié)構(gòu)的一部分,所述數(shù)據(jù)驗(yàn)證處理單元根據(jù)先更新數(shù)據(jù)進(jìn)行數(shù)據(jù)驗(yàn)證處理,作為驗(yàn)證隨著所述修改級(jí)層結(jié)構(gòu)的處理同時(shí)進(jìn)行的數(shù)據(jù)更新處理所需數(shù)據(jù)有效性的處理,并且只有當(dāng)所述數(shù)據(jù)驗(yàn)證處理確定沒(méi)有數(shù)據(jù)被偽造時(shí),才允許進(jìn)行所述修改級(jí)層結(jié)構(gòu)的處理。
11.根據(jù)權(quán)利要求1的數(shù)據(jù)管理設(shè)備,其中所述數(shù)據(jù)驗(yàn)證處理單元被用于存儲(chǔ)所述頂端數(shù)值作為管理數(shù)據(jù)驗(yàn)證值,其中該頂端數(shù)值被放置在所述n叉數(shù)據(jù)管理樹(shù)的頂部作為通過(guò)使用所述不可逆函數(shù)進(jìn)行計(jì)算的結(jié)果,還被用于存儲(chǔ)所述n叉數(shù)據(jù)管理樹(shù)的的中間級(jí)層上的中間數(shù)據(jù)作為另一個(gè)管理數(shù)據(jù)驗(yàn)證值;以及為了驗(yàn)證包含在所述n叉數(shù)據(jù)管理樹(shù)中作為從屬于所述中間數(shù)據(jù)的數(shù)據(jù)的數(shù)據(jù)的有效性,所述數(shù)據(jù)驗(yàn)證處理單元通過(guò)使用所述中間數(shù)據(jù)作為管理數(shù)據(jù)驗(yàn)證值來(lái)進(jìn)行數(shù)據(jù)驗(yàn)證處理。
12.根據(jù)權(quán)利要求1的數(shù)據(jù)管理設(shè)備,其中所述數(shù)據(jù)驗(yàn)證處理單元被用于存儲(chǔ)多個(gè)計(jì)算結(jié)果,其中這些計(jì)算結(jié)果都由所述不可逆函數(shù)輸出,因?yàn)閿?shù)據(jù)管理樹(shù)與所述計(jì)算結(jié)果一樣多,并將其置于所述各個(gè)數(shù)據(jù)管理樹(shù)的頂部,每一個(gè)都作為管理數(shù)據(jù)驗(yàn)證值;以及為了驗(yàn)證包含在所述數(shù)據(jù)管理樹(shù)中一個(gè)特定數(shù)據(jù)管理樹(shù)中的數(shù)據(jù)的有效性,所述驗(yàn)證處理單元進(jìn)行設(shè)置一個(gè)所述計(jì)算結(jié)果的數(shù)據(jù)驗(yàn)證處理,該結(jié)果是由所述不可逆函數(shù)輸出的,并被放置在所述特定數(shù)據(jù)管理樹(shù)的頂部,作為管理數(shù)據(jù)驗(yàn)證值。
13.根據(jù)權(quán)利要求1的數(shù)據(jù)管理設(shè)備,其中所述管理數(shù)據(jù)存儲(chǔ)單元被用于存儲(chǔ)加密的管理對(duì)象數(shù)據(jù);以及一個(gè)適用于加密或解密所述管理對(duì)象數(shù)據(jù)的密鑰被存儲(chǔ)在具有防止偽造結(jié)構(gòu)的安全芯片的存儲(chǔ)單元中。
14.根據(jù)權(quán)利要求1的數(shù)據(jù)管理設(shè)備,其中所述管理數(shù)據(jù)存儲(chǔ)單元被用于存儲(chǔ)加密后的管理對(duì)象數(shù)據(jù);用于對(duì)適于加密或解密所述管理對(duì)象數(shù)據(jù)的第一密鑰進(jìn)行加密的第二密鑰被存儲(chǔ)在具有防止偽造結(jié)構(gòu)的安全芯片的存儲(chǔ)單元中;以及所述加密后的第一密鑰通過(guò)使用所述第二密鑰而在所述安全芯片中被解密,并且作為解密結(jié)果而得到的所述第一密鑰被輸出給所述安全芯片外部的部件。
15.根據(jù)權(quán)利要求1的數(shù)據(jù)管理設(shè)備,其中構(gòu)成所述n叉數(shù)據(jù)管理樹(shù)的各個(gè)節(jié)點(diǎn)都包括僅僅一個(gè)通過(guò)使用所述基于直接從屬于所述節(jié)點(diǎn)的級(jí)層上的所述n個(gè)數(shù)據(jù)段的不可逆函數(shù)作為計(jì)算結(jié)果而被生成的數(shù)值;以及所述數(shù)據(jù)驗(yàn)證處理單元進(jìn)行處理,以確定是否驗(yàn)證數(shù)據(jù)與核對(duì)數(shù)據(jù)相匹配,其中所述驗(yàn)證數(shù)據(jù)是通過(guò)使用所述基于較低級(jí)層上的n段數(shù)據(jù)的不可逆函數(shù)進(jìn)行計(jì)算的結(jié)果;所述核對(duì)數(shù)據(jù)是唯一的一個(gè)已經(jīng)被置于較高級(jí)層上的數(shù)值,作為所述不可逆函數(shù)的計(jì)算結(jié)果;以及所述較低層的級(jí)層以及所述較高層的級(jí)層是所述n叉數(shù)據(jù)管理樹(shù)中的任意兩個(gè)級(jí)層,并且所述較低層的級(jí)層直接從屬于所述較高層的級(jí)層。
16.一種數(shù)據(jù)管理方法,包括數(shù)據(jù)驗(yàn)證步驟,該步驟通過(guò)使用被置于n叉數(shù)據(jù)管理樹(shù)頂部的頂端數(shù)值作為管理數(shù)據(jù)驗(yàn)證值來(lái)進(jìn)行數(shù)據(jù)驗(yàn)證處理,其中n為大于或等于2多整數(shù),其中所述n叉數(shù)據(jù)管理樹(shù)包括位于所述n叉數(shù)據(jù)管理樹(shù)最低層的級(jí)層上的所述管理對(duì)象數(shù)據(jù)以及位于所述n叉數(shù)據(jù)管理樹(shù)較高層的任意特定級(jí)層上的數(shù)據(jù),作為通過(guò)使用基于位于直接從屬于所述特定級(jí)層的另一級(jí)層上的其它數(shù)據(jù)的不可逆函數(shù)來(lái)進(jìn)行計(jì)算的結(jié)果;所述頂端數(shù)值是通過(guò)使用基于位于所述n叉數(shù)據(jù)管理數(shù)最高層的級(jí)層上的數(shù)據(jù)的所述不可逆函數(shù)來(lái)進(jìn)行計(jì)算的結(jié)果;以及所述數(shù)據(jù)驗(yàn)證步驟包括進(jìn)行確定過(guò)程的步驟,每個(gè)過(guò)程都確定在貫穿所述n叉數(shù)據(jù)管理樹(shù)從高層的級(jí)層開(kāi)始至底層的級(jí)層結(jié)束,或者從低層的級(jí)層開(kāi)始至高層的級(jí)層結(jié)束的方向上是否驗(yàn)證數(shù)據(jù)與核對(duì)數(shù)據(jù)一個(gè)接一個(gè)的順序匹配,其中所述驗(yàn)證數(shù)據(jù)是通過(guò)使用基于提供在較低級(jí)層上數(shù)據(jù)的所述不可逆函數(shù)進(jìn)行計(jì)算的結(jié)果;所述核對(duì)數(shù)值就是已經(jīng)被包括在較高級(jí)層上的數(shù)據(jù)列表上的數(shù)據(jù),作為所述不可逆函數(shù)的計(jì)算結(jié)果;以及所述較低級(jí)層和所述較高級(jí)層就是所述n叉數(shù)據(jù)管理樹(shù)中任意的兩個(gè)級(jí)層,其中所述較低級(jí)層被用作直接從屬于所述較高級(jí)層。
17.根據(jù)權(quán)利要求16的數(shù)據(jù)管理方法,其中所述不可逆函數(shù)為散列函數(shù)。
18.根據(jù)權(quán)利要求16的數(shù)據(jù)管理方法,其中構(gòu)成所述n叉數(shù)據(jù)管理樹(shù)的節(jié)點(diǎn)就是包括n個(gè)數(shù)值的數(shù)據(jù)列表,其中每個(gè)數(shù)值都是作為通過(guò)使用所述基于直接從屬于所述數(shù)據(jù)列表的級(jí)層上的所述n個(gè)數(shù)據(jù)段的不可逆函數(shù)作為計(jì)算結(jié)果而得到的;以及在所述數(shù)據(jù)驗(yàn)證步驟,進(jìn)行確定過(guò)程以確定在貫穿所述n叉數(shù)據(jù)管理樹(shù)從高層的級(jí)層開(kāi)始至底層的級(jí)層結(jié)束,或者從低層的級(jí)層開(kāi)始至高層的級(jí)層結(jié)束的方向上是否驗(yàn)證數(shù)據(jù)與核對(duì)數(shù)據(jù)一個(gè)過(guò)程接著一個(gè)過(guò)程的順序匹配,其中所述驗(yàn)證數(shù)據(jù)是通過(guò)使用基于提供在較低級(jí)層上數(shù)據(jù)的所述不可逆函數(shù)進(jìn)行計(jì)算的結(jié)果;所述核對(duì)數(shù)值就是已經(jīng)被包括在較高級(jí)層上的數(shù)據(jù)列表上的數(shù)據(jù),作為所述不可逆函數(shù)的計(jì)算結(jié)果;以及所述較低級(jí)層和所述較高級(jí)層就是所述n叉數(shù)據(jù)管理樹(shù)中任意的兩個(gè)級(jí)層,其中所述較低級(jí)層被用作直接從屬于所述較高級(jí)層。
19.根據(jù)權(quán)利要求16的數(shù)據(jù)管理方法,其中所述數(shù)據(jù)管理方法還包括步驟根據(jù)被用作每個(gè)級(jí)層上數(shù)據(jù)列表的標(biāo)識(shí)的列表指數(shù)j并且根據(jù)被用作每個(gè)數(shù)據(jù)列表上不可逆函數(shù)計(jì)算結(jié)果的標(biāo)識(shí)的不可逆函數(shù)指數(shù)k,在整個(gè)所述n叉數(shù)據(jù)管理樹(shù)中確定一個(gè)驗(yàn)證路徑,該路徑從高層的級(jí)層開(kāi)始向著低層的級(jí)層方向或者從低層的級(jí)層開(kāi)始向著高層的級(jí)層方向,在所述數(shù)據(jù)驗(yàn)證步驟,對(duì)所述確定驗(yàn)證路徑上的數(shù)據(jù)進(jìn)行所述數(shù)據(jù)驗(yàn)證處理。
20.根據(jù)權(quán)利要求16的數(shù)據(jù)管理方法,其中所述數(shù)據(jù)驗(yàn)證處理在整個(gè)所述n叉數(shù)據(jù)管理樹(shù)中,從高層的級(jí)層開(kāi)始向著低層的級(jí)層方向或者從低層的級(jí)層開(kāi)始向著高層的級(jí)層方向上進(jìn)行的所述數(shù)據(jù)驗(yàn)證處理,作為隨著在所述n叉數(shù)據(jù)管理樹(shù)中進(jìn)行增加、刪除、或修改數(shù)據(jù)操作的數(shù)據(jù)更新處理的一部分,并且只有當(dāng)在所有所述數(shù)據(jù)驗(yàn)證過(guò)程中的所述驗(yàn)證數(shù)據(jù)與所述核對(duì)數(shù)據(jù)相匹配時(shí)才更新數(shù)據(jù)。
21.根據(jù)權(quán)利要求16的數(shù)據(jù)管理方法,其中作為隨著向所述n叉數(shù)據(jù)管理樹(shù)增加級(jí)層或從所述n叉數(shù)據(jù)管理樹(shù)中刪除級(jí)層的操作同時(shí)進(jìn)行的用于修改級(jí)層結(jié)構(gòu)的一部分,進(jìn)行基于先更新數(shù)據(jù)的數(shù)據(jù)驗(yàn)證處理,以驗(yàn)證隨著所述修改級(jí)層結(jié)構(gòu)的處理同時(shí)進(jìn)行的數(shù)據(jù)更新處理所需數(shù)據(jù)的有效性,并且只有當(dāng)所述數(shù)據(jù)驗(yàn)證處理確定沒(méi)有數(shù)據(jù)被偽造時(shí),才允許進(jìn)行所述修改級(jí)層結(jié)構(gòu)的處理。
22.根據(jù)權(quán)利要求16的數(shù)據(jù)管理方法,其中在所述數(shù)據(jù)驗(yàn)證步驟,為了驗(yàn)證包含在所述n叉數(shù)據(jù)管理樹(shù)中作為從屬于所述中間數(shù)據(jù)的數(shù)據(jù)的有效性,通過(guò)使用所述n叉數(shù)據(jù)管理樹(shù)中間層的級(jí)層上的中間數(shù)據(jù)作為管理數(shù)據(jù)驗(yàn)證值來(lái)進(jìn)行數(shù)據(jù)驗(yàn)證處理。
23.根據(jù)權(quán)利要求16的數(shù)據(jù)管理方法,其中,在所述數(shù)據(jù)驗(yàn)證步驟,進(jìn)行一個(gè)過(guò)程以確定是否驗(yàn)證數(shù)據(jù)與核對(duì)數(shù)據(jù)相匹配,其中所述驗(yàn)證數(shù)據(jù)是通過(guò)使用基于提供在較低級(jí)層上的n段數(shù)據(jù)的所述不可逆函數(shù)進(jìn)行計(jì)算的結(jié)果;所述核對(duì)數(shù)值就是已經(jīng)被置于較高級(jí)層上的唯一的一個(gè)數(shù)值,作為所述不可逆函數(shù)的計(jì)算結(jié)果;以及所述較低級(jí)層和所述較高級(jí)層就是所述n叉數(shù)據(jù)管理樹(shù)中任意的兩個(gè)級(jí)層,其中所述較低級(jí)層被用作直接從屬于所述較高級(jí)層。
24.一種在計(jì)算機(jī)系統(tǒng)中被執(zhí)行,用以進(jìn)行數(shù)據(jù)驗(yàn)證處理的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包括數(shù)據(jù)驗(yàn)證步驟,該步驟通過(guò)使用被置于n叉數(shù)據(jù)管理樹(shù)頂部的頂端數(shù)值作為管理數(shù)據(jù)驗(yàn)證值來(lái)進(jìn)行數(shù)據(jù)驗(yàn)證處理,其中n為大于或等于2的整數(shù),其中所述n叉數(shù)據(jù)管理樹(shù)包括位于所述n叉數(shù)據(jù)管理樹(shù)最低層的級(jí)層上的所述管理對(duì)象數(shù)據(jù)以及位于所述n叉數(shù)據(jù)管理樹(shù)較高層的任意特定級(jí)層上的數(shù)據(jù),作為通過(guò)使用基于位于直接從屬于所述特定級(jí)層的另一級(jí)層上的其它數(shù)據(jù)的不可逆函數(shù)來(lái)進(jìn)行計(jì)算的結(jié)果;所述頂端數(shù)值是通過(guò)使用基于位于所述n叉數(shù)據(jù)管理數(shù)最高層的級(jí)層上的數(shù)據(jù)的所述不可逆函數(shù)來(lái)進(jìn)行計(jì)算的結(jié)果;以及所述數(shù)據(jù)驗(yàn)證步驟包括進(jìn)行確定過(guò)程的步驟,每個(gè)過(guò)程都確定在貫穿所述n叉數(shù)據(jù)管理樹(shù)從高層的級(jí)層開(kāi)始至底層的級(jí)層結(jié)束,或者從低層的級(jí)層開(kāi)始至高層的級(jí)層結(jié)束的方向上是否驗(yàn)證數(shù)據(jù)與核對(duì)數(shù)據(jù)一個(gè)接一個(gè)的順序匹配,其中所述驗(yàn)證數(shù)據(jù)是通過(guò)使用基于提供在較低級(jí)層上數(shù)據(jù)的所述不可逆函數(shù)進(jìn)行計(jì)算的結(jié)果;所述核對(duì)數(shù)值就是已經(jīng)被包括在較高級(jí)層上的數(shù)據(jù)列表上的數(shù)據(jù),作為所述不可逆函數(shù)的計(jì)算結(jié)果;以及所述較低級(jí)層和所述較高級(jí)層就是所述n叉數(shù)據(jù)管理樹(shù)中任意的兩個(gè)級(jí)層,其中所述較低級(jí)層被用作直接從屬于所述較高級(jí)層。
全文摘要
這里公開(kāi)了一種數(shù)據(jù)管理設(shè)備,其中包括一個(gè)管理數(shù)據(jù)存儲(chǔ)單元,用于存儲(chǔ)管理對(duì)象數(shù)據(jù),一個(gè)管理數(shù)據(jù)驗(yàn)證值存儲(chǔ)單元,用于存儲(chǔ)被置于n叉數(shù)據(jù)管理樹(shù)頂端的頂端數(shù)值,作為管理數(shù)據(jù)驗(yàn)證值,其中n為大于或等于2的整數(shù),以及一個(gè)數(shù)據(jù)驗(yàn)證處理單元,用于根據(jù)所述管理數(shù)據(jù)驗(yàn)證值對(duì)所述管理對(duì)象數(shù)據(jù)進(jìn)行驗(yàn)證其有效性的處理,其中,所述n叉數(shù)據(jù)管理樹(shù)包括位于所述n叉數(shù)據(jù)管理樹(shù)最低層的級(jí)層上的所述管理對(duì)象數(shù)據(jù)以及位于所述n叉數(shù)據(jù)管理樹(shù)較高層的任意特定級(jí)層上的數(shù)據(jù),作為通過(guò)使用基于位于直接從屬于所述特定級(jí)層的另一級(jí)層上的其它數(shù)據(jù)的不可逆函數(shù)來(lái)進(jìn)行計(jì)算的結(jié)果,以及所述頂端數(shù)值是通過(guò)使用基于位于所述n叉數(shù)據(jù)管理樹(shù)最高層的級(jí)層上的數(shù)據(jù)的所述不可逆函數(shù)來(lái)進(jìn)行計(jì)算的結(jié)果。
文檔編號(hào)G06F21/62GK1577298SQ200410068479
公開(kāi)日2005年2月9日 申請(qǐng)日期2004年7月12日 優(yōu)先權(quán)日2003年7月10日
發(fā)明者宮田耕自, 川島浩 申請(qǐng)人:索尼株式會(huì)社