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

一種可編程安全處理器的制作方法

文檔序號:7970720閱讀:167來源:國知局
專利名稱:一種可編程安全處理器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及集成電路設(shè)計中的微處理器設(shè)計技術(shù)領(lǐng)域,尤其涉及一種可編程安全處理器。
背景技術(shù)
當(dāng)今社會進入信息時代,隨著網(wǎng)絡(luò)信息技術(shù)的發(fā)展和應(yīng)用,信息安全關(guān)系著國家和個人的命運,信息安全越來越引起國家、社會和個人的重視。
信息安全主要建立在各種加解密算法上,加解密算法一般運算量都很大。在廣泛的嵌入式應(yīng)用系統(tǒng)中,一般的嵌入式微處理器的計算能力有限,執(zhí)行一次加解密運算需要很長時間,這使微處理器得在一些需要兼顧安全和實時性的應(yīng)用領(lǐng)域中難以勝任。
例如,在近年興起的無線傳感器網(wǎng)絡(luò)應(yīng)用中,商業(yè)上小區(qū)的無線安防網(wǎng)絡(luò),軍事上情報監(jiān)視等應(yīng)用都需要保證信息的安全,后者更需要保證信息的實時性。
一種解決的方法是采用特定的安全芯片,現(xiàn)在國內(nèi)外廣泛使用的密碼芯片大多是針對特定密碼算法而訂制的專用器件,對特定的密碼算法加解密速度很快。但是,芯片的體系結(jié)構(gòu)是固定的,密碼運算由硬件完成。因此,大多密碼芯片只能完成一種密碼算法,這在很多應(yīng)用場合是不夠的。例如上面所說的無線傳感器網(wǎng)絡(luò)應(yīng)用,需要自組網(wǎng)絡(luò),完成數(shù)據(jù)采集等工作。工作期間,需要應(yīng)用到多種不同的密碼算法,如身份認證,數(shù)據(jù)加密等。所以,單純的專用密碼芯片是不夠的。
因此,希望能有一種可編程的密碼芯片,它的特點是能有一套指令集,基于這套指令集編程,能高效地實現(xiàn)多種加解密算法。

發(fā)明內(nèi)容
(一)要解決的技術(shù)問題有鑒于此,本發(fā)明的主要目的在于提供一種可編程安全處理器,以滿足可編程要求,實現(xiàn)多種加解密算法。
(二)技術(shù)方案為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的一種可編程安全處理器,該安全處理器包括程序存儲器(PC),用于存儲加解密程序,并根據(jù)接收自控制譯碼器的程序計數(shù)器值選擇一條指令,并將選擇的指令分為運算指令和控制指令,分別發(fā)送給運算譯碼器和控制譯碼器;控制堆棧,用于完成控制譯碼器中寄存器和程序計數(shù)器的保存和恢復(fù);控制譯碼器,用于完成接收自程序存儲器的控制指令的譯碼和執(zhí)行,將內(nèi)部寄存器的值發(fā)送給運算譯碼器和控制堆棧,向控制堆棧發(fā)送壓棧出棧控制信號,并向運算執(zhí)行器發(fā)送分支預(yù)測指令信號;
運算譯碼器,用于對接收自程序存儲器的運算指令進行譯碼,根據(jù)譯碼結(jié)果和接收自控制譯碼器的內(nèi)部寄存器值生成源操作數(shù)地址、目的操作數(shù)地址和運算類型,將生成的源操作數(shù)地址和目的操作數(shù)地址發(fā)送給RAM控制器,生成的運算類型發(fā)送給運算執(zhí)行器;RAM控制器,用于根據(jù)接收自運算譯碼器的操作數(shù)地址和運算結(jié)果,從RAM中讀出源操作數(shù),將目的操作數(shù)寫入RAM,并根據(jù)接收自接口模塊的讀寫控制信號、地址信號和寫入數(shù)據(jù)執(zhí)行讀寫RAM的操作;運算執(zhí)行器,用于對接收自RAM控制器的操作數(shù)和運算譯碼器的運算類型信號執(zhí)行加解密運算,將執(zhí)行結(jié)果返回到RAM控制器;并根據(jù)運算結(jié)果向控制譯碼器返回分支預(yù)測結(jié)果信號,向運算堆棧發(fā)送壓棧出??刂菩盘?,對運算堆棧進行壓棧出??刂?;運算堆棧,用于保存運算執(zhí)行器中寄存器的值,接受運算執(zhí)行器的壓棧出棧控制;接口模塊,用于提供交互接口,實現(xiàn)安全處理器與外界進行的通信。
所述控制譯碼器包括指令譯碼器,用于完成接收自程序存儲器的控制指令的譯碼和執(zhí)行,向控制堆棧發(fā)送壓棧出??刂菩盘?,向累加寄存器rega、regb和程序計數(shù)器發(fā)送控制信號;累加寄存器rega、regb、regc,用于根據(jù)接收自指令譯碼器的控制信號向控制堆棧壓入或彈出數(shù)據(jù),將保存的數(shù)據(jù)發(fā)送給運算譯碼器;程序計數(shù)器,用于根據(jù)接收自指令譯碼器的控制信號向控制堆棧壓入或彈出程序計數(shù)器值,并向程序存儲器輸出程序計數(shù)器值。
所述控制譯碼器進一步包括基值寄存器regmax,以及基地址寄存器bs0、bs1、bs2和bs3,所述累加寄存器rega、regb和regc,以及基地址寄存器bs0、bs1、bs2和bs3都連接于運算譯碼器,在譯碼時,運算譯碼器利用所述累加寄存器rega、regb和regc,以及基地址寄存器bs0、bs1、bs2和bs3的值生成操作數(shù)的物理地址。
所述運算譯碼器包括指令譯碼單元,用于對接收自程序存儲器的運算指令進行譯碼,將譯碼結(jié)果輸出給地址生成單元和運算類型識別單元;地址生成單元,用于根據(jù)接收的譯碼結(jié)果和接收自控制譯碼器的內(nèi)部寄存器值生成源操作數(shù)地址和目的操作數(shù)地址,將生成的源操作數(shù)地址和目的操作數(shù)地址發(fā)送給RAM控制器;運算類型識別單元,用于根據(jù)接收的譯碼結(jié)果和接收自控制譯碼器的內(nèi)部寄存器值生成運算類型,將生成的運算類型發(fā)送給運算執(zhí)行器。
所述運算譯碼器生成的操作數(shù)采用基址變址尋址。
所述RAM控制器包括選擇器,用于從接收自運算譯碼器、運算執(zhí)行器和接口模塊的地址數(shù)據(jù)中選擇地址數(shù)據(jù)進行RAM操作;地址映射單元,用于將選擇器選擇的操作數(shù)地址映射到RAM中;RAM,用于根據(jù)地址映射單元映射的操作數(shù)地址寫入或讀出數(shù)據(jù),并將讀出的數(shù)據(jù)作為操作數(shù)發(fā)送給運算執(zhí)行器。
所述RAM包括4個獨立的RAM,分別為RAMA,RAMB,RAMC和RAMD,每個RAM都支持一讀一寫,操作數(shù)地址被映射到4個RAM中的一個。
所述運算執(zhí)行器包括高級加密標準(AES)正向/逆向字節(jié)變換器、哈希(HASH)壓縮函數(shù)運算器、高效乘法器、算術(shù)邏輯運算單元(ALU)運算器和寄存器;所述HASH壓縮函數(shù)運算器用于完成消息摘要算法(MD5)壓縮函數(shù)的4個基本邏輯函數(shù)F、G、H、I;所述寄存器包括ALU進位/借位標志位,兩8位數(shù)相乘高字節(jié)保存寄存器。
所述接口模塊實現(xiàn)的與外界進行的通信包括與外界進行的加解密數(shù)據(jù)、與外界進行的密鑰的輸入輸出或與外界進行的加解密控制;所述接口模塊處理的信號包括時鐘信號、復(fù)位信號、輸入輸出總線、加解密開始信號、加解密結(jié)束信號或輸入輸出控制信號。
(三)有益效果從上述技術(shù)方案可以看出,本發(fā)明具有以下有益效果1、本發(fā)明提供的這種可編程安全處理器,是一個能支持可編程的結(jié)構(gòu),通過分析大部分密碼運算的基本運算,然后設(shè)置這些基本運算單元,然后通過程序控制和基本運算就能實現(xiàn)多種加解密算法。由于這種可編程安全處理器支持可編程,而且易于高效實現(xiàn)多種密碼算法,所以滿足了在嵌入式應(yīng)用中需要快速實現(xiàn)多種密碼算法的需求。
2、利用本發(fā)明提供的可編程安全處理器,由于安全領(lǐng)域的算法主要是復(fù)雜的數(shù)學(xué)運算,該數(shù)學(xué)運算都是用復(fù)雜度不高的循環(huán)來控制完成,且算法的判斷跳轉(zhuǎn)的距離不長,運算指令和控制指令的分開,不用太復(fù)雜的控制邏輯就能夠應(yīng)付安全算法中的循環(huán)跳轉(zhuǎn),獨立出來的運算指令,可以使得整個處理器的時間片基本全部用來做數(shù)學(xué)運算,從而極大的減少了所需執(zhí)行的時間和指令數(shù)。
3、本發(fā)明提供的可編程安全處理器,通過構(gòu)建控制部件和運算部件并行譯碼執(zhí)行,一方面專用的控制部件能很好的實現(xiàn)循環(huán)控制,另一方面,控制指令和運算指令并行執(zhí)行節(jié)省了控制所需的時間,時間全部用在了運算上。這樣,大大提高了算法執(zhí)行效率。
4、本發(fā)明提供的可編程安全處理器,支持可編程,這樣能夠支持多種密碼算法,如RSA(RSA是一種加密方法,沒有固定的中文名,是3個密碼學(xué)家的名字的第一個字母拼湊的,因此沒有相應(yīng)的中文翻譯),高級加密標準(AES)等,滿足嵌入式應(yīng)用中對多種安全算法加解密的需求,如無線傳感器網(wǎng)絡(luò)(WSN)應(yīng)用例子商業(yè)上小區(qū)的無線安防網(wǎng)絡(luò)、軍事上情報監(jiān)視,可以在身份認證中使用RSA算法,在數(shù)據(jù)加密過程中使用AES算法。


圖1為本發(fā)明提供的可編程安全處理器的結(jié)構(gòu)框圖;圖2為本發(fā)明提供的可編程安全處理器中控制譯碼器的結(jié)構(gòu)框圖;圖3為本發(fā)明提供的可編程安全處理器中運算譯碼器的結(jié)構(gòu)框圖;圖4為本發(fā)明提供的可編程安全處理器中RAM控制器的結(jié)構(gòu)框圖;圖5為本發(fā)明提供的可編程安全處理器中運算執(zhí)行器的結(jié)構(gòu)框圖。
具體實施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,并參照附圖,對本發(fā)明進一步詳細說明。
本發(fā)明的處理器架構(gòu)就是一個能支持可編程的結(jié)構(gòu),通過分析大部分密碼運算的基本運算,然后設(shè)置這些基本運算單元,然后通過程序控制和基本運算就能實現(xiàn)多種加解密算法。
大多數(shù)加解密算法,特別是分組密碼,如RSA,AES等的加解密運算中都涉及到大量的循環(huán)。
例如RSA算法,假設(shè)密鑰為{d,n},首先要將加解密數(shù)據(jù)分成若干組,每個組分別加密,這是一個大循環(huán);然后求分組數(shù)據(jù)M的d次冪模n,最常使用的的算法是將密鑰d表示成二進制碼,然后從二進制碼的最高位檢測到最低位,通過判斷二進制位值來進行兩數(shù)相乘模n,這是第二層循環(huán);最后,在兩數(shù)相乘模n的計算中,一種簡便的方法就是將其中一個數(shù)表示成二進制碼,也是通過從二進制碼的最高位檢測到最低位,進行相應(yīng)運算來來實現(xiàn)相乘求模,這是第三層循環(huán)。
又如AES算法,第一層循環(huán)是分組循環(huán),然后每一分組進行十輪變換,這是第二層循環(huán);最后,每一次變換都涉及到分組的每一個字節(jié),如果硬件沒有直接實現(xiàn)分組變換操作,那么,需要循環(huán)對每一個字節(jié)進行變換。
由上面可以看出,層層循環(huán)控制是加解密算法的一個特點。為了實現(xiàn)循環(huán),一般的指令集通過比較指令,跳轉(zhuǎn)指令來實現(xiàn)。這樣,加解密需要執(zhí)行很多的比較指令、跳轉(zhuǎn)指令,降低了算法執(zhí)行效率,程序執(zhí)行的很多時間都放在了循環(huán)控制上。而本發(fā)明根據(jù)這一特點,設(shè)置了專門的控制和運算并行結(jié)構(gòu)以及專有的循環(huán)控制單元,能夠很好的實現(xiàn)循環(huán)控制。
本發(fā)明設(shè)的安全處理器結(jié)構(gòu),它支持可編程,而且易于高效實現(xiàn)多種密碼算法,能夠滿足在嵌入式應(yīng)用中需要快速實現(xiàn)多種密碼算法的需求。
如圖1所示,圖1為本發(fā)明提供的可編程安全處理器的結(jié)構(gòu)框圖,該可編程安全處理器包括程序存儲器10、控制堆棧11、控制譯碼器12、運算譯碼器13、RAM控制器14、運算執(zhí)行器15、運算堆棧16和接口模塊17。
其中,程序存儲器(PC)10用于存儲加解密程序,并根據(jù)接收自控制譯碼器12的程序計數(shù)器值選擇一條指令,并將選擇的指令拆分為運算指令和控制指令兩部分,分別發(fā)送給運算譯碼器和控制譯碼器,即將運算指令發(fā)送給運算譯碼器,將控制指令發(fā)送給控制譯碼器。
控制堆棧11用于完成控制譯碼器12中寄存器和程序計數(shù)器的保存和恢復(fù)。
控制譯碼器12用于完成接收自程序存儲器10的控制指令的譯碼和執(zhí)行,將內(nèi)部寄存器的值發(fā)送給運算譯碼器13和控制堆棧11,向控制堆棧11發(fā)送壓棧出棧控制信號,并向運算執(zhí)行器15發(fā)送分支預(yù)測指令信號。
運算譯碼器13用于對接收自程序存儲器10的運算指令進行譯碼,根據(jù)譯碼結(jié)果和接收自控制譯碼器12的內(nèi)部寄存器值生成源操作數(shù)地址、目的操作數(shù)地址和運算類型,將生成的源操作數(shù)地址和目的操作數(shù)地址發(fā)送給RAM控制器14,生成的運算類型發(fā)送給運算執(zhí)行器15。
RAM控制器14用于根據(jù)接收自運算譯碼器13的操作數(shù)地址和運算結(jié)果,從RAM中讀出源操作數(shù),將目的操作數(shù)寫入RAM,并根據(jù)接收自接口模塊17的讀寫控制信號、地址信號和寫入數(shù)據(jù)執(zhí)行讀寫RAM的操作。
運算執(zhí)行器15用于對接收自RAM控制器14的操作數(shù)和運算譯碼器13的運算類型信號執(zhí)行加解密運算,將執(zhí)行結(jié)果返回到RAM控制器14;并根據(jù)運算結(jié)果向控制譯碼器12返回分支預(yù)測結(jié)果信號,向運算堆棧16發(fā)送壓棧出??刂菩盘?,對運算堆棧16進行壓棧出??刂啤?br> 運算堆棧16用于保存運算執(zhí)行器15中寄存器的值,接受運算執(zhí)行器15的壓棧出??刂?。
接口模塊17用于提供交互接口,實現(xiàn)安全處理器與外界進行的通信。
本發(fā)明提供的可編程安全處理器支持超長指令字結(jié)構(gòu),其一個特點是一條超長指令由一條控制指令和一條運算指令組成,控制指令和運算指令相互獨立??刂浦噶钣瞄_來控制程序流程,諸如循環(huán)控制等都放到控制指令部分來完成。運算指令用來執(zhí)行基本加解密運算,不負責(zé)程序流程。與指令字結(jié)構(gòu)相對應(yīng)的是處理器的基本硬件裝置,基本裝置由控制部件和運算部件構(gòu)成,它們也是并行獨立運行的。
當(dāng)從程序存儲器取得一條超長指令后,超長指令的控制指令部分分配到的控制部件執(zhí)行,運算指令部分分配到運算部件執(zhí)行。兩條指令并行執(zhí)行,分別控制程序流程和執(zhí)行加解密運算。這樣做的好處在于,由于控制指令和運算指令時并行執(zhí)行的,因此,循環(huán)控制不占用額外指令周期,如前文所述,密碼算法的一個特點是循環(huán)控制多,占用大量的指令周期。因此采用本發(fā)明的結(jié)構(gòu),嫩大大提高密碼算法的執(zhí)行效率。
圖2為本發(fā)明提供的可編程安全處理器中控制譯碼器的結(jié)構(gòu)框圖。所述控制譯碼器12包括指令譯碼器、累加寄存器rega、regb、regc,以及regmax、bs0、bs1、bs2、bs3和程序計數(shù)器。其中,指令譯碼器用于完成接收自程序存儲器的控制指令的譯碼和執(zhí)行,如果是堆棧操作指令,則向控制堆棧發(fā)送壓棧出??刂菩盘枺⑦x擇累加寄存器rega、regb、regc以及regmax、bs0、bs1、bs2、bs3中某一個寄存器,根據(jù)壓棧出??刂菩盘栂蚩刂贫褩喝牖驈棾鰯?shù)據(jù)。另外,寄存器rega、regb、regc、bs0、bs1、bs2、bs3連接到運算譯碼器13,用于實現(xiàn)地址譯碼。累加寄存器regc不是真正的寄存器,而是rega和regb的和,主要是為了方便尋址。
本發(fā)明提供的可編程安全處理器中控制譯碼器12所包括的基值寄存器regmax,以及基地址寄存器bs0、bs1、bs2和bs3用于方便尋址。為了編程靈活,能夠提供靈活的尋址方式,采用的方式是基址變址尋址,8位地址碼的格式如表1所示。所述累加寄存器rega、regb和regc,以及基地址寄存器bs0、bs1、bs2和bs3都連接于運算譯碼器,在譯碼時,運算譯碼器利用所述累加寄存器rega、regb和regc,以及基地址寄存器bs0、bs1、bs2和bs3的值生成操作數(shù)的物理地址。
76 5432 1 0

表1
控制譯碼器12通過基址寄存器regmax和累加寄存器rega、regb的設(shè)置和比較器來實現(xiàn)循環(huán)控制,通過比較基值寄存器regmax和累加寄存器rega、regb的值,來判定循環(huán)是否結(jié)束;為了更靈活的控制,控制譯碼部件還支持測試跳轉(zhuǎn)指令,這一類指令需要等到運算執(zhí)行器的執(zhí)行結(jié)果才能知道,因此,在結(jié)構(gòu)上,控制譯碼器向運算執(zhí)行器提供測試指令類型,運算執(zhí)行器向控制譯碼器提供測試分支預(yù)測結(jié)果,如附圖1所示。
基本裝置中,控制部件的設(shè)計采用一些方法,來實現(xiàn)程序控制特別是循環(huán)控制。密碼算法的循環(huán)控制的特點是循環(huán)次數(shù)很確定,可預(yù)知。而且一旦循環(huán)次數(shù)確定后,就會執(zhí)行這么多次循環(huán),中間不會忽然終止,跳出。例如RSA算法,在執(zhí)行兩數(shù)相乘求模n的時候,假設(shè)兩數(shù)為x和y。在RSA中,n是密鑰的一部分,是一個確定的值,x,y兩數(shù)都是z字節(jié)長,z是由n的大小決定的。如果計算是基于y的二進制表示,那么運算過程就要循環(huán)z×8次,顯然,z×8這個值也是固定的,可預(yù)知的。循環(huán)次數(shù)的確定性,可預(yù)知性給循環(huán)控制帶來了很大的方便??刂撇考崿F(xiàn)循環(huán)的具體方法是設(shè)置基數(shù)寄存器和累加寄存器,初始時,基數(shù)寄存器放入確定的循環(huán)次數(shù)值,累加寄存器的值設(shè)置為0。然后,每循環(huán)一次,通過控制指令使累加寄存器加一,并同時通過比較累加存器和基值寄存器是否相等來判斷循環(huán)是否結(jié)束。
這樣做的好處在于,一方面由于控制指令和運算指令時并行執(zhí)行的,因此,循環(huán)控制不占用額外指令周期;另一方面,控制部件能夠很容易的判斷程序是否結(jié)束,能夠準確的控制程序流程,而且循環(huán)判斷能一拍就得出結(jié)果,而不像一般微處理器那樣可能需要做分支預(yù)測或者運行空指令等待比較結(jié)果,這樣也大大提高了算法執(zhí)行效率。因此,控制部件的另一個特點是循環(huán)控制指令只運行一個指令周期。
如圖3所示,圖3為本發(fā)明提供的可編程安全處理器中運算譯碼器的結(jié)構(gòu)框圖。所述運算譯碼器13包括指令譯碼單元、地址生成單元和運算類型識別單元。其中,指令譯碼單元用于對接收自程序存儲器的運算指令進行譯碼,將譯碼結(jié)果輸出給地址生成單元和運算類型識別單元。地址生成單元用于根據(jù)接收的譯碼結(jié)果和接收自控制譯碼器的內(nèi)部寄存器值生成源操作數(shù)地址和目的操作數(shù)地址,將生成的源操作數(shù)地址和目的操作數(shù)地址發(fā)送給RAM控制器。運算類型識別單元用于根據(jù)接收的譯碼結(jié)果和接收自控制譯碼器的內(nèi)部寄存器值生成運算類型,將生成的運算類型發(fā)送給運算執(zhí)行器。所述運算譯碼器生成的操作數(shù)采用基址變址尋址。
如圖4所示,圖4為本發(fā)明提供的可編程安全處理器中RAM控制器的結(jié)構(gòu)框圖。所述RAM控制器14包括選擇器、地址映射單元和RAM。其中,選擇器用于從接收自運算譯碼器、運算執(zhí)行器和接口模塊的地址數(shù)據(jù)中選擇地址數(shù)據(jù)進行RAM操作。地址映射單元用于將選擇器選擇的操作數(shù)地址映射到RAM中。RAM用于根據(jù)地址映射單元映射的操作數(shù)地址寫入或讀出數(shù)據(jù),并將讀出的數(shù)據(jù)作為操作數(shù)發(fā)送給運算執(zhí)行器。
具體的,RAM采用4體存儲,每個存儲體支持一讀一寫,這樣,能夠保證主要的運算指令的同時4次讀寫RAM的需求。RAM包括4個獨立的RAM,分別為RAMA,RAMB,RAMC和RAMD,操作數(shù)地址被映射到4個RAM中的一個,這里要保證一條指令的任何兩個源操作數(shù)的物理地址不能在同一個RAM中。
如圖5所示,圖5為本發(fā)明提供的可編程安全處理器中運算執(zhí)行器的結(jié)構(gòu)框圖。運算執(zhí)行器15配置了若干基本的密碼運算,包括AES正向/逆向字節(jié)變換器、HASH壓縮函數(shù)運算器、高效乘法器、ALU運算器和寄存器等。其中,HASH壓縮函數(shù)運算器用于完成MD5壓縮函數(shù)的4個基本邏輯函數(shù)F、G、H、I。根據(jù)需要,還可以加入更多的基本運算單元,更快的支持更多的密碼運算。運算執(zhí)行器中的寄存器包括ALU進位/借位標志位,兩8位數(shù)相乘高字節(jié)保存寄存器。
運算執(zhí)行器15通過譯碼得到的運算類型選擇相應(yīng)的運算單元,將RAM中讀出的數(shù)據(jù)作為源操作數(shù),運算結(jié)果最后存放到RAM。如果有控制譯碼器12送來的分支跳轉(zhuǎn)指令,則檢測相應(yīng)的計算結(jié)果,給出是否跳轉(zhuǎn)信號到控制譯碼器12。
本發(fā)明提供的可編程安全處理器中接口模塊17實現(xiàn)的與外界進行的通信包括與外界進行的加解密數(shù)據(jù)、與外界進行的密鑰的輸入輸出或與外界進行的加解密控制等。接口模塊17處理的信號包括時鐘信號、復(fù)位信號、輸入輸出總線、加解密開始信號、加解密結(jié)束信號或輸入輸出控制信號等。
以上所述的具體實施例,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳細說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種可編程安全處理器,其特征在于,該安全處理器包括程序存儲器,用于存儲加解密程序,并根據(jù)接收自控制譯碼器的程序計數(shù)器值選擇一條指令,并將選擇的指令分為運算指令和控制指令,分別發(fā)送給運算譯碼器和控制譯碼器;控制堆棧,用于完成控制譯碼器中寄存器和程序計數(shù)器的保存和恢復(fù);控制譯碼器,用于完成接收自程序存儲器的控制指令的譯碼和執(zhí)行,將內(nèi)部寄存器的值發(fā)送給運算譯碼器和控制堆棧,向控制堆棧發(fā)送壓棧出棧控制信號,并向運算執(zhí)行器發(fā)送分支預(yù)測指令信號;運算譯碼器,用于對接收自程序存儲器的運算指令進行譯碼,根據(jù)譯碼結(jié)果和接收自控制譯碼器的內(nèi)部寄存器值生成源操作數(shù)地址、目的操作數(shù)地址和運算類型,將生成的源操作數(shù)地址和目的操作數(shù)地址發(fā)送給RAM控制器,生成的運算類型發(fā)送給運算執(zhí)行器;RAM控制器,用于根據(jù)接收自運算譯碼器的操作數(shù)地址和運算結(jié)果,從RAM中讀出源操作數(shù),將目的操作數(shù)寫入RAM,并根據(jù)接收自接口模塊的讀寫控制信號、地址信號和寫入數(shù)據(jù)執(zhí)行讀寫RAM的操作;運算執(zhí)行器,用于對接收自RAM控制器的操作數(shù)和運算譯碼器的運算類型信號執(zhí)行加解密運算,將執(zhí)行結(jié)果返回到RAM控制器;并根據(jù)運算結(jié)果向控制譯碼器返回分支預(yù)測結(jié)果信號,向運算堆棧發(fā)送壓棧出??刂菩盘枺瑢\算堆棧進行壓棧出??刂疲贿\算堆棧,用于保存運算執(zhí)行器中寄存器的值,接受運算執(zhí)行器的壓棧出??刂?;接口模塊,用于提供交互接口,實現(xiàn)安全處理器與外界進行的通信。
2.根據(jù)權(quán)利要求1所述的可編程安全處理器,其特征在于,所述控制譯碼器包括指令譯碼器,用于完成接收自程序存儲器的控制指令的譯碼和執(zhí)行,向控制堆棧發(fā)送壓棧出棧控制信號,向累加寄存器rega、regb和程序計數(shù)器發(fā)送控制信號;累加寄存器rega、regb、regc,用于根據(jù)接收自指令譯碼器的控制信號向控制堆棧壓入或彈出數(shù)據(jù),將保存的數(shù)據(jù)發(fā)送給運算譯碼器;程序計數(shù)器,用于根據(jù)接收自指令譯碼器的控制信號向控制堆棧壓入或彈出程序計數(shù)器值,并向程序存儲器輸出程序計數(shù)器值。
3.根據(jù)權(quán)利要求2所述的可編程安全處理器,其特征在于,所述控制譯碼器進一步包括基值寄存器regmax,以及基地址寄存器bs0、bs1、bs2和bs3,所述累加寄存器rega、regb和regc,以及基地址寄存器bs0、bs1、bs2和bs3都連接于運算譯碼器,在譯碼時,運算譯碼器利用所述累加寄存器rega、regb和regc,以及基地址寄存器bs0、bs1、bs2和bs3的值生成操作數(shù)的物理地址。
4.根據(jù)權(quán)利要求1所述的可編程安全處理器,其特征在于,所述運算譯碼器包括指令譯碼單元,用于對接收自程序存儲器的運算指令進行譯碼,將譯碼結(jié)果輸出給地址生成單元和運算類型識別單元;地址生成單元,用于根據(jù)接收的譯碼結(jié)果和接收自控制譯碼器的內(nèi)部寄存器值生成源操作數(shù)地址和目的操作數(shù)地址,將生成的源操作數(shù)地址和目的操作數(shù)地址發(fā)送給RAM控制器;運算類型識別單元,用于根據(jù)接收的譯碼結(jié)果和接收自控制譯碼器的內(nèi)部寄存器值生成運算類型,將生成的運算類型發(fā)送給運算執(zhí)行器。
5.根據(jù)權(quán)利要求4所述的可編程安全處理器,其特征在于,所述運算譯碼器生成的操作數(shù)采用基址變址尋址。
6.根據(jù)權(quán)利要求1所述的可編程安全處理器,其特征在于,所述RAM控制器包括選擇器,用于從接收自運算譯碼器、運算執(zhí)行器和接口模塊的地址數(shù)據(jù)中選擇地址數(shù)據(jù)進行RAM操作;地址映射單元,用于將選擇器選擇的操作數(shù)地址映射到RAM中;RAM,用于根據(jù)地址映射單元映射的操作數(shù)地址寫入或讀出數(shù)據(jù),并將讀出的數(shù)據(jù)作為操作數(shù)發(fā)送給運算執(zhí)行器。
7.根據(jù)權(quán)利要求6所述的可編程安全處理器,其特征在于,所述RAM包括4個獨立的RAM,分別為RAMA,RAMB,RAMC和RAMD,每個RAM都支持一讀一寫,操作數(shù)地址被映射到4個RAM中的一個。
8.根據(jù)權(quán)利要求1所述的可編程安全處理器,其特征在于,所述運算執(zhí)行器包括高級加密標準AES正向/逆向字節(jié)變換器、哈希HASH壓縮函數(shù)運算器、高效乘法器、算術(shù)邏輯運算單元ALU運算器和寄存器;所述HASH壓縮函數(shù)運算器用于完成消息摘要算法MD5壓縮函數(shù)的4個基本邏輯函數(shù)F、G、H、I;所述寄存器包括ALU進位/借位標志位,兩8位數(shù)相乘高字節(jié)保存寄存器。
9.根據(jù)權(quán)利要求1所述的可編程安全處理器,其特征在于,所述接口模塊實現(xiàn)的與外界進行的通信包括與外界進行的加解密數(shù)據(jù)、與外界進行的密鑰的輸入輸出或與外界進行的加解密控制;所述接口模塊處理的信號包括時鐘信號、復(fù)位信號、輸入輸出總線、加解密開始信號、加解密結(jié)束信號或輸入輸出控制信號。
全文摘要
本發(fā)明涉及集成電路設(shè)計中的微處理器設(shè)計技術(shù)領(lǐng)域,公開了一種可編程安全處理器,該安全處理器包括程序存儲器、控制堆棧、控制譯碼器、運算譯碼器、RAM控制器、運算執(zhí)行器、運算堆棧和接口模塊。本發(fā)明提供的這種可編程安全處理器,是一個能支持可編程的結(jié)構(gòu),通過分析大部分密碼運算的基本運算,然后設(shè)置這些基本運算單元,然后通過程序控制和基本運算就能實現(xiàn)多種加解密算法。由于這種可編程安全處理器支持可編程,而且易于高效實現(xiàn)多種密碼算法,所以滿足了在嵌入式應(yīng)用中需要快速實現(xiàn)多種密碼算法的需求。
文檔編號H04L9/14GK1959694SQ20061014435
公開日2007年5月9日 申請日期2006年12月4日 優(yōu)先權(quán)日2006年12月4日
發(fā)明者何子鍵, 徐勇軍, 謝磊, 李曉維 申請人:中國科學(xué)院計算技術(shù)研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
扶风县| 石河子市| 南乐县| 巫溪县| 安阳县| 苍南县| 葵青区| 密山市| 上林县| 临高县| 潢川县| 鄂托克前旗| 福泉市| 嘉禾县| 黄梅县| 石林| 乐山市| 普陀区| 昭觉县| 侯马市| 武宁县| 涟水县| 安福县| 磐安县| 前郭尔| 鄂托克前旗| 泸水县| 大埔县| 恩平市| 武乡县| 浪卡子县| 威宁| 寿光市| 克什克腾旗| 福安市| 沅江市| 平顺县| 会泽县| 从江县| 遂溪县| 新乐市|