專利名稱:用于處理加密軟件的方法和中央處理單元的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全技術(shù),尤其涉及用于處理加密軟件的方法和中央處理單元。
背景技術(shù):
一般,防篡改技術(shù)用于保護(hù)在非安全環(huán)境中的設(shè)備免受修改或破壞,這些修改或破壞經(jīng)常通過物理的或其它攻擊方式來進(jìn)行。對(duì)于軟件,防篡改技術(shù)用于防止惡意的用戶通過分析或篡改,而從軟件中提取機(jī)密信息,例如密鑰、專用算法等等。主要的應(yīng)用情景是在保護(hù)包括敏感數(shù)據(jù)和/或代碼的軟件內(nèi)容。
大多數(shù)傳統(tǒng)的防止篡改軟件的技術(shù)是基于軟件的方法。這些方法通過將軟件的敏感數(shù)據(jù)和/或代碼進(jìn)行加密,來增加惡意用戶獲取機(jī)密的難度。但是,在軟件加密的方法中,全部加密的數(shù)據(jù)和/或代碼最終必須使用軟件例程解密后將明文(plain form)存儲(chǔ)到內(nèi)存中,然后再提供給CPU。因此,惡意的用戶可以通過截取軟件的明文來獲取信息。
還有幾種基于硬件的方法來實(shí)現(xiàn)防止篡改軟件,但是均要基于專有結(jié)構(gòu)并作為協(xié)處理器來實(shí)現(xiàn)。其中,一種典型的結(jié)構(gòu)是將一單獨(dú)的處理器、易失性存儲(chǔ)器(如RAM)、非易失性存儲(chǔ)器(如閃存)以及保密引擎(cryptographic engine)封裝到一起,作為一個(gè)協(xié)處理器與主計(jì)算機(jī)通過外部總線進(jìn)行通信。這種結(jié)構(gòu)適于特定用途的軟件,如ATM軟件。但是,因?yàn)樵谶@種硬件結(jié)構(gòu)中,受保護(hù)的程序必須在協(xié)處理器上運(yùn)行,而不是在CPU上運(yùn)行,因此運(yùn)行、開發(fā)、實(shí)施和分發(fā)軟件都受到限制,很難開發(fā)通用的防篡改的軟件。
發(fā)明內(nèi)容
鑒于已有技術(shù)的不足,本發(fā)明所要解決的問題之一是提供一種改進(jìn)的中央處理單元CPU,其中解密后的數(shù)據(jù)和/或代碼直接被CPU處理。
本發(fā)明提供了一種用于處理至少一個(gè)已加密軟件的中央處理單元,其中,所述已加密的軟件至少包括一個(gè)已加密軟件部分,該已加密軟件部分已被使用一管理密鑰MK進(jìn)行了加密,該管理密鑰已被一設(shè)備密鑰DK加密為加密后的管理密鑰,所述中央處理單元包括處理和高速緩存部分;保密部分,包括存儲(chǔ)有所述設(shè)備密鑰的設(shè)備密鑰存儲(chǔ)單元;多個(gè)用于存儲(chǔ)管理密鑰的管理密鑰存儲(chǔ)單元,每一管理密鑰存儲(chǔ)單元具有一相對(duì)應(yīng)的管理密鑰索引MKI;解密單元,用于使用所述設(shè)備密鑰對(duì)加密后的管理密鑰進(jìn)行解密,以便獲取管理密鑰,將管理密鑰存儲(chǔ)到一管理密鑰存儲(chǔ)單元中,并將與該管理密鑰存儲(chǔ)單元相應(yīng)的管理密鑰索引MKI輸出,所述MKI用于與所述已加密軟件部分相關(guān)聯(lián);其中,所述解密單元還用于根據(jù)所述MKI調(diào)用相應(yīng)的管理密鑰,對(duì)已加密軟件部分進(jìn)行解密,并將解密得到的軟件代碼和/或數(shù)據(jù)直接傳遞給所述處理和高速緩存部分。
本發(fā)明還提供了一種利用中央處理單元處理至少一個(gè)已被加密的軟件的方法,其中所述中央處理單元包括處理和高速緩存部分以及保密部分,該保密部分包括解密單元、存儲(chǔ)有設(shè)備密鑰的設(shè)備密鑰存儲(chǔ)單元、用于存儲(chǔ)管理密鑰的管理密鑰存儲(chǔ)單元,每一管理密鑰存儲(chǔ)單元具有一相對(duì)應(yīng)的管理密鑰索引MKI,所述已被加密的軟件已被使用一管理密鑰進(jìn)行了加密,該管理密鑰已被所述設(shè)備密鑰加密為加密后的管理密鑰,所述方法包括將與所述軟件相應(yīng)的用設(shè)備密鑰加密后的管理密鑰讀取到所述保密部分之中;解密單元使用所述設(shè)備密鑰對(duì)加密后的管理密鑰進(jìn)行解密,以便獲取管理密鑰;將所述管理密鑰存儲(chǔ)到管理密鑰存儲(chǔ)單元中,并獲取該管理密鑰在所述管理密鑰存儲(chǔ)單元中的管理密鑰索引MKI;將該MKI與所述被加密的軟件相關(guān)聯(lián);根據(jù)所述MKI取出相應(yīng)的管理密鑰,并利用所述管理密鑰在所述解密單元內(nèi)解密所述軟件;將解密得到的軟件代碼和/或數(shù)據(jù)直接傳遞給處理和高速緩存部分,并利用所述處理和高速緩存部分處理所述軟件。
圖1示出了根據(jù)本發(fā)明一實(shí)施例的方框圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
進(jìn)行詳細(xì)說明。
圖1示出了根據(jù)本發(fā)明一實(shí)施例的方框圖。其中,根據(jù)本發(fā)明的中央處理單元100用于處理至少一個(gè)已加密軟件。所述已加密的軟件至少包括一個(gè)已加密軟件部分。如圖1中的內(nèi)存130內(nèi)存儲(chǔ)的軟件,該軟件包括多個(gè)已加密的部分和多個(gè)未加密的部分。其中加密頁(yè)面所存儲(chǔ)的是軟件的已加密部分,而普通頁(yè)面存儲(chǔ)的是軟件的未加密部分。該已加密軟件部分已被使用一管理密鑰MK進(jìn)行了加密。該管理密鑰已被與該中央處理單元相應(yīng)的設(shè)備密鑰加密為加密后的管理密鑰,如圖中所示的設(shè)備密鑰加密的管理密鑰MK-DK。
所述中央處理單元100包括處理和高速緩存部分110以及保密部分(Cryptographic Unit)120。
該保密部分120包括設(shè)備密鑰(DK)存儲(chǔ)單元,其中存儲(chǔ)有與所述中央處理單元相對(duì)應(yīng)的設(shè)備密鑰DK;多個(gè)用于存儲(chǔ)管理密鑰MK的管理密鑰(MK)存儲(chǔ)單元,每一管理密鑰存儲(chǔ)單元具有相對(duì)應(yīng)的管理密鑰索引MKI;解密單元,用于使用所述設(shè)備密鑰對(duì)加密后的管理密鑰進(jìn)行解密,以便獲取管理密鑰,將管理密鑰存儲(chǔ)到一管理密鑰存儲(chǔ)單元中,并將與該管理密鑰存儲(chǔ)單元相應(yīng)的管理密鑰索引MKI輸出,所述MKI用于與所述已加密軟件部分相關(guān)聯(lián)。其中,所述解密單元還用于根據(jù)所述MKI調(diào)用相應(yīng)的管理密鑰,對(duì)已加密軟件部分進(jìn)行解密,并將解密得到的軟件代碼和/或數(shù)據(jù)直接傳遞給所述處理和高速緩存部分。
此外,根據(jù)需要,每一管理密鑰存儲(chǔ)單元可以有一個(gè)或多個(gè)管理密鑰索引MKI相對(duì)應(yīng)。
對(duì)于所要處理的軟件,首先將與所述軟件相應(yīng)的用設(shè)備密鑰加密后的管理密鑰讀MK-DK取到所述保密部分120之中。然后,使用所述設(shè)備密鑰DK對(duì)加密后的管理密鑰MK-DK進(jìn)行解密,以便獲取管理密鑰MK。
將所述管理密鑰MK存儲(chǔ)到管理密鑰(MK)存儲(chǔ)單元中,并獲取該管理密鑰在所述管理密鑰存儲(chǔ)單元中的管理密鑰索引號(hào)MKI。其中,每一管理密鑰存儲(chǔ)單元具有一相對(duì)應(yīng)的管理密鑰索引MKI。然后,將該MKI與所述被加密的軟件部分相關(guān)聯(lián)。
這樣,當(dāng)中央處理單元需要處理與MKI相關(guān)聯(lián)的已加密軟件部分的時(shí)候,就可以根據(jù)所述MKI取出相應(yīng)的管理密鑰。并利用所述管理密鑰在所述解密單元內(nèi)解密所述已加密的軟件部分。將解密得到的軟件代碼和/或數(shù)據(jù)直接傳遞給處理和高速緩存部分,并利用所述處理和高速緩存部分處理所述軟件。
在本發(fā)明中,受保護(hù)的代碼和/或數(shù)據(jù)從來不會(huì)被軟件例程解密并存儲(chǔ)到用戶可以訪問的存儲(chǔ)裝置中,如內(nèi)存、硬盤等。相反,根據(jù)本發(fā)明的硬件解密單元嵌入到中央處理單元CPU之中,對(duì)加密的代碼和/或數(shù)據(jù)進(jìn)行解密并直接提供給CPU。由于用戶無法訪問到受保護(hù)內(nèi)容的明文代碼和/或數(shù)據(jù)(plain code/data),例如明文形式的數(shù)據(jù)和或代碼不會(huì)出現(xiàn)在用戶可訪問的存儲(chǔ)裝置中,這樣,有效地避免了惡意用戶截取這些信息。
根據(jù)下文所述的一些預(yù)定的策略,可以進(jìn)一步限制為僅僅允許被授權(quán)的代碼對(duì)受保護(hù)的內(nèi)容進(jìn)行存取。這樣就進(jìn)一步防止了惡意的用戶通過一些未授權(quán)的方式截取受保護(hù)的信息。而已有的保護(hù)方法,尤其是基于軟件的保護(hù)方法對(duì)此卻很難實(shí)現(xiàn)。
對(duì)于需要處理的部分已加密的軟件,如圖1所示,在內(nèi)存中可以以頁(yè)面的方式來進(jìn)行存儲(chǔ)。已加密的部分和未加密的部分分別使用加密的頁(yè)面和普通頁(yè)面來存儲(chǔ)。還可以生成一頁(yè)面表150,將加密的頁(yè)面和普通頁(yè)面的頁(yè)面地址與解密得到的管理密鑰MK的索引MKI相關(guān)聯(lián)。這樣,CPU就可以將加密后的軟件部分與未加密的軟件部分,根據(jù)MKI來區(qū)別對(duì)待。本領(lǐng)域的技術(shù)人員容易理解,還可以利用其它方法,來將MKI與加密的軟件部分相關(guān)聯(lián),例如為加密的軟件部分添加一標(biāo)題來指示其對(duì)應(yīng)的MKI。對(duì)于使用該CPU處理多個(gè)已加密軟件的情況,可以將它們各自的MK對(duì)應(yīng)的MKI與這些軟件分別相關(guān)聯(lián)。
通過MKI將管理密鑰與加密的軟件部分相關(guān)聯(lián),還使得根據(jù)本發(fā)明的中央處理單元可以用于處理多個(gè)加密的軟件,或多個(gè)包括加密部分的軟件。
根據(jù)本發(fā)明的另一方面,其中所述解密單元還可以將解密得到的軟件代碼和/或數(shù)據(jù)連同相應(yīng)的MKI一起直接傳遞給所述處理和高速緩存部分,所述處理和高速緩存部分根據(jù)MKI對(duì)解密得到的軟件代碼和/或數(shù)據(jù)進(jìn)行處理。
根據(jù)上述CPU和方法,所述處理和高速緩存部分還可以進(jìn)一步將處理后的軟件代碼和/或數(shù)據(jù)連同相應(yīng)的MKI傳給保密部分;所述保密部分進(jìn)一步包括一加密單元,用于根據(jù)MKI調(diào)用相應(yīng)的管理密鑰對(duì)所述處理后的軟件代碼和/或數(shù)據(jù)進(jìn)行再次加密,并將再次加密后的軟件代碼和/或數(shù)據(jù)連同MKI輸出。
根據(jù)本發(fā)明的上述CPU和方法,所述中央處理單元進(jìn)一步配置為用于處理多個(gè)已加密軟件,每個(gè)已加密軟件是用不同的管理密鑰分別加密的,所述不同的管理密鑰已分別用所述設(shè)備密鑰加密為多個(gè)加密后的管理密鑰。所述解密單元,進(jìn)一步用于使用所述設(shè)備密鑰分別對(duì)多個(gè)加密后的管理密鑰進(jìn)行解密,以便獲取多個(gè)管理密鑰,將多個(gè)管理密鑰存儲(chǔ)到多個(gè)管理密鑰存儲(chǔ)單元中,并將與該多個(gè)管理密鑰存儲(chǔ)單元相應(yīng)的多個(gè)管理密鑰索引MKI輸出,所述多個(gè)MKI用于分別與相應(yīng)的所述多個(gè)已加密軟件相關(guān)聯(lián)。這樣,同一軟件的加密部分或同一已加密的軟件與同一MKI相關(guān)聯(lián),或者使用相同MK加密后的多個(gè)軟件相關(guān)聯(lián)的MKI相同。
根據(jù)本發(fā)明的上述CPU和方法,其中所述解密單元根據(jù)預(yù)定的策略為多個(gè)管理密鑰分配多個(gè)管理密鑰存儲(chǔ)單元及MKI,所述處理和高速緩存部分進(jìn)一步根據(jù)預(yù)定的策略對(duì)解密得到的軟件代碼和/或數(shù)據(jù)進(jìn)行處理。其中,所述預(yù)定的策略包括對(duì)于與一MKI相關(guān)聯(lián)的代碼和/或數(shù)據(jù)只允許具有相同MKI的代碼進(jìn)行讀寫;或者對(duì)于與一MKI相關(guān)聯(lián)的代碼和/或數(shù)據(jù),根據(jù)預(yù)定的策略而允許具有不同MKI的代碼進(jìn)行讀寫。例如,MKI的取值在某一范圍內(nèi)的代碼之間,允許相互讀寫。但是,可以允許不具有或不同MKI的代碼與具有MKI的代碼之間相互調(diào)用。
其中,與一MKI相關(guān)聯(lián)的代碼和/或數(shù)據(jù),可以選自與MKI相關(guān)聯(lián)的未解密的代碼和/或數(shù)據(jù)、與MKI相關(guān)聯(lián)的解密得到的代碼和/或數(shù)據(jù)、和/或?qū)哂性揗KI的代碼和/或數(shù)據(jù)進(jìn)行中間處理而得到的代碼和/或數(shù)據(jù)。與MKI相關(guān)聯(lián)的代碼和/或數(shù)據(jù)可以僅在解密前保持其MKI指示。作為優(yōu)選方案,與MKI相關(guān)聯(lián)的代碼和/或數(shù)據(jù)還可以在高速緩存中保持其MKI指示,或者在中央處理單元的各個(gè)部分中均保持代碼和/或數(shù)據(jù)的MKI指示。
根據(jù)本發(fā)明的上述CPU和方法,其中,所述處理和高速緩存部分進(jìn)一步包括保密寄存器組,所述預(yù)定的策略包括對(duì)于保密寄存器組內(nèi)存儲(chǔ)的與一MKI相關(guān)聯(lián)的代碼和/或數(shù)據(jù)只允許具有相同MKI的代碼進(jìn)行讀寫?;蛘邔?duì)于保密寄存器組內(nèi)存儲(chǔ)的與一MKI相關(guān)聯(lián)的代碼和/或數(shù)據(jù),根據(jù)預(yù)定的策略而允許具有不同MKI的代碼進(jìn)行讀寫,如其MKI取值在某一范圍內(nèi)的代碼可以進(jìn)行讀寫。
根據(jù)CPU的具體要求,圖1中所示的處理和高速緩存部分可以包括處理部分和高速緩存部分。其中,所述高速緩存部分可以包括控制單元、高速緩存線及相應(yīng)的MKI指示部分;而處理部分可以包括執(zhí)行單元、當(dāng)前指令寄存器及其相應(yīng)的MKI存儲(chǔ)部分,保密寄存器組、寄存器(根據(jù)需要寄存器可以具有或不具有相應(yīng)的MKI指示或存儲(chǔ)部分)以及其它單元。本領(lǐng)域的技術(shù)人員容易理解,根據(jù)本發(fā)明以及CPU的其它具體要求,該處理和高速緩存部分還可以使用其它配置,而不脫離本發(fā)明。例如,在處理部分和高速緩存部分也可以不使用MKI和保密寄存器組。這時(shí),可以依靠保密部分的隔離作用來保護(hù)加密的軟件。
本發(fā)明將保密部分(cryptographic unit)和其它保護(hù)單元嵌入到CPU之內(nèi),而不是將與保護(hù)程序執(zhí)行的全部單元集成到協(xié)處理器之中。這樣,就保留了CPU和計(jì)算機(jī)的原有結(jié)構(gòu),并且該原有結(jié)構(gòu)對(duì)于包括操作系統(tǒng)和應(yīng)用的傳統(tǒng)軟件是透明的,傳統(tǒng)軟件不會(huì)察覺到該基于硬件的防篡改特性。使用操作系統(tǒng)來支持這種防篡改特性,如操作系統(tǒng)在對(duì)軟件進(jìn)行存儲(chǔ)時(shí),將加密的部分與未加密的部分分別存儲(chǔ)。這樣就容易實(shí)現(xiàn)將MKI與加密的部分相關(guān)聯(lián)。應(yīng)用就很容易實(shí)現(xiàn)防篡改并同時(shí)保持原有的工作、開發(fā)、實(shí)施以及分發(fā)方式。
如上文所述,傳統(tǒng)的基于軟件的防篡改方法,是對(duì)軟件的敏感數(shù)據(jù)和或代碼進(jìn)行加密,以增加進(jìn)行非法偵聽或截取的難度。而傳統(tǒng)的基于硬件的防篡改方法,是將與防篡改的全部相關(guān)部件都集成到一個(gè)單獨(dú)的協(xié)處理器中,并在其中運(yùn)行受保護(hù)的軟件。
在本發(fā)明之中,將保密部分和其它保護(hù)單元嵌入到CPU之內(nèi),并利用MKI來進(jìn)行管理。圖1展示了根據(jù)本發(fā)明一實(shí)施例的結(jié)構(gòu)。保密部分被設(shè)置在CPU之內(nèi),在CPU數(shù)據(jù)流的最外側(cè)。一般可以設(shè)置在高速緩存和外部數(shù)據(jù)總線之間。
受保護(hù)的軟件部分(數(shù)據(jù)和或代碼),在CPU以外存儲(chǔ)時(shí),總是處于已被加密狀態(tài)。當(dāng)CPU讀到加密后的內(nèi)容時(shí),解密單元將該內(nèi)容解密為CPU能夠識(shí)別的明文。當(dāng)CPU要將內(nèi)容寫回內(nèi)存或存儲(chǔ)裝置的加密部分時(shí),在將該內(nèi)容送出CPU之前,加密單元將該內(nèi)容加密。在本發(fā)明中,保護(hù)內(nèi)容的基本原則包括受保護(hù)的內(nèi)容(數(shù)據(jù)和或代碼)在CPU之外時(shí),總是處于加密狀態(tài);對(duì)于受保護(hù)內(nèi)容的訪問權(quán)限,局限于得到授權(quán)的代碼。
圖1示出了根據(jù)本發(fā)明的一實(shí)施例的加密CPU。該加密CPU具有以下特征。
1.每個(gè)加密CPU內(nèi)都存儲(chǔ)有被分配的一個(gè)或多個(gè)設(shè)備密鑰(DK),用于有條件地授權(quán)訪問受保護(hù)的軟件。
2.軟件受保護(hù)的部分被管理密鑰(MK)加密。一般情況下,MK與DK不同,以便于密鑰的分發(fā)。在應(yīng)用被分發(fā)時(shí),可以隨機(jī)地為每個(gè)應(yīng)用生成MK。
3.如果選定了與DK不同的MK,使用選定的DK加密MK,并將MK與應(yīng)用一起或分別分發(fā)。通常,廣播加密技術(shù),例如媒體密鑰塊(MediaKey Block(MKB))技術(shù),和簡(jiǎn)單PKI(Public Key Infrastructure公開密鑰機(jī)制)技術(shù)可以用于管理密鑰的分發(fā)。
4.CPU的保密部分(cryptographic unit)可以保存用于運(yùn)行全部應(yīng)用的內(nèi)部MK列表。
5.與受保護(hù)的應(yīng)用一起分發(fā)的MK,可以用適當(dāng)?shù)腄K解密出來,內(nèi)部MK列表的可用項(xiàng)目被分配用于存儲(chǔ)應(yīng)用MK。在加載應(yīng)用之前,通??梢杂刹僮飨到y(tǒng)調(diào)用CPU來完成該過程,并且在內(nèi)部MK列表中的MK索引(MKI)被返回給操作系統(tǒng)。
6.該MKI用于創(chuàng)建用于執(zhí)行受保護(hù)應(yīng)用的數(shù)據(jù)結(jié)構(gòu)。通常,操作系統(tǒng)可以使用相應(yīng)的MKI適當(dāng)?shù)貏?chuàng)建頁(yè)面表。
7.上述加密單元和解密單元根據(jù)相關(guān)的MKI訪問受保護(hù)的部分。
8.對(duì)于受保護(hù)內(nèi)容的訪問權(quán)限如讀寫全線,被限制為訪問被授權(quán)的代碼。一個(gè)典型的選擇是限制為僅僅具有相同MKI的來自受保護(hù)部分的代碼可以讀寫受保護(hù)的內(nèi)容。未授權(quán)的代碼只能訪問加密的受保護(hù)內(nèi)容9.一個(gè)特別的保密寄存器組(secret register set)可以用于實(shí)施特定的訪問策略限制寄存器的使用。一個(gè)典型的訪問策略是限制為僅僅具有相同MKI的代碼可以讀寫具有相同MKI的寄存器值;其它的代碼只能讀寫加密后的寄存器值(可以被MKI對(duì)應(yīng)的MK加密)。
10.操作系統(tǒng)在進(jìn)行任務(wù)切換的時(shí)候需要將任務(wù)的當(dāng)前寄存器組的內(nèi)容保存到存儲(chǔ)器,并從存儲(chǔ)器加載待執(zhí)行的任務(wù)的寄存器組。如果是保密寄存器組,存儲(chǔ)器里的保存值都是加密后的值。
以上結(jié)合優(yōu)選法方案對(duì)本發(fā)明進(jìn)行了詳細(xì)的描述,但是可以理解,以上實(shí)施例僅用于說明而非限定本發(fā)明。本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明的所示方案進(jìn)行修改而不脫離本發(fā)明精神。
權(quán)利要求
1.一種用于處理至少一個(gè)已加密軟件的中央處理單元,其中,所述已加密的軟件至少包括一個(gè)已加密軟件部分,該已加密軟件部分已被使用一管理密鑰MK進(jìn)行了加密,該管理密鑰已被一設(shè)備密鑰DK加密為加密后的管理密鑰,所述中央處理單元包括處理和高速緩存部分;保密部分,包括存儲(chǔ)有所述設(shè)備密鑰的設(shè)備密鑰存儲(chǔ)單元;多個(gè)用于存儲(chǔ)管理密鑰的管理密鑰存儲(chǔ)單元,每一管理密鑰存儲(chǔ)單元具有相對(duì)應(yīng)的管理密鑰索引MKI;解密單元,用于使用所述設(shè)備密鑰對(duì)加密后的管理密鑰進(jìn)行解密,以便獲取管理密鑰,將管理密鑰存儲(chǔ)到一管理密鑰存儲(chǔ)單元中,并將與該管理密鑰存儲(chǔ)單元相應(yīng)的管理密鑰索引MKI輸出,所述MKI用于與所述已加密軟件部分相關(guān)聯(lián);其中,所述解密單元還用于根據(jù)所述MKI調(diào)用相應(yīng)的管理密鑰,對(duì)已加密軟件部分進(jìn)行解密,并將解密得到的軟件代碼和/或數(shù)據(jù)直接傳遞給所述處理和高速緩存部分。
2.根據(jù)權(quán)利要求1所述的中央處理單元,其中所述解密單元將解密得到的軟件代碼和/或數(shù)據(jù)連同相應(yīng)的MKI一起直接傳遞給所述處理和高速緩存部分,所述處理和高速緩存部分根據(jù)MKI對(duì)解密得到的軟件代碼和/或數(shù)據(jù)進(jìn)行處理。
3.根據(jù)權(quán)利要求2所述的中央處理單元,其中,所述處理和高速緩存部分進(jìn)一步將處理后的軟件代碼和/或數(shù)據(jù)連同相應(yīng)的MKI傳給保密部分;所述保密部分進(jìn)一步包括一加密單元,用于根據(jù)MKI調(diào)用相應(yīng)的管理密鑰對(duì)所述處理后的軟件代碼和/或數(shù)據(jù)進(jìn)行再次加密,并將再次加密后的軟件代碼和/或數(shù)據(jù)連同MKI輸出。
4.根據(jù)權(quán)利要求1-3所述的中央處理單元,進(jìn)一步配置為用于處理多個(gè)已加密軟件,每個(gè)已加密軟件是用不同的管理密鑰分別加密的,所述不同的管理密鑰已分別用所述設(shè)備密鑰加密為多個(gè)加密后的管理密鑰,所述解密單元,進(jìn)一步用于使用所述設(shè)備密鑰分別對(duì)多個(gè)加密后的管理密鑰進(jìn)行解密,以便獲取多個(gè)管理密鑰,將多個(gè)管理密鑰存儲(chǔ)到多個(gè)管理密鑰存儲(chǔ)單元中,并將與該多個(gè)管理密鑰存儲(chǔ)單元相應(yīng)的多個(gè)管理密鑰索引MKI輸出,所述多個(gè)MKI用于分別與相應(yīng)的所述多個(gè)已加密軟件相關(guān)聯(lián)。
5.根據(jù)權(quán)利要求4所述的中央處理單元,其中所述解密單元根據(jù)預(yù)定的策略為多個(gè)管理密鑰分配多個(gè)管理密鑰存儲(chǔ)單元及MKI,所述處理和高速緩存部分進(jìn)一步根據(jù)預(yù)定的策略對(duì)解密得到的軟件代碼和/或數(shù)據(jù)進(jìn)行處理。
6.根據(jù)權(quán)利要求5所述的中央處理單元,其中,所述預(yù)定的策略包括對(duì)于與一MKI相關(guān)聯(lián)的代碼和/或數(shù)據(jù)只允許具有相同MKI的代碼進(jìn)行讀寫;或者對(duì)于與一MKI相關(guān)聯(lián)的代碼和/或數(shù)據(jù),根據(jù)預(yù)定的策略而允許具有不同MKI的代碼進(jìn)行讀寫。
7.根據(jù)權(quán)利要求5所述的中央處理單元,其中,所述處理和高速緩存部分進(jìn)一步包括保密寄存器組,所述預(yù)定的策略包括對(duì)于保密寄存器組內(nèi)存儲(chǔ)的與一MKI相關(guān)聯(lián)的代碼和/或數(shù)據(jù)只允許具有相同MKI的代碼進(jìn)行讀寫;或者對(duì)于保密寄存器組內(nèi)存儲(chǔ)的與一MKI相關(guān)聯(lián)的代碼和/或數(shù)據(jù),根據(jù)預(yù)定的策略而允許具有不同MKI的代碼進(jìn)行讀寫。
8.一種利用中央處理單元處理至少一個(gè)已被加密的軟件的方法,其中所述中央處理單元包括處理和高速緩存部分以及保密部分,該保密部分包括解密單元、存儲(chǔ)有設(shè)備密鑰的設(shè)備密鑰存儲(chǔ)單元、用于存儲(chǔ)管理密鑰的管理密鑰存儲(chǔ)單元,每一管理密鑰存儲(chǔ)單元具有一相對(duì)應(yīng)的管理密鑰索引MKI,所述已被加密的軟件已被使用一管理密鑰進(jìn)行了加密,該管理密鑰已被所述設(shè)備密鑰加密為加密后的管理密鑰,所述方法包括將與所述已被加密的軟件相應(yīng)的用設(shè)備密鑰加密后的管理密鑰讀取到所述保密部分之中;解密單元使用所述設(shè)備密鑰對(duì)加密后的管理密鑰進(jìn)行解密,以便獲取管理密鑰;將所述管理密鑰存儲(chǔ)到管理密鑰存儲(chǔ)單元中,并獲取該管理密鑰在所述管理密鑰存儲(chǔ)單元中的管理密鑰索引MKI;將該MKI與所述已被加密的軟件相關(guān)聯(lián);根據(jù)所述MKI取出相應(yīng)的管理密鑰,并利用所述管理密鑰在所述解密單元內(nèi)解密所述已被加密的軟件;將解密得到的軟件代碼和/或數(shù)據(jù)直接傳遞給處理和高速緩存部分,并利用所述處理和高速緩存部分處理解密后的軟件。
9.根據(jù)權(quán)利要求8所述的方法,其中所述解密單元將解密得到的軟件代碼和/或數(shù)據(jù)連同相應(yīng)的MKI一起直接傳遞給所述處理和高速緩存部分,所述處理和高速緩存部分根據(jù)MKI對(duì)解密得到的軟件代碼和/或數(shù)據(jù)進(jìn)行處理。
10.根據(jù)權(quán)利要求9所述的方法,其中,所述處理和高速緩存部分進(jìn)一步將處理后的軟件代碼和/或數(shù)據(jù)連同相應(yīng)的MKI傳給保密部分;所述保密部分進(jìn)一步包括一加密單元,該加密單元根據(jù)MKI調(diào)用相應(yīng)的管理密鑰對(duì)所述處理后的軟件代碼和/或數(shù)據(jù)進(jìn)行再次加密,并將再次加密后的軟件代碼和/或數(shù)據(jù)連同MKI輸出。
11.根據(jù)權(quán)利要求8-10所述的方法,進(jìn)一步用于處理多個(gè)已加密軟件,每個(gè)已加密軟件是用不同的管理密鑰分別加密的,所述不同的管理密鑰已分別用所述設(shè)備密鑰加密為多個(gè)加密后的管理密鑰,所述方法進(jìn)一步包括所述設(shè)備密鑰使用所述解密單元對(duì)多個(gè)加密后的管理密鑰進(jìn)行解密,以便獲取多個(gè)管理密鑰,將多個(gè)管理密鑰存儲(chǔ)到多個(gè)管理密鑰存儲(chǔ)單元中,并將與該多個(gè)管理密鑰存儲(chǔ)單元相應(yīng)的多個(gè)管理密鑰索引MKI輸出,所述多個(gè)MKI用于與相應(yīng)的所述多個(gè)已加密軟件相關(guān)聯(lián)。
12.根據(jù)權(quán)利要求11所述的方法,其中所述解密單元根據(jù)預(yù)定的策略為多個(gè)管理密鑰分配多個(gè)管理密鑰存儲(chǔ)單元及MKI,所述處理和高速緩存部分進(jìn)一步根據(jù)預(yù)定的策略對(duì)解密得到的軟件代碼和/或數(shù)據(jù)進(jìn)行處理。
13.根據(jù)權(quán)利要求12所述的方法,其中,所述預(yù)定的策略包括對(duì)于與一MKI相關(guān)聯(lián)的代碼和/或數(shù)據(jù)只允許具有相同MKI的代碼進(jìn)行讀寫;或者對(duì)于與一MKI相關(guān)聯(lián)的代碼和/或數(shù)據(jù),根據(jù)預(yù)定的策略而允許具有不同MKI的代碼進(jìn)行讀寫。
14.根據(jù)權(quán)利要求12所述的方法,其中,所述處理和高速緩存部分進(jìn)一步包括保密寄存器組,所述預(yù)定的策略包括對(duì)于保密寄存器組內(nèi)存儲(chǔ)的與一MKI相關(guān)聯(lián)的代碼和/或數(shù)據(jù)只允許具有相同MKI的代碼進(jìn)行讀寫;或者對(duì)于保密寄存器組內(nèi)存儲(chǔ)的與一MKI相關(guān)聯(lián)的代碼和/或數(shù)據(jù),根據(jù)預(yù)定的策略而允許具有不同MKI的代碼進(jìn)行讀寫。
全文摘要
本發(fā)明提供了一種用于處理至少一個(gè)已加密軟件的中央處理單元,包括處理和高速緩存部分;保密部分,包括存儲(chǔ)有所述設(shè)備密鑰的設(shè)備密鑰存儲(chǔ)單元;多個(gè)用于存儲(chǔ)管理密鑰的管理密鑰存儲(chǔ)單元,每一管理密鑰存儲(chǔ)單元具有相對(duì)應(yīng)的管理密鑰索引;解密單元,用于使用所述設(shè)備密鑰對(duì)加密后的管理密鑰進(jìn)行解密,以便獲取管理密鑰,將管理密鑰存儲(chǔ)到一管理密鑰存儲(chǔ)單元中,并將與該管理密鑰存儲(chǔ)單元相應(yīng)的管理密鑰索引輸出,所述用于與所述已加密軟件部分相關(guān)聯(lián);其中,所述解密單元還用于根據(jù)所述MKI調(diào)用相應(yīng)的管理密鑰,對(duì)已加密軟件部分進(jìn)行解密,并將解密得到的軟件代碼和/或數(shù)據(jù)直接傳遞給所述處理和高速緩存部分。
文檔編號(hào)G06F1/00GK1904793SQ20051008731
公開日2007年1月31日 申請(qǐng)日期2005年7月28日 優(yōu)先權(quán)日2005年7月28日
發(fā)明者葉航軍, 周濤, 謝偉凱, 林國(guó)輝, 戈弋 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司