本發(fā)明涉及一種在智能卡芯片內(nèi)實(shí)現(xiàn)數(shù)據(jù)加解密功能的方法,尤其涉及一種在智能卡芯片內(nèi)用嵌入式可編程邏輯門陣列實(shí)現(xiàn)數(shù)據(jù)加解密功能的方法。
背景技術(shù):由于智能卡芯片內(nèi)含有大量的用戶私人信息,所以用戶數(shù)據(jù)一般都會先經(jīng)過加密,然后才會在信道上進(jìn)行傳輸,以防被第三方竊取。智能卡在接收到加密的信息后,還會將加密的信息解密后用來處理,這就是智能卡的數(shù)據(jù)加解密過程。該數(shù)據(jù)加解密過程通常是通過片上的一個數(shù)據(jù)加解密模塊來進(jìn)行操作的,此模塊可以利用硬件電路來實(shí)現(xiàn),也可以利用軟件算法來實(shí)現(xiàn)。如圖1所示,此為用硬件電路實(shí)現(xiàn)數(shù)據(jù)加解密算法的智能卡芯片示意圖;其具體原理為:通過總線,嵌入式微控制器訪問程序區(qū)和數(shù)據(jù)區(qū),將要發(fā)送的數(shù)據(jù)經(jīng)過數(shù)據(jù)加解密硬件模塊加密后放到信道上進(jìn)行傳輸。當(dāng)智能卡接收到來自信道上的數(shù)據(jù)后,其先將此數(shù)據(jù)通過數(shù)據(jù)加解密硬件模塊解密后再進(jìn)行后續(xù)處理。由于數(shù)據(jù)加解密算法是由硬件電路實(shí)現(xiàn)的,所以數(shù)據(jù)加解密的處理速度非???,可以用于高速的數(shù)據(jù)通信系統(tǒng)中。但由于其硬件電路的算法是固定的,所以一旦密鑰被破解,整張智能卡便報廢,或者說會給用戶的數(shù)據(jù)安全性帶來很大的危險,對于智能卡發(fā)行商來說,需要花費(fèi)巨大的人力和物力來幫助用戶重新?lián)Q卡。如圖2所示,此為用軟件算法實(shí)現(xiàn)數(shù)據(jù)加解密算法的智能卡芯片示意圖;其具體原理為:通過總線,嵌入式微控制器訪問程序區(qū)和數(shù)據(jù)區(qū),數(shù)據(jù)加解密算法由軟件實(shí)現(xiàn),固化在片上程序區(qū)的某段空間內(nèi),當(dāng)智能卡要對數(shù)據(jù)進(jìn)行加密時,此數(shù)據(jù)加解密算法軟件就會被嵌入式微控制器調(diào)用并執(zhí)行,加密后的數(shù)據(jù)會被放到信道上進(jìn)行傳輸。當(dāng)智能卡接收到來自信道上的數(shù)據(jù)后,微控制器會先調(diào)用數(shù)據(jù)加解密算法軟件對其解密,然后再進(jìn)行后續(xù)處理。由于數(shù)據(jù)加解密算法是由軟件算法實(shí)現(xiàn)的,所以靈活性非常強(qiáng)大,就算密鑰被攻破,終端也可以立即重新下載一段新的數(shù)據(jù)加解密算法軟件到智能卡上,這樣一來,大大的消除了智能卡發(fā)卡商的換卡成本。但由于其是軟件實(shí)現(xiàn)的,所以當(dāng)數(shù)據(jù)加解密算法非常復(fù)雜的時候,軟件所占的程序區(qū)就會變得非常大,從而增加了智能卡芯片的面積,進(jìn)而導(dǎo)致智能卡芯片成本的增加,且加解密算法是由嵌入式微控制器調(diào)用的,所以處理速度相對于由硬件電路實(shí)現(xiàn)的加解密算法來說會慢很多,有時并不適合于高速的數(shù)據(jù)通信系統(tǒng)。中國專利(授權(quán)公告號:CN100369017C)公開了一種靜態(tài)隨機(jī)存儲器可編程門陣列芯片的加密裝置及加密方法,該發(fā)明的加密裝置包括一片F(xiàn)LASHFPGA芯片以及在FLASHFPGA和SRAMFPGA中實(shí)現(xiàn)的握手電路以及在FLASHFPGA芯片中,將剩余邏輯用于實(shí)現(xiàn)系統(tǒng)功能中的部分低速邏輯,以進(jìn)一步提高系統(tǒng)的安全性。該發(fā)明是基于靜態(tài)隨機(jī)存儲器的可編程邏輯門芯片上的加密方法,因此其不可避免的會具有靜態(tài)隨機(jī)存儲器的缺陷,如當(dāng)其掉電時,其內(nèi)部存儲的信息就丟失了,再次上電之后需要重新進(jìn)行信息的加載,這會無形中增加加密過程的時間,不適合高速的數(shù)據(jù)通信系統(tǒng)。
技術(shù)實(shí)現(xiàn)要素:鑒于上述問題,本發(fā)明提供一種在智能卡芯片內(nèi)用嵌入式可編程邏輯門陣列實(shí)現(xiàn)數(shù)據(jù)加解密功能的方法。本發(fā)明解決技術(shù)問題所采用的技術(shù)方案為:一種實(shí)現(xiàn)數(shù)據(jù)加解密功能的裝置,所述裝置包括系統(tǒng)總線、信道、嵌入式微控制器和智能卡接口模塊,其中,所述裝置還包括由解密模塊和加密模塊組成的硬件加解密算法模塊;所述嵌入式微控制器通過所述系統(tǒng)總線訪問所述智能卡接口模塊,以接收第一數(shù)據(jù),并利用所述解密模塊對所述第一數(shù)據(jù)進(jìn)行解密后,對解密過的第一數(shù)據(jù)進(jìn)行后期處理,以完成數(shù)據(jù)的接收操作;所述嵌入式微控制器將需要發(fā)送的第二數(shù)據(jù)通過所述加密模塊進(jìn)行加密后,將加密過的第二數(shù)據(jù)通過所述信道進(jìn)行發(fā)送,以完成數(shù)據(jù)的發(fā)送操作。所述的實(shí)現(xiàn)數(shù)據(jù)加解密功能的裝置,其中,采用嵌入式可編程邏輯門陣列模塊作為所述硬件加解密算法模塊。所述的實(shí)現(xiàn)數(shù)據(jù)加解密功能的裝置,其中,可采用非易失性存儲單元作為所述嵌入式可編程邏輯門陣列模塊的配置存儲單元。所述的實(shí)現(xiàn)數(shù)據(jù)加解密功能的裝置,其中,所述非易失性存儲單元為相變存儲器、鐵電存儲器、電阻式存儲器、磁介質(zhì)存儲器或閃存存儲器。所述的實(shí)現(xiàn)數(shù)據(jù)加解密功能的裝置,其中,所述嵌入式可編程邏輯門陣列模塊的最小單元可以為組合邏輯,即該嵌入式可編程邏輯門陣列模塊中不包括時序邏輯,以在很大程度上減小芯片的面積。所述的實(shí)現(xiàn)數(shù)據(jù)加解密功能的裝置,其中,所述裝置還包括一上位機(jī),所述上位機(jī)中安裝有軟件程序;所述軟件程序根據(jù)所述嵌入式可編程邏輯門陣列模塊資源生成配置文件。所述的實(shí)現(xiàn)數(shù)據(jù)加解密功能的裝置,其中,所述裝置還包括一數(shù)據(jù)單元和一程序單元,所述嵌入式微控制器通過所述系統(tǒng)總線對所述數(shù)據(jù)單元和程序單元進(jìn)行數(shù)據(jù)的讀寫操作。所述的實(shí)現(xiàn)數(shù)據(jù)加解密功能的裝置,其中,所述上位機(jī)將所述配置文件通過所述智能卡接口模塊存儲至所述數(shù)據(jù)單元,所述嵌入式微控制器讀取所述數(shù)據(jù)單元中存儲的配置文件,以對所述嵌入式可編程邏輯門陣列模塊進(jìn)行寫入操作,以更新所述嵌入式可編程邏輯門陣列模塊的數(shù)據(jù)加解密算法。所述的實(shí)現(xiàn)數(shù)據(jù)加解密功能的裝置,其中,所述裝置還包括一直接存儲器存取模塊;所述智能卡接口模塊包括一緩存單元;所述上位機(jī)將所述配置文件通過所述智能卡接口模塊存儲至所述緩存單元,所述直接存儲器存取模塊調(diào)取所述緩存單元中存儲的配置文件,以對所述嵌入式可編程邏輯門陣列模塊進(jìn)行寫操作,以更新所述嵌入式可編程邏輯門陣列模塊的數(shù)據(jù)加解密算法。所述的實(shí)現(xiàn)數(shù)據(jù)加解密功能的裝置,其中,所述配置文件包括高速算法單元和低速算法單元;所述實(shí)現(xiàn)數(shù)據(jù)加解密功能算法的裝置包括第一算法模塊和第二算法模塊,所述第一算法模塊由所述嵌入式可編程邏輯門陣列模塊實(shí)現(xiàn),所述第二算法模塊由軟件算法實(shí)現(xiàn);所述第一算法模塊中被寫入高速算法,以進(jìn)行高速復(fù)雜數(shù)據(jù)的處理;所述第二算法模塊中被寫入低速算法,以進(jìn)行低速簡單數(shù)據(jù)的處理。由所述配置文件形成的數(shù)據(jù)加解密算法包括高速算法,一種在智能卡芯片內(nèi)對數(shù)據(jù)加解密算法進(jìn)行更新的方法,其中,所述軟件程序基于一硬件加解密算法模塊資源生成配置文件,并將此配置文件通過所述智能卡接口模塊傳輸給所述智能卡芯片;嵌入式微控制器通過智能卡芯片的接口將所述配置文件暫存于一數(shù)據(jù)單元上;調(diào)取存儲在所述數(shù)據(jù)單元中的配置文件,寫入所述硬件加解密模塊,使其具有數(shù)據(jù)加解密功能。所述的在智能卡芯片內(nèi)對數(shù)據(jù)加解密算法進(jìn)行更新的方法,其中,采用嵌入式可編程邏輯門陣列模塊作為所述硬件加解密算法模塊。所述的在智能卡芯片內(nèi)對數(shù)據(jù)加解密算法進(jìn)行更新的方法,其中,可采用非易失性存儲單元作為所述嵌入式可編程邏輯門陣列模塊的配置存儲單元。所述的在智能卡芯片內(nèi)對數(shù)據(jù)加解密算法進(jìn)行更新的方法,其中,所述非易失性存儲單元為相變存儲器、鐵電存儲器、電阻式存儲器、磁介質(zhì)存儲器或閃存存儲器。所述的在智能卡芯片內(nèi)對數(shù)據(jù)加解密算法進(jìn)行更新的方法,其中,可采用純邏輯組合作為所述嵌入式可編程邏輯門陣列模塊的最小單元。一種在智能卡芯片內(nèi)對數(shù)據(jù)加解密算法進(jìn)行更新的方法,其中,所述軟件程序基于一硬件加解密算法模塊資源生成配置文件,并將此配置文件通過所述智能卡接口模塊傳輸給所述智能卡芯片;嵌入式微控制器通過智能卡芯片的接口將所述配置文件暫存于智能卡接口的緩存單元上;直接存儲器存取模塊調(diào)取存儲在所述緩存單元中的配置文件,將其寫入所述硬件加解密模塊,使其具有數(shù)據(jù)加解密功能。所述的在智能卡芯片內(nèi)對數(shù)據(jù)加解密算法進(jìn)行更新的方法,其中,采用嵌入式可編程邏輯門陣列模塊作為所述硬件加解密算法模塊。所述的在智能卡芯片內(nèi)對數(shù)據(jù)加解密算法進(jìn)行更新的方法,其中,可采用非易失性存儲單元作為所述嵌入式可編程邏輯門陣列模塊的配置存儲單元。所述的在智能卡芯片內(nèi)對數(shù)據(jù)加解密算法進(jìn)行更新的方法,其中,所述非易失性存儲單元為相變存儲器、鐵電存儲器、電阻式存儲器、磁介質(zhì)存儲器或閃存存儲器。所述的在智能卡芯片內(nèi)對數(shù)據(jù)加解密算法進(jìn)行更新的方法,其中,可采用純邏輯組合作為所述嵌入式可編程邏輯門陣列模塊的最小單元。一種數(shù)據(jù)解密方法,應(yīng)用于智能卡芯片上,其中,智能卡接口模塊接收另一智能卡芯片發(fā)送的經(jīng)過加密的用戶數(shù)據(jù);嵌入式微控制器通過系統(tǒng)總線讀取所述智能卡接口模塊接收到的經(jīng)過加密的用戶數(shù)據(jù);采用硬件加解密算法模塊中的解密模塊對經(jīng)過加密的用戶數(shù)據(jù)進(jìn)行解密操作;對解密過的接收的用戶數(shù)據(jù)進(jìn)行后續(xù)處理操作。所述的數(shù)據(jù)解密方法,其中,采用嵌入式可編程邏輯門陣列模塊作為所述硬件加解密算法模塊。所述的數(shù)據(jù)解密方法,其中,可采用非易失性存儲單元作為所述嵌入式可編程邏輯門陣列模塊的配置存儲單元。所述的數(shù)據(jù)解密方法,其中,所述非易失性存儲單元為相變存儲器、鐵電存儲器、電阻式存儲器、磁介質(zhì)存儲器或閃存存儲器。所述的數(shù)據(jù)解密方法,其中,所述嵌入式可編程邏輯門陣列模塊的最小單元可以為純組合邏輯,即該嵌入式可編程邏輯門陣列模塊中不包括時序邏輯,以在很大程度上減小芯片的面積。所述的數(shù)據(jù)解密方法,其中,通過一根據(jù)所述嵌入式可編程邏輯門陣列模塊資源生成的配置文件對所述可編程邏輯門陣列模塊進(jìn)行編程。一種數(shù)據(jù)加密方法,其中,應(yīng)用于智能卡芯片上,其中,嵌入式微控制器調(diào)取需要進(jìn)行發(fā)送的未經(jīng)加密的用戶數(shù)據(jù);采用硬件加解密算法中的加密模塊對未經(jīng)加密的用戶數(shù)據(jù)進(jìn)行加密操作;將加密后的用戶數(shù)據(jù)放于信道,以進(jìn)行傳輸。所述的數(shù)據(jù)加密方法,其中,采用嵌入式可編程邏輯門陣列模塊作為所述硬件加解密算法模塊。所述的數(shù)據(jù)加密方法,其中,可采用非易失性存儲單元作為所述嵌入式可編程邏輯門陣列模塊的配置存儲單元。所述的數(shù)據(jù)加密方法,其中,所述非易失性存儲單元為相變存儲器、鐵電存儲器、電阻式存儲器、磁介質(zhì)存儲器或閃存存儲器。所述的數(shù)據(jù)加密方法,其中,所述嵌入式可編程邏輯門陣列模塊的最小單元可以為純組合邏輯,即該嵌入式可編程邏輯門陣列模塊中不包括時序邏輯,以在很大程度上減小芯片的面積。所述的數(shù)據(jù)加密方法,其中,通過一根據(jù)所述嵌入式可編程邏輯門陣列模塊資源生成的配置文件對所述可編程邏輯門陣列模塊進(jìn)行編程。上述技術(shù)方案具有如下優(yōu)點(diǎn)或有益效果:本發(fā)明解決了用軟件實(shí)現(xiàn)數(shù)據(jù)加解密算法時運(yùn)行速度慢的問題,也使得用硬件實(shí)現(xiàn)數(shù)據(jù)加解密算法后,密鑰一旦被破解智能卡芯片就作廢的情況得到了改善。并且可以用非易失性存儲單元來實(shí)現(xiàn)嵌入式可編程邏輯門陣列內(nèi)的配置存儲單元,從而使得智能卡的面積減小,功耗降低,大大地減少了成本,更能使智能卡達(dá)到上電后快速啟動的目的。附圖說明參考所附附圖,以更加充分的描述本發(fā)明的實(shí)施例。然而,所附附圖僅用于說明和闡述,并不構(gòu)成對本發(fā)明范圍的限制。圖1為用硬件電路實(shí)現(xiàn)數(shù)據(jù)加解密算法的智能卡芯片示意圖;圖2為用軟件算法實(shí)現(xiàn)數(shù)據(jù)加解密算法的智能卡芯片示意圖;圖3為本發(fā)明實(shí)施例1中的一種用嵌入式可編程邏輯門陣列實(shí)現(xiàn)數(shù)據(jù)加解密算法的智能卡芯片示意圖;圖4為本發(fā)明實(shí)施例2中的一種用嵌入式可編程邏輯門陣列實(shí)現(xiàn)數(shù)據(jù)加解密算法的智能卡芯片示意圖;圖5為傳統(tǒng)的采用靜態(tài)隨機(jī)訪問存儲器單元作為開關(guān)選擇的可編程邏輯門陣列內(nèi)布線通道的示意圖;圖6為傳統(tǒng)的采用靜態(tài)隨機(jī)訪問存儲器單元作為數(shù)據(jù)輸入的可編程邏輯門陣列內(nèi)查找表格的示意圖;圖7為本發(fā)明采用相變存儲器單元作為開關(guān)選擇的可編程邏輯門陣列內(nèi)布線通道的示意圖;圖8為本發(fā)明采用相變存儲器單元作為數(shù)據(jù)輸入的可編程邏輯門陣列內(nèi)查找表格的示意圖;圖9為傳統(tǒng)的帶時序邏輯單元的可編程邏輯門陣列模塊單元示意圖;圖10為本發(fā)明不帶時序邏輯單元的可編程邏輯門陣列模塊單元示意圖;圖11為本發(fā)明中減小所述可編程邏輯門陣列面積方法示意圖;圖12A為本發(fā)明實(shí)施例1中將所述可編程邏輯門陣列配置文件植入可編程邏輯門陣列的步驟示意圖;圖12B為本發(fā)明實(shí)施例2中將所述可編程邏輯門陣列配置文件植入可編程邏輯門陣列的步驟示意圖。具體實(shí)施方式本發(fā)明提供了一種實(shí)現(xiàn)數(shù)據(jù)加解密功能的裝置。圖3是本發(fā)明提出的一種用嵌入式可編程邏輯門陣列實(shí)現(xiàn)數(shù)據(jù)加解密算法的智能卡芯片示意圖;如圖3所示,包括系統(tǒng)總線、信道(未在圖中示出)、嵌入式微控制器和智能卡接口模塊,其中,所述裝置還包括硬件加解密算法模塊,該硬件加解密算法模塊中還包括一解密模塊和一加密模塊。本發(fā)明裝置還包括一數(shù)據(jù)單元和一程序單元,嵌入式微控制器通過系統(tǒng)總線對該數(shù)據(jù)單元和程序單元進(jìn)行訪問,以進(jìn)行數(shù)據(jù)和程序的讀寫操作。通過上述的組件可以實(shí)現(xiàn)以下的數(shù)據(jù)交互:嵌入式微控制器可以通過系統(tǒng)總線對智能卡接口模塊進(jìn)行訪問,并接收第一數(shù)據(jù),該第一數(shù)據(jù)可以為加密后尚未進(jìn)行解密的用戶數(shù)據(jù),通過解密模塊可以對該第一數(shù)據(jù)進(jìn)行解密,解密后的第一數(shù)據(jù)可被用于后期的處理,即上述的實(shí)現(xiàn)數(shù)據(jù)加解密功能的裝置完成對數(shù)據(jù)的接收操作。相應(yīng)地,通過嵌入式微控制器可以將需要發(fā)送的第二數(shù)據(jù)通過硬件加解密算法中的加密算法進(jìn)行加密,該第二數(shù)據(jù)可以是未經(jīng)加密的用戶數(shù)據(jù),該第二數(shù)據(jù)經(jīng)過加密后可以通過信道進(jìn)行發(fā)送,這時,本發(fā)明實(shí)現(xiàn)數(shù)據(jù)加解密功能的裝置完成對數(shù)據(jù)的發(fā)送操作。優(yōu)選的,上述的第一數(shù)據(jù)和第二數(shù)據(jù)的接收與發(fā)送可以在兩個相同的具有數(shù)據(jù)加解密功能的裝置中進(jìn)行,并且其接收和發(fā)送的過程可互逆。進(jìn)一步的,上述智能卡接口包括一緩存單元,在該緩存單元內(nèi)可以用于暫時存儲加密后的用戶信息。當(dāng)加密后的用戶數(shù)據(jù)被智能卡接口接收后,暫存于該緩存單元中;嵌入式微控制器通過系統(tǒng)總線可對智能卡接口進(jìn)行訪問,以讀取暫存于該緩存單元中的經(jīng)加密后的用戶數(shù)據(jù),嵌入式微控制器將該用戶數(shù)據(jù)發(fā)送給硬件加解密算法模塊,由該硬件加解密算法模塊對加密后的用戶數(shù)據(jù)進(jìn)行解密,解密后的用戶數(shù)據(jù)由嵌入式微控制器用于后續(xù)的處理。當(dāng)嵌入式微控制器獲取到未經(jīng)加密的用戶信息后,嵌入式微控制器將該用戶信息發(fā)送給硬件加解密算法模塊,由該硬件加解密算法模塊對未加密的用戶數(shù)據(jù)進(jìn)行加密,加密...