>[0073]在該本端生成隨機數(shù),并根據(jù)該隨機數(shù)將加密數(shù)據(jù)切分為數(shù)據(jù)塊之后,該本端可以將該數(shù)據(jù)塊一一打包,生成對應的數(shù)據(jù)包。
[0074]15、該本端將該數(shù)據(jù)包傳輸至對端;
[0075]在該本端將該數(shù)據(jù)塊--打包,生成對應的數(shù)據(jù)包之后,該本端可以將該數(shù)據(jù)包傳輸至對端。
[0076]16、該對端將該數(shù)據(jù)包解析并合并,得到該加密數(shù)據(jù);
[0077]在該本端將該數(shù)據(jù)包傳輸至對端之后,該對端可以將該數(shù)據(jù)包解析并合并,得到該加密數(shù)據(jù)。
[0078]17、該對端對該加密數(shù)據(jù)解密,得到該原始數(shù)據(jù)。
[0079]在該對端將該數(shù)據(jù)包解析并合并,得到該加密數(shù)據(jù)之后,該對端可以對該加密數(shù)據(jù)解密,得到該原始數(shù)據(jù)。
[0080]本實施例中,首先,本端獲取需要發(fā)送的原始數(shù)據(jù);該本端對該原始數(shù)據(jù)加密,得到加密數(shù)據(jù);然后,該本端生成隨機數(shù),并根據(jù)該隨機數(shù)將加密數(shù)據(jù)切分為數(shù)據(jù)塊;該本端將該數(shù)據(jù)塊一一打包,生成對應的數(shù)據(jù)包;最后,該本端將該數(shù)據(jù)包傳輸至對端,使得該對端將該數(shù)據(jù)包解析并合并,得到該加密數(shù)據(jù),然后該對端對該加密數(shù)據(jù)解密,得到該原始數(shù)據(jù)。在本實施例中,該自助終端設備硬件的安全通信方法在自助終端本地主機內(nèi)實現(xiàn),無需聯(lián)網(wǎng)驗證,并通過隨機分包來提升通信的安全性,防范了犯罪分子通過軟件模擬設備硬件與主機通信進行金融犯罪。
[0081 ]為便于理解,下面對本發(fā)明實施例中的一種自助終端設備硬件的安全通信方法進行詳細描述,請參閱圖2,本發(fā)明實施例中一種自助終端設備硬件的安全通信方法另一個實施例包括:
[0082]21、本端獲取需要發(fā)送的原始數(shù)據(jù);
[0083]首先,本端可以獲取需要發(fā)送的原始數(shù)據(jù)。需要說明的是,當自助終端的主機向設備硬件進行通信時,該主體為本端,設備硬件為對端;而當自助終端的設備硬件向主機進行通信時,則設備硬件為本端,主機為對端。
[0084]22、該本端將該原始數(shù)據(jù)和對應的時間信息合并成數(shù)據(jù)體;
[0085]在本端獲取需要發(fā)送的原始數(shù)據(jù)之后,該本端可以將該原始數(shù)據(jù)和對應的時間信息合并成數(shù)據(jù)體??梢岳斫獾氖?,該時間信息與原始數(shù)據(jù)是對應的,時間信息可以是記錄了該原始數(shù)據(jù)生成的時間,或者是多個原始數(shù)據(jù)之間的時間順序。
[0086]23、該本端對該數(shù)據(jù)體進行校驗運算,得到第一運算結果;
[0087]在該本端將該原始數(shù)據(jù)和對應的時間信息合并成數(shù)據(jù)體之后,該本端對該數(shù)據(jù)體進行校驗運算,得到第一運算結果??梢岳斫獾氖?,該校驗運算具體可以是CRC(循環(huán)冗余)校驗,從而最后的第一運算結果為CRC校驗運算結果。
[0088]24、該本端將該數(shù)據(jù)體和該第一運算結果合并,得到校驗數(shù)據(jù)體;
[0089]在該本端對該數(shù)據(jù)體進行校驗運算,得到第一運算結果之后,該本端可以將該數(shù)據(jù)體和該第一運算結果合并,得到校驗數(shù)據(jù)體。其中,可以預設該校驗數(shù)據(jù)體的數(shù)據(jù)結構,例如將第一運算結果放在數(shù)據(jù)結構的前頭,數(shù)據(jù)體放在第一運算結果后面。具體地,該校驗數(shù)據(jù)體的結構可以自定義,本實施例不對此進行限定。
[0090]25、該本端采用私鑰對該校驗數(shù)據(jù)體加密,得到加密數(shù)據(jù);
[0091 ]在該本端將該數(shù)據(jù)體和該第一運算結果合并,得到校驗數(shù)據(jù)體之后,該本端可以采用私鑰對該校驗數(shù)據(jù)體加密,得到加密數(shù)據(jù)。需要說明的是,該本端預先生成一對非對稱密鑰,包括公鑰和私鑰,并將該公鑰預先導入至該對端,其中,該私鑰用于對該原始數(shù)據(jù)加密,該公鑰用于對該加密數(shù)據(jù)解密。
[0092]26、該本端生成一個預設范圍內(nèi)的隨機數(shù);
[0093]在切分前,該本端需要生成一個預設范圍內(nèi)的隨機數(shù),該隨機數(shù)對于本端和對端來說都是隨機的,從而避免犯罪人員提前獲知而破解,提高安全性。其中,為了提高數(shù)據(jù)傳輸?shù)男剩撾S機數(shù)一般不能太大,比如,該加密數(shù)據(jù)大小為100字節(jié),若生成的隨機數(shù)為100,則將100字節(jié)大小的切分為100個I字節(jié)的數(shù)據(jù)塊,這對于后續(xù)的數(shù)據(jù)傳輸來說是非常不利的。因此,本實施例中,該隨機數(shù)在預設的數(shù)值范圍內(nèi)生成,避免了隨機數(shù)過大的問題。
[0094]27、該本端將該加密數(shù)據(jù)切分為該隨機數(shù)個數(shù)據(jù)塊;
[0095]在該本端生成一個預設范圍內(nèi)的隨機數(shù)之后,該本端將該加密數(shù)據(jù)切分為該隨機數(shù)個數(shù)據(jù)塊。例如,隨機數(shù)為5時,將該加密數(shù)據(jù)切分為5個數(shù)據(jù)塊。
[0096]28、該本端將該數(shù)據(jù)塊--打包,生成對應的數(shù)據(jù)包;
[0097]在該本端將該加密數(shù)據(jù)切分為該隨機數(shù)個數(shù)據(jù)塊之后,該本端可以將該數(shù)據(jù)塊一一打包,生成對應的數(shù)據(jù)包。例如,當有5個數(shù)據(jù)塊時,對每個數(shù)據(jù)塊均進行打包,生成5個對應的數(shù)據(jù)包。具體可以為,在一個數(shù)據(jù)塊的基礎上分別增加包頭和包尾,從而使一個數(shù)據(jù)塊生成一個數(shù)據(jù)包。
[0098]29、該本端將該數(shù)據(jù)包傳輸至對端;
[0099]在該本端將該數(shù)據(jù)塊--打包,生成對應的數(shù)據(jù)包之后,該本端將該數(shù)據(jù)包傳輸至對端。
[0100]30、該對端將該數(shù)據(jù)包解析并合并,得到該加密數(shù)據(jù);
[0101 ]該對端接收來自該本端的該數(shù)據(jù)包后,可以將該數(shù)據(jù)包解析并合并,得到該加密數(shù)據(jù)。具體地,也就是將數(shù)據(jù)包解析成數(shù)據(jù)塊,然后將所有數(shù)據(jù)塊合并成該加密數(shù)據(jù)。
[0102]31、該對端采用公鑰對該加密數(shù)據(jù)解密,若解密失敗,則執(zhí)行步驟37,若解密成功,則得到待測校驗數(shù)據(jù)體;
[0103]在得到該加密數(shù)據(jù)之后,該對端可以采用公鑰對該加密數(shù)據(jù)解密,若解密失敗,則執(zhí)行步驟37,若解密成功,則得到待測校驗數(shù)據(jù)體。可以理解的是,用來解密的公鑰與加密時所用的私鑰是成對的,并且公鑰是預先導入至該對端上,避免了犯罪人員通過軟件手段獲取到對端上的公鑰。
[0104]32、該對端獲取該待測校驗數(shù)據(jù)體中的數(shù)據(jù)體,并對獲取到的數(shù)據(jù)體進行校驗運算,得到第二運算結果;
[0105]在得到待測校驗數(shù)據(jù)體之后,該對端可以獲取該待測校驗數(shù)據(jù)體中的數(shù)據(jù)體,并對獲取到的數(shù)據(jù)體進行校驗運算,得到第二運算結果。需要說明的是,步驟32的校驗運算方法應該與步驟23所使用的校驗運算方法保持一致。
[0106]33、該對端校驗該第二運算結果與該待測校驗數(shù)據(jù)體中的第一運算結果是否相符,若相符,則執(zhí)行步驟34,若不符,則執(zhí)行步驟37;
[0107]在得到第二運算結果之后,該對端可以校驗該第二運算結果與該待測校驗數(shù)據(jù)體中的第一運算結果是否相符,若相符,則執(zhí)行步驟34,若不符,則執(zhí)行步驟37。可以理解的是,當?shù)诙\算結果與第一運算結果相符時,說明得到的待測校驗數(shù)據(jù)體中的數(shù)據(jù)體與本端上的數(shù)據(jù)體一致,否則,則待測校驗數(shù)據(jù)體存在數(shù)據(jù)錯誤,可以做錯誤數(shù)據(jù)處理。
[0108]34、該對端獲取該數(shù)據(jù)體中的該原始數(shù)據(jù);
[0109]當?shù)诙\算結果與第一運算結果相符時,該對端從該數(shù)據(jù)體中獲取該原始數(shù)據(jù)。
[0110]35、該對端對該原始數(shù)據(jù)進行數(shù)據(jù)合理性檢查,若檢查通過,則執(zhí)行步驟36,若檢查不通過,則執(zhí)行步驟37;
[0111]在該對端獲取該數(shù)據(jù)體中的該原始數(shù)據(jù)之后,該對端可以對該原始數(shù)據(jù)進行數(shù)據(jù)合理性檢查,若檢查通過,則執(zhí)行步驟36,若檢查不通過,則執(zhí)行步驟37 ο該數(shù)據(jù)合理性檢查的檢查標準可根據(jù)實際使用情況進行設定,例如可以檢查該原始數(shù)據(jù)的命令組合是否合理,或者其對應的時間信息是否合理等。
[0112]36、該對端根據(jù)該原始數(shù)據(jù)進行操作;
[0113]當該原始數(shù)據(jù)通過數(shù)據(jù)合理性檢查之后,該對端可以根據(jù)該原始數(shù)據(jù)進行操作。
[0114]37、該對端作數(shù)據(jù)丟棄處理。
[0115]當加密數(shù)據(jù)解密失敗時,或待測校驗數(shù)據(jù)體校驗失敗時,或得到的原始數(shù)據(jù)的數(shù)據(jù)合理性檢查不通過時,該對端對這些數(shù)據(jù)作數(shù)據(jù)丟棄處理。
[0116]為便于理解,下面以一個實際應用場景對本發(fā)明實施例中的一種自助終端設備硬件的安全通信方法進行描述:
[0117]本應用場景中,該自助終端的主機內(nèi)置有數(shù)據(jù)安全處理模塊102,設備硬件中內(nèi)置有數(shù)據(jù)安全處理模塊103,該自助終端的系統(tǒng)結構如圖3所示。自助終端主機安裝有ATMC( —種ATM機的系統(tǒng)平臺)上層軟件,主機通過數(shù)據(jù)安全處理模塊102與設備硬件的數(shù)據(jù)安全處理模塊103通信,實現(xiàn)主機與設備硬件之間的通信。下面對通信過程中的各個環(huán)節(jié)進行描述,請參考圖3和圖4。
[0118]密鑰生成過程:
[0119]步驟1:在設備中的對外通信接口增加硬件的數(shù)據(jù)安全處理模塊103,也就是將原有的設備連接線纜接入硬件加密模塊,然后再由加密模塊引出新的通信接口,與主機的通信連接就使用該接口。
[0120]步驟2:在ATMC上層軟件101生成一對非對稱密鑰為:公鑰為A,私鑰為B,同時將公鑰A導入到硬件設備中;在硬件設備通過硬件的數(shù)據(jù)安全處理模塊103生成一對非對策密鑰為:公鑰為C,私鑰為D,同時將C發(fā)送給ATMC軟件。
[0121 ]數(shù)據(jù)加密通信過程描述:
[0122]步驟1: ATMC上層軟件101將二進制命令數(shù)據(jù)傳送給數(shù)據(jù)安全處理模塊102;
[0123]步驟2:數(shù)據(jù)安全處理模塊102首先在二進制命令數(shù)據(jù)復制到校驗數(shù)據(jù)格式201的原始的二進制數(shù)