一種支持密碼運算的微處理器、方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種支持密碼運算的微處理器、方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)及信息技術(shù)的迅速發(fā)展,網(wǎng)絡(luò)和人們生活的關(guān)系越來越密切,很多活動也轉(zhuǎn)移到互聯(lián)網(wǎng)上進行,比如網(wǎng)上購物,網(wǎng)絡(luò)銀行,電子商務(wù),電子政務(wù)等。同時,由于互聯(lián)網(wǎng)本身的開放性,也面臨很多安全問題。要解決這些安全問題,需要用到密碼學(xué)技術(shù),即用于信息加密和數(shù)字簽名的技術(shù)。
[0003]密碼學(xué)技術(shù)的密碼運算,可以在通用CHJ上(如X86,ARM等處理器)用軟件方式實現(xiàn),也可以用專用集成電路來實現(xiàn)。用軟件方式實現(xiàn)的優(yōu)點是靈活,各種算法都可以實現(xiàn)。但對于一些運算密集的算法,軟件方式性能較低,會占用大量CPU時間,降低CPU處理通用業(yè)務(wù)的能力。用專用集成電路方式實現(xiàn),性能高、效率高,但不靈活。一種算法一旦以專用集成電路的方式實現(xiàn),就不能更改了,這部分集成電路只能用作該固定算法一種用途了。
【發(fā)明內(nèi)容】
[0004]密碼學(xué)技術(shù)的密碼運算,可以在通用CPU上(如X86,ARM,MIPS等處理器)用軟件方式實現(xiàn),也可以用專用集成電路來實現(xiàn)。
[0005]用軟件方式實現(xiàn),其優(yōu)點是靈活,各種算法都可以實現(xiàn)。但對于一些運算密集的算法,軟件方式性能較低,會占用大量CPU時間,降低CPU處理通用業(yè)務(wù)的能力。
[0006]用專用集成電路方式實現(xiàn),性能高、效率高,但不靈活。一種算法一旦以專用集成電路的方式實現(xiàn),就不能更改了,這部分集成電路只能用作該固定算法一種用途了。
[0007]本發(fā)明所要解決的技術(shù)問題是,針對現(xiàn)有技術(shù)中采用軟件方式實現(xiàn)密碼運算性能低的缺點,和采用專用集成電路方式基本沒有靈活性(算法不能變)的缺點,提供一種既能實現(xiàn)軟件方式的靈活性,又能實現(xiàn)專用集成電路一樣的較高的性能和效率的支持密碼運算的微處理器、方法及系統(tǒng)。
[0008]本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種支持密碼運算的微處理器,其特征在于,包括內(nèi)置在微處理器內(nèi)的安全功能模塊;
[0009]所述安全功能模塊集成至少一種基礎(chǔ)算法器件。
[0010]本發(fā)明的有益效果是:本發(fā)明采用同一個硬件架構(gòu)可以支持多種算法,既象軟件方式一樣具有一定程度的靈活性,又象專用集成電路一樣具有較高的性能和效率;將集成了基本算法運算的安全功能模塊設(shè)置在處理器內(nèi)部,作為處理器的一部分來實現(xiàn),使算法運算和CPU處理緊密耦合,所述緊耦合實現(xiàn)既支持多種算法又高效率;基于安全功能模塊內(nèi)的至少一種基礎(chǔ)算法,可通過邏輯控制實現(xiàn)其他多種算法,并且不占用多余空間和資源。
[0011]在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進。
[0012]進一步,還包括控制單元,所述控制單元根據(jù)設(shè)置對安全功能模塊內(nèi)的基礎(chǔ)算法器件進行調(diào)度,實現(xiàn)對復(fù)雜算法的運算。
[0013]采用上述進一步方案的有益效果是,可以用同一個芯片支持很多種算法,甚至是將來推出的新算法,只要是以基礎(chǔ)算法為基礎(chǔ),通過邏輯控制可實現(xiàn)的算法,本發(fā)明都可以實現(xiàn),并且速度優(yōu)于其他設(shè)備。并且,不僅可以實現(xiàn)作為獨立算法的密碼運算(如RSA、ECC……),還可以實現(xiàn)作為密碼協(xié)議的密碼運算(如SSL,IPSec……)。
[0014]進一步,所述基礎(chǔ)算法器件包括大數(shù)乘法器、大數(shù)模乘器、S盒、Feis tel部件或Ri jndael 部件。
[0015]采用上述進一步方案的有益效果是,所述算法器中的一種或多種通過可編程處理模塊的處理即可實現(xiàn)高度靈活的密碼微處理器。
[0016]本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種支持密碼運算的處理方法,具體包括以下步驟:
[0017]步驟I:微處理器接收密碼運算請求;
[0018]步驟2:根據(jù)預(yù)先設(shè)定的程序?qū)⒚艽a運算請求對應(yīng)的密碼運算進行分解,分解為多個相同或不同的基礎(chǔ)算法;
[0019]步驟3:微處理器內(nèi)的控制單元調(diào)用對應(yīng)所述基礎(chǔ)算法的基礎(chǔ)算法器件進行密碼運算;
[0020]步驟4:判斷運算是否完成,如果是,輸出運算結(jié)果,結(jié)束;否則,返回步驟3。
[0021]本發(fā)明的有益效果是:本發(fā)明采用同一個硬件架構(gòu)可以支持多種算法,既象軟件方式一樣具有一定程度的靈活性,又象專用集成電路一樣具有較高的性能和效率;將集成了基本算法運算的安全功能模塊設(shè)置在處理器內(nèi)部,作為處理器的一部分來實現(xiàn),使算法運算和CPU處理緊密耦合,所述緊耦合實現(xiàn)既支持多種算法又高效率;基于安全功能模塊內(nèi)的至少一種基礎(chǔ)算法,可通過邏輯控制實現(xiàn)其他多種算法,并且不占用多余空間和資源。
[0022]在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進。
[0023]進一步,所述基礎(chǔ)算法包括大數(shù)乘法、大數(shù)模乘算法、S盒算法、Feis tel算法或Ri jndael 算法。
[0024]進一步,所述步驟2具體包括:將密碼運算請求對應(yīng)的密碼運算進行解析,獲得密碼運算邏輯,根據(jù)密碼運算邏輯將所述密碼運算分解為多個相同或不同的基礎(chǔ)算法。
[0025]采用上述進一步方案的有益效果是,可以用同一個芯片支持很多種算法,甚至是將來推出的新算法,只要是以基礎(chǔ)算法為基礎(chǔ),通過邏輯控制可實現(xiàn)的算法,本發(fā)明都可以實現(xiàn),并且速度優(yōu)于其他設(shè)備。
[0026]本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種支持密碼運算的處理系統(tǒng),包括內(nèi)置安全功能模塊和控制單元的微處理器;
[0027]所述微處理器用于接收密碼運算請求;
[0028]所述控制單元根據(jù)預(yù)先設(shè)定的程序?qū)⒚艽a運算請求對應(yīng)的密碼運算進行分解,分解為多個相同或不同的基礎(chǔ)算法;
[0029]所述控制單元調(diào)用對應(yīng)所述基礎(chǔ)算法的基礎(chǔ)算法器件進行密碼運算,直至完成所述密碼運算請求對應(yīng)的密碼運算,輸出運算結(jié)果。
[0030]在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進。
[0031 ]進一步,所述基礎(chǔ)算法器件包括大數(shù)乘法器、大數(shù)模乘器、S盒、Fe is tel部件或Ri jndael 部件。
[0032]進一步,所述控制單元將密碼運算請求對應(yīng)的密碼運算進行解析,獲得密碼運算邏輯,根據(jù)密碼運算邏輯將所述密碼運算分解為多個相同或不同的基礎(chǔ)算法。
[0033]采用上述進一步方案的有益效果是,可以用同一個芯片支持很多種算法,甚至是將來推出的新算法,只要是以基礎(chǔ)算法為基礎(chǔ),通過邏輯控制可實現(xiàn)的算法,本發(fā)明都可以實現(xiàn),并且速度優(yōu)于其他設(shè)備。并且,不僅可以實現(xiàn)作為獨立算法的密碼運算(如RSA、ECC……),還可以實現(xiàn)作為密碼協(xié)議的密碼運算(如SSL,IPSec……)。
[0034]本發(fā)明基于以下的分析:
[0035]在密碼算法中,有幾個基礎(chǔ)運算是很多密碼算法的基礎(chǔ)。實現(xiàn)了幾個基礎(chǔ)的運算,在軟件的支持下,就可以組合出很多種密碼算法。
[0036]比如,ECC算法的基礎(chǔ)運算是模乘。RSA運算的基礎(chǔ)運算是模幕,而一次模幕是由數(shù)百次的模乘運算來完成的。中國標(biāo)準(zhǔn)的SM2算法是ECC算法的一種,其基礎(chǔ)運算也是模乘。其它的非對稱算法也有很多基于相同的基礎(chǔ)運算,比如Elgamal算法是基于模冪和除法運算,Diffi e-He I Iman算法是基于模冪運算。
[0037]很多對稱算法也是基于相同的基礎(chǔ)運算。比如S盒變換,F(xiàn)eistel結(jié)構(gòu)等。
[0038]DES/3DES,SM4,SM7,以及用于移動通信的祖沖之算法,都是基于這樣的結(jié)構(gòu):先做密鑰擴展,然后以S盒運算為基礎(chǔ),配合移位、異或等運算構(gòu)成一個基礎(chǔ)變換,然后這個基礎(chǔ)變換用密鑰及明文的不同部分作參數(shù),運行若干輪。
[0039]而S盒運算,可以等效為一個查找表的運算。可以用一個寄存器組來實現(xiàn),對于不同參數(shù)的S盒,可以在寄存器組中填入不同的參數(shù),用相同的查表操作來完成。
[0040]在前面分析的前提下,可以歸納出一組基本的運算,如模乘,S盒,F(xiàn)eistel、Ri jndael等,用高效的方式實現(xiàn)這一組基本運算,然后配合CPU架構(gòu)中的指令解碼器、控制單元、指令計數(shù)器、寄存器組等,實現(xiàn)一個可編程的處理器。由于這個處理器有分支循環(huán)等操作,可以支持復(fù)雜的程序流程,就可以用上述的模乘、S盒等基本運算構(gòu)造出各種算法。這樣就實現(xiàn)了一個高度靈活的密碼協(xié)處理器。
[0041]這種架構(gòu)的優(yōu)勢是,可以用同一個芯片支持很多種算法,甚至是將來推出的新算法。
[0042]同樣,這種架構(gòu)可以靈活地支持很多種密碼協(xié)議,如SSL,IPSec,加密的ISCSI等,其靈活程度是接近通用CPU的。而針對密碼算法歸納出的基本運算,又使得其密碼性能優(yōu)于通用的CPU。(這是在同級別集成電路生產(chǎn)工藝的前提下說的。如果工藝差距太大,比如用65納米微米工藝的本發(fā)明的處理器與14納米工藝的通用CPU比,就沒有可比性了)。
[0043]這種架構(gòu)下,模乘和S盒等基本運算需要作為CPU的一部分來實現(xiàn)。這也是本發(fā)明的一個特征之一。
[0044]如果是松耦合的結(jié)構(gòu),比如變成模乘芯片和CPU分離的架構(gòu),會降低性能。原因是,象SM2、RSA算法一次運算會調(diào)用數(shù)百到數(shù)千次模乘,如果二者分離,那么花在通信上的時間都會超過運算的時間,會使得性能變得毫無優(yōu)勢了。
【附圖說明】
[0045]圖1為本發(fā)明實施例1所述的一種支持密碼運算的處理方法流程圖;
[0046]圖2為本發(fā)明具體示例所述的一種支持密碼運算的微處理器的架構(gòu)的一個示意圖。
【具體實施方式】
[0047]以下結(jié)合附圖對本發(fā)明的原理和特征進行描述,所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
[0048]本發(fā)明實施例1所述的一種支持密碼運算的微處理器,其特征在于,包括內(nèi)置在微處理器內(nèi)的安全功能模塊;
[0049]所述安全功能模塊集成至少一種基礎(chǔ)算法器件。
[0050]本發(fā)明