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