欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

微處理器以及相關(guān)的操作方法、以及加密、解密方法

文檔序號(hào):6424775閱讀:192來(lái)源:國(guó)知局
專利名稱:微處理器以及相關(guān)的操作方法、以及加密、解密方法
技術(shù)領(lǐng)域
本發(fā)明涉及微處理器(microprocessor)領(lǐng)域,特別是涉及用于增加微處理器所執(zhí)行的程序的安全性。
背景技術(shù)
很多軟件程序在面臨破壞計(jì)算機(jī)系統(tǒng)安全的攻擊時(shí),通常是脆弱不堪的。例如,黑客可藉由攻擊一運(yùn)行中程序的緩沖溢位區(qū)漏洞(buffer overflow vulnerability)植入不當(dāng)程序碼、并轉(zhuǎn)移主控權(quán)給該不當(dāng)程序碼。如此一來(lái),所植入的程序碼將主導(dǎo)被攻擊的程序。一種防范軟件程序遭攻擊的方案為指令集隨機(jī)化(instruction set randomization) 0 概略解釋之,指令集隨機(jī)化技術(shù)會(huì)先將程序加密(encrypt)為某些形式,再于處理器將該程序自存儲(chǔ)器提取后,于該處理器內(nèi)解密(decrypt)該程序。如此一來(lái),黑客便不易植入惡意指令,因?yàn)樗踩氲闹噶畋仨毐贿m當(dāng)?shù)丶用?例如,使用與所攻擊程序相同的加密密鑰或演算法)方會(huì)被正確地執(zhí)行。例如,參閱文件「Counter Code-Injection Attacks with Instruction-Set Randomization,by Gaurav S. Kc,Angelos D. Keromytis, and Vassilis Prevelakis, CCS' 03, October 27-30,2003, Washington, DC, USA, ACM 1-58113-738-9/03/0010」,其中敘述Bochs-x86Pentium模擬器(emulator)的改良版本。相關(guān)技術(shù)的缺點(diǎn)已被廣泛討論。例如,參閱數(shù)據(jù)「Where,s the FEEB ? The Effectiveness of Instruction Set Randomization,by Ana Nora Sovarel,David Evans,and Nathanael Paul,http://www, cs. virRinia. edu/feeb I。

發(fā)明內(nèi)容
本發(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)位零值。無(wú)論該區(qū)塊的指令數(shù)據(jù)為加密或非加密,實(shí)行上述內(nèi)容(a)、(b)以及(c)所需要的時(shí)間在該第一狀況下以及該第二狀況下是相同的。本發(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)位零值。無(wú)論該區(qū)塊的指令數(shù)據(jù)為加密或非加密,實(shí)行上述內(nèi)容(a)、(b)以及(c)所需要的時(shí)間在該第一狀況下以及該第二狀況下是相同的。本發(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ù)值。本發(fā)明另外一種實(shí)施方式揭示一種方法,操作具有一指令高速緩沖存儲(chǔ)器的一微處理器。該方法包括自該指令高速緩沖存儲(chǔ)器提取一程序多個(gè)第一加密指令,且將之以一第一解密密鑰解密為多個(gè)第一非加密指令。該方法還包括將該第一解密密鑰以一第二解密密鑰取代,回應(yīng)這些第一非加密指令中的一密鑰切換指令。該方法還包括自該指令高速緩沖存儲(chǔ)器提取該程序的多個(gè)第二加密指令,且將之以該第二解密密鑰解密為多個(gè)第二非加密指令。本發(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ù)值。本發(fā)明一種實(shí)施方式揭示一種微處理器。該微處理器包括一提取單元,使用第一解密密鑰數(shù)據(jù)提取并且解密一分支與切換密鑰指令。該微處理器還包括微代碼。上述微代碼在該分支與切換密鑰指令的方向不被采用的狀況下,令該提取單元采用上述第一解密密鑰數(shù)據(jù)提取并且解密該分支與切換密鑰指令之后的接續(xù)指令。該微代碼還在該分支與切換密鑰指令被采用的狀況下,令該提取單元采用不同于上述第一解密密鑰數(shù)據(jù)的第二解密密鑰數(shù)據(jù)提取并且解密該分支與切換密鑰指令的一目標(biāo)指令。本發(fā)明另外一種實(shí)施方式揭示一方法,以一微處理器處理一加密程序。該方法包括使用第一解密密鑰數(shù)據(jù)提取并且解密一分支與切換密鑰指令。此方法還包括,在該分支與切換密鑰指令的方向不被采取的狀況下,以上述第一解密密鑰數(shù)據(jù)提取并且解密該分支與切換密鑰指令之后的接續(xù)指令。該方法還包括,在該分支與切換密鑰指令的方向被采取的狀況下,以不同于上述第一解密密鑰數(shù)據(jù)的第二解密密鑰數(shù)據(jù)提取并且解密該分支與切換密鑰指令的一目標(biāo)指令。本發(fā)明另外一種實(shí)施方式亦揭示一方法,用于加密一程序,以供用于解密與執(zhí)行加密程序的一微處理器日后執(zhí)行。該方法包括接收一非加密程序的一目的文件,其中包括傳統(tǒng)分支指令,所指示的目標(biāo)地址可于該微處理器執(zhí)行該程序前判定。該方法還包括分析該程序以獲得塊信息。上述塊信息將該程序劃分成一序列多個(gè)塊。各塊包括一序列多個(gè)指令。上述塊信息還包括各塊相關(guān)的加密密鑰數(shù)據(jù)。各塊對(duì)應(yīng)的加密密鑰數(shù)據(jù)不相同。該方法還包括將上述傳統(tǒng)分支指令中目標(biāo)地址與自身坐落不同塊者各自以一分支與切換密鑰指令取代。該方法還包括基于上述塊信息加密該程序。本本發(fā)明另外一種實(shí)施方式亦揭示一方法,用于加密一程序,以供用于解密與執(zhí)行加密程序的一微處理器日后執(zhí)行。該方法包括接收一非加密程序的一目的文件,其中包括傳統(tǒng)分支指令,所指示的目標(biāo)地址僅能在該微處理器執(zhí)行該程序時(shí)判定。該方法還包括分析該程序以獲得塊信息。上述塊信息將該程序劃分成一序列多個(gè)塊。各塊包括一序列多個(gè)指令。上述塊信息還包括各塊相關(guān)的加密密鑰數(shù)據(jù)。各塊對(duì)應(yīng)的加密密鑰數(shù)據(jù)不相同。 該方法還包括將上述傳統(tǒng)分支指令各自以一分支與切換密鑰指令取代。該方法還包括基于上述塊信息,加密該程序。本發(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ù)值用來(lái)修復(fù)該架構(gòu)寄存器的該位,以回應(yīng)自中斷指令返回的操作。 若判定該位修復(fù)后的數(shù)值為設(shè)定狀態(tài),該提取單元重新提取并且解密加密指令。本發(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í)行加密指令。本發(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ì)所提取的指令作解密。本發(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ì)提取的指令作解密。本發(fā)明一種實(shí)施方式揭示一種微處理器。該微處理器包括一儲(chǔ)存元件,具有多個(gè)位置各自儲(chǔ)存一個(gè)加密程序的解密密鑰數(shù)據(jù)。該微處理器還包括一控制寄存器,以一字段標(biāo)示該儲(chǔ)存元件上述多個(gè)位置中與執(zhí)行中的加密程序相關(guān)者?;貞?yīng)自中斷指令返回的操作,該微處理器自存儲(chǔ)器將先前儲(chǔ)存的該字段的數(shù)值用來(lái)修復(fù)該控制寄存器。該微處理器還包括一提取單元,用以提取執(zhí)行中的加密程序的加密指令、并且將之以該字段修復(fù)后的數(shù)值在該儲(chǔ)存元件所標(biāo)示的位置所儲(chǔ)存的解密密鑰數(shù)據(jù)解密。本發(fā)明另外一種實(shí)施方式揭示一方法,用以操作具有一控制寄存器以及一儲(chǔ)存元件的一微處理器,該儲(chǔ)存元件內(nèi)多個(gè)位置各自儲(chǔ)存一個(gè)加密程序的解密密鑰數(shù)據(jù)。該方法包括自存儲(chǔ)器將先前儲(chǔ)存的該字段的數(shù)值用來(lái)修復(fù)該控制寄存器內(nèi)一字段,以回應(yīng)自中斷指令返回的操作,其中,該字段的數(shù)值標(biāo)示該儲(chǔ)存元件上述多個(gè)位置中與執(zhí)行中加密程序有關(guān)。該方法還包括提取執(zhí)行中的加密程序的加密指令。該方法還包括以該字段修復(fù)后的數(shù)值在該儲(chǔ)存元件所標(biāo)示的位置所儲(chǔ)存的解密密鑰數(shù)據(jù)解密所提取的加密指令。本發(fā)明一種實(shí)施方式揭示一種微處理器。該微處理器包括一分支目標(biāo)地址高速緩沖存儲(chǔ)器(BTAC)記錄先前執(zhí)行過(guò)的分支與切換密鑰指令的歷史信息。上述歷史信息包括所記錄的分支與切換密鑰指令的目標(biāo)地址以及標(biāo)識(shí)符。上述標(biāo)識(shí)符標(biāo)示與所屬的分支與切換密鑰指令相關(guān)的多個(gè)密鑰數(shù)值。該微處理器還包括一提取單元,耦接該分支目標(biāo)地址高速緩沖存儲(chǔ)器。該提取單元提取先前執(zhí)行過(guò)的分支與切換密鑰指令時(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è)。本發(fā)明另外一種實(shí)施方式揭示一種方法,用于操作一微處理器。該方法包括以一分支目標(biāo)地址高速緩沖存儲(chǔ)器(BTAC)記錄先前執(zhí)行過(guò)的分支與切換密鑰指令的歷史信息。上述歷史信息包括所記錄的分支與切換密鑰指令的目標(biāo)地址以及標(biāo)識(shí)符。上述標(biāo)識(shí)符標(biāo)示與所屬的分支與切換密鑰指令相關(guān)的多個(gè)密鑰數(shù)值。該方法更于先前執(zhí)行過(guò)的分支與切換密鑰指令被提取時(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è)。


圖1為一方塊圖,圖解根據(jù)本發(fā)明技術(shù)實(shí)現(xiàn)的一微處理器;圖2為一方塊圖,用以詳細(xì)說(shuō)明圖解圖1的提取單元;圖3為一流程圖,根據(jù)本發(fā)明技術(shù),圖解圖2提取單元的操作;圖4為一方塊圖,根據(jù)本發(fā)明技術(shù),圖解圖1標(biāo)志寄存器的字段;圖5為一方塊圖,根據(jù)本發(fā)明技術(shù),圖解一密鑰載入指令的格式;圖6為一方塊圖,根據(jù)本發(fā)明技術(shù),圖解一密鑰切換指令的格式;圖7為一流程圖,根據(jù)本發(fā)明技術(shù),圖解圖1微處理器的操作,其中執(zhí)行圖6的密鑰切換指令;圖8為一方塊圖,根據(jù)本發(fā)明技術(shù),圖解一加密程序的存儲(chǔ)器用量,該加密程序包括多個(gè)圖6所接露的密鑰切換指令;圖9為一方塊圖,根據(jù)本發(fā)明技術(shù),圖解一分支與切換密鑰指令的格式;圖10為一流程圖,根據(jù)本發(fā)明技術(shù),圖解圖1微處理器的操作,其中執(zhí)行圖9的分支與切換密鑰指令;圖11為一流程圖,根據(jù)本發(fā)明技術(shù),圖解一后處理器的操作,由軟件工具實(shí)現(xiàn),可用于后部處理一程序、且加密之,以由圖1微處理器執(zhí)行;圖12為一方塊圖,圖解本發(fā)明另外一種實(shí)施方式的分支與切換密鑰指令的格式;圖13為一方塊圖,根據(jù)本發(fā)明技術(shù),圖解塊地址范圍表;圖14為一流程圖,根據(jù)本發(fā)明技術(shù),圖解圖1微處理器的操作,其中執(zhí)行圖12的分支與切換密鑰指令;圖15為一方塊圖,圖解本發(fā)明另外一種實(shí)施方式的分支與切換密鑰指令的格式;圖16為一方塊圖,根據(jù)本發(fā)明技術(shù),圖解塊地址范圍表;圖17為一流程圖,根據(jù)本發(fā)明技術(shù),圖解圖1微處理器的操作,其中執(zhí)行圖15的分支與切換密鑰指令;圖18為一流程圖,圖解本發(fā)明技術(shù)另外一種實(shí)施方式,其中敘述一后處理器的操作,用于后部處理一程序、且加密之,由圖1微處理器執(zhí)行;圖19為一流程圖,根據(jù)本發(fā)明技術(shù),圖解圖1微處理器的操作,用于應(yīng)付一任務(wù)切換,切換于一加密程序以及一純文字程序之間;圖20圖解一流程圖,根據(jù)本發(fā)明技術(shù),圖解圖1微處理器所執(zhí)行的系統(tǒng)軟件的操作;圖21圖解一方塊圖,根據(jù)本發(fā)明另外一種實(shí)施方式,圖解圖1標(biāo)志寄存器的字段;圖22為一流程圖,根據(jù)本發(fā)明技術(shù),圖解采用圖21的標(biāo)志寄存器的圖1微處理器的操作,用于應(yīng)付一任務(wù)切換,切換于多個(gè)加密程序之間;圖23為一流程圖,根據(jù)本發(fā)明技術(shù),圖解采用圖21的標(biāo)志寄存器的圖1微處理器的操作,用于應(yīng)付一任務(wù)切換,切換于多個(gè)加密程序之間;圖M為一方塊圖,根據(jù)本發(fā)明另外一種實(shí)施方式,圖解圖1密鑰寄存器文檔中的單一個(gè)寄存器;圖25為一流程圖,根據(jù)本發(fā)明另外一種實(shí)施方式,圖解采用圖21標(biāo)志寄存器以及圖M密鑰寄存器文檔的圖1微處理器的操作,以應(yīng)付一任務(wù)切換,切換于多個(gè)加密程序之間;圖沈?yàn)橐涣鞒虉D,根據(jù)本發(fā)明另外一種實(shí)施方式,圖解采用圖21標(biāo)志寄存器以及圖M密鑰寄存器文檔的圖1微處理器的操作,以應(yīng)付一任務(wù)切換,切換于多個(gè)加密程序之間;圖27為一方塊圖,圖解圖1微處理器100部分內(nèi)容的其他實(shí)施方式;圖觀為一方塊圖,根據(jù)本發(fā)明技術(shù),詳細(xì)圖解圖27的分支目標(biāo)地址高速緩沖存儲(chǔ)器(BTAC);圖四為一方塊圖,根據(jù)本發(fā)明技術(shù),詳細(xì)圖解圖28的BTAC各單元的內(nèi)容;圖30為一流程圖,根據(jù)本發(fā)明技術(shù),圖解圖27微處理器采用圖28BTAC的操作;圖31為一流程圖,根據(jù)本發(fā)明技術(shù),圖解圖27微處理器采用圖^BTAC的操作;以及圖32為一流程圖,根據(jù)本發(fā)明技術(shù),圖解圖27微處理器對(duì)一分支與切換密鑰指令的操作;以及
附圖符號(hào)說(shuō)明
100 --微處理器;102 指令高速緩沖存儲(chǔ)器;
104 --提取單元;106 指令數(shù)據(jù)(可為加密)
108 --解碼單元;112 執(zhí)行單元;
114 --引出單元;118 通用寄存器;
122 --安全存儲(chǔ)區(qū);124 密鑰寄存器文檔;
128 --標(biāo)志寄存器;132 微代碼單元;
134 --提取地址;142 主密鑰寄存器;
144 --控制寄存器;148 E位;
152 --密鑰擴(kuò)展器;154 多工器;
156 --異邏輯;162 純文字指令數(shù)據(jù);
164 --提取指令產(chǎn)生器;172 兩組密鑰;
174 --解密密鑰;176 多位的二進(jìn)位零值;
178 --多工器154的輸出;
212 --多工器A ;214 多工器B;
216 --旋轉(zhuǎn)器;218 加法/減法器;
234 --第一密鑰;236 第二密鑰;
238 --旋轉(zhuǎn)器的輸出;302--316 步驟方塊;
402 --E位字段;
408 --多個(gè)位的標(biāo)準(zhǔn)x86標(biāo)志;
500 --密鑰載入指令;502 操作碼;
504 --密鑰寄存器文檔目標(biāo)地址;
506 --安全存儲(chǔ)區(qū)來(lái)源地址;
600 --密鑰切換指令;602 操作碼;
604 --密鑰寄存器文檔索引;
702-708 方塊步驟;800 --存儲(chǔ)器用量;
900 --分支與切換密鑰指令;
902 --操作碼;904 --密鑰寄存器文檔索引;
906 --分支信息;1002--1018 步驟方塊;
1102--1106 步驟方塊;1200 分支與切換密鑰指令;
1202 操作碼;1300 塊地址范圍表
1302 地址范圍;1304 密鑰寄存器文檔索引;
1402--1418 步驟方塊;1500 分支與切換密鑰指令;
1502 操作碼;1600 塊地址范圍表
1604 安全存儲(chǔ)區(qū)地址;
1714 步驟方塊;1802--1806 步驟方塊;
1902--1944 步驟方塊;2002--2008 步驟方塊;
2104 索引;2202--2216 步驟方塊;
2302-■2316 步驟方塊;2402 淘汰位;
2506 步驟方塊;2607,2609 步驟方塊;
2702 . 分支目標(biāo)地址高速緩沖存儲(chǔ)器(BTAC);
2706 . 目標(biāo)地址;2708 采用/不采用指標(biāo);
2712 . 密鑰切換邏輯;2714 型式指標(biāo);
2716 . 密鑰寄存器文檔索引;
2802 . BTAC陣列;2808 BTAC單元;
2902 有效位;2904 標(biāo)記字段;
2906 目標(biāo)地址;2908 采用/不采用字段;
2912 . 密鑰寄存器文檔索引;
2914 . 型式字段;3002--3004 步驟方塊;
3102--3116 步驟方塊;3208--3222 步驟方塊;以及
ZEROS 多位的二進(jìn)位零值。
7/30 頁(yè)
具體實(shí)施例方式參閱圖1,一方塊解根據(jù)本發(fā)明技術(shù)所實(shí)現(xiàn)的一微處理器100。微處理器 100包括一管線(pipeline),其中包括一指令高速緩沖存儲(chǔ)器(instruction cache) 102, 一提取單元(fetch unit) 104、一解碼單元(decodeunit) 108、一執(zhí)行單元(execution unit) 112、以及一引出單元(retire unit) 114。微處理器100還包括一微代碼單元 (microcode unit) 132,用以提供微代碼指令(microcode instructions)給該執(zhí)行單元 112。微處理器100還包括通用寄存器(general purpose registers) 118以及標(biāo)志寄存器 (EFLAGS register) 128,以提供指令運(yùn)算元(instruction operands)給執(zhí)行單元 112。而且,通過(guò)引出單元114,將指令執(zhí)行結(jié)果更新于通用寄存器118以及標(biāo)志寄存器128。在一種實(shí)施方式中,標(biāo)志寄存器1 是由傳統(tǒng)x86標(biāo)志寄存器修改實(shí)現(xiàn),詳細(xì)實(shí)施方式將于后續(xù)篇幅說(shuō)明。提取單元104自指令高速緩沖存儲(chǔ)器102提取指令數(shù)據(jù)(instruction data) 106。 提取單元104操作于兩種模式一為解密模式(decryption mode),另一為純文字模式 (plain text mode)。提取單元 104 內(nèi)一控制寄存器(control register) 144 的一 E 位(E bit) 148決定該提取單元104是操作于解密模式(設(shè)定E位)、或操作于純文字模式(清空 E位)。純文字模式下,提取單元104視自該指令高速緩沖存儲(chǔ)器102所提取出的指令數(shù)據(jù) 106為未加密、或純文字指令數(shù)據(jù),因此,不對(duì)指令數(shù)據(jù)106作解密。然而,在解密模式下,提取單元104視自該指令高速緩沖存儲(chǔ)器102所提取出的指令數(shù)據(jù)106為加密指令數(shù)據(jù),因此,需使用該提取單元104的一主密鑰寄存器(master key register) 142所儲(chǔ)存的解密密鑰(decryption keys)將之解密為純文字指令數(shù)據(jù),詳細(xì)技術(shù)內(nèi)容將參考圖2以及圖3進(jìn)行討論。提取單元104亦包括一提取指令產(chǎn)生器(fetch address generator) 164,用以產(chǎn)生一提取地址(fetch address) 134,以自該指令高速緩沖存儲(chǔ)器102提取指令數(shù)據(jù)106。提取地址1;34還供應(yīng)給提取單元104的一密鑰擴(kuò)展器(key expander) 152。密鑰擴(kuò)展器152 自主密鑰暫存142中選取兩組密鑰172,并對(duì)其實(shí)施運(yùn)算以產(chǎn)生一解密密鑰174,作為多工器154的第一輸入。多工器154的第二輸入為多位的二進(jìn)位零值(binary zeros) 176。E 位148控制多工器154。若E位148被設(shè)定,多工器154選擇輸出該加密密鑰174。若E位 148被清除,多工器IM選擇輸出多位的二進(jìn)位零值176。多工器154的輸出178將供應(yīng)給異邏輯156作為其第一輸入。異邏輯156負(fù)責(zé)對(duì)提取的指令數(shù)據(jù)106以及多工器輸出178 施行布林異或運(yùn)算(Boolean exclusive-OR, M)R),以產(chǎn)生純文字指令數(shù)據(jù)162。加密的指令數(shù)據(jù)106乃預(yù)先以異邏輯將其原本的純文字指令數(shù)據(jù)以一加密密鑰進(jìn)行加密,其中該加密密鑰的數(shù)值與該解密密鑰174相同。提取單元104的詳細(xì)實(shí)施方式將結(jié)合圖2以及圖3 內(nèi)容于稍后敘述。純文字指令數(shù)據(jù)162將供應(yīng)給解碼單元108。解碼單元108負(fù)責(zé)將純文字指令數(shù)據(jù) 162的串流解碼、并分割為多個(gè)X86指令,交由執(zhí)行單元112執(zhí)行。在一種實(shí)施方式中,解碼單元108包括緩沖器(buffers)或隊(duì)列(queus),以在解碼之前或期間,緩沖存儲(chǔ)的純文字指令數(shù)據(jù)162的串流。在一種實(shí)施方式中,解碼單元108包括一指令轉(zhuǎn)譯器(instruction translator),用以將X86指令轉(zhuǎn)譯為微指令microinstructions或micro-ops,交由執(zhí)行單元112執(zhí)行。解碼單元108輸出指令時(shí),更會(huì)針對(duì)各指令輸出一位值,該位值乃伴隨該指令沿所述管線結(jié)構(gòu)一路行進(jìn)而至,用以指示該指令是否為加密指令。該位值將控制該執(zhí)行單元112以及該引出單元114,使的根據(jù)該指令自該指令高速緩沖存儲(chǔ)器102取出時(shí)是加密指令或純文字指令而進(jìn)行決策并且采取動(dòng)作。在一種實(shí)施方式中,純文字指令不被允許執(zhí)行專供指令解密模式設(shè)計(jì)的特定操作。在一種實(shí)施方式中,微處理器100為一 x86架構(gòu)處理器,然而,微處理器100也可以其他架構(gòu)的處理器實(shí)現(xiàn)。若一處理器可正確執(zhí)行設(shè)計(jì)給x86處理器執(zhí)行的大多數(shù)應(yīng)用程序,則視之為x86架構(gòu)的處理器。若應(yīng)用程序執(zhí)行后可獲得預(yù)期結(jié)果,則可判斷該應(yīng)用程序是被正確執(zhí)行。特別是,微處理器100是執(zhí)行x86指令集的指令,且具有x86用戶可用寄存器組(x86 user-visible register set)。在一種實(shí)施方式中,微處理器100設(shè)計(jì)成供應(yīng)一復(fù)合安全架構(gòu)(comprehensive security architecture)-禾爾為安全執(zhí)行模式(secure execution mode,簡(jiǎn)禾爾 SEM)-以于其中執(zhí)行程序。根據(jù)一種實(shí)施方式,SEM程序的執(zhí)行可由數(shù)種處理器事件(processor events) 引發(fā),且不受一般(非SEM)操作封鎖。以下舉例說(shuō)明限定于SEM下執(zhí)行的程序所實(shí)現(xiàn)的功能,其中包括關(guān)鍵安全任務(wù)(critical security tasks)如憑證核對(duì)以及數(shù)據(jù)加密、系統(tǒng)軟件活動(dòng)監(jiān)控、系統(tǒng)軟件完整性驗(yàn)證、資源使用追蹤、新軟件的安裝控制...等。關(guān)于SEM 的實(shí)施方式請(qǐng)參考本公司于2008年10月31日申請(qǐng)的美國(guó)專利申請(qǐng)案,案號(hào)12Λ63,131, (美國(guó)專利公開號(hào)為2009-0292893,于2009年11月沈日公開);該案的優(yōu)先權(quán)主張溯及 2008年5月M日的美國(guó)專利臨時(shí)申請(qǐng)案(案號(hào)61/055,980);本申請(qǐng)案相關(guān)技術(shù)部份可參照上述案件內(nèi)容。在一種實(shí)施方式中,用于存儲(chǔ)SEM數(shù)據(jù)為安全非易失性存儲(chǔ)器(未顯示在圖示)_如高速緩沖存儲(chǔ)器(flash memory)-可用于存儲(chǔ)解密密鑰,并藉由一隔離串行總線 (private serial bus)耦接微處理器100,且其中所有數(shù)據(jù)乃AES加密(AES-encrypted)且經(jīng)過(guò)簽署驗(yàn)正(signature-verified)的。在一種實(shí)施方式中,微處理器100包括少量的單一次寫入性非易失性存儲(chǔ)器(non-volatile write-once memory,未顯示于圖示),用于存儲(chǔ)解密密鑰;其中一種實(shí)施方式可參考美國(guó)專利案7,663,957所揭示的一熔絲型非易失性存儲(chǔ)器;可參照上述案件內(nèi)容應(yīng)用于本發(fā)明。本發(fā)明所揭示的指令解密特征的其中一項(xiàng)優(yōu)點(diǎn)為擴(kuò)展安全執(zhí)行模式(SEM)的應(yīng)用范圍,使安全性程序(secure program)得以存儲(chǔ)在微處理器100外的存儲(chǔ)器,無(wú)須限定完整存儲(chǔ)于微處理器100內(nèi)部。因此,安全性程序可利用存儲(chǔ)器階層架構(gòu)所提供的完整空間以及功能。在一種實(shí)施方式中,部分或全部的結(jié)構(gòu)性異常 / 中斷(architectural exceptions/interrupts,例如,頁(yè)0錯(cuò)誤 page faults、除錯(cuò)中斷點(diǎn)debug breakpoints)...等,在SEM模式下是除能(disable)的。在一種實(shí)施方式中,部分或全部的結(jié)構(gòu)性異常/中斷在解密模式(即E位148為設(shè)定)下是除能(disable) 的。微處理器100還包括一密鑰寄存器文檔(key register file) 124。密鑰寄存器文檔1 包括多個(gè)寄存器,其中儲(chǔ)存的密鑰可藉由密鑰切換指令(switch key instruction, 后續(xù)討論之)載入提取單元104的主密鑰寄存器142,以解密所提取的加密指令數(shù)據(jù)106。微處理器100還包括一安全存儲(chǔ)區(qū)(secure memory area,簡(jiǎn)寫為SMA) 122,用于存儲(chǔ)解密密鑰,該解密密鑰待經(jīng)圖5所示的密鑰載入指令(load key instruction) 500進(jìn)而載入密鑰寄存器文檔124。在一種實(shí)施方式中,安全存儲(chǔ)區(qū)122限定以SEM程序存取。也就是說(shuō),安全存儲(chǔ)區(qū)122不可藉一般執(zhí)行模式(非SEM)下所執(zhí)行的程序存取。此外,安全存儲(chǔ)區(qū)122也不可藉處理器總線存取,且不屬于微處理器100的高速緩沖存儲(chǔ)器階層的一部份。因此,舉例說(shuō)明之,高速緩沖清空操作(cache flush operation)不會(huì)導(dǎo)致安全存儲(chǔ)區(qū)122的內(nèi)容寫入存儲(chǔ)器。關(guān)于安全存儲(chǔ)區(qū)122的讀寫,微處理器100指令集架構(gòu)中設(shè)計(jì)有特定指令。一種實(shí)施方式是在安全存儲(chǔ)區(qū)122中設(shè)計(jì)一隔離式隨機(jī)存取存儲(chǔ)器(private RAM),相關(guān)技術(shù)內(nèi)容可參考2008年2月20日申請(qǐng)的美國(guó)專利申請(qǐng)案12/034,503(該案于 2008年10月16日公開,公開號(hào)為2008/0256336);可參照上述案件內(nèi)容應(yīng)用于本發(fā)明。起先,操作系統(tǒng)或其他特權(quán)程序(privileged program)下載密鑰的初始化設(shè)定于該安全存儲(chǔ)區(qū)122、密鑰寄存器文檔124、以及主密鑰寄存器142。微處理器100起先會(huì)以該密鑰的初始化設(shè)定以解密一加密程序。此外,加密程序本身可接續(xù)寫入新的密鑰至安全存儲(chǔ)區(qū)122、并自安全存儲(chǔ)區(qū)122將密鑰載入密鑰寄存器文檔1 (藉由密鑰載入指令)、且自密鑰寄存器文檔1 將密鑰載入主密鑰寄存器142(藉由密鑰切換指令)。所述操作的優(yōu)勢(shì)在于所揭示的密鑰切換指令使得加密程序在執(zhí)行當(dāng)下得以切換解密密鑰組(on-the-fly switching),以下將詳述之。新的密鑰可由加密程序指令自身的即時(shí)數(shù)據(jù)組成。在一種實(shí)施方式中,程序文檔標(biāo)頭的一字段會(huì)指示程序指令是否為加密型式。圖1所描述的技術(shù)有多項(xiàng)優(yōu)點(diǎn)。第一,自加密指令數(shù)據(jù)106所解密出來(lái)的純文字指令數(shù)據(jù)無(wú)法由微處理器100外部獲得。第二,提取單元104提取加密指令數(shù)據(jù)所需的時(shí)間與提取純文字指令數(shù)據(jù)所需的時(shí)間相同。此特色關(guān)系著安全與否。反之,若有時(shí)間差存在,黑客可藉此破解加密技術(shù)。第三,相較于傳統(tǒng)設(shè)計(jì),本發(fā)明所揭示的指令解密技術(shù)不會(huì)額外增加提取單元104 所耗的時(shí)鐘數(shù)量。如以下討論,密鑰擴(kuò)展器152增加解密密鑰的有效長(zhǎng)度,該解密密鑰用于解密一加密程序,且此方式不會(huì)使提取加密程序數(shù)據(jù)所需的時(shí)間長(zhǎng)于提取純文字程序數(shù)據(jù)所需的時(shí)間。特別是,因?yàn)槊荑€擴(kuò)展器152的運(yùn)作限時(shí)于以提取地址134查表該指令高速緩沖存儲(chǔ)器102獲得指令數(shù)據(jù)106之內(nèi)完成,密鑰擴(kuò)展器152并不會(huì)增加一般的提取程序的時(shí)間。此外,因?yàn)槎喙て?54以及密鑰擴(kuò)展器152 —并限時(shí)于以提取地址134查表該指令高速緩沖存儲(chǔ)器102獲得指令數(shù)據(jù)106之內(nèi)完成,故不會(huì)增加一般的提取程序的時(shí)間。異邏輯156是唯一添加于一般提取路徑的邏輯運(yùn)算,所幸異操作156的傳播延遲相當(dāng)小,不會(huì)增加工作周期。因此,本發(fā)明所揭示的指令解密技術(shù)不會(huì)增加提取單元104時(shí)鐘數(shù)量負(fù)擔(dān)。 此外,相較于一般技術(shù)所應(yīng)用于解密指令數(shù)據(jù)106的復(fù)雜解密機(jī)制,例如S盒(S-boxes),一般技術(shù)會(huì)增加提取以及解碼指令數(shù)據(jù)106時(shí)所需的工作周期且/或所消耗的時(shí)鐘數(shù)量。接著,參考圖2,一方塊圖詳細(xì)圖解圖1的提取單元104。特別是,圖1的密鑰擴(kuò)展器152也詳細(xì)圖列其中。先前已討論采用異邏輯解密上述加密指令數(shù)據(jù)106的優(yōu)點(diǎn)。然而, 快且小的異邏輯有其缺點(diǎn)若加密/解密密鑰被重復(fù)使用,則異邏輯屬于一種脆弱加密方法(weak encryption method)。不過(guò),若密鑰的有效長(zhǎng)度等同所欲加密/解密的程序的長(zhǎng)度,異邏輯加密會(huì)是一種強(qiáng)度極高的加密技術(shù)。微處理器100的特征在于可增長(zhǎng)解密密鑰的有效長(zhǎng)度,以降低密鑰重復(fù)使用的需求。第一,主密鑰寄存器142所儲(chǔ)存的數(shù)值(文檔) 為中大型尺寸在一種實(shí)施方式中,其尺寸等同自指令高速緩沖存儲(chǔ)器102所取出的指令數(shù)據(jù)106的提取量、或區(qū)塊尺寸,為1 位(16字節(jié))。第二,加密擴(kuò)展器152用于增長(zhǎng)解密密鑰的有效長(zhǎng)度,例如,增至一實(shí)施方式所揭示的2084字節(jié),將于后續(xù)篇幅詳述。第三,加密程序可藉由密鑰切換指令(或其變形)在操作中改變主密鑰寄存器142內(nèi)的數(shù)值,之后段落將詳述之。在圖2所示實(shí)施方式中,使用了五個(gè)主密鑰寄存器142,編號(hào)0-4。然而,在其他實(shí)施方式中,也可以較少或較多量的主密鑰寄存器142數(shù)量增長(zhǎng)解密密鑰長(zhǎng)度。例如,一種實(shí)施方式采用12個(gè)主密鑰寄存器142。密鑰擴(kuò)充器152包括一第一多工器A 212以及一第二多工器B 214,用以接收主密鑰寄存器142所供應(yīng)的密鑰。提取地址134的部分內(nèi)容用于控制多工器212/214。在圖2所示實(shí)施方式中,多工器B 214為三轉(zhuǎn)一多工器,而多工器A 212為四轉(zhuǎn)一多工器。表格1顯示多工器212/214如何根據(jù)各自的選擇輸入選取這些主密鑰寄存器142(以上述編號(hào)識(shí)別)。表格2顯示上述選擇輸入的產(chǎn)生方式,以及基于提取地址134的位[10:8]所呈的主密鑰寄存器142組合。
權(quán)利要求
1.一種微處理器,包括 一指令高速緩沖存儲(chǔ)器; 一指令解碼單元;以及一提取單元,用于(a)自該指令高速緩沖存儲(chǔ)器提取一區(qū)塊的指令數(shù)據(jù);(b)以一數(shù)據(jù)實(shí)體對(duì)該區(qū)塊實(shí)行一布林異運(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)位零值;其中,無(wú)論該區(qū)塊的指令數(shù)據(jù)是加密或非加密,上述第一狀況以及第二狀況執(zhí)行上述內(nèi)容(a)、(b)以及(c)所需的時(shí)間相同。
2.如權(quán)利要求1所述的微處理器,其中,該提取單元套用一提取地址至該指令高速緩沖存儲(chǔ)器,以自該指令高速緩沖存儲(chǔ)器提取該區(qū)塊的指令數(shù)據(jù),其中,在自該指令高速緩沖存儲(chǔ)器提取該區(qū)塊的指令數(shù)據(jù)的期間,該提取單元還以該提取地址的部分內(nèi)容以及多個(gè)密鑰數(shù)值形成一函數(shù)產(chǎn)生該解密密鑰。
3.如權(quán)利要求2所述的微處理器,其中,為了以該提取地址以及上述多個(gè)密鑰數(shù)值為函數(shù)產(chǎn)生該解密密鑰,該提取單元還用于基于該提取地址的一第一部分,選取上述多個(gè)密鑰數(shù)值的其中一對(duì); 基于該提取地址的一第二部分,旋轉(zhuǎn)所選取的該對(duì)密鑰數(shù)值其中一個(gè);以及基于該提取地址的一第三部分,將旋轉(zhuǎn)過(guò)的該密鑰數(shù)值加至選取的另一個(gè)密鑰數(shù)值、 或?qū)⑿D(zhuǎn)過(guò)的該密鑰數(shù)值自選取的另一個(gè)密鑰數(shù)值減去,以產(chǎn)生該解密密鑰。
4.如權(quán)利要求2所述的微處理器,其中,為了以該提取地址以及上述多個(gè)密鑰數(shù)值為函數(shù)產(chǎn)生該解密密鑰,該提取單元還用于根據(jù)該提取地址的一第一部分,自上述多個(gè)密鑰數(shù)值中選取出一第一密鑰數(shù)值; 根據(jù)該提取地址的該第一部分,自上述多個(gè)密鑰數(shù)值中選取出一第二密鑰數(shù)值; 根據(jù)該提取地址的一第二部分,旋轉(zhuǎn)該第一密鑰數(shù)值;以及根據(jù)該提取地址的一第三部分,選擇將旋轉(zhuǎn)后的該第一密鑰數(shù)值加入該第二密鑰數(shù)值、或?qū)⑿D(zhuǎn)后的該第一密鑰數(shù)值自該第二密鑰數(shù)值減去,以產(chǎn)生該解密密鑰。
5.如權(quán)利要求2所述的微處理器,其中,上述多個(gè)密鑰數(shù)值總量為K,該解密密鑰、以及上述多個(gè)密鑰數(shù)值各自的長(zhǎng)度為W字節(jié),且該提取單元產(chǎn)生一序列多個(gè)解密密鑰給自該指令高速緩沖存儲(chǔ)器提取出的一序列多個(gè)區(qū)塊的指令數(shù)據(jù),其中,產(chǎn)生有上述多個(gè)密鑰數(shù)值的字節(jié)的W2*(K! /(2*(K-2) !))個(gè)不同組合解密所提取的該序列上述多個(gè)區(qū)塊。
6.如權(quán)利要求1所述的微處理器,其中,該提取單元包括一控制位,用于儲(chǔ)存一標(biāo)識(shí),標(biāo)示該提取單元是在一解密模式或者一純文字模式; 一多工器,包括 一輸出;一第一數(shù)據(jù)輸入,用于接收該解密密鑰; 一第二數(shù)據(jù)輸入,用于接收上述多個(gè)位的二進(jìn)位零值;以及一選擇控制輸入,用于接收該控制位的數(shù)值,在該第一狀況下、該控制位的數(shù)值對(duì)應(yīng)該解密模式時(shí),以該解密密鑰作為該輸出,并且,在該第二狀況下、該控制位的數(shù)值對(duì)應(yīng)該純文字模式時(shí),以上述多個(gè)位的二進(jìn)位零值作為該輸出;以及一異邏輯,包括一第一數(shù)據(jù)輸入,用于接收該多工器的該輸出; 一第二數(shù)據(jù)輸入,用于接收所提取的該區(qū)塊的指令數(shù)據(jù);以及一輸出,耦接至該指令解碼單元,供應(yīng)該異間上述第一以及第二數(shù)據(jù)輸入進(jìn)行布林異運(yùn)算后所得到的純文字指令數(shù)據(jù)。
7.如權(quán)利要求6所述的微處理器,其中,該多工器的第一數(shù)據(jù)輸入來(lái)自一第一多工器,根據(jù)一提取地址的一第一部分自多個(gè)密鑰數(shù)值中選取出一第一密鑰數(shù)值;一第二多工器,根據(jù)該提取地址的該第一部分自上述多個(gè)密鑰數(shù)值中選取出一第二密鑰數(shù)值;一旋轉(zhuǎn)器,根據(jù)該提取地址的一第二部分旋轉(zhuǎn)該第一密鑰數(shù)值;以及一運(yùn)算單元,根據(jù)該提取地址的一第三部分,選擇將旋轉(zhuǎn)后的該第一密鑰數(shù)值加入該第二密鑰數(shù)值、或?qū)⑿D(zhuǎn)后的該第一密鑰數(shù)值自該第二密鑰數(shù)值減去,以產(chǎn)生該解密密鑰。
8.一種操作方法,用以操作具有一指令高速緩沖存儲(chǔ)器的一微處理器,該操作方法包括(a)自該指令高速緩沖存儲(chǔ)器提取一區(qū)塊的指令數(shù)據(jù);(b)以一數(shù)據(jù)實(shí)體對(duì)該區(qū)塊實(shí)行一布林異運(yùn)算,以產(chǎn)生純文字指令數(shù)據(jù);以及(c)將上述純文字指令數(shù)據(jù)供應(yīng)給一指令解碼單元;其中,在一第一狀況下,該區(qū)塊包括加密指令數(shù)據(jù)、且該數(shù)據(jù)實(shí)體為一解密密鑰; 其中,在一第二狀況下,該區(qū)塊包括非加密指令數(shù)據(jù)、且該數(shù)據(jù)實(shí)體為多個(gè)位的二進(jìn)位零值;其中,無(wú)論該區(qū)塊的指令數(shù)據(jù)是加密或非加密,上述第一狀況以及第二狀況執(zhí)行上述內(nèi)容(a)、(b)以及(c)所需的時(shí)間相同。
9.如權(quán)利要求8所述操作方法,其中,上述自該指令高速緩沖存儲(chǔ)器提取該區(qū)塊的步驟包括套用一提取地址至該指令高速緩沖存儲(chǔ)器,該操作方法還包括以該提取地址的部分內(nèi)容與多個(gè)密鑰數(shù)值所形成的一函數(shù)產(chǎn)生該解密密鑰; 其中,該解密密鑰的產(chǎn)生是在自該指令高速緩沖存儲(chǔ)器提取該區(qū)塊的指令數(shù)據(jù)的期間內(nèi)實(shí)行。
10.如權(quán)利要求9所述操作方法,其中,上述以該提取地址以及上述多個(gè)密鑰數(shù)值為函數(shù)產(chǎn)生該解密密鑰的步驟包括基于該提取地址的一第一部分,選取上述多個(gè)密鑰數(shù)值的其中一對(duì); 基于該提取地址的一第二部分,旋轉(zhuǎn)所選取的該對(duì)密鑰數(shù)值其中一個(gè); 基于該提取地址的一第三部分,將旋轉(zhuǎn)過(guò)的該密鑰數(shù)值加至所選取的另一個(gè)密鑰數(shù)值、或?qū)⑿D(zhuǎn)過(guò)的該密鑰數(shù)值自所選取的另一個(gè)密鑰數(shù)值減去,以產(chǎn)生該解密密鑰。
11.如權(quán)利要求9所述的操作方法,其中,上述以該提取地址以及上述多個(gè)密鑰數(shù)值所形成的函數(shù)產(chǎn)生該解密密鑰的步驟是為了多個(gè)連續(xù)區(qū)塊的指令數(shù)據(jù)生成W2(2*(K-2) !))字節(jié)的有效解密密鑰長(zhǎng)度,其中,該解密密鑰、以及上述多個(gè)密鑰數(shù)值各自的長(zhǎng)度為W字節(jié),且上述多個(gè)密鑰數(shù)值總量為K。
12.一種微處理器,包括 一指令高速緩沖存儲(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ù)值。
13.如權(quán)利要求12所述的微處理器,其中該提取單元先天供應(yīng)一有效解密密鑰長(zhǎng)度用于解密該加密程序,其中,該有效解密密鑰長(zhǎng)度取決于上述多個(gè)密鑰數(shù)值的總量、以及該提取單元產(chǎn)生上述解密密鑰的方式,其中,在該加密程序內(nèi)以該密鑰切換指令更新該提取單元內(nèi)的上述多個(gè)密鑰數(shù)值的操作將擴(kuò)展該有效解密密鑰長(zhǎng)度,使之超越先天供應(yīng)的長(zhǎng)度。
14.如權(quán)利要求13所述的微處理器,其中,被擴(kuò)展的該有效解密密鑰長(zhǎng)度與該加密程序一樣長(zhǎng)。
15.如權(quán)利要求12所述的微處理器,還包括一寄存器文檔,儲(chǔ)存多套密鑰數(shù)值;其中,上述密鑰切換指令標(biāo)示一索引數(shù)值,指示該寄存器文檔中上述多套密鑰數(shù)值的其中一套的位置,該微處理器會(huì)以該密鑰切換指令所標(biāo)示的該索引數(shù)值,且該索引數(shù)值所指示的該套密鑰數(shù)值更新該提取單元內(nèi)用于產(chǎn)生上述解密密鑰的上述多個(gè)密鑰數(shù)值。
16.如權(quán)利要求12所述的微處理器,其中該微處理器包括一管線,該管線包括有 一執(zhí)行單元位于該提取單元后;其中,該提取單元提取并且解密該加密程序的一第一以及一第二加密指令,而得到一第一以及一第二非加密指令;其中,若該密鑰切換指令執(zhí)行,該執(zhí)行單元將用以解密第一加密指令的一第一解密密鑰以一第二解密密鑰取代,其中該第二解密密鑰用以解密第二加密指令。
17.如權(quán)利要求16所述的微處理器,其中該微處理器更將程序順序中新于該密鑰切換指令的第一非加密指令的管道指令清空。
18.如權(quán)利要求12所述的微處理器,還包括 微代碼,用于實(shí)現(xiàn)該密鑰切換指令。
19.如權(quán)利要求12所述的微處理器,其中,該微處理器還跳躍至程序順序中位于該密鑰切換指令之后的接續(xù)指令,以回應(yīng)該密鑰切換指令的執(zhí)行。
20.一種操作方法,操作具有一指令高速緩沖存儲(chǔ)器的一微處理器,該操作方法包括 自該指令高速緩沖存儲(chǔ)器提取一程序中多個(gè)第一加密指令,且將之以一第一解密密鑰解密為多個(gè)第一非加密指令;將該第一解密密鑰以一第二解密密鑰取代,以回應(yīng)上述多個(gè)第一非加密指令中一密鑰切換指令的執(zhí)行;以及自該指令高速緩沖存儲(chǔ)器提取該程序多個(gè)第二加密指令,且將之以該第二解密密鑰解密成多個(gè)第二非加密指令。
21.如權(quán)利要求20所述的操作方法,其中,該密鑰切換指令標(biāo)示一索引數(shù)值,以指示該微處理器內(nèi)一寄存器文檔的一位置,其中,上述將該第一解密密鑰以該第二解密密鑰取代的步驟包括自該索引數(shù)值所指示的該寄存器文檔的位置將該第二解密密鑰載入該微處理器一提取單元。
22.如權(quán)利要求20所述的操作方法,其中,上述提取這些第二加密指令的步驟包括跳躍至程序順序中該密鑰切換指令之后接續(xù)的指令。
23.如權(quán)利要求20所述的操作方法,其中,該程序包括一第一塊連續(xù)指令以及緊隨在后的一第二塊連續(xù)指令,其中,該第一塊連續(xù)指令包括這些第一加密指令、且該第二塊連續(xù)指令包括這些第二加密指令,其中,該第一塊連續(xù)指令是以該第一解密密鑰加密、且該第二塊連續(xù)指令是以該第二解密密鑰加密,其中,該密鑰切換指令是該第一塊連續(xù)指令的最后一個(gè)指令。
24.一種操作方法,用以操作一微處理器,該操作方法包括自一指令高速緩沖存儲(chǔ)器的一序列多個(gè)提取地址提取一加密程序中的一序列多個(gè)區(qū)塊的加密指令;在提取該序列各個(gè)區(qū)塊時(shí),以多個(gè)密鑰數(shù)值以及所提取該區(qū)塊的提取地址的部份數(shù)值為一函數(shù),生成一解密密鑰;關(guān)于該序列中所提取的各區(qū)塊,以所對(duì)應(yīng)生成的上述解密密鑰解密其中的加密指令;以及在提取該序列這些區(qū)塊間執(zhí)行密鑰切換指令,其中,上述執(zhí)行密鑰切換指令的步驟包括更新用來(lái)生成上述解密密鑰的這些密鑰數(shù)值。
25.如權(quán)利要求M所述的操作方法,其中,上述密鑰切換指令是一個(gè)解密后的指令,由所提取該序列的這些區(qū)塊的一的加密指令中解密而得。
26.如權(quán)利要求M所述的操作方法,其中,由這些密鑰數(shù)值以及對(duì)應(yīng)的提取地址的部份數(shù)值所形成的該函數(shù)先天提供一有效解密密鑰長(zhǎng)度用于解密該加密程序,其中,該有效解密密鑰長(zhǎng)度先天的尺寸取決于這些密鑰數(shù)值的總量以及上述解密密鑰的產(chǎn)生操作方法, 其中,在上述密鑰切換指令更新這些密鑰數(shù)值將擴(kuò)展該有效解密密鑰長(zhǎng)度超越先天的尺寸。
27.如權(quán)利要求沈所述的操作方法,其中,擴(kuò)展后的該有效解密密鑰長(zhǎng)度與該加密程序等長(zhǎng)。
28.如權(quán)利要求M所述操作方法,其中,上述密鑰切換指令標(biāo)示一索引數(shù)值指示微處理器中保存這些密鑰數(shù)值的一位置,以用于執(zhí)行上述更新步驟。
29.一種微處理器,包括一提取單元,采用第一解密密鑰數(shù)據(jù)提取并且解密一分支與切換密鑰指令;以及微代碼,用于在該分支與切換密鑰指令的方向不被采用的狀況下,使該提取單元以上述第一解密密鑰數(shù)據(jù)提取并且解密該分支與切換密鑰指令之后的接續(xù)指令;以及在該分支與切換密鑰指令的方向被采用的狀況下,使該提取單元以不同于該第一解密密鑰數(shù)據(jù)的第二解密密鑰數(shù)據(jù)提取并且解密該分支與切換密鑰指令的一目標(biāo)指令。
30.如權(quán)利要求四所述的微處理器,其中,若該分支與切換密鑰指令的方向被采用,上述微代碼更在致使該提取單元以上述第二解密密鑰數(shù)據(jù)解密該目標(biāo)指令之前,更新該提取單元,而使該提取單元使用上述第二解密密鑰數(shù)據(jù)而非上述第一解密密鑰數(shù)據(jù)。
31.如權(quán)利要求四所述的微處理器,其中,若該分支與切換密鑰指令的方向被采用,該分支與切換密鑰指令標(biāo)示該微處理器中上述第二解密密鑰數(shù)據(jù)的儲(chǔ)存位置,以供該提取單元載入。
32.如權(quán)利要求四所述的微處理器,其中,若該分支與切換密鑰指令的方向被采用,上述微代碼更基于該目標(biāo)指令的存儲(chǔ)器地址判斷上述第二解密密鑰數(shù)據(jù)于該微處理器內(nèi)的一儲(chǔ)存位置,以供該提取單元載入。
33.如權(quán)利要求32所述的微處理器,其中,為了根據(jù)該目標(biāo)指令的上述存儲(chǔ)器地址判斷該微處理器中上述第二解密密鑰數(shù)據(jù)的該儲(chǔ)存位置,上述微代碼以上述存儲(chǔ)器地址查詢?cè)撐⑻幚砥鲀?nèi)一表格,該表格記載有存儲(chǔ)器地址范圍至該微處理器內(nèi)儲(chǔ)存位置的一映射。
34.如權(quán)利要求33所述的微處理器,其中,該微處理器的儲(chǔ)存位置是設(shè)計(jì)在該微處理器的一寄存器中或一隨機(jī)存取存儲(chǔ)器中。
35.如權(quán)利要求四所述的微處理器,其中該微處理器以原子型式執(zhí)行該分支與切換密鑰指令。
36.如權(quán)利要求四所述的微處理器,其中,該提取單元還用于于解密該分支與切換密鑰指令前,基于上述第一解密密鑰數(shù)據(jù)以及用于提取該分支與切換密鑰指令的一提取地址的部分內(nèi)容,生成一解密密鑰;其中,為了采用上述第一解密密鑰數(shù)據(jù)解密該分支與切換密鑰指令,該提取單元以所生成的該解密密鑰對(duì)該分支與切換密鑰指令實(shí)行布林異運(yùn)算。
37.一種操作方法,以一微處理器處理一加密程序,該操作方法包括采用第一解密密鑰數(shù)據(jù)提取并且解密一分支與切換密鑰指令;若該分支與切換密鑰指令的方向不被采用,基于上述第一解密密鑰數(shù)據(jù)提取并且解密該分支與切換密鑰指令之后的接續(xù)指令;以及若該分支與切換密鑰指令的方向被采用,基于不同于上述第一解密密鑰數(shù)據(jù)的第二解密密鑰數(shù)據(jù)提取并且解密該分支與切換密鑰指令的一目標(biāo)指令。
38.如權(quán)利要求37所述的操作方法,其中,上述基于上述第一解密密鑰數(shù)據(jù)解密該分支與切換密鑰指令與接續(xù)指令的操作是由該微處理器中使用上述第一解密密鑰數(shù)據(jù)的一提取單元執(zhí)行,其中,若該分支與切換密鑰指令的方向被采用,則該操作方法還包括在基于上述第二解密密鑰數(shù)據(jù)解密該目標(biāo)指令之前,更新該提取單元使用上述第二解密密鑰數(shù)據(jù)而非上述第一解密密鑰數(shù)據(jù)。
39.如權(quán)利要求37所述的操作方法,其中,若該分支與切換密鑰指令的方向被采用,該分支與切換密鑰指令標(biāo)示該微處理器中上述第二解密密鑰數(shù)據(jù)的一儲(chǔ)存位置,以供該提取單元載入。
40.如權(quán)利要求37所述的操作方法,若該分支與切換密鑰指令的方向被采用,還包括根據(jù)該目標(biāo)指令的存儲(chǔ)器地址判斷該微處理器中上述第二解密密鑰數(shù)據(jù)的一儲(chǔ)存位置,以供該提取單元載入。
41.如權(quán)利要求40所述的操作方法,其中,上述根據(jù)該目標(biāo)指令的上述存儲(chǔ)器地址判斷該微處理器內(nèi)上述第二解密密鑰數(shù)據(jù)的該儲(chǔ)存位置的步驟包括基于上述存儲(chǔ)器地址查詢?cè)撐⑻幚砥鲀?nèi)一表格,該表格記錄存儲(chǔ)器地址范圍至該微處理器儲(chǔ)存位置的一映射。
42.如權(quán)利要求41所述的操作方法,其中,該微處理器的儲(chǔ)存位置位于該微處理器的一寄存器中或一隨機(jī)存取存儲(chǔ)器中。
43.如權(quán)利要求37所述的操作方法,其中,該分支與切換密鑰指令的執(zhí)行是由該微處理器以原子型式操作。
44.如權(quán)利要求37所述的操作方法,還包括在上述解密該分支與切換密鑰指令的步驟之前,根據(jù)上述第一解密密鑰數(shù)據(jù)以及用于提取該分支與切換密鑰指令的一提取地址的部分內(nèi)容生成一解密密鑰;其中,上述基于上述第一解密密鑰數(shù)據(jù)解密該分支與切換密鑰指令的步驟包括以所生成的該解密密鑰對(duì)該分支與切換密鑰指令實(shí)行布林異運(yùn)算。
45.一種加密方法,用于加密一程序,以供用于解密與執(zhí)行加密程序的一微處理器日后執(zhí)行,該加密方法包括接收關(guān)于一非加密程序的一目的文件,該非加密程序包括傳統(tǒng)分支指令,上述傳統(tǒng)分支指令的目標(biāo)地址在該微處理器執(zhí)行該程序之前被判定;分析該程序以獲得塊信息,上述塊信息將該程序劃分成一序列多個(gè)塊,其中,各個(gè)上述塊包括一序列多個(gè)指令,其中,上述塊信息還包括上述各個(gè)塊的加密密鑰數(shù)據(jù),其中,各塊的加密密鑰數(shù)據(jù)并不相同;將上述傳統(tǒng)分支指令中目標(biāo)地址不與本身位于同一塊者各自以一分支與切換密鑰指令取代;以及基于上述塊信息加密該程序。
46.如權(quán)利要求45所述的加密方法,其中,上述分支與切換密鑰指令各自標(biāo)示該微處理器內(nèi)一儲(chǔ)存空間,以儲(chǔ)存上述分支與切換密鑰指令的目標(biāo)地址所在該塊的加密密鑰數(shù)據(jù)。
47.如權(quán)利要求45所述的加密方法,其中,上述根據(jù)塊信息加密該程序的步驟包括 針對(duì)各塊內(nèi)各個(gè)區(qū)塊的指令數(shù)據(jù),基于所屬塊的加密密鑰數(shù)據(jù)以及所屬區(qū)塊一存儲(chǔ)器地址的部份內(nèi)容生成一加秘密鑰;以及以所生成的該加秘密鑰對(duì)所對(duì)應(yīng)該區(qū)塊進(jìn)行布林異運(yùn)算。
48.一種加密方法,用于加密一程序,以供用于解密與執(zhí)行加密程序的一微處理器日后執(zhí)行,該加密方法包括接收一非加密程序的一目的文件,該非加密程序包括傳統(tǒng)分支指令,上述傳統(tǒng)分支指令的目標(biāo)地址僅能在該微處理器執(zhí)行該程序時(shí)判定;分析該程序以獲得塊信息,上述塊信息將該程序劃分成一序列多個(gè)塊,其中,各個(gè)上述塊包括一序列多個(gè)指令,其中,上述塊信息還包括上述各個(gè)塊的加密密鑰數(shù)據(jù),其中,各塊的加密密鑰數(shù)據(jù)并不相同;將上述傳統(tǒng)分支指令各自以一分支與切換密鑰指令取代;以及基于上述塊信息,加密該程序。
49.如權(quán)利要求48所述的加密方法,還包括將上述塊信息納入該目的文件中,以于該微處理器執(zhí)行該程序前載入該微處理器。
50.如權(quán)利要求49所述的加密方法,其中,載于該目的文件中、于執(zhí)行該程序前載入該微處理器的上述塊信息為各個(gè)上述塊在該微處理器中標(biāo)示一儲(chǔ)存空間,以儲(chǔ)存關(guān)于各個(gè)上述塊的上述加密密鑰數(shù)據(jù)。
51.如權(quán)利要求48所述的加密方法,其中,上述基于塊信息加密該程序的步驟包括 針對(duì)各個(gè)上述塊的各個(gè)區(qū)塊的指令數(shù)據(jù),基于所屬塊的加密密鑰數(shù)據(jù)以及所屬區(qū)塊的一存儲(chǔ)器地址的部分內(nèi)容生成一加密密鑰;以及以所生成的上述加密密鑰,對(duì)所對(duì)應(yīng)的區(qū)塊進(jìn)行布林異運(yùn)算。
52.一種微處理器,包括一寄存器,具有一位,其中,該微處理器用于設(shè)定該位;以及一提取單元,用于自一指令高速緩沖存儲(chǔ)器提取加密指令、并且在執(zhí)行上述加密指令前解密上述加密指令,以回應(yīng)該微處理器設(shè)定該位的操作;其中,該微處理器儲(chǔ)存該位的數(shù)值至一存儲(chǔ)器、且接著清除該位,以回應(yīng)接收到的一中斷事件;其中,該微處理器清除該位后,該提取單元自該指令高速緩沖存儲(chǔ)器提取非加密指令、 并且不作解密即執(zhí)行上述非加密指令;其中,該微處理器自該存儲(chǔ)器將先前儲(chǔ)存的數(shù)值用來(lái)修復(fù)該寄存器的該位,以回應(yīng)自中斷指令返回的操作;其中,若判斷出該位修復(fù)后的值為設(shè)定狀態(tài),該提取單元會(huì)再次開始提取并且解密加密指令。
53.如權(quán)利要求52所述的微處理器,其中,該寄存器的該位為x86架構(gòu)標(biāo)志寄存器的一預(yù)留位。
54.如權(quán)利要求52所述的微處理器,其中若該位為設(shè)定,為了解密加密指令,該提取單元以一解密密鑰對(duì)加密指令進(jìn)行布林異運(yùn)算;并且若該位為清除,該提取單元以多位的二進(jìn)位零值對(duì)非加密指令進(jìn)行布林異運(yùn)算。
55.如權(quán)利要求52所述的微處理器,其中,該微處理器用于執(zhí)行一系統(tǒng)軟件接收?qǐng)?zhí)行具有加密指令的一第一程序的一要求,并且,在具有加密指令的一第二程序正由該微處理器執(zhí)行的狀況下,待該第二程序執(zhí)行完畢后方執(zhí)行該第一程序。
56.一操作方法,用以操作具有一指令高速緩沖存儲(chǔ)器以及一寄存器的一微處理器,該操作方法包括令該寄存器的一位為設(shè)定,且隨后自該指令高速緩沖存儲(chǔ)器提取加密指令、并在執(zhí)行上述加密指令前將上述加密指令解密;儲(chǔ)存該架構(gòu)寄存器該位的數(shù)值、并接著清除該位,以回應(yīng)所接收到的一中斷事件; 在清除該位后,自該指令高速緩沖存儲(chǔ)器提取非加密指令,并且不作解密即執(zhí)行上述非加密指令;以先前儲(chǔ)存的數(shù)值修復(fù)該寄存器的該位,以回應(yīng)自中斷指令返回的操作;以及若判定該位修復(fù)后的數(shù)值為設(shè)定狀態(tài),回復(fù)上述提取、解密并且執(zhí)行加密指令的操作。
57.如權(quán)利要求56所述的操作方法,其中該架構(gòu)寄存器的該位為x86架構(gòu)標(biāo)志寄存器的一預(yù)留位。
58.如權(quán)利要求56所述的操作方法,其中若該位為設(shè)定,上述解密加密指令的步驟包括以一解密密鑰對(duì)加密指令進(jìn)行布林異運(yùn)算;以及若該位為清空,上述不對(duì)非加密指令作解密的操作包括以多位的二進(jìn)位零值對(duì)非加密指令作布林異運(yùn)算。
59.如權(quán)利要求56所述的操作方法,還包括接收一要求,目的是執(zhí)行具有加密指令的一第一程序;并且若該微處理器正在執(zhí)行具有加密指令的一第二程序,則等待直至該第二程序執(zhí)行完畢后方執(zhí)行該第一程序。
60.一微處理器,包括 一寄存器,具有一位;以及一提取單元;其中,若接收到中斷執(zhí)行中程序的一要求,該微處理器儲(chǔ)存該位的數(shù)值,其中,該位指示執(zhí)行中的程序?yàn)榧用芑蚍羌用埽黄渲?,該微處理器以先前?chǔ)存的數(shù)值修復(fù)該位、并且重新提取被中斷的程序作為執(zhí)行中程序,以回應(yīng)自中斷指令返回的操作;其中,若該位修復(fù)后的數(shù)值為設(shè)定狀態(tài),該微處理器在重新提取所中斷的程序前將解密密鑰數(shù)值修復(fù),并且以修復(fù)后的解密密鑰數(shù)值解密所提取的指令;其中,若該位修復(fù)后的數(shù)值為清除狀態(tài),該微處理器不會(huì)修復(fù)密鑰數(shù)值、也不會(huì)將提取的指令解密。
61.如權(quán)利要求60所述的微處理器,其中,該位為x86架構(gòu)標(biāo)志寄存器的一位。
62.如權(quán)利要求60所述的微處理器,其中,該微處理器是將該位的數(shù)值儲(chǔ)存于一存儲(chǔ)器,其中,該微處理器是自該存儲(chǔ)器存取得先前儲(chǔ)存的數(shù)值用于修復(fù)該位。
63.如權(quán)利要求60所述的微處理器,其中為了以修復(fù)后的解密密鑰數(shù)值解密所提取的指令,該微處理器以修復(fù)后的解密密鑰數(shù)值發(fā)展出一解密密鑰對(duì)所提取的指令進(jìn)行布林異運(yùn)算;并且為了不對(duì)所提取的指令作解密操作,該微處理器以多位的二進(jìn)位零值對(duì)所提取的指令作布林異運(yùn)算。
64.如權(quán)利要求60所述的微處理器,其中,為了修復(fù)解密密鑰數(shù)值,該微處理器自一儲(chǔ)存元件將解密密鑰數(shù)值載入一寄存器文檔,其中,該儲(chǔ)存元件儲(chǔ)存有多個(gè)加密程序各自的解密密鑰數(shù)值,其中,該寄存器文檔是儲(chǔ)存正在執(zhí)行的該個(gè)程序的解密密鑰數(shù)值。
65.如權(quán)利要求64所述的微處理器,其中,該微處理器還用于執(zhí)行一系統(tǒng)軟件接收?qǐng)?zhí)行新的加密程序的一要求,若該儲(chǔ)存元件沒(méi)有足夠的自由空間儲(chǔ)存上述新的加密程序的解密密鑰數(shù)值,等待直至該儲(chǔ)存元件騰出足夠的自由空間方執(zhí)行上述新的加密程序。
66.一操作方法,用于操作一微處理器,該操作方法包括于儲(chǔ)存該微處理器一位的數(shù)值,以回應(yīng)所接收到的中斷執(zhí)行中程序的一要求,其中,該位標(biāo)示上述執(zhí)行中程序?yàn)榧用芑蚍羌用?;回?yīng)自中斷指令返回的操作,將先前儲(chǔ)存的數(shù)值用來(lái)修復(fù)該位,并且重新提取中斷的程序如同執(zhí)行中程序運(yùn)作;若該位修復(fù)后的數(shù)值為設(shè)定狀態(tài),在重新提取中斷的程序之前,將解密密鑰數(shù)值修復(fù), 以采用修復(fù)后的解密密鑰數(shù)值解密所提取的指令;以及若該位修復(fù)后的數(shù)值為清除狀態(tài),則不修復(fù)解密密鑰數(shù)值,并且不解密所提取的指令。
67.如權(quán)利要求66所述的操作方法,其中,上述儲(chǔ)存該位的數(shù)值的步驟包括儲(chǔ)存該位的數(shù)值至一存儲(chǔ)器,其中,上述以先前儲(chǔ)存的數(shù)值修復(fù)該位的步驟包括自該存儲(chǔ)器將先前儲(chǔ)存的數(shù)值復(fù)原至該位。
68.如權(quán)利要求66所述的操作方法,其中上述采用修復(fù)后的解密密鑰數(shù)值解密所提取的指令的步驟包括將自修復(fù)后的解密密鑰數(shù)值所推得的一解密密鑰對(duì)所提取的指令作布林異運(yùn)算;以及上述不解密所提取的指令的步驟包括以多位的二進(jìn)位零值對(duì)所提取的指令作布林異運(yùn)算。
69.如權(quán)利要求66所述的操作方法,其中,上述修復(fù)解密密鑰數(shù)值的步驟包括自一儲(chǔ)存元件將解密密鑰數(shù)值載入一寄存器文檔,其中,該儲(chǔ)存元件儲(chǔ)存多個(gè)加密程序各自的解密密鑰數(shù)值,其中,該寄存器文檔是儲(chǔ)存正在執(zhí)行中的該個(gè)加密程序的解密密鑰數(shù)值。
70.如權(quán)利要求69所述的操作方法,還包括接收?qǐng)?zhí)行新的加密程序的一要求;若該儲(chǔ)存元件沒(méi)有足夠的自由空間儲(chǔ)存該個(gè)新的加密程序的解密密鑰數(shù)值,等待直至該儲(chǔ)存元件有足夠的自由空間后,方執(zhí)行該個(gè)新的加密程序。
71.一種微處理器,包括一儲(chǔ)存元件,包括多個(gè)位置,用以各自儲(chǔ)存一加密程序的解密密鑰數(shù)據(jù);一控制寄存器,包括一字段,標(biāo)示該儲(chǔ)存元件上述多個(gè)位置的一對(duì)應(yīng)執(zhí)行中的加密程序,其中,該微處理器自存儲(chǔ)器將先前儲(chǔ)存的該字段的數(shù)值修復(fù)至該控制寄存器,以回應(yīng)自中斷指令返回的操作,;一提取單元,提取執(zhí)行中加密程序的加密指令,并將之以該字段修復(fù)后的數(shù)值,在該儲(chǔ)存元件所標(biāo)示的位置其所儲(chǔ)存的解密密鑰數(shù)據(jù)解密。
72.如權(quán)利要求71所述的微處理器,其中,關(guān)于令該微處理器執(zhí)行新的加密程序的要求,該微處理器更設(shè)定該控制寄存器該字段標(biāo)示該儲(chǔ)存元件上配置給上述新的加密程序儲(chǔ)存解密密鑰數(shù)據(jù)的位置。
73.如權(quán)利要求72所述的微處理器,其中,該微處理器更將上述新的加密程序的解密密鑰數(shù)據(jù)載入這些位置中對(duì)應(yīng)配置者,并且自這些位置中對(duì)應(yīng)配置者載入該提取單元。
74.如權(quán)利要求71所述的微處理器,其中,該儲(chǔ)存元件包括一寄存器文檔或一存儲(chǔ)器, 其中,該儲(chǔ)存元件上述多個(gè)位置各自包括一寄存器儲(chǔ)存解密密鑰數(shù)據(jù)或一存儲(chǔ)器位置儲(chǔ)存解密密鑰數(shù)據(jù)。
75.如權(quán)利要求71所述的微處理器,其中,該提取單元更以該字段修復(fù)后的數(shù)值在該儲(chǔ)存元件所標(biāo)示的位置所儲(chǔ)存的解密密鑰數(shù)據(jù)對(duì)所提取的加密指令執(zhí)行布林異運(yùn)算,以解密所提取的加密指令。
76.如權(quán)利要求71所述的微處理器,其中該控制寄存器包括修復(fù)上述字段的x86架構(gòu)標(biāo)志寄存器。
77.如權(quán)利要求71所述的微處理器,其中,回應(yīng)上述自中斷指令返回的操作,若該字段修復(fù)后的數(shù)值在該儲(chǔ)存元件所標(biāo)示的位置所相關(guān)的一位為設(shè)定,該微處理器在該提取單元解密所提取出的加密指令前發(fā)出一異常警示。
78.如權(quán)利要求77所述的微處理器,其中,回應(yīng)該異常警示,該微處理器在該提取單元解密所提取的加密指令之前,將執(zhí)行中的加密程序的解密密鑰數(shù)據(jù)重新載入該字段修復(fù)后的數(shù)值在該儲(chǔ)存元件所標(biāo)示的位置。
79.如權(quán)利要求77所述的微處理器,其中,該位被設(shè)定為設(shè)定狀態(tài),以顯示在上述自中斷指令返回的操作執(zhí)行前,所欲重啟的加密程序在該儲(chǔ)存元件上所對(duì)應(yīng)的位置所儲(chǔ)存的解密密鑰數(shù)據(jù)已被覆寫。
80.如權(quán)利要求79所述的微處理器,其中,儲(chǔ)存元件內(nèi)位置覆寫狀況是發(fā)生在該微處理器開始執(zhí)行一個(gè)新的加密程序、但該儲(chǔ)存元件沒(méi)有足夠的自由空間儲(chǔ)存該個(gè)新的加密程序的解密密鑰數(shù)據(jù)時(shí)。
81.如權(quán)利要求79所述的微處理器,其中儲(chǔ)存元件內(nèi)位置覆寫狀況是發(fā)生在該微處理器回應(yīng)該異常警示、將所執(zhí)行程序?qū)?yīng)的解密密鑰數(shù)據(jù)重新載入該字段修復(fù)后的數(shù)值在該儲(chǔ)存元件所指示的位置時(shí)。
82.如權(quán)利要求71所述的微處理器,其中該微處理器更執(zhí)行系統(tǒng)軟件以接收?qǐng)?zhí)行新的加密程序的要求;在該儲(chǔ)存元件內(nèi)的自由空間不足以儲(chǔ)存上述新的加密程序的解密密鑰數(shù)據(jù)時(shí),等待直至該儲(chǔ)存元件得以供應(yīng)足夠自由空間后,方執(zhí)行上述新的加密程序。
83.一種操作方法,用以操作具有一控制寄存器以及一儲(chǔ)存元件的一微處理器,該儲(chǔ)存元件內(nèi)多個(gè)位置用以各自儲(chǔ)存一加密程序的解密密鑰數(shù)據(jù),上述操作方法包括將該控制寄存器的一字段以先前儲(chǔ)存于存儲(chǔ)器內(nèi)的該字段的數(shù)值修復(fù),以回應(yīng)自中斷指令返回的操作,其中,該字段的數(shù)值標(biāo)示執(zhí)行中的加密程序于該儲(chǔ)存元件多個(gè)位置何者;提取執(zhí)行中的加密程序的加密指令;以及采用該字段修復(fù)后的數(shù)值,在該儲(chǔ)存元件所指示的位置其所儲(chǔ)存的解密密鑰數(shù)據(jù)解密所提取的加密指令。
84.如權(quán)利要求83所述的操作方法,還包括在解密所提取的加密指令前,將該字段修復(fù)后的數(shù)值在該儲(chǔ)存元件中所標(biāo)示的位置其所儲(chǔ)存的解密密鑰數(shù)據(jù)載入該微處理器的一提取單元。
85.如權(quán)利要求83所述的操作方法,還包括配置該儲(chǔ)存元件上多個(gè)位置的一儲(chǔ)存被要求由該微處理器執(zhí)行的一個(gè)新的加密程序的解密密鑰數(shù)據(jù);設(shè)定該控制寄存器該字段的數(shù)值,以標(biāo)示上述配置步驟于該儲(chǔ)存元件中配置的該位置;以及。將該個(gè)新的加密程序的解密密鑰數(shù)據(jù)載入上述配置步驟于該儲(chǔ)存元件中配置的該位置。
86.如權(quán)利要求83所述的操作方法,其中,上述解密所提取的加密指令的步驟包括以該字段修復(fù)后的數(shù)值在該儲(chǔ)存元件所標(biāo)示的位置其所儲(chǔ)存的解密密鑰數(shù)據(jù)對(duì)所提取的加密指令進(jìn)行布林異運(yùn)算。
87.如權(quán)利要求83所述的操作方法,還包括回應(yīng)上述自中斷指令返回的操作,若該字段修復(fù)后的數(shù)值在該儲(chǔ)存元件所標(biāo)示的位置所相關(guān)的一位為設(shè)定,在解密所提取出的加密指令前發(fā)出一異常警示。
88.如權(quán)利要求87所述的操作方法,還包括回應(yīng)該異常警示,在解密所提取的加密指令之前,將執(zhí)行中的加密程序的解密密鑰數(shù)據(jù)重新載入該字段修復(fù)后的數(shù)值在該儲(chǔ)存元件所標(biāo)示的位置。
89.如權(quán)利要求87所述的操作方法,還包括在上述自中斷指令返回的操作執(zhí)行前,覆寫遮蓋了將重啟的加密程序在該儲(chǔ)存元件上所對(duì)應(yīng)的位置所儲(chǔ)存的解密密鑰數(shù)據(jù);令該位為設(shè)定狀態(tài),以標(biāo)示上述覆寫操作曾發(fā)生。
90.如權(quán)利要求89所述的操作方法,還包括判定該儲(chǔ)存元件不存在足夠的自由空間給該微處理器將執(zhí)行的一個(gè)新的加密程序;其中,回應(yīng)上述判定該儲(chǔ)存元件不存在足夠自由空間的步驟,以覆寫方式配置該儲(chǔ)存單元內(nèi)的位置給該個(gè)新的加密程序。
91.如權(quán)利要求89所述的操作方法,其中,回應(yīng)該異常警示,以覆寫方式將所執(zhí)行程序?qū)?yīng)的解密密鑰數(shù)據(jù)重新載入該字段修復(fù)后的數(shù)值在該儲(chǔ)存元件所指示的位置。
92.如權(quán)利要求83所述的操作方法,還包括接收?qǐng)?zhí)行一個(gè)新的加密程序的要求;以及在該儲(chǔ)存元件沒(méi)有足夠自由空間儲(chǔ)存該個(gè)新的加密程序的解密密鑰數(shù)據(jù)的狀況下,等待直至該儲(chǔ)存元件得以供應(yīng)足夠的自由空間,方執(zhí)行該個(gè)新的加密程序。
93.一微處理器,包括一分支目標(biāo)地址高速緩沖存儲(chǔ)器,記錄先前執(zhí)行過(guò)的分支與切換密鑰指令的歷史信息,其中,上述歷史信息包括所記錄的分支與切換密鑰指令的目標(biāo)地址以及標(biāo)識(shí)符,上述標(biāo)識(shí)符標(biāo)示與所屬的分支與切換密鑰指令相關(guān)的多個(gè)密鑰數(shù)值;一提取單元,耦接該分支目標(biāo)地址高速緩沖存儲(chǔ)器、并且用于于提取先前執(zhí)行過(guò)的分支與切換密鑰指令時(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è)。
94.如權(quán)利要求93所述的微處理器,其中該提取單元將所提取的加密指令數(shù)據(jù)與一解密密鑰作布林異運(yùn)算以解密,其中,該解密密鑰是以所接收的標(biāo)識(shí)符標(biāo)示的密鑰數(shù)值為一函數(shù)產(chǎn)生。
95.如權(quán)利要求93所述的微處理器,其中上述標(biāo)識(shí)符包括一索引,指示用于儲(chǔ)存密鑰數(shù)值的一寄存器文檔內(nèi)的一位置。
96.如權(quán)利要求95所述的微處理器,其中,該提取單元還包括一主密鑰寄存器文檔,儲(chǔ)存該提取單元解密所提取的加密指令數(shù)據(jù)所需的多個(gè)密鑰數(shù)值;以及密鑰切換邏輯,耦接該分支目標(biāo)地址高速緩沖存儲(chǔ)器以及該主密鑰寄存器文檔,基于自該分支目標(biāo)地址高速緩沖存儲(chǔ)器所接收的該索引,將該索引在該寄存器文檔所指示的位置所儲(chǔ)存的多個(gè)密鑰數(shù)值用于更新上述主密鑰寄存器文檔。
97.如權(quán)利要求96所述微處理器,其中,若該分支目標(biāo)地址高速緩沖存儲(chǔ)器對(duì)所提取的分支與切換密鑰指令的預(yù)測(cè)不正確,該微處理器隨后修復(fù)上述主密鑰寄存器文檔的數(shù)值為更新前的值。
98.如權(quán)利要求93所述的微處理器,其中,該分支目標(biāo)地址高速緩沖存儲(chǔ)器更記錄先前執(zhí)行過(guò)的傳統(tǒng)分支指令的歷史信息,其中,無(wú)論是分支與切換密鑰指令還是傳統(tǒng)分支指令的歷史信息,皆包括型式指標(biāo),標(biāo)示所記錄的指令是屬于分支與切換密鑰指令還是傳統(tǒng)分支指令。
99.如權(quán)利要求93所述的微處理器,其中該提取單元產(chǎn)生一提取地址用于自一指令高速緩沖存儲(chǔ)器提取指令,其中,該提取地址還用于存取該分支目標(biāo)地址高速緩沖存儲(chǔ)器。
100.如權(quán)利要求93所述的微處理器,其中上述歷史信息還包括先前執(zhí)行過(guò)的分支與切換密鑰指令的采用/不采用指標(biāo),若該分支目標(biāo)地址高速緩沖存儲(chǔ)器所提供的采用/不采用指標(biāo)預(yù)測(cè)目前提取的分支與切換密鑰指令將被采用,回應(yīng)所接收的預(yù)測(cè),以該提取單元提取所接收的目標(biāo)地址上的加密指令數(shù)據(jù)、并且將之基于所接收的標(biāo)識(shí)符所標(biāo)示的多個(gè)密鑰數(shù)值解密。
101.如權(quán)利要求93所述的微處理器,其中,若該微處理器隨后判定該分支目標(biāo)地址高速緩沖存儲(chǔ)器已正確地預(yù)測(cè)所提取的分支與切換密鑰指令,該微處理器免于清空本身管線。
102.如權(quán)利要求93所述的微處理器,其中,若該微處理器執(zhí)行一分支與切換密鑰指令、并且判定該分支目標(biāo)地址高速緩沖存儲(chǔ)器無(wú)法預(yù)測(cè)該提取單元對(duì)該分支與切換密鑰指令的操作,該微處理器會(huì)清空本身管線;根據(jù)該分支與切換密鑰指令所指示的一目標(biāo)地址提取加密指令數(shù)據(jù);并且根據(jù)該分支與切換密鑰指令所指示的多個(gè)密鑰數(shù)值解密所提取的加密指令數(shù)據(jù)。
103.如權(quán)利要求93所述的微處理器,其中,該分支目標(biāo)地址高速緩沖存儲(chǔ)器更儲(chǔ)存先前執(zhí)行過(guò)的密鑰切換指令的歷史信息,其中,密鑰切換指令的上述歷史信息包括標(biāo)識(shí)符,用于標(biāo)示與所屬的密鑰切換指令相關(guān)的多個(gè)密鑰數(shù)值,其中,無(wú)論是分支與切換密鑰指令或是密鑰切換指令,皆包括型式指標(biāo),標(biāo)示所記錄的指令是屬于分支與切換密鑰指令還是密鑰切換指令。
104.一種操作方法,用以操作一微處理器,該操作方法包括記錄先前執(zhí)行過(guò)的分支與切換密鑰指令的歷史信息于一分支目標(biāo)地址高速緩沖寄存器,其中,上述歷史信息包括所記錄的分支與切換密鑰指令的目標(biāo)地址以及標(biāo)識(shí)符,上述標(biāo)識(shí)符標(biāo)示與所屬的分支與切換密鑰指令相關(guān)的多個(gè)密鑰數(shù)值;于提取先前執(zhí)行過(guò)的分支與切換密鑰指令時(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è)。
105.如權(quán)利要求104所述操作方法,其中,上述解密所提取的加密指令數(shù)據(jù)的步驟是將所提取的加密指令數(shù)據(jù)與一解密密鑰作布林異運(yùn)算,其中,該解密密鑰是以所接收的標(biāo)識(shí)符標(biāo)示的多個(gè)密鑰數(shù)值為一函數(shù)產(chǎn)生。
106.如權(quán)利要求104所述操作方法,其中,上述標(biāo)識(shí)符包括一索引,指示用于儲(chǔ)存密鑰數(shù)值的一寄存器文檔內(nèi)的一位置。
107.如權(quán)利要求106所述操作方法,還包括以一主密鑰寄存器文檔儲(chǔ)存解密所提取的加密指令數(shù)據(jù)所需的多個(gè)密鑰數(shù)值;以及基于自該分支目標(biāo)地址高速緩沖存儲(chǔ)器所接收的該索引,將該索引在該寄存器文檔所指示的位置所儲(chǔ)存的多個(gè)密鑰數(shù)值用于更新上述主密鑰寄存器文檔,以回應(yīng)接收的上述預(yù)測(cè)。
108.如權(quán)利要求107所述的操作方法,還包括若該分支目標(biāo)地址高速緩沖存儲(chǔ)器對(duì)所提取的分支與切換密鑰指令的預(yù)測(cè)不正確,隨后修復(fù)上述主密鑰寄存器文檔的數(shù)值為更新前的值。
109.如權(quán)利要求106所述的操作方法,還包括在該分支目標(biāo)地址塊取存儲(chǔ)器記錄先前執(zhí)行過(guò)的傳統(tǒng)分支指令的歷史信息,其中,無(wú)論是分支與切換密鑰指令還是傳統(tǒng)分支指令的歷史信息,皆包括型式指標(biāo),標(biāo)示所記錄的指令是屬于分支與切換密鑰指令還是傳統(tǒng)分支指令。
110.如權(quán)利要求104所述操作方法,還包括產(chǎn)生一提取地址用于自一指令高速緩沖存儲(chǔ)器提取指令;并且以該提取地址存取該分支目標(biāo)地址高速緩沖存儲(chǔ)器。
111.如權(quán)利要求104所述的操作方法,其中,上述歷史信息還包括先前執(zhí)行過(guò)的分支與切換密鑰指令的采用/不采用指標(biāo),若該分支目標(biāo)地址高速緩沖存儲(chǔ)器所提供的采用/不采用指標(biāo)預(yù)測(cè)目前提取的分支與切換密鑰指令將被采用,回應(yīng)所接收的預(yù)測(cè),該操作方法包括提取所接收的目標(biāo)地址上的加密指令數(shù)據(jù)、并且將之基于所接收的標(biāo)識(shí)符所標(biāo)示的多個(gè)密鑰數(shù)值解密。
112.如權(quán)利要求104所述操作方法,還包括若該微處理器隨后判定該分支目標(biāo)地址高速緩沖存儲(chǔ)器已正確地預(yù)測(cè)所提取的分支與切換密鑰指令,省略清空該微處理器管線的操作。
113.如權(quán)利要求104所述的操作方法,還包括執(zhí)行一分支與切換密鑰指令;若判定該分支目標(biāo)地址高速緩沖存儲(chǔ)器無(wú)法預(yù)測(cè)該分支與切換密鑰指令的操作,則執(zhí)行清空該微處理器的管線;根據(jù)該分支與切換密鑰指令所指示的一目標(biāo)地址提取加密指令數(shù)據(jù);并且根據(jù)該分支與切換密鑰指令所指示的多個(gè)密鑰數(shù)值解密所提取的加密指令數(shù)據(jù)。
114.如權(quán)利要求104所述的操作方法,還包括于該分支目標(biāo)地址高速緩沖存儲(chǔ)器記錄先前執(zhí)行過(guò)的密鑰切換指令的歷史信息,其中,密鑰切換指令的上述歷史信息包括標(biāo)識(shí)符,用于標(biāo)示與所屬的密鑰切換指令相關(guān)的多個(gè)密鑰數(shù)值,其中,無(wú)論是分支與切換密鑰指令或是密鑰切換指令,皆包括型式指標(biāo),標(biāo)示所記錄的指令是屬于分支與切換密鑰指令還是密鑰切換指令。
全文摘要
本發(fā)明涉及微處理器以及相關(guān)的操作方法、以及加密、解密方法。該微處理器以一提取單元作以下操作(a)自微處理器的指令高速緩沖存儲(chǔ)器提取一區(qū)塊的指令數(shù)據(jù);(b)以一數(shù)據(jù)實(shí)體對(duì)該區(qū)塊執(zhí)行布林異運(yùn)算,以生成純文字指令數(shù)據(jù);以及(c)將上述純文字指令數(shù)據(jù)提供給指令解碼單元。在一第一狀況下,該區(qū)塊包括加密指令數(shù)據(jù)、且該數(shù)據(jù)實(shí)體為解密密鑰。在一第二狀況下,該區(qū)塊包括非加密指令數(shù)據(jù)、且該數(shù)據(jù)實(shí)體為多個(gè)位的二進(jìn)位零值。無(wú)論該區(qū)塊的指令數(shù)據(jù)為加密或非加密,實(shí)行上述內(nèi)容(a)、(b)以及(c)所需要的時(shí)間在該第一狀況下以及該第二狀況下是相同的。
文檔編號(hào)G06F9/30GK102221989SQ20111013644
公開日2011年10月19日 申請(qǐng)日期2011年5月25日 優(yōu)先權(quán)日2010年5月25日
發(fā)明者葛蘭.亨利 G., 布蘭特.比恩, 湯姆士.A.克理斯賓, 泰瑞.派克斯 申請(qǐng)人:威盛電子股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
隆安县| 玉树县| 墨玉县| 高雄市| 左云县| 通榆县| 德化县| 花垣县| 海盐县| 定西市| 钦州市| 宜兰市| 昌江| 缙云县| 黄冈市| 亚东县| 蒙自县| 孟村| 衡阳市| 滕州市| 海门市| 北辰区| 华坪县| 阳高县| 静海县| 沾化县| 达孜县| 诸暨市| 讷河市| 壤塘县| 山丹县| 清徐县| 库尔勒市| 垫江县| 定兴县| 浦北县| 安远县| 延津县| 海原县| 报价| 喀喇|