專利名稱:一種rfid智能卡芯片的rsa協(xié)處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及RFID安全領(lǐng)域,尤其是一種RFID智能卡芯片的RSA協(xié)處理器。
背景技術(shù):
從智能卡芯片本身特性來看,RFID智能卡的安全性、運(yùn)算能力、大容量、低成本、低功耗都是主要的研究方向,其中安全問題在智能卡應(yīng)用過程中具有特別重要的地位,不論使用智能卡的用戶、銀行、還是零售商,關(guān)注的無非就是信息傳遞的安全性和用戶身份認(rèn)證和交易的可靠性,加之人們對智能卡安全性的期望度較高,很多智能卡將會被應(yīng)用到一些敏感領(lǐng)域中,如果這些涉及個人隱私的信息被泄露,將降低用戶對采用這些智能卡的系統(tǒng) 的任度。從智能卡芯片的角度來說,解決智能卡安全問題可以從軟件角度、硬件角度、安全認(rèn)證機(jī)制等角度進(jìn)行保證。但是歸根到底,最根本的還是密碼技術(shù)。根據(jù)加密密鑰和解密密鑰的異同,可以將密碼體制分為對稱密碼體制和非對稱密碼體制。智能卡經(jīng)常采用的密碼體制是對稱密碼體制DES/3DES算法,到目前為止,DES/3DES算法已經(jīng)廣泛使用并且安全性能顯示良好。但是DES/3DES算法一個主要的不足就是對稱密鑰不允許公開,所以出于安全性的考慮,每隔一段時間密鑰就需要更換一次,但是這個過程中加解密雙方在新密鑰更新傳送過程很容易把新密鑰泄露出去。而RSA算法作為非對稱密碼體制的典型代表,其加密和解密使用的密鑰是不同的,其中一個密鑰屬于公開密鑰,可以用來對發(fā)送給對方的數(shù)據(jù)進(jìn)行加密,從而在根本上克服了所有對稱密碼體制的弊端,是密碼學(xué)發(fā)展史的一個重大的進(jìn)步。RSA是優(yōu)秀的密碼算法,它利用的是兩個大素數(shù)的乘積難以分解這一數(shù)學(xué)特性。此算法的實(shí)現(xiàn)難點(diǎn)就是需要進(jìn)行幾百位十進(jìn)制數(shù)的運(yùn)算,在PC機(jī)上軟件實(shí)現(xiàn)1024比特的RSA加解密過程都需要將近IOs的時間,如果使用普通智能卡Sbits CPU進(jìn)行運(yùn)算,是幾乎不可能實(shí)現(xiàn)的。所以在智能卡上實(shí)現(xiàn)RSA公鑰密碼體制必須通過對其嵌入RSA密碼協(xié)處理器來協(xié)助完成。在智能卡上實(shí)現(xiàn)RSA算法具有相當(dāng)?shù)碾y度,不單要面對大數(shù)運(yùn)算和RSA相關(guān)的各種算法的實(shí)現(xiàn)及優(yōu)化,同時在速度、時序、靈活性、面積、功耗等多方面都要根據(jù)設(shè)計目標(biāo)綜合考慮,以達(dá)到平衡。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種運(yùn)算速度快,整體性能良好且擴(kuò)展能力強(qiáng)的應(yīng)用于RFID智能卡芯片的RSA協(xié)處理器。為了解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案是一種RFID智能卡芯片的RSA協(xié)處理器,所述RSA協(xié)處理器通過外部接口連接至智能卡CPU,所述RSA協(xié)處理器包括用于控制整個RSA加解密流程的主控制單元,所述主控制單元通過控制線分別連接有存儲控制單元、預(yù)處理單元及模冪運(yùn)算單元,所述模冪運(yùn)算單元通過控制線連接有約減處理單元,所述預(yù)處理單元、模冪運(yùn)算單元及約減處理單元連接有一復(fù)用邏輯運(yùn)算單元,所述存儲控制單元與所述預(yù)處理單元、模冪運(yùn)算單元及約減處理單元相連并通過外部接口連接至智能卡CPU。進(jìn)一步作為優(yōu)選的實(shí)施方式,所述預(yù)處理單元包括預(yù)處理控制單元及預(yù)處理數(shù)據(jù)通路,所述預(yù)處理數(shù)據(jù)通路采用多路選擇器和移位寄存器對數(shù)據(jù)進(jìn)行路由及緩沖存儲操作,所述預(yù)處理控制單元通過預(yù)處理數(shù)據(jù)通路連接至存儲控制單元及復(fù)用邏輯運(yùn)算單元。進(jìn)一步作為優(yōu)選的實(shí)施方式,所述模冪運(yùn)算單元包括用于實(shí)現(xiàn)RSA協(xié)處理器運(yùn)算算法外循環(huán)的運(yùn)算次序控制的模冪運(yùn)算控制單元;采用蒙哥馬利算法進(jìn)行RSA加解密模乘運(yùn)算的模乘運(yùn)算單元;及用于數(shù)據(jù)路由和緩沖存儲操作的模冪運(yùn)算數(shù)據(jù)通路;所述模冪運(yùn)算控制單元根據(jù)來自主控制單元的啟動信號進(jìn)行模冪運(yùn)算,所述模乘 運(yùn)算單元根據(jù)來自模冪運(yùn)算控制單元的啟動信號啟動模乘運(yùn)算。進(jìn)一步作為優(yōu)選的實(shí)施方式,所述模乘運(yùn)算單元包括模乘運(yùn)算控制單元和模乘運(yùn)算數(shù)據(jù)通路,所述模乘運(yùn)算控制單元包括完成蒙哥馬利算法的時序電路單元,所述時序電路單元通過控制復(fù)用邏輯運(yùn)算單元完成邏輯運(yùn)算,所述模乘運(yùn)算數(shù)據(jù)通路一方面對模乘運(yùn)算控制單元獲取的存儲控制單元的數(shù)據(jù)進(jìn)行緩沖存儲,并將存儲的數(shù)據(jù)送入復(fù)用邏輯運(yùn)算單元進(jìn)行運(yùn)算,另一方面將復(fù)用邏輯運(yùn)算單元的運(yùn)算結(jié)果進(jìn)行數(shù)據(jù)路由,包括將需要再次進(jìn)行下一輪運(yùn)算的數(shù)據(jù)緩存,或者將需要返回存儲控制單元的數(shù)據(jù)緩存。進(jìn)一步作為優(yōu)選的實(shí)施方式,所述約減處理單元包括約減處理控制單元和約減處理數(shù)據(jù)通路,所述約減處理單元通過調(diào)用復(fù)用邏輯運(yùn)算單元完成對模乘運(yùn)算后的數(shù)據(jù)進(jìn)行約減處理的算術(shù)邏輯運(yùn)算,所述約減處理數(shù)據(jù)通路一方面實(shí)現(xiàn)約減處理單元從存儲控制單元獲取的數(shù)據(jù)進(jìn)行路由及緩存操作,另一方面實(shí)現(xiàn)對復(fù)用邏輯運(yùn)算單元結(jié)果數(shù)據(jù)的輸出緩存及路由。進(jìn)一步作為優(yōu)選的實(shí)施方式,所述復(fù)用邏輯運(yùn)算單元包括超前進(jìn)位串聯(lián)式32位加法器和并行邏輯運(yùn)算電路,所述并行邏輯運(yùn)算電路同時支持兩個32位加法操作和兩個32位乘法操作。進(jìn)一步作為優(yōu)選的實(shí)施方式,所述并行邏輯運(yùn)算電路包括基四Booth算法無符號編碼電路、32位無符號乘法部分積解碼電路、混合型Wal Iace-Tree部分積壓縮電路及64位改進(jìn)型超前進(jìn)位加法器,所述基四Booth算法無符號編碼電路經(jīng)32位無符號乘法部分積解碼電路連接至混合型Wallace-Tree部分積壓縮電路,所述混合型Wallace-Tree部分積壓縮電路的輸出端連接至64位改進(jìn)型超前進(jìn)位加法器。本發(fā)明的有益效果是本發(fā)明RSA協(xié)處理器通過預(yù)處理單元完成初始參數(shù)的計算,并將預(yù)處理、模乘運(yùn)算及約減處理用到的邏輯運(yùn)算集成到復(fù)用邏輯運(yùn)算單元中,極大的提高了協(xié)處理器的數(shù)據(jù)處理效率,減輕了智能卡CPU的數(shù)據(jù)處理壓力,滿足智能卡芯片RSA加解密算法的效率和穩(wěn)定性要求;進(jìn)一步,本發(fā)明RSA協(xié)處理器具有良好的擴(kuò)展性,采用模乘運(yùn)算單元改進(jìn)的基_32Montgomery模乘運(yùn)算算法,可以方便地向更高比特位的RSA協(xié)處理器擴(kuò)展。
圖I是本發(fā)明RSA協(xié)處理器的整體框架示意圖2是本發(fā)明預(yù)處理單元的電路結(jié)構(gòu)示意圖;圖3是本發(fā)明模冪運(yùn)算單元的電路結(jié)構(gòu)示意圖;圖4是本發(fā)明模乘運(yùn)算單元的電路結(jié)構(gòu)示意圖。圖5是本發(fā)明約減處理單元的電路結(jié)構(gòu)示意圖。圖6是本發(fā)明復(fù)用邏輯運(yùn)算單元中并行邏輯運(yùn)算電路的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面結(jié)合附圖對本發(fā)明的具體實(shí)施方式
作進(jìn)一步說明圖I是本發(fā)明RSA協(xié)處理器的整體框架示意圖,參照圖1,本發(fā)明RSA協(xié)處理器包 括用于控制整個RSA加解密流程的主控制單元1,所述主控制單元I通過控制線分別連接有存儲控制單元5、預(yù)處理單元2及模冪運(yùn)算單元3,所述模冪運(yùn)算單元3通過控制線連接有約減處理單元4,所述預(yù)處理單元2、模冪運(yùn)算單元3及約減處理單元4連接有一復(fù)用邏輯運(yùn)算單元6,所述存儲控制單元5與所述預(yù)處理單元2、模冪運(yùn)算單元3及約減處理單元4相連并通過外部接口 7連接至智能卡CPU。圖中窄的雙向箭頭代表各個單元之間的控制信號,寬的單向箭頭代表各個單元之間的數(shù)據(jù)傳輸信號。RSA協(xié)處理器的具體工作流程為智能卡CPU通過外部接口 7將加解密數(shù)據(jù)M、指數(shù)E、模數(shù)N分別送至RSA協(xié)處理器的外部接口 rsa_m, rsa_e, rsa_n上,并通過使能信號rsa_en啟動RSA協(xié)處理器主控制單元I。主控制單元I獲取啟動使能信號之后,根據(jù)本發(fā)明的RSA加解密算法運(yùn)算流程,開始進(jìn)行RSA加解密運(yùn)算,包括預(yù)處理運(yùn)算、主模冪運(yùn)算及后處理運(yùn)算。本發(fā)明獨(dú)立出存儲控制單元5用于對大數(shù)據(jù)進(jìn)行連續(xù)存儲,并對關(guān)鍵邏輯運(yùn)算進(jìn)行提??;獨(dú)立出復(fù)用邏輯運(yùn)算單元6為各個運(yùn)算過程調(diào)用;主控制單元I負(fù)責(zé)整個RSA加解密流程在各個控制和處理單元之間的切換,也就是實(shí)現(xiàn)主狀態(tài)控制單元與子狀態(tài)控制單元之間的流程切換。模冪運(yùn)算和模乘運(yùn)算是RSA算法中的核心運(yùn)算,其運(yùn)算效率的高低直接關(guān)系到RSA協(xié)處理器的整體性能。本發(fā)明RSA協(xié)處理器中模冪運(yùn)算單元采用的是從左到右掃描式Square-Mult模冪算法,模乘模乘運(yùn)算算法則是采用基_32Montgomery算法的一種變種來實(shí)現(xiàn),因?yàn)镸ontgomery算法在實(shí)現(xiàn)模乘運(yùn)算的過程會引入?yún)?shù)ΙΓ1,于是在設(shè)計過程中通過采用N剩余域映射的方法將主體模冪運(yùn)算映射到N剩余域來完成。這樣會帶來一個問題,即在模冪算法實(shí)現(xiàn)的開始需要進(jìn)行參數(shù)值¥ = A^mod N和7 = /i mod N的計算,其它的RSA協(xié)處理器都是采用軟件來完成相類似的初始參數(shù)的計算,本協(xié)處理器充分考慮到智能卡上層完成復(fù)雜運(yùn)算的負(fù)擔(dān)問題,在對整體面積影響較小的情況下將這兩個參數(shù)進(jìn)行了硬件運(yùn)算實(shí)現(xiàn),從而最大限度地減少智能卡CPU的運(yùn)算壓力,提高智能卡上RSA公鑰密碼體制的運(yùn)算效率。另外,本協(xié)處理器也對模乘運(yùn)算采用的基_32Montgomery算法需要的初始值n'。進(jìn)行了硬件實(shí)現(xiàn)。下面對RSA協(xié)處理器相關(guān)單元進(jìn)行電路描述I、預(yù)處理運(yùn)算包括對/ = MRmodN、,V = R modiV和n' O三個初始參數(shù)值的計算。37和歹的硬件實(shí)現(xiàn)是根據(jù)Blakley算法進(jìn)行實(shí)際的計算數(shù)值硬件改進(jìn),將Blakley原
始算法的循環(huán)內(nèi)第一條乘加運(yùn)算簡化成單一的硬件移位操作,而對第二條模數(shù)約減運(yùn)算簡化為至多進(jìn)行一次的減法運(yùn)算。
本發(fā)明獨(dú)立出預(yù)處理單元對這三個參數(shù)值進(jìn)行計算。圖2為RSA預(yù)處理單元的電路結(jié)構(gòu)示意圖。預(yù)處理單元2包括預(yù)處理控制單元及預(yù)處理數(shù)據(jù)通路,所述預(yù)處理數(shù)據(jù)通路采用多路選擇器和移位寄存器對數(shù)據(jù)進(jìn)行路由及緩沖存儲操作,所述預(yù)處理控制單元通過預(yù)處理數(shù)據(jù)通路連接至存儲控制單元5及復(fù)用邏輯運(yùn)算單元6。預(yù)處理單元在接收到主控制單元I的啟動信號之后,開始預(yù)處理階段的數(shù)據(jù)操作。預(yù)處理控制單元通過Xm_sel、t_sel、n_sel信號對存儲控制單元5進(jìn)行數(shù)據(jù)選 擇讀入或?qū)懟?通過add/sub、mul_sel信號對復(fù)用邏輯運(yùn)算單元進(jìn)行運(yùn)算類型選擇和加減法運(yùn)算選擇,預(yù)處理數(shù)據(jù)通路采用多路選擇器和移位寄存器等對數(shù)據(jù)進(jìn)行路由、操作與緩沖存儲。其中多路選擇器MUXl將xm_in端口輸出數(shù)據(jù)、R_T寄存器、shift_2i端口輸出數(shù)據(jù)進(jìn)行選擇,并將結(jié)果送入復(fù)用邏輯運(yùn)算單元的加法端口 a_inl ;多路選擇器MUX2將復(fù)用邏輯運(yùn)算單元乘法輸出端口 z_out輸出數(shù)據(jù)、存儲控制單元n_in端口輸出數(shù)據(jù)進(jìn)行選擇,并送入復(fù)用邏輯運(yùn)算單元加法端口 a_in2 ;多路選擇器MUX3將復(fù)用邏輯運(yùn)算單元加法輸出端口 a_out輸出數(shù)據(jù)和數(shù)據(jù)I進(jìn)行選擇,并將結(jié)果送入復(fù)用邏輯運(yùn)算單元乘法端口 y_inl。2、模冪運(yùn)算單元。模冪運(yùn)算單元通過控制模乘運(yùn)算單元實(shí)現(xiàn)RSA加解密的核心運(yùn)算流程。本發(fā)明中模冪運(yùn)算采用從左到右掃描式Square-Mult模冪算法。如圖3所示,主要包括模冪運(yùn)算控制單元31、模乘運(yùn)算單元32及模冪運(yùn)算數(shù)據(jù)通路。模冪運(yùn)算控制單元31用于實(shí)現(xiàn)RSA協(xié)處理器運(yùn)算算法外循環(huán)的運(yùn)算次序控制;模乘運(yùn)算單元32采用蒙哥馬利算法進(jìn)行RSA加解密模乘運(yùn)算。模冪運(yùn)算控制單元31接收到主控制單元的主模冪運(yùn)算啟動信號monte_en或后處理運(yùn)算啟動信號post_en,開始執(zhí)行模冪運(yùn)算。模冪運(yùn)算控制單元31根據(jù)每一輪模冪運(yùn)算的算法要求發(fā)送冪指數(shù)E選擇信號sel_e,并將該位數(shù)值讀入內(nèi)部寄存器R_E進(jìn)行判斷,根據(jù)判斷結(jié)果,通過sel_d信號控制多路選擇器對數(shù)據(jù)post_d、明文M的32位片段數(shù)據(jù)R_M、X的32位片段數(shù)據(jù)R_X進(jìn)行選擇,完成相應(yīng)的模乘運(yùn)算數(shù)據(jù)路由,實(shí)現(xiàn)將要完成的模乘運(yùn)算數(shù)據(jù)準(zhǔn)備,接著模冪運(yùn)算控制單元31通過向模乘運(yùn)算控制單元發(fā)送模乘運(yùn)算啟動信號montm_en以啟動模乘運(yùn)算。3、模乘運(yùn)算單元。如圖4所示,模乘運(yùn)算單元包括模乘運(yùn)算控制單元和模乘運(yùn)算數(shù)據(jù)通路。模乘運(yùn)算單元接收到模冪運(yùn)算控制單元的模乘運(yùn)算啟動信號montm_en后開始進(jìn)行模乘運(yùn)算操作。本發(fā)明中模乘運(yùn)算控制單元采用完成改進(jìn)型基-32M0ntg0mery算法的時序電路,通過時序電路控制復(fù)用邏輯運(yùn)算單元6完成邏輯運(yùn)算。模乘運(yùn)算數(shù)據(jù)通路一方面對模乘控制單元獲取的存儲控制單元的數(shù)據(jù)進(jìn)行緩沖存儲,并將存儲的數(shù)據(jù)送入復(fù)用邏輯運(yùn)算單元進(jìn)行運(yùn)算;另一方面將復(fù)用邏輯運(yùn)算單元的運(yùn)算結(jié)果進(jìn)行數(shù)據(jù)路由,包括一些需要再次進(jìn)行下一輪運(yùn)算的數(shù)據(jù)緩存,或者將需要返回存儲控制單元的數(shù)據(jù)緩存。模乘運(yùn)算控制單元通過存儲控制單元選擇信號SelX、SelN, SelM, SelT對存儲控制單元進(jìn)行數(shù)據(jù)單元選擇,實(shí)現(xiàn)對存儲控制單元的數(shù)據(jù)讀入與寫回。另外通過多路選擇器MUXfMUX6完成模乘運(yùn)算過程對每一次使用復(fù)用邏輯運(yùn)算單元前的數(shù)據(jù)路由準(zhǔn)備。其中中間寄存器1 _乂、R_X0、R_N' 0, R_C、R_N、R_Y、R_TB、R_C、Reg_Z0、Reg_Zl 用于對存儲控制單元讀入數(shù)據(jù)、向存儲控制單元寫回數(shù)據(jù)和邏輯運(yùn)算處理過程中的中間數(shù)值進(jìn)行緩沖存儲,而Reg_Xl、Reg_Yl、Reg_X2、Reg_Y2、Reg_C、Reg_T則用于多路選擇器MUX1 MUX6進(jìn)行邏輯運(yùn)算數(shù)值選擇后的邏輯運(yùn)算數(shù)據(jù)緩沖存儲。每一次模乘運(yùn)算結(jié)束,都需要向約減處理單元4發(fā)送約減處理啟動信號redC_en啟動約減處理單元對模乘運(yùn)算結(jié)果進(jìn)行調(diào)整。4、約減處理單元。對模乘運(yùn)算后的數(shù)據(jù)大小進(jìn)行調(diào)整,保證運(yùn)算數(shù)據(jù)符合Montgomery算法的要求。每一次Montgomery模乘運(yùn)算結(jié)果值T都是在N和2N之間,為了保證下一次循環(huán)開始時T滿足Montgomery模乘運(yùn)算初始條件,每一次Montgomer模乘運(yùn)算結(jié)束都需要對T值進(jìn)行數(shù)據(jù)調(diào)整;另外在外循環(huán)的最后,T值的位數(shù)為2n位,這也需要進(jìn)行調(diào)整,即將T值調(diào)整至η位。約減處理單元主要實(shí)現(xiàn)上述功能。如圖5所示,約減處理單元4包括約減處理控制單元和約減處理數(shù)據(jù)通路。其中約減處理控制單元通過調(diào)用復(fù)用邏輯運(yùn)算單元完成約減處理的算術(shù)邏輯運(yùn)算;而約減處理數(shù)據(jù)通路一方面實(shí)現(xiàn)約減處理單元從存儲控制單元獲取的數(shù)據(jù)進(jìn)行路由及緩存,另一方面實(shí)現(xiàn)對復(fù)用邏輯運(yùn)算單元結(jié)果數(shù)據(jù)的輸出緩存及路由。約減處理控制單元接收到約減處理單元啟動信號redC_en后開啟約減處理運(yùn)算流程。約減處理控制單元通過sel_t、sel_n、sel_x對存儲控制單元進(jìn)行T存儲單元、X存儲單元、模數(shù)N的數(shù)據(jù)選擇定位,并將數(shù)據(jù)送入約減處理控制單元進(jìn)行處理。約減處理控制單元通過mul_Sel、add_sub信號對復(fù)用邏輯運(yùn)算單元的運(yùn)算模式和加減方式進(jìn)行選擇,在減法運(yùn)算過程中,約減處理單元采用以32位為運(yùn)算精度,將每一次的加法運(yùn)算進(jìn)位通過c_out接口進(jìn)行輸出,再通過約減處理控制單元將下一級的加法運(yùn)算輸入進(jìn)位通過c_in接 口進(jìn)行輸入,如此往復(fù),完成大數(shù)減法操作。5、復(fù)用邏輯運(yùn)算單元。復(fù)用邏輯運(yùn)算單元6將基_32Montgomery算法和預(yù)處理、約減階段需要進(jìn)行的邏輯運(yùn)算進(jìn)行整合,提出可以復(fù)用的邏輯運(yùn)算單元,盡可能減少RSA協(xié)處理器整體面積和提高整體的資源利用率。所述復(fù)用邏輯運(yùn)算單元6包括超前進(jìn)位串聯(lián)式32位加法器和并行邏輯運(yùn)算電路,所述并行邏輯運(yùn)算電路同時支持兩個32位加法操作和兩個32位乘法操作。參照圖6,并行邏輯運(yùn)算電路包括基四Booth算法無符號編碼電路61、32位無符號乘法部分積解碼電路62、混合型Wallace-Tree部分積壓縮電路63及64位改進(jìn)型超前進(jìn)位加法器64,所述基四Booth算法無符號編碼電路61經(jīng)32位無符號乘法部分積解碼電路62連接至混合型Wallace-Tree部分積壓縮電路63,所述混合型Wallace-Tree部分積壓縮電路63的輸出端連接至64位改進(jìn)型超前進(jìn)位加法器64。其中混合型Wallace-Tree部分積壓縮電路63采用CSA和4:2壓縮器混合部分積壓縮電路結(jié)構(gòu),64位超前進(jìn)位加法器64采用以8位超前進(jìn)位加法器為基本單元的兩級進(jìn)位加法鏈超前進(jìn)位加法器結(jié)構(gòu)。并行邏輯運(yùn)算電路主要將基-32Montgomery算法內(nèi)循環(huán)邏輯運(yùn)算式(C」, Ti+j) =Ti+j+XiYjQiN^Cp1的右邊運(yùn)算進(jìn)行一次性實(shí)現(xiàn)。該結(jié)構(gòu)將兩個32位加法運(yùn)算分別嵌入兩個乘法運(yùn)算運(yùn)算過程之中,整個并行邏輯運(yùn)算結(jié)構(gòu)最大限度地優(yōu)化了關(guān)鍵路徑的延遲,具有良好的性能,并提高硬件資源的利用率,其對稱性和規(guī)整性有利于后期的布局布線。以上是對本發(fā)明的較佳實(shí)施進(jìn)行了具體說明,但本發(fā)明創(chuàng)造并不限于所述實(shí)施例,熟悉本領(lǐng)域的技術(shù)人員在不違背本發(fā)明精神的前提下還可以作出種種的等同變形或替換,這些等同的變形或替換均包含在本申請權(quán)利要求所限定的范圍內(nèi)。
權(quán)利要求
1.一種RFID智能卡芯片的RSA協(xié)處理器,所述RSA協(xié)處理器通過外部接口(7)連接至智能卡CPU,其特征在于所述RSA協(xié)處理器包括用于控制整個RSA加解密流程的主控制單元(I),所述主控制單元(I)通過控制線分別連接有存儲控制單元(5 )、預(yù)處理單元(2 )及模冪運(yùn)算單元(3),所述模冪運(yùn)算單元(3)通過控制線連接有約減處理單元(4),所述預(yù)處理單元(2)、模冪運(yùn)算單元(3)及約減處理單元(4)連接有一復(fù)用邏輯運(yùn)算單元(6),所述存儲控制單元(5 )與所述預(yù)處理單元(2 )、模冪運(yùn)算單元(3 )及約減處理單元(4 )相連并通過外部接口(7)連接至智能卡CPU。
2.根據(jù)權(quán)利要求I所述的一種RFID智能卡芯片的RSA協(xié)處理器,其特征在于所述預(yù)處理單元(2)包括預(yù)處理控制單元及預(yù)處理數(shù)據(jù)通路,所述預(yù)處理數(shù)據(jù)通路采用多路選擇器和移位寄存器對數(shù)據(jù)進(jìn)行路由及緩沖存儲操作,所述預(yù)處理控制單元通過預(yù)處理數(shù)據(jù)通路連接至存儲控制單元(5)及復(fù)用邏輯運(yùn)算單元(6)。
3.根據(jù)權(quán)利要求I所述的一種RFID智能卡芯片的RSA協(xié)處理器,其特征在于,所述模冪運(yùn)算單元(3)包括 用于實(shí)現(xiàn)RSA協(xié)處理器運(yùn)算算法外循環(huán)的運(yùn)算次序控制的模冪運(yùn)算控制單元(31); 采用蒙哥馬利算法進(jìn)行RSA加解密模乘運(yùn)算的模乘運(yùn)算單元(32); 及用于數(shù)據(jù)路由和緩沖存儲操作的模冪運(yùn)算數(shù)據(jù)通路; 所述模冪運(yùn)算控制單元(31)根據(jù)來自主控制單元(I)的啟動信號進(jìn)行模冪運(yùn)算,所述模乘運(yùn)算單元(32 )根據(jù)來自模冪運(yùn)算控制單元(31)的啟動信號啟動模乘運(yùn)算。
4.根據(jù)權(quán)利要求3所述的一種RFID智能卡芯片的RSA協(xié)處理器,其特征在于所述模乘運(yùn)算單元(32)包括模乘運(yùn)算控制單元和模乘運(yùn)算數(shù)據(jù)通路,所述模乘運(yùn)算控制單元包括完成蒙哥馬利算法的時序電路單元,所述時序電路單元通過控制復(fù)用邏輯運(yùn)算單元(6)完成邏輯運(yùn)算,所述模乘運(yùn)算數(shù)據(jù)通路一方面對模乘運(yùn)算控制單元獲取的存儲控制單元(5)的數(shù)據(jù)進(jìn)行緩沖存儲,并將存儲的數(shù)據(jù)送入復(fù)用邏輯運(yùn)算單元(6)進(jìn)行運(yùn)算,另一方面將復(fù)用邏輯運(yùn)算單元(6)的運(yùn)算結(jié)果進(jìn)行數(shù)據(jù)路由,包括將需要再次進(jìn)行下一輪運(yùn)算的數(shù)據(jù)緩存,或者將需要返回存儲控制單元(5)的數(shù)據(jù)緩存。
5.根據(jù)權(quán)利要求I所述的一種RFID智能卡芯片的RSA協(xié)處理器,其特征在于所述約減處理單元(4)包括約減處理控制單元和約減處理數(shù)據(jù)通路,所述約減處理單元通過調(diào)用復(fù)用邏輯運(yùn)算單元(6)完成對模乘運(yùn)算后的數(shù)據(jù)進(jìn)行約減處理的算術(shù)邏輯運(yùn)算,所述約減處理數(shù)據(jù)通路一方面實(shí)現(xiàn)約減處理單元從存儲控制單元(5 )獲取的數(shù)據(jù)進(jìn)行路由及緩存操作,另一方面實(shí)現(xiàn)對復(fù)用邏輯運(yùn)算單元(6 )的結(jié)果數(shù)據(jù)的輸出緩存及路由。
6.根據(jù)權(quán)利要求I所述的一種RFID智能卡芯片的RSA協(xié)處理器,其特征在于所述復(fù)用邏輯運(yùn)算單元(6)包括超前進(jìn)位串聯(lián)式32位加法器和并行邏輯運(yùn)算電路,所述并行邏輯運(yùn)算電路同時支持兩個32位加法操作和兩個32位乘法操作。
7.根據(jù)權(quán)利要求6所述的一種RFID智能卡芯片的RSA協(xié)處理器,其特征在于所述并行邏輯運(yùn)算電路包括基四Booth算法無符號編碼電路(61)、32位無符號乘法部分積解碼電路(62)、混合型Wallace-Tree部分積壓縮電路(63)及64位改進(jìn)型超前進(jìn)位加法器(64),所述基四Booth算法無符號編碼電路(61)經(jīng)32位無符號乘法部分積解碼電路(62)連接至混合型Wallace-Tree部分積壓縮電路(63),所述混合型Wallace-Tree部分積壓縮電路(63)的輸出端連接至64位改進(jìn)型超前進(jìn)位加法器(64)。
全文摘要
本發(fā)明公開了一種RFID智能卡芯片的RSA協(xié)處理器,所述RSA協(xié)處理器包括用于控制整個RSA加解密流程的主控制單元,所述主控制單元通過控制線分別連接有存儲控制單元、預(yù)處理單元及模冪運(yùn)算單元,所述模冪運(yùn)算單元通過控制線連接有約減處理單元,所述預(yù)處理單元、模冪運(yùn)算單元及約減處理單元連接有一復(fù)用邏輯運(yùn)算單元,所述存儲控制單元與所述預(yù)處理單元、模冪運(yùn)算單元及約減處理單元相連并通過外部接口連接至智能卡CPU。本發(fā)明RSA協(xié)處理器極大的提高了數(shù)據(jù)處理效率,減輕了智能卡CPU的數(shù)據(jù)處理壓力,滿足智能卡芯片RSA加解密算法的效率和穩(wěn)定性要求。
文檔編號G06F7/60GK102707924SQ201210135818
公開日2012年10月3日 申請日期2012年5月2日 優(yōu)先權(quán)日2012年5月2日
發(fā)明者李晶晶, 王德明, 胡建國, 譚洪舟, 鄭俊輝, 陳宇 申請人:廣州中大微電子有限公司