1270017 九、發明說明: 【發明所屬之技術領域】 本發明係關於一種資料管理裝置、資料管理方法及電腦 程式。如關於可有效執行内容、許可證資訊及收費資訊等 須防止竄改之資訊之資料的驗證,提供一種於資料之補 充、刪除等之更新時,亦可對應之防止竄改及驗證功能之 資料管理裝置、資料管理方法及電腦程式。 【先前技術】 近來,除經由網際網路及衛星之通信外,亦盛行經由有 線、無線之各種通信網路分發音樂資料、圖像資料'遊戲 &式等各種資料之服務。此外,亦盛行經由DVD、CD、記 憶卡等可流通之記憶媒體之内容流通。此等流通内容係收 納於使用者擁有之如TV、PC(個人電腦)、再生專用器或是 遊戲機器等來使用。 PC等之使用者裝置中,於使用上述各種内容時,除使用 内容之外,使用者裝置之記憶部内還收納作為内容之使用 權資訊之許可證,或是收費資訊等各種資料。此等資料多 採防止使用者未授權重寫之構造。 種貫現防止資料竄改及驗證處理之構造係數位簽署。 其係應用公用鍵密碼方式之秘密鍵,藉由執行以竄改驗證 用之資料或資料概略值為對象之密碼處理,而生成簽署資 料’附加該資料作為竄改驗證用資料。 執行資料是否被竄改之驗證時,係應用對應於生成簽署 資料用之秘密鍵之公用鍵,來執行簽署資料之解碼處理, 92950.doc 1270017 吳原來貝亦即竄改驗證用之資料或是資料概略值一致 時,即判定為資料無竄改。^ —但疋’此種數位^署資料係更新收納於使用者裳置内之 貝料k gp不再疋保證該資料是否為正當更新之資料。 如使用者購買允許僅3次再生某個音樂内容之許可證。許 可證按照依據許可證執行内容使用處理之内容使用程式 (如内容播放器),而收納於使用者裳置之硬碟等記憶裝置 内。 内容使用程式於每次使用者再生内容㈣寫許可證。如: 剩餘再生允許次數=2, —剩餘再生允許次數=1, —剩餘再生允許次數=〇 寺。正當使用内容時,依據許可證,超過3次即無法執行内 容之再生。 但是,使用者將允許僅3次再生之許可證作為備份資料而 直接複製’並收納於記憶裝置内時,在執行3次依據原來許 可幀之内容再生後,仍可應用作為備份資料而保留之許^ 證來使用内容。 即使執行對許可正附加之數位簽署之驗證時,由於複製 貢料内亦附加有與原來相同之簽署資料, 衣 、 Μ阳^生内容使 用程式判斷係正當之許可證,而允許内定 、 丁 1令冉生之情況。 為求進行資料之竄改驗證,而使用管 貝枓之散列值作 為私改驗證用資料之構造,如揭示於專利文獻1 τ 〇 4s 是, 專利文獻1中揭示之構造存在須生成對庫於 颸於各官理資料之 92950.doc 1270017 散列值’保留作為管理資料驗證值,而隨著管理資料增加, 官理資料驗證值亦增加之問題。 專利文獻1 ··特開2003-85321號 有鑑於上述問題,本發明之目的在提供一種就許可證資 Λ及收費資訊等可能發生資料之更新、補充及刪除等之資 料,可確實執行竄改驗證之資料管理裝置、資料管理方法 及電腦程式。 彳 【發明内容】 本發明第一方面之資料管理裝置之特徵為具有: 官理資料記憶部,其係收納管理對象資料; 官理資料驗證值記憶部,其係收納將前述管理對象資料 作為最下層,並將依據下層資料之單向性函數之算出值作 為2階層資料,所設定之η分歧資料管理樹結構化係]以上 之正數)最上階設定之1個單向性函數算出值,作為管理資 料驗證值;及 、 驗戍處理部,其係依據前述管理資料驗證值執行管理資 料之驗證處理。 、 义再ί,本發明之資料管理裝置一種實施態樣之特徵為: 刖述單向性函數係散列函數。 义再2,本發明之資料管理裝置一種實施態樣之特徵為: I s理貝料驗證值記憶部係在具有防竄改構造之安全晶 片内構成之保全記憶體。 :者,本發明之資料管理裝置—種實施態樣之特徵為: 造係前述驗證處理部係、在具有防竄改構造之安全晶片 92950.doc 1270017 内構成,前述驗證處理邱心 6 i > ^处埋邛輸入自别述管理資料記憶部讀取 之驗證處理所需之資料來執行驗證處s。 、 再者,本發明之資料管理裝置—種實施態樣之特徵為. 其前述管理資料驗證值記憶料在具有防竄改構造 ,片内構成之保全§己憶體,前述驗證處理部輸入自 前述保全記憶體讀取之管理資料驗證值,來執行驗證處理。 再者’本發明之資料管理裝置-種實施態樣之特徵為: 其構造係構成前述n分歧資料管理樹結構之各節點係構成 分:依據正下方階層之η個資料收納η個單向性函數算出值 資料表别述驗證處理部將構成前述資料管理樹結構之 連f之兩個階層中’上階階層之資料表内所含之單向性函 數r出值作為對照用資料,將依據下階階層之資料,應用 單向性函數轉出之值作為驗證資料,自前述資料管理樹 結構之上階階層向下階階層’或是自下階階層向上階階層 依序執行驗證資料與對照用資料是否一致之判定處理。 再者,本發明之資料管理裝置一種實施態樣之特徵為: 其構造係前述驗證處理部依據各階層中作為資料表識別資 =之表索引j ’及各表中作為單向性函數算出值識別資訊之 單向性函數索引k ’來決定自前述資料管理樹結構之上階階 層向下階階層’或是自下階階層向上階階層之路徑,並執 行決定路徑上之資料之驗證處理。 再者,本發明之資料管理裝置一種實施態樣之特徵為: 其構造係前述驗證處理部自前述資料管理樹結構之上階階 層向下階階層’或是自下階階層向上階階層依序執行驗證 92950.doc 1270017 ==將全部對照處理成立作為條件,進行資料無霞改 彎 、^月之貝料官理裝置一種實施態樣之特徵為·· 其構造係前述驗f ^ @ ' 疋鉍也處理部於前述資料管理樹結構中進行侓 &貧料之補充、刪除或變更之資料錢處理時 料管理樹結構之上階階層向下階階層,或是自下階J: 上階階層執行驗證處理,並將全部之對照處理之成= 條件來進行資料更新。 下為 再者’本發明之資料瞢士 乂 、 衣置一種貫鉍您樣之特徵為: 具構造係前述驗證虛裡_认^ _ a處理部於前述資料管理樹結構中進行侔 隨階層之增加或減少虛王? ^ 處理之階層構造變更時,係依據隨著 5亥階層構造變更而雲i审立(— 、,而而要更新之育料之更新前資料來執行驗 δ豆處理’並依據贫路蛾》 »4々一 L亥驗证,將育料無竄改之判定作為條件, 允許前述階層構造變更處理。 再者’本發明之資料管理裝置-種實施態樣之特徵為: 其構造係前述管理資料輪^炊估 貝抖驗证值圮憶部係收納設於前述資料 管理樹結構最上階之1個單,柯 》 、 早Π〖生函數异出值作為管理資料 驗證值’並且收納前述資料管理樹結構之中間階層之中間 賁料作為管理資料驗證值,且前 且剐述驗證處理部在構成前述 中間資料之下階所含之資料管理樹結構之資料驗證中,係 執行設定前述中間資料作為管理資料驗證值之驗證處理。 再者,本發明之資料管理梦署 ^ &衣置一種實施態樣之特徵為·· 其構造係前述管理資料驗證值記憶部係收納設於數個資料 管理樹結構最上階之數個單向性函數算出值作為管理資料 92950.doc -10- 1270017 ”值且如述驗證處理部在構成前述資料管理樹結構之 貝料驗a丘中,係執行設定驗證對象資料所含之設定於資料 管理樹結構最上階之單向性函數算出值作為管理資料驗證 值之驗證處理。 再者,本發明之資料管理裝置一種實施態樣之特徵為·· 其構造係前述管理資料記憶部將管理資料予以密碼化後收 納,且將應用於前述;I;理資料之密碼化或解碼化之鍵收納 於具有防竄改構造之安全晶片内之記憶部内。 再者i本發明之資料管理裝置一種實施態樣之特徵為: 其構造係前述管理資料記憶部將管理資料予以密碼化後收 納,且將應用於前述管理資料之密碼化或解碼化之第一鍵 予以岔碼化之第二鍵收納於具有防竄改構造之安全晶片内 之"己隐°卩内,並藉由在安全晶片内之解碼處理,將第一鍵 輸出至安全晶片外。 再者’本發明之資料管理纟置一種㈣態樣之特徵為: 其構造係構成前述。分歧資料管理樹結構之各節點係構成 收納分別依據正下方階層之n個資料而生成之唯一之單向 性,數算出值之資料’前述驗證處理部將構成前述資料管 理樹結構之連續之兩個階層中,上階階層之資料内所含之 早向性函數算出值作為對照用資料,將依據下階階層之η 個資料’應用單向性函數而算出之值作為驗證資料,來執 行驗證資料與對照用資料是否一致之判定處理。 再者,本發明第二方面之資料管理方法之特徵為具有資 料驗證步驟,其係將管理對象資料作為最下層,並將依據 92950.doc 1270017 下層資料之單向性函數之算出值作為上階層資料,所設定 之η分歧貧料管理樹結構(_ 2以上之整數)最上階設定之1 個單向性函數算出Α,作為管理資料驗證值,來執行資料 驗證處理, 、 耵述資料驗證步驟包含以下步驟,將構成前述資料管理 樹結構之連續之兩個階層中,上階階層之資料内所含之單 向性函數算出值作為對照用資料,將依據下階階層之資 料,應用單向性函數而算出之值作為驗證資料,自前述資 料管理樹結構之上階階層向下階階層,或是自下階階層向 上階階層依序執行驗證資料與對照用資料是否一致之判定 處理。 再者,本發明之資料管理方法一種實施態樣之特徵為·· 前述單向性函數係散列函數。 再者,本發明之資料管理方法一種實施態樣之特徵為·· 其構造係構成前述η分歧資料管理樹結構之各節點係構成 分別依據正下方階層之η個資料收納η個單向性函數算出值 之資料表,前述資料驗證步驟將構成前述資料管理樹結構 之連繽之兩個階層中,上階階層之資料表内所含之單向性 函數异出值作為對照用資料,將依據下階階層之資料,應 用單向性函數而算出之值作為驗證資料,自前述資料管理 樹結構之上階階層向下階階層,或是自下階階層向上階階 層依序執行驗證資料與對照用資料是否一致之判定處理。 再者’本發明之資料管理方法一種實施態樣之特徵為: 前述資料管理方法進一步具有以下步驟,依據各階層中作 92950.doc -12- 1270017 為資料表識別資訊之表索引卜及各表中作為單向性函數算 出值識別資訊之單向性函數“lk,來決定自前述資料管理 “、。構之上p白|5白層向下階階層,或是自下階階層向上階階 層之路徑,前述資料魏步驟執行決定路徑上之資料之驗 吕登處理。 么再者’本發明之資料管理方法—種實施㈣之特徵為: 前述資料管理方法進-步於前述㈣管理樹結構中進行伴 隨㈣之補充、職或變更之資料更新處理時,自前述資 料管理樹結構之上階階層向下階階層,或是自下階階層向 上階階層執行驗證處理’並將全部之對照處理之成立作為 條件來進行資料更新。 再者,本發明t貧料官理方法_種實施態樣之特徵為: 則述貧料官理方法進一步於前述資料管理樹結構中進行伴 隨階層之增加或減少處理之階層構造變更時,係依據隨著 該階層構造變更而需要更新之資料之更新前資料來執行驗 證處理,並依據該驗證,將㈣無竄改之判定作為條件, 允許前述階層構造變更處理。 再者,本發明之資料管理方法一種實施態樣之特徵為·· 月ίι述貪料驗證步驟係將前述資料管理樹結構之中間階層之 中間資料作為管理資料驗證值,來執行構成前述中間資料 下階所含之資料管理樹結構之資料之驗證處理。 再者,本發明之資料管理方法一種實施態樣之特徵為: 月;I述資料驗證處理步驟係將構成前述資料管理樹結構之連 續之兩嗰階層中,上階階層之資料内所含之單向性函數算 92950.doc -13- 1270017 出值作為對照用資料,將依據下階階層之η個資料,應用單 向丨生函數而异出之值作為驗證資料,來執行驗證資料與對 照用貧料是否一致之判定處理。 再者,本發明第三方面之電腦程式之特徵為:係在電腦 系統上執行管理資料之驗證處理, 且具有資料驗證步驟,其係將管理對象資料作為最下 層,亚將依據下層資料之單向性函數之算出值作為上階層 貪料,所設定之η分歧資料管理樹結構(11係2以上之整數)最 上阽α又定之1個單向性函數算出值,作為管理資料驗證值, 來執行資料驗證處理, 前述資料驗證步驟包含以下步驟,將構成前述資料管理 樹結構之連續之兩個階層中,上階階層之資料内所含之單 向性函數算出值作為對照用資料,將依據下階階層之資 料,應用單向性函數而算出之值作為•驗證資料,自前述資 料管理樹結構之上階階層向下階階層,或是自下階階層向 上階階層依序執行驗證資料與對照用資料是否一致之判定 處理。 另外,本發明之電腦程式如係對於可執行各種程式碼之 電腦系統’可藉由以電腦可閲讀之形式提供之記錄媒體、 通信媒體’如CD、FD及ΜΟ等記錄媒體,或是網路等通作 媒體來提供。藉由以電腦可閱讀之形式提供此種程式心 在電腦系統上實現依據程式之處理。 本發明之另外目的、特徵及優點’從後述之本發明之實 施例及依據附圖之進K細說明即可瞭解。另外,本二 92950.doc -14- 1270017 明書中所謂系統,係數個裝置之邏輯性集合構造,各構成 裝置並不限定於在同一個框體内。 採用本發明之構造時,可在安全晶片内之記憶部内收納 依據設於資料管理樹結構最上階之單向性函數之算出值, 如收納散列值,並應用該收納值作為管理資料驗證值,來 進行設於資料管理樹結構最下層之全部管理資料之竄改驗 證。即使管理資料增加時,無須增加須收納於安全i片内 之記憶部内之管理資料驗證值之資料量,仍可 理資料之纽驗證。 ^ 再者,採用本發明之構造時,由於係構成於進行管理資 料之補充、刪除、變更等資料更新時,亦依據資料管理樹 結構之依據單向性函數之算出值,如依據㈣值來執行資 料驗證處理,因此可防止未授權之資料更新,實現適切之 再者,採用本發明之構造時,由於係構成於安全晶片内 之記憶部内’除設於資料管理樹結構最上階之依據單向性 函數之算出值之外,亦收納作為資料管理樹結構之中間階 層之資料之依據單向性函數之算出值,如散列值,驗^ 納之中間階層資料之位於τ階之f料時,係執行應用: 間階層之資料作為管理資料驗證值之:#料驗證,因此=、 行有效之驗證處理。 進 再者,採用本發明之構造時,由於係構成可適切執 料管理樹結構之階層之增加、減少處理,此, ’ ^ ,係構成可 設定貢料管理樹結構之任意資料或是中間階芦次 曰^^貝料作為 92950.doc -15- 1270017 官理貧料驗證值,因此可依據具有各種形狀之資料管理樹 結構來執行資料管理。 再者’採用本發明之構造時,由於係構成將管理資料予 以密碼化後收納,並藉由依據密碼化資料而設定之資料管 理樹結構執行管理,並構成將應用於密碼處理之鍵收納於 安全晶片内’因此可有效防止管理資料洩漏。 【實施方式】 以下詳細說明本發明之資料管理裝置、資料管理方法及 電腦程式。另外,係按照以下項目順序進行說明。 1·資料管理裝置之構造 2·安全晶片之構造 3·資料管理構造 4·管理資料之驗證 5 ·資料之補充、變更、刪除 6·驗證路徑之決定 7 ·散列表係1個階層之資料管理樹結構 8.階層之增減 9·管理資料之密碼化及解碼化 1 〇·中間階層之散列表之驗證 11.依據數個資料管理樹結構之管理構造 12·將管理資料驗證值作為路徑散列表之構造 13.在資料管理樹結構之任意部分設定、管理管理資料驗 證值之構造 14·散列值之資料管理樹結構 92950.doc -16- 1270017 [ι·資料管理裝置之構造] 圖1顯示本發明一種實施例之資料管理裝置之構造例。資 料管理裝置101具有CUP(中央處理單元)1〇2,其係具有程式 執行功能及運算處理功能,cpu 102執行對安全晶片105之 存取對主忑〖思104之各種資料健存及讀取處理控制等。 /記憶體103係藉由以下元件構成:R〇M(唯讀記憶體),其 係記憶藉由CPU 102執行之各種程式,如各種應用程式等; 及RAM(隨機存取記憶體),其係作為執行程式之載入區 域,或各程式處理之工作區域之功能。 主記憶部104係儲存:資料管理裝置101之管理資料,亦 即内容、許可證、收費資料等各種管理資料;及資料管理 樹結構之散列表等。有關資料其 ,關貝科官理樹結構之散列表,在後 段詳細作說明。 安全晶片lG5a、1G5b執行資料管理裝置中管理之資料之 驗證處理。安全晶片1 5 05b具有防止來自外部之未授 權存取而重寫收納資料 防乳改構造。具體而言,係進行 僅猎由收納於安全晶片 鬥之将定處理程式才可重寫資 料,或是僅允許來自執扞胜—▲ & ” ' ,,. ^ 寺疋涊證之外部裝置之輸入資料 作為更新資料等之處理。 一 圖中係顯示將安全晶片105a設置 於貝料官理裝置101之内部曰 it ^ ^ 1 π 1 l 將文王曰日片l〇5b設置於資料管 里衣置101外部之構造, 斤 eR卜尺 不過此寻亦可構成於其中一方。亦 即文全晶片可在資料管理萝 衣置之機器内部,或是在外部。
文王日日片在貧料營理奘w L 之資料通信。 、。卩時,可進行與資料管理裝置 92950.doc •17, 1270017 L人女全晶片之構造] 其次,參照圖2說明总入曰u 全曰月从 王日日片1〇5之構造。CPU 201進行安 王日日片105與外部之咨 〜文 # ^ , ή μ 、"授,對内藏之保全記憶體203之 存取,自貧料管理裝署 ^ 資料之資料處理等。料處理及有關外部輸出之 俜=體2:2係藉由以下元件構成(唯讀記憶體),其 係纪憶猎由CPU 201執彳ft ^ 憶體),其㈣Μ Λ 式;及續(隨機存取記 工 、、”’、仃耘式之載入區域,或各程式處理之 作區域之功能。 保全記憶體203係依據cpU2〇1執行之程式而可存取之記 憶區:,且係排除來自外部之存取,收納資料無法依據來 Ή之存取而竄改之資料記憶區域。介面2G4係、與外部之 資料通信用介面。介面2G4構成具有防止自外部存取安全晶 片105内部之貧料匯流排上之資料及記憶體搬、保全記憶 一 3之收、、’内資料功能之模組。亦即,安全晶片i 〇5構成具 有防竄改構造之晶片。 [3·資料管理構造] 其次說明依據内容、許可證、收費資料等各種管理資料, 及包含資料管理樹結構之依據單向性函數之算出值,如散 列值之散列表之資料管理構造。管理資料及資料管理樹結 構之散列表係收納於圖1之資料管理裝置1〇1中之主記憶部 104内。另外,以下之實施例,單向性函數係應用散列值為 例作說明’不過本發明並不限定於散列值,亦包含應用其 他單向性函數之構造。 92950.doc -18- ^700^ 圖示資料管理樹結構之階層數為m,管理對象資料數 為η時之資料管理系統中之管理f料構造。圖3中在資料管 理樹結構最下階層’亦即在階層卜时設定管理對象資料, 亦即設定内容、許可證及收費資料等。f理對象資料D⑻ 表不各個管理資料,x表示對象之管理資料之索引,亦即資 料索引。官理對象資料數為11時,設定成資料索引〜n—j 之·值。 I1白b層L=0之資料之D(x)w係内容、許可證、收費資料等各 種&理貧料之實體資料。如資料D(0)304係賦予資料索引 x=〇之實體資料。 貝料官理樹結構中,L=〇以外之上階階層,亦即L>〇之資 厂斗之HL(L,j)表示散列表。hl(L,j)中之L·表示資料管理樹結 構之階層數L=〇〜m—1,j表示階層L之對象之散列表之索 引。如圖3中,表示階層Ε=:1之HL(1,0)303係表示階層為1, 索引為0之散列表。 散列表索引係同一階層之散列表之識別值,如圖3所示, 左端為〇,右端為2(m]M,各階層中取0〜-1之值。另 外’以j表示散列表索引。亦即,散列表索引j係具有 卜〇〜之值之各階層之散列表之識別值。 1個散列表HL(L,j)中收納依據下階資料而生成之散列 值。圖3所示之樹結構係2分歧樹結構,在1個節點上存在2 個下階節點或葉。另外,將最下階層(L=0)之要素稱為葉, 而將葉以外之要素稱為節點。 由於圖3所示之樹結構係2分歧樹結構,因此在1個散列表 92950.doc -19- 1270017 HL(L,j)中收納對應於下階之2個節點或2個葉之2個散列 值。 散列表HL(L,j)中所含之散列值HL(L,j) · H(k)表示依據 下階資料而生成之散列值。k表示散列表HL(L,j)之散列值 之索引。為2分歧樹結構時,在1個散列表中收納2個散列 值’並分別設定k=〇, 1之2個散列值索引之其中一個。 圖3中,在階層L=1所示之左端之散列表hl(1,〇)3〇3令收 納2個下階資料,亦即收納D(〇)及D〇)之散列值。亦即係 HL(l,〇)· h(0)與 HL(l,〇)· H(l)。具體而言,係 葉(〇)之散列值=HL(1,〇) · H(o) 葉(1)之散列值=HL(1,〇) · H(l) 收納於HL(1,0)303之散列值。 另外,散列值之异出十進制係應用預設之十進制,如可 應用SHA-1等。 此外,亦可構成在1個節點中設定3個以上之下階節點或 茱之樹結構。如為3分歧樹結構時,則在各散列表中收納對 應於下階節點或葉之3個散列值。’ 作為單向性函數算出值識別資訊而設定之單向性函數索 引,亦即散列值索引k具有依據分歧數之識別值。收納於散 列表中之各散靠巾,為2分㈣,係對贼丨之2個識別值 之其中- j固’為3分歧時,係對應〇, u 2之3個識別值之其中 一個。 另外’亚不限定於在下階存在節點及葉。士口必匕,生成散 列表中所含之散列值之下階資料不存在時之處理,可決定 92950.doc 1270017 =意之態樣。以下說明下階資料不存在時,於散列表中設 定對長度〇之資料(null)之散列值(Hash(nuii))。 階層樹結構中,散列表可區分成兩種。亦即其構造係 階層L=1之散列表包含下階管理資料之散列值。 階層L>1之散列表包含下階散列表之散列值。 如圖3所示,係將階層狀構成在最下階之葉中構成管理對 象資料,在上階節點中設定下階資料之散列值作為表之散 列表者’稱為資料管理樹結構。 另外’如上所述,各散列表中所含之散列值數量不拘。 圖3之樹結構構造係全部之散列表包含2個散列值時之2分 歧樹結構之構造例。 最上階散列值(ToP Hash Value)301係依據資料管理樹結 構之最上階之散列表302(圖3中係HL(m-1,〇))中所含之數 個散列值’亦即係依據HL(m-1,0) · H(0)與HL(m-1,〇) . Η⑴ 而生成之散列值。 構成資料管理樹結構之資料及散列表係收納於圖1所示 之主記憶部104内。此外,於安全晶片105内之保全記憶體 2〇3(參照圖2)中,最低限度保管最上階散列值(Top Hash Value)301作為管理資料驗證值(參照圖3) 0 因安全晶片105之保全記憶體203之記憶容量係較小之容 量’可收納之資料量有限,不過,由於本發明之構造至少 安全地保持最上階散列值(T〇p Hash Value)301,因此可執 行構成葉之資料的竄改驗證。 [4·管理資料之驗證] 92950.doc -21 - 1270017 其找明收納圖3所示之包含資料及散列值之管理樹結 構之育料管理裝置中執行之資料驗證處理。並說明構成圖] 所不之官理樹結構之葉中丨個資料之驗證處理例。 其係說明驗證設定資料余引X作為PdatalD之1個管理資 料D(datalD)是否完全且係最新狀態之處理。 驗證處理方法有兩種方式。第—種方式係自資料管理樹 、、口構之層L之最上階(L=m—;[)向下階執行驗證。第二種方 式係自最下階(L=0)向上階執行驗證。圖4顯示自最上階向 下階進仃驗證方式之程序之流程圖。圖6係自最下階向上階 進行驗證方式之程序之流程圖。 驗證處理亦可在圖丨所示之資料管理裝置1〇1内之cpu 1〇2 控制下執行,此外,亦可在安全晶片1〇5内之cpU2〇i控制下 執仃。在貧料管理裝置1〇1内之cpu 1〇2控制下執行驗證處 理時,資料管理裝置101預先取得保管於安全晶片1〇5之保 王《己〖思體203中之管理資料驗證值,並依據取得之管理資料 馱祖值執行驗證。另外,管理資料驗證值包含圖3之最上階 政列值。安全晶片丨05進行驗證處理時,適切自資料管理裝 置1 〇 1之主5己丨思部1 〇 4供給必要之資訊。 (1)自上階向下階方向之驗證處理 百先,參照圖4說明自資料管理樹結構之階層最上階向下 階進行驗證之程序。首先,於步驟81〇1中,執行表示驗證 對象之資料所屬之資料管理樹結構階層之變數L之初始 - 化。亦即’設定階層識別值L之初始值。 另外,最後之驗證對象之資料,通常係資料管理樹結構 92950.doc -22- 1270017 =取下層之貧料,亦即係内容、許可證及收費資料等實體 广本方式,亦即自資料管理樹結構之階層最上階向下 :進行驗證之構造中,驗證對象之資料係自上階依序設 ^,並依序向下階層移動,最後到達最下層之資料後,驗 證處理結束。 、步驟S101中設定之階層識別值L之初始值為L=m-1,亦即 成為圖3所示之最上階散列值3〇1正下方之散列表HL^q, 〇)所屬之階層m—1q ’ 其次,於步驟S102中,進行與驗證對象資料之對照值, 亦即對照用散列值之初始化。對照用散列值之值定義成對 照用散列值[P-Hash]。於步驟S102中,執行對照用散列值 [P—Hash]之初始化。在自上階層向下階層之驗證方式中, 對照用散列值之初始值成為最上階散列值3〇1(參照圖3)。 於v驟S103中,自主記憶部(pjost Storage) 104輸入驗證對 象資料[V—Data],來計异作為自資料管理樹結構之階層最 上階向下階之驗證路徑之定義資訊之散列值索引k。驗證對 象資料[VjData]係依據對照用散列值[p—Hash]而成為驗證 對象之資料。最初之驗證對象資料為圖3之散列表3〇2。將 該散列表302與初期設定為對照用散列值[p—Hash]之最上 階散列值3 0 1進行對照。 驗證對象貢料[V—Data]在一般敘述時,於階層L為L>〇 時,係設定為散列表HL(L,j)。其中j係階層乙之散列表索 引此外,階層L為农下層,亦即L=〇時,驗證對象資料 [V—Data]成為管理資料D(datalD)。 92950.doc -23 - 1270017 ^散列值索引k係可應用之定義自資料管理樹結構之階層 最上階向下階之驗證路徑之值。如圖5所示之資料管理樹結 構中,最後驗證對象資料係資料327時,其驗證路徑成為自 最上階散列值321,經過散列表322, 323, 324, 325, 326而到 達貧料327之路徑。亦即,只須決定連結自最上階散列值 至檢測對象資料D327之路徑,並依據其路徑上之散列表, 自上階向下階執行驗證處理即可。 =用作驗。且路径疋義資訊之散列值索引&,成為定義連結自 取上階散列值321至最後驗證對象資料D327路徑之值。圖5 顯示。又疋散列值索引k為左側〇,右侧丨之例。圖5所示之資 料管理樹結構中,驗證對象資料為資料327時,]^依序設定 為0, 〇, 1,1,1之值。如此,在2分歧樹結構時,]^為不同之 兩個值,如k=0或1,定義成可自兩個路徑選擇一個之值。 為3分歧樹結構時,係設定k=〇,丨,2等3個值,每次處理時, 係自此專中a又疋一個值來決定路徑。另外,路徑決定處理 詳細内容如後述。 如圖5所示,依據樹結構構造與最後驗證對象資料來決定 驗證路徑。該驗證路徑之定義資訊係利用散列值索引]^。路 徑決定可以資訊處理系統來進行,或是以安全晶片來進行。 於步驟S104中,藉由計算求出自主記憶部(H〇st Storage) 104輸入之驗證對象資料[vjoata]之散列值之驗證 對象散列值[V一Hash]。另外,如前所述,散列值之算出十 進制係應用預設之十進制。如可應用SHA-1等。 首先,最初自主記憶部(Host Storage) 104輸入之驗證對象 92950.doc -24· 1270017 資料[V_Data]成為圖3所示之散列表302。散列表302中包含 兩個散列值[HL(m-1,0) · H(0)]與[HL(m-1,0) · H(l)]。步 驟S104依據兩個散列值[HL(m-l,0)· H(0)]與[HL(m-1,0) · H(l)]求出[V_Data]之散列值之[V_Hash]。具體而言,如在 兩個散列值[HL(m-l,0) · H(0)]與[HL(m-1,0) . H(l)]之連 結資料中,應用SHA-1等之散列十進制來求出驗證對象散 列值[V—Hash]。 於步驟S105中,進行驗證對象資料[V_Data]之散列值之 驗證對象散列值[V_Hash]與對照用散列值[P_Hash]之對照 處理,判定兩者是否一致。 兩者不一致時,亦即 PJHash 弇 VJHash 時,判斷驗證對象資料[V_Data]係竄改資料或是包含依據 竄改資料所生成之散列值者,而結束進入步驟S 109之處 理。 於步驟S105之對照中,兩者一致時,亦即 P_Hash=V_Hash 時,判斷驗證對象資料[V_Data]係正當之資料,亦即並非 竄改資料及依據竄改資料所生成之散列值。 確認驗證對象資料[V_Data]之正當性後,其次,於步驟 S106中,進行驗證處理之結束判定。結束條件係在顯示驗 證對象之資料所屬之資料管理樹結構之階層之階層識別值 L為0,亦即,將對應於資料管理樹結構最下階層之葉之資 料作為驗證對象資料之處理時。 92950.doc -25- 1270017 本方式係沿著資料管理樹結構之階層最上階向下階之驗 證路徑,依序執行驗證之方 <,於卜〇成立時,進一步表示 =下階之層不存在驗證對象資料。因此,在步驟S105之驗 、子象政列值與對照用散列值一致確認中,將資料管理樹 構之最下階層,亦即L=0之資料作為驗證對象資料 [V』ata],與依據該資料所生成之驗證對象散列值[^sh] 之對照成立時,於步驟8106之判定中L=〇成立,表示圖5所 示之驗證路徑,亦即自最上階散列值321至最後驗證對象資 料327之驗證處理均對照成立之結果結束,驗證成功,並進 v驟S 110,處理正常結束。亦即,判定為資料無竄改, 而結束處理。 於步驟S106中,並非L=0時,表示下階存在驗證對象之節 點或葉。此時進入步驟S107,更新對照用散列值[p_Hash]。 亦即,將貧料官理樹結構之階層下一層之散列值作為對照 用散列值。 作為更新值而設定之新的對照用散列值[p — Hash]包含在 之鈾驗證之對照用資料[v—Data]内,索引係k的散列值。亦 即係[VJData. H(k)]。 如圖5中,將最上階散列值321作為對照用散列值 [P—Hash],將HL322作為驗證用資料[V—Data],對照成立 時,下一個更新對照用散列值[P—Hash]係自散列表322内所 含之兩個散列值H(0)與H(l),依據用作驗證路徑定義資訊 之散列值索引k=0,來選擇散列值h(〇),設定其為已更新之 對照用散列值[P—Hash]。 92950.doc -26- 1270017 , 於步驟S 108中,減少顯示驗證對象資料所屬之資料管理 樹結構之階層之L。亦即,在下一個階層中更新階層識別值 L之值,並在下一個階層中執行驗證處理。 ^ 以下’在驗證失敗時或驗證成功前反覆執行步驟S103以 下之處理。如此,自上階向下階對資料管理樹結構之階層 反覆進行驗證處理。最後,將最下層亦即L=〇之層之資料作 為驗證對象資料[V—Data]所生成之驗證用散列值[v_Hash] 與其上階層之對照用散列值[P—Hash]一致時,驗證路徑上 之全部鄰接層間之資料對照成立,證明資料無竄改,處理 結束。 驗證路徑上之任何一個資料間之對照不成立時,進入步 驟S109,輸出資料有竄改之結論,並結束處理。 (2)自下階向上階方向之驗證處理 其次’參照圖6說明自資料管理樹結構之階層之下階向上 p白進仃驗證之程序。首先,於步驟§2〇1中,執行表示驗證 對象之貝料所屬之資料管理樹結構階層之變數L之初始 化亦即’設定階層識別值l之初始值。 抓用遠方式時,初始值係設定顯示資料管理樹結構最下 層之管理資料tL=0。 二、人於步驟S202中,自主記憶部(HostStorage)l〇4輸入 驗:對象肓料[V—Data]。驗證對象資料[V一D叫係依據對照 用政列值[P—Hash]而成為驗證對象之資料。最初之驗證對 • 象貝料,為圖5之資料管理樹結構構造時,成為最下層之資 料327。將該貢料327與作為對照用散列值而設定 92950.doc -27- 1270017 之正上方之上階散列表326中所含之1個散列值[H( 1)]進行 對照。 驗證對象資料[V—Data]在一般敘述時,於階層L為L>0 時’係散列表HL(L,j)。其幻係階層l之散列表之索引。此 外’階層L為L=0時,則係管理資。初始值成為 驗證對象之管理資料之D(datalD)。 於步驟S203中,藉由計算求出自主記憶部(H〇st Storage) 1 〇4輸入之驗證對象資料[v_Data]之散列值之驗證 對象政列值[V一Hash]。另外’如前所述’散列值之算出十 進制係應用預設之十進制。如可應用SHA-1等。 於步驟S204中,自主記憶部(H〇st St〇rage)1〇4輸入作為包 含對照用散列值之散列表HL之對照用資料[p—Data],取得 用作驗證路徑定義資訊之散列值索引k。 對照用貧料[P—Data]係直接連接於驗證對象資料 之上階層之散列表。亦即,圖5之例中,驗證對象資料 [V一Data]係圖5所示之資料327時,對照用資料[pjData]成為 散列值326。散列表中包含數個散列值。如圖5所示,為二 分歧樹結構時,包含散列值索引k=〇,i之兩個散列值 [H(〇)]、[H(l)]。選擇其中—個作為對照用散列值。 選擇時係取得用作驗證路徑定義資訊之散列值索引k。 用作驗證路徑定義資訊之散列值索引!^系定義自資料管 理樹結構之階層之下階向上階之驗證路徑之值,如在圖$ 所示之資料管理樹結構中,係成為藉由自驗證對象資料 至最上階散列值321之散列表326, 325, 324,⑵’切而構成 92950.doc -28- 1270017 之路控°只須依據該路徑上之散列表自下階向上階執行驗 證處理即可。 用作驗α丘路控疋我資訊之散列值索引化成為定義連結自 驗證對象資料D327至最上階散列值321之路徑之值。結果, 首先係述擇與麥照圖4而說明之路徑相同之路徑,k設定成 自下階層依序為1,1,1,〇,〇之值。 於步驟S205中,自驗證對象資料[v—Data]正上方之對照 用資料(散列表)[P—Data],依據用作驗證路徑定義資訊之散 列值索引k,自散列表中所含之散列值選擇丨個對照用散列 值[P—Hash] 〇 如此,依據樹結構構造與最下層之驗證對象資料決定驗 證路徑,並依據其驗證路徑來設定用作驗證路徑定義資訊 之散列值索引k。路徑決定可以資訊處理系統來進行,或是 以安全晶片來進行。 於步驟S206中,進行驗證對象資料[v—Data]之散列值之 驗證對象散列值[v—Hash]與對照用散列值[p—Hash]之對照 處理’判定兩者是否一致。 兩者不一致時,亦即 P—Hash#V—Hash 時,判斷驗證對象資料[VJData]係竄改資料或是包含依據 鼠改資料所生成之散列值者,而結束進入步驟S2i〇之處 理。 於步驟S206之對照中,兩者一致時,亦即 P_Hash=V 一Hash 92950.doc -29· 1270017 時,判斷驗證對象資料[VJData]係正當之資料,亦即並非 竄改資料及依據竄改資料所生成之散列值。 確遇驗證對象資料[VjData]之正當性後,#次,於步驟 S207申’自對照用資料[p—Data]中所含之散列值算出驗證對 象散列值[V—Hash],作為下一個驗證對象散列值。 具體而言係依據對照用資料[p—Data]中所含之兩個散列 值H(0)與H(l)求出[P-Data]之散列值之[v—办讣]。如在兩個 散列值之連結資料中應用SHA-1等之散列十進制來求出驗 證對象散列值[V_HashJ。 於步驟S208中,進行驗證處理之處理階層判定。處理階 層判定係執行是否須執行將驗證對象之資料所屬之資料管 理樹結構之階層,亦即階層識別值L為m-1,亦即階層㈤之 賁料管理樹結構最上階(111)之最上階散列值正下方(階層 m一 1)之散列表作為驗證對象資料之處理之判定處理。 於L=m-丨時,進入步驟sm,設定最上階散列值(T〇pHash Value)作為對照用散列值[p一Hash],於步驟S212中,執行對 照用散列值[P—Hash],亦即最上階散列值,與將階層瓜一 之散列表作為驗證對象資料[v—Data],依據該散列表收納 之散列值而生成之驗證對象散列值[V—Hash]之對照處理。 該對照處理係自下階向上階之驗證路徑之最後對照點,該 對照成立時,係表示因圖5所示之驗證路徑,亦即自最下階 資料327至最後驗證對象散列表322之驗證處理均對照成立 而結束,驗證成功,並進入步驟S213,處理正常結束。亦 即’判定為資料無竄改而結束處理。 92950.doc -30- 1270017 於步驟S212之對照處理中,兩者不一致時,亦即 P—Hash 关 V_Hash 時,判斷驗證對象資料[V一Data]係鼠?文資料或是包含依據 竄改資料所生成之散列值者,而結束進人步驟S210之處 理。 於步驟綱中,判定為並非L=m-U寺,表示上階存在驗 證對象之節點。此時進入步驟8209,執行作為L=L+1之階 層識別值L之值之更新處理。亦即,在上—個階層更新階層 識別值L之值。 以下,在驗證失敗時或驗證成功前反覆執行步驟§2〇4以 下之處理。如此’自下階向切對資料管理樹結構之階層 反覆進行驗證處理。最後,於步驟8212中,將之層 的資料作為驗證對象資料[V_Data]所生成之驗證對象散列 值[V—Hash]與最上階散列值一致時,驗證路徑上之全部鄰 接層間之資料對照成立,證明資料無竄改,處理結束。驗 證路徑上之任何一個資料間之對照不成立時,則進入步驟 S2 10,輸出資料有竄改之結論,並結束處理。 [5.資料之補充、變更、刪除] 其次,參照圖7之流程圖來說明執行管理資料之補充、變 更、刪除等之資料更新處理時之處理。 圖7係補充、變更、刪除如内容、許可證及收費資料等之 管理資料時之處理流程圖。對應於散列表中所含之散列值 之下階散列表或是管理資料不存在時,散列表中所含之散 列值係對應於尺寸0之資料(仙11)之散列值(HaSh(nUll))。此 92950.doc -31- 1270017 外,資料之補充、變更、刪除處理中,資料管理樹結構之 階層數不變。 補充、變更、刪除處理時,初始值係自主記憶部(Host Storage) 104輸入目前資料管理樹結構上存在之資料作為更 新前之資料[VJData],並輸入更新後登錄於資料管理樹結 構之資料作為更新後之資料[UJData]。 補充處理時,作為初始值而自主記憶部(Host Storage) 104 輸入之更新前資料[VJData]及更新後資料[U_Data]均係管 理資料或是散列表,因更新前資料[VJData]在更新前不存 在,所以是尺寸為0之資料(null)。 變更處理時,作為初始值之自主記憶部(H〇st storage) 104 輸入之更新前資料[V j〇ata]及更新後資料[U—Data]均係管 理資料。 刪除處理時,作為初始值而自主記憶部(H〇st St〇rage)1〇4 輸入之更新前貧料[V—Data]及更新後資料[uJData]均係管 理貧料或是散列表,因更新後資料[U—Dah]在更新後不存 在,所以是尺寸為〇之資料(null)。 補充、變更'刪除處理中,亦合併進行資料管理樹結構 上之政列表之驗證處理。此因允許不隨驗證處—_〜, 理’可此會合併補充、變更、刪除來進行竄改。亦即 為长排除攻擊者將任意之資料設定於資料管理樹結構内來 進行資料更新之可能性,於補充、變更、刪除處理中伟將 進行資料管理樹結構上之制表之驗證處理作前提。 合併執行補充、變更、刪除處理等之資料更新處理盘資 92950.d〇c -32- 1270017 料驗證處理時,首先,如參照圖4說明之驗證處理 =管理樹結構之階層k最上階向下階進行:證貝 貪料更新處理亦可採用自下階向上階更新復原之方法, 過自最下階(L = 〇)至上階同時進行驗證與更新時, 不 卜立施^ / 士 rQ 焉δ己 fe體使用效率及縮短處理日寺間。目7顯示自I下階(㈣)至 上階同時進行驗證與更新方式之處理程序。 補充、變更、刪除處理等之資料更新處理亦可在圖丨所示 之資料管理裝置1〇1内之CPU 102控制下執行,此外,亦可 在安全晶片105内之CPU 201控制下進行。在資料管理裝置 101内之CPU 102控制下執行更新處理時,資料管理裝置⑺1 預先取得保管於安全晶片105之保全記憶體2〇3内之管理資 料驗證值,並依據取得之管理資料驗證值執行驗證。另外, 管理資料驗證值包含圖3之最上階散列值。安全晶片丨〇5進 行更新處理時,適切自資料管理裝置1〇1之主記憶部1〇4供 給必要之資訊。 為求防止進行未授權之更新處理,亦可構成在安全晶片 105内進行補充、變更、刪除處理,安全晶片1〇5驗證對更 新前資料[V一Data]之更新後資料[U-Data]之正當性,或是安 全晶片105生成更新後資料[U_D at a]。 以下說明圖7之處理流程之各步驟。首先,於步驟μ 〇 1 中,執行顯示更新前資料[V—Data]所屬之資料管理樹結構 之階層之變數L之初始化。亦即,設定階層識別值L之初始 4 值。初始值設定為表示資料管理樹結構最下層之管理資料 之L = 0。另外’資料補充時,如前所述,不存在更新前資料 92950.doc -33- 1270017 [V—Data],而假定尺寸為〇之資料(null)作為更新前資料 [V—Data] 〇 其次,於步驟S302中,自主記憶部(Host Storage) 104輸入 更新前資料[V—Data]。吏新前資料[V—Data]依據資料管理樹 結構之上階階層之對照用散列值[P—Hash]成為驗證對象。 將更新前資料[V一Data]與設定為對照用散列值[pjHash]之 正上方之上階散列表中所含之1個散列值對照。 更新前資料[V—Data]在一般敘述時,於階層l為L>0時, 係散列表HL(L,j)。其中j係階層l之散列表之索引。此外, 階層L為L=0時’則係管理資料D(datalD)。初始值成為驗證 對象之管理資料之D(datalD)。 於步驟S303中,藉由計算求出自主記憶部(H〇st Storage) 104輸入之更新前資料[vjQata]之散列值之更新前 貢料散列值[V—Hash]。另外,如前所述,散列值之算出十 進制係應用預設之十進制。如可應用SHA一 1等。 於步驟S304中’自主記憶部(H〇st Storage) 104輸入更新後 資料[U一Data]。更新後資料係取代更新前資料 [V—Data]之資料。另外,於資料刪除處理時,不存在更新 後資料[U—Data] ’而假定尺寸為〇之資料(nuli)作為更新後資 料[U—Data] 〇 於步驟S305中,藉由計算求出自主記憶部(H〇st Storage) 104輸入之更新後資料之散列值之更新後 資料散列值[U—Hash]。另外,如前所述,散列值之算出十 進制係應用預設之十進制。如可應用SHA-1等。 92950.doc -34- 1270017 j * 於步驟S306中,自主記憶部(HostStorage)1〇4輪入作為包 含對照用散列值之散列表HL之對照用資料[p_Data],而取 得用作更新路徑定義資訊之散列值索引k。 對妝用資料[P一Data]係與成為驗證對象之更新前資料 [V—Data]直接連接之上階層散列表。對照用資料[ρ— 係散列表,且包含數個散列值。於2分歧樹結構時,包含兩 個散列值H(〇),H(1),並選擇其中、丨個作為對照用散列值 [P 一 Hash]。選擇時,取得用作更新路徑定義資訊之散列值 索引k。 用作更新路徑疋義資訊之散列值索引^^與先前說明之驗 證路徑定義值k相同,係定義連結自更新對象資料至最上階 散列值之路徑之值。 於步驟S307中,自更新前資料[VJData]正上方之對照用 貝料(散列表)[P—Data],依據用作更新路徑定義資訊之散列 值索引k,自散列表中所含之散列值選擇丨個對照用散列值 [P_Hash]。 如此,依據樹結構構造與更新及驗證對象資料決定驗證 及更新路徑。路徑決定可以資訊處理系統來進行,或是以 安全晶片來進行。 於步驟S308中’進行更新前資料[V—Data]之散列值之更 新則貝料散列值[ν〜Η_]與對照用散列值[p—Hash]之對照 •處理,判定兩者是否—致。 … - 兩者不一致時,亦即 p—Hash 关 V—Hash 92950.doc 1270017 時,判斷更新前資料[VJData]係竄改資料或是包含依據竄 改資料所生成之散列值者,而結束進入步驟S3 15之處理。 於步驟S308之對照中,兩者一致時,亦即 P_Hash=V_Hash 時,判斷更新前資料[V_Data]係正當之資料,亦即並非竄 改資料及依據竄改資料所生成之散列值。 確認更新前資料[V_Data]之正當性後,其次,於步驟S309 中,算出下一個驗證對象散列值。自對照用資料[P_Data] 中所含之散列值算出散列值[V_Hash],將其作為新的驗證 對象散列值[V_Hash]。 其次,在步驟S310中,將用作步驟S308之驗證處理之散 列表[P JData]之散列值[P JData. H(k)]更新成更新後之值之 [U—Hash]。亦即,應用更新後資料[U—Data],並應用預先 設有散列值之十進制,如應用SHA-1等算出,並將其設定 為散列表[P—Data]之之新的更新散列值[P—Data. H(k)]。 於步驟S3 11中,藉由計算求出包含更新散列值[P_Data. H(k)]之更新後之[P_Data]之散列值之[U_Hash]。 於步驟S312中,將包含更新散列值[P_Data. H(k)]之更新 後之[P—Data]輸出至主記憶部(Host Storage)l04予以收納。 但是,此時資料管理樹結構不更新。 資料管理裝置保持包含更新散列值[P_Data. H(k)]之更新 後之[P_Data],在最後之驗證及更新程序正常地結束時,使 用保持之更新後之[PJ3ata]來更新資料管理樹結構之對應 部分,執行資料管理樹結構之更新。最後之驗證及更新程 92950.doc -36- 1270017 序未正常結束,而里赍 ,、㊉結束時,捨棄暫時保持之作為各節 點之值之[P—Data]之值。 於步驟SM3令,進行驗證及更新處理之處理階層判定。 f理階層判定係執行處理對象,亦即[V—D則所屬之資料 '里U之階層之判定處王里。係執行[V—Data]所屬之資 料管理樹結構之階層識別值4 W,亦即階層就資料管 里树、、、。構取上階(m)之最上階散列值之正下方(階層爪一^之 散列表示否為處理對象資料之判定處理。 於L m-%,進入步驟S316,設定最上階散列值(τ〇ρ沿讣 Value)作為對知用散列值[p一Hash],於步驟“η中,執行對 照:散列值[p-Hash],亦即最上階散列值,與將階層 之散列表作為驗證對象資mv—Data],依據該散列表收納 之散列值而生成之驗證對象散列值[V-Hash]之對照處理。 該對照處理係自下階向上階之驗證及更新路徑之最後對照 點H 日、K成立時’係表示因自更新對象之最下階資料至 最上&散列值(Top Hash Value)正下方之散列表之驗證處 理均對照成立而結束。 於步驟S318中,將依據步驟3311中算出之更新後散列值 [U—Hash] ’亦即最上階散列值(τ〇ρ取化心1此)正下方之散 列表更新後之散列值算出之最上階散列值(T〇p Hash Valne)[U一Hash],收納於安全晶片1〇5内之保全記憶體2〇3 内,並結束處理(S319)。亦即,結束資料驗證及更新處理。 於步驟S3 17之對照處理中,兩者不一致時,亦即 p—Hash 关 V—Hash 92950.doc -37- 1270017 時,判斷驗證對象資料[V-Data]係竄改資料或是包含依據 亂改資料所生成之散列值者,而結束進入步驟s 31 $之處 理。 於步驟S313中,判定為並非L=m-1時,表示上階存在驗 證及更新對象之節點。此時進入步驟8314,執行作為[=][^+1 之階層識別值L之值之更新處理。亦即,在上一個階層更新 階層識別值L之值。 以下,在驗證失敗時或驗證成功,進一步更新處理至最 上階散列值前反覆執行步驟S306以下之處理。如此、,自下 階向上階對資料管理樹結構之階層反覆進行驗證處理及更 新處理。最後,將最上階散列值之更新資料收納於安全晶 片内(S318),而結束處理。於驗證及更新過程中,任何一 =資料間之對照不成立時,則進入步驟S315,輸出資料有 鼠改之結論,並結束處理。 [6_驗證路徑之決定] 上述之應用資料管理樹結構之資料驗證或更新處理中, σ又疋I双從路徑或更新路徑之值,係應用散列值索引^。以下 說明應用該散列值㈣k之路徑決定方法。另外,路徑決定 可由資Λ處理系統進行,或是由安全晶片進行。 (1)自樹結構上階向下階處理之路徑決定 焉双迅貝料索引為X==dataID之管理資料D(datalD)時,假設 係自貧料管理樹結構之階層最上階向下階進行驗證之情 況。另外,上述實施例係說明2分歧樹結構構造例,不過, 以ΤΊ兄明具有任意之分歧數·· η之η分歧樹結構之路徑設 92950.doc -38- 1270017 定處理例。 如圖8所示,假設資料管理樹結構具有散列表中所含之散 列值之總數為η之η分支構造,資料管理樹結構之階層數為m 之資料管理樹結構。 已知對應於最後驗證對象之資料,亦即對應於L==〇之最下 層之最後驗證對象350之資料索引x=dataID,而提供資料管 理樹結構之驗證對象之階層L之值。此時,驗證對象之階層 L(L=0〜m-1)之散列表索引係j=〇〜nh-L-n—i範圍之值。 階層L如圖8中之L=p之階層中,為求決定對應於驗證對 象之[V—Data]之散列表(L>0)或是資料(l=0),只須決定散列 表索引j或資料索引X之值即可。j,X係依據對應於最後驗證 對象資料之資料索引x=dataID與驗證對象之階層乙,藉由下 列公式算出。 j,x=fio〇r(dataID/(nL))· · ·(公式 1) 上述公式中,fl〇or(x)係重複x以下之最大整數值之函 數,xy表示X之y次方,χ/y表示7除乂。藉由上述(公式〇,來 決定資料管理樹結構之階層L之驗證對象之散列表之散列 表索引j(L>0)或是最下層之資料之資料索引x(L=;〇)。如圖8 中,在階層L=p中,依據上述(公式1},算出』之值,而選擇 散列表3 5 1。 再者,執行自資料管理樹結構之上向下驗證時,須自藉 由上述政列索引j所決定之散列表,如自圖8之散列表3 $ j來 選擇散列表之對照用散列值[P一Hash]。各散列表中收納依 據分歧數n之數量之散列值,而分別設有散列值索引 92950.doc -39- 1270017 k=0〜η-1 〇 因此,需要決定散列值索引k。散列值索引k依據對應於 最後驗證對象資料之資料索引x==dataID與驗證對象之階層 L,藉由下列公式算出。 k=fl〇〇r(dataID/n(L_1))modn (其中,L# 0) · · ·(公式2) 上述公式中’ fl〇〇r(x)係重複乂以下之最大整數值之函 數,xy表示X之y次方,x/y表示7除\,xm〇dy表示之餘 數。L=0時,無須指定散列值索引k。 如上所述,藉由提供對應於最後驗證對象資料之資料索 引X datalD與驗證對象之資料或散列表所屬之階層L,以 (么式1)异出散列表索引j或資料索引χ之值,此外,藉由(公 式2)算出散列值索引k之值。 如此,藉由決定散列表索引』或資料索引χ,算出散列值 索引k,來決定自資料管理樹結構最上階(^-丨)至最後驗 證對象資料α=〇)之資料的__條路徑。驗證處理只須將該路 徑上之散列表及資料作為對象來執行即可。 另外’由於資料更新中,亦同時執行驗證處理,因此, 路徑決定處理係執行完全相同之處理。 (2)自樹結構下階向上階處理之路徑決定 其次,驗證資料舍d 、京引為x==dataID之管理資料D(dataID) 時,假設係自資料管理樹处槿 了〜構之階層最下階向上階進行驗 證之情況。以下係說明且右 八有任思之分歧數:η之η分歧樹結 構之路徑設定處理例。 92950.doc -40- 1270017 亦即,假設具有資料管理樹結構之各散列表中所含之散 列值之數為nin分支構造,資料管理樹結構之階層數為㈤ 之資料管理樹結構。 已知對應於驗證對象之資料,亦即對應於L==〇之最下層之 驗證對象資料之資料索引x=dataID,而提供資料管理樹結 構之驗證對象資料[V一Data]所屬之階層L之值。此時,只須 指定具有對照用資料[P—Data]之階層L+丨之散列表即可。 另外,(L=l〜m-l)之散列表索引係卜範圍之值。 自資料管理樹結構之下向上之驗證路徑設定中,首先, 依據對應於L=0之最下層之驗證對象資料之資料索引 x=dataID,來指定具有資料D(datam)之資料。再者,須指 定構成具有連結於其資料之對照用散列值[pjHash]之對照 用資料[P—Data]之散列表。指定此等資料或散列表用之算出 處理,係散列表索引j或資料索引x之值之算出處理。』係依 據對應於驗證對象資料之資料索引x=dataID與驗證對象之 資料或散列表之對應階層L,藉由下列公式算出。 j = floor(dataID/(n(L+ [))) (其中 L^m_l) · · ·(公式 3) 上述公式中,floor(x)係重複X以下之最大整數值之函 數,xy表不X之y次方,x/y表示丫除义。藉由上述(公式3),來 决疋資料笞理樹結構之階層L中,對應於對照用資料 [P—Data]之散列表之散列表索引j(L>〇)或是最下層之資料 之資料索引x(L=〇)。 再者’執行自資料管理樹結構之下向上驗證時,須自夢 92950.doc -41 - 1270017 由上述散列索引j所決定之散列表,選擇散列表之對照用散 列值[P 一 Hash]。各散列表中收納依據分歧數^之數量之散列 值,而分別設有散列值索引k=〇〜1。 因此,決定散列值索引k時,可選擇對照用散列值 [P一Hash]。散列值索引k依據對應於驗證對象資料之資料索 引x=dataID與驗證對象資料[V—Data]所屬之階層L,藉由下 列公式算出。 k=fl〇〇r(dataID/nL)modn (其中,I^m-1) · · ·(公式 4) 上述公式中,fl〇〇r(x)係重複义以下之最大整數值之函 數,xy表示X之y次方,x/y表示,xm〇dy表示7除乂之餘 數。L為m-l時,資訊處理系統無須為了安全晶片1〇5比較驗 也對象資料[V一Data]與儲存於安全晶片内部之保全記 憶體203之最上階散列值(Top Hash Value),而供給資料至 安全晶片,可省略依據上述公式之資料特定處理。 如上所述,藉由提供對應於驗證對象資料之資料索引 x=dataID與驗證對象之資料或散列表所屬之階層L,藉由 (公式3)算出散列表索引j或資料索引χ之值,此外,藉由(公 式4)算出散列值索引k之值。 如此,藉由決定散列表索引j或資料索引χ,算出散列值 索引k ’來決定自資料管理樹結構最下階至最上階資料之一 條路徑。驗證處理只須將該路徑上之散列表及資料作為對 象來執行即可。 另外,由於資料更新中,亦同時執行驗證處理,因此, 92950.doc 1270017 路徑決定處理係執行完全相同之處理。 資料管理裝置101使用上述之路徑決定方法來決定驗證 路控時,係使用資料管理樹結構之驗證對象之階壯與階層 L之對象資料之索引j,來決定供給至安全晶片ι〇5之資料, 進一步依據決定之資料與散列值之索引k,自主記憶部104 取得決定之資料或散列表或散列值,並輸人至安全晶片 105,在安全晶片1〇5内執行驗證處理。 此外,安全晶片105決定路徑時,在安全晶片1〇5中,係 將依據上述各公式(公式卜句而決定之資料位置資訊通知 貧料管理裝置101,資料管理裝置101依據自安全晶片105 輸入之位置資訊,自主記憶部1()4取得f料或散列表或散列 值,並輸入至安全晶片105,在安全晶片1〇5内執行驗證處 理。 [7·散列表係1個階層之資料管理樹結構] 上述實施例中,係說明散列表為數個階層之資料管理樹 結構之構造例,其次,說明散列表僅丨個階層之構造及處 理。亦即,散列表之階層數=1,且係對於散列表層,在下 階具有資料層之階層數㈤為2時之資料管理樹結構。 圖9顯示階層數㈤為2,管理資料數為n時之資料管理樹結 構之構造例。具有該構造之資料管理樹結構之情況,散列 表401僅存在1個包含全部管理資料之散列值之hL(丨,〇)。 最上階散列值(Top Hash Value)402係散列表HL(1,0)401 之散列值。亦即,係依據散列表HL( 1,0)401中所含之n個散 列值而生成之散列值,如對於散列表HL(1,0)401中所含之n 92950.doc -43- 1270017 個散列值之連結資料,設定應用SHA-1等之散列十進制而 生成之散列值。 安全晶片105之保全記憶體203内至少收納管理資料驗證 值之最上階散列值(T〇p Hash Value)402。其他資料,亦即 散列表401及下階之管理d(〇)〜D(n-l)則儲存於資料管理褒 置101之主記憶部1〇4内。 [8·階層之增減] 其次,說明資料管理樹結構之階層之增減處理。執行資 料管理樹結構之階層增減處理時,需要進行更新保管於安 全晶片105之保全記憶體2〇3内之管理資料驗證值之處理。 階層之增減處理可在圖丨所示之資料管理裝置1〇1内之 CPU 102&制下執行,或是在安全晶片内之CPU 控 制下進行。在資料管理裝置101内之CPU 1〇2控制下執行階 層之增減處理時,資料管理裝置101事先取得保管於安全晶 片1—05之保全記憶體2G3内之管理資料驗證值,並依據取得 之管理:料驗證值執行驗證。另外’管理資料驗證值包含 圖3之取上h散列值。安全晶片1〇5執行階層之增減處理 時’適切自資料管理裝置1G1之主記憶部⑽供給必要之資 訊,此外,經階層之增減處理而更新之資訊自安全晶片1〇5 輸入至育料管理裝置1G1,並收納於主記憶部⑽内。 (1)階層之增加處理 首先’參照圖H)說明增加資料管理樹結構階層之處理程 序L先-於步驟S401中,自主記憶部(Host Storage)104 輸入資料管理樹結構中直田 俊埂接於取上階散列值之散列 92950.doc -44- 1270017 表,作為驗證對象資料[V—Data]。 於步驟S402中,藉由計算求出自主記憶部(Host Storage) 104輸入之驗證對象資料[V_Data]之散列值之驗證 對象散列值[V_Hash]。另外,如前所述,散列值之算出十 進制係應用預設之十進制。如可應用SHA-1等。 於步驟S403中,求出與驗證對象資料之對照值,亦即求 出對照用散列值[P_Hash]。此時,對照用散列值成為在安 全晶片105内部之管理資料驗證值之最上階散列值(Top Hash Value) 〇 於步驟S404中,進行驗證對象資料[VJData]之散列值之 驗證對象散列值[V_Hash]與對照用散列值[P_Hash]之對照 處理,來判定兩者是否一致。 兩者不一致時,亦即 P_Hash^V_Hash 時,判斷驗證對象資料[VJData]係竄改資料或是包含依據 竄改資料所生成之散列值者,而結束進入步驟S411之處 理。 於步驟S404之對照中,兩者一致時,亦即 P_Hash=V_Hash 時,判斷驗證對象資料[VJData]係正當之資料,亦即並非 竄改資料及依據竄改資料所生成之散列值。 對照成功時,進入步驟S405,在執行驗證處理之散列表 之上階層(階層m)上生成新散列表之N_Data。亦即,如圖11 所示,在執行驗證處理之散列表452與最上階散列值(Top 92950.doc -45- 1270017
Hash Value)451之間生成新散列表之新設定散列表 N_Data453 〇 其次,於步驟S406中,設定執行驗證處理之散列表452 之散列值[V—Hash],作為新設定散列表N—Data453内須包含 之1個散列值。再者,於步驟S407中,其他收納散列值係對 null(尺寸為0之資料)之散列值(Hash(null))。η分歧時,由於 在1個散列表内收納η個散列值,因此在新設定散列表 N_Data453中,除執行驗證處理之散列表452之散列值 [V—Hash]之外,還收納η-1個散列值(Hash(null))。 於步驟S408中,依據新設定散列表N_Data453之收納散列 值算出散列值N_Hash。具體而言,如對散列表452之散列值 [V—Hash]與η-1個散列值(Hash(null))之連結資料執行應用 SHA-1等之散列十進制之散列值算出處理,來算出散列值 NJHash。 於步驟S409中,將算出散列值N_Hash作為在安全晶片 1 05内部之管理資料驗證值,來更新最上階散列值(Top Hash Value),將該N—Hash作為新的最上階散列值,而收納 於保全記憶體203内,結束處理(S410)。 (2)階層之減少處理 其次,參照圖12說明減少資料管理樹結構階層之處理程 序。首先,於步驟S501中,自主記憶部(Host Storage)104 輸入資料管理樹結構中直接連接於最上階散列值之散列 表,作為驗證對象資料[V—Data]。 此時之驗證對象資料[V—Data]如圖13所示,係資料管理 92950.doc -46- 1270017 樹結構中最上階之散列表472,刪除該最上階之散列表 472,減少1個資料管理樹結構之階層。 再者’步驟S501係輸入藉由刪除散列表472,而成為直接 連接於新的最上階散列值471之最上階散列表之散列表之 散列值索引k。散列值索引k係驗證對象資料Data],亦 即’在目刚之最上階之散列表472中係顯示將階層m—丨減少 後成為敢上階之散列表之散列值之:索引。 於步驟S502中’藉由計算求出自主記憶部(H〇st Storage) 104輸入之驗證對象資料[V—Data]i散列值之驗證 對象政列值[V一Hash]。另外,如前所述,散列值之算出十 進制係應用預設之十進制。如可應用SHA—丨等。 於步驟S503中,求出與驗證對象資料之對照值,亦即求 2對照用散列值[P—Hash]。此時,對照用散列值成為在安 全晶片1〇5内部之管理資料驗證值之最上階散列值(Top
Hash Value) 〇 人於步驟S504中’進行驗證對象資料[V-Data]之散列值之 辱又证對象政列值[v—Hash]與對照用散列值[卩Η” 昭 處理,來判定兩者是否… - 卜,,、 兩者不一致時,亦即 P—Hash 关 V—Hash J :斷I双證對象貧料[v—Data]係竄改資料或是包含依據 "改貝料所生成之散列值者,而結束進入步驟S509之處 於步驟S504之對照中 兩者一致時,亦即 92950.doc -47- 1270017 P—Hash: V—Hash ^判斷驗證對象資料[V-D則係正當之f料,亦即並非 鼠改資料及依據竄改資料所生成之散列值。 —對^成功時’進入步驟_,確認[v_Data]亦即刪除預 疋之最上階之散列表472中所含in個散列值中,對應於設 定為新的最上階散列表之預定之散列表之散列值索引让以 外之散列值是否均係對null(尺寸為〇之資料)之散列值 (Hash(mxll))。 圖^所示之例,係確認對應於設定為新的最上階散列表 ^預^之散列表473之預定刪除之最上階之散列表472内所 '政列值之政列值索引让係k=〇,其他之散列值索引,亦 即k 1之散列值是否係對null(尺寸為〇之資料)之散列值 。因圖13所示之例係2分歧樹結構,所以在1個 散列表中僅包含2個散列值,不過,為n分歧樹結構時,則 包含η個散列值。 預疋刪除之散列表内所含之散列值中,包含除對應於設 疋為新的取上階散列表之預定之散列表之散列值之外,均 非對null之散列值時,不執行目前之最上階散列表之刪除, 而結束處理(S509)。 預疋刪除之散列表内所含之散列值中,除對應於設定為 新的最上卩自散列表之預定之散列表之散列值之外,均係對 null之政列值時,係取得減少丨個接層後而成為最上階之散 列表(圖13之散列表473)之散列值之[VJData],亦即以預定 刪除之散列表472之散列值索引k指示之散列值,將其作為 92950.doc -48- 1270017 N—Hash 〇 於步驟S507中,將取得之散列值n一Hash作為在安全晶片 105内部之管理資料驗證值,來更新最上階散列值(τ〇ρ Hash Value),將該N一Hash作為新的最上階散列值而收納於 保全記憶體2〇3内,並結束處理(S508)。 [9·管理資料之密碼化及解碼化] 如上所述,屬於管理對象之資料係設定於資料管理樹結 構之最下層,而在上階設定散列表來管理。管理對象資料 係内容、許可證或收費資料等各種資料,不過,為求防止 此等資料洩漏,資料管理裝置101宜將其予以密碼化,並收 納於主記憶部104内。 用於該管理資料之密碼化及解碼處理之鍵(以下稱儲存 鍵)係收納於安全晶片1〇5之保全記憶體2〇3内。使用儲存鍵 將管理資料予以密碼化或解碼化者,可為資料管理裝置 或是安全晶片105。 貧料官理裝置101將管理資料予以密碼化、解碼化時,係 自安全晶片105輸入儲存鍵,執行應用所輸入之儲存鍵之處 理。資料管理裝置101依據預先收納於主記憶部ι〇4之密碼 處理程式,來執行資料之密碼化或解碼處理。在安全晶片 105内部執行管理資料之密碼化、解碼化處理時,安全晶片 1 〇 5 /員具備岔碼化及解碼化之處理能力。 另外,屬於密碼化之處理對象者,可為㈣等實體資料 之管:資料之一部分’或是整個管理資料,或是亦包含散 列表等各種態樣。此等之設定可構成在資料管理裝置⑼ 92950.doc -49- 1270017 或疋在女全晶片10 5内部依據預設之單獨之處理十 進制來判斷。 此外,亦可構成在安全晶片105内部之保全記憶體内 收納數個儲存鍵。此外,亦可構成在安全晶片1G5内部生成 或刪除儲存鍵。為求防止儲存鍵>爲來確保安全性,宜具 有數個儲存鍵,並適切變更使用之鍵。 進一步提高安全性之方法,係橡成使用收納於安全晶片 105内之儲存鍵,將包封鍵予以密碼化及解碼化,並使用包 封鍵進行管理資料之密碼化及解碼化,亦可構成將經錯存 鍵密碼化之包封鍵附加於密碼化管理資料内加以記憶。藉 由該構造,可減少提供攻擊者對儲存鍵之資訊,降低儲^ 鍵洩漏之危險性。另外,使用儲存鍵之包封鍵之密碼化、 解碼化,及使用包封鍵之管理資料之密碼化、解碼化可由 貧料管理裝置1G1或安全晶片1G5來進行。構成藉由應用安 全晶片内之儲存鍵之解碼處理而生成包封鍵後輸出至安全 晶片時,儲存鍵不致輸出至外部,安全性提高。 另外,藉由密碼化處理而產生收納資料之變更時,與前 述資料更新處理同樣地,在執行隨著資料驗證之資料管理 樹結構之更新處理後,將資料收納於主記憶部1〇4内,此 外,在t全曰a片1 05之保全記憶體2〇3内收納最上階散列 值。解碼前之資料依據前述驗證處理驗證管理資料之完全 性與最新性,於驗證無問題時予以解碼化。藉此,於驗證 完全性及最新性之同時,可依需要隱密資料。 如此,由於係構成將管理資料予以密碼化後收納,執行 92950.doc -50- 1270017 依據检碼化貪料而設定之f料管理樹結構之管理,此外, 構成將用於密碼處理之鍵收納於安全日3日片Μ,因此可有效 防止管理資料洩漏。 / [10 ·中間階層之散列表之驗證] 如上述實施例中之說明,在安全晶片105内之保全記憶體 203中至少收納最上階散列值(T〇p Hash Vahe),作為管理 貝料驗證值。藉由在保全記憶體2〇3内進一步儲存資料管理 樹結構之中間階層之散列表,或是其散列值,可縮短特定 貝料驗證時所需之處理時間。以下說明在安全晶片ι〇5内之 保全記憶體203中儲存資料管理樹結構之中間階層之散列 表,或是其散列值,使用此等值之資料管理構造。 圖14顯不具有階層數❿為4,散列表中所含之散列值數為 2之2分支構造之資料管理樹結構。在安全晶片1〇5之保全記 憶體203内儲存最上階散列值(Top Hash Value)501與在資 料管理樹結構之中間階層之散列表HL(2,〇)之散列值之中 間散列值(Middle Hash Value)502 〇 最上階散列值(Top Hash Value)501係依據階層L=3之最 上階散列表511之收納散列值而生成之散列值,中間散列值 (Middle Hash Value)502係依據階層L=2之中間等級(level) 之階層之散列表521之收納散列值而生成之散列值。 圖14之例中,在最下層等級(L = 〇)中存在〇(〇)〜]〇(7)之8個 官理資料,而此等管理資料中之D(0)〜D(3)之4個管理資 料’可使用中間散列值(Middle Hash Value)502進行驗證。 藉由使用中間散列值(Middle Hash Valne)502進行驗證, 92950.doc -51 - 1270017 僅與階層L為1與2之兩個階層部分之散列表進行驗證,即可 元成驗證處理。因此,可縮短驗證處理時間。此外,補充、 變更、刪除處理等之更新處理時之驗證亦相同,可縮短處 理時間。另外,管理資料D(4)〜〇(7)之4個管理資料,需要 使用最上階散列值(Top Hash Value)501之驗證,因而係與 階層L為1,2及3之三個階層部分之散列表進行驗證。 [11 ·依據數個資料管理樹結構之管理構造] 再者,藉由構成具有數個儲存於安全晶片1〇5内部之保全 圮憶體203中之管理資料驗證值,可管理數個資料管理樹結 構。 如圖15所示,將具有階層„1為3,散列表中所含之散列值 數為2之2分支構造之資料管理樹結構區分設定成兩個,在 安全晶片105之保全記憶體203中保管:第一資料管理樹結 構(HT(1))520之最上階散列表522之散列值之第一最上階散 列值(Top Hash Valuel)521 ’作為第一資料管理樹結構 (HT(1))520之管理資料驗證值;與第二資料管理樹結構 (ΗΤ(2))53〇之最上階散列表532之散列值之第二最上階散列 值(Top Hash Value2)531,作為第二資料管理樹結構 (HT(2))530之管理資料驗證值。 採用该構造來執行資料驗證或更新時,自資料管理誓置 101指示安全晶片105處理對象之管理資料係屬於哪個資料 官理樹結構,安全晶片105依據指示選擇處理對象之資料管 . 理樹結構來進行處理。此外’藉由構成依據來自資料管理 裝置101之指示,安全晶片105補充、刪除内部之保全記憶 92950.doc -52- 1270017 體203管理之管理資料驗證值,可任意變更管理之資料樹結 構數量。 [12·將管理資料驗證值作為路徑散列表之構造] 上述之實施例,係說明將最上階散列值(T〇p Hasll Vahie) 收納於安全晶片丨〇5内部之保全記憶體203中之構造例,不 過,亦可構成不算出最上階散列值,而將最上階散列表收 納於安全晶片105内部之保全記憶體203中。 如圖16所示,在階層數m==3之資料管理樹結構中,不自 最上階散列表55 1算出散列值,來求出最上階散列值(τ〇ρ
Hash Value),而將最上階散列表55 1本身收納於安全晶片 105内之保全記憶體2〇3中。另外,於η分歧樹結構時,最 上階散列表55 1中包含η個散列值,此等η個散列值係收納於 安全晶片内。另外,此等η個散列值中係對應收納散列值索 引k。 [13·在資料管理樹結構之任意部分設定、管理管理資料驗 證值之構造] 上述之實施例主要係說明在1個資料管理樹結構中設定1 個管理資料驗證值,亦即設定最上階散列值等作為管理資 料驗證值之例,不過,亦可設定資料管理樹結構之任意資 料或散列表作為管理資料驗證值。 如圖17所示,可設定資料管理樹結構之任意資料或散列 表作為管理資料驗證值。圖17中之d(0)571係包含hl-A及 D-A之資料管理樹結構572之管理資料驗證值。 此外,圖17中,1個散列表中之散列值hl(2,1). H(l)573 92950.doc -53- 1270017 係包含HL-B及D-B之資料管理樹結構574之管理資料驗證 值。 此等管理資料驗證值收納於安全晶片1 〇5内部之保全記 憶體203中’並依據驗證或更新對象之資料所屬之樹結構來 讀取,應用於驗證處理或更新。 [14·散列值之資料管理樹結構]
上述貫施例係說明將具有數個散列值之散列表予以階層 化來構成資料管理樹結構之例,亦可依據將散列表換成散 列值所設定之資料管理樹結構來構成管理。 如圖18所示,在最下層(L=〇)設定管理對象資料 D(0)〜D(7),在L>0之上階層設定單一之散列值,而非包含 數個散列值之散列表。 圖18所示之資料管理樹結構之階層數為4,資料數為8。 圖上階層L=〇之資料之D(x)表示管理資料,χ表示對象之管 理資料之索引。階層L>〇之資料之Η(χ,y)表示散列值,X表
示對象之資料管理樹結構之階層數,y表示階層乂之對象散 列值之索引。散列值汛心y)係對連結下階全部資料之資料 之散列值。 ' 如散列值H(1,0)581係依據資料D(〇)與D(1)而生成之散 列值。具體而言,如依據資料D(〇)與D⑴之連結資料,應 用SHA-丨等之散列十進制而算出之值成為散列值 〇_。亦即,散列值H(1,0)581_ash(D⑼丨丨〇(1))。_ 不貪料之連結) 散列值H(2, 0)583係依據散列值H(1,〇)581純列值吼 92950.doc -54- 1270017 1)582而生成之散列值。散列值h(3, 〇)585係依據散列值h(2, 0)583與散列值h(2, 1)584而生成之散列值。 圖1 8顯不以全部之散列表包含2個散列值時之2分支構成 貧料管理樹結構之情況。H(3, 〇)585表示係資料管理樹結構 之最上階散列值。在安全晶片丨〇5之保全記憶體2〇3中至少 保管管理資料驗證值之H(3, 〇)之值。其他資料則儲存於資 料管理裝置1 〇 1之主記憶部i 〇4内。 此種依據將散列值予以階層化之資料管理樹結構之資料 管理方法與前述散列表之資料管理樹結構同樣地,可驗 證、補充、變更、刪除、階層之變更、密碼化、中間節點 之驗證及數個樹結構之管理等。比較散列值之資料管理樹 構與政列表之資料官理樹結構時,由於散列值之資料管 理樹結構在驗證中係連結數個資料來計算散列值,因此可 能處理所需時間增加。其在管理資料之尺寸大時特別顯 著。但是,具有管理資料以外之部分,散列值之資料管理 樹結構在管理上所需之資訊少之優點。圖19顯示管理資料 以外之部分在管理上所需之資訊最少之方法。 圖19係顯示階層數m為2,管理資料之數量為讀之散列 值之資料管理肖結構之例圖。㈣料管㈣結構之構造, 最上階散列值H(l, 0)591成為對連結全部管理資料者之散 列值。亦即,僅存在H@Hash(D(〇川D⑴丨丨(d(2川叩川;;. l|D(n-1))。 在安全晶片1〇5之保全記憶體203中,管理資料驗證值係 僅保管散列值H(1,〇)591。此時,在儲存於資料管理裝置ι〇ι 92950.doc -55- 1270017 之主記憶部1〇4内之管理資料以外之部分不存在管理上所 需之資訊。 圖20係在散列值之資料管理樹結構中,調整成管理資料 之尺寸大時驗證等在處理上所需時間縮短時之資料構造。 圖20係階層數01為5,管理資料之數量為8時之散列值之 資料管理樹結構。肖圖18之|異在於將L=1之散列值計算時 所需之管理資料數量減少成丨,並增加一段該部分之階層。 亦即,階層L=1之散列值係設定僅由i個管理資料生成之 散列值。如圖中之散列值H(1,〇)6〇1係僅由管理資料D生 成之散列值。 藉由形成此種構造,即使管理資料之尺寸大時,可以與 散列表之資料管理樹結構相等之時間進行驗證。不過儲存 於資料管理裝置101之主記憶部104内之管理資料以外之部 分,在管理上所需之資訊量最後與前述之散列表之資料管 理樹結構時相等。 以上,係蒼照指定之實施例來詳細說明本發明。但是, 在不脫離本發明要旨之範圍内,該業者瞭解可進行該實施 例之修正及代用。亦即,係以例示之形態來揭示本發明, 而不應作限定性之解釋。判斷本發明之要旨時,須參酌以 下記載之申請專利範圍項。 、另外°兄明書中說明之一連串處理,可藉由硬體或軟體 或兩者之複合構造來執行。藉由軟體執行處理時,可將記 錄處理程序之程式安裝於由專用之硬體組裝成之電腦内之 記憶體内來執行,或是在可執行各種處理之通用電腦中安 92950.doc -56- 1270017 裝程式來執行。 記Γ =可預ΐ記錄於作為記錄媒體之硬碟及R0M(唯讀 碟‘ Γ 3戈疋’程式可暫時性或永久性收納(記錄)於軟 數位-R〇M(唯讀記憶光碟)、Μ〇(光磁)碟、则(多樣化 此鍤.二磁碟、半導體記憶體等之可移式記錄媒體令。 可和式記錄媒體可作為所謂套裝軟體來提供。 另外’矛王式除上述之自可移式記錄媒體安裝於電腦内之 夕’亦可自下載端無線傳送至電腦,或是經由lan(區域網 另外說明書中揭示之各種處理,除依據内容時間序列地 執行外,亦可依據執行處理之裝置之處理能力或需要,並 列=別執行。此外,本說明書中所謂系、統,係數個裝置 之避輯集合構造’而不限定於各構成裝置係在同—個框體 内0 :)、網際網路等網路’以有線傳送至電腦,電腦接收如此 迗達之程式,而安裝於内藏之硬碟等記錄媒體中。 產業上之利用可行性 本發明之資料管理裝置、資料管理方法及電腦程式可適 用於執行如内容、許可證資訊及收費資訊等須防止竄改之 資訊之資料管理之構造。 由於本發明之構造具有如在安全晶片内之記憶體中收納 X ;寅料g理樹結構最上階之資料,亦即依據下階資料算 出之單向性函數之算出值,如收納散列值,應用該值作為 驗證值’來進行設於資料管理樹結構最下層之管理資料之 鼠改驗證之構造,因此,即使管理資料增加時,無須增加 92950.doc -57- 1270017 二=貝枓驗證值之資料量,而可執行許多管理資料之竄改 “可應用於執行各種資料管理之用途上。此外,由於 係構成,行管理資料之補充、刪除、變更等之資料更新時, 亦^據資料管理樹結構之散列值來執行資料驗證處理,因 此可用於進行資料之補充、刪除、變更等之資料更新之 置中。 ^ 【圖式簡單說明】 圖1係顯示本發明之資料管理裝置之構造圖。 圖2係顯示安全晶片之構造圖。 圖3係顯示資料管理樹結構之構造例圖。 圖4係說明依據資料管理肖、结構進行資料驗證處理程序 之流程圖。 圖5係設定驗證路徑之說明圖。 圖6係說明依據資料管理樹結構進行資料驗證處理程序 之流程圖。 圖7係說明依據資料管理樹結構進行資料更新及驗證處 理程序之流程圖。 圖8係設定路徑所需之資訊之說明圖。 圖9係顯示散列表1個階層之資料管理樹結構構造圖。 圖10係說明增加資料管理樹結構之階層之處理ζ序之流 程圖。 圖11係說明增加資料管理樹結構之階層之處理图 圖12係說明減少資料管理樹結構之階層之處理程序之流 程圖。 92950.doc -58- 1270017 圖13係說明減少資料管理樹結構之階層之處理圖。 圖14係依據中間散列值作管理之說明圖。 圖1 5係數個資料管理樹結構之管理構造之說明圖。 圖16係設定散列表作為管理資料驗證值之例之說明圖。 圖17係顯示設定資料管理樹結構之各種要素作為管理資 料驗證值之例圖。 圖18係顯^將散列值予以階層化之資时理樹結構 圖。 圖19係顯示設定!個散列值階層之散列 理樹結構構造圖。 曰貝 結構之例圖 【主要元件符號說明】 =!示生成各管理資料之散列值來構成資料警 101 資料管理裝置 102 CPU(中央處理單元) 103 記憶體 104 主記憶部 105 安全晶片 201 CPU(中央處理單元) 202 記憶體 203 保全記憶體 204 介面 301 最上階散列值 302 最上階散列表 92950.doc -59- 1270017 303 散列表 304 管理資料 321 最上階散列值 322- ^362 散列表 3 27 管理資料 350 管理資料 351 散列表 401 最上階散列值 402 散列表 451 最上階散列值 452 最上階散列表 453 新設定散列表 471 最上階散列值 472, 473 散列表 501 最上階散列值 502 中間散列值 511, 512 散列表 520 第一資料管理樹結構 521 第一最上階散列值 522 散列表 530 第一資料管理樹結構 531 第一最上階散列值 532 散列表 551 最上階散列表 92950.doc -60- 1270017 571 資料 572 資料管理樹結構 573 散列值 574 資料管理樹結構 581〜585 散列值 591 最上階散列值 601 散列值 92950.doc -61 -