專利名稱:無需制造者和用戶知道彼此的加密信息的安全處理器系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及具有處理器的系統(tǒng),更具體地,涉及能夠阻止執(zhí)行未經(jīng)授 權(quán)的代碼的 安全處理器系統(tǒng),用于構(gòu)成這樣的系統(tǒng)的安全處理器,和控制 安全處理器系統(tǒng)的方法。
背景技術(shù):
在使用處理器的系統(tǒng)中,可由程序來定義系統(tǒng)的操作,因此與其中所 有組件都是由固定組成的系統(tǒng)相比較而言,該系統(tǒng)的設(shè)計和操作更靈活, 并且可容易地實現(xiàn)各種功能。因為該優(yōu)點,現(xiàn)在處理器被安裝在諸如個人計算機等之類的各種計算機以及諸如PDA (個人數(shù)字助理)、移動電話、 信息家電等之類的各種信息設(shè)備中。圖1A是示出使用傳統(tǒng)處理器的系統(tǒng)的一般配置的示圖。如圖示意性 示出的,系統(tǒng)具有處理器1和外部ROM 6。通常,處理器1具有執(zhí)行命令 處理的CPU核2,用于激活的內(nèi)置ROM 4,用于與內(nèi)部或外部存儲器通 信的存儲器接口 (IF) 5,和將這些模塊相互連接的內(nèi)部總線3,并且處理 器l被形成到單片半導(dǎo)體中。在某些情況下可以不設(shè)置內(nèi)置ROM4,在這 樣的情況下經(jīng)由存儲器接口從外部激活處理器。此外,還可以安裝其他外 圍功能塊。然而,在此不對這些情況進行說明,因為他們與本實施例的關(guān) 系有限。外部ROM 6存儲用于操作處理器1的控制程序7。在此配置中,為了使處理器執(zhí)行期望的操作,將程序存儲在可重寫的 外部存儲介質(zhì)(例如閃存ROM) 6中。然而,這樣的配置很容易受到外部 解密(deciphering)的攻擊,例如,物理去除ROM 6,也就是說,如果內(nèi) 部處理程序高度敏感即對版權(quán)進行管理,則在該系統(tǒng)中將不能確保安全處 理,結(jié)果不能實現(xiàn)這樣的系統(tǒng)。隨著網(wǎng)絡(luò)越來越發(fā)達,信息設(shè)備更可能被連接到一個網(wǎng)絡(luò)或者多個網(wǎng)6絡(luò),郵件和其他數(shù)據(jù)將更頻繁地經(jīng)由網(wǎng)絡(luò)被發(fā)送和接收,并且程序?qū)⒔?jīng)由 網(wǎng)絡(luò)被更頻繁地下載。在這樣的環(huán)境中,經(jīng)由網(wǎng)絡(luò)等被計算機病毒感染的 危險以及未經(jīng)授權(quán)的訪問近來不斷增加,因此,隨著網(wǎng)絡(luò)被更廣泛地使 用,由計算機和移動信息終端執(zhí)行的程序的安全性越來越重要。為了確保包括處理器的魯棒信息設(shè)備的安全性,使用了諸如加密數(shù) 據(jù)、用戶認證等之類的各種系統(tǒng)性措施。然而,近來,除了系統(tǒng)的安全性 之外,為了應(yīng)對計算機病毒和未經(jīng)授權(quán)的訪問的傳播,軟件和處理器的安 全性也越來越重要。例如,將各種包含處理器的設(shè)備(例如移動電話、信息家電等)連接 到網(wǎng)絡(luò)增大了使這些設(shè)備面臨與個人計算機等相同的風(fēng)險的可能性。未經(jīng) 授權(quán)的訪問通過在其終端執(zhí)行惡意的可執(zhí)行代碼而變得有效。因此,必需 阻止在處理器中執(zhí)行惡意代碼和不期望的代碼。然而,目前,在處理器一 側(cè)用于阻止執(zhí)行惡意代碼的對策尚不充足,并且存在這樣的問題沒有提 供安全的軟件執(zhí)行環(huán)境。為了解決這個問題,最近,已經(jīng)研究了安全處理器。安全處理器通過 加密在處理器外部處理的數(shù)據(jù)并提供對內(nèi)部的訪問保護使得不可能直接地 讀取數(shù)據(jù)。例如,數(shù)據(jù)和命令代碼被加密并被存儲在主存儲設(shè)備或次存儲 設(shè)備中,當(dāng)處理器執(zhí)行命令時,加密的命令代碼被解密并被存儲在高速緩 沖存儲器中,然后被執(zhí)行。本申請人已經(jīng)在日本未經(jīng)審查的專利公開(KoKai) No. 2006-18528 (JP2006-18528A)中公開了這樣一種安全處理器。圖1B是示出在JP2006-18528A中公開的安全處理器的基本配置的示 圖。如圖示意性示出的,安全處理器10具有包括執(zhí)行單元和高速緩存的 (CPU)核11,執(zhí)行與外部接口的命令處理、對總線數(shù)據(jù)(程序代碼或數(shù) 據(jù))的加密和解密等的加密處理塊12,執(zhí)行對命令代碼的認證的代碼認證 處理塊13,其中加密并存儲了用于激活處理器的最基礎(chǔ)的程序等的加密的 ROM代碼區(qū)域14,和保存用于解密存儲在代碼區(qū)域14中的程序等的CPU 唯一密鑰的CPU唯一密鑰保存寄存器15。然后,在核ll和加密處理塊12之間,交換命令和數(shù)據(jù)并執(zhí)行對用于加密的密鑰的控制,并且在核11和代碼認證處理塊13之間,提供認證接 口。此外,加密處理塊12和代碼認證處理塊13訪問主存儲器17并且代碼認證處理塊13訪問次存儲器18。在JP2006-18528A中公開的安全處理器中,不能從外部訪問CPU唯一 密鑰保存寄存器15。在確定CPU唯一密鑰之后,安全處理器的用戶(系 統(tǒng)制造者)通知制造者該CPU唯一密鑰,并且制造者在制造該處理器時將 所通知的CPU唯一密鑰設(shè)定到CPU唯一密鑰保存寄存器15中。然后制造 者和用戶在嚴格監(jiān)被下保存CPU唯一密鑰以防止它向外部泄漏。安全處理 器僅根據(jù)被利用CPU唯一密鑰正確加密的程序來操作。因此,即使程序被 不知道CPU唯一密鑰的惡意第三方惡意改變,也不可能導(dǎo)致安全處理器以 未經(jīng)授權(quán)的方式操作。雖然在JP2006-18528A中描述的安全處理器是可行的,然而該系統(tǒng)本 身及其固定和軟件需要根據(jù)傳統(tǒng)系統(tǒng)進行相當(dāng)大地修改。換言之,存在這 樣的問題很難維持與傳統(tǒng)系統(tǒng)的兼容性。當(dāng)提供這種安全處理器時,必 須在一定程度上接受兼容性成本的增大,然而,期望處理器最小化相對傳 統(tǒng)系統(tǒng)的修改量和轉(zhuǎn)換成本。此外,如上所述,必須在制造者和用戶的嚴格監(jiān)視下保存CPU唯一密 鑰,然而,在嚴格監(jiān)視下保存需要額外的費用,并且保存多個用戶的CPU 唯一密鑰的制造者必需為每個芯片保存CPU唯一密鑰,這導(dǎo)致很重的負 擔(dān)。當(dāng)制造者不得不將多個CPU唯一密鑰放在一起管理時,用戶的CPU 唯一密鑰的泄漏將引起許多密鑰的同時泄漏,這導(dǎo)致用戶的系統(tǒng)被病毒感 染。因此,保存CPU唯一密鑰的成本影響了制造成本并提高了安全處理器 的價格。從這一點來看,期望即使安全處理器的制造者和用戶不知道彼此的加 密信息,作為安全處理器也能夠維持一定的安全性級別。這不僅消除了制 造者管理用戶的加密的需要,而且為用戶帶來了如下的優(yōu)點不再會從制 造者泄漏加密。本實施例的第一目的是通過添加最小模塊來實現(xiàn)處理器進行處理的安 全性并且最小化對現(xiàn)有系統(tǒng)的影響。本實施例的第二目的是通過替代裝置來提供影響制造成本的諸如針對 每個芯片的唯一信息之類的項目,并以低成本實現(xiàn)該替代裝置。具體地, 該目的是免除對制造者和用戶知道彼此的加密信息的要求以及對加密信息 的管理。發(fā)明內(nèi)容根據(jù)本實施例的一個方面,提供了一種具有安全處理器和存儲器的安 全處理器系統(tǒng),所述安全處理器具有執(zhí)行指令代碼的核、保存處理器密鑰 的加密密鑰保存部件和利用處理器密鑰加密或解密輸入到核/從核輸出的數(shù) 據(jù)的加密處理部件,所述存儲器存儲輸入到核/從核輸出的數(shù)據(jù)。安全處理 器的加密密鑰保存部件具有固定寄存器和只寫寄存器,該固定寄存器保存不能夠被重寫或讀取的固定(hardwired)加密密鑰,該只寫寄存器存儲待 輸入的命令加密密鑰并保存所存儲的命令加密密鑰以使其不能夠被讀取。 該加密密鑰保存部件在處理器被激活時,輸出在固定寄存器中保存的固定 加密密鑰作為處理器密鑰,并且在命令加密密鑰被寫入只寫寄存器之后, 輸出在只寫寄存器中保存的命令加密密鑰作為處理器密鑰。
根據(jù)結(jié)合附圖進行的以下描述,將更清楚地理解本實施例的特征和優(yōu) 點,其中圖1A是示出傳統(tǒng)處理器的配置的示圖;圖1B是示出傳統(tǒng)安全處理器的配置的示圖;圖2是說明本實施例的安全處理器系統(tǒng)的原理的示圖;圖3是示出實施例中的安全處理器系統(tǒng)的配置的示圖;圖4A和4B是對創(chuàng)建加密ROM進行說明的示圖;圖5A和5B是示出當(dāng)創(chuàng)建加密ROM時的數(shù)據(jù)流的示圖;圖6是示出用于創(chuàng)建加密ROM的過程的流程圖;圖7是示出用于更新加密ROM的過程的流程圖;圖8是示出加密處理部件的配置的示圖;圖9是示出加密判斷部件和加密密鑰保存部件的配置的示圖; 圖IO是示出實施例中的安全處理器中的操作的流程圖;以及 圖11是示出調(diào)試器檢測與經(jīng)授權(quán)的用戶認證之間的關(guān)系的示圖。
具體實施方式
以下參考附圖對實施例進行說明。圖2是說明本實施例的原理的示圖。如圖2所示,本實施例的安全處理器系統(tǒng)包括安全處理器20和加密存儲器30。安全處理器20具有執(zhí)行命 令代碼的核21,保存處理器密鑰的加密密鑰保存部件25,和利用處理器 密鑰加密或解密輸入到核21/從核21輸出的數(shù)據(jù)的加密處理部件24,并且 存儲器.30存儲輸入到核21/從核21輸出的數(shù)據(jù)。除這些部件外,還提供 了用于激活CPU核21的內(nèi)置ROM 23、連接各個塊的內(nèi)部總線22等。如 圖示意性示出的,加密密鑰保存部件25具有固定寄存器26和只寫寄存器 27,該固定寄存器26保存不能被重寫的固定加密密鑰,該只寫寄存器27 存儲待輸入的命令加密密鑰,并且禁止讀取所存儲的命令加密密鑰,并且 加密密鑰保存部件25在處理器被激活時輸出保存在固定寄存器26中的固 定加密密鑰作為處理器密鑰,在命令加密密鑰被寫入只寫寄存器27時輸 出保存在只寫寄存器27中的命令加密密鑰作為處理器密鑰。存儲器30具 有程序數(shù)據(jù)31、用戶獨立確定的命令加密密鑰(加密設(shè)定信息)32和被 利用命令加密密鑰32加密的處理程序33,所述程序數(shù)據(jù)31是被利用固定 加密密鑰加密的密鑰變換程序,該密鑰變換程序被從安全處理器的制造者 提供給用戶以執(zhí)行變換來將輸入的命令加密密鑰寫入只寫寄存器27??蓪?加密存儲器30設(shè)置在安全處理器20的內(nèi)部或外部。根據(jù)本實施例,使用與不能被重寫的固定加密密鑰相同的密鑰加密密 鑰變換程序,并且僅經(jīng)授權(quán)的密鑰變換程序可將處理器密鑰從固定加密密 鑰改變?yōu)橛脩羧我庠O(shè)定的命令加密密鑰。以這種方式,通過利用不能從軟 件訪問的固定加密密鑰進行激活并將其變換為任意的命令加密密鑰,可設(shè) 定針對每個用戶的命令加密密鑰,而無需使用對芯片而言唯一的固定加密 密鑰。在這種配置中,密鑰變換程序、命令加密密鑰和處理程序被存儲在10由用戶設(shè)置的加密存儲器中,因此,安全處理器只需將加密處理部件24和加密密鑰保存部件25添加到傳統(tǒng)配置中(圖1A),也就是說,可通過添加最小模塊來實現(xiàn)安全處理器。根據(jù)本實施例,制造者僅將利用固定密鑰加密的密鑰變換程序提供給 用戶,并且用戶不必知道固定密鑰本身。此外,用戶僅任意地確定命令加 密密鑰并將其存儲在加密存儲器中,并且不必告知制造者命令加密密鑰。 只要固定加密密鑰不泄漏,就能夠確保正確執(zhí)行利用固定加密密鑰加密的 密鑰變換程序和被改變之后利用命令加密密鑰加密的程序二者。此外,關(guān)于加密的信息被加密并被存儲在存儲器(ROM)中,很難單獨地對其進行 分析。因此,制造者能夠使用多個用戶共用的固定密鑰,并且因為制造者不 知道每個用戶的命令加密密鑰所以不需要進行管理,因此對加密密鑰的管 理十分容易。此外,因為制造者不知道命令密鑰,所以不可能從制造者泄 漏命令密鑰,進而用戶可進一步提高安全性。期望命令加密密鑰(加密設(shè)定信息)32是RSA (Rivest Shamir Adleman)。制造者確定用于RSA加密的設(shè)定信息加密私鑰和公鑰并將該 公鑰提供給用戶。利用用于RSA加密的公鑰加密用戶任意確定了的命令加 密密鑰(加密設(shè)定信息)32,并將其存儲在加密存儲器30中。利用設(shè)定 信息私鑰解密RSA加密的命令加密密鑰32,并將經(jīng)解密的命令加密密鑰 設(shè)定在只寫寄存器27中。因為命令加密密鑰是RSA加密的,所以對其解 密十分困難。在這種配置中,用戶不可能知道設(shè)定信息私鑰。期望加密處理部件執(zhí)行使用AES加密的加密和解密。這是因為密鑰變 換程序和控制程序的數(shù)據(jù)量較大并需要高速的處理。與此相反,期望命令加密密鑰是如上所述的RSA加密的。這是因為命令加密密鑰的加密和解密是分開執(zhí)行的,需要高保密性,并且加密目標僅 是命令加密密鑰,因此數(shù)據(jù)量較小。設(shè)定信息私鑰可被存儲在安全處理器中;然而,也可以將其添加到密 鑰變換程序并將數(shù)據(jù)從制造者提供給用戶,所述數(shù)據(jù)是包含利用固定加密 密鑰加密的設(shè)定信息私鑰的密鑰變換程序。因為設(shè)定信息解密密鑰被加密,所以在這種情況下用戶也不可能知道設(shè)定信息解密密鑰。用戶將包括 設(shè)定信息解密密鑰的密鑰變換程序存儲在存儲器中。當(dāng)安全存儲器被激活 時,利用上述的固定加密密鑰解密密鑰變換程序,因此設(shè)定信息解密密鑰被從中提取出來,并且RSA加密的命令加密密鑰被解密。此外,還能夠存儲由用戶生成的電子簽名??蓪⒂糜隍炞C電子簽名的程序設(shè)置在安全處理器20中或加密存儲器30中。在這種配置中,被利用命令加密密鑰加密的程序的創(chuàng)建者(用戶)預(yù)先創(chuàng)建簽名公鑰(驗證)并 將其告知制造者,然后由程序的創(chuàng)建者(用戶)創(chuàng)建的電子簽名被利用簽名公鑰驗證,因此可增加這樣的功能確認被利用命令加密密鑰加密的程 序的有效性。簽名公鑰用于驗證電子簽名,并且即使簽名公鑰泄漏也不可 能使用該密鑰生成經(jīng)授權(quán)的簽名。當(dāng)命令公鑰泄漏時,可能使用未經(jīng)授權(quán) 的密鑰創(chuàng)建未經(jīng)授權(quán)的程序,然而,通過該簽名驗證可阻止未經(jīng)授權(quán)的執(zhí) 行。出于與命令加密密鑰相同的原因,期望用RSA方案執(zhí)行電子簽名。簽名公鑰是用戶獨立設(shè)定的加密密鑰,如果將其存儲在安全處理器 中,則需要為每個用戶制造安全處理器,這是不期望的。因此,期望簽名 公鑰同樣利用密鑰變換程序中的固定密鑰被加密并存儲。制造者告知用戶設(shè)定信息公鑰,用戶告知制造者簽名公鑰,并且制造者向用戶提供這樣的數(shù)據(jù)利用固定加密密鑰加密并包含密鑰變換程序(包括設(shè)定信息私鑰和簽名公鑰)的數(shù)據(jù)。用戶通過將加密數(shù)據(jù)與利用設(shè) 定信息公鑰加密的命令加密密鑰、電子簽名和利用命令加密密鑰加密的控制程序進行組合,來創(chuàng)建ROM數(shù)據(jù)。因為從制造者提供到用戶的數(shù)據(jù)被加密,所以用戶不能夠知道設(shè)定信息私鑰。此外,制造者不能夠知道用戶 確定了的簽名私鑰。在驗證電子簽名的配置中,還能夠提供這樣的功能,即將調(diào)試器(debugger)的連接檢測信號連接到加密處理部件并且當(dāng)檢測到調(diào)試器時 終止命令解密處理。因此,能夠保護程序不受利用如下事實的攻擊,所述 事實即經(jīng)解密用于執(zhí)行的命令存在于CPU核21中并且在這種狀態(tài)下可以 使用調(diào)試器將CPU核21中的信息取出。此外,在對命令加密密鑰進行的提取(解密)處理中,除對命令加密 密鑰進行處理之外,還可包括對經(jīng)授權(quán)的用戶認證代碼進行認證。在這種 配置中,可以增加如下功能,即通過在將經(jīng)授權(quán)的用戶認證代碼添加到命 令加密密鑰(該命令加密密鑰只有利用命令加密密鑰加密的程序的創(chuàng)建者可以設(shè)定)之后,用RSA方案執(zhí)行對公鑰的加密并將經(jīng)授權(quán)的用戶認證代碼存儲在寄存器中,來確定經(jīng)授權(quán)的用戶。此外,還可以提供能夠被調(diào)試器訪問并且能夠存儲待與經(jīng)授權(quán)的用戶 認證代碼進行比較的值的寄存器,并且提供當(dāng)該值與經(jīng)授權(quán)的用戶代碼匹 配時取消解密終止處理的功能。在這種配置中,可以提供一種即使當(dāng)調(diào)試 器僅被連接到利用命令加密密鑰加密的程序的創(chuàng)建者時也可以使用的環(huán)境。上述配置可以是這樣的設(shè)置連接到處理器核21而無需插入加密處理裝置24的(內(nèi)置)ROM 23,其記錄用于確定加密存儲器30的加密狀 態(tài)的程序。在這種配置中,內(nèi)置ROM 23包括加密狀態(tài)確定程序并從而驗 證所安裝的加密存儲器ROM 30是否被使能,并且同時可使得處理器配置 用于加密和非加密兩種目的。此外,期望加密存儲器30是可被重寫的非易失性存儲器,例如閃存 ROM等,并且可將加密存儲器30設(shè)置在安全處理器20的內(nèi)部或外部。在 這種配置中,能夠通過描述外部存儲器的特定區(qū)域中的加密狀態(tài)的標識 符,使用外部數(shù)據(jù)容易地改變激活設(shè)置,因為可確定程序是否是加密程 序。此外,存儲固定加密密鑰的固定寄存器26可存儲例如多個固定加密 密鑰并可具有這樣的配置,其中可從多個密鑰中選擇任意密鑰。在這種配 置中,可利用任意編號選擇多個固定加密密鑰,并且當(dāng)固定加密密鑰泄漏 時能夠通過選擇新的編號來繼續(xù)安全處理器的制造。根據(jù)本實施例,通過利用固定加密密鑰加密的密鑰變換程序,可將安 全處理器的加密密鑰從不能夠被重寫的固定加密密鑰變換為用戶任意確定 的命令加密密鑰,因此,用戶能夠獨立地設(shè)定安全處理器的加密密鑰而無 需告知制造者,并且很容易維護加密密鑰的保密性。此外,可將密鑰變換13程序和命令加密密鑰存儲在外部存儲器中,進而能夠?qū)崿F(xiàn)可被容易地添加 到一般處理器中的配置,同時通過將固定加密密鑰到任意密鑰的變換與加 密處理固定集成到單個塊中,使得要被添加到處理器的模塊被最小化并且 保持了較低的生產(chǎn)成本。此外,如果命令加密密鑰是RSA加密的,則很難從外部知道該命令加 密密鑰,并且命令加密密鑰的保密性的保持被置于更嚴格的監(jiān)視下。此外,利用電子簽名執(zhí)行對程序的認證,并且當(dāng)檢測到任何偽造時阻 止對命令加密密鑰進行設(shè)定,從而可進一步提高包括安全處理器的系統(tǒng)的 安全性和可靠性。圖3是示出根據(jù)第一實施例的安全處理器系統(tǒng)的一般配置的示圖。如 圖示意性示出的,該系統(tǒng)包括安全處理器20和用于加密的外部ROM 34。 類似于傳統(tǒng)示例,其他RAM、 1/0接口等也被連接,然而因為它們不與本 實施例直接相關(guān),所以省略對它們的說明。安全處理器20具有CPU核 21、內(nèi)部總線22、內(nèi)置ROM 23、加密處理部件24、加密密鑰保存部件 25和存儲器IF 28。加密處理部件24利用從加密密鑰保存部件25輸出的 處理器密鑰,對CPU核21和存儲器IF之間的輸入和輸出執(zhí)行加密處理和 解密處理。加密密鑰保存部件25具有不能被重寫或不能從外部訪問的 ROM 26和可被寫入但是不能從外部訪問的可寫ROM 27,在ROM 26中 存儲了固定(HW)加密密鑰,而在可寫ROM 27中在激活之后命令加密 密鑰被寫入。在本實施例中,ROM 26包括存儲多個固定加密密鑰的多個 寄存器,并具有選擇電路,該選擇電路用于根據(jù)HW加密編號選擇多個固 定加密密鑰中的一個并且能夠輸出所選擇的固定加密密鑰;然而,ROM 26也可以僅存儲一個固定加密密鑰。系統(tǒng)被配置使得當(dāng)被激活時,從 ROM 26中選擇的固定加密密鑰被作為處理器密鑰輸出到加密處理部件 24,并在命令加密密鑰被寫入可寫ROM 27之后,命令加密密鑰被作為處 理器密鑰從可寫ROM 27輸出到加密處理部件24。在本實施例中內(nèi)置 ROM 23是必需的組件并且隨后將描述其內(nèi)部細節(jié)。這些組件被集成到單 片半導(dǎo)體中。外部ROM34包括,例如,可重寫的閃存ROM等,并且在內(nèi)部存儲ROM頭部(加密的ROM標識符)41、密鑰變換程序43、 RSA加密數(shù)據(jù) 49和控制程序54。 ROM頭部(加密的ROM標識符)具有頭部數(shù)據(jù)42。 密鑰變換程序43具有AES加密數(shù)據(jù)44。 AES加密數(shù)據(jù)44具有利用固定 加密密鑰進行AES加密的密鑰變換程序45,并且利用固定加密密鑰AES 加密的密鑰變換程序45具有密鑰變換程序主體46、第二 RSA公鑰47和 第一 RSA私鑰48。 RSA加密數(shù)據(jù)49具有第一 RSA加密數(shù)據(jù)50和第二 RSA加密數(shù)據(jù)52,并且第一 RSA加密數(shù)據(jù)50具有加密設(shè)定信息51,第 二 RSA加密數(shù)據(jù)52具有認證相關(guān)信息53。用不同的加密密鑰加密第一 RSA加密數(shù)據(jù)50和第二 RSA加密數(shù)據(jù)52??刂瞥绦?4具有利用命令加 密密鑰進行AES加密的AES加密數(shù)據(jù)55,并且AES加密的控制程序56 被包括在其中。AES加密的控制程序56具有控制程序主體57和其他用戶 數(shù)據(jù)58。在加密處理部件24中,利用從加密密鑰保存部件25輸出的處理器密 鑰,分別對輸出方向上的數(shù)據(jù)進行AES加密處理并對輸入方向上的數(shù)據(jù)進 行AES解密處理。因此,外部ROM中的數(shù)據(jù)被加密。在本實施例中,安 全處理器20的芯片內(nèi)部的固定加密密鑰并非彼此不同,而是被多個芯片 共用,因此可實現(xiàn)制造成本的降低。根據(jù)這種構(gòu)造,密鑰被處理器的用戶 共用,雖然能夠防止被第三方解密,但是用戶之間的秘密信息不能被保 護。因此,在本實施例中,芯片的固定加密密鑰僅用于加密由制造者創(chuàng)建 的密鑰變換程序,并且固定加密密鑰信息不被分配給除制造者外的任何 人。圖4A和4B是說明用于創(chuàng)建要存儲在加密(外部)ROM 34中的數(shù)據(jù) 的過程的示圖,而圖5A和5B是示出數(shù)據(jù)流的示圖。圖4A示出制造者的 工作而圖4B示出用戶的工作。首先,將參考圖4和圖5說明待存儲在外 部ROM 34中的數(shù)據(jù)。安全處理器20的芯片制造者從多個(HW)固定加密密鑰中選擇一個 固定加密密鑰(Dl)并確定每個芯片共用的用于AES加密的固定(HW) 加密密鑰61,并且在嚴格的監(jiān)視下保存固定加密密鑰61以使得它不被泄 漏到外部。此外,制造者準備密鑰變換程序主體46,.該密鑰變換程序主體46將從外部ROM34讀取的命令密鑰存儲在可寫ROM27中。此外,制造 者確定包括第一 RSA私鑰63和第一 RSA公鑰64的設(shè)定信息加密密鑰 62,并且在嚴格的監(jiān)視下保存第一 RSA私鑰63以使得它不被泄漏到外部 并將第一 RSA公鑰64提供到用戶。另一方面,用戶生成包括用于AES加密的命令加密密鑰60的加密設(shè) 定信息51和控制程序53。此外,用戶確定包括第二 RSA私鑰66和第二 RSA公鑰(驗證)67的簽名密鑰65,并且在嚴格監(jiān)視下保存第二 RSA私 鑰66以使得它不被泄漏到外部并將第二 RSA公鑰67提供到制造者。制造者生成CTR模式的計數(shù)器值(D2),其程序大小與所選擇的固 定加密密鑰對應(yīng)。該計數(shù)器值是以ECB模式加密的(D3)并且加密的計 數(shù)器數(shù)據(jù)(D4)被生成。然后,在加密工具68中利用固定加密密鑰61對 將密鑰變換程序主體46、第一 RSA私鑰63和從用戶提供的第一 RSA公 鑰67結(jié)合在一起的數(shù)據(jù)進行AES加密。具體地,通過計算該數(shù)據(jù)和密鑰 變換程序(D5)的數(shù)據(jù)的異或(XOR) (D8)來完成加密處理,從而生 成加密的密鑰變換程序43。針對每個用戶生成密鑰變換程序43。然后, 將基于指定所使用的固定加密密鑰的HW密鑰編號創(chuàng)建的ROM頭部41與 在加密工具68中AES加密的密鑰變換程序43結(jié)合,并作為程序數(shù)據(jù)提供 到用戶。密鑰變換程序43包括AES加密形式的第一 RSA私鑰63和第二 RSA公鑰67。用戶通過在RSA加密部件72中用第一 RSA公鑰64對包括用于AES 加密的命令加密密鑰60的加密設(shè)定信息51進行RSA加密,來創(chuàng)建RSA 加密的加密設(shè)定信息75。此外,通過在簽名生成部件73中利用第二 RSA 私鑰66對數(shù)據(jù)(即經(jīng)散列處理的RSA加密的加密設(shè)定信息75)進行RSA 加密來創(chuàng)建電子簽名76。然后,在AES加密部件74中,通過利用該信息 中所包括的計數(shù)器數(shù)據(jù)和命令加密密鑰進行加密,如D14、 D15和D16, 并且將它們與控制程序的數(shù)據(jù)D17進行XOR (D18)運算,使用命令加密 密鑰60創(chuàng)建了利用命令加密密鑰60 AES加密的控制程序77。使用加密數(shù) 據(jù)創(chuàng)建工具71執(zhí)行上述處理。然后,將如上所創(chuàng)建的RSA加密的加密設(shè) 定信息75,電子簽名76和AES加密的控制程序77與從制造者提供的包括ROM頭部41和密鑰變換程序43的程序數(shù)據(jù)進行組合,并寫入外部 ROM 34。以這種方式,完成外部ROM。圖6是示出在制造者一側(cè)和在用戶一側(cè)用于創(chuàng)建加密ROM 34的過程 的流程圖。假設(shè)已經(jīng)制造了預(yù)先存儲多個固定加密密鑰的安全處理器,并 且也已經(jīng)創(chuàng)建了密鑰變換程序主體46。可通過來自外部的設(shè)定來選擇固定 加密密鑰。在步驟Sll,生成用于每個用戶的參數(shù),該參數(shù)包括設(shè)定信息 加密密鑰對(第一 RSA密鑰對)62和HW密鑰選擇編號。另一方面,在 用戶一側(cè),在步驟S21,創(chuàng)建包括第二 RSA密鑰對65的用于簽名驗證的 參數(shù)。在步驟S12和S22,將用于簽名驗證的第二 RSA公鑰67從用戶一側(cè) 提供到制造者一側(cè),并且制造者得到誶第二 RSA公鑰67。換言之,執(zhí)行 了第二RSA公鑰67的交換。在步驟S13和S23,將用于加密設(shè)定信息的第一 RSA公鑰64從制造 者一側(cè)提供到用戶一側(cè),并且用戶得到該第一 RSA公鑰64。換言之,執(zhí) 行了第一 RSA公鑰64的交換。在制造者一側(cè),在步驟S14,生成加密的二進制數(shù)據(jù),該數(shù)據(jù)是包括 密鑰變換程序46、第一 RSA私鑰63和第二 RSA公鑰67的AES加密數(shù) 據(jù)。該加密的二進制數(shù)據(jù)不能在用戶一側(cè)被解密。另一方面,在步驟S24,用戶一側(cè)創(chuàng)建設(shè)定信息并利用從制造者那得 來的第一 RSA公鑰64對它進行RSA加密,創(chuàng)建控制程序并利用命令加密 密鑰對其加密,并且還生成電子簽名。在步驟S15,制造者將在步驟S14中生成的加密的二進制數(shù)據(jù)提供到 用戶,并且用戶可得到該加密的二進制數(shù)據(jù)。在步驟S25,用戶通過組合所得到的加密的二進制數(shù)據(jù)、在步驟S24 中創(chuàng)建的加密的設(shè)定信息、加密的控制程序以及電子簽名來創(chuàng)建外部 ROM 34。然后,用戶通過組合從制造者提供的安全處理器、如上所創(chuàng)建的外部 ROM 34以及其他組件來制造系統(tǒng)。如上所述,僅將用于簽名驗證的第二 RSA公鑰從用戶提供到制造者,因此,制造者不可能得到用戶獨立確定的命令加密密鑰。此外,僅將用于 加密設(shè)定信息的第一 RSA公鑰和加密的二進制數(shù)據(jù)從制造者提供到用戶,因此,用戶不可能得到制造者獨立確定的固定密鑰和第一RSA私鑰??赡艽嬖谶@樣的情況,其中在如圖6所示創(chuàng)建了用于加密的外部 ROM之后,在用戶一側(cè)出于某一原因必須修改控制程序。圖7是示出用 于更新外部ROM的過程的流程圖。制造者不需要參與到該過程,所有的 更新過程可在用戶 一側(cè)被完成。在步驟S31,用戶創(chuàng)建新的控制程序并用命令加密密鑰對其進行AES 加密,用先前創(chuàng)建的第一RSA公鑰64對其進行RSA加密,并將其與設(shè)定 信息和電子簽名組合,然后在步驟S32,通過將其與先前從制造者提供的 加密的二進制數(shù)據(jù)組合來創(chuàng)建外部ROM。如上所述描述了存儲在用于加密的外部存儲器34中的加密數(shù)據(jù)。因 為外部ROM 34的存儲內(nèi)容由三個部分組成并且每一部分均被加密,所以 能夠構(gòu)建不能被第三方或處理器的用戶解密的結(jié)構(gòu)。雖然將AES系統(tǒng)作為 代表系統(tǒng)描述了處理器密鑰(固定密鑰和加密密鑰)的共用密鑰加密處 理,并將RSA系統(tǒng)作為代表系統(tǒng)描述了用于加密設(shè)定信息和認證簽名的公 鑰加密系統(tǒng),然而也可使用任何等同的系統(tǒng)。用于加密由用戶創(chuàng)建的控制 程序的命令加密密鑰被利用第一 RSA公鑰加密;然而,在RSA加密系統(tǒng) 中,公鑰不同于私鑰(解密密鑰),因此,即使公鑰被泄漏給用戶,用戶 也不可能知道私鑰,并且用戶可單獨加密用于所定義的控制程序的命令加 密密鑰。因此,用戶可執(zhí)行對程序的加密而無需向制造者明確地通知作為 保密信息的命令加密密鑰。接下來,以下將說明處理這樣的加密數(shù)據(jù)的安全處理器20的內(nèi)部配 置。首先,將說明安全處理器20的基本操作。安全處理器20在利用被提 供有片內(nèi)固定加密密鑰的加密處理部件24對利用存儲在芯片的ROM 26 中的固定加密密鑰61加密的密鑰變換程序43進行解密的同時,執(zhí)行該密 鑰變換程序43,并且在密鑰變換程序43中,利用第一 RSA公鑰64加密 的用于控制程序的命令加密密鑰60被提取并被設(shè)定在可寫ROM 27中。 因此,加密處理部件24被設(shè)定使得其利用命令加密密鑰60進行加密和解密。以這種方式,執(zhí)行了密鑰變換,使得由安全處理器20的用戶創(chuàng)建的控制程序54可以被正確地解密。在密鑰變換之后,加密處理部件24解密 加密的控制程序54,因此正確的執(zhí)行被使能。圖8示出加密處理部件24的內(nèi)部配置。加密處理部件24由RSA公鑰 處理部件81和處理器共用密鑰處理部件83組成。RSA公鑰處理部件81 被安裝在公鑰算術(shù)運算單元82上,該公鑰算術(shù)運算單元82用于提高RSA 處理速率,因此在本實施例中它作為附屬組件并不是必需的,然而,考慮 到對現(xiàn)有系統(tǒng)添加該組件很容易,所以設(shè)置了該公鑰算術(shù)運算單元82。處 理器共用密鑰處理部件83包括一些較小的塊總線判斷部件85,用于判 斷來自CPU核21 —側(cè)的接口的命令是否去向其自身(處理器共用密鑰處 理部件83)的模塊;旁路控帝ij部件84,在加密功能停止時被使用;加密 判斷部件86,用于判斷去往其自身的模塊的命令是否是加密的對象;共用 密鑰算術(shù)單元87,用于利用處理器密鑰執(zhí)行AES密鑰加密或解密處理; 加密密鑰保存部件25,用于將密鑰提供到共用密鑰算術(shù)單元87;以及解 密處理的完成確定部件88,用于執(zhí)行加密和解密處理及完成確定。接下來,將說明在加密處理部件24中的數(shù)據(jù)流。當(dāng)從CPU核21讀取 外部ROM 34并執(zhí)行解密處理時,對處理器密鑰信息的設(shè)定被預(yù)先完成。 當(dāng)對加密密鑰保存部件25執(zhí)行如上所述的密鑰變換程序時,該設(shè)定不是 必需的,或者設(shè)定指定從若干密鑰之中選擇哪個密鑰的HW密鑰編號。類 似地,在加密判斷部件86中,關(guān)于目標地址是否被加密的信息被設(shè)定在 加密判斷部件86中。在進行這些設(shè)定之后,用于外部ROM 34的讀取命 令被從CPU核21經(jīng)由內(nèi)部總線22發(fā)送到加密處理部件24。總線判斷部 件85分別向加密判斷部件86和加密密鑰保存部件25發(fā)送其是否是加密目 標的判斷方向和密鑰設(shè)定方向,并且每個塊將加密判斷結(jié)果和密鑰信息發(fā) 送到共用密鑰算術(shù)單元87。共用密鑰算術(shù)單元87基于地址信息執(zhí)行對信 息的解密處理,該地址信息基于來自總線判斷部件85的信息和激活信 號。在解密處理之后,操作結(jié)果被發(fā)送到解密處理的完成確定部件88。與 此并行地,讀取命令被經(jīng)由旁路控制部件84和外部地址/命令總線發(fā)送到 外部ROM34。作為這個命令的結(jié)果,在固定的時間過去之后從外部ROM1934接收到數(shù)據(jù),并且在解密處理的完成確定部件88中,在對外部ROM 34的數(shù)據(jù)的處理與處理器密鑰運算處理彼此同步之后,執(zhí)行操作并且結(jié)果 被經(jīng)由處理總線和內(nèi)部總線返回CPU核21。以CTR模式執(zhí)行在解密處理 的完成確定部件88中的操作。圖9是示出加密判斷部件86和加密密鑰保存部件88的配置的示圖。 如圖示意性示出的,利用處理器密鑰在存儲器解密電路90中解密外部 ROM 34的加密數(shù)據(jù),并將其提供到CPU核21。固定加密密鑰保存部件 100與圖4中的ROM 26對應(yīng)。固定加密密鑰保存部件100存儲多個固定 加密密鑰,并且被配置使得通過保存在HW密鑰編號寄存器99中的HW 密鑰編號選擇多個固定加密密鑰中的一個固定加密密鑰并將其輸出。HW 密鑰編號是經(jīng)由輸入/輸出端子從安全處理器20的外部設(shè)定的,或者通過 對芯片進行后處理而設(shè)定的。命令加密密鑰保存部件101與圖4中的可寫 ROM27對應(yīng)。當(dāng)用經(jīng)授權(quán)的密鑰變換程序43執(zhí)行簽名認證時,包含在加 密設(shè)定信息中的命令加密密鑰被解密并被寫入命令加密密鑰保存部件 101。在命令加密密鑰被寫入命令加密密鑰保存部件101之前,解密密鑰 設(shè)定部件102保存從固定加密密鑰保存部件100輸出的固定的加密值并將 其作為處理器密鑰輸出到存儲器解密電路90,并且在存儲器加密密鑰被寫 入命令加密密鑰保存部件101之后,將命令加密密鑰作為處理器密鑰輸出 到存儲器解密電路90。換言之,當(dāng)命令加密密鑰被設(shè)定時,固定加密密鑰 變?yōu)闊o效。如果固定加密密鑰保存部件100保存一個固定加密密鑰,則不 需要HW密鑰編號寄存器99。加密判斷部件86具有解密激活寄存器91、調(diào)試器檢測電路92、經(jīng)授 權(quán)的用戶認證數(shù)據(jù)保存部件93、認證比較值保存部件94、比較器95、解 擾寄存器96、加密區(qū)域指定寄存器97和解密操作控制部件98,所述比較 器95將經(jīng)授權(quán)的用戶認證數(shù)據(jù)保存部件93的值與認證比較值保存部件94 的值進行比較。隨后將描述這些部件。圖10是示出在本實施例的安全處理器系統(tǒng)中的操作的流程圖。與圖5 中示出的數(shù)據(jù)流一起說明這些操作。在圖10的流程圖中,在左手側(cè)的執(zhí) 行程序的項指示在時間點處執(zhí)行程序的記錄位置。當(dāng)在步驟S41加電時,記錄在內(nèi)置ROM 23中的激活程序被處理。在 步驟S42,在內(nèi)置ROM 23中的程序首先讀取外部ROM 34中的頭部數(shù)據(jù) 42。在頭部數(shù)據(jù)42中,以如在圖5的ROM頭部41中描述的純文本的形 式記錄關(guān)于其是否是加密ROM的信息以及關(guān)于當(dāng)其是加密ROM時每個 數(shù)據(jù)的布置的信息。在步驟S43,當(dāng)讀取的頭部數(shù)據(jù)是純文本的ROM 時,過程前進到步驟S44,并且不執(zhí)行與加密相關(guān)的處理而執(zhí)行正常激 活。當(dāng)其是加密ROM時,過程前進到步驟S44,并且基于該ROM頭部執(zhí) 行對引導(dǎo)(boot)參數(shù)的設(shè)定。具體地,該設(shè)定用于將在ROM頭部41中 指示的加密密鑰編號設(shè)定到HW密鑰編號寄存器99 (圖8),并用于保存 每個地址信息。這對應(yīng)于圖5中對數(shù)據(jù)41進行設(shè)定。隨后,在步驟S45:通過將存儲器解密功能設(shè)定到解密激活寄存器91 來激活存儲器解密功能。這引起這樣的狀態(tài),其中能夠在解密外部ROM 34中的數(shù)據(jù)的同時進行讀取。此后,程序分支到密鑰變換程序43。密鑰 變換程序43是芯片制造者創(chuàng)建的程序并且被利用由上述加密密鑰編號指 定的固定加密密鑰加密。在分支之后,程序起動密鑰變換處理。在密鑰變 換處理中,首先在步驟S46, RSA加密數(shù)據(jù)部分被讀取并被解密。RSA加 密數(shù)據(jù)部分包括加密設(shè)定信息51和認證相關(guān)信息53,加密設(shè)定信息51是 關(guān)于以RSA方案加密的固定設(shè)定的信息,認證相關(guān)信息53是信息51經(jīng)電 子簽名之后的信息。如上所述,用于簽名驗證的驗證密鑰(第二 RSA公 鑰)和用于解密的RSA私鑰(第一 RSA私鑰)被預(yù)先存儲在密鑰變換程 序43中。在步驟S45中讀取的RSA加密數(shù)據(jù)部分的簽名部分首先被驗證。在 步驟S46,驗證結(jié)果被確定,并且如果確定簽名被偽造,則過程前進到步 驟S47,并執(zhí)行錯誤處理即執(zhí)行停止處理。當(dāng)未被惡意改變時,在步驟 S48,外部ROM 34中的RSA加密數(shù)據(jù)部分被讀取,并且在步驟S49,加 密設(shè)定信息51被從RSA編碼的數(shù)據(jù)部分中解密。加密設(shè)定信息51包括經(jīng) 授權(quán)的用戶認證代碼、加密區(qū)域指定、加密計數(shù)器和命令加密密鑰,并且 在基于該信息通過硬件執(zhí)行了逆變換處理D10之后,每個數(shù)據(jù)被反映在硬 件中。當(dāng)創(chuàng)建了 ROM數(shù)據(jù)時,通過圖5中的擾碼處理D10和RSA加密處理Dll生成加密設(shè)定信息51。經(jīng)解密的加密設(shè)定信息51在某個時間被設(shè)定到圖9中的解擾寄存器96。此處理對應(yīng)于圖10中步驟S50中的用戶數(shù) 據(jù)更新處理。在此處理中,命令加密密鑰被設(shè)定到命令加密密鑰保存部件 101中,并且處理器密鑰被改變,然而,如果解密密鑰被立即改變,則不 能夠正確地解密正在加密狀態(tài)中執(zhí)行的程序。在本實施例中,利用圖9中 的解密激活寄存器91被重啟時的定時,更新用于解密處理的密鑰。出于 安全性考慮,流程返回到內(nèi)置ROM 23,并且在步驟S51解密功能被激 活。在當(dāng)前狀態(tài)中,用于用戶控制程序的命令加密密鑰被正確地設(shè)定到硬 件(可寫ROM 27),并得到能夠解密的狀態(tài)。此后,在步驟S52,程序 分支到用戶程序,并且能夠以與執(zhí)行正常程序相同的方式執(zhí)行程序。當(dāng)執(zhí) 行用戶程序時,不能夠正確讀取由制造者創(chuàng)建的密鑰變換程序,從而可維 護每個密鑰的安全性。返回圖9,對其他功能進行說明。當(dāng)圖9中的RSA解密結(jié)果被設(shè)定到 解擾寄存器96時,加密區(qū)域指定和認證比較值94與命令加密密鑰一起被 設(shè)定到寄存器94、 97。加密區(qū)域指定是能夠指定是否對地址的每個固定單 元執(zhí)行加密的功能。認證比較值用于認證用戶是否被授權(quán)。由圖5A和5B 中的每個組合D5二D6、 D5 = D7定義的RSA加密的數(shù)據(jù),并且如上所 述,制造者創(chuàng)建用于對加密設(shè)定信息進行加密的第一RSA密鑰對,并在用 戶創(chuàng)建關(guān)于簽名的第二RSA密鑰對之后,交換與每個公鑰對應(yīng)的數(shù)據(jù)。通 過該密鑰交換,僅當(dāng)經(jīng)授權(quán)的用戶正確創(chuàng)建數(shù)據(jù)時才能夠執(zhí)行。認證比較 值被利用該信息加密,因此,可以說該信息不可能被知道,除非已知在加 密控制程序時所定義的該信息。加密判斷部件86 —直將能夠從軟件寫入 的經(jīng)授權(quán)的用戶認證寄存器93和認證比較值寄存器94的認證比較值進行 比較,并判斷用戶是否被授權(quán)。基于圖11中的表格在處理中使用此信 息。在模型1的情況下,解密處理未被激活并且加密程序不工作,因此不 需要特別地控制。在模型2的情況下,雖然解密處理被激活,但是未檢測 到調(diào)試器,因此無論用戶是否被授權(quán),加密程序都進行工作。這對應(yīng)于正 常操作狀態(tài)。模型3是這樣的情況,即在模型2的情況下檢測到了調(diào)試器 的情況。如果調(diào)試器被連接而未對用于經(jīng)授權(quán)的用戶認證的寄存器設(shè)定適當(dāng)?shù)闹担瑒t解密處理立即被停止,因此不能夠進行正確的執(zhí)行。如在模型 4的情況下,在向寄存器93設(shè)定經(jīng)授權(quán)的用戶代碼之后,經(jīng)授權(quán)的用戶連 接調(diào)試器。如果正確地執(zhí)行了用戶認證,則即使當(dāng)檢測到調(diào)試器時解密處 理也繼續(xù)。因此,能夠使在解密加密命令的同時操作的存儲器中的密鑰解 密很困難。本實施例以能夠被容易地添加到現(xiàn)有系統(tǒng)中的形式提供了一種能夠確 保操作的安全性的安全處理器。本實施例可應(yīng)用于這樣的安全處理器,其中要輸入到CPU核/從CPU核輸出的數(shù)據(jù)被加密。 相關(guān)申請的交叉引用本申請基于并要求2007年2月27日遞交的在先日本專利申請No. 2007-047178的優(yōu)先權(quán),該日本專利申請的全部內(nèi)容通過引用被結(jié)合于 此。
權(quán)利要求
1.一種安全處理器系統(tǒng),包括安全處理器,具有執(zhí)行指令代碼的核、保存處理器密鑰的加密密鑰保存部件和加密處理部件,該加密處理部件利用所述處理器密鑰加密或解密輸入到所述核/從所述核輸出的數(shù)據(jù);以及存儲器,存儲所述輸入到所述核/從所述核輸出的數(shù)據(jù),其中所述安全處理器的所述加密密鑰保存部件包括固定寄存器,保存不能夠被重寫或讀取的固定加密密鑰;以及只寫寄存器,存儲要被輸入的命令加密密鑰并保存所存儲的命令加密密鑰以使其不能夠被讀取,其中所述加密密鑰保存部件在所述處理器被激活時,輸出在所述固定寄存器中保存的所述固定加密密鑰作為所述處理器密鑰,并且在所述命令加密密鑰被寫入所述只寫寄存器之后,輸出在所述只寫寄存器中保存的所述命令加密密鑰作為所述處理器密鑰。
2. 如權(quán)利要求1所述的安全處理器系統(tǒng),其中所述安全處理器被連接到所述核而無需插入所述加密處理部件, 所述安全處理器還包括記錄用于確定存儲在所述存儲器中的數(shù)據(jù)的加密狀 態(tài)的程序的只讀存儲器ROM,并根據(jù)所述加密狀態(tài)的確定結(jié)果改變激活 設(shè)定。
3. 如權(quán)利要求1所述的安全處理器系統(tǒng),其中所述存儲器存儲純文本或被加密的程序以及所述程序的標識信,K、 o
4. 如權(quán)利要求3所述的安全處理器系統(tǒng),其中所述存儲器以被利用所述固定加密密鑰加密的形式存儲密鑰變換 程序,該密鑰變換程序?qū)⑺雒罴用苊荑€存儲在所述只寫寄存器中。
5. 如權(quán)利要求4所述的安全處理器系統(tǒng),其中所述存儲器以被利用設(shè)定信息公鑰加密的形式存儲所述命令加密 密鑰,并且其中所述安全處理器存儲用于解密被利用所述設(shè)定信息公鑰加密的所 述命令加密密鑰的設(shè)定信息密鑰,以使其不能夠被從外部重寫或訪問。
6. 如權(quán)利要求4所述的安全處理器系統(tǒng),其中所述存儲器以被利用設(shè)定信息公鑰加密的形式存儲所述命令加密 密鑰,并且其中所述密鑰變換程序存儲用于解密被利用所述設(shè)定信息公鑰加密的 所述命令加密密鑰的設(shè)定信息私鑰。
7. 如權(quán)利要求6所述的安全處理器系統(tǒng),其中所述存儲器以被利用所述命令加密密鑰加密的形式存儲在所述安 全處理器中執(zhí)行的處理程序。
8. 如權(quán)利要求6所述的安全處理器系統(tǒng),其中所述加密處理部件以AES加密方案執(zhí)行加密和解密,并且 其中以RSA方案執(zhí)行對所述命令加密密鑰的加密。
9. 如權(quán)利要求6所述的安全處理器系統(tǒng), 其中所述存儲器存儲被利用簽名私鑰加密的電子簽名,并且其中所述密鑰變換程序存儲用于驗證所述電子簽名的簽名公鑰。
10. 如權(quán)利要求6所述的安全處理器系統(tǒng), 其中所述存儲器存儲被利用簽名私鑰加密的電子簽名,其中所述密鑰變換程序存儲用于驗證所述電子簽名的簽名公鑰,并且 其中所述安全處理器以被利用所述固定加密密鑰加密的形式存儲如下程序,該程序用于在利用所述簽名公鑰對所述電子簽名的驗證成功時,將所述命令加密密鑰寫入所述只寫寄存器中。
11. 如權(quán)利要求9所述的安全處理器系統(tǒng), 其中以RSA方案創(chuàng)建所述電子簽名。
12. 如權(quán)利要求9所述的安全處理器系統(tǒng),其中所述安全處理器將調(diào)試器的連接檢測信號連接到加密處理部件, 并且當(dāng)檢測到調(diào)試器時停止利用所述處理器密鑰進行的解密處理。
13. 如權(quán)利要求12所述的安全處理器系統(tǒng), 其中所述安全處理器還包括寄存器,存儲可以被調(diào)試器訪問的用戶認證代碼;以及 比較部件,將所逸命令加密密鑰與所述用戶認證代碼進行比較, 其中當(dāng)所述命令加密密鑰與所述用戶認證代碼匹配時,所述安全處理 器在調(diào)試器被連接時取消解密停止處理。
14. 如權(quán)利要求1所述的安全處理器系統(tǒng),其中所述安全處理器的所述加密密鑰保存部件包括多個固定寄存器, 選擇所述多個固定寄存器的一個固定寄存器,并且輸出所述一個固定寄存 器作為所述處理器密鑰。
15. 如權(quán)利要求1所述的安全處理器系統(tǒng),其中所述存儲器被設(shè)置在與所述安全處理器相同的芯片內(nèi)。
16. 如權(quán)利要求1所述的安全處理器系統(tǒng), 其中所述存儲器被設(shè)置在所述安全處理器芯片的外部。
17. 如權(quán)利要求1所述的安全處理器系統(tǒng),其中所述存儲器具有至少在其一部分上不能夠被重寫的非易失性存儲器。
18. —種安全處理器,包括核,執(zhí)行命令代碼;加密密鑰保存部件,保存處理器密鑰;以及加密處理部件,利用所述處理器密鑰加密或解密在所述核和存儲器之 間輸入/輸出的數(shù)據(jù),其中所述加密密鑰保存部件包括固定寄存器,保存不能夠被重寫的固定加密密鑰;以及只寫寄存器,存儲要被輸入的命令加密密鑰并保存所存儲的命令加密密鑰以使其不能夠被讀取,其中所述加密密鑰保存部件在所述處理器被激活時,輸出在所述固定寄存器中保存的所述固定加密密鑰作為所述處理器密鑰,并且在所述命令加密密鑰被寫入所述只寫寄存器之后,輸出在所述只寫寄存器中保存的所述命令加密密鑰作為所述處理器密鑰。
19. 一種控制安全處理器系統(tǒng)的方法,所述安全處理器系統(tǒng)包括安全處理器,該安全處理器具有執(zhí)行指令代碼的核、保存處理器密鑰 的加密密鑰保存部件、利用所述處理器密鑰加密或解密輸入到所述核/從所 述核輸出的數(shù)據(jù)的加密處理部件和存儲設(shè)定信息私鑰的設(shè)定信息私鑰存儲 部件,其中所述加密密鑰保存部件具有固定寄存器和只寫寄存器,所述固 定寄存器保存不能夠從外部被重寫或讀取的固定加密密鑰,所述只寫寄存 器存儲要被輸入的命令加密密鑰并保存所存儲的命令加密密鑰以使其不能 夠被從外部讀取,并且其中所述加密密鑰保存部件在所述處理器被激活 時,輸出在所述固定寄存器中保存的所述固定加密密鑰作為所述處理器密 鑰,并且在所述命令加密密鑰被寫入所述只寫寄存器之后,輸出在所述只 寫寄存器中保存的所述命令加密密鑰作為所述處理器密鑰;以及存儲器,存儲輸入到所述核/從所述核輸出的數(shù)據(jù),所述方法包括以下步驟在激活時在所述加密處理部件中解密被存儲在所述存儲器中并被利用 所述只寫寄存器中的所述固定加密密鑰加密的密鑰變換程序,該密鑰變換 程序存儲所述命令加密密鑰,利用存儲在所述設(shè)定信息私鑰存儲部件中的所述設(shè)定信息私鑰解密存 儲在所述存儲器中并被利用設(shè)定信息公鑰加密的所述命令加密密鑰,并將其存儲在所述只寫寄存器中;并且進行設(shè)定以使得所述加密密鑰保存部件利用所述命令加密密鑰執(zhí)行加 密或解密。
20.如權(quán)利要求19所述的控制安全處理器系統(tǒng)的方法, 其中在所述密鑰變換程序被解密之后,從所述解密的密鑰變換程序中提取用于解密被利用簽名私鑰加密的電子簽名的簽名公鑰;其中利用所述簽名公鑰解密存儲在所述存儲器中的所述電子簽名; 其中通過將經(jīng)解密的簽名信息與包括經(jīng)解密的命令加密密鑰的加密設(shè)定信息進行比較,來執(zhí)行對所述電子簽名的驗證;并且其中當(dāng)對所述電子簽名的驗證成功時,所述命令加密密鑰被寫入所述只寫寄存器。
全文摘要
本發(fā)明公開了一種無需制造者和用戶知道彼此的加密信息的安全處理器系統(tǒng)。該安全處理器系統(tǒng)能夠通過添加最小模塊來提高處理器處理的安全性,而無需制造者和用戶知道彼此的加密信息。該安全處理器系統(tǒng)包括安全處理器和存儲器,安全處理器具有執(zhí)行指令代碼的CPU核、保存處理器密鑰的加密密鑰保存部件和利用處理器密鑰加密或解密輸入到核/從核輸出的數(shù)據(jù)的加密處理部件,并且加密密鑰保存部件包括保存固定加密密鑰的固定寄存器和存儲要被輸入的命令加密密鑰并保存所存儲的命令加密密鑰以使其不能夠被讀取的只寫寄存器,并且加密密鑰保存部件在激活時輸出固定加密密鑰作為處理器密鑰,而在命令加密密鑰被寫入之后輸出命令加密密鑰作為處理器密鑰。
文檔編號G06F21/22GK101256613SQ20081000108
公開日2008年9月3日 申請日期2008年1月18日 優(yōu)先權(quán)日2007年2月27日
發(fā)明者中原誠, 后藤誠司, 向井真也, 小山英則, 田宮大司, 蒲田順, 西方誠, 野口新, 鶴岡千鶴香 申請人:富士通株式會社