專利名稱:信息處理裝置以及信息處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及處理保護對象數(shù)據(jù)的信息處理裝置。
背景技術(shù):
以往,存在處理保護對象數(shù)據(jù)的各種各樣的信息處理裝置。例如,專利文獻I以及非專利文獻I中示出,有關(guān)這樣的信息處理裝置的技術(shù)。(現(xiàn)有技術(shù)文獻)(專利文獻)專利文獻1:日本特開2004 - 288155號公報(非專利文獻)非專利文獻1:ARM Security Technology (http: / / infocenter. arm. com /help / topic / com. arm. doc. prd29 — gene — 009492c / PRD29 — GENC — 009492C_trustzone_security_whitepaper. pdf)然而,在以往的信息處理裝置中,會有保護對象數(shù)據(jù)的保護不充分的情況。
發(fā)明內(nèi)容
于是,本發(fā)明的目的在于提供能夠適當保護保護對象數(shù)據(jù)的信息處理裝置。為了實現(xiàn)所述目的,本發(fā)明的實施方案之一涉及的信息處理裝置,是處理保護對象數(shù)據(jù)的信息處理裝置,該信息處理裝置具備第一存儲部;第二存儲部;以及高速緩存器控制部,將所述第一存儲部中的存儲數(shù)據(jù)高速緩存到所述第二存儲部,所述高速緩存器控制部,以從被高速緩存到所述第二存儲部的所述存儲數(shù)據(jù)的高速緩存區(qū)域中得到的高速緩存數(shù)據(jù)不會被寫回到所述第一存儲部的方式,鎖定所述第二存儲部中的所述高速緩存區(qū)域,在所述第二存儲部中的所述高速緩存區(qū)域被鎖定之后,將與所述存儲數(shù)據(jù)不同的所述保護對象數(shù)據(jù)寫入到所述第二存儲部中的所述高速緩存區(qū)域。而且,它們的全方面或具體的實施方案,可以由系統(tǒng)、方法、集成電路、計算機程序或記錄介質(zhì)來實現(xiàn),也可以由系統(tǒng)、方法、集成電路、計算機程序或記錄介質(zhì)的任意的組合來實現(xiàn)。本發(fā)明的實施方案之一涉及的信息處理裝置,在處理保護對象數(shù)據(jù)時,能夠適當保護保護對象數(shù)據(jù)。
圖1是實施例I涉及的內(nèi)容分發(fā)系統(tǒng)的整體結(jié)構(gòu)圖。圖2是實施例I涉及的內(nèi)容顯示裝置的硬件結(jié)構(gòu)圖。圖3是實施例I涉及的高速緩存器的結(jié)構(gòu)圖。圖4是實施例I涉及的內(nèi)容顯示裝置的軟件結(jié)構(gòu)圖。圖5是實施例I涉及的加密隱藏數(shù)據(jù)的結(jié)構(gòu)圖。
圖6是實施例I涉及的包生成部的結(jié)構(gòu)圖。
圖7是實施例I涉及的安全應用程序的結(jié)構(gòu)圖。
圖8是實施例I涉及的安全引導處理的序列圖。
圖9是實施例I涉及的隱藏數(shù)據(jù)的加載處理的序列圖。
圖10是實施例I涉及的隱藏數(shù)據(jù)的卸載處理的序列圖。
圖11是實施例2涉及的安全操作系統(tǒng)的結(jié)構(gòu)圖。
圖12是實施例2涉及的應用程序主體的結(jié)構(gòu)圖。
圖13是實施例2涉及的安全應用程序的加載處理的流程圖。
圖14A是實施例3涉及的高速緩存器的鎖定處理的序列圖。
圖14B是實施例3涉及的高速緩存器的解鎖處理的序列圖。
圖15A是實施例4涉及的信息處理裝置的硬件結(jié)構(gòu)圖。
圖15B是示出實施例4涉及的信息處理裝置的工作的流程圖。
圖16是實施例5涉及的信息處理裝置的硬件結(jié)構(gòu)圖。
圖17是其他的變形例涉及的內(nèi)容顯示裝置的硬件結(jié)構(gòu)圖。
圖18是其他的變形例涉及的安全的軟件執(zhí)行環(huán)境的結(jié)構(gòu)圖。
具體實施方式
(成為本發(fā)明的基礎的知識)
用于管理著作權(quán)的程序等被進行非法的解析等的非法行為是不理想的。因此,保護這樣的程序(以下,稱為“保護對象程序”)的技術(shù)被廣泛地利用。這是因為,若不充分保護,則不僅對程序的權(quán)利者而在各種各樣的方面會發(fā)生損失的緣故。
例如,若非法者能夠?qū)τ糜趯⒓用芎蟮臄?shù)字內(nèi)容解密并再生的程序進行非法解析并篡改,則會有數(shù)字內(nèi)容被非法利用的情況。
具體而言,非法者有可能,通過對用于將加密后的數(shù)字內(nèi)容解密的程序進行解析, 獲得用于數(shù)字內(nèi)容的解密的解密密鑰,從而非法再生數(shù)字內(nèi)容。并且,即使在數(shù)字內(nèi)容的復制次數(shù)或再生次數(shù)等受限制的情況下,非法者也有可能,通過竄改用于檢查數(shù)字內(nèi)容的復制次數(shù)或再生次數(shù)等的程序,從而使該限制無效化。
非專利文獻I公開,保護程序等的數(shù)據(jù)不受非法者的非法解析的技術(shù)。在非專利文獻I所公開的技術(shù)中,構(gòu)建了具有防止來自外部的非法訪問的機構(gòu)的安全域。而且, LSI (Large Scale Integration :大規(guī)模集成電路),具有由安全域進行處理的安全模式、和不利用安全域而進行處理的正常模式,切換正常模式和安全模式來進行工作。
該技術(shù),通過以安全模式使保護對象程序工作,從而保護保護對象程序不受非法的解析等。據(jù)此,保護用于解密處理的解密密鑰不被非法獲得,保護用于檢查再生次數(shù)的程序不被非法篡改。
更具體地說,作為防止非法訪問的機構(gòu),在LSI內(nèi)部,對連接處理器和周邊電路的總線附加稱為NS — bit (Non Secure bit:不安全比特)的信號。該NS — bit,在核處理器的模式為正常模式時被設定為High,在核處理器的模式為安全模式時被設定為Low。
而且,與該總線連接的存儲器控制部(存儲器控制器)、高速緩存器以及DMA控制部(DMA控制器)等周邊電路,按照該NS — bit,進行訪問控制。例如,存儲器控制部,按存儲器的每一定區(qū)域(例如,每個4KB大小),設定NS — bit。據(jù)此,在核處理器訪問存儲器時,存儲器控制部,對總線的NS - bit的值和存儲器的NS - bit的值進行比較,進行訪問控制。具體而言,在核處理器的模式為正常模式(總線的NS - bit為High)、且核處理器將要訪問安全模式用的存儲區(qū)域(存儲器的NS - bit為Low)的情況下,存儲器控制部禁止該訪問。而且,存儲器控制部允許其他的訪問。信息處理裝置,通過利用這樣的非法訪問防止機構(gòu),從而能夠禁止以正常模式工作的程序,訪問安全的存儲區(qū)域、以及限定為安全模式而利用的功能等。也就是說,信息處理裝置,將用于解密處理的解密密鑰存儲到安全模式用的存儲區(qū)域,以安全模式執(zhí)行解密處理,以安全模式執(zhí)行檢查再生次數(shù)的處理。據(jù)此,信息處理裝置,能夠防止由非法者的非法的解析以及篡改。然而,根據(jù)非專利文獻I的結(jié)構(gòu),只不過是,核處理器以及周邊電路這雙方準確地處理NS - bit,從而實現(xiàn)針對程序的訪問控制,防止利用了攻擊用的程序的解析以及篡改。因此,例如,在LSI中執(zhí)行的程序利用LSI外部的存儲器(SDRAM等)的情況下,根據(jù)非專利文獻I的結(jié)構(gòu),存在不能防止對連接LSI和存儲器的信號線的攻擊的問題。具體而言,非法者有可能,通過利用示波器或邏輯分析器等,捕獲(探測)信號線上流動的數(shù)據(jù),從而直接獲得被寫入到安全的存儲區(qū)域的數(shù)據(jù)。而且,非法者有可能,通過解析獲得的數(shù)據(jù),獲得保護數(shù)字內(nèi)容的密鑰等,從而非法復制數(shù)字內(nèi)容。信息處理裝置需要,適當保護保護對象數(shù)據(jù),不受這樣的攻擊、即因利用邏輯分析器等的硬件來探測信號線等而會發(fā)生的數(shù)據(jù)流出。于是,本發(fā)明的實施方案之一涉及的信息處理裝置,是處理保護對象數(shù)據(jù)的信息處理裝置,該信息處理裝置具備第一存儲部;第二存儲部;以及高速緩存器控制部,將所述第一存儲部中的存儲數(shù)據(jù)高速緩存到所述第二存儲部,所述高速緩存器控制部,以從被高速緩存到所述第二存儲部的所述存儲數(shù)據(jù)的高速緩存區(qū)域中得到的高速緩存數(shù)據(jù)不會被寫回到所述第一存儲部的方式,鎖定所述第二存儲部中的所述高速緩存區(qū)域,在所述第二存儲部中的所述高速緩存區(qū)域被鎖定之后,將與所述存儲數(shù)據(jù)不同的所述保護對象數(shù)據(jù)寫入到所述第二存儲部中的所述高速緩存區(qū)域。據(jù)此,保護對象數(shù)據(jù),不被寫入到SDRAM等的存儲器(第一存儲部),而被寫入到存儲器中的用于高速緩存數(shù)據(jù)的高速緩存器(第二存儲部)。外部的裝置訪問被寫入到高速緩存器的數(shù)據(jù)是困難的。并且,保護對象數(shù)據(jù),被寫入到被鎖定的高速緩存區(qū)域,因此不會被寫回到存儲器。因此,能夠適當保護保護對象數(shù)據(jù)。例如,也可以是,所述高速緩存器控制部,通過以從處理器輸出的所述保護對象數(shù)據(jù)不會由外部的裝置獲得的方式被物理保護的電路,將從所述處理器輸出的所述保護對象數(shù)據(jù)寫入到所述第二存儲部中的所述高速緩存區(qū)域,以所述高速緩存區(qū)域中的所述保護對象數(shù)據(jù)不會由外部的裝置獲得的方式,所述第二存儲部被物理保護。據(jù)此,外部的裝置物理獲得保護對象數(shù)據(jù)是困難的。因此,能夠適當保護保護對象數(shù)據(jù)。并且,例如,也可以是,所述高速緩存器控制部,在所述保護對象數(shù)據(jù)被處理時,針對所述保護對象數(shù)據(jù),分配所述第一存儲部中的數(shù)據(jù)區(qū)域,將被分配的所述數(shù)據(jù)區(qū)域中的所述存儲數(shù)據(jù)高速緩存到所述第二存儲部,以從被高速緩存到所述第二存儲部的所述存儲數(shù)據(jù)的所述高速緩存區(qū)域中得到的所述高速緩存數(shù)據(jù)不會被寫回到所述第一存儲部的方式,鎖定所述第二存儲部中的所述高速緩存區(qū)域,在所述第二存儲部中的所述高速緩存區(qū)域被鎖定之后,將與所述存儲數(shù)據(jù)不同的所述保護對象數(shù)據(jù)寫入到所述第二存儲部中的所述高速緩存區(qū)域。據(jù)此,在保護對象數(shù)據(jù)被處理時,用于保護對象數(shù)據(jù)的數(shù)據(jù)區(qū)域,在存儲器中被分配。因此,維持存儲器的區(qū)域與高速緩存器的區(qū)域的適當?shù)膶P(guān)系。并且,例如,也可以是,所述高速緩存器控制部,在所述保護對象數(shù)據(jù)被處理之后,清除所述第二存儲部中的所述高速緩存區(qū)域,以從清除后的所述高速緩存區(qū)域中得到的所述高速緩存數(shù)據(jù)能夠被寫回到所述第一存儲部的方式,解除所述高速緩存區(qū)域的鎖定。據(jù)此,保護對象數(shù)據(jù),在從高速緩存器被寫回到存儲器之前,被消除。因此,能夠適當保護保護對象數(shù)據(jù)。并且,例如,也可以是,所述信息處理裝置還具備處理器,該處理器生成所述保護對象數(shù)據(jù),并輸出生成的所述保護對象數(shù)據(jù),所述高速緩存器控制部,在所述第二存儲部中的所述高速緩存區(qū)域被鎖定之后,將從所述處理器輸出的所述保護對象數(shù)據(jù)寫入到所述第二存儲部中的所述高速緩存區(qū)域。據(jù)此,由處理器生成的保護對象數(shù)據(jù)被寫入到高速緩存器。因此,能夠適當保護由處理器生成的保護對象數(shù)據(jù)。并且,例如,也可以是,所述信息處理裝置還具備集成電路,所述第二存儲部、所述高速緩存器控制部以及所述處理器,被包含在所述集成電路中。據(jù)此,高速緩存器以及處理器構(gòu)成一個集成電路。外部的裝置訪問集成電路內(nèi)的數(shù)據(jù)是困難的。因此,能夠適當保護保護對象數(shù)據(jù)。并且,例如,也可以是,所述處理器,通過對加密數(shù)據(jù)進行解密,從而生成所述保護對象數(shù)據(jù),并輸出生成的所述保護對象數(shù)據(jù)。據(jù)此,能夠適當保護由加密數(shù)據(jù)的解密得到的保護對象數(shù)據(jù)。并且,例如,也可以是,所述高速緩存器控制部,將由程序預定為將要被寫入到所述第一存儲部的所述保護對象數(shù)據(jù)寫入到所述第二存儲部中的所述高速緩存區(qū)域。據(jù)此,程序?qū)⒁獙懭氲酱鎯ζ鞯谋Wo對象數(shù)據(jù),不被寫入到存儲器,而被寫入到高速緩存器。因此,能夠適當保護保護對象數(shù)據(jù)。并且,例如,也可以是,所述高速緩存器控制部,將可執(zhí)行的程序作為所述保護對象數(shù)據(jù)寫入到所述第二存儲部中的所述高速緩存區(qū)域。據(jù)此,能夠保護保護對象程序不被篡改。因此,能夠適當執(zhí)行保護對象程序。并且,例如,也可以是,所述處理器,以安全模式執(zhí)行安全程序,以正常模式執(zhí)行正常程序,所述第一存儲部具有第一存儲區(qū)域以及第二存儲區(qū)域,所述第一存儲區(qū)域是用于存儲所述正常程序的區(qū)域,所述第二存儲區(qū)域是用于存儲所述安全程序的區(qū)域,且是禁止由所述正常程序訪問的區(qū)域。據(jù)此,以適當?shù)陌踩綀?zhí)行程序,根據(jù)與程序?qū)陌踩綀?zhí)行訪問控制。并且,例如,也可以是,所述高速緩存器控制部,將由所述安全程序預定為將要被寫入到所述第二存儲區(qū)域的所述保護對象數(shù)據(jù)寫入到所述第二存儲部中的所述高速緩存區(qū)域。據(jù)此,程序?qū)⒁獙懭氲酱鎯ζ鞯谋Wo對象數(shù)據(jù),不被寫入到存儲器,而被寫入到高速緩存器。因此,能夠以更高的水平保護保護對象數(shù)據(jù)。并且,例如,也可以是,所述信息處理裝置還具備訪問控制部,該訪問控制部禁止由所述正常程序訪問所述第二存儲區(qū)域。據(jù)此,能夠適當控制對存儲器中的多個存儲區(qū)域的訪問。因此,能夠適當限制非法程序的執(zhí)行。進而,它們的全方面或具體的形態(tài),可以由系統(tǒng)、方法、集成電路、計算機程序或記錄介質(zhì)來實現(xiàn),也可以由系統(tǒng)、方法、集成電路、計算機程序或記錄介質(zhì)的任意的組合來實現(xiàn)。以下,對于本發(fā)明的實施方案之一涉及的信息處理裝置,參照附圖進行具體說明。而且,以下說明的實施例,都示出本發(fā)明的一個具體例子。以下的實施例所示的數(shù)值、形狀、材料、構(gòu)成要素、構(gòu)成要素的配置位置以及連接形態(tài)、步驟、步驟的順序等,是一個例子,而不是限定本發(fā)明的宗旨。并且,對于以下的實施例的構(gòu)成要素中的、示出最上位概念的獨立請求項中沒有記載的構(gòu)成要素,作為任意的構(gòu)成要素進行說明。(實施例I)本實施例涉及的信息處理裝置是,從記錄由天線接收的廣播波的內(nèi)容記錄裝置接收內(nèi)容,并顯示內(nèi)容的內(nèi)容顯示裝置。<內(nèi)容分發(fā)系統(tǒng)的結(jié)構(gòu)>圖1是本實施例涉及的內(nèi)容分發(fā)系統(tǒng)的結(jié)構(gòu)圖。如圖1,內(nèi)容分發(fā)系統(tǒng)100包括,內(nèi)容顯示裝置110、內(nèi)容記錄裝置120、以及天線121。內(nèi)容顯示裝置110是本實施例涉及的信息處理裝置。內(nèi)容顯示裝置110,經(jīng)由網(wǎng)絡與內(nèi)容記錄裝置120連接。而且,內(nèi)容顯示裝置110,接收內(nèi)容記錄裝置120所記錄的內(nèi)容,顯示接收的內(nèi)容。內(nèi)容記錄裝置120,與天線121連接。而且,內(nèi)容記錄裝置120,記錄由天線121接收的內(nèi)容。并且,內(nèi)容記錄裝置120,按照來自內(nèi)容顯示裝置110的請求,向內(nèi)容顯示裝置110發(fā)送記錄的內(nèi)容。內(nèi)容記錄裝置120也可以,從具有便攜性的記錄介質(zhì)讀出內(nèi)容,向內(nèi)容顯示裝置110發(fā)送讀出的內(nèi)容。內(nèi)容顯示裝置110以及內(nèi)容記錄裝置120具有,共同的加解密密鑰。而且,內(nèi)容記錄裝置120,使用加解密密鑰來加密內(nèi)容,向內(nèi)容顯示裝置110發(fā)送加密后的內(nèi)容。據(jù)此,防止捕獲連接內(nèi)容顯示裝置110以及內(nèi)容記錄裝置120的網(wǎng)絡上流動的數(shù)據(jù),從而非法獲得內(nèi)容的情況。需要適當保護內(nèi)容顯示裝置110以及內(nèi)容記錄裝置120共同具有的加解密密鑰。要保護加解密密鑰,當然不受由使用了調(diào)試程序或非法應用程序(以下,將應用程序也稱為應用)的軟件的攻擊,也不受由總線探頭等的硬件的攻擊,否則會被泄漏。而且,在該加解密密鑰、和網(wǎng)絡上流動的加密后的內(nèi)容被獲得的情況下,內(nèi)容會被非法解密。因此,優(yōu)選的是,在內(nèi)容顯示裝置110的內(nèi)部,也適當保護加解密密鑰,以作為隱藏數(shù)據(jù)。〈內(nèi)容顯示裝置110的硬件結(jié)構(gòu)〉
圖2是圖1所示的內(nèi)容顯示裝置110的硬件結(jié)構(gòu)圖。如圖2,內(nèi)容顯示裝置110包括,系統(tǒng)LSI1000、存儲器1020、以及非易失性存儲裝置1050。系統(tǒng)LSI1000 包括,CPU (Central Processing Unit :中央處理器)1001、IPLdnitial Program Loader :初始程序加載程序)1002、存儲器控制部(存儲器控制器)1003、高速緩存器1004、以及密鑰保持部1006。CPU1001,執(zhí)行存儲器1020所存放的通用操作系統(tǒng)(通用OS) 1031或播放應用1032等中包含的指令碼。據(jù)此,CPU1001,控制內(nèi)容顯示裝置110整體的工作。并且,CPU1001,具有安全模式以及正常模式這兩個模式。引導加載器1041、安全操作系統(tǒng)(安全OS) 1042以及內(nèi)容再生應用1043,以安全模式工作。以安全模式工作的程序,能夠訪問安全模式的程序所使用的存儲區(qū)域(安全區(qū)域1040),也能夠訪問正常模式的程序所使用的存儲區(qū)域(正常區(qū)域1030)。進而,以安全模式工作的程序,也能夠利用以安全模式能夠利用的周邊電路(加密引擎等)。另一方面,通用操作系統(tǒng)1031、播放應用1032以及內(nèi)容接收應用1033,以正常模式工作。以正常模式工作的程序,能夠訪問正常模式的程序所使用的正常區(qū)域1030,但是,不能訪問安全模式的程序所使用的安全區(qū)域1040。并且,安全模式以及正常模式各自,還具有特權(quán)模式以及非特權(quán)模式這兩個模式。引導加載器1041、安全操作系統(tǒng)1042以及通用操作系統(tǒng)1031,以特權(quán)模式工作。它們,能夠自由訪問存儲器1020、網(wǎng)絡I / F以及輸入輸出I / F等的各種資源。另一方面,內(nèi)容再生應用1043,以非特權(quán)模式工作,能夠訪問安全操作系統(tǒng)1042設定的范圍內(nèi)的資源。并且,播放應用1032以及內(nèi)容接收應用1033,以非特權(quán)模式工作,能夠訪問通用操作系統(tǒng)1031設定的范圍內(nèi)的資源。CPU1001,在訪問存儲器控制部1003等的周邊電路時,輸出NS — bit (Non Securebit)的信號。在CPU1001以安全模式作工作中的情況下,CPU1001將NS — bit設定為Low。另一方面,在CPU1001以正常模式作工作中的情況下,CPU1001將NS — bit設定為High。如存儲器控制部1003等的與總線連接的周邊電路,按照該NS - bit的狀態(tài),進行訪問控制。IPL1002是,內(nèi)容顯示裝置110的電源接通后,最初啟動的程序。IPL1002,進行總線、存儲器控制部1003、存儲器1020以及非易失性存儲裝置1050等的硬件的初始設定。此時,IPL1002,針對存儲器1020展開引導加載器1041并執(zhí)行。IPL1002,以沒有被竄改的狀態(tài)被存放在系統(tǒng)LSI1000的掩模ROM等中。存儲器控制部1003,也被稱為存儲器控制器,控制從與總線連接的其他的電路向存儲器1020的訪問。存儲器控制部1003,將存儲器1020的內(nèi)部劃分為正常區(qū)域1030以及安全區(qū)域1040這兩個區(qū)域來管理。而且,在CPU1001以正常模式工作中(NS — bit為High)、且CPU1001將要訪問安全區(qū)域1040的情況下,存儲器控制部1003,禁止該訪問。而且,在CPU1001以正常模式工作中(NS - bit為High)、且CPU1001將要訪問正常區(qū)域1030的情況下,存儲器控制部1003,允許該訪問。并且,在CPU1001以安全模式工作中(吧一13行為1^^)、且0 譏001將要訪問正常區(qū)域1030或安全區(qū)域1040的情況下,存儲器控制部1003,允許該訪問。在CPU1001將要訪問存儲器1020時,高速緩存器1004,將包含CPU1001將要訪問的存儲器1020中的數(shù)據(jù)的一定的大小的數(shù)據(jù),讀入到高速緩存器1004的內(nèi)部。然后,高速緩存器1004,在CPU1001將要讀入數(shù)據(jù)的情況下,向CPU1001返回數(shù)據(jù),在CPU1001將要寫入數(shù)據(jù)的情況下,改寫讀入到高速緩存器1004的內(nèi)部的數(shù)據(jù)。此時,在CPU1001將要訪問的存儲器1020中的數(shù)據(jù)已經(jīng)被讀入到高速緩存器1004的內(nèi)部的情況下,高速緩存器1004,不從存儲器1020讀入數(shù)據(jù),而利用高速緩存器1004的內(nèi)部的數(shù)據(jù)進行處理。據(jù)此,在CPU1001,對存儲器1020中的連續(xù)的數(shù)據(jù)進行訪問時,訪問
速度提高。高速緩存器1004,在高速緩存器1004的內(nèi)部的用于存儲數(shù)據(jù)的區(qū)域已滿時,以被讀入到高速緩存器1004的內(nèi)部的新的數(shù)據(jù)來重寫已經(jīng)存儲的數(shù)據(jù)。在CPU1001將要寫入數(shù)據(jù)的情況下,高速緩存器1004,更新高速緩存器1004的內(nèi)部的數(shù)據(jù),并且,以適當?shù)亩〞r將該更新反映到存儲器1020。將更新反映的方法有,直寫方式(Write Through Algorithm)以及回寫方式(Write Back Algorithm)這兩個方式。根據(jù)直寫方式,在CPU1001將要寫入數(shù)據(jù)時,更新高速緩存器1004的內(nèi)部的數(shù)據(jù),并且,該更新反映到存儲器1020。根據(jù)回寫方式,在CPU1001將要寫入數(shù)據(jù)時,更新高速緩存器1004的內(nèi)部的數(shù)據(jù)。而且,即將以讀入到高速緩存器1004的內(nèi)部的新的數(shù)據(jù)來重寫該更新后的數(shù)據(jù)之前,該更新反映到存儲器1020。在本實施例中,為了防止隱藏數(shù)據(jù)被寫入到存儲器1020,高速緩存器1004被設定為,以回寫方式反映更新。高速緩存器1004,在有來自CPU1001的數(shù)據(jù)的訪問請求時,需要瞬間檢索在高速緩存器1004的內(nèi)部是否存在該數(shù)據(jù)。因此,高速緩存器1004,在高速緩存器1004的內(nèi)部存儲數(shù)據(jù)時,以特殊的數(shù)據(jù)構(gòu)造存儲數(shù)據(jù)。例如,高速緩存器1004,以稱為“線(Line) ”的統(tǒng)一的單位管理內(nèi)部所存儲的數(shù)據(jù)。具體而言,高速緩存器1004,根據(jù)與高速緩存器1004的內(nèi)部所存放的數(shù)據(jù)對應的存儲器1020中的地址的低位數(shù)比特(以下,集索引=SetIndex),限定存放位置。在各個線中,存放地址的集索引以外的部分(標簽)、以及數(shù)據(jù)。高速緩存器1004,根據(jù)存放位置以及標簽的信息,識別該線中存放的數(shù)據(jù)是存儲器1020的何處存儲過的數(shù)據(jù)。高速緩存器1004能夠,向具有同一的集索引的存放位置存放多個標簽和數(shù)據(jù)。這樣的存放場所,分別被稱為路(Way)。能夠存放四個標簽和數(shù)據(jù)的高速緩存器,被稱為4路高速緩存器。高速緩存器1004,在將存儲器1020中的數(shù)據(jù)讀入到高速緩存器1004的內(nèi)部時,也將用于識別該數(shù)據(jù)是正常區(qū)域1030以及安全區(qū)域1040的哪一方的區(qū)域中被記錄的數(shù)據(jù)的信息(NS — bit),與數(shù)據(jù)一起記錄。高速緩存器1004,在從正常區(qū)域1030讀入數(shù)據(jù)的情況下,與該數(shù)據(jù)一起記錄High的NS - bit。另一方面,高速緩存器1004,在從安全區(qū)域1040讀入數(shù)據(jù)的情況下,與該數(shù)據(jù)一起記錄Low的NS - bit。在CPU1001將要訪問高速緩存器1004時,高速緩存器1004,與存儲器控制部1003同樣,參照CPU1001的模式、和與數(shù)據(jù)一起被記錄的NS — bit的值,進行訪問控制。
具體而言,在CPU1001以正常模式工作中的情況下,高速緩存器1004,禁止向NS —bit被設定為Low的高速緩存數(shù)據(jù)(從安全區(qū)域1040讀入的數(shù)據(jù))的訪問。而且,在除此以外的情況下,高速緩存器1004,允許訪問。高速緩存器1004具有,數(shù)據(jù)、數(shù)據(jù)的地址、Dirty標志、以及Valid標志。數(shù)據(jù),從存儲器1020被讀入。地址是,存儲器1020的數(shù)據(jù)的地址。Dirty標志是,高速緩存器1004的數(shù)據(jù)被改寫時設定的標志。Valid標志是,示出高速緩存器1004中存放了有效的數(shù)據(jù)的情況的標志。密鑰保持部1006,保持加解密密鑰。該加解密密鑰,用于加密隱藏數(shù)據(jù)1051、加密引導加載器1052、加密安全操作系統(tǒng)1053、以及加密內(nèi)容再生應用1054的解密。并且,該加解密密鑰,用于解密后的隱藏數(shù)據(jù)、引導加載器1041、安全操作系統(tǒng)1042、以及內(nèi)容再生應用1043的加密。進而,也可以對其他的數(shù)據(jù)的加解密,利用該加解密密鑰。并且,也可以對用于數(shù)據(jù)以及程序等的加解密的其他的密鑰的加解密,利用該加解密密鑰。并且,密鑰保持部1006,也可以保持與多個程序?qū)亩鄠€加解密密鑰。并且,密鑰保持部1006,也可以保持基于公開密鑰加密方式的互不相同的加密密鑰以及解密密鑰。或者,密鑰保持部1006,也可以保持基于共同密鑰加密方式的共同的加解密密鑰。存儲器1020是,揮發(fā)性的RAM (Random Access Memory :隨機訪問存儲器),包括正常區(qū)域1030和安全區(qū)域1040。在正常區(qū)域1030中,存放CPU1001以正常模式工作中執(zhí)行的程序。具體而言,存放通用操作系統(tǒng)1031、播放應用1032以及內(nèi)容接收應用1033。并且,在正常區(qū)域1030中,存放以正常模式工作的程序、和以安全模式工作的程序這雙方訪問的共享數(shù)據(jù)1034。在安全區(qū)域1040中,存放CPU1001以安全模式工作中執(zhí)行的程序。具體而言,存放引導加載器1041、安全操作系統(tǒng)1042以及內(nèi)容再生應用1043。在CPU1001以安全模式工作中的情況下,以及在以正常模式工作中的情況下,CPU1001都能夠訪問正常區(qū)域1030。在CPU1001以安全模式工作中的情況下,CPU1001能夠訪問安全區(qū)域1040。但是,在CPU1001以正常模式工作中的情況下,CPU1001不能訪問安全區(qū)域1040。這樣的訪問控制,由存儲器控制部1003實現(xiàn)。而且,在應用不會由用戶安裝的環(huán)境下,調(diào)試程序或非法應用不被安裝。在這樣的環(huán)境下,也可以不區(qū)別正常區(qū)域1030和安全區(qū)域1040。而且,也可以以正常模式進行所有的處理。非易失性存儲裝置1050是,閃存等的存儲元件,內(nèi)置在內(nèi)容顯示裝置110中。而且,在非易失性存儲裝置1050中,存放加密隱藏數(shù)據(jù)1051。對于加密隱藏數(shù)據(jù)1051的構(gòu)造,在后面進行說明。并且,在非易失性存儲裝置1050中,存放加密引導加載器1052、加密安全操作系統(tǒng)1053、加密內(nèi)容再生應用1054、以及存儲器1020所存放的其他的安全應用(不圖示)。在非易失性存儲裝置1050中,也可以還存放播放應用1032,內(nèi)容接收應用1033以及內(nèi)容再生應用1043等的應用。安全區(qū)域1040中存放的程序,像加密引導加載器1052、力口密安全操作系統(tǒng)1053以及加密內(nèi)容再生應用1054那樣,加密后被存放在非易失性存儲裝置1050中。對于加密后的程序的構(gòu)造,在后面進行說明。
內(nèi)容顯示裝置110,還具備圖2中沒有示出的輸入輸出部等。但是,由于它們不是本技術(shù)的本質(zhì),因此省略說明。并且,系統(tǒng)LSI1000,還具備圖2中沒有示出的周邊電路等。但是,由于它們也不是本技術(shù)的本質(zhì),因此省略說明。 <高速緩存器1004的硬件結(jié)構(gòu)>圖3是圖2所示的高速緩存器1004的結(jié)構(gòu)圖。如圖3,高速緩存器1004包括,存儲區(qū)域1011、以及高速緩存器控制部(高速緩存器控制器)1012。存儲區(qū)域1011是,用于將存儲器1020中的數(shù)據(jù)高速緩存的區(qū)域。也就是說,存儲器1020中的數(shù)據(jù)被高速緩存到存儲區(qū)域1011。高速緩存器控制部1012,也被稱為高速緩存器控制器,對高速緩存器1004的工作進行控制。例如,高速緩存器控制部1012,將存儲器1020中的數(shù)據(jù)高速緩存到高速緩存器1004中的存儲區(qū)域1011。更具體地說,高速緩存器控制部1012,接受來自CPU1001的數(shù)據(jù)的請求,將被高速緩存到存儲區(qū)域1011的數(shù)據(jù)發(fā)送給CPU1001。在被請求的數(shù)據(jù)沒有被高速緩存到存儲區(qū)域1011的情況下,高速緩存器控制部1012,經(jīng)由存儲器控制部1003等,將存儲器1020中的數(shù)據(jù)高速緩存到存儲區(qū)域1011。而且,高速緩存器控制部1012,將被高速緩存到存儲區(qū)域1011的數(shù)據(jù)發(fā)送給CPU1001。而且,圖3的結(jié)構(gòu)是一個例子。例如,高速緩存器控制部1012也可以是,獨立于高速緩存器1004的構(gòu)成要素。并且,高速緩存器1004也可以是,被稱為L2高速緩存器(Level2 Cache)的高速緩存器、被稱為LI高速緩存器(Level I Cache)的高速緩存器、其他的高速緩存器。〈內(nèi)容顯示裝置110的軟件結(jié)構(gòu)〉圖4是圖1所示的內(nèi)容顯示裝置110的軟件結(jié)構(gòu)圖。如圖4,內(nèi)容顯示裝置110包括,通常的軟件執(zhí)行環(huán)境(以下,稱為“正常環(huán)境(NormalWorld) ”) 1100、以及安全的軟件執(zhí)行環(huán)境(以下,稱為“安全環(huán)境(Securefforld) ") 12000內(nèi)容顯示裝置110,切換正常環(huán)境1100和安全環(huán)境1200,執(zhí)行程序。而且,對于切換正常環(huán)境1100和安全環(huán)境1200的方法,可以利用例如專利文獻I所記載的方法?!凑-h(huán)境1100的軟件結(jié)構(gòu)〉正常環(huán)境1100包括,通用操作系統(tǒng)1031、播放應用1032、內(nèi)容接收應用1033、以及共享數(shù)據(jù)1034。通用操作系統(tǒng)1031,管理以正常環(huán)境1100工作的應用(播放應用1032以及內(nèi)容接收應用1033等)。并且,通用操作系統(tǒng)1031,進行以正常環(huán)境1100工作的應用利用網(wǎng)絡等的硬件時的訪問管理以及資源管理。播放應用1032是,控制內(nèi)容的再生的應用,向用戶提供用于進行內(nèi)容的選擇、再生或停止等的接口。并且,播放應用1032,在用戶委托內(nèi)容的再生時,對內(nèi)容接收應用1033以及內(nèi)容再生應用1043進行指示。而且,內(nèi)容接收應用1033,從內(nèi)容記錄裝置120接收內(nèi)容,內(nèi)容再生應用1043,進行被接收了的內(nèi)容的再生處理。內(nèi)容接收應用1033,在有來自播放應用1032的委托時,將被委托的內(nèi)容,經(jīng)由網(wǎng)絡從內(nèi)容記錄裝置120接收。正常環(huán)境1100也可以,還包括圖4中沒有示出的應用。
<安全環(huán)境1200的軟件結(jié)構(gòu)>安全環(huán)境1200包括,引導加載器1041、安全操作系統(tǒng)1042、以及內(nèi)容再生應用
1043。弓丨導加載器1041,在內(nèi)容顯示裝置110的啟動時,由IPL1002啟動。而且,引導加載器1041,進行安全環(huán)境1200的初始化、安全區(qū)域1040的設定處理、以及安全操作系統(tǒng)1042的向存儲器1020的加載處理等。安全操作系統(tǒng)1042,管理以安全環(huán)境1200工作的安全應用(內(nèi)容再生應用1043等)。并且,安全操作系統(tǒng)1042,在安全應用的啟動時將安全應用加載到安全區(qū)域1040。據(jù)此,安全操作系統(tǒng)1042,針對以正常環(huán)境1100工作的應用保護安全應用。進而,安全操作系統(tǒng)1042包括,隱藏數(shù)據(jù)加載部1044和高速緩存器鎖定部1045。例如,作為安全應用的內(nèi)容再生應用1043,委托安全操作系統(tǒng)1042,將非易失性存儲裝置1050所記錄的加密隱藏數(shù)據(jù)1051作為隱藏數(shù)據(jù)1010來加載。安全操作系統(tǒng)1042,委托高速緩存器鎖定部1045,鎖定用于將隱藏數(shù)據(jù)1010加載到高速緩存器1004的區(qū)域。然后,安全操作系統(tǒng)1042,委托隱藏數(shù)據(jù)加載部1044,將加密隱藏數(shù)據(jù)1051作為隱藏數(shù)據(jù)1010來加載。據(jù)此,加載到高速緩存器1004的隱藏數(shù)據(jù)1010被控制為,不會被寫出到存儲器1020。隱藏數(shù)據(jù)加載部1044,按照來自安全操作系統(tǒng)1042的委托,進行非易失性存儲裝置1050所記錄的加密隱藏數(shù)據(jù)1051的解密以及驗證。而且,隱藏數(shù)據(jù)加載部1044,將隱藏數(shù)據(jù)1010加載到指定的區(qū)域。并且,隱藏數(shù)據(jù)加載部1044,按照來自安全操作系統(tǒng)1042的委托,計算隱藏數(shù)據(jù)1010的驗證值(Verification Value),對隱藏數(shù)據(jù)1010進行加密,生成加密隱藏數(shù)據(jù)1051。高速緩存器鎖定部1045,按照來自安全操作系統(tǒng)1042的委托,將存儲器1020中指定的區(qū)域的數(shù)據(jù)讀入到高速緩存器1004。而且,高速緩存器鎖定部1045,鎖定高速緩存器1004(高速緩存器1004的一部分),以使高速緩存器1004的內(nèi)部的數(shù)據(jù)不會被寫出到存儲器 1020。在此,高速緩存器1004的鎖定意味著,控制為高速緩存器1004中的數(shù)據(jù)不會被回寫到存儲器1020。例如,根據(jù)高速緩存器1004的鎖定,使用頻度高的數(shù)據(jù)被維持在高速緩存器1004的內(nèi)部,數(shù)據(jù)處理的性能提高。作為典型的高速緩存器1004的工作,在存儲器1020中的數(shù)據(jù)被讀入到高速緩存器1004的狀態(tài)下進行鎖定。因此,本實施例的高速緩存器鎖定部1045,在鎖定高速緩存器1004之前,將存儲器1020中的數(shù)據(jù)讀入到高速緩存器1004。此時被讀入到高速緩存器1004的數(shù)據(jù),不被使用。并且,高速緩存器鎖定部1045,按照來自安全操作系統(tǒng)1042的委托,向高速緩存器1004中解鎖的區(qū)域?qū)懭隣值(O的值)。然后,高速緩存器鎖定部1045,進行高速緩存器1004的解鎖處理。在此,若O值不被寫入而高速緩存器1004照原樣被解鎖,則導致被寫入到高速緩存器1004的隱藏數(shù)據(jù)被寫入到存儲器102。因此,高速緩存器鎖定部1045,在進行高速緩存器1004的解鎖處理之前,向解鎖的區(qū)域?qū)懭隣值。
鎖定高速緩存器1004的方法有,例如,鎖定高速緩存器1004的整體(所有的路)的方法、鎖定所有的路之中的幾個路的方法、以及鎖定幾個線的方法等。在CPU1001能夠讀取高速緩存器1004的標簽的信息的情況下,在鎖定幾個路或線的方法等中,高速緩存器鎖定部1045,獲得標簽的信息。而且,高速緩存器鎖定部1045,確定與由安全操作系統(tǒng)1042指定的區(qū)域?qū)穆坊蚓€等,鎖定被確定的路或線等。在CPU1001不能讀取高速緩存器1004的標簽的信息的情況下,根據(jù)鎖定幾個路或線的方法等,如下,路或線等被鎖定。首先,高速緩存器鎖定部1045,將高速緩存器1004的內(nèi)部的沒有被鎖定的路或線等所存放的數(shù)據(jù)反映到存儲器1020。而且,高速緩存器鎖定部1045,在高速緩存器1004中,將這樣的數(shù)據(jù)無效化。據(jù)此,成為由安全操作系統(tǒng)1042指定的區(qū)域的數(shù)據(jù)沒有被存放在高速緩存器1004中的狀態(tài)。接著,聞速緩存器鎖定部1045,保留最后鎖定的路或線等,鎖定其他的路或線等。在該狀態(tài)下,高速緩存器鎖定部1045,進行由安全操作系統(tǒng)1042指定的區(qū)域的數(shù)據(jù)的讀入處理。而且,高速緩存器鎖定部1045,解除鎖定了的其他的路或線等的鎖定。另一方,高速緩存器鎖定部1045,鎖定由安全操作系統(tǒng)1042指定的區(qū)域的數(shù)據(jù)被讀入的路或線等。高速緩存器鎖定部1045,在解除鎖定了的路或線等的鎖定的處理中,不解除從最初就鎖定了的路或線等的鎖定。據(jù)此,與由安全操作系統(tǒng)1042指定的區(qū)域?qū)穆坊蚓€等被鎖定。對于隱藏數(shù)據(jù)1010的加載處理和卸載處理,利用序列圖在后面進行詳細說明。內(nèi)容再生應用1043,接受來自播放應用1032的委托,進行內(nèi)容接收應用1033從內(nèi)容記錄裝置120接收的內(nèi)容的再生處理。但是,內(nèi)容接收應用1033從內(nèi)容記錄裝置120接收的內(nèi)容已經(jīng)被加密。于是,內(nèi)容再生應用1043,為了對加密后的內(nèi)容進行解密,向安全操作系統(tǒng)1042委托包含解密密鑰的隱藏數(shù)據(jù)1010的加載。安全環(huán)境1200也可以,還包含圖4中沒有示出的安全應用?!醇用茈[藏數(shù)據(jù)1051〉圖5是圖2所示的加密隱藏數(shù)據(jù)1051的結(jié)構(gòu)圖。如圖5,加密隱藏數(shù)據(jù)1051包括,頭信息1061、隱藏數(shù)據(jù)主體1062、以及驗證值1063。頭信息1061,以沒有被加密的狀態(tài)被存放,隱藏數(shù)據(jù)主體1062以及驗證值1063,以被加密的狀態(tài)被存放。頭信息1061包括,隱藏數(shù)據(jù)主體1062的開始位置及大小、驗證值1063的開始位置及大小、加密方式、以及標識符等。加密方式是,在隱藏數(shù)據(jù)主體1062以及驗證值1063的加密中利用了的加密方式。并且,標識符是,用于識別驗證值1063的驗證算法的標識符。隱藏數(shù)據(jù)主體1062包含,用于對從內(nèi)容記錄裝置120接收的加密內(nèi)容進行解密的密鑰、以及解密算法中利用的參數(shù)的信息。這樣的信息是,針對由總線探頭等的硬件的攻擊、以及由使用了非法應用的軟件的攻擊,需要保護的信息。因此,隱藏數(shù)據(jù)主體1062,在非易失性存儲裝置1050中,以被加密的狀態(tài)被記錄。而且,隱藏數(shù)據(jù)主體1062,在由內(nèi)容再生應用1043等的安全應用利用時被解密,被加載到高速緩存器1004。之前,與用于加載隱藏數(shù)據(jù)主體1062的區(qū)域?qū)拇鎯^(qū)域的數(shù)據(jù)被讀入到高速緩存器1004。而且,高速緩存器1004被鎖定,以使隱藏數(shù)據(jù)主體1062不會被寫出到存儲器1020。然后,隱藏數(shù)據(jù)主體1062,被加載到高速緩存器1004。驗證值1063是,用于驗證隱藏數(shù)據(jù)主體1062沒有被竄改的值。具體而言,驗證值1063是,通過將加密前的隱藏數(shù)據(jù)主體1062輸入到散列函數(shù)而得到的散列值。而且,驗證值1063,與隱藏數(shù)據(jù)主體1062 —起被加密。而且,隱藏數(shù)據(jù)1010,不僅限于用于對加密內(nèi)容進行解密的密鑰、以及解密算法中使用的參數(shù)的信息。隱藏數(shù)據(jù)1010也可以包括,需要隱藏的其他的數(shù)據(jù)(例如,內(nèi)容顯示裝置110以及同類的裝置的每個分別具有的設備密鑰等)。并且,隱藏數(shù)據(jù)1010也可以是,需要隱藏的算法的代碼、或者用于處理需要隱藏的數(shù)據(jù)的代碼等。
而且,示出了包括一個隱藏數(shù)據(jù)主體1062的加密隱藏數(shù)據(jù)1051,但是,加密隱藏數(shù)據(jù)1051不僅限于這樣的結(jié)構(gòu)。加密隱藏數(shù)據(jù)1051也可以包括多個隱藏數(shù)據(jù)主體。此時,多個隱藏數(shù)據(jù)主體可以被加密為一連串的數(shù)據(jù),也可以分別被加密為個別的數(shù)據(jù)。并且,多個隱藏數(shù)據(jù)主體也可以,利用分別不同的加密方式、以及分別不同的加密密鑰來被加密。并且,加密隱藏數(shù)據(jù)1051,可以包括與多個隱藏數(shù)據(jù)主體對應的多個驗證值,也可以包括多個驗證值匯集為一個的驗證值列表。并且,加密隱藏數(shù)據(jù)1051也可以,針對加密隱藏數(shù)據(jù)1051包括的所有的隱藏數(shù)據(jù)主體,包括一個驗證值1063。并且,如上所述,加密隱藏數(shù)據(jù)1051包括驗證值1063,但是,加密隱藏數(shù)據(jù)1051不僅限于這樣的結(jié)構(gòu)。驗證值1063,可以另外獨立于加密隱藏數(shù)據(jù)1051,也可以不存在。并且,如上所述,驗證值1063被加密,但也可以不被加密。并且,驗證值1063,可以與隱藏數(shù)據(jù)主體1062 —起被加密,也可以另外獨立于隱藏數(shù)據(jù)主體1062而被加密。并且,對于隱藏數(shù)據(jù)主體1062的加密,可以利用像DES或AES那樣的共同密鑰加密方式,也可以利用RSA或ElGamal等的公開密鑰加密方式,還可以組合它們。并且,如上所述,隱藏數(shù)據(jù)主體1062以及驗證值1063被匯集加密,但是,加密的形態(tài)不僅限于此??梢噪[藏數(shù)據(jù)主體1062和驗證值1063分別被加密,也可以驗證值1063不被加密而隱藏數(shù)據(jù)主體1062被加密。并且,驗證值1063,可以不位于隱藏數(shù)據(jù)主體1062的后面,而位于隱藏數(shù)據(jù)主體1062的前面。并且,驗證值1063,可以包含在頭信息1061中。進而,驗證值1063,可以不包含在加密隱藏數(shù)據(jù)1051中,而與加密隱藏數(shù)據(jù)1051分開,被存放在加密隱藏數(shù)據(jù)1051的多個驗證值匯集的驗證值列表中。而且,對于散列函數(shù),可以利用MD4、MD5、SHA— I以及SHA —2等的算法。并且,驗證值1063也可以,不是散列值,而是數(shù)字簽名(DigitalSignature)Jl^uaH (MAC:Message Authentication Code)值、錯誤檢測碼值、或錯誤校正碼值。對于計算MAC值的算法,能夠利用CBC — MAC以及HMAC等。對于計算錯誤檢測碼值的算法,能夠利用循環(huán)冗余檢測(CRC:Cyclic RedundancyCheck)以及校驗總和(checksum)等。對于計算錯誤校正碼值的算法,能夠利用里德-所羅門碼以及Turbo碼等。加密隱藏數(shù)據(jù)1051,在內(nèi)容顯示裝置110的工廠制造時被存放到非易失性存儲裝置1050中。此時,隱藏數(shù)據(jù)主體1062的初始數(shù)據(jù),被生成,并以每個設備的個別的密鑰被加密。據(jù)此,加密隱藏數(shù)據(jù)1051被生成。在加密上使用了的密鑰,被存放到系統(tǒng)LSI1000中的密鑰保持部1006。而且,加密隱藏數(shù)據(jù)1051也可以,經(jīng)由網(wǎng)絡等的通信路被分發(fā)到內(nèi)容顯示裝置110。此時,對于加密隱藏數(shù)據(jù)1051,也可以以每個設備的個別的密鑰加密后的加密隱藏數(shù)據(jù)1051被分發(fā)?;蛘撸部梢砸运械脑O備共同的密鑰加密后的加密隱藏數(shù)據(jù)1051被分發(fā)。而且,內(nèi)容顯示裝置110也可以,接收加密隱藏數(shù)據(jù)1051后,以每個設備的個別的密鑰對加密隱藏數(shù)據(jù)1051進行加密,并保存。并且,加密隱藏數(shù)據(jù)1051也可以,不利用網(wǎng)絡,而利用具有便攜性的記錄介質(zhì)被存放到內(nèi)容顯示裝置110中?!窗刹康慕Y(jié)構(gòu)〉圖6是本實施例涉及的用于生成安全應用的包生成部的結(jié)構(gòu)圖。如圖6,包生成部3000包括,編譯器3100、鏈接器3101、以及包生成工具3102。包生成部3000,利用秘密密鑰3112、公開密鑰證書(Public KeyCertificate) 3113、以及設定文件3114,根據(jù)源碼(程序碼)3110生成安全應用3111。編譯器3100,編譯輸入后的源碼3110,生成對象文件。鏈接器3101,使庫(library)與編譯器3100生成的對象文件鏈接。而且,鏈接器3101,生成內(nèi)容顯示裝置110能夠執(zhí)行的文件(程序文件)。包生成工具3102,根據(jù)鏈接器3101生成的程序文件,利用設定文件3114、秘密密鑰3112、以及公開密鑰證書3113,生成安全應用3111。包生成部3000,被包含在與內(nèi)容顯示裝置110不同的安全應用開發(fā)裝置中。而且,由安全應用開發(fā)裝置的包生成部3000生成的安全應用3111,作為加密內(nèi)容再生應用1054等,被存放到內(nèi)容顯示裝置110的非易失性存儲裝置1050中。<安全應用3111的結(jié)構(gòu)>圖7是本實施例涉及的安全應用3111的結(jié)構(gòu)圖。如圖7,安全應用3111包括,應用頭信息3201、應用主體3202、設定文件3203、應用簽名列表(Application SignatureList) 3204、公開密鑰證書 3205、以及簽名(Signature) 3206。在圖7中,示出了安全應用3111的構(gòu)造,但是,不僅限于內(nèi)容再生應用1043的構(gòu)造,引導加載器1041以及安全操作系統(tǒng)1042的構(gòu)造也可以與圖7示出的構(gòu)造同樣。應用頭信息3201包括,用于識別安全應用3111的標識符。并且,應用頭信息3201,針對應用主體3202、設定文件3203、應用簽名列表3204以及公開密鑰證書3205各自,包括開始地址、大小以及文件數(shù)等。并且,應用頭信息3201包括,與對應用主體3202、設定文件3203以及應用簽名列表3204進行加密時使用了的加密方式有關(guān)的信息等。應用主體3202是,根據(jù)源碼3110,使用編譯器3100和鏈接器3101生成的程序文件。設定文件3203,與輸入到包生成工具3102的設定文件3114相同。應用簽名列表3204是,應用主體3202以及設定文件3203這雙方的簽名排列的列表。包生成工具3102,在生成安全應用3111時,根據(jù)輸入后的應用主體3202以及設定文件3203,生成各個簽名,生成應用簽名列表3204。對于簽名的生成,使用秘密密鑰3112。公開密鑰證書3205,與輸入到包生成工具3102的公開密鑰證書3113相同。簽名3206是,由應用頭信息3201、應用主體3202、設定文件3203、應用簽名列表3204以及公開密鑰證書3205構(gòu)成的一連串的數(shù)據(jù)的簽名。在此,以應用主體3202、設定文件3203以及應用簽名列表3204被加密的狀態(tài),簽名3206被生成。
而且,所述的安全應用3111被構(gòu)成為,包括應用主體3202、設定文件3203、應用簽名列表3204以及公開密鑰證書3205各自的每一個,但是,安全應用3111的結(jié)構(gòu),不僅限于這樣的結(jié)構(gòu)。對于應用主體3202、設定文件3203、應用簽名列表3204以及公開密鑰證書3205的某個,可以是多個文件,也可以不存在。并且,如上所述,安全應用3111包括,應用主體3202以及設定文件3203這雙方的簽名排列的應用簽名列表3204,但是,安全應用3111的結(jié)構(gòu),不僅限于這樣的結(jié)構(gòu)。安全應用3111也可以,分別包括與應用主體3202以及設定文件3203對應的兩個簽名。〈安全引導處理〉內(nèi)容顯示裝置110,在內(nèi)容顯示裝置110的啟動時,驗證以安全環(huán)境1200工作的弓丨導加載器1041以及安全操作系統(tǒng)1042沒有被竄改的情況。以下,對于內(nèi)容顯示裝置110的電源接通后,直到通用操作系統(tǒng)103啟動為止的方法(安全引導處理),利用圖8的序列圖進行說明。內(nèi)容顯示裝置110的電源接通后,CPU1001,以安全模式且特權(quán)模式的狀態(tài),執(zhí)行系統(tǒng)LSI1000中的IPL1002。而且,會有將CPU1001根據(jù)IPL1002執(zhí)行處理這情況表現(xiàn)為IPL1002執(zhí)行處理的情況。并且,會有將CPU1001根據(jù)程序等執(zhí)行處理這情況表現(xiàn)為程序等執(zhí)行處理的情況。IPL1002,首先進行內(nèi)容顯示裝置110的硬件的初始化處理(S1000)。在初始化處理中,IPL1002,進行存儲器1020的工作檢查、存儲器控制部1003的初始化、以及周邊電路(不圖示的)的初始化等的處理。而且,IPL1002,在存儲器控制部1003的初始化時,在存儲器1020,設定正常區(qū)域1030以及安全區(qū)域1040。IPL1002,初始化處理后,將引導加載器1041從非易失性存儲裝置1050加載到安全區(qū)域1040 (S1001)。IPL1002,進行加載到安全區(qū)域1040的引導加載器1041的篡改驗證(S1002)。此時,IPL1002,利用引導加載器1041中附加的簽名和公開密鑰證書,進行引導加載器1041的篡改驗證。IPL1002,在根據(jù)驗證的結(jié)果,判定為引導加載器1041沒有被竄改的情況下(S1002的0K),啟動引導加載器1041(S1003)。另一方面,IPL1002,在根據(jù)驗證的結(jié)果,判定為引導加載器1041被竄改的情況下(S1002的NG),結(jié)束內(nèi)容顯示裝置110的啟動。引導加載器1041,由IPL1002啟動后(S1003),進行安全環(huán)境1200的初始設定(S1004)。引導加載器1041,在初始設定中(S1004),進行用于以安全環(huán)境1200執(zhí)行安全操作系統(tǒng)1042以及安全應用3111等的各種設定。引導加載器1041,初始設定的結(jié)束后,將安全操作系統(tǒng)1042從非易失性存儲裝置1050加載到安全區(qū)域1040 (S1005)。引導加載器1041,進行加載到安全區(qū)域1040的安全操作系統(tǒng)1042的篡改驗證(S1006)。此時,引導加載器1041,利用安全操作系統(tǒng)1042中附加的簽名以及公開密鑰證書,進行安全操作系統(tǒng)1042的篡改驗證。引導加載器1041,在根據(jù)驗證的結(jié)果,判定為安全操作系統(tǒng)1042沒有被竄改的情況下(S1006的0K),啟動安全操作系統(tǒng)1042(S1007)。另一方面,引導加載器1041,在根據(jù)驗證的結(jié)果,判定為安全操作系統(tǒng)1042被竄改的情況下(S1006的NG),不啟動安全操作系統(tǒng) 1042。安全操作系統(tǒng)1042,在由引導加載器1041啟動的情況下(S1007),進行用于執(zhí)行安全操作系統(tǒng)1042本身、以及以該環(huán)境執(zhí)行安全應用3111等的初始設定(S1008)。安全操作系統(tǒng)1042,初始設定結(jié)束后,向引導加載器1041通知初始化結(jié)束(S1009)。引導加載器1041,在判定為安全操作系統(tǒng)1042被竄改的情況下(S1006的NG),設定安全引導失敗標志(S1010)。安全引導失敗標志,在軟件執(zhí)行環(huán)境從正常環(huán)境1100轉(zhuǎn)變?yōu)榘踩h(huán)境1200時被檢查。而且,在安全引導失敗了的情況下,引導加載器1041,利用安全引導失敗標志,向正常環(huán)境1100通知處理錯誤。并且,以正常環(huán)境1100工作的應用,也能夠以讀入專用(Read - Only)訪問安全引導失敗標志。也就是說,以正常環(huán)境1100執(zhí)行的應用能夠參照安全引導失敗標志。引導加載器1041,初始化結(jié)束通知(S1009)或標志設定(S1010)之后,將通用操作系統(tǒng)1031從非易失性存儲裝置1050加載到正常區(qū)域1030 (SlOll)。然后,引導加載器1041,將CPU1001變更為正常模式,執(zhí)行通用操作系統(tǒng)1031(S1012)。而且,如上所述,引導加載器1041,加載通用操作系統(tǒng)1031,但是,處理的形態(tài),不僅限于此。安全操作系統(tǒng)1042也可以,初始化處理結(jié)束后,不將處理返回到引導加載器1041,而加載通用操作系統(tǒng)1031。而且,安全操作系統(tǒng)1042也可以,通用操作系統(tǒng)1031的加載后,將CPU1001變更為正常模式,執(zhí)行通用操作系統(tǒng)1031。并且,如上所述,通用操作系統(tǒng)1031被加載后,CPU1001被變更為正常模式,通用操作系統(tǒng)1031被執(zhí)行,但是,處理的形態(tài),不僅限于此。也可以是,通用操作系統(tǒng)1031被加載后,檢查通用操作系統(tǒng)1031沒有被竄改的情況。而且,也可以是,在通用操作系統(tǒng)1031沒有被竄改的情況下,CPU1001被變更為正常模式,通用操作系統(tǒng)1031被執(zhí)行。而且,也可以是,在通用操作系統(tǒng)1031被竄改的情況下,結(jié)束內(nèi)容顯示裝置110的啟動?;蛘撸部梢允牵谕ㄓ貌僮飨到y(tǒng)1031被竄改的情況下,安全引導失敗標志被設定。而且,也可以是,在安全引導失敗標志被設定的狀態(tài)下,CPU1001被變更為正常模式,通用操作系統(tǒng)1031被執(zhí)行。<隱藏數(shù)據(jù)1010的加載處理>安全操作系統(tǒng)1042,在從安全應用3111受到隱藏數(shù)據(jù)1010的加載處理的委托時,加載隱藏數(shù)據(jù)1010。此時,安全操作系統(tǒng)1042,利用隱藏數(shù)據(jù)加載部1044以及高速緩存器鎖定部1045,將隱藏數(shù)據(jù)1010加載到系統(tǒng)LSI1000的內(nèi)部。據(jù)此,安全操作系統(tǒng)1042,保護隱藏數(shù)據(jù)1010,不受由總線探頭等的硬件的攻擊,也不受由調(diào)試程序或非法應用等的軟件的攻擊。以下,對于將隱藏數(shù)據(jù)1010加載到被設定為安全區(qū)域1040的數(shù)據(jù)用的高速緩存器1004的內(nèi)部的處理,利用圖9的序列圖進行說明。在從內(nèi)容再生應用1043等的安全應用3111受到隱藏數(shù)據(jù)1010的加載的委托時,安全操作系統(tǒng)1042,在安全區(qū)域1040中確保用于隱藏數(shù)據(jù)1010的存儲區(qū)域(S1100)。而且,安全操作系統(tǒng)1042,將確保的存儲區(qū)域的信息(地址以及大小)通知給高速緩存器鎖定部1045,向高速緩存器鎖定部1045委托高速緩存器1004的鎖定(SllOl)。高速緩存器鎖定部1045,以從安全操作系統(tǒng)1042通知的存儲區(qū)域(安全區(qū)域1040的一部分)的數(shù)據(jù)被讀入到高速緩存器1004的方式,進行數(shù)據(jù)的讀入處理(S1102)。該處理(S1102)的目的是,使高速緩存器1004讀入數(shù)據(jù),因此,實際讀入后的數(shù)據(jù)不被使用。因此,高速緩存器鎖定部1045也可以進行不具有值的空數(shù)據(jù)的讀入處理。高速緩存器鎖定部1045進行鎖定,以使在前處理(SI 102)中被讀入到高速緩存器1004的數(shù)據(jù),不會從高速緩存器1004中被除外,不會被寫出到系統(tǒng)LSI1000的外部的存儲器1020(S1103)。根據(jù)該處理,即使在被鎖定的區(qū)域的數(shù)據(jù)被變更的情況下,該變更后的數(shù)據(jù)也不會被寫入到存儲器1020。高速緩存器鎖定部1045,將鎖定處理結(jié)束的情況,通知給安全操作系統(tǒng)1042(S1104)。接著,安全操作系統(tǒng)1042,向隱藏數(shù)據(jù)加載部1044委托,將隱藏數(shù)據(jù)1010加載到高速緩存器1004的被鎖定的區(qū)域(S1105)。此時,安全操作系統(tǒng)1042,將要加載的高速緩存區(qū)域的信息(地址以及大小),通知給隱藏數(shù)據(jù)加載部1044。隱藏數(shù)據(jù)加載部1044,從非易失性存儲裝置1050讀入加密隱藏數(shù)據(jù)1051 (SI 106)。此時,隱藏數(shù)據(jù)加載部1044也可以,將加密隱藏數(shù)據(jù)1051加載到存儲器1020的安全區(qū)域1040。而且,隱藏數(shù)據(jù)加載部1044,利用由密鑰保持部1006保持的密鑰,對加密隱藏數(shù)據(jù)1051進行解密,從而獲得隱藏數(shù)據(jù)1010 (SI 107)。而且,隱藏數(shù)據(jù)加載部1044,將解密后的隱藏數(shù)據(jù)1010寫入到從安全操作系統(tǒng)1042通知的區(qū)域(S1108)。隱藏數(shù)據(jù)加載部1044,寫入完成后,利用加密隱藏數(shù)據(jù)1051中附加的驗證值1063,驗證數(shù)據(jù)沒有被竄改的情況(S1109)。隱藏數(shù)據(jù)加載部1044,在驗證的結(jié)果為被竄改的情況下,以O來重寫加載后的數(shù)據(jù)的全部。然后,隱藏數(shù)據(jù)加載部1044,向安全操作系統(tǒng)1042通知加載處理的結(jié)束(SlllO)。在隱藏數(shù)據(jù)1010被正常加載,驗證的結(jié)果為沒有被竄改的情況下,隱藏數(shù)據(jù)加載部1044,向安全操作系統(tǒng)1042通知正常結(jié)束。另一方面,在隱藏數(shù)據(jù)1010被竄改的情況下,隱藏數(shù)據(jù)加載部1044,向安全操作系統(tǒng)1042通知錯誤。如上所述,在隱藏數(shù)據(jù)1010的加載之前,進行高速緩存器1004的鎖定處理。據(jù)此,即使隱藏數(shù)據(jù)1010被寫入到高速緩存器1004,隱藏數(shù)據(jù)1010也不會流出到系統(tǒng)LSI1000的外部。因此,能夠保護隱藏數(shù)據(jù)1010,不受由總線探頭等的硬件的攻擊。并且,與隱藏數(shù)據(jù)1010對應的存儲區(qū)域,被確保在安全區(qū)域1040中。因此,能夠保護隱藏數(shù)據(jù)1010,也不受由以正常環(huán)境1100工作的調(diào)試程序或非法應用等的軟件的攻擊。而且,如上所述,高速緩存器鎖定部1045,以從安全操作系統(tǒng)1042通知的存儲區(qū)域的數(shù)據(jù)被讀入到高速緩存器1004的方式,進行數(shù)據(jù)的讀入處理(S1102)。但是,處理的形態(tài),不僅限于此。例如,高速緩存器鎖定部1045也可以,判定從安全操作系統(tǒng)1042通知的存儲區(qū)域的數(shù)據(jù)是否已經(jīng)被讀入到高速緩存器1004。而且,高速緩存器鎖定部1045也可以,在該數(shù)據(jù)沒有被讀入的情況下,執(zhí)行讀入處理(S1102)。或者,安全操作系統(tǒng)1042也可以進行讀入處理(S1102)。在數(shù)據(jù)已經(jīng)被讀入的情況下,可以不執(zhí)行讀入處理(S1102)。并且,例如,也可以是,在高速緩存器1004中已經(jīng)存在能夠重寫的高速緩存區(qū)域的情況下,將該高速緩存區(qū)域用于隱藏數(shù)據(jù)1010的加載。也就是說,也可以是,高速緩存器鎖定部1045,鎖定可重寫的高速緩存區(qū)域,隱藏數(shù)據(jù)加載部1044,將隱藏數(shù)據(jù)1010加載到該高速緩存區(qū)域。并且,如上所述,安全操作系統(tǒng)1042,在安全區(qū)域1040中確保用于隱藏數(shù)據(jù)1010的存儲區(qū)域,但是,被確保的存儲區(qū)域,不僅限于安全區(qū)域1040。在不受到由調(diào)試程序或非法應用等的軟件的攻擊的環(huán)境下,保護隱藏數(shù)據(jù)1010不受由硬件的攻擊即可的情況下,安全操作系統(tǒng)1042也可以,在正常區(qū)域1030中確保用于隱藏數(shù)據(jù)1010的存儲區(qū)域。<隱藏數(shù)據(jù)1010的卸載處理>安全操作系統(tǒng)1042,在從安全應用3111受到隱藏數(shù)據(jù)1010的卸載處理的委托時,利用隱藏數(shù)據(jù)加載部1044以及高速緩存器鎖定部1045,卸載隱藏數(shù)據(jù)1010。高速緩存器鎖定部1045,以隱藏數(shù)據(jù)1010不會被寫出到系統(tǒng)LSI1000的外部的方式,以O數(shù)據(jù)(O的值)來重寫高速緩存區(qū)域。然后,高速緩存器鎖定部1045,解除加載處理中被鎖定的高速緩存區(qū)域的鎖定。以下,對于委托隱藏數(shù)據(jù)1010的卸載之后,直到隱藏數(shù)據(jù)1010被卸載為止的處理,利用圖10的序列圖進行說明。安全操作系統(tǒng)1042,在從安全應用3111受到隱藏數(shù)據(jù)1010的卸載處理的委托時,向隱藏數(shù)據(jù)加載部1044委托隱藏數(shù)據(jù)1010的保存處理(S1120)。隱藏數(shù)據(jù)加載部1044,從隱藏數(shù)據(jù)1010計算驗證值1063(S1121)。并且,隱藏數(shù)據(jù)加載部1044,利用由密鑰保持部1006保持的密鑰對隱藏數(shù)據(jù)1010進行加密,生成加密隱藏數(shù)據(jù)1051 (SI 122)。而且,隱藏數(shù)據(jù)加載部1044,將生成的加密隱藏數(shù)據(jù)1051保存到非易失性存儲裝置1050(S1123)。然后,隱藏數(shù)據(jù)加載部1044,將保存結(jié)果通知給安全操作系統(tǒng) 1042 (SI124)。接著,安全操作系統(tǒng)1042,向高速緩存器鎖定部1045委托被鎖定的高速緩存器1004 的解鎖(SI 125)。高速緩存器鎖定部1045,將O的值寫入到記錄有隱藏數(shù)據(jù)1010的高速緩存區(qū)域的全部(S1126)。而且,高速緩存器鎖定部1045,解除隱藏數(shù)據(jù)1010的加載處理中被鎖定的高速緩存器1004的鎖定(S1127)。然后,高速緩存器鎖定部1045,將解鎖處理的結(jié)束通知給安全操作系統(tǒng)1042 (SI 128)。安全操作系統(tǒng)1042,開放與隱藏數(shù)據(jù)1010被加載的高速緩存區(qū)域?qū)陌踩珔^(qū)域1040中的存儲區(qū)域(SI 129)。在隱藏數(shù)據(jù)1010的卸載中,在不進行寫入O的值的處理(S1126)而解除高速緩存器1004的鎖定的情況下,高速緩存器1004中剩余的隱藏數(shù)據(jù)1010,被寫出到存儲器1020。通過進行寫入O的值的處理(S1126),不是隱藏數(shù)據(jù)1010,而是O的值被寫出到存儲器 1020。因此,即使高速緩存器1004的鎖定被解除,高速緩存器1004中的數(shù)據(jù)被寫出到存儲器1020,隱藏數(shù)據(jù)1010也不會被寫出到存儲器1020。如上所述,本實施例涉及的內(nèi)容顯示裝置110,在系統(tǒng)LSI1000的內(nèi)部處理再生內(nèi)容時利用的密鑰等的隱藏數(shù)據(jù)1010。據(jù)此,內(nèi)容顯示裝置110,能夠保護隱藏數(shù)據(jù)1010不受由硬件的攻擊。并且,內(nèi)容顯示裝置110,在安全區(qū)域1040中確保用于隱藏數(shù)據(jù)1010的存儲區(qū)域,從而能夠保護隱藏數(shù)據(jù)1010也不受由軟件的攻擊。據(jù)此,內(nèi)容顯示裝置110,能夠具有安全強度(保護強度)互不相同的三種區(qū)域。第一區(qū)域是,沒有被保護的正常區(qū)域1030。第二區(qū)域是,針對由軟件的攻擊保護的安全區(qū)域1040。第三區(qū)域是,針對由硬件的攻擊、以及由軟件的攻擊這雙方保護的區(qū)域。并且,隱藏數(shù)據(jù)加載部1044,以安全環(huán)境1200,加載隱藏數(shù)據(jù)1010。據(jù)此,防止由以正常環(huán)境1100工作的調(diào)試程序或非法程序等,隱藏數(shù)據(jù)1010被非法獲得的情況。并且,在本實施例中,系統(tǒng)LSI1000中的高速緩存器1004的一部分被利用。因此,系統(tǒng)LSI1000也可以,在系統(tǒng)LSI1000的內(nèi)部不具有專用存儲器。而且,共用存儲器高效率地被利用。并且,由于高速緩存器1004本來具有的功能被利用,因此,對于本實施例所示的處理,不追加新的硬件,而能夠適用于現(xiàn)有系統(tǒng)。并且,通過加載處理或卸載處理,能夠避免高速緩存器1004的一部分總是被占有(鎖定)這狀態(tài)。而且,隱藏數(shù)據(jù)1010被處理時,高速緩存器1004被鎖定。因此,在高速緩存器1004中,緩沖數(shù)據(jù)的功能也被有效利用。而且,如上所述,在隱藏數(shù)據(jù)1010的處理開始時,高速緩存器1004的鎖定開始。但也可以是,利用隱藏數(shù)據(jù)1010的應用開始時,高速緩存器1004的鎖定開始。而且,也可以是,利用隱藏數(shù)據(jù)1010的應用結(jié)束時,高速緩存器1004的鎖定被解除。據(jù)此,在利用隱藏數(shù)據(jù)1010的應用的工作中,隱藏數(shù)據(jù)1010被維持在高速緩存器1004中。因此,因隱藏數(shù)據(jù)1010的加載以及卸載而發(fā)生的處理量減少。并且,在高速緩存器1004中存在充分的容量的情況下也可以,在內(nèi)容顯示裝置110的啟動時,高速緩存器1004的鎖定開始。例如,也可以是,在安全操作系統(tǒng)1042的啟動時,高速緩存器鎖定部1045,為了隱藏數(shù)據(jù)1010,開始高速緩存器1004的鎖定。而且,高速緩存器1004的鎖定也可以不被解除。即使根據(jù)這樣的處理,也能夠適當保護隱藏數(shù)據(jù)1010。(實施例2)在實施例I中,安全操作系統(tǒng)1042,按照來自內(nèi)容再生應用1043等的安全應用3111的請求,將隱藏數(shù)據(jù)1010加載到高速緩存器1004。在本實施例中,安全應用3111的應用主體3202的內(nèi)部包括,加載到安全區(qū)域1040的部分、和加載到高速緩存器1004的部分。而且,在安全應用3111的加載時,這樣的部分各自分別被加載。以下,說明本實施例涉及的安全操作系統(tǒng)1042、包生成部3000、安全應用3111以及應用主體3202的結(jié)構(gòu),說明安全應用3111的加載處理。而且,對于與實施例I同樣的構(gòu)成要素,利用相同的符號,并省略說明。<安全操作系統(tǒng)1042的結(jié)構(gòu)>圖11是本實施例涉及的安全操作系統(tǒng)1042的結(jié)構(gòu)圖。如圖11,安全操作系統(tǒng)1042包括,隱藏數(shù)據(jù)加載部1044、高速緩存器鎖定部1045、以及應用加載部1046。應用加載部1046,在安全應用3111的加載時,獲得安全應用3111中包含的應用頭信息3201。而且,應用加載部1046,根據(jù)應用頭信息3201,判定針對由硬件的攻擊也需要隱藏的代碼或數(shù)據(jù)是否被包含在應用主體3202中。在需要隱藏的代碼或數(shù)據(jù)被包含的情況下,應用加載部1046,向高速緩存器鎖定部1045委托,鎖定用于加載需要隱藏的代碼或數(shù)據(jù)的高速緩存器1004的區(qū)域。然后,應用加載部1046,對安全應用3111進行解密并加載。隱藏數(shù)據(jù)加載部1044以及高速緩存器鎖定部1045是,與實施例I的隱藏數(shù)據(jù)加載部1044以及高速緩存器鎖定部1045同樣的構(gòu)成要素。而且,也可以是,應用主體3202的整體,被加載到高速緩存器1004中被鎖定的區(qū)域。并且,也可以是,應用主體3202被加載到高速緩存器1004的所有的區(qū)域被鎖定,進行解密以及加載處理后,針對不需要隱藏的數(shù)據(jù),一部分的區(qū)域的鎖定被解除。在此情況下,與隱藏數(shù)據(jù)1010的卸載處理不同,不會以O值來重寫數(shù)據(jù)。<包生成部3000的結(jié)構(gòu)>本實施例涉及的包生成部3000,具備與實施例I的包生成部3000同樣的構(gòu)成要素,但是,工作的一部分不同。對于進行與實施例I同樣的工作的構(gòu)成要素,省略說明。編譯器3100,編譯輸入后的源碼3110,生成對象文件。此時,編譯器3100,將源碼3110中的、附上表示隱藏數(shù)據(jù)1010的標識符的數(shù)據(jù)、處理隱藏數(shù)據(jù)1010的函數(shù)、或附上表示要隱藏這情況的標識符的代碼等,存放到特定的段。在該特定的段中,附上表示是隱藏數(shù)據(jù)1010或與隱藏數(shù)據(jù)1010有關(guān)的代碼的標識符。對于段,在后面進行詳細說明。鏈接器3101以及包生成工具3102是,與實施例I的鏈接器3101以及包生成工具3102同樣的構(gòu)成要素。而且,在本實施例中,編譯器3100,將隱藏數(shù)據(jù)1010以及與隱藏數(shù)據(jù)1010有關(guān)的代碼存放到特定的段。但是,將隱藏數(shù)據(jù)1010以及與隱藏數(shù)據(jù)1010有關(guān)的代碼存放到特定的段的處理部,不僅限于編譯器3100。例如,編譯器3100也可以,將源碼3110中包含隱藏數(shù)據(jù)1010或與隱藏數(shù)據(jù)1010有關(guān)的代碼這情況通知給鏈接器3101。而且,鏈接器3101也可以,在鏈接處理時,將隱藏數(shù)據(jù)1010或與隱藏數(shù)據(jù)1010有關(guān)的代碼存放到特定的段。并且,鏈接器3101也可以,將源碼3110中包含隱藏數(shù)據(jù)1010或與隱藏數(shù)據(jù)1010有關(guān)的代碼這情況通知給包生成工具3102。而且,包生成工具3102也可以,在包的生成處理時,將隱藏數(shù)據(jù)1010或與隱藏數(shù)據(jù)1010有關(guān)的代碼存放到特定的段。<安全應用3111的結(jié)構(gòu)>本實施例涉及的安全應用3111包括,應用頭信息3201、應用主體3202、設定文件3203、應用簽名列表3204、公開密鑰證書3205以及簽名3206。應用頭信息3201具有,表示應用主體3202中是否包含需要隱藏的代碼或數(shù)據(jù)的標志。對于其他的信息,由于與實施例I同樣,因此省略說明。對于應用主體3202、設定文件3203、應用簽名列表3204、公開密鑰證書3205以及簽名3206,由于與實施例I同樣,因此省略說明。<應用主體3202的結(jié)構(gòu)>圖12是本實施例涉及的應用主體3202的結(jié)構(gòu)圖。如圖12,應用主體3202包括,頭部 3210、· text 段 3211、· hctext 段 3212、· rodata 段 3213、· data 段 3214、· bss 段 3215、以及.hcdata 段 3216。頭部3210,具有后續(xù)于頭部3210的多個段各自的種類、開始地址以及大小等的信
肩、O
. text段3211是,用于存放程序的代碼的段,被設定為讀取專用且可執(zhí)行。. hctext段3212是,用于存放包括與隱藏數(shù)據(jù)1010有關(guān)的代碼的程序的代碼的段,被設定為讀取專用且可執(zhí)行。. rodata段3213是,用于存放常數(shù)數(shù)據(jù)的段,被設定為讀取專用且不可執(zhí)行。. data段3214是,用于存放設定有初始值的數(shù)據(jù)的段,被設定為可讀寫且不可執(zhí)行。. bss段3215是,用于存放沒有設定初始值的數(shù)據(jù)的段,被設定為可讀寫且不可執(zhí)行。.hcdata段3216是,存放隱藏數(shù)據(jù)1010的段,被設定為可讀寫且不可執(zhí)行。如上構(gòu)成的應用主體3202中,應用加載部1046,將.hctext段3212以及.hcdata段3216,加載到高速緩存器1004的被鎖定的區(qū)域。應用加載部1046,將其他的段,加載到安全區(qū)域1040。而且,如上所述,示出.hctext段3212以及.hcdata段3216,以作為被加載到被鎖定的區(qū)域的段的種類。可是,對于被加載到被鎖定的區(qū)域的段的種類,不僅限于此。頭部3210也可以包括,示出將.text段3211以及.data段3214的數(shù)據(jù)加載到高速緩存器1004的被鎖定的區(qū)域、還是加載到安全區(qū)域1040的標志。而且,應用加載部1046也可以,根據(jù)該標志,判定將數(shù)據(jù)加載到高速緩存器1004的鎖定的區(qū)域、還是將數(shù)據(jù)加載到安全區(qū)域1040。并且,如上所述,在應用主體3202中示出,加載到高速緩存器1004的被鎖定的區(qū)域的部分、與加載到安全區(qū)域1040的部分混在一起的結(jié)構(gòu)。但是,安全應用3111的結(jié)構(gòu),不僅限于這樣的結(jié)構(gòu)。安全應用3111,可以包括兩個應用主體3202、3202a(不圖示)。而且,也可以是,應用主體3202被加載到安全區(qū)域1040,應用主體3202a被加載到高速緩存器1004的被鎖定的區(qū)域。<安全應用3111的加載處理>安全操作系統(tǒng)1042,在加載安全應用3111時,判定安全應用3111中是否包含需要隱藏的代碼或數(shù)據(jù)。而且,安全操作系統(tǒng)1042,將安全應用3111的需要隱藏的代碼以及數(shù)據(jù)加載到高速緩存器1004,將其他加載到安全區(qū)域1040。以下,對于加載安全應用3111的處理,利用圖13的流程圖進行說明。安全操作系統(tǒng)1042,讀入安全應用3111,驗證簽名3206(S1200)。安全操作系統(tǒng)1042,在簽名3206的驗證失敗的情況下,停止安全應用3111的加載處理。安全操作系統(tǒng)1042,在簽名的驗證(S1200)成功的情況下,讀入安全應用3111的應用頭信息3201 (S1201)。安全操作系統(tǒng)1042,從讀入后的應用頭信息3201,獲得示出應用主體3202中是否包含需要隱藏的代碼或數(shù)據(jù)的標志。而且,安全操作系統(tǒng)1042,根據(jù)標志,判定應用主體3202中是否包含需要隱藏的代碼或數(shù)據(jù)(S1202)。安全操作系統(tǒng)1042,在判定為需要隱藏的代碼或數(shù)據(jù)被包含在應用主體3202中的情況下(S1202的“是”),對應用主體3202的頭部3210進行解密。而且,安全操作系統(tǒng)1042,計算需要隱藏的代碼以及數(shù)據(jù)的大小,進行加載處理(S1203)。對于加載處理,由于與圖9的隱藏數(shù)據(jù)1010的加載處理同樣,因此省略詳細說明。
安全操作系統(tǒng)1042,根據(jù)頭部3210中描述的各個段的開始地址以及大小的信息,對需要隱藏的代碼以及數(shù)據(jù)進行解密,加載到被鎖定的高速緩存器1004。安全操作系統(tǒng)1042,在判定為需要隱藏的代碼或數(shù)據(jù)沒有被包含在應用主體3202中的情況下(S1202的“否”),對不需要隱藏的代碼或數(shù)據(jù)進行解密。或者,安全操作系統(tǒng)1042,將需要隱藏的代碼或數(shù)據(jù)加載到高速緩存器1004之后(S1203),對不需要隱藏的代碼或數(shù)據(jù)進行解密。而且,安全操作系統(tǒng)1042,將不需要隱藏的解密后的代碼或數(shù)據(jù)加載到安全區(qū)域1040(S1204)。而且,如上所述,安全操作系統(tǒng)1042,判定需要隱藏的代碼或數(shù)據(jù)是否被包含在應用主體3202中,將需要隱藏的代碼或數(shù)據(jù)加載到高速緩存器1004的鎖定的區(qū)域。但是,處理的形態(tài),不僅限于這樣的形態(tài)。首先,安全操作系統(tǒng)1042也可以,將所有的數(shù)據(jù)視為需要隱藏的代碼或數(shù)據(jù),力口載到高速緩存器1004的被鎖定的區(qū)域(S1203)。而且,安全操作系統(tǒng)1042也可以,讀入頭部3210(S1201),根據(jù)頭部3210的信息,判定被鎖定的區(qū)域中的、需要隱藏的代碼或數(shù)據(jù)的區(qū)域(S1202)。而且,安全操作系統(tǒng)1042也可以,解除被鎖定的區(qū)域中的、需要隱藏的代碼或數(shù)據(jù)沒有被包含的區(qū)域的鎖定。如上所述,根據(jù)本實施例,能夠?qū)⑿枰[藏的代碼或數(shù)據(jù)包含在內(nèi)容再生應用1043等的安全應用3111中。據(jù)此,安全應用3111也可以,不需要向安全操作系統(tǒng)1042個別委托隱藏數(shù)據(jù)1010的加載處理。并且,也可以不將隱藏數(shù)據(jù)1010的加載處理以及卸載處理作為程序來嵌入到安全應用3111中。通過適當設定需要隱藏的代碼或數(shù)據(jù)的段,安全操作系統(tǒng)1042將需要隱藏的代碼或數(shù)據(jù)加載到適當?shù)膮^(qū)域。因此,即使在由硬件的結(jié)構(gòu)變更了加載目的地的情況下,也可以不變更安全應用3111。因此,安全應用3111的移植性提高。(實施例3)在實施例I中,安全操作系統(tǒng)1042,按照來自內(nèi)容再生應用1043等的安全應用3111的請求,將隱藏數(shù)據(jù)1010加載到高速緩存器1004。并且,在實施例2中,安全應用3111的應用主體3202,在其內(nèi)部具有,被加載到安全區(qū)域1040的部分、和被加載到高速緩存器1004的部分,在安全應用3111的加載時,分別加載兩個部分。在本實施例中,安全操作系統(tǒng)1042,在處理隱藏數(shù)據(jù)1010時,將處理隱藏數(shù)據(jù)1010以及其他的數(shù)據(jù)的函數(shù)所使用的堆棧區(qū)域,在高速緩存器1004中鎖定。據(jù)此,隱藏數(shù)據(jù)1010安全地被處理。并且,安全操作系統(tǒng)1042,在不處理隱藏數(shù)據(jù)1010時,將高速緩存器1004解鎖。據(jù)此,高速緩存器1004的利用效率提高。以下,說明本實施例涉及的高速緩存器1004的鎖定處理和解鎖處理。而且,對于與實施例I同樣的處理以及構(gòu)成要素,利用相同的符號,并省略說明。<高速緩存器1004的鎖定處理>即使在安全應用3111將針對硬件的攻擊以及針對由軟件的攻擊都需要保護的隱藏數(shù)據(jù)1010加載到高速緩存器1004的被鎖定的區(qū)域的情況下,也會有不充分保護的情況。例如,在以與隱藏數(shù)據(jù)1010不同的值進行運算,該運算結(jié)果,被重寫并保存到存放有隱藏數(shù)據(jù)1010的區(qū)域的情況下,不會發(fā)生問題。但是,在向被配置在存儲器1020中的堆棧區(qū)域的局部變量存放運算結(jié)果的情況下等,會發(fā)生問題。這是因為,會有根據(jù)運算結(jié)果能夠求出原來的隱藏數(shù)據(jù)1010本身的情況的緣故。于是,安全應用3111,在處理隱藏數(shù)據(jù)1010時,在高速緩存器1004中鎖定堆棧區(qū)域,從而保護隱藏數(shù)據(jù)1010以及與其有關(guān)的數(shù)據(jù)。以下,對于在高速緩存器1004中鎖定堆棧區(qū)域的處理,利用圖14A的序列圖進行說明。安全操作系統(tǒng)1042,按照來自安全應用3111的委托,求出安全應用3111的堆棧正在使用的地址(S2000)。安全操作系統(tǒng)1042,將堆棧區(qū)域的信息(地址以及大小)通知給高速緩存器鎖定部1045,委托高速緩存器1004的鎖定(S2001)。高速緩存器鎖定部1045,鎖定高速緩存器1004中的堆棧區(qū)域,以使堆棧區(qū)域的數(shù)據(jù),不會從高速緩存器1004中被除外,不會被寫出到系統(tǒng)LSI1000的外部的存儲器1020(S1103)。鎖定的處理本身,與實施例I同樣。在本實施例中,作為鎖定的對象的堆棧區(qū)域,在函數(shù)的執(zhí)行中已經(jīng)讀入到高速緩存器1004。因此,并不需要進行讀入數(shù)據(jù)的處理(S1102)。高速緩存器鎖定部1045,將鎖定處理結(jié)束的情況通知給安全操作系統(tǒng)1042(S1104)。以上,處理結(jié)束。然后,安全應用3111,利用隱藏數(shù)據(jù)1010進行運算處理,將其結(jié)果或中途結(jié)果等存放到堆棧區(qū)域。但是,在新的存儲區(qū)域被分配為堆棧區(qū)域的情況下,安全操作系統(tǒng)1042,判定在高速緩存器1004中是否鎖定安全應用3111的堆棧區(qū)域。在堆棧區(qū)域已經(jīng)被鎖定的情況下,安全操作系統(tǒng)1042,在高速緩存器1004中還鎖定被追加分配到堆棧的區(qū)域。而且,如上所述,安全操作系統(tǒng)1042,按照來自安全應用3111的委托,鎖定高速緩存器1004中的堆棧區(qū)域。但是,處理的定時,不僅限于這樣的定時。安全操作系統(tǒng)1042也可以,在被委托隱藏數(shù)據(jù)1010的加載處理時,在高速緩存器1004中鎖定委托了加載處理的安全應用3111的堆棧區(qū)域。并且,也可以是,在安全應用3111訪問預先設定的特定的區(qū)域時,在高速緩存器1004中鎖定安全應用3111的堆棧區(qū)域。并且,如上所述,安全操作系統(tǒng)1042,鎖定高速緩存器1004中的堆棧區(qū)域。但是,被鎖定的區(qū)域,不僅限于堆棧區(qū)域。安全操作系統(tǒng)1042,可以鎖定存放有其他的數(shù)據(jù)的區(qū)域。對于被鎖定的區(qū)域,例如,可以是使用malloc函數(shù)等而動態(tài)地確保的區(qū)域,也可以是包含由安全應用3111中的任意的函數(shù)能夠訪問的全局變量的區(qū)域。<高速緩存器1004的解鎖處理>安全應用3111,在利用了隱藏數(shù)據(jù)1010的處理結(jié)束時,消除與隱藏數(shù)據(jù)1010有關(guān)的堆棧區(qū)域內(nèi)的數(shù)據(jù)。而且,安全應用3111,向安全操作系統(tǒng)1042委托高速緩存器1004中的堆棧區(qū)域的解鎖。安全操作系統(tǒng)1042,接受委托,解鎖高速緩存器1004中的堆棧區(qū)域。據(jù)此,其他的程序或其他的數(shù)據(jù)能夠利用高速緩存器1004中的鎖定過的區(qū)域。因此,高速緩存器1004被有效利用。以下,對于在高速緩存器1004中解鎖堆棧區(qū)域的處理,利用圖14B的序列圖進行說明。安全應用3111,向安全操作系統(tǒng)1042委托高速緩存器1004中的堆棧區(qū)域的解鎖。接受了委托的安全操作系統(tǒng)1042,向高速緩存器鎖定部1045委托,高速緩存器1004中被鎖定的堆棧區(qū)域的解鎖(S1125)。高速緩存器鎖定部1045,解除高速緩存器1004中被鎖定的堆棧區(qū)域的鎖定(S2010)。而且,高速緩存器鎖定部1045,將解鎖處理的結(jié)束通知給安全操作系統(tǒng)1042(S1128)。以上,處理結(jié)束。然后,安全應用3111通常工作,堆棧區(qū)域的數(shù)據(jù)被讀入到高速緩存器1004,或者,高速緩存器1004的數(shù)據(jù)被寫出到存儲器1020。據(jù)此,高速緩存器1004高效率地被利用。如上所述,根據(jù)本實施例,存放有數(shù)據(jù)的堆棧區(qū)域等,在程序的執(zhí)行中,在高速緩存器1004中,被鎖定,并被解鎖。據(jù)此,不僅限于隱藏數(shù)據(jù)1010本身,由處理隱藏數(shù)據(jù)1010的程序生成的數(shù)據(jù)、以及根據(jù)隱藏數(shù)據(jù)1010計算的結(jié)果也被保護。(實施例4)本實施例涉及的信息處理裝置具備,實施例I至3所示的內(nèi)容顯示裝置110的具有特征性的構(gòu)成要素。圖15A是本實施例涉及的信息處理裝置的硬件結(jié)構(gòu)圖。圖15A所示的信息處理裝置300是處理保護對象數(shù)據(jù)的裝置。而且,信息處理裝置300具備,兩個存儲部301、302、以及高速緩存器控制部303。存儲部301,與圖2所示的存儲器1020對應。存儲部302,與圖3所示的存儲區(qū)域1011對應。高速緩存器控制部303,與圖3所示的高速緩存器控制部1012對應。圖15B是示出圖15A所示的信息處理裝置300的工作的流程圖。首先,高速緩存器控制部303,將存儲部301中的存儲數(shù)據(jù)高速緩存到存儲部302(S301)。接著,高速緩存器控制部303,鎖定存儲部302中的高速緩存區(qū)域,以使從被高速緩存到存儲部302的存儲數(shù)據(jù)的高速緩存區(qū)域得到的高速緩存數(shù)據(jù)不會被寫回到存儲部30KS302)。接著,高速緩存器控制部303,在存儲部302中的高速緩存區(qū)域被鎖定后,向存儲部302中的高速緩存區(qū)域?qū)懭肱c存儲數(shù)據(jù)不同的保護對象數(shù)據(jù)(S303)。據(jù)此,保護對象數(shù)據(jù),被寫入到高速緩存器(存儲部302)。外部的裝置訪問被寫入到高速緩存器的數(shù)據(jù)是困難的。因此,能夠適當保護保護對象數(shù)據(jù)。接著,高速緩存器控制部303,在保護對象數(shù)據(jù)被處理后,清除存儲部302中的高速緩存區(qū)域(S304)。接著,高速緩存器控制部303,解除高速緩存區(qū)域的鎖定,以使從被清除的高速緩存區(qū)域得到的高速緩存數(shù)據(jù)能夠被寫回到存儲部301 (S305)。據(jù)此,保護對象數(shù)據(jù),在從高速緩存器被寫回到存儲器之前,被消除。因此,能夠適當保護保護對象數(shù)據(jù)。而且,高速緩存器控制部303也可以,在保護對象數(shù)據(jù)被處理時,針對保護對象數(shù)據(jù),分配存儲部301中的數(shù)據(jù)區(qū)域。而且,高速緩存器控制部303也可以,將被分配的數(shù)據(jù)區(qū)域中的存儲數(shù)據(jù)高速緩存到存儲部302(S301)。據(jù)此,用于保護對象數(shù)據(jù)的數(shù)據(jù)區(qū)域,被分配到SDRAM等的存儲器(存儲部301)中。因此,維持存儲器的區(qū)域與高速緩存器的區(qū)域之間的適當?shù)膶P(guān)系。并且,可以省略保護對象數(shù)據(jù)被處理后的處理(S304、S305)。若保護對象數(shù)據(jù)不會被寫回,則能夠適當保護保護對象數(shù)據(jù)。并且,高速緩存器控制部303也可以,通過以不使處理器輸出的保護對象數(shù)據(jù)由外部的裝置獲得的方式被物理保護的電路,將保護對象數(shù)據(jù)寫入到存儲部302中的高速緩存區(qū)域。而且,存儲部302也可以被物理保護,以不使高速緩存區(qū)域中的保護對象數(shù)據(jù)由外部的裝置獲得。例如,也可以是,以不使保護對象數(shù)據(jù)由外部的裝置獲得的方式,處理器、存儲部302、以及處理器與存儲部302之間的電路,由一個集成電路構(gòu)成。據(jù)此,外部的裝置獲得保護對象數(shù)據(jù)是物理上困難的。因此,能夠適當保護保護對象數(shù)據(jù)。并且,高速緩存器控制部303也可以,將由程序預定為將要被寫入到存儲部301的保護對象數(shù)據(jù)寫入到存儲部302中的高速緩存區(qū)域。據(jù)此,程序?qū)⒁獙懭氲酱鎯ζ鞯谋Wo對象數(shù)據(jù),不被寫入到存儲器,而被寫入到高速緩存器。因此,能夠適當保護保護對象數(shù)據(jù)。并且,高速緩存器控制部303也可以,將可執(zhí)行的程序作為保護對象數(shù)據(jù)來寫入到存儲部302中的高速緩存區(qū)域。據(jù)此,能夠保護保護對象程序不被篡改。因此,能夠適當執(zhí)行保護對象程序。(實施例5)本實施例涉及的信息處理裝置具備,實施例I至3所示的內(nèi)容顯示裝置110的具有特征性的構(gòu)成要素。并且,在本實施例中,除了實施例4所示的構(gòu)成要素以外,還示出能夠任意追加的構(gòu)成要素。圖16是本實施例涉及的信息處理裝置的硬件結(jié)構(gòu)圖。圖16所示的信息處理裝置400是,處理保護對象數(shù)據(jù)的裝置。而且,信息處理裝置400具備,存儲部401以及集成電路405。存儲部401是,與圖2所示的存儲器1020、以及圖15A所示的存儲部301對應的存儲裝置。并且,存儲部401包括,兩個存儲區(qū)域411、412。存儲區(qū)域411,與圖2所示的正常區(qū)域1030對應,存儲區(qū)域412,與圖2所示的安全區(qū)域1040對應。存儲區(qū)域411是,用于存儲正常程序的區(qū)域。存儲區(qū)域412是,用于存儲安全程序的區(qū)域,也是禁止由正常程序訪問的區(qū)域。集成電路405,與圖2所示的系統(tǒng)LSI1000對應。并且,集成電路405包括,存儲部402、高速緩存器控制部403、處理器404以及訪問控制部406。存儲部402,與圖3所示的存儲區(qū)域1011、以及圖15A所示的存儲部302對應。高速緩存器控制部403,與圖3所示的高速緩存器控制部1012、以及圖15A所示的高速緩存器控制部303對應。處理器404,與圖2所示的CPU1001對應。訪問控制部406,主要,與圖2所示的存儲器控制部1003對應。存儲部402、高速緩存器控制部403以及處理器404,被包含在集成電路405中。外部的裝置訪問集成電路405的內(nèi)部的數(shù)據(jù)是困難的。因此,能夠適當保護保護對象數(shù)據(jù)。處理器404也可以,生成保護對象數(shù)據(jù),輸出生成的保護對象數(shù)據(jù)。而且,高速緩存器控制部403也可以,在存儲部402中的高速緩存區(qū)域被鎖定后,將從處理器404輸出的保護對象數(shù)據(jù),寫入到存儲部402中的高速緩存區(qū)域。據(jù)此,由處理器生成的保護對象數(shù)據(jù),被寫入到高速緩存器。因此,能夠適當保護由處理器生成的保護對象數(shù)據(jù)。例如,處理器404也可以,對加密數(shù)據(jù)進行解密,生成保護對象數(shù)據(jù),從而輸出生成的保護對象數(shù)據(jù)。據(jù)此,能夠適當保護通過加密數(shù)據(jù)的解密而獲得的保護對象數(shù)據(jù)。并且,處理器404也可以,以安全模式執(zhí)行安全程序,以正常模式執(zhí)行正常程序。據(jù)此,以適當?shù)陌踩綀?zhí)行程序,根據(jù)與程序?qū)陌踩綀?zhí)行訪問控制。并且,高速緩存器控制部403也可以,將由安全程序預定為將要被寫入到存儲區(qū)域412的保護對象數(shù)據(jù)寫入到存儲部402中的高速緩存區(qū)域。據(jù)此,安全程序?qū)⒁獙懭氲酱鎯ζ鞯谋Wo對象數(shù)據(jù),不被寫入到存儲器,而被寫入到高速緩存器。因此,保護對象數(shù)據(jù),以更高的水平被保護。并且,訪問控制部406也可以,禁止由正常程序訪問存儲區(qū)域412。據(jù)此,能夠適當控制對兩個存儲區(qū)域411、412的訪問。因此,能夠適當限制非法程序的執(zhí)行。(其他的變形例)本公開涉及的信息處理裝置,不僅限于實施例I至5。信息處理裝置也可以如下構(gòu)成。(I)根據(jù)所述的結(jié)構(gòu),安全區(qū)域1040所存放的程序(加密引導加載器1052,加密安全操作系統(tǒng)1053以及加密內(nèi)容再生應用1054),分別被存放到非易失性存儲裝置1050。但是,存放的形態(tài),不僅限于這樣的形態(tài)。安全區(qū)域1040所存放的程序也可以被匯集為一個。也就是說,也可以是,引導加載器1041、安全操作系統(tǒng)1042、以及內(nèi)容再生應用1043被匯集為一個文件并被加密,被存放到非易失性存儲裝置1050。在安全區(qū)域1040所存放的程序被匯集為一個的情況下,IPL1002也可以,在進行弓丨導加載器1041的加載以及驗證時(圖8的S1001以及S1002),進行匯集為一個的文件整體的加載以及驗證。并且,在此情況下,引導加載器1041也可以,不進行安全操作系統(tǒng)1042的加載以及驗證(圖8的S1005和S1006)?;蛘?,也可以是,所有的程序不被匯集為一個文件。也可以是,引導加載器1041和安全操作系統(tǒng)1042被匯集為一個文件,其他的所有的安全應用被匯集為一個文件。或者,也可以是,引導加載器1041由一個文件構(gòu)成,安全操作系統(tǒng)1042和其他的所有的安全應用被匯集為一個文件?;蛘?,也可以利用其他的匯集方法。而且,在安全操作系統(tǒng)1042和所有的安全應用被匯集為一個文件的情況下,安全操作系統(tǒng)1042也可以不將這樣的安全應用加載到安全區(qū)域1040。因此,安全操作系統(tǒng)1042也可以不具有,將這樣的安全應用加載到安全區(qū)域1040的功能。(2)根據(jù)所述的結(jié)構(gòu),在隱藏數(shù)據(jù)1010的卸載處理時,高速緩存器1004被解鎖之前,以O的值重寫隱藏數(shù)據(jù)1010,但是,處理的形態(tài),不僅限于這樣的形態(tài)。也可以是,不是以O的值重寫隱藏數(shù)據(jù)1010,而是以其他的值重寫隱藏數(shù)據(jù)1010。并且,也可以是,不是以相同的值重寫隱藏數(shù)據(jù)1010。也就是說,也可以是,以多個值重寫隱藏數(shù)據(jù)1010。并且,也可以清除高速緩存器1004中的數(shù)據(jù)被改寫時被設定的Dirty標志、或示出對高速緩存器1004有效的數(shù)據(jù)被存放這情況的Valid標志。據(jù)此,隱藏數(shù)據(jù)1010被控制為,不會被寫出到存儲器1020。在此情況下,也可以是,不是以規(guī)定的值重寫隱藏數(shù)據(jù)1010。(3)根據(jù)所述的結(jié)構(gòu),隱藏數(shù)據(jù)1010,被加載到系統(tǒng)LSI1000的內(nèi)部的高速緩存器1004。但是,隱藏數(shù)據(jù)1010的加載目的地,不僅限于系統(tǒng)LSI1000的內(nèi)部。例如,隱藏數(shù)據(jù)1010也可以,被加載到被設置在系統(tǒng)LSI1000的外部的、且針對由總線探頭等的硬件的攻擊保護的存儲器。為了以針對由總線探頭等的硬件的攻擊保護的方式設置存儲器,有幾種方法。例如,也可以是,系統(tǒng)LSI1000和存儲器之間的信號線、系統(tǒng)LSI1000、以及存儲器的端子,被埋入在基板的內(nèi)部。并且,也可以是,信號線以及端子上涂抹粘貼劑。據(jù)此,在粘貼劑被剝下時,信號線或端子被破壞。并且,也可以是,系統(tǒng)LSI1000和存儲器,被封入到同一包內(nèi)。并且,如圖17示出,隱藏數(shù)據(jù)1010也可以,被加載到被配置在系統(tǒng)LSI1000的內(nèi)部的 OCM(On Chip Memory :片上存儲器)1005。(4)根據(jù)所述的結(jié)構(gòu),安全操作系統(tǒng)1042包括,隱藏數(shù)據(jù)加載部1044、以及高速緩存器鎖定部1045?;蛘?,安全操作系統(tǒng)1042包括,隱藏數(shù)據(jù)加載部1044、高速緩存器鎖定部1045、以及應用加載部1046。但是,安全操作系統(tǒng)1042的結(jié)構(gòu),不僅限于這樣的結(jié)構(gòu)。也可以是,它們的全部不被包含在安全操作系統(tǒng)1042中。例如,它們可以是以后能夠加載到安全操作系統(tǒng)1042的可加載模塊,也可以是設備驅(qū)動器。并且,它們也可以是如圖18示出獨立于安全操作系統(tǒng)1042的固件。并且,它們,可以不被包含在安全操作系統(tǒng)1042中,而被包含在引導加載器1041中,也可以被包含在安全操作系統(tǒng)1042以及引導加載器1041這雙方。隱藏數(shù)據(jù)加載部
1044、高速緩存器鎖定部1045、以及應用加載部1046,在哪個結(jié)構(gòu)中,在CPU1001以安全模式且特權(quán)模式工作時,都能夠工作。(5)例如,所述的各個裝置也可以是,具體而言,微處理器、ROM、RAM、硬盤組件、顯示器組件、鍵盤以及鼠標等構(gòu)成的計算機系統(tǒng)。具體而言,RAM或硬盤組件存儲有計算機程序。而且,微處理器根據(jù)計算機程序進行工作,據(jù)此,各個裝置實現(xiàn)其功能。在此,計算機程序是,為了實現(xiàn)規(guī)定的功能,組合分別表示對計算機的命令的多個指令碼而構(gòu)成的。(6)并且,例如,構(gòu)成所述的各個裝置的多個構(gòu)成要素的一部分或全部,也可以由一個系統(tǒng)LSI構(gòu)成。系統(tǒng)LSI是,將多個構(gòu)成部集成在一個芯片上而制造的超多功能LSI,具體而言,由微處理器、ROM以及RAM等構(gòu)成的計算機系統(tǒng)。RAM存儲有計算機程序。微處理器根據(jù)計算機程序進行工作,據(jù)此,系統(tǒng)LSI實現(xiàn)其功能。并且,對于構(gòu)成所述的各個裝置的多個構(gòu)成要素,可以將它們分別單芯片化,也可以將它們單芯片化,使得包含一部分或全部。并且,在此,示出了系統(tǒng)LSI,但是根據(jù)集成度的不同,系統(tǒng)LSI有時被稱為IC(Integrated Circuit :集成電路)、LSI、超 LSI、特大 LSI。并且,對于集成電路化的方法,不僅限于LSI,也可以以專用電路或通用處理器來實現(xiàn)集成電路化。也可以利用在制造LSI后能夠編程的FPGA(FieldProgrammable GateArray :現(xiàn)場可編程門陣列)、或可重構(gòu)LSI內(nèi)部的電路單元的連接以及設定的可重構(gòu)處理器。進而,當然,若因半導體技術(shù)的進步或?qū)С龅钠渌募夹g(shù)而出現(xiàn)代替LSI的集成電路化的技術(shù),則可以利用其技術(shù)對功能框進行集成化。存在生物技術(shù)的應用等的可能性。(7)并且,例如,構(gòu)成所述的各個裝置的多個構(gòu)成要素的一部分或全部,也可以由與各個裝置可裝卸的IC卡或單體的模塊構(gòu)成。IC卡或模塊是,由微處理器、ROM、RAM等構(gòu)成的計算機系統(tǒng)。IC卡或模塊也可以,包含所述的超多功能LSI。微處理器根據(jù)計算機程序進行工作,據(jù)此,IC卡或模塊實現(xiàn)其功能。該IC卡或該模塊也可以,具有防篡改性。(8)本公開涉及的概念,也可以作為多個實施例以及多個變形例所示的方法來實現(xiàn)。并且,本公開涉及的概念,可以作為以計算機實現(xiàn)這樣的方法的計算機程序來實現(xiàn),也可以作為構(gòu)成計算機程序的數(shù)字信號來實現(xiàn)。并且,本公開涉及的概念,也可以作為計算機程序或數(shù)字信號被記錄的非暫時的計算機可讀取的記錄介質(zhì)來實現(xiàn)。該記錄介質(zhì)也可以是,例如,軟盤、硬盤、CD — ROM、MO、DVD、DVD - ROM、DVD 一 RAM、BD(Blu 一 ray (注冊商標)Disc)、或半導體存儲器等。并且,本公開涉及的概念,也可以作為該記錄介質(zhì)所記錄的數(shù)字信號來實現(xiàn)。并且,也可以將計算機程序或數(shù)字信號,經(jīng)由電通信線路、無線通信線路、有線通信線路、以互聯(lián)網(wǎng)為代表的網(wǎng)絡、或數(shù)據(jù)廣播等傳輸。并且,本公開涉及的概念,也可以作為具備微處理器以及存儲器的計算機系統(tǒng)來實現(xiàn)。而且,存儲器,可以存儲計算機程序,微處理器,可以根據(jù)計算機程序工作。并且,計算機程序或數(shù)字信號可以被記錄到記錄介質(zhì)來輸送,計算機程序或數(shù)字信號也可以經(jīng)由網(wǎng)絡等輸送。而且,本公開涉及的概念,也可以由獨立的其他的計算機系統(tǒng)實施。(9)也可以組合所述的多個實施例、以及所述的多個變形例。某構(gòu)成要素執(zhí)行的處理,也可以由其他的構(gòu)成要素執(zhí)行。并且,可以變更處理的順序,也可以并行進行多個處理。(補充)而且,在所述各個實施例中也可以,各個構(gòu)成要素,由專用的硬件構(gòu)成、或通過執(zhí)行適于各個構(gòu)成要素的軟件程序來實現(xiàn)。各個構(gòu)成要素,也可以通過CPU或處理器等的程序執(zhí)行部,讀出并執(zhí)行硬盤或半導體存儲器等的記錄介質(zhì)所記錄的軟件程序來實現(xiàn)。在此,實現(xiàn)所述各個實施例的信息處理裝置等的軟件是,如下的程序。也就是說,該程序,使計算機執(zhí)行處理保護對象數(shù)據(jù)的信息處理方法,在該信息處理方法中將第一存儲部中的存儲數(shù)據(jù)高速緩存到第二存儲部;以從被高速緩存到所述第二存儲部的所述存儲數(shù)據(jù)的高速緩存區(qū)域中得到的高速緩存數(shù)據(jù)不會被寫回到所述第一存儲部的方式,鎖定所述第二存儲部中的所述高速緩存區(qū)域;在所述第二存儲部中的所述高速緩存區(qū)域被鎖定之后,將與所述存儲數(shù)據(jù)不同的所述保護對象數(shù)據(jù)寫入到所述第二存儲部中的所述高速緩存區(qū)域。以上,對于本發(fā)明的一個或多個實施方案涉及的信息處理裝置,根據(jù)實施例進行了說明,但是,本發(fā)明,不僅限于該實施例。只要不脫離本發(fā)明的宗旨,對本實施例施行本領(lǐng)域的技術(shù)人員想到的各種變形的形態(tài)、或組合不同的實施例中的構(gòu)成要素而構(gòu)成的形態(tài),也包含在本發(fā)明的一個或多個實施方案的范圍內(nèi)。本發(fā)明的實施方案之一涉及的信息處理裝置,有用于處理隱藏數(shù)據(jù)的信息處理裝置,例如,能夠適用于執(zhí)行用于再生著作權(quán)被保護的內(nèi)容的軟件的移動電話或個人電腦等的信息處理裝置。符號說明100內(nèi)容分發(fā)系統(tǒng)
110內(nèi)容顯示裝置120內(nèi)容記錄裝置121 天線300、400信息處理裝置301、302、401、402 存儲部303,403,1012高速緩存器控制部(高速緩存器控制器)404處理器405集成電路406訪問控制部411,412,1011 存儲區(qū)域1000 系統(tǒng) LSI1001 CPU1002 IPL1003存儲器控制部(存儲器控制器)1004高速緩存器1005 OCM1006密鑰保持部1010隱藏數(shù)據(jù)1020 存儲器1030正常區(qū)域1031通用操作系統(tǒng)(通用OS)1032播放應用1033內(nèi)容接收應用1034共享數(shù)據(jù)1040安全區(qū)域1041引導加載器1042安全操作系統(tǒng)(安全OS)1043內(nèi)容再生應用1044隱藏數(shù)據(jù)加載部1045高速緩存器鎖定部1046應用加載部1050非易失性存儲裝置1051加密隱藏數(shù)據(jù)1052加密引導加載器1053加密安全操作系統(tǒng)1054加密內(nèi)容再生應用1061 頭信息1062隱藏數(shù)據(jù)主體1063 驗證值
1100通常的軟件執(zhí)行環(huán)境(正常環(huán)境)1200安全的軟件執(zhí)行環(huán)境(安全環(huán)境)3000包生成部3100 編譯器3101 鏈接器3102包生成工具3110源碼(程序源碼)3111安全應用3112秘密密鑰3113,3205公開密鑰證書3114,3203 設定文件3201應用頭信息3202應用主體3204應用簽名列表3206 簽名3210 頭部3211. text 段3212. hctext 段3213. rodata 段3214. data 段3215. bss 段3216. hcdata 段
權(quán)利要求
1.一種信息處理裝置,是處理保護對象數(shù)據(jù)的信息處理裝置,該信息處理裝置具備 第一存儲部;第二存儲部;以及高速緩存器控制部,將所述第一存儲部中的存儲數(shù)據(jù)高速緩存到所述第二存儲部,所述高速緩存器控制部,以從被高速緩存到所述第二存儲部的所述存儲數(shù)據(jù)的高速緩存區(qū)域中得到的高速緩存數(shù)據(jù)不會被寫回到所述第一存儲部的方式,鎖定所述第二存儲部中的所述高速緩存區(qū)域,在所述第二存儲部中的所述高速緩存區(qū)域被鎖定之后,將與所述存儲數(shù)據(jù)不同的所述保護對象數(shù)據(jù)寫入到所述第二存儲部中的所述高速緩存區(qū)域。
2.如權(quán)利要求I所述的信息處理裝置,所述高速緩存器控制部,通過以從處理器輸出的所述保護對象數(shù)據(jù)不會由外部的裝置獲得的方式被物理保護的電路,將從所述處理器輸出的所述保護對象數(shù)據(jù)寫入到所述第二存儲部中的所述高速緩存區(qū)域,以所述高速緩存區(qū)域中的所述保護對象數(shù)據(jù)不會由外部的裝置獲得的方式,所述第二存儲部被物理保護。
3.如權(quán)利要求I或2所述的信息處理裝置,所述高速緩存器控制部,在所述保護對象數(shù)據(jù)被處理時,針對所述保護對象數(shù)據(jù),分配所述第一存儲部中的數(shù)據(jù)區(qū)域,將被分配的所述數(shù)據(jù)區(qū)域中的所述存儲數(shù)據(jù)高速緩存到所述第二存儲部,以從被高速緩存到所述第二存儲部的所述存儲數(shù)據(jù)的所述高速緩存區(qū)域中得到的所述高速緩存數(shù)據(jù)不會被寫回到所述第一存儲部的方式,鎖定所述第二存儲部中的所述高速緩存區(qū)域,在所述第二存儲部中的所述高速緩存區(qū)域被鎖定之后,將與所述存儲數(shù)據(jù)不同的所述保護對象數(shù)據(jù)寫入到所述第二存儲部中的所述高速緩存區(qū)域。
4.如權(quán)利要求I至3的任一項所述的信息處理裝置,所述高速緩存器控制部,在所述保護對象數(shù)據(jù)被處理之后,清除所述第二存儲部中的所述高速緩存區(qū)域,以從清除后的所述高速緩存區(qū)域中得到的所述高速緩存數(shù)據(jù)能夠被寫回到所述第一存儲部的方式,解除所述高速緩存區(qū)域的鎖定。
5.如權(quán)利要求I至4的任一項所述的信息處理裝置,所述信息處理裝置還具備處理器,該處理器生成所述保護對象數(shù)據(jù),并輸出生成的所述保護對象數(shù)據(jù),所述高速緩存器控制部,在所述第二存儲部中的所述高速緩存區(qū)域被鎖定之后,將從所述處理器輸出的所述保護對象數(shù)據(jù)寫入到所述第二存儲部中的所述高速緩存區(qū)域。
6.如權(quán)利要求5所述的信息處理裝置,所述信息處理裝置還具備集成電路,所述第二存儲部、所述高速緩存器控制部以及所述處理器,被包含在所述集成電路中。
7.如權(quán)利要求5或6所述的信息處理裝置,所述處理器,通過對加密數(shù)據(jù)進行解密,從而生成所述保護對象數(shù)據(jù),并輸出生成的所述保護對象數(shù)據(jù)。
8.如權(quán)利要求I至7的任一項所述的信息處理裝置,所述高速緩存器控制部,將由程序預定為將要被寫入到所述第一存儲部的所述保護對象數(shù)據(jù)寫入到所述第二存儲部中的所述高速緩存區(qū)域。
9.如權(quán)利要求I至8的任一項所述的信息處理裝置,所述高速緩存器控制部,將可執(zhí)行的程序作為所述保護對象數(shù)據(jù)寫入到所述第二存儲部中的所述高速緩存區(qū)域。
10.如權(quán)利要求5至7的任一項所述的信息處理裝置,所述處理器,以安全模式執(zhí)行安全程序,以正常模式執(zhí)行正常程序,所述第一存儲部具有第一存儲區(qū)域以及第二存儲區(qū)域,所述第一存儲區(qū)域是用于存儲所述正常程序的區(qū)域,所述第二存儲區(qū)域是用于存儲所述安全程序的區(qū)域,且是禁止由所述正常程序訪問的區(qū)域。
11.如權(quán)利要求10所述的信息處理裝置,所述高速緩存器控制部,將由所述安全程序預定為將要被寫入到所述第二存儲區(qū)域的所述保護對象數(shù)據(jù)寫入到所述第二存儲部中的所述高速緩存區(qū)域。
12.如權(quán)利要求10或11所述的信息處理裝置,所述信息處理裝置還具備訪問控制部,該訪問控制部禁止由所述正常程序訪問所述第二存儲區(qū)域。
13.一種信息處理方法,是處理保護對象數(shù)據(jù)的信息處理方法,在該信息處理方法中,將第一存儲部中的存儲數(shù)據(jù)高速緩存到第二存儲部,以從被高速緩存到所述第二存儲部的所述存儲數(shù)據(jù)的高速緩存區(qū)域中得到的高速緩存數(shù)據(jù)不會被寫回到所述第一存儲部的方式,鎖定所述第二存儲部中的所述高速緩存區(qū)域,在所述第二存儲部中的所述高速緩存區(qū)域被鎖定之后,將與所述存儲數(shù)據(jù)不同的所述保護對象數(shù)據(jù)寫入到所述第二存儲部中的所述高速緩存區(qū)域。
14.一種程序,用于使計算機執(zhí)行權(quán)利要求13所述的信息處理方法。
15.一種非暫時的計算機可讀取的記錄介質(zhì),記錄有用于使計算機執(zhí)行權(quán)利要求13所述的信息處理方法的程序。
16.一種集成電路,是處理保護對象數(shù)據(jù)的集成電路,該集成電路具備存儲部;以及高速緩存器控制部,將存儲裝置中的存儲數(shù)據(jù)高速緩存到所述存儲部,所述高速緩存器控制部,以從被高速緩存到所述存儲部的所述存儲數(shù)據(jù)的高速緩存區(qū)域中得到的高速緩存數(shù)據(jù)不會被寫回到所述存儲裝置的方式,鎖定所述存儲部中的所述高速緩存區(qū)域,在所述存儲部中的所述高速緩存區(qū)域被鎖定之后,將與所述存儲數(shù)據(jù)不同的所述保護對象數(shù)據(jù)寫入到所述存儲部中的所述高速緩存區(qū)域。
全文摘要
信息處理裝置,是處理保護對象數(shù)據(jù)的信息處理裝置,具備第一存儲部(301);第二存儲部(302);以及高速緩存器控制部(303),將第一存儲部(301)中的存儲數(shù)據(jù)高速緩存到第二存儲部(302),高速緩存器控制部(303),以從被高速緩存到第二存儲部(302)的存儲數(shù)據(jù)的高速緩存區(qū)域中得到的高速緩存數(shù)據(jù)不會被寫回到第一存儲部(301)的方式,鎖定第二存儲部(302)中的高速緩存區(qū)域,在第二存儲部(302)中的高速緩存區(qū)域被鎖定之后,將與存儲數(shù)據(jù)不同的保護對象數(shù)據(jù)寫入到第二存儲部(302)中的高速緩存區(qū)域。
文檔編號G06F21/60GK102985930SQ20128000189
公開日2013年3月20日 申請日期2012年5月2日 優(yōu)先權(quán)日2011年5月25日
發(fā)明者前田學, 廣田照人, 松島秀樹 申請人:松下電器產(chǎn)業(yè)株式會社