專利名稱:安全運(yùn)行特許軟件的方法和計(jì)算裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及安全計(jì)算裝置,所述安全計(jì)算裝置利用硬件機(jī)構(gòu)和先進(jìn)加密技術(shù)保護(hù)其秘密與完整性。
背景技術(shù):
在很多情況下,保護(hù)計(jì)算裝置的完整性不受物理篡改是很重要的。例如,如果攻擊者能夠?qū)ι餃y(cè)定保密裝置進(jìn)行篡改并破壞其功能,則生物測(cè)定保密裝置就無(wú)法提供足夠的保密作用。同樣,例如,如果攻擊者能夠破壞機(jī)頂盒功能,則有線電視公司的機(jī)頂盒也將不能提供足夠的保密作用,并使攻擊者可以不花錢就看到付費(fèi)選看電影。
美國(guó)聯(lián)邦政府頒發(fā)了與“安全計(jì)算”有關(guān)的標(biāo)準(zhǔn)。美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)學(xué)會(huì)頒發(fā)的FIPS PUB 140-1號(hào)美國(guó)聯(lián)邦信息處理標(biāo)準(zhǔn)出版物,對(duì)“加密模塊的安全要求”作出了定義。第4安全級(jí)提供的是最高級(jí)別的安全,并包括在加密模塊周圍的防護(hù)“外罩”,可以保護(hù)該外罩不被侵入。如果攻擊者企圖侵入該安全外罩,這種企圖就會(huì)被探測(cè)到,并且所有關(guān)鍵的安全參數(shù)即被零化。正如FIPS PUB 140-1出版物所述“安全級(jí)為4級(jí)的裝置對(duì)于在物理上未受保護(hù)的環(huán)境下進(jìn)行操作、入侵者有可能損壞裝置時(shí)特別有用”。
因此,所需要的是能夠利用硬件機(jī)構(gòu)和先進(jìn)加密技術(shù)保護(hù)其秘密與完整性的安全計(jì)算裝置。
發(fā)明內(nèi)容
現(xiàn)有技術(shù)的上述和其它缺點(diǎn)與不足被安全計(jì)算裝置所克服或減輕,所述安全計(jì)算裝置可以保護(hù)其秘密及其自身的完整性,并能運(yùn)行所述安全計(jì)算裝置所有者進(jìn)行了數(shù)字簽名的任何軟件。
用于安全地執(zhí)行特許碼的計(jì)算裝置包括用來(lái)存儲(chǔ)含有原始數(shù)字簽名的特許碼的受保護(hù)存儲(chǔ)器,以及與受保護(hù)存儲(chǔ)器進(jìn)行信號(hào)通信的處理器,該處理器依據(jù)公開(kāi)密鑰來(lái)檢驗(yàn)特許碼內(nèi)所包含的數(shù)字簽名是否是原始的,從而為執(zhí)行來(lái)自受保護(hù)存儲(chǔ)器的所述代碼做準(zhǔn)備,而且,如果原始數(shù)字簽名通過(guò)檢驗(yàn),就轉(zhuǎn)移到受保護(hù)存儲(chǔ)器內(nèi)的特許碼的復(fù)制件,以開(kāi)始執(zhí)行。
本發(fā)明上述和其它方面、特征和優(yōu)點(diǎn)將通過(guò)以下對(duì)實(shí)施例的說(shuō)明而變得顯而易見(jiàn),這些說(shuō)明將參照附圖進(jìn)行。
參照以下示例圖,本發(fā)明將得到更好的理解,其中圖1是一幅流程圖,說(shuō)明依據(jù)本發(fā)明原理的安全計(jì)算裝置的引導(dǎo)過(guò)程;圖2是一幅依據(jù)本發(fā)明原理的安全計(jì)算裝置的示意圖;圖3是一幅示意圖,說(shuō)明依據(jù)本發(fā)明原理的安全計(jì)算裝置的加密、解密以及保持?jǐn)?shù)據(jù)完整性的過(guò)程;圖4是一幅示意圖,說(shuō)明依據(jù)本發(fā)明原理的安全計(jì)算裝置的完整性樹(shù)的數(shù)據(jù)圖;圖5是一幅流程圖,說(shuō)明依據(jù)本發(fā)明原理的安全計(jì)算裝置的存儲(chǔ)器寫(xiě)過(guò)程;圖6是一幅流程圖,說(shuō)明依據(jù)本發(fā)明原理的安全計(jì)算裝置的存儲(chǔ)器讀過(guò)程;圖7是一幅流程圖,說(shuō)明依據(jù)本發(fā)明原理的安全計(jì)算裝置供選擇實(shí)施例的修改的引導(dǎo)過(guò)程。
具體實(shí)施例方式
提供了一種可以保護(hù)秘密及其自身完整性的安全計(jì)算裝置。所述安全計(jì)算裝置還可以運(yùn)行由其所有者進(jìn)行了數(shù)字簽名的任何兼容軟件。如此處所定義,經(jīng)數(shù)字簽名的代碼包括帶有數(shù)字簽名的、含有散列(例如,本技術(shù)領(lǐng)域所公知的安全雜湊算法,即“SHA-1”)的代碼。可以運(yùn)行由經(jīng)授權(quán)方數(shù)字簽名的軟件并在執(zhí)行過(guò)程中保護(hù)該軟件完整性的安全計(jì)算裝置,將不能運(yùn)行任何未由經(jīng)授權(quán)方數(shù)字簽名的軟件。
此處所描述的安全計(jì)算裝置能夠利用硬件機(jī)構(gòu)和先進(jìn)加密技術(shù)保護(hù)其秘密與完整性。安全計(jì)算裝置可以運(yùn)行其所有者所選擇的任何軟件,而且其所有者可以在任何時(shí)候更新安全計(jì)算裝置上的軟件。安全計(jì)算裝置在軟件的整個(gè)“壽命期”保護(hù)軟件的完整性。軟件從“裝運(yùn)”到在整個(gè)執(zhí)行期間、直到軟件不再需要的全過(guò)程都受到保護(hù)。這樣,攻擊者就無(wú)法破壞安全計(jì)算裝置的功能。
安全計(jì)算裝置的所有者不一定是該裝置的“用戶”。例如,機(jī)頂盒的所有者可能是有線電視公司,而機(jī)頂盒的用戶則可能是潛在攻擊者。在此情況下,例如,安全計(jì)算裝置可以防止攻擊者通過(guò)修改該機(jī)頂盒的功能做到不花錢就能觀看所有付費(fèi)選看電影。
在應(yīng)用于個(gè)人數(shù)字助理(“PDA)”的情況下,安全計(jì)算裝置可以防止獲得PDA物理控制的攻擊者訪問(wèn)存儲(chǔ)在PDA內(nèi)的機(jī)密信息。安全計(jì)算裝置還可以防止攻擊者通過(guò)修改其功能將“特洛伊木馬”程序裝入其中,從而利用該程序記錄密碼和其它機(jī)密信息并將這些密碼和信息郵寄給攻擊者。
此處所描述的安全計(jì)算裝置利用硬件機(jī)構(gòu)和先進(jìn)加密技術(shù)保護(hù)其秘密與完整性。該安全計(jì)算裝置的實(shí)現(xiàn)包括該裝置內(nèi)的公開(kāi)密鑰,該公開(kāi)密鑰用于檢查數(shù)字代碼式簽名。
如圖1所示,用于說(shuō)明依據(jù)本發(fā)明原理的安全計(jì)算裝置的引導(dǎo)過(guò)程的流程圖一般用參考號(hào)100表示。在引導(dǎo)期間,安全計(jì)算裝置內(nèi)的只讀存儲(chǔ)器從標(biāo)準(zhǔn)引導(dǎo)地址讀出引導(dǎo)碼,在步驟101將該引導(dǎo)碼復(fù)制到“受保護(hù)存儲(chǔ)器”,在步驟102檢驗(yàn)引導(dǎo)碼上的數(shù)字簽名,在步驟103檢查該數(shù)字簽名是否有效,而且,如果有效,即在步驟104轉(zhuǎn)移到受保護(hù)存儲(chǔ)器內(nèi)的代碼的復(fù)制件。另一方面,如果在步驟103發(fā)現(xiàn)數(shù)字簽名無(wú)效,則在步驟105發(fā)出出錯(cuò)信號(hào)。
此處,受保護(hù)存儲(chǔ)器可以是計(jì)算裝置內(nèi)部的存儲(chǔ)器,企圖破壞計(jì)算裝置完整性的攻擊者無(wú)法訪問(wèn)該存儲(chǔ)器。作為選擇,如圖2所示,受保護(hù)存儲(chǔ)器可以是計(jì)算裝置外部的存儲(chǔ)器,以線內(nèi)加密方式進(jìn)行保護(hù)。
現(xiàn)在看圖2,依據(jù)本發(fā)明原理的安全計(jì)算裝置一般用參考號(hào)200表示。安全計(jì)算裝置200包括與存儲(chǔ)器總線214交換信號(hào)的處理器210,存儲(chǔ)總線214則與存儲(chǔ)器216交換信號(hào)。處理器210包括線內(nèi)加密和完整性硬件212。處理器210使用“明文”數(shù)據(jù),而存儲(chǔ)器216使用“密文”數(shù)據(jù)。在示范性的本實(shí)施例中,存儲(chǔ)器216是計(jì)算裝置外部的存儲(chǔ)器,由硬件212利用線內(nèi)加密方式提供保護(hù)。
在本發(fā)明的一個(gè)實(shí)施例中,使用計(jì)算裝置內(nèi)的對(duì)稱密鑰對(duì)寫(xiě)在芯片之外的信息加密,并在該信息被反向讀入時(shí)對(duì)其進(jìn)行解密。這種線內(nèi)加密方法既保護(hù)了存儲(chǔ)在芯片之外的信息的機(jī)密性,也保護(hù)了該信息的完整性。
公開(kāi)密鑰可以處在片上ROM(on-chip ROM)內(nèi),從而固定用于一項(xiàng)設(shè)計(jì)的所有復(fù)制品,或者處在熔絲內(nèi),該熔絲的編程在晶圓處理階段進(jìn)行(例如激光刻線型),或在系統(tǒng)裝配時(shí)進(jìn)行(例如系統(tǒng)內(nèi)可編程型)。后一種方式可以使芯片制造廠家在沒(méi)有用戶專用的公開(kāi)密鑰的情況下制造并封裝零件,但是這種方式在一些芯片技術(shù)中已經(jīng)不使用了。
解決該問(wèn)題的一種辦法是,包含少量片上激光刻線型熔絲,以識(shí)別特定芯片的“所有者編號(hào)”。如果芯片還包括制造廠家的公開(kāi)密鑰,則制造廠家的公開(kāi)密鑰可用來(lái)驗(yàn)證提供特定所有者編號(hào)的證書(shū)的有效性。
后面將要討論的圖7描述了可以在這種情況下工作的引導(dǎo)過(guò)程。
完整性保護(hù)方案保護(hù)數(shù)據(jù)不被修改和不被重放和再定位。數(shù)據(jù)塊的重放,系指用早些時(shí)候在該數(shù)據(jù)塊地址有效的值取代該數(shù)據(jù)塊。數(shù)據(jù)塊的“再定位”,系指用在不同地址上都有效的數(shù)據(jù)塊取代該數(shù)據(jù)塊。加密/完整性保護(hù)方案可以使用加密算法,例如對(duì)于時(shí)間和位置敏感的數(shù)據(jù)加密標(biāo)準(zhǔn)(“DES”)或先進(jìn)加密標(biāo)準(zhǔn)(“AES”),以保護(hù)數(shù)據(jù)不被重放或再定位。
明文數(shù)據(jù)塊的加密是明文數(shù)據(jù)、密鑰和“白化”值的函數(shù)。白化值是白化密鑰、數(shù)據(jù)塊“地址”和計(jì)數(shù)器,即“版本號(hào)”的函數(shù),數(shù)據(jù)塊每寫(xiě)一次,“版本號(hào)”就提高一個(gè)增量。在白化值中使用數(shù)據(jù)塊地址可以對(duì)付再定位,而使用版本號(hào)則可對(duì)付重放。
現(xiàn)在看圖3,一般用參考號(hào)300表示安全計(jì)算裝置數(shù)據(jù)流的加密、解密和數(shù)據(jù)的完整性。在數(shù)據(jù)流300的存儲(chǔ)器寫(xiě)部分,明文數(shù)據(jù)一旦被接收,即生成被接收數(shù)據(jù)的完整性值并存儲(chǔ)在功能塊310。被接收明文數(shù)據(jù)也被第一求和塊312接收,第一求和塊312也接收將與明文數(shù)據(jù)相加的白化值。求和塊312的輸出由功能塊314接收并加密,功能塊314也接收密鑰并且,例如,利用AES或DES對(duì)數(shù)據(jù)加密。加密塊314的輸出由第二求和塊316接收,求和塊316也接收將與已加密數(shù)據(jù)相加的白化值。求和塊316的輸出包括將存儲(chǔ)到受保護(hù)存儲(chǔ)器內(nèi)的密文數(shù)據(jù)。
數(shù)據(jù)的地址由功能塊318接收,該功能塊318得到被接收地址的版本號(hào)。功能塊318的輸出由伽羅華域(“GF”)乘法塊320接收。GF乘法塊320也接收白化密鑰,從而能產(chǎn)生白化值。
在數(shù)據(jù)流300的存儲(chǔ)器讀部分,密文數(shù)據(jù)從受保護(hù)存儲(chǔ)器取回并送到第三求和塊322。求和塊322將取回的密文數(shù)據(jù)與白化值相加。解密塊324接收求和塊322的輸出,同時(shí)也接收密鑰,并且利用,例如,AES或DES產(chǎn)生解密輸出。解密塊324的輸出由第四求和塊326接收,該求和塊326將該輸出與白化值相加以產(chǎn)生明文數(shù)據(jù)。第四求和塊326的明文數(shù)據(jù)輸出由功能塊328接收,該功能塊328驗(yàn)證明文數(shù)據(jù)的完整性值的有效性,并產(chǎn)生有效/無(wú)效標(biāo)志。
在這種形式的方案中,如圖3所示,白化值是伽羅華域中版本號(hào)與白化密鑰的乘積。在圖3所示的方案形式中,白化過(guò)程包括數(shù)據(jù)與白化值的“異或”操作,而且在存儲(chǔ)器寫(xiě)的DES或AES加密之前和之后都要對(duì)數(shù)據(jù)進(jìn)行白化處理,在存儲(chǔ)器讀的DES或AES解密之前和之后也都要對(duì)數(shù)據(jù)進(jìn)行白化處理。
只要將數(shù)據(jù)塊寫(xiě)入存儲(chǔ)器,也會(huì)對(duì)完整性值進(jìn)行計(jì)算。完整性值可以是數(shù)據(jù)塊內(nèi)的所有明文之和(例如“異”)。由于如果要對(duì)數(shù)據(jù)塊進(jìn)行保護(hù),則數(shù)據(jù)塊的整體性值也需要保護(hù),而且由于版本號(hào)需要保持和保護(hù),所以特定數(shù)據(jù)塊的<整體性值,版本號(hào)>對(duì)與其它類似數(shù)據(jù)塊對(duì)(例如,臨近數(shù)據(jù)塊對(duì))組合,而且對(duì)組被寫(xiě)入另一個(gè)數(shù)據(jù)塊,反過(guò)來(lái),“元數(shù)據(jù)”塊也必須受保護(hù)。
如圖4所示,安全計(jì)算裝置的完整性樹(shù)一般用參考號(hào)400表示。范例性完整性樹(shù)400包括數(shù)據(jù)塊D0、D1、D2、D3、D4和D5。該完整性樹(shù)還包括元數(shù)據(jù)塊MD0、MD1、MD2、MD3和MD4。例如,元數(shù)據(jù)塊MD0包括全部D0、D1、D2、D3、D4和D5數(shù)據(jù)塊之和及版本。此外,該范例性完整性樹(shù)還包括較高層次的元數(shù)據(jù)塊412,其中之一包括,例如,全部MD0、MD1和MD2元數(shù)據(jù)塊之和及版本。樹(shù)根410可直接包括所有較高層次的元數(shù)據(jù)塊412之和及版本,甚至在其它實(shí)施例中還可以包括更高層次的元數(shù)據(jù)塊。
這樣,在這種形式的方案中,元數(shù)據(jù)塊的<整體性值,版本號(hào)>對(duì)就和其它臨近元數(shù)據(jù)塊的<整體性值,版本號(hào)>對(duì)組合,并且被寫(xiě)入更高層次的元數(shù)據(jù)塊,該元數(shù)據(jù)塊反過(guò)來(lái)也被保護(hù)。包含來(lái)自完整性樹(shù)及樹(shù)根的較高層次元數(shù)據(jù)塊的元數(shù)據(jù)塊對(duì)整個(gè)受保護(hù)存儲(chǔ)器的完整性提供保護(hù)。雖然對(duì)完整性樹(shù)的一個(gè)范例性設(shè)計(jì)實(shí)施例進(jìn)行了說(shuō)明,但也可以采用其它設(shè)計(jì)。例如,同時(shí)在審理中的名為“隨機(jī)存取存儲(chǔ)器的可并行化驗(yàn)證樹(shù)”(代理公開(kāi)號(hào)為No.YOR820020483)的專利申請(qǐng)中所描述的完整性樹(shù)就可以取代此處所描述的完整性樹(shù)而使用。當(dāng)然,也可采用將被相關(guān)領(lǐng)域內(nèi)的專業(yè)人員所認(rèn)可的其它完整性樹(shù)的設(shè)計(jì)。
完整性樹(shù)的樹(shù)根,以及加密和白化密鑰都存儲(chǔ)在安全計(jì)算裝置內(nèi)。此外,元數(shù)據(jù)完整性樹(shù)的內(nèi)容也在安全計(jì)算裝置內(nèi)進(jìn)行更新和檢驗(yàn)。這意味著攻擊者無(wú)法看到受保護(hù)存儲(chǔ)器的內(nèi)容。這也意味著安全計(jì)算裝置可以探測(cè)到攻擊者可能對(duì)受保護(hù)存儲(chǔ)器內(nèi)容所做的任何修改,包括任何“重放”或“再定位”攻擊。
完整性樹(shù)實(shí)施例400允許進(jìn)行片外數(shù)據(jù)存儲(chǔ)。來(lái)自完整性樹(shù)和該樹(shù)僅僅最高層次樹(shù)根的完整性值和版本號(hào)被存儲(chǔ)在芯片內(nèi)并受到物理保護(hù)。然而,如果在樹(shù)根以下有足夠的片上存儲(chǔ)空間可以用來(lái)存儲(chǔ)完整性樹(shù)的較低層次,則其它實(shí)施例也可應(yīng)用。如果所有完整性和版本信息在芯片內(nèi)不匹配,但是如果有足夠的片上存儲(chǔ)空間來(lái)完整地存儲(chǔ)完整性樹(shù)的這種較低層次,則沒(méi)有必要建立直至單個(gè)最高樹(shù)根的整個(gè)完整性樹(shù)。例如,如果完整性樹(shù)的最低層次匹配于芯片上,則沒(méi)有必要再維持任何更高層次的完整性值。反之,如果完整性樹(shù)的最低層次不能匹配于芯片上,但是比其高出一個(gè)層次的第二層次能匹配于芯片上,則沒(méi)有必要維持比第二完整性層次更的高層次,因?yàn)榈诙哟螌⒃谛酒瑑?nèi)受物理保護(hù)。
現(xiàn)在看圖5,安全計(jì)算裝置的存儲(chǔ)器寫(xiě)過(guò)程一般用參考號(hào)500表示。過(guò)程500在功能塊501接收要寫(xiě)的數(shù)據(jù),功能塊501將數(shù)據(jù)塊寫(xiě)入存儲(chǔ)器并將控制傳遞到功能塊502。功能塊502對(duì)更高層次元數(shù)據(jù)塊內(nèi)的查和及版本進(jìn)行更新并將控制傳遞到判定塊503。判定塊503確定該更高層次元數(shù)據(jù)塊是否完整性樹(shù)的樹(shù)根。如果沒(méi)有探測(cè)到樹(shù)根,控制就傳遞回功能塊501。另一方面,如果樹(shù)根被探測(cè)到,控制就被傳遞到“返回”塊504。
這樣,圖5就說(shuō)明了將數(shù)據(jù)塊寫(xiě)入受保護(hù)存儲(chǔ)器的有關(guān)步驟。數(shù)據(jù)塊在步驟501被寫(xiě)入受保護(hù)存儲(chǔ)器。在步驟502,該數(shù)據(jù)塊的查和及版本號(hào)的更新版本被存入數(shù)據(jù)塊的“元數(shù)據(jù)”塊內(nèi)。正如步驟503所述,如果該元數(shù)據(jù)塊與完整性樹(shù)的樹(shù)根一致,則過(guò)程結(jié)束于步驟504。另一方面,如果元數(shù)據(jù)塊不是完整性樹(shù)的樹(shù)根,則元數(shù)據(jù)塊需要在步驟501寫(xiě)入受保護(hù)存儲(chǔ)器,而且元數(shù)據(jù)塊的查和及版本號(hào)需要在步驟502存入更高層次的元數(shù)據(jù)塊。正如步驟503所述,如果和前面一樣,該較高層次元數(shù)據(jù)塊與完整性樹(shù)的樹(shù)根一致,則過(guò)程結(jié)束于步驟504。否則,該元數(shù)據(jù)塊需要寫(xiě)入受保護(hù)存儲(chǔ)器,而且過(guò)程要繼續(xù)進(jìn)行下去,直至較高層次元數(shù)據(jù)塊與完整性樹(shù)的樹(shù)根一致,此時(shí)過(guò)程結(jié)束于步驟504。在此情況下,所有寫(xiě)入受保護(hù)存儲(chǔ)器的數(shù)據(jù)塊都按照?qǐng)D3所示的加密和完整性方案得到保護(hù)。
現(xiàn)在看圖6,安全計(jì)算裝置的存儲(chǔ)器讀的過(guò)程一般用參考號(hào)600表示。過(guò)程600包括功能塊601,功能塊601讀出存儲(chǔ)器數(shù)據(jù)塊,并將控制傳遞到判定塊602。判定塊602確定該數(shù)據(jù)塊是否有效,如果無(wú)效,則將控制傳遞到功能塊603,以辨別完整性缺陷,另一方面,如果該數(shù)據(jù)塊有效,判定塊602就將控制傳遞到第二判定塊604。第二判定塊604確定該存儲(chǔ)塊是否樹(shù)葉數(shù)據(jù)塊,如果不是樹(shù)葉數(shù)據(jù)塊,就將控制傳遞回功能塊601。另一方面,如果數(shù)據(jù)塊是樹(shù)葉數(shù)據(jù)塊,則判定塊604將控制傳遞到“返回”塊605,從而送回?cái)?shù)據(jù)塊。
這樣,圖6就說(shuō)明了從受保護(hù)存儲(chǔ)器讀出數(shù)據(jù)塊的有關(guān)步驟。在步驟601,處在從完整性樹(shù)的樹(shù)根通往所需數(shù)據(jù)塊路徑上的第一數(shù)據(jù)塊就從受保護(hù)存儲(chǔ)器中讀出。在步驟602,利用來(lái)自完整性樹(shù)樹(shù)根的查和及版本信息檢驗(yàn)了該數(shù)據(jù)塊的有效性。如果完整性檢驗(yàn)未通過(guò),就在步驟603發(fā)出完整性無(wú)效情況的信號(hào)。另一方面,如果該數(shù)據(jù)塊被確定為有效,則在步驟604進(jìn)行檢驗(yàn),以確定該數(shù)據(jù)塊是否所需數(shù)據(jù)塊。如果是所需數(shù)據(jù)塊,數(shù)據(jù)就在步驟605返回用戶。如果不是所需數(shù)據(jù)塊,處在從樹(shù)根通往所需數(shù)據(jù)塊路徑上的下一個(gè)數(shù)據(jù)塊就在步驟601被讀出。像前面一樣,在步驟602上對(duì)該數(shù)據(jù)塊的完整性進(jìn)行檢驗(yàn)。而且,像前面一樣,如果完整性檢驗(yàn)未通過(guò),就在步驟603發(fā)出完整性無(wú)效情況的信號(hào)。像前面一樣,如果該數(shù)據(jù)塊被確定為有效,則在步驟604進(jìn)行檢驗(yàn),以確定該數(shù)據(jù)塊是否所需數(shù)據(jù)塊。如果是所需數(shù)據(jù)塊,數(shù)據(jù)就在步驟605返回用戶。如果不是所需數(shù)據(jù)塊,處在從樹(shù)根通往所需數(shù)據(jù)塊路徑上的下一個(gè)數(shù)據(jù)塊就被讀出,依此類推,這一過(guò)程一直持續(xù)到或者在完整性檢驗(yàn)未通過(guò)的情況下在步驟603發(fā)出完整性無(wú)效情況的信號(hào),或者到達(dá)了所需的數(shù)據(jù)塊而且數(shù)據(jù)在步驟605上返回了用戶。在此情況下,所有從受保護(hù)存儲(chǔ)器中讀出的數(shù)據(jù)塊都被解密并且具有如圖3所示的經(jīng)檢驗(yàn)的完整性。
此外,處在從完整性樹(shù)的樹(shù)根通往所需數(shù)據(jù)塊路徑上的數(shù)據(jù)塊可以通過(guò)高速緩存操作提高性能。利用供選擇實(shí)施例的經(jīng)修改完整性樹(shù),例如,同時(shí)正在審理的名為“隨機(jī)存取存儲(chǔ)器的可并行化驗(yàn)證樹(shù)”(代理公開(kāi)號(hào)為No.YOR820020483)的專利申請(qǐng)所描述的完整性樹(shù),處在從完整性樹(shù)的樹(shù)根通往所需數(shù)據(jù)塊路徑上的數(shù)據(jù)塊的完整性檢驗(yàn)可以并行進(jìn)行,從而進(jìn)一步提高性能。
如圖7所示,供選擇實(shí)施例的經(jīng)修改引導(dǎo)過(guò)程一般用參考號(hào)700表示。過(guò)程700包括功能塊701,該功能塊701將包含所有者公開(kāi)密鑰的證書(shū)讀入受保護(hù)存儲(chǔ)器,并將控制傳遞到功能塊702。功能塊702用駐留在處理器內(nèi)的生產(chǎn)廠家公開(kāi)密鑰驗(yàn)證該證書(shū)的有效性,并將控制傳遞到功能塊703。功能塊703將引導(dǎo)碼讀入受保護(hù)存儲(chǔ)器,并將控制傳遞到功能塊704。功能塊704用所有者的公開(kāi)密鑰檢驗(yàn)引導(dǎo)碼的數(shù)字簽名,并將控制傳遞到判定塊705。判定塊705確定該數(shù)字簽名是否有效,如果有效,就將控制傳遞到枝干塊706。枝干塊706轉(zhuǎn)移到受保護(hù)存儲(chǔ)器內(nèi)代碼的復(fù)制件。另一方面,如果判定塊705確定數(shù)字簽名無(wú)效,即將控制傳遞到功能塊707以發(fā)出出錯(cuò)信號(hào)。
這樣,正如在圖3之后所作的說(shuō)明,圖7中供選擇實(shí)施例的引導(dǎo)過(guò)程700可以使用,例如,少量的片上激光刻線型熔絲來(lái)識(shí)別特定芯片的“所有者編號(hào)”。如果該芯片還包含芯片廠家的公開(kāi)密鑰,則廠家的公開(kāi)密鑰可以用來(lái)驗(yàn)證提供特定所有者編號(hào)的公開(kāi)密鑰的證書(shū)的有效性。
雖然此處已參照附圖對(duì)說(shuō)明性實(shí)施例進(jìn)行了描述,但應(yīng)該認(rèn)識(shí)到,本發(fā)明并不局限于這些具體的實(shí)施例,在不違背本發(fā)明的范圍和精神的前提下,相關(guān)領(lǐng)域的一般技術(shù)人員都可以做出變更和修改。所有這些變更和修改都應(yīng)有意識(shí)地包含在所附權(quán)利要求所規(guī)定的本發(fā)明范圍之內(nèi)。
權(quán)利要求
1.一種用于安全地執(zhí)行特許碼的計(jì)算裝置,所述計(jì)算裝置包括用于存儲(chǔ)特許碼的受保護(hù)存儲(chǔ)器,所述特許碼包含原始數(shù)字簽名;以及與所述受保護(hù)存儲(chǔ)器進(jìn)行信號(hào)通信的處理器,所述處理器通過(guò)依據(jù)公開(kāi)密鑰來(lái)檢驗(yàn)代碼內(nèi)所包含的數(shù)字簽名是否是原始的,從而為執(zhí)行來(lái)自受保護(hù)存儲(chǔ)器的所述代碼做準(zhǔn)備,而且,如果所述原始數(shù)字簽名通過(guò)檢驗(yàn),就轉(zhuǎn)移到所述受保護(hù)存儲(chǔ)器內(nèi)的所述特許碼的復(fù)制件,以開(kāi)始執(zhí)行。
2.根據(jù)權(quán)利要求1的計(jì)算裝置,其中所述受保護(hù)存儲(chǔ)器用密碼加以保護(hù)。
3.根據(jù)權(quán)利要求1的計(jì)算裝置,其中所述受保護(hù)存儲(chǔ)器內(nèi)容的完整性用加密方式得到保護(hù)。
4.根據(jù)權(quán)利要求1的計(jì)算裝置,其中所述受保護(hù)存儲(chǔ)器在物理上得到保護(hù)。
5.根據(jù)權(quán)利要求1的計(jì)算裝置,其中所述公共密鑰存儲(chǔ)在所述受保護(hù)存儲(chǔ)器內(nèi)。
6.根據(jù)權(quán)利要求1的計(jì)算裝置,其中所述特許碼的完整性和所述特許碼的保密性兩者中至少有一個(gè)在運(yùn)行時(shí)受到保護(hù)。
7.根據(jù)權(quán)利要求6的計(jì)算裝置,其中所述特許碼的完整性在運(yùn)行時(shí)用對(duì)稱密鑰加密的方式得到保護(hù)。
8.根據(jù)權(quán)利要求6的計(jì)算裝置,其中所述特許碼的保密性在運(yùn)行時(shí)用對(duì)稱密鑰加密的方式得到保護(hù)。
9.根據(jù)權(quán)利要求1的計(jì)算裝置,其中受保護(hù)存儲(chǔ)器用對(duì)應(yīng)于所有者公開(kāi)密鑰的原始數(shù)字簽名存儲(chǔ)代碼;并且處理器依據(jù)駐留在處理器內(nèi)的廠家公開(kāi)密鑰檢驗(yàn)所有者公開(kāi)密鑰,然后依據(jù)所有者公開(kāi)密鑰檢驗(yàn)原始數(shù)字簽名。
10.根據(jù)權(quán)利要求9的計(jì)算裝置,所述計(jì)算裝置還包括閱讀裝置,用于閱讀包含所有者公開(kāi)密鑰的證書(shū);驗(yàn)證裝置,用于用廠家公開(kāi)密鑰驗(yàn)證證書(shū)的有效性;匹配裝置,用于發(fā)現(xiàn)與處理器內(nèi)的所有者編號(hào)匹配的證書(shū)內(nèi)的所有者公開(kāi)密鑰;以及檢驗(yàn)裝置,用于利用匹配的所有者公開(kāi)密鑰來(lái)檢驗(yàn)特許碼。
11.一種用于確保處理器只執(zhí)行特許碼的方法,所述方法包括將原始數(shù)字簽名應(yīng)用于所有特許碼;將所述經(jīng)過(guò)簽名的特許碼存入受保護(hù)存儲(chǔ)器中;通過(guò)依據(jù)對(duì)應(yīng)于所述原始數(shù)字簽名的公開(kāi)密鑰,對(duì)用來(lái)簽名代碼的數(shù)字簽名進(jìn)行檢驗(yàn),從而為執(zhí)行來(lái)自受保護(hù)存儲(chǔ)器的所述代碼做準(zhǔn)備;以及,如果所述原始數(shù)字簽名通過(guò)檢驗(yàn),就轉(zhuǎn)移到所述受保護(hù)存儲(chǔ)器內(nèi)的所述特許碼的復(fù)制件,以開(kāi)始執(zhí)行。
12.根據(jù)權(quán)利要求11的方法,其中所述受保護(hù)存儲(chǔ)器用密碼加以保護(hù)。
13.根據(jù)權(quán)利要求11的方法,其中所述受保護(hù)存儲(chǔ)器內(nèi)容的完整性用加密方式得到保護(hù)。
14.根據(jù)權(quán)利要求11的方法,其中所述受保護(hù)存儲(chǔ)器在物理上得到保護(hù)。
15.根據(jù)權(quán)利要求11的方法,其中所述公共密鑰存儲(chǔ)在所述受保護(hù)存儲(chǔ)器內(nèi)。
16.根據(jù)權(quán)利要求11的方法,其中所述特許碼的完整性在運(yùn)行時(shí)受到保護(hù)。
17.根據(jù)權(quán)利要求16的方法,其中所述特許碼的完整性用對(duì)稱密鑰加密的方式得到保護(hù)。
18.根據(jù)權(quán)利要求11的方法,其中所述特許碼的保密性在運(yùn)行時(shí)受到保護(hù)。
19.根據(jù)權(quán)利要求18的方法,其中所述特許碼的保密性在運(yùn)行時(shí)用對(duì)稱密鑰加密的方式得到保護(hù)。
20.根據(jù)權(quán)利要求11的方法,還包括用對(duì)應(yīng)于所有者公開(kāi)密鑰的原始數(shù)字簽名在受保護(hù)存儲(chǔ)器中存儲(chǔ)代碼;以及依據(jù)駐留在處理器內(nèi)的廠家公開(kāi)密鑰檢驗(yàn)所有者公開(kāi)密鑰,然后依據(jù)所有者公開(kāi)密鑰檢驗(yàn)原始數(shù)字簽名。
21.根據(jù)權(quán)利要求20的方法,還包括閱讀包含所有者公開(kāi)密鑰的證書(shū);用廠家公開(kāi)密鑰驗(yàn)證證書(shū)的有效性;發(fā)現(xiàn)與處理器內(nèi)的所有者編號(hào)匹配的證書(shū)內(nèi)的所有者公開(kāi)密鑰;以及利用匹配的所有者公開(kāi)密鑰來(lái)檢驗(yàn)特許碼。
22.一種機(jī)器可讀的程序存儲(chǔ)裝置,其中實(shí)際包含可由機(jī)器執(zhí)行以實(shí)現(xiàn)程序步驟的指令程序,用于確保處理器將只執(zhí)行特許碼,所述程序步驟包括將原始數(shù)字簽名應(yīng)用于所有特許碼;將所述經(jīng)過(guò)簽名的特許碼存入受保護(hù)存儲(chǔ)器中;通過(guò)依據(jù)對(duì)應(yīng)于所述原始數(shù)字簽名的公開(kāi)密鑰,對(duì)用來(lái)簽名代碼的數(shù)字簽名進(jìn)行檢驗(yàn),從而為執(zhí)行來(lái)自受保護(hù)存儲(chǔ)器的所述代碼做準(zhǔn)備;以及,如果所述原始數(shù)字簽名通過(guò)檢驗(yàn),就轉(zhuǎn)移到所述受保護(hù)存儲(chǔ)器內(nèi)的所述特許碼的復(fù)制件,以開(kāi)始執(zhí)行。
全文摘要
一種用于安全地執(zhí)行特許碼的計(jì)算裝置,所述計(jì)算裝置包括用于存儲(chǔ)包含原始數(shù)字簽名的特許碼的受保護(hù)存儲(chǔ)器,以及與受保護(hù)存儲(chǔ)器進(jìn)行信號(hào)通信的處理器,所述處理器依據(jù)公開(kāi)密鑰來(lái)檢驗(yàn)特許碼內(nèi)所包含的數(shù)字簽名是否是原始的,從而為執(zhí)行來(lái)自受保護(hù)存儲(chǔ)器的所述代碼做準(zhǔn)備,而且,如果原始數(shù)字簽名通過(guò)檢驗(yàn),就轉(zhuǎn)移到受保護(hù)存儲(chǔ)器內(nèi)的特許碼的復(fù)制件,以開(kāi)始執(zhí)行。
文檔編號(hào)G06F21/00GK1655087SQ20041008243
公開(kāi)日2005年8月17日 申請(qǐng)日期2004年9月21日 優(yōu)先權(quán)日2003年10月1日
發(fā)明者理查德·H·伯伊維, 威廉姆·埃里克·豪爾 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司