本發(fā)明屬于光支付技術(shù)領(lǐng)域,特別涉及一種多算法多密鑰的光認證離線支付方法。
背景技術(shù):
傳統(tǒng)的非現(xiàn)金交易手段都是在線交易,原有的磁卡系統(tǒng)就是典型的在線交易系統(tǒng)。離線支付是一種當網(wǎng)絡(luò)、GPRS、3G、4G等通訊中斷時,所進行的交易支付手段,RFID、NFC是目前比較常見的離線支付方式。
離線支付可以在脫機狀態(tài)下工作,不需在支付的過程中聯(lián)機驗證支付雙方的真實有效,便可以完成支付,因此對支付雙方以及支付流程的安全性有很高要求。
可見光通信(Visible Light Communication,簡稱VLC)技術(shù)。VLC技術(shù)就是利用LED可以發(fā)出高頻閃爍且人眼無法感知到的燈光閃爍的這一特點,在數(shù)據(jù)發(fā)送端用LED的高頻閃爍來攜帶信號,在接收端用響應(yīng)時間同樣很快的感光元件進行信號的采集,從而實現(xiàn)無線通信的方法。
“掃碼”是時下很流行的信息獲取方式,“掃碼支付”則是在“掃碼”技術(shù)和微信、支付寶等技術(shù)的基礎(chǔ)上發(fā)展起來的線上支付方式手段。然而,屬于“掃碼支付”的支付手段,仍然是一種離不開網(wǎng)絡(luò)的在線支付方式,這樣的方式還是不能如同離線支付一樣,解決網(wǎng)絡(luò)通訊中斷無法支付的問題。
“掃碼”的“碼”通常是一個動態(tài)可變的“碼”,需要在顯示屏上的顯示出來,現(xiàn)用的液晶屏、LED屏都是需要提供背光照明,而照明背光又是可見光通信的一個很好的載體。照明背光是一個容易被忽略的信息載體,將照明背光作為一個隱藏信號的傳輸載體,應(yīng)用在光支付領(lǐng)域,可以提供一個隱藏通道,提高支付環(huán)節(jié)的安全性。
本發(fā)明得到以上幾個技術(shù)方式的啟發(fā),利用了攝像頭、閃光燈、環(huán)境光感知傳感模塊這幾個幾乎是現(xiàn)代智能手機、平板電腦的標準配置,共同構(gòu)造一個帶有安全而隱蔽的離線支付方法,在支付過程中采用多個密碼算法的隨機組合,加大了交易密文的解密復(fù)雜度,讓支付過程更加安全可靠。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種多算法多密鑰的光認證離線支付方法。
具體步驟為:
(1)建立一套多算法多密鑰的光認證離線消費裝置,包括:電子錢包、消費機和服務(wù)器。
電子錢包,包括:可見光發(fā)射模塊、條碼掃描模塊、控制模塊、錢包模塊、輸入模塊、顯示模塊、數(shù)據(jù)接口、錢包光接收模塊和密碼處理模塊;可見光發(fā)射模塊,用于根據(jù)控制模塊輸入的信息,生成并發(fā)送可見光信號;條碼掃描模塊,用于掃描識別條碼,并將識別的結(jié)果輸出給控制模塊;控制模塊,用于:1、將待發(fā)送的信息進行處理,生成數(shù)據(jù)包,并輸出給可見光發(fā)射模塊,驅(qū)動可見光發(fā)射模塊發(fā)送可見光信號;2、接收條碼掃描模塊的掃描結(jié)果輸出,并對掃描結(jié)果進行驗證;3、接收錢包光接收模塊的結(jié)果輸出,并予以識別、認證;4、根據(jù)收到的信息和生成的支付信息,生成需要通過可見光發(fā)射模塊的信息;5、與錢包模塊進行消費、充值、余額查詢、操作日志信息的讀寫操作;6、能夠通過數(shù)據(jù)接口與服務(wù)器進行數(shù)據(jù)交互;7、輸入待加密的數(shù)據(jù)到密碼處理模塊,并接收密碼處理模塊加密后的數(shù)據(jù)輸出;8、輸入待解密的數(shù)據(jù)到密碼處理模塊,并接收密碼處理模塊解密后的數(shù)據(jù)輸出;9、向密碼處理模塊輸入密碼算法和密鑰的選擇的指令;錢包模塊,用于保存包括:用戶賬號信息、錢包余額、消費權(quán)限、查詢密碼、支付密碼、操作日志、生產(chǎn)發(fā)行機構(gòu)在內(nèi)的信息;并可以驗證輸入的密碼是否與錢包密碼模塊內(nèi)保存的密碼一致;輸入模塊,用于向控制模塊輸入包括支付金額、查詢密碼、支付密碼、操作指令在內(nèi)的信息;顯示模塊,用于顯示支付金額、密碼輸入界面、操作指令以及提示信息;數(shù)據(jù)接口,用于提供電子錢包的聯(lián)網(wǎng)功能,提供與服務(wù)器連接并進行數(shù)據(jù)交換、數(shù)據(jù)維護和升級的功能;錢包光接收模塊,用于接收背光模塊發(fā)送的可見光背光信號;密碼處理模塊,用于:1、為支付流程中電子錢包需要傳輸?shù)男畔?,提供不止一種的密碼算法;2、保存提供的密碼算法中,將會使用到的密鑰;3、根據(jù)所選擇的密碼算法和密鑰,對支付流程中電子錢包需要發(fā)送的信息進行加密,并對電子錢包接收到的加密信息進行解密。
消費機,包括:可見光接收模塊、條碼顯示模塊、讀寫控制模塊、收銀箱模塊、鍵盤模塊、通信模塊、密碼協(xié)處理器和背光模塊;可見光接收模塊,用于接收可見光信號,并處理還原成對應(yīng)的數(shù)字信號,還原成數(shù)據(jù)包;條碼顯示模塊,用于:1、根據(jù)讀寫控制模塊的輸入信息,生成并顯示出條碼;2、顯示交易金額、密碼輸入界面、操作指令以及提示信息;讀寫控制模塊,用于:1、接收可見光接收模塊的輸出,并予以識別、認證;2、將待發(fā)送的信息進行處理,輸出給條碼顯示模塊;3、將需要通過光信號形式發(fā)送的信息進行處理,生成數(shù)據(jù)包,并輸出給背光模塊,驅(qū)動背光模塊發(fā)送可見光信號; 4、與收銀箱模塊進行消費、充值、余額查詢、操作日志信息的讀寫操作;5、提供數(shù)據(jù)接口,通過通信模塊與服務(wù)器進行信息的上傳和下載; 6、輸入待加密的數(shù)據(jù)到密碼協(xié)處理器,并接收密碼協(xié)處理器加密后的數(shù)據(jù)輸出;7、輸入待解密的數(shù)據(jù)到密碼協(xié)處理器,并接收密碼協(xié)處理器解密后的數(shù)據(jù)輸出;8、向密碼協(xié)處理器輸入密碼算法和密鑰的選擇的指令;收銀箱模塊,用于保存包括:操作日志、收款消費權(quán)限、黑名單、收銀余額、操作密碼、有效期、生產(chǎn)發(fā)行機構(gòu)在內(nèi)的信息;鍵盤模塊,用于向讀寫控制模塊輸入交易金額、交易密碼、操作指令;通信模塊,用于通過有線或者無線的方式,連接上位機或者接入網(wǎng)絡(luò),從而與服務(wù)器相連;背光模塊,用于為條碼顯示模塊提供顯示的照明背光,同時利用背光發(fā)送可見光背光信號;密碼協(xié)處理器,用于:1、為支付流程中消費機需要傳輸?shù)男畔?,提供不止一種的密碼算法;2、保存提供的密碼算法中,將會使用到的密鑰;3、根據(jù)所選擇的密碼算法和密鑰,對支付流程中消費機需要發(fā)送的信息進行加密,并對消費機接收到的加密信息進行解密。
服務(wù)器,用于:1、與消費機通過通信模塊建立上傳、下載的數(shù)據(jù)連接;2、與電子錢包通過數(shù)據(jù)接口建立上傳、下載的數(shù)據(jù)連接;3、提供本離線支付方法的后臺服務(wù)支持;4、提供整個離線支付裝置與金融系統(tǒng)的資金流動的接口;5、為消費機、電子錢包發(fā)放或取消授權(quán),提供包括:密鑰更新、算法更新和升級、使用權(quán)限調(diào)整、有效期調(diào)整、電子錢包充值、消費機繳款、電子錢包和消費機公開信息查詢在內(nèi)的服務(wù);6、保存包括:授權(quán)用戶清單、黑名單、操作日志匯總、消費機清單在內(nèi)的信息。
授權(quán)用戶清單,用于保存包括:已經(jīng)授權(quán)可以進行離線支付的電子錢包的身份標識、使用權(quán)限、有效期、電子錢包持有者的身份信息;黑名單,用于保存授權(quán)用戶清單中,因欠費、掛失、有不正當使用記錄而被拒絕支付交易的那部分電子錢包的身份標識信息;支付接口,用于提供整個離線支付裝置與金融系統(tǒng)的資金流動的接口;操作日志匯總,用于保存包括所有消費機、電子錢包的查詢、充值、消費的操作的時間、支付金額、支付過程數(shù)據(jù)參數(shù)在內(nèi)的信息;消費機清單,用于保存包括:已經(jīng)授權(quán)可以進行離線支付交易的消費機的身份標識、使用權(quán)限、有效期、消費機持有者的身份信息;服務(wù)器用于給包括上述消費機的模塊及其功能的設(shè)備發(fā)放權(quán)限,使其具備接受裝置內(nèi)的電子錢包進行支付的功能;服務(wù)器用于給包括上述電子錢包的模塊以及功能的設(shè)備發(fā)放權(quán)限,使其具備向裝置內(nèi)的消費機進行支付的功能;同時由服務(wù)器給用戶發(fā)放一個授權(quán),授權(quán)方式是發(fā)放一個授權(quán)實體硬件設(shè)備,或者是為已有設(shè)備的用戶提供一個授權(quán)號;并為設(shè)備充值,寫入電子錢包身份標識、使用權(quán)限、有效期、電子錢包的支付密碼和查詢密碼、電子錢包持有者的身份信息。
消費機和電子錢包內(nèi),都存放有n種密碼算法和m個加密解密密鑰,其中n<m,且n和m都是不小于2的自然數(shù)。消費機將每次將要發(fā)送出去的數(shù)據(jù),分成不少于兩個部分,都分別采用不同的密碼算法進行加密,然后再經(jīng)由條碼、背光這些不同的方式發(fā)送出去,電子錢包必須通過條碼掃描模塊和錢包光接收模塊分別接收來自消費機顯示的條碼和可見光背光信號,并且只有把消費機顯示的條碼和可見光背光信號都接收到,才能使用電子錢包內(nèi)的對應(yīng)的密碼算法和解密密鑰,把消費機發(fā)出的數(shù)據(jù)完整的解密出來。
(2)在步驟(1)建立的多算法多密鑰的光認證離線消費裝置中,由電子錢包向消費機發(fā)起支付,支付流程包括以下步驟:
DM1,電子錢包生成一個支付請求碼QQM1,支付請求碼QQM1包括:電子錢包身份標識QID1、支付隨機碼QRD1、支付金額ZFR1,并由可見光發(fā)射模塊采用可見光信號的方式向消費機發(fā)送支付請求碼QQM1。
DM2,消費機通過可見光接收模塊接收可見光信號形式的支付請求碼QQM2,從中提取出電子錢包身份標識QID2、支付隨機碼QRD2、支付金額ZFR2;消費機生成一個應(yīng)答隨機碼YDR2、一個光隨機碼GRD2;并根據(jù)應(yīng)答隨機碼YDR2,選擇一種密碼算法SFn和一個加密密鑰MYn;再根據(jù)光隨機碼GRD2,選擇密碼算法SFm和一個加密密鑰MYm。
DM2.1,根據(jù)支付請求碼QQM2、應(yīng)答隨機碼YDR2、光隨機碼GRD2,生成一個收款應(yīng)答碼SKYD2,并運算得到收款碼SKM2,收款碼SKM2包括:收款金額SJR2、消費機身份標識SID2、收款應(yīng)答碼SKYD2、支付請求碼QQM2、支付隨機碼QRD2;將收款碼SKM2分成兩個部分SKM2-1和SKM2-2,用密碼算法SFn和一個加密密鑰MYn對SKM2-1進行加密得到SFnSKM2-1,密碼算法SFm和一個加密密鑰MYm對SKM2-2和應(yīng)答隨機碼YDR2進行加密得到SFmSKM2-2。
DM2.2,將SFnSKM2-1和SFmSKM2-2生成條碼,通過條碼顯示模塊顯示出來;并通過背光模塊,將光隨機碼GRD2以可見光信號的方式向電子錢包發(fā)送出去。
DM3,由電子錢包掃描消費機的條碼顯示模塊顯示的條碼得到SFnSKM3-1、 SFmSKM3-2,電子錢包利用錢包光接收模塊接收光隨機碼GRD3;并根據(jù)光隨機碼GRD3,確定采用密碼算法SFm和解密密鑰JMm對SFmSKM3-2進行解密得到SKM3-2、應(yīng)答隨機碼YDR3,再根據(jù)應(yīng)答隨機碼YDR3確定選擇密碼算法SFn和一個解密密鑰JMn對SFnSKM3-1進行解密得到SKM3-1。
DM3.1,合并SKM3-1和SKM3-2得到收款碼SKM3;并從收款碼SKM3提取出收款金額SJR3、消費機身份標識SID3、收款應(yīng)答碼SKYD3、支付隨機碼QRD3;并根據(jù)收款應(yīng)答碼SKYD3、應(yīng)答隨機碼YDR3、光隨機碼GRD3,運算得到支付請求碼QQM3、應(yīng)答隨機碼YDR3。
DM3.2,進行以下的對比驗證:
1)DM1中電子錢包生成的支付請求碼QQM1和DM3中接收并提取得到的支付請求碼QQM3。
2)DM1中電子錢包生成的支付金額ZFR1和DM3中接收并從收款碼中提取得到的收款金額SJR3。
3)DM1中電子錢包生成的支付隨機碼QRD1和DM3中接收并從收款碼中提取得到的支付隨機碼QRD3。
如果以上有一個不一致則退出支付流程,并在顯示模塊上顯示支付請求錯誤的提示信息;如果一致就進入DM3.3。
DM3.3,電子錢包根據(jù)從收款碼SKM3提取得到的收款金額SJR3、消費機身份標識SID3、收款應(yīng)答碼SKYD3、支付隨機碼QRD3以及收款應(yīng)答碼SKYD3、應(yīng)答隨機碼YDR3、光隨機碼GRD3,運算得到支付確認碼FKQR3,并生成支付碼ZFM3,支付碼ZFM3包括:收款碼SKM3、電子錢包身份標識FID1、支付金額FJR1、支付確認碼FKQR3,再根據(jù)應(yīng)答隨機碼YDR3、光隨機碼GRD3選擇密碼算法SFa和一個加密密鑰MYa對支付碼ZFM3進行加密的到MYaZFM3,再把MYaZFM3以可見光信號的形式,由可見光發(fā)射模塊發(fā)送出去。
DM4,消費機通過可見光接收模塊接收可見光信號形式的信號,得到MYaZFM3,再根據(jù)應(yīng)答隨機碼YDR2、光隨機碼GRD2選擇密碼算法SFb和一個加密密鑰MYb對MYaZFM3進行解密得到支付碼ZFM4,從中提取出收款碼SKM4、電子錢包身份標識QID4、支付金額FJR4、支付確認碼FKQR4,從SKM4提取出收款金額SJR4、消費機身份標識SID4、收款應(yīng)答碼SKYD4、收款金額SJR3、支付隨機碼QRD4;從支付確認碼FKQR4運算得到收款應(yīng)答碼SKYD4、應(yīng)答隨機碼YDR4、光隨機碼GRD4。
DM4.1,進行至少以下的對比驗證:
1)對比DM2運算得到的收款碼SKM2和DM4中提取出的收款碼SKM4。
2)對比DM2中生成的應(yīng)答隨機碼YDR2和DM4中從SKM4提取出的應(yīng)答隨機碼YDR4。
3)對比DM2中生成的光隨機碼GRD2和DM4中從SKM4提取出的光隨機碼GRD4。
4)對比DM2中提取到的電子錢包身份標識QID2和DM4中從ZFM4提取出的電子錢包身份標識QID4。
5)對比DM2中得到的支付金額FJR2、收款金額SJR2和DM4中從ZFM4提取出的收款金額SJR4。
6)對比DM2中得到的支付隨機碼QRD2和DM4中從ZFM4提取出的支付隨機碼QRD4。
如果以上6個對比都分別一致,就進入DM4.2;否則就退出支付流程,并在條碼顯示模塊上顯示驗證出錯的提示信息。
DM4.2,消費機生成一個光確認碼GQR4,并根據(jù)電子錢包身份標識QID4、支付金額FJR4、消費機身份標識SID4、收款應(yīng)答碼SKYD4、應(yīng)答隨機碼YDR4、光確認碼GQR4、支付隨機碼QRD4,運算得到收款確認碼SKQR4;將收款確認碼SKQR分成兩個部分SKQR4-1和SKQR4-2。
DM4.3,根據(jù)光確認碼GQR4和應(yīng)答隨機碼YDR2,選擇一種密碼算法SFp和一個加密密鑰MYp;再根據(jù)光確認碼GQR4和光隨機碼GRD2,選擇密碼算法SFq和一個加密密鑰MYq;用密碼算法SFp和一個加密密鑰MYp對SKQR4-1進行加密得到SFpSKQR4-1,用密碼算法SFq和一個加密密鑰MYq對SKQR4-2和應(yīng)答隨機碼YDR2進行加密得到SFqSKQR4-2。
DM4.4,消費機將SFpSKQR4-1和SFqSKQR4-2生成條碼,通過條碼顯示模塊顯示出來;并通過背光模塊,將光確認碼GQR4以可見光信號的方式向電子錢包發(fā)送出去。
DM5,電子錢包掃描消費機條碼顯示模塊顯示的條碼得到SFpSKQR5-1和SFqSKQR5-2,電子錢包利用錢包光接收模塊接收光確認碼GQR5;電子錢包根據(jù)光確認碼GQR5和應(yīng)答隨機碼YDR3,選擇一種密碼算法SFp和一個解密密鑰JYp;再根據(jù)光確認碼GQR5和光隨機碼GRD3,選擇密碼算法SFq和一個解密密鑰JYq;采用密碼算法SFp和解密密鑰JYp對SFpSKQR5-1進行解密得到SKQR5-1,采用密碼算法SFq和解密密鑰JYq對SFqSKQR5-2得到SKQR5-2;合并SKQR5-1 和SKQR5-2得到收款確認碼SKQR5;再由收款確認碼SKQR5運算得到電子錢包身份標識QID5、支付金額FJR5、消費機身份標識SID5、收款應(yīng)答碼SKYD5、光確認碼GQR5、支付隨機碼QRD5。
DM5.1,進行至少以下的對比驗證:
1)對比電子錢包身份標識QID1和從ZF5中運算得到的電子錢包身份標識QID5。
2)對比ZF1生成的支付金額FJR1和從ZF5中運算得到的支付金額FJR5。
3)對比ZF1生成的支付隨機碼QRD1和從ZF5中運算得到的支付隨機碼QRD5。
4)對比ZF3得到的消費機身份標識SID3和從ZF5中運算得到的消費機身份標識SID5。
5)對比ZF3生成的收款應(yīng)答碼SKYD3和從ZF5中運算得到的收款應(yīng)答碼SKYD5。
如果以上有一個對比不一致則退出支付流程,并在顯示模塊上顯示驗證錯誤的提示信息;如果一致就進入DM5.2。
DM5.2,電子錢包把光確認碼GQR5、收款確認碼SKQR5,以可見光信號的形式,由可見光發(fā)射模塊發(fā)送出去。
DM5.3,更新錢包模塊的錢包余額,用操作時間SJ、收款應(yīng)答碼SKYD5、支付金額FJR、消費機身份標識SID5、收款應(yīng)答碼SKYD5生成操作日志,并通過顯示模塊顯示付款成功的提示信息。
DM6,消費機通過可見光接收模塊接收可見光形式的信號,從中提取出光確認碼GQR6、收款確認碼SKQR6,將該操作時間SJ、電子錢包身份標識FID6、支付金額FJR6、支付碼ZFM6、收款碼SKM6寫入收款箱模塊,生成操作日志,并更新收款箱模塊的余額信息,并通過條碼顯示模塊顯示收款成功的提示信息。
(3)在支付流程中,從電子錢包接收消費機發(fā)送的數(shù)據(jù),以及從消費機接收電子錢包發(fā)送的數(shù)據(jù), 都可能在收發(fā)過程中存在無法識別的可能,所以在支付流程中,對于無法識別的數(shù)據(jù),以及因為無法接收數(shù)據(jù)而導致無法識別的情況,裝置都會在一個設(shè)定的等待時間超時后,單方面結(jié)束支付流程。
在支付流程中, 如果在各解密的環(huán)節(jié)無法對待解密數(shù)據(jù)完成解密,都會結(jié)束支付流程。
在支付流程中,從電子錢包向消費機發(fā)送的數(shù)據(jù),以及從消費機向電子錢包發(fā)送的數(shù)據(jù), 可能在收發(fā)過程中存在數(shù)據(jù)的丟失、被篡改、偽造的風險,因此在支付流程中,對每次收到的關(guān)鍵數(shù)據(jù),都假定當前收到的數(shù)據(jù)與支付流程的前面的步驟生成的或者接收到的數(shù)據(jù)不一樣,需要對比驗證,由此保證收發(fā)數(shù)據(jù)的真實、完整。
本發(fā)明以可見光通信技術(shù)和條碼掃描識別技術(shù)兩者相結(jié)合為前提,并利用條碼和其他提示信息的顯示裝置的照明背光,構(gòu)造了一個隱藏信道,并在支付過程中引入了在多密碼算法和多密鑰對數(shù)據(jù)進行密碼運算,以提高支付過程的安全性,從而提出的一種多算法多密鑰的光認證離線支付方法,本發(fā)明把時下最流行的智能手機、平板電腦作為電子錢包的載體,利用其攝像頭、閃光燈、環(huán)境光感知器件等常見配置作為通信工具,實現(xiàn)了一個離線支付方法,解決了線上支付無法脫離網(wǎng)絡(luò)的弊端。
附圖說明
圖1是本發(fā)明方法的結(jié)構(gòu)示意圖。
圖2是本發(fā)明的實施例中裝置的結(jié)構(gòu)圖。
圖中標記:1-電子錢包;2-消費機;3-服務(wù)器; 11-控制模塊;12-輸入模塊;13-顯示模塊;14-數(shù)據(jù)接口;15-條碼掃描模塊;16-錢包模塊;17-可見光發(fā)射模塊;18-錢包光接收模塊;19-密碼處理模塊;21-讀寫控制模塊;22-條碼顯示模塊;23-收銀箱模塊;24-可見光接收模塊;25-鍵盤模塊;26-背光模塊;27-通信模塊;28-密碼協(xié)處理器。
具體實施方式
實施例:
本發(fā)明的一種多算法多密鑰的光認證離線支付方法,具體實施步驟如下:
建立一套多算法多密鑰的光認證離線消費裝置,包括:電子錢包1、消費機2、服務(wù)器3。
電子錢包1,包括:可見光發(fā)射模塊17、條碼掃描模塊15、控制模塊11、錢包模塊16、輸入模塊12、顯示模塊13、數(shù)據(jù)接口14、錢包光接收模塊18、密碼處理模塊19。
可見光發(fā)射模塊17,用于根據(jù)控制模塊11輸入的信息,生成并發(fā)送可見光信號。
條碼掃描模塊15,用于掃描識別條碼,并將識別的結(jié)果輸出給控制模塊11。
控制模塊11,用于:1、將待發(fā)送的信息進行處理,生成數(shù)據(jù)包,并輸出給可見光發(fā)射模塊17,驅(qū)動可見光發(fā)射模塊17發(fā)送可見光信號;2、接收條碼掃描模塊15的掃描結(jié)果輸出,并對掃描結(jié)果進行驗證;3、與錢包模塊16進行消費、充值、余額查詢、操作日志信息的讀寫操作;4、根據(jù)收到的信息和生成的支付信息,生成需要通過可見光發(fā)射模塊17發(fā)送的信息;5、能夠通過數(shù)據(jù)接口14與服務(wù)器3進行數(shù)據(jù)交互;6、接收錢包光接收模塊18的結(jié)果輸出,并予以識別、認證;7、輸入待加密的數(shù)據(jù)到密碼處理模塊19,并接收密碼處理模塊19加密后的數(shù)據(jù)輸出;8、輸入待解密的數(shù)據(jù)到密碼處理模塊19,并接收密碼處理模塊19解密后的數(shù)據(jù)輸出;9、向密碼處理模塊19輸入密碼算法和密鑰的選擇的指令。
錢包模塊16,用于保存包括:用戶賬號信息、錢包余額、消費權(quán)限、查詢密碼、支付密碼、操作日志、生產(chǎn)發(fā)行機構(gòu)在內(nèi)的信息;并可以驗證輸入的密碼是否與錢包密碼模塊內(nèi)保存的密碼一致;該模塊使用手機sim卡實現(xiàn)。
輸入模塊12,用于向控制模塊11輸入支付金額、查詢密碼、支付密碼、操作指令。
顯示模塊13,用于顯示支付金額、密碼輸入界面、操作指令以及提示信息。
數(shù)據(jù)接口14,用于提供電子錢包1的聯(lián)網(wǎng)功能,提供與服務(wù)器3連接,并進行數(shù)據(jù)交換、數(shù)據(jù)維護和升級的功能。
錢包光接收模塊18,用于接收背光模塊26發(fā)送的可見光背光信號。
密碼處理模塊19,用于:1、為支付流程中電子錢包1需要傳輸?shù)男畔?,提供不止一種的密碼算法;2、保存提供的密碼算法中,將會使用到的密鑰;3、根據(jù)所選擇的密碼算法和密鑰,對支付流程中電子錢包1需要發(fā)送的信息進行加密,并對電子錢包1接收到的加密信息進行解密。
電子錢包1采用配置了閃光燈、光電感知器件和攝像頭的智能手機實現(xiàn)。
消費機2,包括:可見光接收模塊24、條碼顯示模塊22、讀寫控制模塊21、收銀箱模塊23、鍵盤模塊25、條碼顯示模塊22、通信模塊27、背光模塊26、密碼協(xié)處理器28。
可見光接收模塊24,用于接收可見光信號,并處理還原成對應(yīng)的數(shù)字信號,還原成數(shù)據(jù)包。
條碼顯示模塊22,用于:1、根據(jù)讀寫控制模塊21的輸入信息,生成并顯示出條碼;2、顯示交易金額、密碼輸入界面、操作指令以及提示信息。
讀寫控制模塊21,用于:1、接收可見光接收模塊24的輸出,并予以認證;2、將待發(fā)送的信息進行處理,輸出給條碼顯示模塊22;3、與收銀箱模塊23進行消費、充值、余額查詢、操作日志信息的讀寫操作;4、提供通信接口,通過通信模塊27與服務(wù)器3進行信息的上傳和下載;5、將需要通過光信號形式發(fā)送的信息進行處理,生成數(shù)據(jù)包,并輸出給背光模塊26,驅(qū)動背光模塊26發(fā)送可見光信號;6、輸入待加密的數(shù)據(jù)到密碼協(xié)處理器28,并接收密碼協(xié)處理器28加密后的數(shù)據(jù)輸出;7、輸入待解密的數(shù)據(jù)到密碼協(xié)處理器28,并接收密碼協(xié)處理器28解密后的數(shù)據(jù)輸出;8、向密碼協(xié)處理器28輸入密碼算法和密鑰的選擇的指令。
收銀箱模塊23,用于保存包括:操作日志、收款消費權(quán)限、黑名單、收銀余額、操作密碼、有效期、生產(chǎn)發(fā)行機構(gòu)在內(nèi)的信息。
鍵盤模塊25,用于向讀寫控制模塊21輸入交易金額、交易密碼、操作指令。
通信模塊27,用于通過有線或者無線的方式,連接上位機或者接入網(wǎng)絡(luò),從而與服務(wù)器3相連。
背光模塊26,用于為條碼顯示模塊22提供顯示的照明背光,同時利用背光發(fā)送可見光背光信號。
密碼協(xié)處理器28,用于:1、為支付流程中消費機需要傳輸?shù)男畔ⅲ峁┎恢挂环N的密碼算法;2、保存提供的密碼算法中,將會使用到的密鑰;3、根據(jù)所選擇的密碼算法和密鑰,對支付流程中消費機2需要發(fā)送的信息進行加密,并對消費機2接收到的加密信息進行解密。
服務(wù)器3,用于:1、與消費機2通過通信模塊27建立上傳、下載的數(shù)據(jù)連接;2、與電子錢包1通過數(shù)據(jù)接口14建立上傳、下載的數(shù)據(jù)連接;3、提供本離線支付方法的后臺服務(wù)支持;4、提供整個離線支付裝置與金融系統(tǒng)的資金流動的接口;5、為消費機2以及電子錢包1發(fā)放或取消授權(quán),提供包括:密鑰更新、算法更新和升級、使用權(quán)限調(diào)整、有效期調(diào)整、電子錢包充值、消費機繳款、電子錢包1和消費機2公開信息查詢在內(nèi)的服務(wù);6、保存包括:授權(quán)用戶清單、黑名單、操作日志、消費機清單在內(nèi)的信息。
授權(quán)用戶清單,用于保存包括:已經(jīng)授權(quán)可以進行離線支付的電子錢包身份標識、使用權(quán)限、有效期、電子錢包持有者的身份信息。
黑名單,用于保存授權(quán)用戶清單中,因欠費、掛失、有不正當使用記錄而被拒絕支付交易的那部分電子錢包的身份標識信息。
支付接口,用于提供整個離線支付裝置與金融系統(tǒng)的資金流動的接口。
操作日志匯總,用于保存包括所有消費機、電子錢包的查詢、充值、消費的操作的時間、支付金額、支付過程數(shù)據(jù)參數(shù)在內(nèi)的信息。
消費機清單,用于保存已經(jīng)授權(quán)可以進行離線支付交易的消費機終端的信息、使用權(quán)限、有效期。
電子錢包的發(fā)行過程包括:由服務(wù)器給用戶發(fā)放一個授權(quán),授權(quán)方式可以是發(fā)放一個授權(quán)實體硬件設(shè)備,也可以是為用戶已有的配備本發(fā)明的設(shè)備提供一個授權(quán)號;并為設(shè)備充值,寫入電子錢包身份標識、使用權(quán)限、有效期、電子錢包的支付密碼和查詢密碼、電子錢包持有者的身份信息。
由電子錢包1向消費機2發(fā)起支付,支付流程包括以下步驟:
DM1,電子錢包1生成一個支付請求碼QQM1,支付請求碼QQM1包括:電子錢包身份標識QID1、支付隨機碼QRD1、支付金額ZFR1,并由可見光發(fā)射模塊17采用可見光信號的方式向消費機2發(fā)送支付請求碼QQM1。
DM2,消費機2通過可見光接收模塊24接收可見光信號形式的支付請求碼QQM2,從中提取出電子錢包身份標識QID2、支付隨機碼QRD2、支付金額ZFR2;消費機生成一個應(yīng)答隨機碼YDR2、一個光隨機碼GRD2;并根據(jù)應(yīng)答隨機碼YDR2,選擇一種密碼算法SFn和一個加密密鑰MYn;再根據(jù)光隨機碼GRD2,選擇密碼算法SFm和一個加密密鑰MYm。
DM2.1,根據(jù)支付請求碼QQM2、應(yīng)答隨機碼YDR2、光隨機碼GRD2,生成一個收款應(yīng)答碼SKYD2,并運算得到收款碼SKM2,收款碼SKM2包括:收款金額SJR2、消費機身份標識SID2、收款應(yīng)答碼SKYD2、支付請求碼QQM2、支付隨機碼QRD2;將收款碼SKM2分成兩個部分SKM2-1和SKM2-2,用密碼算法SFn和一個加密密鑰MYn對SKM2-1進行加密得到SFnSKM2-1,密碼算法SFm和一個加密密鑰MYm對SKM2-2和應(yīng)答隨機碼YDR2進行加密得到SFmSKM2-2。
DM2.2,將SFnSKM2-1和SFmSKM2-2生成條碼,通過條碼顯示模塊22顯示出來;并通過背光模塊26,將光隨機碼GRD2以可見光信號的方式向電子錢包1發(fā)送出去。
DM3,由電子錢包1掃描消費機2的條碼顯示模塊22顯示的條碼得到SFnSKM3-1、 SFmSKM3-2,電子錢包1利用錢包光接收模塊18接收光隨機碼GRD3;并根據(jù)光隨機碼GRD3,確定采用密碼算法SFm和解密密鑰JMm對SFmSKM3-2進行解密得到SKM3-2、應(yīng)答隨機碼YDR3,再根據(jù)應(yīng)答隨機碼YDR3確定選擇密碼算法SFn和一個解密密鑰JMn對SFnSKM3-1進行解密得到SKM3-1。
DM3.1,合并SKM3-1和SKM3-2得到收款碼SKM3;并從收款碼SKM3提取出收款金額SJR3、消費機身份標識SID3、收款應(yīng)答碼SKYD3、支付隨機碼QRD3;并根據(jù)收款應(yīng)答碼SKYD3、應(yīng)答隨機碼YDR3、光隨機碼GRD3,運算得到支付請求碼QQM3、應(yīng)答隨機碼YDR3。
DM3.2,進行以下的對比驗證:
1)DM1中電子錢包1生成的支付請求碼QQM1和DM3中接收并提取得到的支付請求碼QQM3。
2)DM1中電子錢包1生成的支付金額ZFR1和DM3中接收并從收款碼中提取得到的收款金額SJR3。
3)DM1中電子錢包1生成的支付隨機碼QRD1和DM3中接收并從收款碼中提取得到的支付隨機碼QRD3。
如果以上有一個不一致則退出支付流程,并在顯示模塊13上顯示支付請求錯誤的提示信息;如果一致就進入DM3.3。
DM3.3,電子錢包1根據(jù)從收款碼SKM3提取得到的收款金額SJR3、消費機身份標識SID3、收款應(yīng)答碼SKYD3、支付隨機碼QRD3以及收款應(yīng)答碼SKYD3、應(yīng)答隨機碼YDR3、光隨機碼GRD3,運算得到支付確認碼FKQR3,并生成支付碼ZFM3,支付碼ZFM3包括:收款碼SKM3、電子錢包身份標識FID1、支付金額FJR1、支付確認碼FKQR3,再根據(jù)應(yīng)答隨機碼YDR3、光隨機碼GRD3選擇密碼算法SFa和一個加密密鑰MYa對支付碼ZFM3進行加密的到MYaZFM3,再把MYaZFM3以可見光信號的形式,由可見光發(fā)射模塊17發(fā)送出去。
DM4,消費機2通過可見光接收模塊24接收可見光信號形式的信號,得到MYaZFM3,再根據(jù)應(yīng)答隨機碼YDR2、光隨機碼GRD2選擇密碼算法SFb和一個加密密鑰MYb對MYaZFM3進行解密得到支付碼ZFM4,從中提取出收款碼SKM4、電子錢包身份標識QID4、支付金額FJR4、支付確認碼FKQR4,從SKM4提取出收款金額SJR4、消費機身份標識SID4、收款應(yīng)答碼SKYD4、收款金額SJR3、支付隨機碼QRD4;從支付確認碼FKQR4運算得到收款應(yīng)答碼SKYD4、應(yīng)答隨機碼YDR4、光隨機碼GRD4。
DM4.1,進行至少以下的對比驗證:
1)對比DM2運算得到的收款碼SKM2和DM4中提取出的收款碼SKM4。
2)對比DM2中生成的應(yīng)答隨機碼YDR2和DM4中從SKM4提取出的應(yīng)答隨機碼YDR4。
3)對比DM2中生成的光隨機碼GRD2和DM4中從SKM4提取出的光隨機碼GRD4。
4)對比DM2中提取到的電子錢包身份標識QID2和DM4中從ZFM4提取出的電子錢包身份標識QID4。
5)對比DM2中得到的支付金額FJR2、收款金額SJR2和DM4中從ZFM4提取出的收款金額SJR4。
6)對比DM2中得到的支付隨機碼QRD2和DM4中從ZFM4提取出的支付隨機碼QRD4。
如果以上6個對比都分別一致,就進入DM4.2;否則就退出支付流程,并在條碼顯示模塊上顯示驗證出錯的提示信息。
DM4.2,消費機2生成一個光確認碼GQR4,并根據(jù)電子錢包身份標識QID4、支付金額FJR4、消費機身份標識SID4、收款應(yīng)答碼SKYD4、應(yīng)答隨機碼YDR4、光確認碼GQR4、支付隨機碼QRD4,運算得到收款確認碼SKQR4;將收款確認碼SKQR分成兩個部分SKQR4-1和SKQR4-2。
DM4.3,根據(jù)光確認碼GQR4和應(yīng)答隨機碼YDR2,選擇一種密碼算法SFp和一個加密密鑰MYp;再根據(jù)光確認碼GQR4和光隨機碼GRD2,選擇密碼算法SFq和一個加密密鑰MYq;用密碼算法SFp和一個加密密鑰MYp對SKQR4-1進行加密得到SFpSKQR4-1,用密碼算法SFq和一個加密密鑰MYq對SKQR4-2和應(yīng)答隨機碼YDR2進行加密得到SFqSKQR4-2。
DM4.4,消費機2將SFpSKQR4-1和SFqSKQR4-2生成條碼,通過條碼顯示模塊22顯示出來;并通過背光模塊26,將光確認碼GQR4以可見光信號的方式向電子錢包1發(fā)送出去。
DM5,電子錢包1掃描消費機2的條碼顯示模塊22顯示的條碼得到SFpSKQR5-1和SFqSKQR5-2,電子錢包1利用錢包光接收模塊18接收光確認碼GQR5;電子錢包1根據(jù)光確認碼GQR5和應(yīng)答隨機碼YDR3,選擇一種密碼算法SFp和一個解密密鑰JYp;再根據(jù)光確認碼GQR5和光隨機碼GRD3,選擇密碼算法SFq和一個解密密鑰JYq;采用密碼算法SFp和解密密鑰JYp對SFpSKQR5-1進行解密得到SKQR5-1,采用密碼算法SFq和解密密鑰JYq對SFqSKQR5-2得到SKQR5-2;合并SKQR5-1 和SKQR5-2得到收款確認碼SKQR5;再由收款確認碼SKQR5運算得到電子錢包身份標識QID5、支付金額FJR5、消費機身份標識SID5、收款應(yīng)答碼SKYD5、光確認碼GQR5、支付隨機碼QRD5。
DM5.1,進行至少以下的對比驗證:
1)對比電子錢包身份標識QID1和從ZF5中運算得到的電子錢包身份標識QID5。
2)對比ZF1生成的支付金額FJR1和從ZF5中運算得到的支付金額FJR5。
3)對比ZF1生成的支付隨機碼QRD1和從ZF5中運算得到的支付隨機碼QRD5。
4)對比ZF3得到的消費機身份標識SID3和從ZF5中運算得到的消費機身份標識SID5。
5)對比ZF3生成的收款應(yīng)答碼SKYD3和從ZF5中運算得到的收款應(yīng)答碼SKYD5。
如果以上有一個對比不一致則退出支付流程,并在顯示模塊13上顯示驗證錯誤的提示信息;如果一致就進入DM5.2。
DM5.2,電子錢包1把光確認碼GQR5、收款確認碼SKQR5,以可見光信號的形式,由可見光發(fā)射模塊17發(fā)送出去。
DM5.3,更新錢包模塊16的錢包余額,用操作時間SJ、收款應(yīng)答碼SKYD5、支付金額FJR、消費機身份標識SID5、收款應(yīng)答碼SKYD5生成操作日志,并通過顯示模塊顯示付款成功的提示信息。
DM6,消費機2通過可見光接收模塊24接收可見光形式的信號,從中提取出光確認碼GQR6、收款確認碼SKQR6,將該操作時間SJ、電子錢包身份標識FID6、支付金額FJR6、支付碼ZFM6、收款碼SKM6寫入收款箱模塊23,生成操作日志,并更新收款箱模塊23的余額信息,并通過條碼顯示模塊22顯示收款成功的提示信息。
在支付流程中,從電子錢包1接收消費機2發(fā)送的數(shù)據(jù),以及從消費機2接收電子錢包1發(fā)送的數(shù)據(jù), 都可能在收發(fā)過程中存在無法識別的可能,所以在支付流程中,對于無法識別的數(shù)據(jù),以及因為無法接收數(shù)據(jù)而導致無法識別的情況,裝置都會在一個設(shè)定的等待時間超時后,單方面結(jié)束支付流程。