專利名稱:一種新型的橢圓曲線密碼協(xié)處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明主要應(yīng)用于信息安全領(lǐng)域,用以保證重要、敏感信息的機密性、完整性與不可抵賴性等。
背景技術(shù):
橢圓曲線作為代數(shù)幾何中的重要問題已有100多年的研究歷史,但是直到1986年才引入到密碼學中,在其提出的早期由于缺乏產(chǎn)生橢圓曲線基本應(yīng)用參數(shù)的有效算法,一直未引起人們的重視,直到1993年才使這一密碼體制得以有效的實現(xiàn)。橢圓曲線密碼體制(Elliptic Curve Cryptosystem ECC)是一種公鑰密碼體制,其安全性是基于求橢圓曲線上離散對數(shù)的困難性。ECC密碼算法之所以引起人們地廣泛關(guān)注,是因為它除了理論上的意義之外,還有密鑰長度短,加密系統(tǒng)的參數(shù)選取靈活方便的優(yōu)點。
ECC與目前廣泛應(yīng)用的RSA(Rivest Shauir Adleuan)密碼算法相比,有著很多技術(shù)優(yōu)點
(1)安全性能更高。加密算的安全性能一般通過該算法的抗攻擊強度來反映。ECC和其他幾種公鑰系統(tǒng)相比,其抗攻擊性具有絕對的優(yōu)勢。橢圓曲線的離散對數(shù)計算困難性在計算復(fù)雜度上目前是完全指數(shù)級,而RSA是亞指數(shù)級的。這體現(xiàn)ECC比RSA的每比特安全性能更高。
(2)計算量小和處理速度快。在一定的相同的計算資源條件下,雖然在RSA公鑰處理速度上(加密和簽名驗證)與ECC有可比性,但在私鑰的處理速度上(解密和簽名),ECC遠比RSA快得多。因此ECC總的速度比RSA要快得多。同時ECC系統(tǒng)的密鑰生成速度比RSA快百倍以上。因此在相同條件下,ECC則有更高的加密性能。
(3)存儲空間占用小。ECC的密鑰尺寸和系統(tǒng)參數(shù)與RSA相比要小得多。160位ECC與1024位RSA具有相同的安全強度,210位ECC則與2048位RSA具有相同的安全強度。意味著它所占的存貯空間要小得多。這對于加密算法在資源受限環(huán)境上(如智能卡等)的應(yīng)用具有特別重要的意義。
(4)帶寬要求低。當對長消息進行加解密時,三類密碼系統(tǒng)有相同的帶寬要求,但應(yīng)用于短消息時ECC帶寬要求卻低得多。而公鑰加密系統(tǒng)多用于短消息,例如用于數(shù)字簽名和用于對對稱系統(tǒng)的會話密鑰傳遞。帶寬要求低使ECC在無線網(wǎng)絡(luò)領(lǐng)域具有廣泛的應(yīng)用前景。
ECC的這些特點使它在某些領(lǐng)域(如手機、智能卡)的應(yīng)用將取代RSA,并成為通用的公鑰加密算法。許多國際標準化組織(政府、工業(yè)界、金融界、商業(yè)界等)已將各種橢圓曲線密碼體制作為其標準化文件向全球頒布。ECC標準大體可以分為兩種形式一類是技術(shù)標準,即描述以技術(shù)支撐為主的ECC體制,規(guī)范了ECC的各種參數(shù)的選擇,并給出了各級安全強度下的一組ECC參數(shù)。另一類是應(yīng)用標準,即在具體的應(yīng)用環(huán)境中建議使用ECC技術(shù)。在標準化的同時,一些基于標準(或草案)的各種橢圓曲線加密、簽名、密鑰交換的軟、硬件也相繼問世。
硬件加密與軟件加密相比,由于具有加密速度快,性能好等優(yōu)勢,以及硬件便于物理保護,安全性好,裝卸方便的特性,一直深受安全界的重視。與此同時超大規(guī)模集成電路技術(shù)的發(fā)展使得設(shè)計低成本的硬件加密芯片成為可能。
總之,ECC是一個優(yōu)于RSA的公鑰制算法,現(xiàn)代高帶寬、嵌入式應(yīng)用的需要,使得研究它的高效VLSI實現(xiàn)具有很強的現(xiàn)實意義。此外,由于密碼技術(shù)的特殊性,密碼產(chǎn)品(特別是硬件產(chǎn)品)是進出口限制產(chǎn)品,而一個國家從安全角度考慮也不允許采用別的國家的安全產(chǎn)品來守“大門”。所以研究自主產(chǎn)權(quán)的硬件加密技術(shù)就顯得特別重要。可以相信,ECC技術(shù)在信息安全領(lǐng)域中的應(yīng)用會越來越廣。
但是,在橢圓曲線密碼體制(ECC)中,關(guān)于橢圓曲線密碼算法的優(yōu)化、橢圓曲線密碼協(xié)處理器的系統(tǒng)架構(gòu),以及橢圓曲線密碼協(xié)處理器的數(shù)據(jù)通路還存在不盡完善之處,需要作進一步的改進。
發(fā)明內(nèi)容
綜上所述,如何改進橢圓曲線密碼算法在對點乘調(diào)度方案的優(yōu)化,乃是本發(fā)明所要解決的一個技術(shù)問題;如何克服目前流行的數(shù)據(jù)通路加狀態(tài)控制機的缺點,乃是本發(fā)明所要解決的另一個技術(shù)問題;而如何改進橢圓曲線密碼協(xié)處理器的數(shù)據(jù)通路的高數(shù)據(jù)吞吐率與合適的硬件復(fù)雜度則是本發(fā)明所要解決的另一個技術(shù)問題。
因此,本發(fā)明的目的在于提供一種新型的橢圓曲線密碼協(xié)處理器。
本發(fā)明的技術(shù)思路
目前橢圓曲線加密協(xié)處理器的實現(xiàn)方式有兩種狀態(tài)機實現(xiàn)方式和指令實現(xiàn)方式。本方案從實現(xiàn)復(fù)雜度和性能的角度分析比較了兩種實現(xiàn)方式的優(yōu)劣,最終選擇了指令實現(xiàn)方式。
為了提高協(xié)處理器的可重用性,指令集設(shè)計采用新穎的協(xié)處理器擴展指令和微代碼指令相結(jié)合的形式。微代碼指令集設(shè)計采用“取/存”的形式,一方面可以提高指令集的代碼密度,降低系統(tǒng)對存儲容量的要求,另一方面可以降低譯碼單元的復(fù)雜度,減少協(xié)處理器的尋址模式,由此可以提高寬比特數(shù)據(jù)通路的性能。
同時通過在數(shù)據(jù)通路中增加特殊寄存器組,以減少數(shù)據(jù)通路與通用寄存器組之間數(shù)據(jù)交換的次數(shù),從而提高系統(tǒng)性能,從一定程度上降低電路的功耗。
數(shù)據(jù)通路中的關(guān)鍵模塊——有限域乘法器采用可伸縮分組并行結(jié)構(gòu),以提高數(shù)據(jù)吞吐率。此外,有限域平方器的設(shè)計通過復(fù)用可伸縮分組并行乘法器電路,以降低數(shù)據(jù)通路的面積。
密碼系統(tǒng)采用由主控制器(Main Controller Unit MCU)+協(xié)處理器(Coprocessor)的系統(tǒng)實現(xiàn)方案,以便用以嵌入式微處理器作為主控制器,并在其協(xié)處理器擴展指令和相應(yīng)協(xié)處理器接口的基礎(chǔ)上開發(fā)橢圓曲線密碼協(xié)處理器。
如上所述,本發(fā)明的技術(shù)方案如下
根據(jù)本發(fā)明的一種新型橢圓曲線密碼協(xié)處理器,特別適用于由主處理器和協(xié)處理器構(gòu)成的ECC公鑰密碼系統(tǒng),特點是該主處理器為由嵌入式處理器構(gòu)成的主控制器,而該協(xié)處理器為硬件控制器,適合目前主流的嵌入式CPU構(gòu)建的橢圓曲線密碼系統(tǒng),其中,主處理器包括點乘控制器和通信控制器,通過總線和協(xié)處理器專用接口實現(xiàn)與橢圓曲線密碼協(xié)處理器相連接;該協(xié)處理器含有依次成電路連接的總線狀態(tài)跟隨器、譯碼控制電路和數(shù)據(jù)通路,其中,總線狀態(tài)跟隨器含有流水線跟隨器和與之相連接的操作數(shù)狀態(tài)單元,其接受來自主處理器送出的協(xié)處理器擴展指令以及從協(xié)處理器專用接口輸入流水線狀態(tài)信號及與主處理進行交互的握手信號;該譯碼控制電路為雙重譯碼電路,將主處理器送來的協(xié)處理器擴展指令譯成微代碼,再將微代碼譯成控制信號,用以控制數(shù)據(jù)通路中所進行的有限域運算和數(shù)據(jù)交換;所述數(shù)據(jù)通過雙向聯(lián)結(jié)的寄存器堆和數(shù)據(jù)通路單元,由寄存器堆與公鑰密碼系統(tǒng)中的存儲器進行數(shù)據(jù)交換。
進一步,所述主處理器為32位嵌入式CPU,基于協(xié)處理器擴展指令和相應(yīng)(即專用)的協(xié)處理器接口開發(fā)該橢圓曲線密碼協(xié)處理器。
所述譯碼控制電路包括依次成電路聯(lián)結(jié)的第一指令寄存器、第一譯碼器、指針組、微代碼組、第二多路選擇器、第二指令寄存器和第二譯碼器。
所述數(shù)據(jù)通路單元包括依次成電路聯(lián)結(jié)的數(shù)字串行平方器、數(shù)位串行乘法器、有限域加法電路和全零檢測電路。
所述數(shù)據(jù)通路中設(shè)有存儲所述乘法器的兩個輸入數(shù)據(jù)的寄存器RA和寄存器RB,和設(shè)有兩個存儲所述有限域加法電路的兩個輸入數(shù)據(jù)的寄存器RC、RD。
依據(jù)本方案設(shè)計的橢圓曲線密碼協(xié)處理器具有以下優(yōu)點
密碼協(xié)處理器采用了專用協(xié)處理器接口,能夠與目前主流的嵌入式CPU相配合,實現(xiàn)整個橢圓曲線密碼系統(tǒng);
采用了兩級譯碼系統(tǒng),即協(xié)處理器擴展指令與協(xié)處理器微代碼指令兩級譯碼,可以非常靈活實現(xiàn)系統(tǒng)的重配置。在協(xié)議層的算法發(fā)生改變時,無需改變協(xié)處理器的硬件架構(gòu),而只需變更微代碼程序即可。如果使用有限狀態(tài)機形式的控制單元就無法實現(xiàn)。這樣的解決方案可以明顯降低系統(tǒng)重開發(fā)的成本,同時加速系統(tǒng)上市時間,贏得經(jīng)濟效益;
協(xié)處理器設(shè)計了一個基于可伸縮分組并行技術(shù)的數(shù)據(jù)通路,這樣本方案的數(shù)據(jù)通路結(jié)構(gòu)可以在系統(tǒng)性能允許的條件下,從硬件實現(xiàn)的速度、面積和功耗三方面出發(fā),找到實現(xiàn)的最佳方案。
圖1是本發(fā)明主處理器、協(xié)處理器構(gòu)成密碼系統(tǒng)的結(jié)構(gòu)示意圖2是本發(fā)明的橢圓曲線密碼協(xié)處理器系統(tǒng)架構(gòu)示意圖3是本發(fā)明的橢圓曲線密碼協(xié)處理器的數(shù)據(jù)通路結(jié)構(gòu)示意圖。
具體實施例方式
下面根據(jù)圖1至圖3給出本發(fā)明一個較佳實施例,以便更好地說明本發(fā)明的結(jié)構(gòu)特征和功能特點,但不是用來限定本發(fā)明的范圍。
參閱圖1所示,本發(fā)明的橢圓曲線密碼協(xié)處理器系應(yīng)用于由主處理器、協(xié)處理器構(gòu)成的ECC公鑰密碼系統(tǒng)中。
圖1中的主處理器(MCU)主要完成兩項任務(wù),包括針對橢圓曲線密碼算法中的點乘調(diào)度和與協(xié)處理器的通訊控制。它主要起到軟件控制器的作用,本發(fā)明主要針對使用嵌入式的32位RISC CPU。協(xié)處理器器就是完成橢圓曲線密碼算法中最復(fù)雜運算——點乘運算的核心部件,它是全硬件實現(xiàn),包括有限狀態(tài)機、微代碼以及數(shù)據(jù)通路等,它們再主處理器的控制下而協(xié)同工作,完成復(fù)雜的點乘運算。
本發(fā)明的橢圓曲線密碼協(xié)處理器的系統(tǒng)架構(gòu)如圖2所示。該協(xié)處理器2共分為三部分,即依次以電路聯(lián)結(jié)的總線狀態(tài)跟隨器21、譯碼控制電路22和數(shù)據(jù)通路23。
其中,總線狀態(tài)跟隨器21主要是對主處理器1的狀態(tài)進行跟蹤,判斷當前主處理器1所取指令是否為協(xié)處理器擴展指令,并負責向主處理器1發(fā)送和接收相應(yīng)的握手信號;譯碼控制電路22主要負責將群運算層的調(diào)度轉(zhuǎn)換為基本的有限域運算,即將協(xié)處理器擴展指令11譯成相應(yīng)的微代碼指令,再將微代碼指令譯成相應(yīng)的控制信號;數(shù)據(jù)通路23主要進行有限域基本運算層的運算實現(xiàn)。
在圖2中,總線狀態(tài)跟隨器21包括流水線跟隨器211和控制流水線跟隨器211工作的操作數(shù)狀態(tài)單元212,該流水線跟隨器211接受來自主處理器1的時鐘和時鐘控制信號、流水線狀態(tài)跟隨信號、協(xié)處理器擴展指令,以及主處理器1與協(xié)處理器2交互握手信號。所述的時鐘和時鐘控制信號由接口CLK、NRESET輸入;所述流水線狀態(tài)跟隨信號由接口CPnMREQ、CPnOPC、CPTBIT輸入;所述交互握手信號則從接口CPnCPI輸入和由接口CPA、CPB輸出。
該譯碼控制電路22包括接受主處理器1的指令和與流水線跟隨器211交互聯(lián)結(jié),包括依次以電路連接的第一指令寄存器221、第一譯碼器222、指針單元組223、微代碼組224、第二多路選擇器225、第二指令寄存器226和第二譯碼器227,以及第一多路選擇器228,其中,第一指令寄存器221受流水線跟隨器211的控制和數(shù)據(jù)總線連接主處理器1;第二譯碼器227輸出連接寄存器堆232和數(shù)據(jù)通路231,以及第一多路選擇器228分別連接操作數(shù)狀態(tài)單元212、第一譯碼器222和第二多路選擇器225,該數(shù)據(jù)通路23包括成雙向電路聯(lián)結(jié)的數(shù)據(jù)通路邏輯模塊231和寄存器堆232,并由寄存器堆232與ECC公鑰密碼系統(tǒng)的存儲器13成雙向電路連接。
所述協(xié)處理器2的接口信號定義如下表1
表1
關(guān)于橢圓曲線密碼協(xié)處理器2的指令集設(shè)計
橢圓曲線密碼協(xié)處理器2的指令集設(shè)計包含兩部分協(xié)處理器擴展指令集的設(shè)計和協(xié)處理器微代碼指令集的設(shè)計。前者用于實現(xiàn)點乘運算中群運算層的調(diào)度,后者用于實現(xiàn)點乘運算中有限域基本運算,如有限域乘法、有限域平方運算等。
1)協(xié)處理器擴展指令集設(shè)計
由于本實施例采用“通用主控制器(MCU)+協(xié)處理器(Coprocessor)”的實現(xiàn)方案,其中主控制器1采用32位嵌入式微處理器,并在其協(xié)處理器擴展指令和相應(yīng)協(xié)處理器接口的基礎(chǔ)上開發(fā)橢圓曲線密碼協(xié)處理器2。一共可以擴展16個協(xié)處理器,其中12個是有固定用途的,其余四個可以用于嵌入式系統(tǒng)的開發(fā)。
32位嵌入式微處理器中用于協(xié)處理器擴展的指令分為三類協(xié)處理器數(shù)據(jù)運算指令、協(xié)處理器數(shù)據(jù)傳送指令和協(xié)處理器寄存器傳送指令。根據(jù)點乘調(diào)度算法的要求,本實施例定義了12條協(xié)處理器擴展指令,如下表2所示
表2
2)協(xié)處理器微代碼指令集設(shè)計
采用狀態(tài)機來控制調(diào)度協(xié)處理器中的有限域運算。由于完成一次點加或者倍點運算的步驟相當多,由此會導(dǎo)致狀態(tài)機過于龐大,控制邏輯過于復(fù)雜,增加了協(xié)處理器的設(shè)計和驗證難度,同時也降低了協(xié)處理器的可擴展性。因此,本實施例采用微代碼指令來控制協(xié)處理器中的有限域運算,降低了狀態(tài)機的復(fù)雜度,易于設(shè)計和驗證,同時也提高了協(xié)處理器的可擴展性。
在定義協(xié)處理器微代碼指令集時,主要考慮以下原則1)盡量減少訪存次數(shù)。2)增強協(xié)處理器的可擴展性,包含兩層含義。一是對于不同加密強度的要求,可以選擇不同的有限域來實現(xiàn),此時無需改變指令集,只需對數(shù)據(jù)通路進行相應(yīng)的擴展即可;二是對于不同的調(diào)度算法實現(xiàn),也無需改變指令集,只需要重新編寫相應(yīng)的微代碼程序即可。
基于上述原則,本實施例定義了10條微代碼指令,指令字長為8比特,分為有限域數(shù)據(jù)運算指令、有限域寄存器傳送指令和有限域數(shù)據(jù)傳送指令,如下表3所示
表3
表中Rs表示源操作數(shù),Rd表示目的操作數(shù)。
關(guān)于橢圓曲線密碼協(xié)處理器2的數(shù)據(jù)通路23的結(jié)構(gòu)
由于串行乘法器的運算速度較慢,其數(shù)據(jù)吞吐率不高。因此,在高數(shù)據(jù)吞吐率應(yīng)用場合下,往往采用基于多項式基的可伸縮分組并行乘法器。可伸縮分組并行技術(shù),是一種串并結(jié)合的算法,它將原有的m位數(shù)據(jù)分成m/D組(D稱為可伸縮分組系數(shù)),在一個時鐘周期內(nèi)計算一組數(shù)據(jù),這樣就可以在m/D個時鐘周期內(nèi)完成。所以,此結(jié)構(gòu)可以在系統(tǒng)性能允許的條件下,從硬件實現(xiàn)的速度、面積和功耗三方面出發(fā),找到實現(xiàn)的最佳方案。
假設(shè)W,A,B∈GF(2m),
其中
由此有限域乘法運算
W=([([...([([ABd-1modp(x)]αD+ABd-2)modp(x)]αD+...]αD
+AB1)modp(x)]αD+AB0)modp(x)
高位優(yōu)先的數(shù)位串行乘法器
1、始化令W(0)=0
2、當1≤i≤d時
W(i)=(W(i-1)(mm+D-1)modp(x))αD+W(i-1)(0m-1)αD+ABd-i
其中
3、結(jié)果W=W(d)modp(x)
基于上述乘法算法,本實施例設(shè)計的一個橢圓曲線密碼協(xié)處理器的數(shù)據(jù)通路23的結(jié)構(gòu)如圖3所示。其中,數(shù)據(jù)通路23中的數(shù)據(jù)通路邏輯模塊231設(shè)計中最核心的部分是分組并行有限域乘法器2312的設(shè)計,此乘法器2312的特點是在面積允許的情況下,通過分組并行輸入的方式來提高乘法器2312的處理能力,同時由于乘法器采用多項式基進行表示,提高了乘法器的擴展性,適合VLSI實現(xiàn)。
在此基礎(chǔ)上,通過對乘法器單元進行簡單配置,使得配置后的平方器2311也具有和乘法器2312相同的特性,同時由于乘法器2312和平方器2311在相同的硬件電路上實現(xiàn),降低了芯片面積,提高了電路的利用率。
數(shù)據(jù)通路邏輯模塊231上還設(shè)計了有限域加法電路2313和全零檢測電路2314,數(shù)據(jù)通路邏輯模塊231中采用了4組特殊寄存器,每組寄存器寬度為m(m為有限域的寬度),其中寄存器RA和寄存器RB用于存儲乘法器的兩個輸入數(shù)據(jù),寄存器RC和寄存器RD用于存儲加法器的兩個輸入數(shù)據(jù)。采用特殊寄存器的目的可以表述為如下兩點1)減少由于組合電路的誤翻轉(zhuǎn)所帶來的功耗;2)通過改進算法調(diào)度,可以盡量把計算過程中的中間結(jié)果存放在特殊寄存器中,并直接在后面的運算中使用,減少了由于將中間結(jié)果寫入和讀出通用寄存器堆帶來的時間和能量消耗。由此可以看出,通過在數(shù)據(jù)通路邏輯模塊231中增加特殊寄存器組,減少了指令數(shù)目和訪問通用寄存器堆的次數(shù)。
如圖3所示,平方器2311為數(shù)位串行平方器,其包括二組平行設(shè)置且分別依次連接的多路選擇器23111和寄存器RA23112;多路選擇器23113和寄存器RB23114,其中,多路選擇器23111的輸入端連接多路選擇器2310的輸出端,該多路選擇器2310的四個輸入端ADD(加法器2313的輸出)、寄存器堆模塊232的輸出、MODP(X)23123的輸出、寄存器RC23132的輸出連接,寄存器RA23112存放乘法器2312的一輸入數(shù)據(jù);多路選擇器23113的二個輸入端分別與P(X)(乘法器生成多項式)和來自寄存器堆的輸入連接,寄存器RB23114存放乘法器2312的另一輸入數(shù)據(jù)。
乘法器2312為數(shù)位串行乘法器,其包括依次成電路聯(lián)結(jié)的有限狀態(tài)機23121、與一異或陣列23122和取模MOD P(X)23123,其中,有限狀態(tài)機23121接受主處理器1送來的有限乘法指令,與一異或陣列23122接受來自平方器2311送出的二個乘法數(shù)據(jù),取模MOD P(X)23123輸出端分別連接寄存器堆232和加法器2313、全零檢測電路2314的輸入端。
加法器電路2313包括依次成電路聯(lián)結(jié)的多路選擇器23131、寄存器RC23132、有限加法器23133,全零檢測電路2314包括依次成電路聯(lián)結(jié)的多路選擇器23141、寄存器RD23142和或陣列23143。其中,多路選擇器23131、23141的輸入端連接取模MOD P(X)23123的輸出和來自寄存器堆模塊232的輸出分別連接;有限域加法器23133的另一輸入端連接寄存器RD的輸出端。
“GFMUL_rst”信號為有限域乘法器復(fù)位信號,作為有限狀態(tài)機23121的輸入。
關(guān)于橢圓曲線密碼算法的點乘調(diào)度方案
目前,蒙哥馬利(Montgomery)點乘算法,是至今較優(yōu)的點乘運算硬件實現(xiàn)算法,其基本思路如下
令Q1=(x1,y1),Q2=(x2,y2),且Q1≠±Q2。同時令Q1+Q2=(x3,y3),Q1-Q2=(x4,y4),則
x3=x4+x1/(x1+x2)+(x1/(x1+x2))2
因此,Q1+Q2的x軸坐標分量可以從1Q1、Q2和Q1-Q2的x軸坐標分量中獲得,而
Q1+Q2的y軸坐標分量可以從其x軸坐標分量中變換得到,具體算法表述如下
輸入k≥0和點P=(x,y)∈E
輸出Q=kP
1)如果可k=0或者x=0,那么輸出(0,0)
2)令k←(kl-1,…,k1k0)2,i=l-2
3)令X1←x,Z1←1,X2←x4+b,Z2←x2
4)對于0≤i≤l-2(i遞減)
如果ki=1,那么Madd(X1,Z1,X2,Z2),Mdouble(X2,Z2)
否則Madd(X2,Z2,X1,Z1),Mdouble(X1,Z1)
5)計算(Q=Mxy(X1,Z1,X2,Z2))
算法中使用的函數(shù)Madd,Mdouble分別為蒙哥馬利數(shù)域上的橢圓曲線點加、倍點,Mxy為數(shù)域轉(zhuǎn)換函數(shù)。
權(quán)利要求
1.一種新型的橢圓曲線密碼協(xié)處理器,特別適用于由主處理器和協(xié)處理器構(gòu)成的橢圓曲線公鑰制密碼系統(tǒng),其特征在于
a.該主處理器為由嵌入式微處理器構(gòu)成的主控制器,其包括點乘控制器和通信控制器,分別向協(xié)處理器送出協(xié)處理器擴展指令和進行數(shù)據(jù)交換,
b.該橢圓密碼協(xié)處理器為硬件控制器,主要由總線狀態(tài)跟隨器,譯碼控制電路和數(shù)據(jù)通路構(gòu)成,并設(shè)有專用協(xié)處理器接口經(jīng)由總線與主處理器連接,其中,
總線狀態(tài)跟隨器含有流水線跟隨器和與之相連接的操作數(shù)狀態(tài)單元,其接受來自主處理器發(fā)出的協(xié)處理器擴展指令,和從協(xié)處理器接口輸入流水線狀態(tài)信號及與主處理器進行交互的握手信號;
譯碼控制電路接收來自主處理器的指令信號,其含有指令寄存器并后接協(xié)處理器擴展指令與協(xié)處理器微代碼指令兩級譯碼器,并分別形成對總線狀態(tài)跟隨器和數(shù)據(jù)通路的控制信號;
數(shù)據(jù)通路包括成雙向數(shù)據(jù)流聯(lián)結(jié)的寄存器堆和數(shù)據(jù)通路單元,由寄存器堆與公鑰密碼系統(tǒng)存儲器進行數(shù)據(jù)交換。
2.根據(jù)權(quán)利要求1所述的新型的橢圓曲線密碼協(xié)處理器,其特征在于所述主處理器為32位嵌入式微處理器,并基于協(xié)處理器擴展指令和相應(yīng)的協(xié)處理器接口開發(fā)該橢圓曲線密碼協(xié)處理器。
3.根據(jù)權(quán)利要求1或2所述的新型的橢圓曲線密碼協(xié)處理器,其特征在于所述譯碼控制電路包括依次成電路聯(lián)結(jié)的第一指令寄存器、第一譯碼器、指針組、微代碼組、第二多路選擇器、第二指令寄存器和第二譯碼器。
4.根據(jù)權(quán)利要求1或2所述的新型的橢圓曲線密碼協(xié)處理器,其特征在于所述的數(shù)據(jù)通路單元包括依次成線路聯(lián)結(jié)的數(shù)字串行平方器、數(shù)位串行乘法器、有限域加法電路和全零檢測電路。
5.根據(jù)權(quán)利要求4所述的新型的橢圓曲線密碼協(xié)處理器,其特征在于在所述的數(shù)據(jù)通路中設(shè)有存儲乘法器的兩個輸入數(shù)據(jù)的寄存器RA和寄存器RB。
6.根據(jù)權(quán)利要求4所述的新型的橢圓曲線密碼協(xié)處理器,其特征在于在所述的數(shù)據(jù)通路中設(shè)有存儲有限域加法電路的兩個輸入數(shù)據(jù)的寄存器RC和寄存器RD。
全文摘要
一種新型的橢圓曲線密碼處理器,應(yīng)用于由主處理器和協(xié)處理器構(gòu)成的ECC公鑰密碼系統(tǒng),特點是主處理器為由嵌入式微處理器構(gòu)成,含有點乘控制器和通信控制器,經(jīng)由總線和協(xié)處理器專用接口與橢圓曲線密碼協(xié)處理器聯(lián)結(jié),該協(xié)處理器為硬件控制器,含有成電路聯(lián)結(jié)的總線狀態(tài)跟隨器、譯碼控制電路和數(shù)據(jù)通路,分別實施對主處理器的狀態(tài)跟蹤,判別是否是協(xié)處理器擴展指令并給出與主處理器交互握手信號;將協(xié)處理器擴展指令翻譯成微代碼并再譯成數(shù)據(jù)通路進行數(shù)據(jù)交換、與有限域運算的控制信號。本發(fā)明的優(yōu)點是可與嵌入式CPU相配合構(gòu)成橢圓曲線密碼系統(tǒng);靈活實現(xiàn)系統(tǒng)重配置,降低重開發(fā)成本;易于實現(xiàn)運算速度,芯片面積和功耗的最佳結(jié)合方案。
文檔編號H04L9/28GK1700637SQ20051002591
公開日2005年11月23日 申請日期2005年5月18日 優(yōu)先權(quán)日2005年5月18日
發(fā)明者曾曉洋, 顧震宇, 章倩苓, 陳超 申請人:上海迪申電子科技有限責任公司