專利名稱:智能化、全硬件的rsa加解密處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及運用RSA算法(是第一個既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。算法的名字以發(fā)明者姓氏的首字母命名Ron Rivest,Adi Shamir和Leonard Adleman)進行數(shù)據(jù)加解密運算的全硬件、智能化處理器,更具體地說,本發(fā)明涉及包括適用于任何頻率的CPU的DPRAM的接口方式,運用RSA算法,可將待處理信息切割成若干個1024bit位的數(shù)據(jù)塊,并將數(shù)據(jù)塊以最高64位為基本加工單元進行加/解密處理的全硬件處理器。
現(xiàn)有的RSA加解密芯片在作數(shù)據(jù)的模除時采用的是蒙哥馬利算法,因而加解密速度較慢;而本發(fā)明采用“權(quán)”相關(guān)的超標(biāo)量流水線方式實現(xiàn)數(shù)據(jù)的乘累加和模除,累加過程均為等長累加,充分利用了資源;而且解密處理采用了中國剩余定理,將1024位數(shù)據(jù)的模除運算轉(zhuǎn)化成512位數(shù)據(jù)的模除運算,從而加快了解密運算的速度。以50MHz工作頻率,0.35μm工藝,最低數(shù)據(jù)處理能力達400Kbps。而且,本發(fā)明可與任意主頻的CPU配合工作而無須考慮數(shù)據(jù)同步問題。
本發(fā)明的目的是提供一種面向數(shù)字簽名、身份驗證以及數(shù)據(jù)加解密的高速有效的RSA加解密處理器。
為實現(xiàn)以上目的,本發(fā)明提供了數(shù)據(jù)緩存模塊電路;超長寬度流水式的乘法和除法部件;自適應(yīng)的流水線的級數(shù)控制邏輯電路;段乘和段除數(shù)據(jù)地址控制邏輯模塊電路。其特征在于處理器包括控制邏輯模塊、數(shù)據(jù)緩存模塊、寄存器組模塊以及算術(shù)邏輯模塊。數(shù)據(jù)緩存模塊通過雙向數(shù)據(jù)線與地址總線與外部交換數(shù)據(jù);外部數(shù)據(jù)寫入數(shù)據(jù)緩存模塊后,控制邏輯模塊產(chǎn)生控制信號將數(shù)據(jù)緩存模塊中的數(shù)據(jù)讀出,寫入寄存器組模塊的相應(yīng)單元,當(dāng)所須運算數(shù)據(jù)寫完后,控制邏輯模塊啟動加/解密運算過程,運算過程產(chǎn)生的中間數(shù)據(jù)(商和余數(shù)),經(jīng)由數(shù)據(jù)線從算術(shù)邏輯模塊寫入寄存器組模塊;控制邏輯模塊還產(chǎn)生算術(shù)邏輯模塊的移位控制信號。
下面將參照附圖對本發(fā)明的優(yōu)選實施方案進行詳細的描述,從而本發(fā)明的優(yōu)點和特點將更加具體而明顯。附圖中
圖1 RSA處理器總體結(jié)構(gòu)框圖;圖2 是段積的“權(quán)”相關(guān)的多級流水線圖示;圖3 是自適應(yīng)的流水線級數(shù)控制邏輯電路與數(shù)據(jù)地址產(chǎn)生邏輯控制電路的連接示意圖;圖4是段積數(shù)據(jù)源地址控制邏輯結(jié)構(gòu)示意圖。
圖5是凈乘數(shù)據(jù)地址控制邏輯模塊結(jié)構(gòu)示意圖。
圖6是算術(shù)邏輯模塊結(jié)構(gòu)示意簡圖;下面將通過基本加工單元為64位的情況來描述本發(fā)明,應(yīng)理解的是,本發(fā)明的數(shù)據(jù)塊位數(shù)不僅限于1024位,而可以是小于或等于1024位的任意自然數(shù),如1000位、512位、10位等;基本加工單元也并不限定在64位的情況,而可以是任意位如32位、16位、8位等。當(dāng)待處理信息不足64位的整數(shù)倍時,高位可做添“0”處理,以64位為基本加工單元進行運算。當(dāng)待處理信息是64×n位(n為自然數(shù),表數(shù)據(jù)段數(shù),不足64位的整數(shù)倍時,高位作添“0”處理)時,可將待處理信息分割成n段64位的基本單元。
圖1是RSA處理器總體結(jié)構(gòu)框圖,主要包括控制邏輯模塊(1)、數(shù)據(jù)緩存模塊(2)、寄存器組模塊(3)以及算術(shù)邏輯模塊(4)。其中,數(shù)據(jù)緩存模塊(2)通過雙向數(shù)據(jù)線DATA_BUS與地址總線ADDR與外部交換數(shù)據(jù);數(shù)據(jù)緩存模塊(2)通過數(shù)據(jù)線EDBBUS和RESULT與寄存器組模塊(3)相連,用于與寄存器組模塊(3)進行加/解密所需的數(shù)據(jù)及處理結(jié)果的交換;寄存器組模塊(3)用于保存加解密處理所需的數(shù)據(jù),以及運算過程產(chǎn)生的中間數(shù)據(jù)(商和余數(shù)),經(jīng)由數(shù)據(jù)線CODE,MODE,QUO,R等與RSA CORE的算術(shù)邏輯模塊(4)相連;控制邏輯模塊(1)與數(shù)據(jù)緩存模塊(2)、寄存器組模塊(3)及算術(shù)邏輯模塊(4)分別相連,提供對寄存器組模塊(3)進行讀寫所須的地址、對數(shù)據(jù)緩存模塊(2)的讀寫操作控制信號、以及對算術(shù)邏輯模塊(4)的移位控制信號??刂七壿嬆K(1)主要由以下模塊組成自適應(yīng)的流水線級數(shù)控制邏輯模塊、數(shù)據(jù)地址產(chǎn)生邏輯控制模塊電路、段積數(shù)據(jù)源地址控制邏輯模塊、凈乘數(shù)據(jù)地址控制邏輯模塊,用于產(chǎn)生運算所須地址及其他控制信號。
由控制邏輯產(chǎn)生寫地址信號,配合外部CPU指令將數(shù)據(jù)裝載 RSA電路的寄存器模塊DPRAM中;加/解密結(jié)束后,控制邏輯產(chǎn)生寫地址信號RSA CORE將數(shù)據(jù)存入DPRAM,CPU從DPRAM中提取處理結(jié)果;加/解密運算過程所產(chǎn)生的中間數(shù)據(jù)的保存和傳送,均由專門的硬部件自動完成。本領(lǐng)域的技術(shù)人員應(yīng)該明白,這種接口電路能適用于任何頻率的CPU,而無須考慮到數(shù)據(jù)同步問題,從而降低了電路開銷。
圖2是段積的“權(quán)”相關(guān)的多級流水線圖示,下面參照此圖來描述本發(fā)明的段積的“權(quán)”相關(guān)的多級流水線方式。以64×2位數(shù)據(jù)的段乘累加為例令低64位的“權(quán)”為20,高64位的“權(quán)”為21,則乘積的權(quán)應(yīng)為23,乘積的各段與操作數(shù)間的對應(yīng)關(guān)系詳見圖示。64×2位數(shù)據(jù)的段乘累加流水級數(shù)為4級,依此類推,n段×m段(n>m)數(shù)據(jù)的段乘累加流水線形式為An×Bm;An-1×Bm,An×Bm-1;An-2×Bm,An-1×Bm-1,An×Bm-2;An-3×Bm,An-2×Bm-1……;A0×B1;A1×B0;A0×B0的“權(quán)”相關(guān)的流水線乘法。流水長度可由自適應(yīng)的控制邏輯電路,根據(jù)實際數(shù)據(jù)(包括運算過程產(chǎn)生的中間數(shù)據(jù))的長度,自動控制數(shù)據(jù)的段數(shù),從而控制各個子循環(huán)(段乘或段除)的流水線級數(shù),優(yōu)化了處理速度。
圖3是自適應(yīng)的控制邏輯電路與數(shù)據(jù)地址產(chǎn)生邏輯控制電路的連接示意圖。本領(lǐng)域的技術(shù)人員很容易依圖4所示的框圖實現(xiàn)流水級數(shù)的自適應(yīng)控制邏輯電路。當(dāng)處理過程中,模除結(jié)果前幾段為全“0”時,DATA=0,流水線級數(shù)控制電路(PipelineStage Control)對模除結(jié)果段數(shù)n進行減一,直至模除結(jié)果出現(xiàn)第一個不為“0”的段為止??刂七壿媽⑿碌臄?shù)據(jù)段長nn作為段積數(shù)據(jù)最大段地址置入地址生成電路,從而控制了新一輪循環(huán)的段乘流水級數(shù)。
為了實現(xiàn)數(shù)據(jù)段積、凈乘以及模除的流水線處理,本專利提供了段積數(shù)據(jù)源地址控制邏輯電路、凈乘數(shù)據(jù)源地址控制邏輯電路以及模除減積數(shù)據(jù)源地址控制邏輯電路。其中,模除減積數(shù)據(jù)源地址控制邏輯電路已在“1024位流水式除法部件”的中國專利中詳細述及,本專利中將不再贅述。
圖4是段積數(shù)據(jù)地址控制邏輯電路框圖。加一計數(shù)器1為四位二進制地址循環(huán)計數(shù)器,加一計數(shù)器2為四位二進制地址計數(shù)器,減一計數(shù)器1和減一計數(shù)器2為四位二進制減一計數(shù)器。加一計數(shù)器1前n個循環(huán)按加1計數(shù),過n后,按減1計數(shù)。
對于n段×m段(n>m)數(shù)據(jù)的段乘運算,首先將n值置入加一計數(shù)器1,將其輸出的負邏輯輸出給加一計數(shù)器2,產(chǎn)生第一操作數(shù)A的段地址。四位二進制減一計數(shù)器減一計數(shù)器2和減一計數(shù)器1用于產(chǎn)生第二操作數(shù)B的段地址。兩路地址控制邏輯電路按An×Bm;An-1×Bm,An×Bm-1;An-2×Bm,An-1×Bm-1,An×Bm-2;An-3×Bm,An-2×Bm-1……;A0×B1;A1×B0;A0×B0的流水順序產(chǎn)生段乘運算操作數(shù)的段地址。
圖5是凈乘數(shù)據(jù)源地址控制邏輯電路,加一計數(shù)器1和加一計數(shù)器2為四位二進制加一計數(shù)器,減一計數(shù)器1和減一計數(shù)器2為三位二進制減一計數(shù)器。對于n段×m段(n>m)數(shù)據(jù)的凈乘運算,加一計數(shù)器1的輸出給加一計數(shù)器2置初值,由加一計數(shù)器2產(chǎn)生第一操作數(shù)A2的段地址。加一計數(shù)器1的輸出還給減一計數(shù)器1置初值,由減一計數(shù)器1用于產(chǎn)生第二操作數(shù)B的段地址。兩路地址控制邏輯電路按A0×B0;A0×B1,A1×B0;A0×B2,A1×B1,A2×B0;A0×B3,A1×B2……;An-1×Bm,An×Bm-1;An×Bm的流水順序產(chǎn)生凈乘運算操作數(shù)的段地址。
圖6是算術(shù)邏輯模塊結(jié)構(gòu)框圖。算術(shù)邏輯模塊是由一個超長寬度的流水式64位乘累加器、一個1024位超長寬度的流水式除法器組成。超長寬度的流水式64位乘累加器用于進行來自寄存器組模塊的數(shù)據(jù)的段乘、段積的累加,數(shù)據(jù)地址分別由凈乘數(shù)據(jù)地址控制邏輯模塊、段積數(shù)據(jù)地址控制邏輯模塊產(chǎn)生。1024位超長寬度的流水式除法器用于模除運算。本專利所涉及的1024位超長寬度的流水線方式除法部件其自適應(yīng)的控制邏輯電路,已在“1024位流水式除法部件”的中國專利中詳細述及,本專利中將不再贅述。
在不脫離本發(fā)明的思想和范圍的情況下,本領(lǐng)域的技術(shù)人員還能實現(xiàn)將數(shù)據(jù)切割成任意數(shù)據(jù)塊長度,并以任意長度的數(shù)據(jù)長度作為基本加工單元進行加解密處理運算。
權(quán)利要求
1.一種RSA加解密處理器,采用超標(biāo)量流水線方式,將待處理信息以1024位為一個數(shù)據(jù)塊,并將數(shù)據(jù)塊以最高64位為基本加工單元進行加/解密處理,其特征在于所述的RSA加解密處理器包括控制邏輯模塊(1)、數(shù)據(jù)緩存模塊(2)、寄存器組模塊(3)以及算術(shù)邏輯模塊(4),其中,數(shù)據(jù)緩存模塊(2)通過雙向數(shù)據(jù)線DATA_BUS與地址總線ADDR與外部交換數(shù)據(jù);數(shù)據(jù)緩存模塊(2)通過數(shù)據(jù)線EDBBUS和RESULT與寄存器組模塊(3)相連,用于與寄存器組模塊(3)進行加/解密所需的數(shù)據(jù)及處理結(jié)果的交換;寄存器組模塊(3)用于保存加解密處理所需的數(shù)據(jù),以及運算過程產(chǎn)生的中間數(shù)據(jù)(商和余數(shù)),經(jīng)由數(shù)據(jù)線CODE,MODE,QUO,R與算術(shù)邏輯模塊(4)相連;控制邏輯模塊(1)與數(shù)據(jù)緩存模塊(2)、寄存器組模塊(3)及算術(shù)邏輯模塊(4)分別相連,提供對寄存器組模塊(3)進行讀寫所須的地址、對數(shù)據(jù)緩存模塊(2)的讀寫操作控制信號、以及對算術(shù)邏輯模塊(4)的移位控制信號。
2.根據(jù)權(quán)利要求1的RSA加解密處理器,其特征在于接口方式適用于任何頻率的CPU,整個加/解密運算過程,均由硬部件自動完成。
3.根據(jù)權(quán)利要求1或2的RSA加解密處理器,寄存器組模塊(3)分別存儲加解密所需的1024位模,明文或密文,中間數(shù)據(jù)商,以及余數(shù)。
4.根據(jù)權(quán)利要求1的RSA加解密處理器,其特征在于算術(shù)邏輯模塊(4)包括超長寬度的乘法部件,段積的累加采用“權(quán)”相關(guān)的多級流水線操作。
5.根據(jù)權(quán)利要求4的RSA加解密處理器,其特征在于段積的流水線操作由自適應(yīng)的控制邏輯電路完成,能根據(jù)實際數(shù)據(jù)(包括運算過程產(chǎn)生的中間數(shù)據(jù))的長度,自動控制各個子循環(huán)的長度和流水線的級數(shù),從而優(yōu)化了處理速度。
6.根據(jù)權(quán)利要求1的RSA加解密處理器,其特征在于算術(shù)邏輯模塊(4)包括了超長寬度的除法部件,模除運算采用按“權(quán)”相關(guān)的多級流水線操作。
7.根據(jù)權(quán)利要求6的RSA加解密處理器,其特征在于模除運算的流水線操作包括自適應(yīng)的控制邏輯電路,能根據(jù)實際數(shù)據(jù)(包括運算過程產(chǎn)生的中間數(shù)據(jù))的長度,自動控制各個子循環(huán)的長度和流水線的級數(shù),從而優(yōu)化了處理速度。
8.根據(jù)權(quán)利要求1的RSA加解密處理器,其特征在于控制邏輯單元(1)產(chǎn)生的運算數(shù)據(jù)的地址將數(shù)據(jù)以“權(quán)”相關(guān)的方式送到算術(shù)邏輯模塊進行相關(guān)的運算。
9.根據(jù)權(quán)利要求1的RSA加解密處理器,其特征在于解密過程利用了中國剩余定理,將1024位數(shù)據(jù)的模除運算轉(zhuǎn)化成512位數(shù)據(jù)的模除運算。
全文摘要
一種RSA加解密處理器,采用超標(biāo)量流水線方式,可一次對最多1024位待處理信息以最高64位為基本加工模塊進行加/解密處理。包括:寄存器組模塊,控制邏輯模塊,乘/除法器及累加器模塊。這種能對數(shù)據(jù)進行高速加解密處理的處理器在對速度要求較高的場合如數(shù)字簽名、身份驗證中特別有用。
文檔編號G06F3/00GK1379375SQ0111039
公開日2002年11月13日 申請日期2001年4月11日 優(yōu)先權(quán)日2001年4月11日
發(fā)明者趙云琪, 饒進平, 侯勇 申請人:北京國芯安集成電路設(shè)計有限公司