微處理器以及相關(guān)的操作方法
【專利摘要】本發(fā)明涉及微處理器以及相關(guān)的操作方法。該微處理器包括:一指令高速緩沖存儲(chǔ)器;一提取單元,根據(jù)一序列多個(gè)提取地址數(shù)值自該指令高速緩沖存儲(chǔ)器提取一加密程序中的具有一序列多個(gè)區(qū)塊的加密指令,其中,提取該序列各個(gè)區(qū)塊時(shí),該提取單元更以該提取單元內(nèi)多個(gè)密鑰數(shù)值以及所提取該區(qū)塊的提取地址數(shù)值的部分內(nèi)容為一函數(shù)產(chǎn)生一解密密鑰,以解密所提取該區(qū)塊的加密指令;以及一密鑰切換指令,在該提取單元自該指令高速緩沖存儲(chǔ)器提取該序列上述多個(gè)區(qū)塊時(shí),指示該微處理器更新該提取單元內(nèi)的上述多個(gè)密鑰數(shù)值。
【專利說明】微處理器以及相關(guān)的操作方法
[0001]本申請(qǐng)為申請(qǐng)日為2011年5月25日、申請(qǐng)?zhí)枮?01110136447.8的發(fā)明名稱為“微處理器以及相關(guān)的操作方法、以及加密、解密方法”的申請(qǐng)案的分案申請(qǐng)。
【技術(shù)領(lǐng)域】
[0002]本發(fā)明涉及微處理器(microprocessor)領(lǐng)域,特別是涉及用于增加微處理器所執(zhí)行的程序的安全性。
【背景技術(shù)】
[0003]很多軟件程序在面臨破壞計(jì)算機(jī)系統(tǒng)安全的攻擊時(shí),通常是脆弱不堪的。例如,黑客可藉由攻擊一運(yùn)行中程序的緩沖溢位區(qū)漏洞(buffer overflow vulnerability)植入不當(dāng)程序碼、并轉(zhuǎn)移主控權(quán)給該不當(dāng)程序碼。如此一來,所植入的程序碼將主導(dǎo)被攻擊的程序。一種防范軟件程序遭攻擊的方案為指令集隨機(jī)化(instruction set randomization) 0概略解釋之,指令集隨機(jī)化技術(shù)會(huì)先將程序加密(encrypt)為某些形式,再于處理器將該程序自存儲(chǔ)器提取后,于該處理器內(nèi)解密(decrypt)該程序。如此一來,黑客便不易植入惡意指令,因?yàn)樗踩氲闹噶畋仨毐贿m當(dāng)?shù)丶用?例如,使用與所攻擊程序相同的加密密鑰或演算法)方會(huì)被正確地執(zhí)行。例如,參閱文件「Counter Code-1njection Attackswith Instruction-Set Randomization, by Gaurav S.Kc,Angelos D.Keromytis, andVassilis Prevelakis,CCS,03,0ctober27-30,2003, Washington, DC, USA, ACMl-58113-738-9/03/0010」,其中敘述 Bochs_x86Pentium 模擬器(emulator)的改良版本。相關(guān)技術(shù)的缺點(diǎn)已被廣泛討論。例如,參閱數(shù)據(jù)「Where’ s the FEEB?The Effectivenessof Instruction Set Randomization, by Ana Nora Sovarel, David Evans, and NathanaelPaul, http://www.cs.Virginia, edu/feeb」。
【發(fā)明內(nèi)容】
[0004]本發(fā)明一種實(shí)施方式揭示一微處理器。該微處理器包括一指令高速緩沖存儲(chǔ)器、一指令解碼單元、以及一提取單元。該提取單元用于:(a)自該指令高速緩沖存儲(chǔ)器提取一區(qū)塊的指令數(shù)據(jù);(b)以一數(shù)據(jù)實(shí)體對(duì)該區(qū)塊執(zhí)行一布林異運(yùn)算,以產(chǎn)生純文字指令數(shù)據(jù);以及(C)將上述純文字指令數(shù)據(jù)提供給該指令解碼單元。在一第一狀況下,該區(qū)塊包括加密指令數(shù)據(jù)、且該數(shù)據(jù)實(shí)體為解密密鑰。在一第二狀況下,該區(qū)塊包括非加密指令數(shù)據(jù)、且該數(shù)據(jù)實(shí)體為多個(gè)位的二進(jìn)位零值。無論該區(qū)塊的指令數(shù)據(jù)為加密或非加密,實(shí)行上述內(nèi)容(a)、(b)以及(C)所需要的時(shí)間在該第一狀況下以及該第二狀況下是相同的。
[0005]本發(fā)明另外一種實(shí)施方式揭示一方法,用以操作具有一指令高速緩沖存儲(chǔ)器的一微處理器。該方法包括:(a)自該指令高速緩沖存儲(chǔ)器提取一區(qū)塊的指令數(shù)據(jù);(b)以一數(shù)據(jù)實(shí)體對(duì)該區(qū)塊進(jìn)行一布林異運(yùn)算,以產(chǎn)生純文字指令數(shù)據(jù);以及(C)供應(yīng)上述純文字指令數(shù)據(jù)給一指令解碼單元。在一第一狀況下,該區(qū)塊包括加密指令數(shù)據(jù)、且該數(shù)據(jù)實(shí)體為解密密鑰。在一第二狀況下,該區(qū)塊包括非加密指令數(shù)據(jù)、且該數(shù)據(jù)實(shí)體為多個(gè)位的二進(jìn)位零值。無論該區(qū)塊的指令數(shù)據(jù)為加密或非加密,實(shí)行上述內(nèi)容(a)、(b)以及(C)所需要的時(shí)間在該第一狀況下以及該第二狀況下是相同的。
[0006]本發(fā)明一種實(shí)施方式提供一微處理器。該微處理器包括一指令高速緩沖存儲(chǔ)器以及一提取單元。該提取單元會(huì)自該指令高速緩沖存儲(chǔ)器一序列多個(gè)提取地址提取一加密程序一序列多個(gè)區(qū)塊的加密指令。在提取該序列各個(gè)區(qū)塊時(shí),提取單元更以多個(gè)密鑰數(shù)值以及所提取該區(qū)塊的提取地址的部份內(nèi)容為一函數(shù),生成解密密鑰。針對(duì)提取出的該序列各個(gè)區(qū)塊,提取單元還采用對(duì)應(yīng)的解密密鑰解密其中加密指令。該微處理器還包括一密鑰切換指令,在該提取單元自該指令高速緩沖存儲(chǔ)器提取該序列上述多個(gè)區(qū)塊時(shí),指示該微處理器更新該提取單元內(nèi)的這些密鑰數(shù)值。
[0007]本發(fā)明另外一種實(shí)施方式揭示一種方法,操作具有一指令高速緩沖存儲(chǔ)器的一微處理器。該方法包括自該指令高速緩沖存儲(chǔ)器提取一程序多個(gè)第一加密指令,且將之以一第一解密密鑰解密為多個(gè)第一非加密指令。該方法還包括將該第一解密密鑰以一第二解密密鑰取代,回應(yīng)這些第一非加密指令中的一密鑰切換指令。該方法還包括自該指令高速緩沖存儲(chǔ)器提取該程序的多個(gè)第二加密指令,且將之以該第二解密密鑰解密為多個(gè)第二非加密指令。
[0008]本發(fā)明另外一種實(shí)施方式揭不一種方法,用于操作一微處理器。該方法包括自一指令高速緩沖存儲(chǔ)器一序列多個(gè)提取地址提取一加密程序一序列多個(gè)區(qū)塊的加密指令。該方法還包括在提取該序列各個(gè)區(qū)塊時(shí),以多個(gè)密鑰數(shù)值以及所提取該區(qū)塊的提取地址的部份內(nèi)容為一函數(shù)生成解密密鑰。該方法還包括針對(duì)該序列內(nèi)各區(qū)塊,使用對(duì)應(yīng)的上述解密密鑰解密其中的加密指令。該方法還包括在提取該序列上述多個(gè)區(qū)塊時(shí),執(zhí)行一密鑰切換指令。執(zhí)行上述密鑰切換指令包括更新用于生成上述解密密鑰的這些密鑰數(shù)值。
[0009]本發(fā)明一種實(shí)施方式揭示一種微處理器。該微處理器包括一提取單元,使用第一解密密鑰數(shù)據(jù)提取并且解密一分支與切換密鑰指令。該微處理器還包括微代碼。上述微代碼在該分支與切換密鑰指令的方向不被采用的狀況下,令該提取單元采用上述第一解密密鑰數(shù)據(jù)提取并且解密該分支與切換密鑰指令之后的接續(xù)指令。該微代碼還在該分支與切換密鑰指令被采用的狀況下,令該提取單元采用不同于上述第一解密密鑰數(shù)據(jù)的第二解密密鑰數(shù)據(jù)提取并且解密該分支與切換密鑰指令的一目標(biāo)指令。
[0010]本發(fā)明另外一種實(shí)施方式揭不一方法,以一微處理器處理一加密程序。該方法包括使用第一解密密鑰數(shù)據(jù)提取并且解密一分支與切換密鑰指令。此方法還包括,在該分支與切換密鑰指令的方向不被采取的狀況下,以上述第一解密密鑰數(shù)據(jù)提取并且解密該分支與切換密鑰指令之后的接續(xù)指令。該方法還包括,在該分支與切換密鑰指令的方向被采取的狀況下,以不同于上述第一解密密鑰數(shù)據(jù)的第二解密密鑰數(shù)據(jù)提取并且解密該分支與切換密鑰指令的一目標(biāo)指令。
[0011]本發(fā)明另外一種實(shí)施方式亦揭示一方法,用于加密一程序,以供用于解密與執(zhí)行加密程序的一微處理器日后執(zhí)行。該方法包括接收一非加密程序的一目的文件,其中包括傳統(tǒng)分支指令,所指示的目標(biāo)地址可于該微處理器執(zhí)行該程序前判定。該方法還包括分析該程序以獲得塊信息。上述塊信息將該程序劃分成一序列多個(gè)塊。各塊包括一序列多個(gè)指令。上述塊信息還包括各塊相關(guān)的加密密鑰數(shù)據(jù)。各塊對(duì)應(yīng)的加密密鑰數(shù)據(jù)不相同。該方法還包括將上述傳統(tǒng)分支指令中目標(biāo)地址與自身坐落不同塊者各自以一分支與切換密鑰指令取代。該方法還包括基于上述塊信息加密該程序。
[0012]本本發(fā)明另外一種實(shí)施方式亦揭示一方法,用于加密一程序,以供用于解密與執(zhí)行加密程序的一微處理器日后執(zhí)行。該方法包括接收一非加密程序的一目的文件,其中包括傳統(tǒng)分支指令,所指示的目標(biāo)地址僅能在該微處理器執(zhí)行該程序時(shí)判定。該方法還包括分析該程序以獲得塊信息。上述塊信息將該程序劃分成一序列多個(gè)塊。各塊包括一序列多個(gè)指令。上述塊信息還包括各塊相關(guān)的加密密鑰數(shù)據(jù)。各塊對(duì)應(yīng)的加密密鑰數(shù)據(jù)不相同。該方法還包括將上述傳統(tǒng)分支指令各自以一分支與切換密鑰指令取代。該方法還包括基于上述塊信息,加密該程序。
[0013]本發(fā)明一種實(shí)施方式揭不一微處理器。該微處理器包括一架構(gòu)寄存器,該架構(gòu)寄存器包括一位。該微處理器負(fù)責(zé)設(shè)定該位。該微處理器還包括一提取單元。該提取單元自一指令高速緩沖存儲(chǔ)器提取加密指令、并在執(zhí)行上述加密指令前將上述加密指令解密,以回應(yīng)該微處理器將該位設(shè)定的操作。若接收到一中斷,該微處理器儲(chǔ)存該位的數(shù)值至一堆迭內(nèi)存、并且隨后將該位清除。在微處理器清除該位后,該提取指令是自該指令高速緩沖存儲(chǔ)器提取非加密指令,并不對(duì)上述非加密指令作解密操作即執(zhí)行之。該微處理器還自該堆迭內(nèi)存將先前儲(chǔ)存的數(shù)值用來修復(fù)該架構(gòu)寄存器的該位,以回應(yīng)自中斷指令返回的操作。若判定該位修復(fù)后的數(shù)值為設(shè)定狀態(tài),該提取單元重新提取并且解密加密指令。
[0014]本發(fā)明另外一種實(shí)施方式揭示一種方法,用于操作具有一指令高速緩沖存儲(chǔ)器以及一架構(gòu)寄存器的一微處理器。該方法包括設(shè)定該架構(gòu)寄存器內(nèi)的一位,并且隨后自該指令高速緩沖存儲(chǔ)器提取加密指令,并且在執(zhí)行上述加密指令前將上述加密指令解密。在面對(duì)一中斷時(shí),該方法還包括儲(chǔ)存該架構(gòu)寄存器該位的數(shù)值,并且隨后清除該位。在清除該位后,該方法還包括自該指令高速緩沖存儲(chǔ)器提取非加密指令,并且不作解密即執(zhí)行上述非加密指令。該方法還包括以先前儲(chǔ)存的數(shù)值修復(fù)該架構(gòu)寄存器該位,以回應(yīng)自中斷指令返回的操作。若判定該位修復(fù)后的數(shù)值為設(shè)定狀態(tài),該方法還包括重新提取并且解密并且執(zhí)行加密指令。
[0015]本發(fā)明另外一種實(shí)施方式揭不一微處理器。該微處理器包括一架構(gòu)寄存器以及一提取單元,該架構(gòu)寄存器包括一位。該微處理器儲(chǔ)存該位的數(shù)值,以回應(yīng)中斷執(zhí)行中程序的一要求。該位標(biāo)示執(zhí)行中程序?yàn)榧用芑蚍羌用?。該微處理器以先前?chǔ)存的數(shù)值修復(fù)該位,并且重新提取被中斷的程序作為執(zhí)行中程序,以回應(yīng)自中斷指令返回的操作。若該位修復(fù)后的數(shù)值為設(shè)定狀態(tài),該微處理器在重新提取中斷的程序之前,先將解密密鑰數(shù)值修復(fù),以使用修復(fù)的解密密鑰數(shù)值解密所提取的指令。若該位修復(fù)后的數(shù)值為清除狀態(tài),該微處理器不作解密密鑰數(shù)值修復(fù)、并且不對(duì)所提取的指令作解密。
[0016]本發(fā)明另外一種實(shí)施方式揭示一種方法,用以操作一微處理器。該方法包括儲(chǔ)存該微處理器一位的數(shù)值,以回應(yīng)中斷執(zhí)行中程序的一要求。該位標(biāo)示執(zhí)行中程序?yàn)榧用芑蚍羌用??;貞?yīng)自中斷指令返回的操作,該方法還包括以先前儲(chǔ)存的數(shù)值修復(fù)該位,并且重新提取中斷的程序作為執(zhí)行中程序。若該位修復(fù)后的數(shù)值為設(shè)定狀態(tài),該方法還包括在重新提取中斷程序之前,將解密密鑰數(shù)值修復(fù),并且以修復(fù)后的解密密鑰數(shù)值解密所提取的指令。若該位修復(fù)后的數(shù)值為清除狀態(tài),該方法不會(huì)作解密密鑰修復(fù)操作,也不對(duì)提取的指令作解密。
[0017]本發(fā)明一種實(shí)施方式揭不一種微處理器。該微處理器包括一儲(chǔ)存兀件,具有多個(gè)位置各自儲(chǔ)存一個(gè)加密程序的解密密鑰數(shù)據(jù)。該微處理器還包括一控制寄存器,以一字段標(biāo)示該儲(chǔ)存元件上述多個(gè)位置中與執(zhí)行中的加密程序相關(guān)者?;貞?yīng)自中斷指令返回的操作,該微處理器自存儲(chǔ)器將先前儲(chǔ)存的該字段的數(shù)值用來修復(fù)該控制寄存器。該微處理器還包括一提取單元,用以提取執(zhí)行中的加密程序的加密指令、并且將之以該字段修復(fù)后的數(shù)值在該儲(chǔ)存元件所標(biāo)示的位置所儲(chǔ)存的解密密鑰數(shù)據(jù)解密。
[0018]本發(fā)明另外一種實(shí)施方式揭示一方法,用以操作具有一控制寄存器以及一儲(chǔ)存元件的一微處理器,該儲(chǔ)存元件內(nèi)多個(gè)位置各自儲(chǔ)存一個(gè)加密程序的解密密鑰數(shù)據(jù)。該方法包括自存儲(chǔ)器將先前儲(chǔ)存的該字段的數(shù)值用來修復(fù)該控制寄存器內(nèi)一字段,以回應(yīng)自中斷指令返回的操作,其中,該字段的數(shù)值標(biāo)示該儲(chǔ)存元件上述多個(gè)位置中與執(zhí)行中加密程序有關(guān)。該方法還包括提取執(zhí)行中的加密程序的加密指令。該方法還包括以該字段修復(fù)后的數(shù)值在該儲(chǔ)存元件所標(biāo)示的位置所儲(chǔ)存的解密密鑰數(shù)據(jù)解密所提取的加密指令。
[0019]本發(fā)明一種實(shí)施方式揭不一種微處理器。該微處理器包括一分支目標(biāo)地址高速緩沖存儲(chǔ)器(BTAC)記錄先前執(zhí)行過的分支與切換密鑰指令的歷史信息。上述歷史信息包括所記錄的分支與切換密鑰指令的目標(biāo)地址以及標(biāo)識(shí)符。上述標(biāo)識(shí)符標(biāo)示與所屬的分支與切換密鑰指令相關(guān)的多個(gè)密鑰數(shù)值。該微處理器還包括一提取單元,耦接該分支目標(biāo)地址高速緩沖存儲(chǔ)器。該提取單元提取先前執(zhí)行過的分支與切換密鑰指令時(shí),會(huì)接收該分支目標(biāo)地址高速緩沖存儲(chǔ)器所作的預(yù)測(cè)、并且自該分支目標(biāo)地址高速緩沖存儲(chǔ)器接收關(guān)于所提取的分支與切換密鑰指令的上述目標(biāo)地址以及標(biāo)識(shí)符。該提取單元還根據(jù)所接收的目標(biāo)地址提取加密指令數(shù)據(jù)、并且根據(jù)所接收的標(biāo)識(shí)符所標(biāo)示的多個(gè)密鑰數(shù)值解密所提取的加密指令數(shù)據(jù),以回應(yīng)接收到的上述預(yù)測(cè)。
[0020]本發(fā)明另外一種實(shí)施方式揭不一種方法,用于操作一微處理器。該方法包括以一分支目標(biāo)地址高速緩沖存儲(chǔ)器(BTAC)記錄先前執(zhí)行過的分支與切換密鑰指令的歷史信息。上述歷史信息包括所記錄的分支與切換密鑰指令的目標(biāo)地址以及標(biāo)識(shí)符。上述標(biāo)識(shí)符標(biāo)示與所屬的分支與切換密鑰指令相關(guān)的多個(gè)密鑰數(shù)值。該方法更于先前執(zhí)行過的分支與切換密鑰指令被提取時(shí)接收該分支目標(biāo)地址高速緩沖存儲(chǔ)器所作的預(yù)測(cè)、并且自該分支目標(biāo)地址高速緩沖存儲(chǔ)器接收關(guān)于所提取的分支與切換密鑰指令的上述目標(biāo)地址以及標(biāo)識(shí)符。該方法更根據(jù)所接收的目標(biāo)地址提取加密指令數(shù)據(jù)、并且根據(jù)所接收的標(biāo)識(shí)符所標(biāo)示的多個(gè)密鑰數(shù)值解密所提取的加密指令數(shù)據(jù),以回應(yīng)接收到的上述預(yù)測(cè)。
【專利附圖】
【附圖說明】
[0021]圖1為一方塊圖,圖解根據(jù)本發(fā)明技術(shù)實(shí)現(xiàn)的一微處理器;
[0022]圖2為一方塊圖,用以詳細(xì)說明圖解圖1的提取單元;
[0023]圖3為一流程圖,根據(jù)本發(fā)明技術(shù),圖解圖2提取單元的操作;
[0024]圖4為一方塊圖,根據(jù)本發(fā)明技術(shù),圖解圖1標(biāo)志寄存器的字段;
[0025]圖5為一方塊圖,根據(jù)本發(fā)明技術(shù),圖解一密鑰載入指令的格式;
[0026]圖6為一方塊圖,根據(jù)本發(fā)明技術(shù),圖解一密鑰切換指令的格式;
[0027]圖7為一流程圖,根據(jù)本發(fā)明技術(shù),圖解圖1微處理器的操作,其中執(zhí)行圖6的密鑰切換指令;
[0028]圖8為一方塊圖,根據(jù)本發(fā)明技術(shù),圖解一加密程序的存儲(chǔ)器用量,該加密程序包括多個(gè)圖6所接露的密鑰切換指令;
[0029]圖9為一方塊圖,根據(jù)本發(fā)明技術(shù),圖解一分支與切換密鑰指令的格式;
[0030]圖10為一流程圖,根據(jù)本發(fā)明技術(shù),圖解圖1微處理器的操作,其中執(zhí)行圖9的分支與切換密鑰指令;
[0031]圖11為一流程圖,根據(jù)本發(fā)明技術(shù),圖解一后處理器的操作,由軟件工具實(shí)現(xiàn),可用于后部處理一程序、且加密之,以由圖1微處理器執(zhí)行;
[0032]圖12為一方塊圖,圖解本發(fā)明另外一種實(shí)施方式的分支與切換密鑰指令的格式;
[0033]圖13為一方塊圖,根據(jù)本發(fā)明技術(shù),圖解塊地址范圍表;
[0034]圖14為一流程圖,根據(jù)本發(fā)明技術(shù),圖解圖1微處理器的操作,其中執(zhí)行圖12的分支與切換密鑰指令;
[0035]圖15為一方塊圖,圖解本發(fā)明另外一種實(shí)施方式的分支與切換密鑰指令的格式;
[0036]圖16為一方塊圖,根據(jù)本發(fā)明技術(shù),圖解塊地址范圍表;
[0037]圖17為一流程圖,根據(jù)本發(fā)明技術(shù),圖解圖1微處理器的操作,其中執(zhí)行圖15的分支與切換密鑰指令;
[0038]圖18為一流程圖,圖解本發(fā)明技術(shù)另外一種實(shí)施方式,其中敘述一后處理器的操作,用于后部處理一程序、且加密之,由圖1微處理器執(zhí)行;
[0039]圖19為一流程圖,根據(jù)本發(fā)明技術(shù),圖解圖1微處理器的操作,用于應(yīng)付一任務(wù)切換,切換于一加密程序以及一純文字程序之間;
[0040]圖20圖解一流程圖,根據(jù)本發(fā)明技術(shù),圖解圖1微處理器所執(zhí)行的系統(tǒng)軟件的操作;
[0041]圖21圖解一方塊圖,根據(jù)本發(fā)明另外一種實(shí)施方式,圖解圖1標(biāo)志寄存器的字段;
[0042]圖22為一流程圖,根據(jù)本發(fā)明技術(shù),圖解采用圖21的標(biāo)志寄存器的圖1微處理器的操作,用于應(yīng)付一任務(wù)切換,切換于多個(gè)加密程序之間;
[0043]圖23為一流程圖,根據(jù)本發(fā)明技術(shù),圖解采用圖21的標(biāo)志寄存器的圖1微處理器的操作,用于應(yīng)付一任務(wù)切換,切換于多個(gè)加密程序之間;
[0044]圖24為一方塊圖,根據(jù)本發(fā)明另外一種實(shí)施方式,圖解圖1密鑰寄存器文檔中的單一個(gè)寄存器;
[0045]圖25為一流程圖,根據(jù)本發(fā)明另外一種實(shí)施方式,圖解采用圖21標(biāo)志寄存器以及圖24密鑰寄存器文檔的圖1微處理器的操作,以應(yīng)付一任務(wù)切換,切換于多個(gè)加密程序之間;
[0046]圖26為一流程圖,根據(jù)本發(fā)明另外一種實(shí)施方式,圖解采用圖21標(biāo)志寄存器以及圖24密鑰寄存器文檔的圖1微處理器的操作,以應(yīng)付一任務(wù)切換,切換于多個(gè)加密程序之間;
[0047]圖27為一方塊圖,圖解圖1微處理器100部分內(nèi)容的其他實(shí)施方式;
[0048]圖28為一方塊圖,根據(jù)本發(fā)明技術(shù),詳細(xì)圖解圖27的分支目標(biāo)地址高速緩沖存儲(chǔ)器(BTAC);
[0049]圖29為一方塊圖,根據(jù)本發(fā)明技術(shù),詳細(xì)圖解圖28的BTAC各單元的內(nèi)容;
[0050]圖30為一流程圖,根據(jù)本發(fā)明技術(shù),圖解圖27微處理器采用圖28BTAC的操作;[0051]圖31為一流程圖,根據(jù)本發(fā)明技術(shù),圖解圖27微處理器采用圖28BTAC的操作;以及
[0052]圖32為一流程圖,根據(jù)本發(fā)明技術(shù),圖解圖27微處理器對(duì)一分支與切換密鑰指令的操作;以及
[0053]附圖符號(hào)說明
【權(quán)利要求】
1.一種微處理器,包括: 一指令高速緩沖存儲(chǔ)器; 一提取單元,根據(jù)一序列多個(gè)提取地址數(shù)值自該指令高速緩沖存儲(chǔ)器提取一加密程序中的具有一序列多個(gè)區(qū)塊的加密指令,其中,提取該序列各個(gè)區(qū)塊時(shí),該提取單元更以該提取單元內(nèi)多個(gè)密鑰數(shù)值以及所提取該區(qū)塊的提取地址數(shù)值的部分內(nèi)容為一函數(shù)產(chǎn)生一解密密鑰,以解密所提取該區(qū)塊的加密指令;以及 一密鑰切換指令,在該提取單元自該指令高速緩沖存儲(chǔ)器提取該序列上述多個(gè)區(qū)塊時(shí),指示該微處理器更新該提取單元內(nèi)的上述多個(gè)密鑰數(shù)值。
2.如權(quán)利要求1所述的微處理器,其中該提取單元先天供應(yīng)一有效解密密鑰長(zhǎng)度用于解密該加密程序,其中,該有效解密密鑰長(zhǎng)度取決于上述多個(gè)密鑰數(shù)值的總量、以及該提取單元產(chǎn)生上述解密密鑰的方式,其中,在該加密程序內(nèi)以該密鑰切換指令更新該提取單元內(nèi)的上述多個(gè)密鑰數(shù)值的操作將擴(kuò)展該有效解密密鑰長(zhǎng)度,使之超越先天供應(yīng)的長(zhǎng)度。
3.如權(quán)利要求2所述的微處理器,其中,被擴(kuò)展的該有效解密密鑰長(zhǎng)度與該加密程序一樣長(zhǎng)。
4.如權(quán)利要求1所述的微處理器,還包括: 一寄存器文檔,儲(chǔ)存多套密鑰數(shù)值; 其中,上述密鑰切換指令標(biāo)示一索引數(shù)值,指示該寄存器文檔中上述多套密鑰數(shù)值的其中一套的位置,該微處理器會(huì)以該密鑰切換指令所標(biāo)示的該索引數(shù)值,且該索引數(shù)值所指示的該套密鑰數(shù)值更新該提取單元內(nèi)用于產(chǎn)生上述解密密鑰的上述多個(gè)密鑰數(shù)值。
5.如權(quán)利要求1所述的微處理器,其中該微處理器包括一管線,該管線包括有: 一執(zhí)行單元位于該提取單元后; 其中,該提取單元提取并且解密該加密程序的一第一以及一第二加密指令,而得到一第一以及一第二非加密指令; 其中,若該密鑰切換指令執(zhí)行,該執(zhí)行單元將用以解密第一加密指令的一第一解密密鑰以一第二解密密鑰取代,其中該第二解密密鑰用以解密第二加密指令。
6.如權(quán)利要求5所述的微處理器,其中該微處理器更將程序順序中新于該密鑰切換指令的第一非加密指令的管道指令清空。
7.如權(quán)利要求1所述的微處理器,還包括: 微代碼,用于實(shí)現(xiàn)該密鑰切換指令。
8.如權(quán)利要求1所述的微處理器,其中,該微處理器還跳躍至程序順序中位于該密鑰切換指令之后的接續(xù)指令,以回應(yīng)該密鑰切換指令的執(zhí)行。
9.一種操作方法,操作具有一指令高速緩沖存儲(chǔ)器的一微處理器,該操作方法包括: 自該指令高速緩沖存儲(chǔ)器提取一程序中多個(gè)第一加密指令,且將之以一第一解密密鑰解密為多個(gè)第一非加密指令; 將該第一解密密鑰以一第二解密密鑰取代,以回應(yīng)上述多個(gè)第一非加密指令中一密鑰切換指令的執(zhí)行;以及 自該指令高速緩沖存儲(chǔ)器提取該程序多個(gè)第二加密指令,且將之以該第二解密密鑰解密成多個(gè)第二非加密指令。
10.如權(quán)利要求9所述的操作方法,其中,該密鑰切換指令標(biāo)示一索引數(shù)值,以指示該微處理器內(nèi)一寄存器文檔的一位置,其中,上述將該第一解密密鑰以該第二解密密鑰取代的步驟包括自該索引數(shù)值所指示的該寄存器文檔的位置將該第二解密密鑰載入該微處理器一提取單元。
11.如權(quán)利要求9所述的操作方法,其中,上述提取這些第二加密指令的步驟包括跳躍至程序順序中該密鑰切換指令之后接續(xù)的指令。
12.如權(quán)利要求9所述的操作方法,其中,該程序包括一第一塊連續(xù)指令以及緊隨在后的一第二塊連續(xù)指令,其中,該第一塊連續(xù)指令包括這些第一加密指令、且該第二塊連續(xù)指令包括這些第二加密指令,其中,該第一塊連續(xù)指令是以該第一解密密鑰加密、且該第二塊連續(xù)指令是以該第二解密密鑰加密,其中,該密鑰切換指令是該第一塊連續(xù)指令的最后一個(gè)指令。
13.一種操作方法,用以操作一微處理器,該操作方法包括: 自一指令高速緩沖存儲(chǔ)器的一序列多個(gè)提取地址提取一加密程序中的一序列多個(gè)區(qū)塊的加密指令; 在提取該序列各個(gè)區(qū)塊時(shí),以多個(gè)密鑰數(shù)值以及所提取該區(qū)塊的提取地址的部份數(shù)值為一函數(shù),生成一解密密鑰; 關(guān)于該序列中所提取的各區(qū)塊,以所對(duì)應(yīng)生成的上述解密密鑰解密其中的加密指令;以及 在提取該序列這些區(qū)塊間執(zhí)行密鑰切換指令,其中,上述執(zhí)行密鑰切換指令的步驟包括更新用來生成上述解密密鑰的這些密鑰數(shù)值。
14.如權(quán)利要求13所述的操作方法,其中,上述密鑰切換指令是一個(gè)解密后的指令,由所提取該序列的這些區(qū)塊的一的加密指令中解密而得。
15.如權(quán)利要求13所述的操作方法,其中,由這些密鑰數(shù)值以及對(duì)應(yīng)的提取地址的部份數(shù)值所形成的該函數(shù)先天提供一有效解密密鑰長(zhǎng)度用于解密該加密程序,其中,該有效解密密鑰長(zhǎng)度先天的尺寸取決于這些密鑰數(shù)值的總量以及上述解密密鑰的產(chǎn)生操作方法,其中,在上述密鑰切換指令更新這些密鑰數(shù)值將擴(kuò)展該有效解密密鑰長(zhǎng)度超越先天的尺寸。
16.如權(quán)利要求15所述的操作方法,其中,擴(kuò)展后的該有效解密密鑰長(zhǎng)度與該加密程序等長(zhǎng)。
17.如權(quán)利要求13所述的操作方法,其中,上述密鑰切換指令標(biāo)示一索引數(shù)值指示微處理器中保存這些密鑰數(shù)值的一位置,以用于執(zhí)行上述更新步驟。
【文檔編號(hào)】G06F21/72GK103699833SQ201310680122
【公開日】2014年4月2日 申請(qǐng)日期:2011年5月25日 優(yōu)先權(quán)日:2010年5月25日
【發(fā)明者】G·葛蘭·亨利, 泰瑞·派克斯, 布蘭特·比恩, 湯姆士·A·克理斯賓 申請(qǐng)人:威盛電子股份有限公司