智能卡cos加密下載系統的制作方法
【專利摘要】本發明公開了一種智能卡COS加密下載系統,包括加密模塊、數據處理模塊、解密下載模塊三個模塊。加密模塊體現為COS加密卡,是基于Java卡平臺開發的具有加密功能的Java卡應用。數據處理模塊中的程序負責解析配置文件獲得包含密鑰分量B的腳本,然后解析HEX文件獲得明文的COS程序,最后通過讀卡器和加密卡交互,獲得包含密鑰分量B和加密的COS程序的腳本文件。在解密下載模塊中,芯片中預置的Boot Loader利用密鑰分量A和腳本中的密鑰分量B生成解密所需的密鑰,在芯片內部將加密的COS程序解密并下載到芯片。上述三個模塊各司其職,實現了加密卡對COS程序的加密功能和COS程序的解密下載功能。
【專利說明】
智能卡COS加密下載系統
技術領域
[0001]本發明涉及一種具有加密功能、支持多種加密算法的智能卡,尤其涉及一種智能卡COS加密下載系統。
【背景技術】
[0002]智能卡⑶S操作系統,目前主要有兩種下載方式:一種是把已經經過驗證的COS直接通過掩膜的方式,在生產過程中固化到智能卡芯片的只讀存儲器ROM中;另一種是芯片生產結束后,通過ROM中的Boot Loader將COS下載到智能卡中的Flash、EEPR0M等非易失儲存器中。相比于COS固化在ROM中COS不會被惡意修改的優勢,采用Boot Loader下載COS的方式使COS具有更大的靈活性,避免修改掩膜周期長的麻煩,在市場上更具競爭優勢。
[0003]實際生產中,需要把COS數據提供給廠商,由廠商來生產SM模塊或卡產品。如果把從芯片供應商處訂購的芯片和委托方的COS程序直接提供給廠商生產,可能存在廠商將芯片用作其它用途的風險。廠商獲得COS程序直接找芯片供應商訂購芯片,下載COS程序后即可出售,會直接損害委托方和使用者的利益。因此,在制卡過程中如何從技術手段保證COS程序下載到芯片的安全,是現有技術需要解決的一個重要問題。
[0004]目前常用的COS數據的加解密方案是,加密機方案或軟件加解密方案。其中,加密機方案較為成熟,但其成本高昂;軟件加解密方案不便于對密鑰的管理,且容易泄露密鑰,安全性極差。因此,開發一種安全可靠且成本低廉的COS數據加解密方案迫在眉睫。
【發明內容】
[0005]針對上述問題,本發明的主要目的是提供一種智能卡COS加密下載系統。
[0006]本發明通過以下技術方案來實現上述目的:
[0007]本發明所述智能卡COS加密下載系統包括COS加密硬件部分和COS加解密軟件部分,所述加密硬件部分包括PC、讀卡器、不帶COS的芯片卡和加密卡;所述加解密軟件部分包括Java卡應用、Boot Loader和數據處理程序。智能卡COS加密下載系統分為加密模塊、數據處理模塊、解密下載模塊三個模塊,各個模塊各司其職,共同完成智能卡COS加密下載系統的操作。
[0008]加密模塊,COS加密卡是基于Java卡平臺開發的具有加密功能的Java卡應用,支持多種加密算法,如RSA、3DES等國際通用算法和SM2、SM3、SM4等國密算法,支持PIN校驗、PIN更改、密鑰更改等功能。
[0009]數據處理模塊,數據處理程序負責解析配置文件獲得包含密鑰分量B的腳本,然后解析HEX文件獲得明文的COS程序。使用加密模塊中的COS加密卡對COS程序加密,拼裝APDU指令,最后通過讀卡器和加密卡交互,獲得包含密鑰分量B和加密的COS程序的腳本文件。
[0010]解密下載模塊,不帶COS的芯片卡中預置的Boot Loader利用密鑰分量A和腳本中的密鑰分量B生成解密所需的密鑰,將數據處理模塊中加密的COS程序解密并下載到芯片中。
[0011]智能卡COS加密下載系統的加密模塊由物理層、平臺層、應用層組成。其中,物理層采用某種型號的安全芯片;平臺層包含智能卡控制器各個組件的所必需的驅動。此外,該子系統還管理由硬件組件支持的硬件安全,管理操作系統的中斷結構。平臺層提供安全保護機制給應用層;應用層包括Java卡應用模塊和其他擴展應用模塊,Java卡應用模塊負責處理來自終端的運算、認證等指令。如圖2所示。以下對平臺層各個模塊的工作原理具體說明:
[0012]主控模塊,COS運行管理的調度中心,主模塊調度各個功能模塊協調工作,使得終端的數據流能正常傳輸到COS并得到正確解釋與執行,并將COS應答信息正確傳輸到終端。
[0013]通訊管理模塊,利用芯片硬件特性提供IS07816和IS014443協議的字符傳輸驅動功能,包括:位時序、工作時間等待、字符奇偶校驗、錯誤重發等功能驅動。
[0014]算法模塊,驅動芯片的加密算法運算模塊,通過設定寄存器來設置密鑰值和數據值,進行CRC校驗運算等指定運算,整個運算過程是在算法硬件模塊內部進行的,對軟件層是不可見的。該模塊通過驅動算法硬件加密算法器,完成基于SM4算法的CBC、ECB模式的分組數據加密和解密運算,以及基于SM2算法的PIN校驗。
[0015]內存管理模塊,提供了統一的芯片存儲空間(EEPROM)的更新操作驅動,用于對存儲空間的數據訪問操作,并且在功能函數內部實現了更新操作后自動讀取校驗過程,確保更新操作的可靠性。
[0016]安全管理模塊,當應用層對算法有調用請求時,要首先把請求發送給本模塊來進行安全管理。工作原理是根據應用的權限級別來決定是否允許這一次算法運算請求。在權限允許的情況下還要判斷要參與運算的密鑰值是否是敏感值,比如全‘00’,以避免惡意攻擊。
[0017]相對于現有技術,本發明的有益效果在于:
[0018]本發明提供的智能卡COS加密下載系統,密鑰持有者將完整密鑰更新至加密卡中,根據密鑰計算出若干個密鑰分量,不同分量分別提供給芯片商和COS程序持有者。然后,在芯片中由若干個分量獲得解密所需的密鑰,密鑰管理安全可靠。COS加密卡取代傳統的加密機成本優勢明顯,安全性極高,體積小,靈活、可操作性強,有效提高COS程序的安全性,防止COS程序泄露,被他人非法使用。
【附圖說明】
[0019]圖1是本發明的智能卡COS加密下載系統的原理圖;
[0020]圖2是本發明的智能卡COS加密下載系統的加密模塊組成圖;
[0021]圖3是本發明實施例中的COS加密操作流程圖;
[0022]圖4是本發明提供的實施例中的方法流程圖。
【具體實施方式】
[0023]以下結合附圖及實施例對本發明作進一步說明。
[0024]本發明提供了一種智能卡COS加密下載系統,解析配置文件獲得包含密鑰分量B的腳本,然后解析HEX文件獲得明文的COS程序,最后通過讀卡器和加密卡交互,獲得包含密鑰分量B和加密的COS程序的腳本文件。同時,在芯片內部預置引導下載Boot Loader和密鑰分量A,提供給生產廠家預置的Boot Loader和密鑰分量A的芯片,密鑰分量B和加密的COS程序的腳本文件。芯片中預置的Boot Loader利用密鑰分量A和腳本中的密鑰分量B生成解密所需的密鑰,對加密的COS程序進行解密并下載到芯片,如圖3和圖4所示,具體操作步驟如下:
[0025]步驟1:開發具有加密功能的Java卡應用,需要提供PIN校驗功能、PIN更改功能、密鑰更改功能、數據加密功能、初始化PIN值和初始化密鑰值,生成CAP文件。所生成的CAP文件下載到帶有COS程序的智能卡中,加密卡制作完成。從安全角度考慮,初始化PIN值要求強制更改;否則,不能使用加解密功能。
[0026]步驟2:將COS加密卡交給密鑰唯一持有者,更新PIN,將密鑰更新到加密卡中,計算出兩個或兩個以上的密鑰分量,其中一個密鑰分量A提供給芯片商,另一個密鑰分量B和加密卡提供給COS程序持有者。
[0027]步驟3:芯片商在芯片中預置Boot Loader和密鑰分量A。
[0028]步驟4:COS程序持有者使用數據處理程序解析配置文件獲得包含密鑰分量B的腳本,然后解析HEX文件獲得明文的COS程序,最后通過讀卡器和加密卡交互,拼裝APDU指令,得到包含密鑰分量B和加密的COS程序的腳本文件。
[0029]其中,步驟4中的數據處理程序可以選擇不同規格的芯片存放COS程序,根據芯片大小和COS程序的數據,計算出兩個字節的校驗和,保證數據的完整性和安全性;數據處理程序還可以選擇命令頭P3的參數值,滿足不同芯片的下載傳輸要求,加快下載速度。
[0030]步驟5:生產廠家得到預置Boot Loader和密鑰分量A的芯片,包含密鑰分量B和加密的COS程序的腳本文件。通過讀卡器進行交互,發送和解析APDU指令,密碼校驗成功后,執行InitMode指令,進入初始化模式。
[0031]步驟6:執行擦除指令,擦除指定空間范圍數據;執行生成密鑰指令,生成解密數據所需的密鑰。
[0032]步驟7:執行解密指令,完成數據解密,將COS程序寫入芯片。
[0033]步驟8:執行數據校驗指令,對存放COS程序區域進行校驗運算,得到校驗值。對數據進行校驗運算時采用的校驗算法,如CRC16、CRC32等。
[0034]步驟9:判斷該校驗值是否與COS程序加密時校驗運算得到的校驗值一致,如果一致則進入步驟10,如果不一致則進入步驟4。
[0035]步驟10:C0S程序解密成功,執行UserMode指令,切換到用戶使用模式。
[0036]以上顯示和描述了本發明的基本原理和主要特征及本發明的優點。當然,上述實施例僅是本發明的優選的實施方式。本行業的技術人員應該了解,本發明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發明的原理,在不脫離本發明精神和范圍的前提下,本發明還會有各種變化和改進,這些變化和改進都落入要求保護的本發明范圍內。本發明要求保護范圍由所附的權利要求書及其等效物界定。
【主權項】
1.一種智能卡COS加密下載系統,其特征在于:包括COS加密硬件部分和COS加解密軟件部分,所述加密硬件部分包括PC、讀卡器、不帶COS的芯片卡和加密卡;所述加解密軟件部分包括Java卡應用、Boot Loader和數據處理程序;智能卡COS加密下載系統包括加密模塊、數據處理模塊、解密下載模塊,三個模塊各司其職,實現了 COS程序的加密功能和COS程序的解密下載功能。2.根據權利要求1所述的智能卡COS加密下載系統,其特征在于:所述下載系統支持明文下載(M模式)和密文下載(K模式),R模式作為預留。3.根據權利要求1所述的智能卡COS加密下載系統,其特征在于:所述加密模塊支持RSA、3DES國際通用算法和SM2、SM3、SM4國密算法等多種加密算法,支持PIN校驗、PIN更改、密鑰更改等功能。4.根據權利要求1所述的一種安全可靠的COS加密卡,其特征在于:所述數據處理模塊的程序可以校驗COS加密卡的合法性。5.根據權利要求1所述的智能卡COS加密下載系統,其特征在于:所述解密下載模塊預置的Boot Loader支持切換InitMode和UserMode兩種模式。6.根據權利要求1所述的智能卡COS加密下載系統,其特征在于:所述解密下載模塊預置的Boot Loader利用若干個密鑰分量生成解密所需的密鑰。7.根據權利要求1所述的智能卡COS加密下載系統,其特征在于:所述加密COS程序支持多種不同規格的芯片,且支持下載到Flash或EEPR0M。8.根據權利要求1所述的智能卡COS加密下載系統,其特征在于:所述COS設計采取多應用模式,在支持Java卡應用的基礎上,還能夠支持其他不同行業的應用。
【文檔編號】G06K7/10GK106056017SQ201610310709
【公開日】2016年10月26日
【申請日】2016年4月29日
【發明人】王剛, 曹后杰, 楊黃林, 李劍鋒
【申請人】珠海保稅區星漢智能卡股份有限公司