專利名稱:一種ecc\rsa加解密協(xié)處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是一種加密處理器,特別涉及的是一種同時實現(xiàn)了 ECORSA力口 解密運算的處理器。
背景技術(shù):
RSA公鑰密碼是目前廣泛使用的公鑰數(shù)據(jù)加解密算法,它能夠抵抗到目前為 止已知的所有密碼攻擊。RSA算法的安全性基于數(shù)論中大素數(shù)分解的困難性。隨 著計算機處理能力和網(wǎng)絡(luò)的迅速發(fā)展,RSA公鑰密碼體制的公鑰位數(shù)大(一般為 1024比特以上)的弱點逐漸暴露出來。橢圓曲線密碼系統(tǒng)(ECC),其安全性是基于 橢圓曲線上的加法群的離散對數(shù)問題ECDLP求解的困難性,ECC相對RSA系統(tǒng) 相比更具優(yōu)勢。由于它的每位具有更高的安全性,導致它的運算速度快,同時節(jié) 約功耗,帶寬,存儲空間和證書長度。智能卡IC要求較小的存儲空間和低成本。 在智能IC卡的操作系統(tǒng)COS的設(shè)計上,卡片和數(shù)據(jù)通信方面都采取了各種不同 的安全協(xié)議。這些協(xié)議中往往都采用了強度高的RSA和ECC等各種安全算法、 數(shù)據(jù)加密措施。RSA加密中核心運算就是模冪/乘運算,ECC加密中核心運算是點乘運算, 由于它們計算步驟的復雜性,目前大部分芯片只能實現(xiàn)2者中的l種,而另一種 采用軟核的方式來實現(xiàn)。對于智能IC卡等時鐘頻率較低的設(shè)備,軟硬件交互多, 導致運算的速度慢。而一些高速實現(xiàn)的設(shè)計中,芯片的面積偏大,成本偏高。發(fā)明內(nèi)容本發(fā)明的目的在于,提出一種ECaRSA加解密協(xié)處理器,其接口方式簡單, RSA和ECC共用寄存器和計算電路,采用模塊化控制,使運算速度大大加快。將 點乘,模冪等復雜運算分解為規(guī)整的乘法全加減基本計算,規(guī)整了計算操作,減 少中間步驟,減少了寄存器的個數(shù)。基于上層協(xié)議的不同,可以調(diào)用該協(xié)處理器 單獨完成256位的求逆,點加,點乘,以及1024位的模乘,乘法和預計算運算, #_應用更加靈活。
為實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案在于,提出了一種ECCARSA加解 密協(xié)處理器,其包括指令輸入裝置、ECORSA總控制器、ECC協(xié)控制器、運算 控制器以及基本運算器,其中,所迷的指令輸入裝置,將外部命令進行轉(zhuǎn)換,其分別與所述的ECORSA總 控制器、ECC協(xié)控制器以及運算控制器相連接;所述的ECCVRSA總控制器,切換完成相應的ECCvRSA運算,其分別與所述 的ECC協(xié)控制器、運算控制器相連,控制所述的ECC協(xié)控制器完成模冪乘和點 乘計算,以及所述的運算控制器完成模乘計算;所述的運算控制器與基本運算控制器相連,所述的基本運算控制器完成模乘, 加,減計算;較佳的,還包括一緩存,所述的緩存分別與所述的指令輸入裝置和基本運算 器相連;較佳的,所述的指令輸入裝置為譯碼器;較佳的,所述的譯碼器控制ECC\RSA總控制器完成RSA, ECC運算;控制 運算控制器完成模乘、加、減計算以及控制緩存的初始化,移位和存儲;較佳的,所述的ECC\RSA總控制器控制ECC協(xié)控制器完成模冪乘和點乘計 算;以及控制運算控制器完成模乘計算;較佳的,所述的ECC協(xié)控制器控制運算控制器完成ECC單步的計算;較佳的,譯碼器用以提供啟動信號,具有接收外部微程序控制器的寫信號、 讀信號、復位信號、8位的地址信號的輸入端;以及接收從ECORSA總控制器返 回的狀態(tài)值的輸入端;較佳的,所述的啟動信號為向ECC\RSA總控制器發(fā)出經(jīng)譯碼產(chǎn)生的啟動信 號;向ECC協(xié)控制器發(fā)出經(jīng)譯碼產(chǎn)生的啟動信號;向運算控制器發(fā)出經(jīng)譯碼產(chǎn)生 的啟動信號;向緩存輸出經(jīng)譯碼產(chǎn)生的讀/寫數(shù)據(jù)的信號;較佳的,所述的基本運算放大器,其包括循環(huán)移位寄存器組,乘法器,選 通器,臨時寄存器,加法器,臨時寄存器,選通器,選通器,進位寄存器,加法 器,減法邏輯單元以及選通器。
圖1為本發(fā)明的ECORSA加密算法的協(xié)處理器較佳實施例的配置圖2為圖1中的基本運算器的電路框圖。
具體實施方式
以下結(jié)合附圖,對本發(fā)明上迷的和另外的技術(shù)特征和優(yōu)點作更詳細的說明。 請參閱圖1為本發(fā)明的ECC\RSA加密算法的協(xié)處理器較佳實施例的配置 圖,其包括譯碼器l; ECCvRSA總控制器2; ECC協(xié)控制器3;運算控制器4; FIFO (緩存)5;基本運算器6。其中,所述的譯碼器1分別與ECC\RSA總控制器2, ECC協(xié)控制器3,運算 控制器4和FIF05相連;譯碼器1以及FIF05通過雙向數(shù)據(jù)線、外部地址數(shù)據(jù)總 線與外部交換數(shù)據(jù);外部數(shù)據(jù)寫入FIF05后,由譯碼器1控制送入相應的寄存器 中。它可直接控制ECC\RSA總控制器3完成RSA, ECC運算;也可直接控制ECC 協(xié)控制器3完成ECC單步計算;可直接控制運算控制器4完成模乘,力。,減計算; 以及控制FIF05的初始化,移位和存儲。該部分主要對外部addr地址線進行譯碼,用 一般的2進制譯碼容易實現(xiàn)。所述的ECC\RSA總控制器2還與ECC協(xié)控制器3和運算控制器4分別相連; 通過譯碼器啟動,直接控制ECC協(xié)控制器3完成模冪乘和點乘計算;直接控制運 算控制器4完成模乘計算;并向譯碼器1返回完成狀態(tài)信號。根據(jù)點乘的參數(shù)或 冪指數(shù)中"1"的個數(shù),啟動相應的ECC單步或模乘計算信號,該部分可用狀態(tài) 機產(chǎn)生控制信號來實現(xiàn);所述的ECC協(xié)控制器3還和所述的運算控制器4相連;通過譯碼器或 ECC\RSA總控制器啟動,ECC協(xié)控制器3控制運算控制器4完成ECC單步的計 算,并向ECC、RSA總控制器2返回完成狀態(tài)信號;根據(jù)ECC點加或倍點的計算 信號,產(chǎn)生模乘或模加,模減計算信號,該部分可用狀態(tài)機產(chǎn)生控制信號來實現(xiàn);所述的運算控制器4、譯碼器1, ECC協(xié)控制器3都和基本運算器6相連; 通過譯碼器、ECC\RSA總控制器或ECC協(xié)控制器啟動,所述運算控制器4控制 基本運算器6完成模乘、加和減;根據(jù)模乘或模加、模減的信號,產(chǎn)生乘、乘加、 加計算信號,該部分可用狀態(tài)機產(chǎn)生控制信號來實現(xiàn);所述的FIF05與譯碼器l和基本運算器6相連;先進先出存儲器用于輸入輸 出緩沖,拼接數(shù)據(jù),存儲運算狀態(tài)值。所述的基本運算器6對FIF05輸入的數(shù)據(jù)進行處理,通過做乘法和加減法完 成整個ECC、RSA加解密運算,并將計算結(jié)果保存在FIF05中。請參閱圖2所示,其為圖1中的基本運算器的電路框圖,所述的基本運算器6包括循環(huán)移位寄存器組61,乘法器162,選通器163,臨時寄存器164,加法器165,臨時寄存器166,選通器267,選通器368,進位寄存器69,加法器2 6a,減法邏輯單元6b,選通器46c。其中,所述的循環(huán)移位寄存器組61,由4個循環(huán)移位寄存器組成。分別用于存儲模數(shù),操作數(shù)l,操作數(shù)2和臨時計算結(jié)果。接收加法器6a或FIF05的輸入數(shù)據(jù),為乘法器162,加法器165,加法器26a提供相關(guān)操作數(shù),共同完成乘加功能。同時接收加法器26a返回的結(jié)果;所述的乘法器162接收循環(huán)移位寄存器組61輸出的操作數(shù),相乘產(chǎn)生結(jié)果到下一級選通器163或選通器46c;這一步的計算結(jié)果在乘法信號控制下可直接輸出。所述的選通器163作為臨時寄存器164的輸入選擇。接收乘法器162輸出的 結(jié)果,和循環(huán)移位寄存器組61輸出的數(shù)據(jù),選擇其中一個輸出到臨時寄存器164 中;所述的臨時寄存器164接收選通器163輸出的數(shù)據(jù),輸出到加法器165作為 一個操作數(shù)或到選通器267。所述的加法器165將臨時寄存器64輸出的結(jié)果和加法器26a輸出的結(jié)果相 乘,產(chǎn)生結(jié)果送臨時寄存器266或選通器46c;這一步的計算結(jié)果在模乘信號控 制下可直接輸出。所述的臨時寄存器266接收加法器165輸出的結(jié)果或循環(huán)移位寄存器組61 輸出的數(shù)據(jù),輸出到選通器368。所述的選通器267作為加法器26a的一個操作數(shù)輸入選擇。接收臨時寄存器 164和循環(huán)移位寄存器組61輸出的數(shù)據(jù),選擇其中一個作為加法器26a的一個操 作數(shù);所述的選通器368作為加法器26a的一個操作數(shù)輸入選擇。接收臨時寄存器 266和減法邏輯單元6b輸出的數(shù)據(jù),選擇其中一個作為加法器26a的一個操作數(shù);所述的進位寄存器69接收加法器26a產(chǎn)生的進位,保存其中,下周期作為加 法器26a操作數(shù)參與計算;所述的加法器26a接收選通器267,接收選通器368和進位寄存器69的數(shù)據(jù)
相加并產(chǎn)生進位。和送選通器46c與加法器165,循環(huán)移位寄存器組61;這一步 的計算結(jié)果在模加或減信號控制下可直接輸出。所述的減法邏輯單元6b作為中間邏輯電路,接收循環(huán)移位寄存器組61的數(shù) 據(jù),并將數(shù)據(jù)轉(zhuǎn)化為減法操作數(shù),輸出到選通器368中,主要完成取模的操作;所述的選通器46c接收乘法器162,加法器165和加法器26a輸出的結(jié)果, 選擇其中一個作為基本運算器6的輸出。綜上,本發(fā)明在數(shù)據(jù)處理的規(guī)整性,并行性,器件的復用性,重構(gòu)性上具有 一定的創(chuàng)新性。通過利用移位寄存器,乘法器和加法器同時實現(xiàn)了 ECC\RSA加 解密運算,相對于以前的基于分離的RSA和ECC的結(jié)構(gòu),減少了寄存器和組合 邏輯電路,有效降低了芯片的面積。同時將RSA和ECC中復雜的運算,分解成 簡單計算,并可由外部微程序控制器控制輸出。上層軟件可以調(diào)用該協(xié)處理器單 獨完成256位的求逆、點加、點乘以及1024位的模乘、乘法和預計算運算,使應 用更加靈活。以上所述僅為本發(fā)明的較佳實施例,對本發(fā)明而言僅僅是說明性的,而非限 制性的。本專業(yè)技術(shù)人員理解,在本發(fā)明權(quán)利要求所限定的精神和范圍內(nèi)可對其 進行許多改變,修改,甚至等效,但都將落入本發(fā)明的保護范圍內(nèi)。
權(quán)利要求
1. 一種ECC\RSA加解密協(xié)處理器,其特征在于其包括指令輸入裝置、ECC\RSA總控制器、ECC協(xié)控制器、運算控制器以及基本運算器,其中,所述的指令輸入裝置,將外部命令進行轉(zhuǎn)換,其分別與所述的ECC\RSA總控制器、ECC協(xié)控制器以及運算控制器相連接;所述的ECC\RSA總控制器,切換完成相應的ECC\RSA運算,其分別與所述的ECC協(xié)控制器、運算控制器相連,控制所述的ECC協(xié)控制器完成模冪乘和點乘計算,以及所述的運算控制器完成模乘計算;所述的運算控制器與基本運算控制器相連,所述的基本運算控制器完成模乘、加、減計算。
2、 根據(jù)權(quán)利要求1所述的ECaRSA加解密協(xié)處理器,其特征在于還包括 一緩存,所述的緩存分別與所述的指令輸入裝置和基本運算器相連。
3、 根據(jù)權(quán)利要求1所述的ECC、RSA加解密協(xié)處理器,其特征在于所述的 指令輸入裝置為譯碼器。
4、 根據(jù)權(quán)利要求3所述的一種ECORSA加解密協(xié)處理器,其特征在于所 述的譯碼器控制ECC\RSA總控制器完成RSA, ECC運算;控制運算控制器完成 模乘、加、減計算以及控制緩存的初始化,移位和存儲。
5、 根據(jù)權(quán)利要求1所述的一種ECaRSA加解密協(xié)處理器,其特征在于所 述的ECC\RSA總控制器控制ECC協(xié)控制器完成模冪乘和點乘計算;以及控制運 算控制器完成模乘計算。
6、 根據(jù)權(quán)利要求1所述的一種ECaRSA加解密協(xié)處理器,其特征在于所 述的ECC協(xié)控制器控制運算控制器完成ECC單步的計算,并且所述的運算控制 器控制基本運算器完成模乘,力口,減。
7、 根據(jù)權(quán)利要求3所述的一種ECORSA加解密協(xié)處理器,其特征在于所 述的譯碼器用以提供啟動信號,其具有接收外部微程序控制器的寫信號、讀信 號、復位信號、8位的地址信號的輸入端;以及接收從ECORSA總控制器返回的 狀態(tài)值的輸入端。
8、 根據(jù)權(quán)利要求7所述的一種ECORSA加解密協(xié)處理器,其特征在于所 述的啟動信號包括向ECC\RSA總控制器發(fā)出經(jīng)譯碼產(chǎn)生的啟動信號;向ECC 協(xié)控制器發(fā)出經(jīng)譯碼產(chǎn)生的啟動信號;向運算控制器發(fā)出經(jīng)譯碼產(chǎn)生的啟動信號;向緩存輸出經(jīng)譯碼產(chǎn)生的讀/寫數(shù)據(jù)的信號。
9、根據(jù)權(quán)利要求1所述的一種ECORSA加解密協(xié)處理器,其特征在于所 述的基本運算放大器,其包括循環(huán)移位寄存器組,乘法器,選通器,臨時寄存 器,加法器,臨時寄存器,選通器,選通器,進位寄存器,加法器,減法邏輯單 元以及選通器。
全文摘要
本發(fā)明為一種ECC\RSA加解密協(xié)處理器,其包括指令輸入裝置、ECC\RSA總控制器、ECC協(xié)控制器、運算控制器以及基本運算器,其中,所述的指令輸入裝置,將外部命令進行轉(zhuǎn)換,其分別與所述的ECC\RSA總控制器、ECC協(xié)控制器以及運算控制器相連接;所述的ECC\RSA總控制器,切換完成相應的ECC\RSA運算,其分別與所述的ECC協(xié)控制器、運算控制器相連,控制所述的ECC協(xié)控制器完成模冪乘和點乘計算,以及所述的運算控制器完成模乘計算;所述的運算控制器與基本運算控制器相連,所述的基本運算控制器完成模乘、加、減計算;從而實現(xiàn)了用移位寄存器,乘法器和加法器同時實現(xiàn)了ECC\RSA加解密運算,減少了寄存器和組合邏輯電路,有效降低了芯片的面積的目的。
文檔編號H04L9/30GK101212292SQ200610167380
公開日2008年7月2日 申請日期2006年12月31日 優(yōu)先權(quán)日2006年12月31日
發(fā)明者斌 蘇 申請人:航天信息股份有限公司