專利名稱:一種基于國產(chǎn)算法的銀行智能卡芯片安全協(xié)處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全技術(shù)領(lǐng)域,特別涉及的是一種基于國產(chǎn)算法SMI、SM2和SM3算法的銀行智能卡芯片的安全協(xié)處理器。
背景技術(shù):
目前,國內(nèi)的銀行卡主要使用磁條卡,但其存在著明顯的不足信息存儲(chǔ)量小、磁條易讀出和偽造、保密性差,容易被犯罪分子盜取磁條上的資料,同時(shí)復(fù)制偽冒卡的成本較低,導(dǎo)致各種涉及磁條卡安全性的犯罪案件頻繁發(fā)生,銀行卡的安全問題日益引起持卡人擔(dān)憂。國密SMl SM2 SM3算法是國家密碼管理局為保障國家信息安全,推出的自主研發(fā) 的算法。國密SMl算法是由國家密碼管理局編制的一種對稱算法。國密SM2算法是國家密碼管理局公開的一款基于離散對數(shù)橢圓曲線的公鑰算法,包括二元域和素?cái)?shù)域,并以256或192bit兩種較低的位寬,實(shí)現(xiàn)數(shù)字簽名/身份認(rèn)證,密鑰協(xié)商,數(shù)據(jù)加密/解密的功能。算法本身具有安全性高、密鑰量小、靈活性好等等優(yōu)點(diǎn)。國密SM3算法是國家密碼管理局推出的一款雜湊算法,雜湊值長度為256比特。因此,如何創(chuàng)作一種使用我國自主算法和行業(yè)安全標(biāo)準(zhǔn)的IC銀行卡芯片的安全協(xié)處理器,即為本領(lǐng)域技術(shù)人員的研究方向所在。
發(fā)明內(nèi)容
本發(fā)明的一目的是提供一種基于國產(chǎn)算法的銀行智能卡芯片安全協(xié)處理器,其是在基于國密SMI、SM2和SM3算法的基礎(chǔ)上,通過存儲(chǔ)單元和功能模塊的復(fù)用,達(dá)到I卡雙算法,實(shí)現(xiàn)I人對I卡對國內(nèi)國際終端業(yè)務(wù)的雙支持,滿足銀行智能卡的電子錢包/電子存折、借記貸記的功能。本發(fā)明的再一目的是提供一種基于國產(chǎn)算法的銀行智能卡芯片安全協(xié)處理器,其是通過地址總線、數(shù)據(jù)總線和控制信號與CPU交互,利用國密SM1、SM2、SM3硬件電路IP核,提供1024bit大數(shù)RSA的模乘硬件加速器接口,完成對銀行卡的電子錢包/電子存折、借記貸記應(yīng)用所需的信息安全功能,滿足國內(nèi)國際終端業(yè)務(wù)的雙重安全要求,并滿足國家金融集成電路(IC)卡規(guī)范規(guī)定的其他硬件要求。為了達(dá)到上述目的,本發(fā)明提供一種基于國產(chǎn)算法的銀行智能卡芯片安全協(xié)處理器,其特征在于,其包括一存儲(chǔ)單元、一控制模塊、一 SMl算法模塊、一 SM2算法模塊、一SM3算法模塊及一模乘模塊,其中所述的存儲(chǔ)單元用于對所述的SMl算法模塊、SM2算法模塊及SM3算法模塊及模乘模塊使能、控制和數(shù)據(jù)輸入輸出,所述的SMl算法模塊、SM2算法模塊、SM3算法模塊及模乘模塊其中一個(gè)功能模塊使能后,數(shù)據(jù)和地址輸出端作為所述控制模塊的輸入端,根據(jù)地址,通過所述控制模塊的輸出端將數(shù)據(jù)寫入所述存儲(chǔ)單元的指定地址空間。較佳的實(shí)施方式中,所述存儲(chǔ)單元內(nèi)設(shè)有控制字寄存器,所述控制寄存器內(nèi)的控制字包括上述各模塊的控制位和SM2算法模塊參數(shù)。較佳的實(shí)施方式中,所述SM2算法模塊提供1024bit大數(shù)RSA的模乘硬件加速器接口。較佳的實(shí)施方式中,所述的SMl算法模塊具有硬件電路IP核,用于提供128bit的密鑰分發(fā)、密鑰加解密安全功能。
較佳的實(shí)施方式中,所述的SM2算法模塊具有硬件電路IP核,用于提供256bit或192bit兩種位寬、二元域或素域兩種算法的公鑰體制的數(shù)字簽名/身份認(rèn)證,密鑰協(xié)商,數(shù)據(jù)加密的安全功能。較佳的實(shí)施方式中,所述的SM3算法模塊具有硬件電路IP核,其為所述SM2算法模塊的子模塊,用于提供HASH算法,對長度L小于264bit的消息,輸出256bit雜湊值;較佳的實(shí)施方式中,所述的模乘模塊具有硬件電路IP核,其為所述SM2算法模塊的子模塊,還可用于完成1024bit大數(shù)RSA算法的模乘硬件加速器功能。較佳的實(shí)施方式中,所述SM3算法模塊、模乘模塊及SM2算法模塊共用與所述存儲(chǔ)單元連接的輸入端,共用與所述控制單元的數(shù)據(jù)輸出端。較佳的實(shí)施方式中,所述的SM3模塊為所述SM2算法單元的子模塊,其輸出端返回給所述的SM2算法模塊,或者直接返回給所述存儲(chǔ)單元,為中央處理單元讀取。較佳的實(shí)施方式中,所述模乘模塊為所述SM2算法單元的子模塊,其輸出端返回給所述的SM2算法模塊,或者直接返回給所述存儲(chǔ)單元,為中央處理單元讀取。與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果在于本發(fā)明是提供一種國密SMI、SM2、SM3算法的硬件實(shí)現(xiàn)方案,完成國密SMI、SM2和SM3算法在新一代銀行卡方面的應(yīng)用,是完全使用我國自主算法和行業(yè)安全標(biāo)準(zhǔn)的IC銀行卡芯片的安全協(xié)處理器,可以完成國密SMI、SM2、SM3及子功能的全面的硬件固化,比軟件方法和軟硬結(jié)合的方法具有更快速和更高的安全性的特點(diǎn);針對銀行智能卡需要國內(nèi)外使用的特性,SM2提供1024bit大數(shù)RSA算法的模乘接口,滿足國際銀行智能卡的信息安全算法的硬件需求;本發(fā)明為I卡/人完成國內(nèi)國際終端業(yè)務(wù)的雙重信息安全要求,提供硬件可能,對于國密SM1、SM2、SM3算法的推廣和應(yīng)用有很大的價(jià)值。CPU通過數(shù)據(jù)總線,向存儲(chǔ)單元交互寫入/讀出數(shù)據(jù),可以完成SMl密鑰分發(fā),SMl密鑰加解密,SM2數(shù)字簽名/身份認(rèn)證,SM2密鑰協(xié)商,SM2數(shù)據(jù)加密/解密,SM3消息雜湊和1024bit模乘的多種功能的使能控制。其中SM2模塊可以有限域中2元域或素?cái)?shù)域橢圓曲線的選擇,完成256和192兩種位寬的選擇。
圖I為本發(fā)明中央處理單元與安全協(xié)處理器交互示意圖;圖2為本發(fā)明安全協(xié)處理器詳細(xì)架構(gòu)圖;圖3為本發(fā)明安全協(xié)處理器存儲(chǔ)空間地址分配示意圖;圖4為本發(fā)明安全協(xié)處理器控制字?jǐn)?shù)據(jù)結(jié)構(gòu)示意圖。附圖標(biāo)記說明1-協(xié)處理器;11_存儲(chǔ)單元;12_控制模塊;13_SM1算法模塊;14-SM2算法模塊;15-SM3算法模塊;16_模乘模塊(MMUL模塊);2_中央處理單元。
具體實(shí)施例方式以下結(jié)合附圖,對本發(fā)明上述的和另外的技術(shù)特征和優(yōu)點(diǎn)作更詳細(xì)的說明。本發(fā)明是以國家密碼管理局推出的國產(chǎn)商用算法SM1、SM2和SM3算法為基礎(chǔ)的銀行智能卡芯片的安全算法協(xié)處理器。其是基于國密算法,滿足銀行智能卡Pboc2.0規(guī)范,以單卡雙算法的硬件協(xié)處理器的方式滿足國內(nèi)國際終端業(yè)務(wù)的雙重信息安全算法需求。參閱圖I及圖2,為本發(fā)明中央處理單元與協(xié)處理器交互示意圖及協(xié)處理器組成框圖;本發(fā)明的協(xié)處理器I通過地址總線、數(shù)據(jù)總線和控制信號與中央處理單元2(CPU,Central Processing Unit)交互,用于減輕中央處理單元2的處理任務(wù),提高系統(tǒng)的速度。所述的協(xié)處理器I包括一存儲(chǔ)單元11、一控制模塊12、一 SMl算法模塊13、一 SM2 算法模塊14、一 SM3算法模塊15、一模乘模塊(MMUL模塊)16。所述的存儲(chǔ)單元11作為中央處理單元2與協(xié)處理器I內(nèi)部運(yùn)算單元的接口,其內(nèi)設(shè)有控制字寄存器111,用于對所述的SMl算法模塊13、SM2算法模塊14及SM3算法模塊15及模乘模塊16使能、控制和數(shù)據(jù)輸入輸出,當(dāng)控制字寄存器111內(nèi)的32bit控制字提供給所述的SMl算法模塊13、SM2算法模塊14及SM3算法模塊15、模乘模塊16其中一個(gè)功能模塊使能信號為1,所述的SMl算法模塊13、SM2算法模塊14及SM3算法模塊15、模乘模塊16使能后,數(shù)據(jù)和地址輸出端作為所述控制模塊的輸入端,根據(jù)地址,通過控制模塊12的輸出端將數(shù)據(jù)寫入所述存儲(chǔ)單元11的指定地址空間。上述的SMl算法模塊13具有硬件電路IP核,用于提供128bit的密鑰分發(fā)、密鑰加解密安全功能;具體實(shí)現(xiàn)國家金融集成電路(IC)卡規(guī)范PB0C2.0標(biāo)準(zhǔn)規(guī)定的電子錢包/電子存折的安全機(jī)制包括密鑰分散、安全報(bào)文加解密、安全報(bào)文MAC計(jì)算和交易MAC/TAC/GMAC/GTAC計(jì)算,實(shí)現(xiàn)單卡滿足國內(nèi)國際終端業(yè)務(wù)需求的功能。所述的SM2算法模塊14具有硬件電路IP核,用于提供256bit或192bit兩種位寬、二元域或素域兩種算法的公鑰體制的數(shù)字簽名/身份認(rèn)證,密鑰協(xié)商,數(shù)據(jù)加密的安全功能;其同時(shí)具有2元域或p元域的、256或192bit的4種參數(shù)選擇、完成銀行卡借記/貸記應(yīng)用中數(shù)字簽名/身份驗(yàn)證、密鑰協(xié)商或數(shù)據(jù)加密/解密功能的安全機(jī)制。所述的SM3算法模塊15具有硬件電路IP核,其為所述SM2算法模塊14的子模塊,用于提供HASH算法,對長度L小于264bit的消息,輸出256bit雜湊值。所述的模乘模塊16具有硬件電路IP核,其為所述SM2算法模塊14的子模塊,還可用于完成1024bit大數(shù)RSA算法的模乘硬件加速器功能。所述的SM2算法14提供1024bit大數(shù)RSA的模乘硬件加速器接口,完成以軟硬結(jié)合的方式實(shí)現(xiàn)1024bit大數(shù)RSA算法,實(shí)現(xiàn)單卡雙算法,滿足I卡/人的國際終端業(yè)務(wù)的需求。本發(fā)明的銀行智能卡芯片安全協(xié)處理器1,其同一時(shí)刻完成SMl算法模塊13、SM2算法模塊14及SM3算法模塊15、模乘模塊16的一個(gè)功能,上述SMl算法模塊13、SM2算法模塊14、SM3算法模塊15及模乘模塊16各算法IP核通過存儲(chǔ)單元11讀入各自的輸入?yún)?shù)和數(shù)據(jù),輸出各自結(jié)果。所述中央處理單元2通過讀/寫存儲(chǔ)單元11來調(diào)用控制各算法模塊IP核,并讀取各算法模塊IP核的輸出結(jié)果。存儲(chǔ)單元11的控制寄存器內(nèi)的控制字包括上述各算法模塊的控制位和SM2算法模塊參數(shù)。繼續(xù)參閱圖2所示,本發(fā)明的SM3算法模塊15及模乘模塊16均為SM2算法模塊14的子模塊。SM3IP核的輸出端,作為SM2IP核的子模塊,返回給SM2IP核,另外,SM3IP核的輸出端直接返回給存儲(chǔ)單元11,為中央處理單元2讀取,完成256bit消息雜湊安全機(jī)制;模乘模塊16的輸出端,作為SM2IP核的子模塊,返回給SM2IP核,另外,模乘模塊16的輸出端直接返回給存儲(chǔ)單元11,為中央處理單元2讀取,SM2IP核提供模乘硬件加速器的接口,完成以軟硬結(jié)合的方式實(shí)現(xiàn)1024bit大數(shù)RSA算法,實(shí)現(xiàn)單卡雙算法,滿足I卡/人的國際終端業(yè)務(wù)的需求。為本發(fā)明中SM3算法模塊15和模乘模塊16作為SM2算法模塊14的子模塊,3個(gè)模塊共用與存儲(chǔ)單元11連接的輸入端,共用與控制單元12的數(shù)據(jù)輸出端;當(dāng)SM2算法模塊13使能,其輸入端數(shù)據(jù)則來自SM2內(nèi)部, 否則,其輸入端數(shù)據(jù)來自存儲(chǔ)單元11的控制字,其輸出端同時(shí)直接驅(qū)動(dòng)SM2算法模塊13內(nèi)部和SM2算法模塊13的輸出端。參閱圖2,圖3,所述的存儲(chǔ)單元6為所述的SMl、SM2、SM3和MMUL功能模塊共用(1+8*13) *32bit的存儲(chǔ)空間,尋址空間XX08H-XX77H ;其地址XX08H上的32bit控制字提供給所述的SMl算法模塊13、SM2算法模塊14、SM3算法模塊15及模乘模塊16其中一個(gè)功能模塊使能信號為I。所述的SM1、SM2、SM3和MMUL功能模塊使能后,數(shù)據(jù)和地址輸出端作為所述控制模塊12的輸入端,根據(jù)地址,控制模塊12的輸出端數(shù)據(jù)寫入所述存儲(chǔ)單元11的指定地址空間。參閱圖3、圖4,所述存儲(chǔ)單元11的XX08H地址上的控制字寄存器,enctrl[l:0]等于2’ bOO,則SMl算法模塊13使能;等于2’ bOl,則SM2算法模塊14使能;等于2’ blO,則SM3算法模塊15使能;等于2’bll,則模乘模塊16使能;smctrl[l:0]當(dāng)SMl使能時(shí),等于2’ blO,則執(zhí)行密鑰分發(fā);等于2’ bll,則執(zhí)行密鑰加解密。當(dāng)SM2算法模塊14使能時(shí),等于2’ b01,則執(zhí)行數(shù)字簽名/身份認(rèn)證;等于2’ blO,則執(zhí)行密鑰協(xié)商;等于2’ bll,則執(zhí)行數(shù)據(jù)加解密。當(dāng)SM3算法模塊15使能時(shí),等于2’ b00,則消息待續(xù);等于2’ bll,則最后256*13 —組消息。加解密控制位dectrl,等于I’ b0,則各模塊執(zhí)行相應(yīng)的加密運(yùn)算;等于I’ bl,執(zhí)行解密運(yùn)算。25至7bit位為SM2算法模塊專用控制位,從低到高依次為有限域控制位gfctrl,等于1’bO為素?cái)?shù)域;等于l’bl為二元域。位寬控制位fxctrl,等于1’bO,則執(zhí)行192bit數(shù)據(jù);等于I,bl,則執(zhí)行256bit數(shù)據(jù)。8bit數(shù)據(jù)長度klen,8bit的ID長度entl, 3bit余因子h. 31至26bit位為SM2算法模塊二元域點(diǎn)最高位專用數(shù)據(jù)位,從低到高位依次為點(diǎn)R的gf2xr和gf2yr,點(diǎn)P的gf2xp和gf2yp,點(diǎn)G的gf2xg和gf2yg。綜上所述,本發(fā)明是提供一種國密SMI、SM2、SM3算法的硬件實(shí)現(xiàn)方案,完成國密SMU SM2和SM3算法在新一代銀行卡方面的應(yīng)用,是完全使用我國自主算法和行業(yè)安全標(biāo)準(zhǔn)的IC銀行卡芯片的安全協(xié)處理器,可以完成國密SMI、SM2、SM3及子功能的全面的硬件固化,比軟件方法和軟硬結(jié)合的方法具有更快速和更高的安全性的特點(diǎn);針對銀行智能卡需要國內(nèi)外使用的特性,SM2提供1024bit大數(shù)RSA算法的模乘接口,滿足國際銀行智能卡的信息安全算法的硬件需求;本發(fā)明為I卡/人完成國內(nèi)國際終端業(yè)務(wù)的雙重信息安全要求,提供硬件可能,對于國密SM1、SM2、SM3算法的推廣和應(yīng)用有很大的價(jià)值。CPU通過數(shù)據(jù)總線,向存儲(chǔ)單元交互寫入/讀出數(shù)據(jù),可以完成SMl密鑰分發(fā),SMl密鑰加解密,SM2數(shù)字簽名/身份認(rèn)證,SM2密鑰協(xié)商,SM2數(shù)據(jù)加密/解密,SM3消息雜湊和1024bit模乘的多種功能的使能控制。其中,SM2模塊可以有限域中2元域或素?cái)?shù)域橢圓曲線的選擇,完成256和192兩種位寬的選擇。以上說明對本發(fā)明而言只是說明性的,而非限制性的,本領(lǐng)域普通技術(shù)人員理解,在不脫離以下所附權(quán)利要求所限定的精神和范圍的情況下,可做出許多修改,變化,或等效,但都將落入本發(fā)明的保護(hù) 范圍內(nèi)。
權(quán)利要求
1.一種基于國產(chǎn)算法的銀行智能卡芯片安全協(xié)處理器,其特征在于,其包括一存儲(chǔ)單兀、一控制模塊、一 SMl算法模塊、一 SM2算法模塊、一 SM3算法模塊及一模乘模塊,其中, 所述的存儲(chǔ)單元用于對所述的SMl算法模塊、SM2算法模塊及SM3算法模塊及模乘模塊使能、控制和數(shù)據(jù)輸入輸出,所述的SMl算法模塊、SM2算法模塊、SM3算法模塊及模乘模塊其中一個(gè)功能模塊使能后,數(shù)據(jù)和地址輸出端作為所述控制模塊的輸入端,根據(jù)地址,通過所述控制模塊的輸出端將數(shù)據(jù)寫入所述存儲(chǔ)單元的指定地址空間。
2.根據(jù)權(quán)利要求I所述的基于國產(chǎn)算法的銀行智能卡芯片安全協(xié)處理器,其特征在于,所述存儲(chǔ)單元內(nèi)設(shè)有控制字寄存器,所述控制寄存器內(nèi)的控制字包括上述各模塊的控制位和SM2算法模塊參數(shù)。
3.根據(jù)權(quán)利要求I所述的基于國產(chǎn)算法的銀行智能卡芯片安全協(xié)處理器,其特征在 于 ,所述SM2算法模塊提供1024bit大數(shù)RSA的模乘硬件加速器接口。
4.根據(jù)權(quán)利要求I所述的基于國產(chǎn)算法的銀行智能卡芯片安全協(xié)處理器,其特征在于,所述的SMl算法模塊具有硬件電路IP核,用于提供128bit的密鑰分發(fā)、密鑰加解密安全功能。
5.根據(jù)權(quán)利要求I所述的基于國產(chǎn)算法的銀行智能卡芯片安全協(xié)處理器,其特征在于,所述的SM2算法模塊具有硬件電路IP核,用于提供256bit或192bit兩種位寬、二元域或素域兩種算法的公鑰體制的數(shù)字簽名/身份認(rèn)證,密鑰協(xié)商,數(shù)據(jù)加密的安全功能。
6.根據(jù)權(quán)利要求I所述的基于國產(chǎn)算法的銀行智能卡芯片安全協(xié)處理器,其特征在于,所述的SM3算法模塊具有硬件電路IP核,其為所述SM2算法模塊的子模塊,用于提供HASH算法,對長度L小于264bit的消息,輸出256bit雜湊值。
7.根據(jù)權(quán)利要求I所述的基于國產(chǎn)算法的銀行智能卡芯片安全協(xié)處理器,其特征在于,所述的模乘模塊具有硬件電路IP核,其為所述SM2算法模塊的子模塊,還用于完成1024bit大數(shù)RSA算法的模乘硬件加速器功能。
8.根據(jù)權(quán)利要求I所述的基于國產(chǎn)算法的銀行智能卡芯片安全協(xié)處理器,其特征在于,所述SM3算法模塊、模乘模塊及SM2算法模塊共用與所述存儲(chǔ)單元連接的輸入端,共用與所述控制單元的數(shù)據(jù)輸出端。
9.根據(jù)權(quán)利要求I所述的基于國產(chǎn)算法的銀行智能卡芯片安全協(xié)處理器,其特征在于,所述的SM3模塊為所述SM2算法單元的子模塊,其輸出端返回給所述的SM2算法模塊,或者直接返回給所述存儲(chǔ)單元,為中央處理單元讀取。
10.根據(jù)權(quán)利要求I所述的基于國產(chǎn)算法的銀行智能卡芯片安全協(xié)處理器,其特征在于,所述模乘模塊為所述SM2算法單元的子模塊,其輸出端返回給所述的SM2算法模塊,或者直接返回給所述存儲(chǔ)單元,為中央處理單元讀取。
全文摘要
本發(fā)明公開一種基于國產(chǎn)算法的銀行智能卡芯片安全協(xié)處理器,其包括一存儲(chǔ)單元、一控制模塊、一SM1算法模塊、一SM2算法模塊、一SM3算法模塊及一模乘模塊,其中,所述的存儲(chǔ)單元用于對所述的SM1算法模塊、SM2算法模塊及SM3算法模塊及模乘模塊使能、控制和數(shù)據(jù)輸入輸出,所述的SM1算法模塊、SM2算法模塊、SM3算法模塊及模乘模塊其中一個(gè)功能模塊使能后,數(shù)據(jù)和地址輸出端作為所述控制模塊的輸入端,根據(jù)地址,通過所述控制模塊的輸出端將數(shù)據(jù)寫入所述存儲(chǔ)單元的指定地址空間。本發(fā)明可完成國密SM1、SM2、SM3及子功能的全面的硬件固化,比軟件方法和軟硬結(jié)合的方法具有更快速和更高的安全性的特點(diǎn)。
文檔編號G06K19/073GK102737270SQ20111009442
公開日2012年10月17日 申請日期2011年4月15日 優(yōu)先權(quán)日2011年4月15日
發(fā)明者劉建巍, 徐樹民, 李明友, 田心, 羅世新, 郭寶安 申請人:航天信息股份有限公司