本發明涉及加密技術領域,尤其是涉及一種能夠有效提高ATM機的數據安全性的ATM機芯加解密裝置的數據處理方法。
背景技術:隨著ATM機等金融自助終端的普遍運用,作為ATM機的核心設備,鈔票處理模塊(即機芯)的安全性越來越受到客戶、銀行、監管方的關注,無論是在物理結構、整機安裝上都有相應的安全規范。但是鈔票處理模塊與主機通常采用透明明文進行數據傳輸,絕大部分應用都是直接參考機芯廠商的通信協議進行機芯部件的通信和狀態控制,并且都使用機芯提供的接口,如RS232、USB接口。但是,機芯存在如下缺點:主機至機芯的通信報文容易被截獲,通過截獲的通信報文進行解析,可以從外部接管、控制機芯。或者是采用非法的應用軟件,直接控制機芯。中國專利授權公開號:CN103280030A,授權公開日2013年9月4日,公開了一種ATM機,包括殼體、豎向設置在殼體前端上部的操作面板、出鈔口、插卡口、處理控制器、點鈔機和鈔票箱,所述的ATM機還包括人體感應裝置,所述人體感應裝置包括測距裝置或者紅外感應儀,所述人體感應裝置設置在操作面板上,所述人體感應裝置連接到處理控制器。該發明的不足之處是,主機至機芯模塊的通信報文容易被截獲。
技術實現要素:本發明的發明目的是為了克服現有技術中的ATM機的主機至機芯模塊的通信報文容易被截獲的不足,提供了一種能夠有效提高ATM機的數據安全性的ATM機芯加解密裝置的數據處理方法。為了實現上述目的,本發明采用以下技術方案:一種ATM機芯加解密裝置的數據處理方法,所述ATM機包括主機、機芯和保險柜;所述機芯加解密裝置設于保險柜中,機芯加解密裝置包括加解密芯片,與加解密芯片電連接的微控制器,設于加解密芯片上的USB設備接口,設于微控制器上的RS232串行接口和嵌入式USB主機接口;所述USB設備接口的自由端與主機電連接,所述RS232串行接口和嵌入式USB主機接口的自由端均與機芯電連接;所述數據處理方法包括如下步驟:(1-1)在主機和加解密芯片中均設有密碼置換表S-Box和密鑰,密鑰MK=(MK0,MK1,MK2,MK3)MKi,i∈(0,1,2,3)為128Bit數據,由4個32Bit數據組成;MK0,MK1,MK2,MK3均為設定的4字節數據;主機中設有加解密芯片與主機之間的通信協議;(1-2)主機到機芯的數據處理過程:(1-2-1)主機按照通信協議對用戶數據進行拆分并與密鑰進行分組加密,得到若干個報文幀;所述報文幀包括1個字節的同步標識符、1個字節的包頭、2個字節的幀ID和數據字節,報文幀的長度≤64字節;加解密芯片收到報文幀后,對報文幀進行分析,得到用戶數據;(1-2-2)加解密芯片使用戶數據與密鑰進行異或運算,將得到的用戶數據的每個字節數值用S-Box中的相對應數值進行置換,將置換得到的用戶數據構成4×4用戶數據矩陣;在加解密芯片中設有(K0,K1,K2,K3)=(MK0⊕FK0,MK1⊕FK1,MK2⊕FK2,MK3⊕FK3),設定迭代次數j的初始值為1;設定加密次數k的初始值為1;其中,FK0,FK1,FK2,FK3,K0,K1,K2,K3均為設定的4字節數據;(1-2-3)加解密芯片計算擴展密鑰PKj=Kj+4=Kj⊕T′(Kj+1⊕Kj+2⊕Kj+3⊕CKj),其中,B=Kj+1⊕Kj+2⊕Kj+3⊕CKj,T′=B⊕(B左移13比特)⊕(B左移23比特),CKj為設定的4字節數據;(1-2-4)加解密芯片對4×4用戶數據矩陣進行轉置,將矩陣中的數據與擴展密鑰進行異或計算,得到第k次加密的用戶數據;(1-2-5)加解密芯片將第k次加密的用戶數據矩陣中的數值用S-Box中的相對應的數值進行置換,對4×4用戶數據矩陣進行轉置,將矩陣中的數據與擴展密鑰進行異或計算;當k<32并且j<32,使k值增加1,j值增加1,返回步驟(1-2-3);(1-2-6)加解密芯片將用戶數據矩陣中的數據組合成報文幀,在報文幀前加入長度字節,報文幀后加入校驗字符,用戶數據傳遞給微控制器,微控制器將用戶數據傳遞給機芯;(1-3)機芯到主機的數據處理過程:(1-3-1)微控制器將收到的機芯狀態數據和配置數據發給加解密芯片;加解密芯片利用步驟(1-2-2)至(1-2-5)對狀態數據和配置數據進行拆分、加密,并組成報文幀,在報文幀前加入長度字節,報文幀后加入校驗字符,并通過USB設備端口將報文幀發送給主機。本發明的提出一種可以在主機和機芯之間對通信報文進行加密的模塊,該模塊對機芯是透明的,可以認為是一個小型的嵌入式主機模塊,但是帶有加密模塊,和應用主機之間的報文是加密的,起到中間轉換橋梁的作用。本發明的機芯加解密裝置作為機芯和主機之間數據轉發裝置,將機芯和主機之間傳輸的數據進行加密,即使數據被截獲,也不會被破解。機芯加解密裝置和機芯之間的通信是透明的,可以認為是一個小型的嵌入式主機模塊,和主機之間的報文是加密的,起到中間轉換橋梁的作用。本發明同時提供了RS232串行接口和嵌入式USB主機接口,覆蓋目前常規機芯使用的通信接口。并且機芯加解密裝置設于ATM機的保險柜中,位于保險柜以外的數據通信都是經過加密處理的,即便遭到破壞后,依然能夠保護機芯模塊部件數據、狀態參數的安全。反向傳輸情況下,主機發出操作機芯的報文,該報文是密文,機芯加解密裝置正確解密后,才能傳輸給機芯,機芯才能執行報文中的命令,從而回應主機的請求。機芯加解密裝置在機芯和主機之間起到隔離的作用,在實際應用環境中,主機需要和機芯加解密裝置做雙方驗證和確認,大致過程可以是這樣:在整機上電后,主機向發起機芯加解密裝置的驗證請求,等待機芯加解密裝置回復響應后,機芯加解密裝置即主機發起驗證請求,當機芯加解密裝置確認正常后,主機才能訪問機芯設備的參數和狀態值,從而在ATM交易中執行客戶的諸如取款、存款的操作,ATM整機維護人員的加鈔、清機等維護類操作。在遇到主機需要更換或者是應用軟件要更新,則需要重新發起驗證。如果更換機芯加解密裝置,則需要在主機中注銷該機芯加解密裝置,才能夠更換新的機芯加解密裝置,然后再重新發起驗證請求。直到雙方驗證無誤后,主機軟件才能夠啟用機芯。因此,本發明具有入下優點:1.采用雙方驗證機制只有經過驗證的主機應用軟件和機芯加解密裝置,才能夠啟用對機芯的操作并受到加密保護,即保險柜的機芯既是物理上的安全處理位置,邏輯控制也是經過加密的。非法的主機應用軟件是無法開啟機芯的,同樣也無法讀取機芯狀態。機芯加解密裝置的驗證加密采用國密局認證的國密算法芯片作為數據加密、解密使用,數據處理芯片專注于和機芯的數據通信和加解密芯片的數據交互。對于機芯加解密裝置,由于其獨立于出鈔模塊運作,為了能適應不同的出鈔模塊協議,其不對協議進行解析,僅作為一個加密通道使用,其特點是:在不解析出鈔模塊協議的情況下,其并不知道出鈔模塊一次通訊的報文有多長,報文何時開始、何時結束,因此需要在合適的時機對連接出鈔模塊的串口數據進行加密封裝。2.本發明兼具廣泛的連接能力和擴展能力機芯加解密裝置實現了對機芯的管理,RS232串行接口的機芯和主機之間的通信是對等的,即機芯和主機都可以發起數據傳輸。基于USB接口的機芯,主機在USB通信過程中起到主導作用,主機發起所有的數據傳輸請求,機芯根據主機的請求進行實際的數據傳輸動作。本發明的機芯加解密裝置實現了嵌入式USB主機的功能,可以支持USB標準規范中標準設備和廠商自定義USB設備類型。擴展了機芯加解密裝置的應用范圍,通常的廠商自定義USB設備都需要接入到主機中,并且要安裝相應的操作系統設備驅動程序,ATM功能服務接口才可以操作該設備和控制機芯狀態。本發明的機芯加解密裝置統一了機芯的邏輯接口。3.本發明在實際應用中,具備很強的靈活性,可以將加解密芯片部分和微控制器部分分離成兩塊電路板,電路板之間采用高速串行通信接口進行數據互聯,如果客戶需要特別的加密方式,涉及到更換芯片的方案,則可以只更換加\解密芯片,而微控制器部分則可以不變動。或者更換微控制器,加解密芯片不變。作為優選,所述通信協議為:加解密芯片與主機之間采用定長幀報文通信,設定單次通信的最大報文幀長度為HID_LENGTH,若單次通信的報文幀長度小于HID_LENGTH,則在報文幀中的空位內填充隨機數;若單次通信的報文幀長度大于HID_LENGTH長度,則按照HID_LENGTH的長度對報文幀進行拆分,剩下的報文幀的長度小于HID_LENGTH時,則在報文幀中的空位內填充隨機數。作為優選,所述HID_LENGTH為16至64字節。作為優選,所述加解密芯片通過SPI總線與微控制器電連接。作為優選,USB設備接口和主機進行數據交互,嵌入式USB主機端口或RS232串口與ATM機的機芯進行通信及數據收發。作為優選,微控制器上還設有Ethernet接口、RS485接口和CAN總線接口;Ethernet接口、RS485接口和CAN總線接口的自由端均與機芯電連接。Ethernet接口、RS485接口和CAN總線接口分別用于與設有Ethernet、RS485、CAN總線接口的機芯設備相連接。因此,本發明具有如下有益效果:(1)采用雙方驗證機制;(2)兼具廣泛的連接能力和擴展能力;(3)具備很強的靈活性;(4)有效提高ATM機的安全性。附圖說明圖1是本發明的一種原理框圖;圖2是本發明的主機到機芯的數據處理過程的一種流程圖。圖中:機芯加解密裝置1、加解密芯片2、微控制器3、USB設備接口4、RS232串行接口5、嵌入式USB主機接口6、主機7、機芯8、Ethernet接口9、RS485接口10、CAN總線接口11、SPI總線12。具體實施方式下面結合附圖和具體實施方式對本發明做進一步的描述。如圖1所示的實施例是一種ATM機芯加解密裝置的數據處理方法,ATM機包括主機、機芯和保險柜;機芯加解密裝置1設于保險柜中,機芯加解密裝置包括加解密芯片2,與加解密芯片電連接的微控制器3,設于加解密芯片上的USB設備接口4,設于微控制器上的RS232串行接口5和嵌入式USB主機接口6;USB設備接口的自由端與主機7電連接,RS232串行接口和嵌入式USB主機接口的自由端均與機芯8電連接;加解密芯片通過SPI總線12與微控制器連接,微控制器上還設有Ethernet接口9、RS485接口10和CAN總線接口11;Ethernet接口、RS485接口和CAN總線接口的自由端均與機芯電連接。數據處理方法包括如下步驟:在主機和加解密芯片中均設有密碼置換表S-Box和密鑰,密鑰MK=(MK0,MK1,MK2,MK3)MKi,i∈(0,1,2,3)為128Bit數據,由4個32Bit數據組成;MK0,MK1,MK2,MK3均為設定的4字節密鑰數據;如下所示:MK0=(05050505),MK1=(A5A5A5A5),MK2=(B5B5B5B5),MK3=(C5C5C5C5)。主機中設有加解密芯片與主機之間的通信協議;通信協議為:加解密芯片與主機之間采用定長幀報文通信,設定單次通信的最大報文幀長度為HID_LENGTH,若單次通信的報文幀長度小于HID_LENGTH,則在報文幀中的空位內填充隨機數;若單次通信的報文幀長度大于HID_LENGTH長度,則按照HID_LENGTH的長度對報文幀進行拆分,剩下的報文幀的長度小于HID_LENGTH時,則在報文幀中的空位內填充隨機數。如圖2所示,主機到機芯的數據處理過程:步驟100,主機按照通信協議對用戶數據進行拆分并與密鑰進行分組加密,得到若干個報文幀;所述報文幀包括1個字節的同步標識符、1個字節的包頭、2個字節的幀ID和數據字節,報文幀的長度≤64字節;如表1所示:同步標示符包頭長度幀ID數據填充1字節1字節2字節2字節長度字節隨機數表1加解密芯片收到報文幀后,對報文幀進行分析,得到用戶數據;步驟200,加解密芯片使用戶數據與密鑰進行異或運算,將得到的用戶數據的每個字節數值用S-Box中的相對應數值進行置換,將置換得到的用戶數據構成4×4用戶數據矩陣;如表2所示的S-Box有16行16列,一共256項數據(16進制數據),表2僅給出部分數據:0123456789ABCDEF0D690E9FECcE13dB716B614C228Fb2c05......xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxF18F07dec3Adc4d2079Ee5f3eD7Cb3948表2S-Box是個查找表結構,例如輸入F0,經過S-Box置換后的值為表格中第F行,第0列,即S(F0)=05(16進制數據)加解密芯片中設有(K0,K1,K2,K3)=(MK0⊕FK0,MK1⊕FK1,MK2⊕FK2,MK3⊕FK3),設定迭代次數j的初始值為1;其中,FK0,FK1,FK2,FK3,K0,K1,K2,K3均為設定的4字節數據;如下所示:FK0=(A3B1BAC6),FK1=(56AA3350),FK2=(677D9197),FK3=(B27022DC)。K0是MK0和FK0異或后的結果K0=(A6B4BFC3),K1、K2、K3依次類推。步驟300,計算擴展密鑰PKj=Kj+4=Kj⊕T′(Kj+1⊕Kj+2⊕Kj+3⊕CKj),其中B=Kj+1⊕Kj+2⊕Kj+3⊕CKj,T′=B⊕(B左移13比特)⊕(B左移23比特),CKj為設定的4字節16進制數據;如下所示:CK0=10171e25,CK1=2C333A41,CK2=484F565D,CK3=646B7279步驟400,對4×4用戶數據矩陣進行轉置,將矩陣中的數據與擴展密鑰進行異或計算,得到第k次加密后的用戶數據,k的初始值為1;步驟500,加解密芯片將第k次加密的用戶數據矩陣中的數值用S-Box中的相對應的數值進行置換,對4×4用戶數據矩陣進行轉置,將矩陣中的數據與擴展密鑰進行異或計算;當k<32并且j<32,使k值增加1,j值增加1,返回步驟300;步驟600,加解密芯片將用戶數據矩陣中的數據組合成報文幀,在報文幀前加入長度字節,報文幀后加入校驗字符,用戶數據傳遞給微控制器,微控制器將用戶數據傳遞給機芯;機芯到主機的數據處理過程:步驟100,微控制器將收到的機芯狀態數據和配置數據發給加解密芯片;加解密芯片利用步驟200至500對狀態數據和配置數據進行拆分、加密,并組成報文幀,在報文幀前加入長度字節,報文幀后加入校驗字符,并通過USB設備端口將報文幀發送給主機。應理解,本實施例僅用于說明本發明而不用于限制本發明的范圍。此外應理解,在閱讀了本發明講授的內容之后,本領域技術人員可以對本發明作各種改動或修改,這些等價形式同樣落于本申請所附權利要求書所限定的范圍。