本發(fā)明涉及集成電路、微處理器及信息安全技術(shù)領(lǐng)域,具體涉及一種固定解密算法的直接執(zhí)行已加密指令的處理器架構(gòu)。
背景技術(shù):
為了便于閱讀和理解對(duì)相關(guān)詞匯界定如下:機(jī)器碼是指處理器能夠直接執(zhí)行的指令二進(jìn)制代碼;未定義機(jī)器碼是指不包括在處理器指令系統(tǒng)中的二進(jìn)制碼;指令是指處理器執(zhí)行機(jī)器碼能夠?qū)崿F(xiàn)的操作,指令與機(jī)器碼一一對(duì)應(yīng);帶密機(jī)器碼是指被加密的機(jī)器碼;帶密可執(zhí)行程序是指被加密的可執(zhí)行程序;密碼指令是指被加密的指令;明碼指令是指密碼指令被解密后的、現(xiàn)有處理器能夠直接執(zhí)行的指令。
綜述處理器架構(gòu),其存儲(chǔ)結(jié)構(gòu)包括馮諾依曼結(jié)構(gòu)和哈佛結(jié)構(gòu),指令系統(tǒng)包括復(fù)雜指令集(CISC)與精簡(jiǎn)指令集(RISC),每一類處理器都有自己的指令系統(tǒng),指令運(yùn)行是通過流水線結(jié)構(gòu)實(shí)現(xiàn)的。在流水線(包括三級(jí)流水線及更多級(jí)流水線)中,都會(huì)包括讀取指令模塊與指令譯碼模塊。在現(xiàn)有的處理器架構(gòu)中,處理器從內(nèi)存/緩存中直接讀得機(jī)器碼來執(zhí)行,一段程序可以在相同架構(gòu)處理器上運(yùn)行(例如WORD能在不同PC機(jī)上運(yùn)行);如果處理器從內(nèi)存/緩存中讀得的是未定義機(jī)器碼,那么處理器就無法執(zhí)行該機(jī)器碼并報(bào)錯(cuò)。也就是說,如果是帶密機(jī)器碼(機(jī)器碼加密后可能成了未定義機(jī)器碼或錯(cuò)誤機(jī)器碼),處理器就不能執(zhí)行或者錯(cuò)誤執(zhí)行,即現(xiàn)有的處理器中并不提供指令執(zhí)行級(jí)的安全機(jī)制。處理器的性能提高主要包括其執(zhí)行速度、存儲(chǔ)速度和功能擴(kuò)展等。綜述信息安全,信息安全主要包括實(shí)體安全、運(yùn)行安全、數(shù)據(jù)安全和管理安全四個(gè)方面,這些方面都是處理器之外的信息安全機(jī)制,都與處理器執(zhí)行指令方式無關(guān)。
現(xiàn)有的三級(jí)流水線結(jié)構(gòu)示例:如圖1所示,正常流水時(shí),一個(gè)時(shí)鐘完成一條指令的執(zhí)行。處理器執(zhí)行指令的過程:處理器首先由讀取指令模塊從內(nèi)存/緩存中讀取機(jī)器碼,然后由指令譯碼模塊對(duì)機(jī)器碼譯碼,最后由執(zhí)行指令模塊完成指令功能。
綜上所述,在目前處理器體系結(jié)構(gòu)下,信息安全體系主要采用許可證、密碼、軟件加密等措施,所有的安全機(jī)制都未涉及到處理器執(zhí)行指令級(jí)的安全性、都是建立在處理器本身是安全的基礎(chǔ)上,所研究?jī)?nèi)容都集中于處理器之外的通信安全、數(shù)據(jù)安全等。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)上述問題,本發(fā)明要解決的技術(shù)問題是提供一種結(jié)構(gòu)合理、安全可靠、實(shí)現(xiàn)簡(jiǎn)便的基于固定解密算法的直接執(zhí)行已加密指令的處理器架構(gòu)。
本發(fā)明的一種固定解密算法的直接執(zhí)行已加密指令的處理器架構(gòu),它包含讀取指令模塊、指令解密模塊、指令譯碼模塊、執(zhí)行指令模塊;所述的讀取指令模塊與指令解密模塊連接;所述的指令解密模塊與指令譯碼模塊連接;所述的指令譯碼模塊與執(zhí)行指令模塊連接;所述的指令解密模塊包含解密模塊組、解密密碼、密碼指令、模塊選擇碼、明碼指令;所述的解密密碼、密碼指令、模塊選擇碼分別與解密模塊組連接;所述的解密模塊組與明碼指令連接。
所述的解密模塊組可以包括多種解密算法(如算術(shù)運(yùn)算加密算法、邏輯運(yùn)算加密算法等),可以由模塊選擇碼選擇某一種解密算法使用;解密模塊組也可以運(yùn)行在直連狀態(tài),即運(yùn)行在非解密狀態(tài),這也是默認(rèn)狀態(tài);在默認(rèn)狀態(tài)下,系統(tǒng)可以運(yùn)行非加密的配置程序,實(shí)現(xiàn)對(duì)解密密碼和模塊選擇碼的配置等;密碼指令是加密后的指令(也就是帶密機(jī)器碼),可以按指令長(zhǎng)度讀入、一次解密一條密碼指令,也可以按塊讀入、一次解密多條密碼指令并緩存;明碼指令是解密模塊組解密后的輸出,即機(jī)器碼。
基于本發(fā)明設(shè)計(jì)的處理器執(zhí)行指令的過程:在指令執(zhí)行過程中,基于本發(fā)明設(shè)計(jì)的處理器所執(zhí)行的二進(jìn)制程序代碼都是加了密的機(jī)器碼,即帶密機(jī)器碼。處理器首先由讀取指令模塊從存儲(chǔ)器中讀取帶密機(jī)器碼,然后由指令解密模塊對(duì)帶密機(jī)器碼解密獲得機(jī)器碼,再由指令譯碼模塊對(duì)機(jī)器碼譯碼,最后由執(zhí)行指令模塊完成一條指令機(jī)器碼的功能。在程序開發(fā)中,這并不影響用戶的程序開發(fā)的方式與方法,用戶一如既往地使用現(xiàn)有的通用計(jì)算機(jī)語言(如C語言等)編寫程序并使用相應(yīng)的通用編譯器生成通用可執(zhí)行程序。之后,用戶再運(yùn)行一個(gè)對(duì)應(yīng)的加密軟件,對(duì)通用可執(zhí)行程序再使用與解密模塊中所選擇的某一種解密算法相對(duì)應(yīng)的加密算法進(jìn)行加密生成帶密可執(zhí)行程序,該帶密可執(zhí)行程序就是由本發(fā)明的處理器架構(gòu)所生產(chǎn)的處理器所運(yùn)行的程序,實(shí)現(xiàn)了對(duì)加了密的程序的直接執(zhí)行。
基于本發(fā)明的處理器的設(shè)計(jì)方案:本發(fā)明主要在現(xiàn)有的處理器中,在其讀取指令模塊之前或者在讀取指令模塊與指令譯碼模塊之間添加一個(gè)指令解密模塊,也可以把讀取指令模塊與指令解密模塊合并為一個(gè)模塊或者把指令解密模塊與指令譯碼模塊合并為一個(gè)模塊;在流水線操作中添加了一級(jí)解密流水操作,實(shí)現(xiàn)了“直接執(zhí)行已加密指令”的功能,達(dá)到了處理器指令執(zhí)行級(jí)的安全性;因此,基于本發(fā)明設(shè)計(jì)的處理器不會(huì)改變現(xiàn)有的處理器的指令系統(tǒng),實(shí)現(xiàn)了對(duì)現(xiàn)有處理器的最大兼容。
本發(fā)明的有益效果:實(shí)現(xiàn)了從處理器執(zhí)行級(jí)的程序安全;可以實(shí)現(xiàn)程序安全、數(shù)據(jù)安全、通訊安全、執(zhí)行安全、防病毒、知識(shí)產(chǎn)權(quán)保護(hù)等。
附圖說明
為了易于說明,本發(fā)明由下述的具體實(shí)施及附圖作以詳細(xì)描述。
圖1是背景技術(shù)的結(jié)構(gòu)示意圖;
圖2是本發(fā)明的結(jié)構(gòu)示意圖;
圖3是本發(fā)明中指令解密模塊的模塊結(jié)構(gòu)圖;
圖中:
讀取指令模塊1、指令解密模塊2、指令譯碼模塊3、執(zhí)行指令模塊4、解密模塊組21、解密密碼22、密碼指令23、模塊選擇碼24、明碼指令25。
具體實(shí)施方式
如圖2至圖3所示,本具體實(shí)施方式采用以下技術(shù)方案:它包含讀取指令模塊1、指令解密模塊2、指令譯碼模塊3、執(zhí)行指令模塊4;所述的讀取指令模塊1與指令解密模塊2連接;所述的指令解密模塊2與指令譯碼模塊3連接;所述的指令譯碼模塊3與執(zhí)行指令模塊4連接;所述的指令解密模塊2包含解密模塊組21、解密密碼22、密碼指令23、模塊選擇碼24、明碼指令25;所述的解密密碼22、密碼指令23、模塊選擇碼24分別與解密模塊組21連接;所述的解密模塊組21與明碼指令25連接。
所述的解密模塊組21可以包括多種解密算法(如算術(shù)運(yùn)算加密算法、邏輯運(yùn)算加密算法等),可以由模塊選擇碼24選擇某一種解密算法使用;解密模塊組21也可以運(yùn)行在直連狀態(tài),即運(yùn)行在不做解密狀態(tài),這也是默認(rèn)狀態(tài);在默認(rèn)狀態(tài)下,系統(tǒng)可以運(yùn)行非加密的配置程序,實(shí)現(xiàn)對(duì)解密密碼和模塊選擇碼的配置等;密碼指令23即是帶密機(jī)器碼,可以按指令長(zhǎng)度讀入、一次解密一條密碼指令,也可以按塊讀入、一次解密多條密碼指令并緩存;明碼指令25是解密模塊組解密后的機(jī)器碼。
本具體實(shí)施方式主要在現(xiàn)有的處理器設(shè)計(jì)方案中,在其讀取指令模塊1與指令譯碼模塊3之間添加一個(gè)指令解密模塊2;在流水線操作中添加了一級(jí)解密流水操作,實(shí)現(xiàn)了“直接執(zhí)行已加密指令”的功能,達(dá)到了處理器指令執(zhí)行級(jí)的安全性;因此,基于本發(fā)明設(shè)計(jì)的處理器不會(huì)改變現(xiàn)有的處理器的指令系統(tǒng),實(shí)現(xiàn)了對(duì)現(xiàn)有處理器的最大兼容。
本具體實(shí)施方式處理器執(zhí)行指令的過程:在指令執(zhí)行過程中,基于本發(fā)明設(shè)計(jì)的處理器所執(zhí)行的二進(jìn)制程序代碼是帶密機(jī)器碼。處理器首先由讀取指令模塊1從存儲(chǔ)器中讀取帶密機(jī)器碼,然后由指令解密模塊2對(duì)帶密機(jī)器碼解密獲得機(jī)器碼,再由指令譯碼模塊3對(duì)機(jī)器碼譯碼,最后由執(zhí)行指令模塊4完成一條指令機(jī)器碼的功能。在程序開發(fā)中,用戶一如既往地使用現(xiàn)有的通用計(jì)算機(jī)語言(如C語言等)編寫程序并使用相應(yīng)的通用編譯器生成通用可執(zhí)行程序。之后,用戶再運(yùn)行一個(gè)對(duì)應(yīng)的加密軟件,對(duì)通用可執(zhí)行程序再使用與解密模塊21中所選擇的某一種解密算法相對(duì)應(yīng)的加密算法進(jìn)行加密生成帶密可執(zhí)行程序,該帶密可執(zhí)行程序就是由本發(fā)明的處理器架構(gòu)所生產(chǎn)的處理器所運(yùn)行的程序,實(shí)現(xiàn)了對(duì)加了密的程序的直接執(zhí)行。
本具體實(shí)施方式的有益效果:實(shí)現(xiàn)了從處理器執(zhí)行級(jí)的程序安全;可以實(shí)現(xiàn)程序安全、數(shù)據(jù)安全、通訊安全、執(zhí)行安全、防病毒、知識(shí)產(chǎn)權(quán)保護(hù)等。
以上顯示和描述了本發(fā)明的基本原理和主要特征以及本發(fā)明的優(yōu)點(diǎn)。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實(shí)施例的限制,上述實(shí)施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會(huì)有各種變化和改進(jìn),這些變化和改進(jìn)都落入要求保護(hù)的本發(fā)明范圍內(nèi)。本發(fā)明要求保護(hù)范圍由所附的權(quán)利要求書及其等效物界定。