本發(fā)明屬于可見(jiàn)光支付領(lǐng)域,特別涉及一種公鑰體制下的雙介質(zhì)雙認(rèn)證快速離線支付方法。
背景技術(shù):
公鑰密碼體制也被稱為非對(duì)稱密碼體制,是現(xiàn)代密碼學(xué)中一個(gè)重要的分支,在公鑰體制下,提供了公開(kāi)密鑰和私有密鑰,通信雙方加密解密分別采用不同的密鑰進(jìn)行,公鑰密碼體制沒(méi)有密鑰分配的安全性問(wèn)題,該方式廣泛用于電子簽名、數(shù)字證書(shū)等電子認(rèn)證相關(guān)領(lǐng)域,在電子商務(wù)、電子政務(wù)上都得到了應(yīng)用實(shí)踐。
離線支付是一種每次交易都可以脫離網(wǎng)絡(luò)的限制和服務(wù)器的在線核驗(yàn),而只需要消費(fèi)機(jī)和電子錢(qián)包就可以完成的交易支付手段。在支付過(guò)程中,對(duì)收款和付款雙方的身份的真實(shí)、有效、完整性要求就很高,需要在雙方進(jìn)行充分的認(rèn)證才可以得到保證。
“掃碼”是時(shí)下很流行的信息獲取方式,通常是采用智能手機(jī)的攝像頭拍攝條形碼(barcode),并從中識(shí)別出信息?!皰叽a支付”則是在“掃碼”技術(shù)和微信、支付寶等技術(shù)的基礎(chǔ)上發(fā)展起來(lái)的線上支付方式手段。“掃碼支付”的支付手段,就如同傳統(tǒng)的非現(xiàn)金交易手段一樣,都屬于在線交易,原有的磁卡系統(tǒng)就是典型的在線交易系統(tǒng)。然而,這些方法都是離不開(kāi)網(wǎng)絡(luò)的在線支付方式,當(dāng)網(wǎng)絡(luò)、gprs、3g、4g等通訊中斷時(shí),支付就無(wú)法進(jìn)行,因此我們希望有一種能夠?qū)崿F(xiàn)線下交易的支付手段——離線支付,用于解決網(wǎng)絡(luò)通訊中斷時(shí)無(wú)法完成支付的問(wèn)題。
可見(jiàn)光通信(visiblelightcommunication,簡(jiǎn)稱vlc)技術(shù)是利用高頻且人眼無(wú)法感知到的閃爍燈光作為信息載體,在數(shù)據(jù)發(fā)送端用led的高頻閃爍來(lái)攜帶信號(hào),在接收端用高速響應(yīng)的感光元件采集信號(hào),從而實(shí)現(xiàn)無(wú)線通信的方法。
本發(fā)明把vlc技術(shù)和“掃碼識(shí)別”兩個(gè)方式結(jié)合,借助智能手機(jī)、平板電腦這類有l(wèi)ed閃光燈和攝像頭的智能設(shè)備,以兩種信息載體作為介質(zhì),采用公鑰密碼體制進(jìn)行了交易信息的雙向認(rèn)證,提供了一種安全快捷的公鑰體制下的雙介質(zhì)雙認(rèn)證快速離線支付方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種公鑰體制下的雙介質(zhì)雙認(rèn)證快速離線支付方法。
具體步驟為:
(1)建立一套vlc和barcode公鑰體制雙介質(zhì)離線支付裝置,包括:電子錢(qián)包、消費(fèi)機(jī)和服務(wù)器。
電子錢(qián)包,包括:可見(jiàn)光發(fā)射模塊、條碼掃描模塊、控制模塊、錢(qián)包模塊、輸入模塊、顯示模塊、密碼處理模塊和數(shù)據(jù)接口;可見(jiàn)光發(fā)射模塊,用于根據(jù)控制模塊輸入的信息,生成并發(fā)送可見(jiàn)光信號(hào);條碼掃描模塊,用于掃描識(shí)別條碼,并將識(shí)別的結(jié)果輸出給控制模塊;控制模塊,用于:1、將待發(fā)送的信息進(jìn)行處理,生成數(shù)據(jù)包,并輸出給可見(jiàn)光發(fā)射模塊,驅(qū)動(dòng)可見(jiàn)光發(fā)射模塊發(fā)送可見(jiàn)光信號(hào);2、接收條碼掃描模塊的掃描結(jié)果輸出,并對(duì)掃描結(jié)果進(jìn)行驗(yàn)證;3、與錢(qián)包模塊進(jìn)行消費(fèi)、充值、余額查詢、操作日志信息的讀寫(xiě)操作;4、根據(jù)收到的信息和生成的支付信息,生成需要通過(guò)可見(jiàn)光發(fā)射模塊的信息;5、能夠通過(guò)數(shù)據(jù)接口與服務(wù)器進(jìn)行數(shù)據(jù)交互;錢(qián)包模塊,用于保存包括:用戶賬號(hào)信息、錢(qián)包余額、消費(fèi)權(quán)限、查詢密碼、支付密碼、操作日志、生產(chǎn)發(fā)行機(jī)構(gòu)在內(nèi)的信息;并可以驗(yàn)證輸入的密碼是否與錢(qián)包密碼模塊內(nèi)保存的密碼一致;每一條操作日志,對(duì)應(yīng)一項(xiàng)支付金額或者一項(xiàng)充值金額;該模塊能夠使用包括手機(jī)sim卡、nfc在內(nèi)的介質(zhì)作為錢(qián)包模塊的載體;輸入模塊,用于向控制模塊輸入包括支付金額、查詢密碼、支付密碼、操作指令在內(nèi)的信息;顯示模塊,用于顯示支付金額、密碼輸入界面、操作指令以及提示信息;密碼處理模塊,用于保存消費(fèi)機(jī)的公鑰環(huán),電子錢(qián)包自身的私有密鑰,以及對(duì)輸入的信息,根據(jù)模塊內(nèi)置的密碼處理單元,采用公開(kāi)密鑰或者私有密鑰進(jìn)行加密,以及采用公開(kāi)密鑰或者私有密鑰進(jìn)行解密;并輸出加密或者解密后的信息;數(shù)據(jù)接口,用于提供電子錢(qián)包的聯(lián)網(wǎng)功能,提供與服務(wù)器連接并進(jìn)行數(shù)據(jù)交換、數(shù)據(jù)維護(hù)和升級(jí)的功能。
消費(fèi)機(jī),包括:可見(jiàn)光接收模塊、條碼顯示模塊、讀寫(xiě)控制模塊、收銀箱模塊、鍵盤(pán)模塊、顯示器、密碼協(xié)處理器和通信模塊;可見(jiàn)光接收模塊,用于接收可見(jiàn)光信號(hào),并處理還原成對(duì)應(yīng)的數(shù)字信號(hào),還原成數(shù)據(jù)包;條碼顯示模塊,用于根據(jù)讀寫(xiě)控制模塊的輸入信息,生成并顯示出條碼;讀寫(xiě)控制模塊,用于:1、接收可見(jiàn)光接收模塊的輸出,并予以認(rèn)證;2、將待發(fā)送的信息進(jìn)行處理,輸出給條碼顯示模塊;3、與收銀箱模塊進(jìn)行消費(fèi)、充值、余額查詢、操作日志信息的讀寫(xiě)操作;4、提供數(shù)據(jù)接口,通過(guò)通信模塊與服務(wù)器進(jìn)行包括交易信息、電子錢(qián)包信息、消費(fèi)機(jī)信息在內(nèi)的數(shù)據(jù)的上傳和下載;收銀箱模塊,用于保存包括:操作日志、收款消費(fèi)權(quán)限、黑名單、收銀余額、操作密碼、有效期、生產(chǎn)發(fā)行機(jī)構(gòu)在內(nèi)的信息;每一條操作日志,對(duì)應(yīng)一項(xiàng)收款金額;鍵盤(pán)模塊,用于向讀寫(xiě)控制模塊輸入交易金額、交易密碼、操作指令;顯示器,用于顯示交易金額、密碼輸入界面、操作指令以及提示信息;密碼協(xié)處理器,用于:1、保存電子錢(qián)包的公鑰環(huán),消費(fèi)機(jī)自身的私有密鑰;2、對(duì)輸入的信息,根據(jù)密碼協(xié)處理器內(nèi)置的密碼處理單元,采用公開(kāi)密鑰或者私有密鑰進(jìn)行加密,以及采用公開(kāi)密鑰或者私有密鑰進(jìn)行解密;并輸出加密或者解密后的信息;通信模塊,用于通過(guò)有線或者無(wú)線的方式,連接上位機(jī)或者接入網(wǎng)絡(luò),從而與服務(wù)器相連。
服務(wù)器,用于:1、與消費(fèi)機(jī)通過(guò)通信模塊建立上傳、下載的數(shù)據(jù)連接;2、與電子錢(qián)包通過(guò)數(shù)據(jù)接口建立上傳、下載的數(shù)據(jù)連接;3、提供本離線支付方法的后臺(tái)服務(wù)支持;4、提供整個(gè)離線支付裝置與金融系統(tǒng)的資金流動(dòng)的接口;5、為消費(fèi)機(jī)、電子錢(qián)包發(fā)放或取消授權(quán),提供包括:密鑰更新、算法更新和升級(jí)、使用權(quán)限調(diào)整、有效期調(diào)整、電子錢(qián)包充值、消費(fèi)機(jī)繳款在內(nèi)的服務(wù);6、保存包括:授權(quán)用戶清單、黑名單、操作日志匯總、消費(fèi)機(jī)清單在內(nèi)的信息;7、以電子貨幣的形式,保存有本裝置中,服務(wù)器存管的資金;8、保存有本裝置中,所有電子錢(qián)包的可用資金額度數(shù);9、在消費(fèi)機(jī)連接上服務(wù)器時(shí),收繳消費(fèi)機(jī)收取的各個(gè)電子錢(qián)包的資金;10、在電子錢(qián)包連接上服務(wù)器時(shí),核對(duì)電子錢(qián)包內(nèi)的余額和服務(wù)器上保存的該電子錢(qián)包記錄的可用資金數(shù),當(dāng)兩者不一致時(shí),進(jìn)行支付流程仲裁,避免因?yàn)橄M(fèi)機(jī)或電子錢(qián)包的故障、非正常操作、偽造、支付信息篡改造成的損失;11、凍結(jié)黑名單中列出的電子錢(qián)包,以及電子錢(qián)包有故障、非正常操作、偽造、支付信息篡改情況。
授權(quán)用戶清單,用于保存包括:已經(jīng)授權(quán)可以進(jìn)行離線支付的電子錢(qián)包身份標(biāo)識(shí)、使用權(quán)限、有效期、電子錢(qián)包持有者的身份信息、各個(gè)電子錢(qián)包的公開(kāi)密鑰;黑名單,用于保存授權(quán)用戶清單中,因欠費(fèi)、掛失、有不正當(dāng)使用記錄而被拒絕支付交易的那部分用戶信息;支付接口,用于提供整個(gè)離線支付裝置與金融系統(tǒng)的資金流動(dòng)的接口;操作日志匯總,用于保存包括所有消費(fèi)機(jī)、電子錢(qián)包進(jìn)行查詢、充值、消費(fèi)的操作日志在內(nèi)的操作記錄信息;消費(fèi)機(jī)清單,用于保存包括:已經(jīng)授權(quán)可以進(jìn)行離線支付交易的消費(fèi)機(jī)身份標(biāo)識(shí)、使用權(quán)限、有效期、各個(gè)消費(fèi)機(jī)的公開(kāi)密鑰。
服務(wù)器用于給充值消費(fèi)機(jī)發(fā)放權(quán)限,使其具備接受裝置內(nèi)的電子錢(qián)包進(jìn)行支付的功能;服務(wù)器用于給電子錢(qián)包發(fā)放權(quán)限,使其具備向裝置內(nèi)的消費(fèi)機(jī)進(jìn)行支付的功能;由服務(wù)器給用戶發(fā)放一個(gè)授權(quán),授權(quán)方式是發(fā)放一個(gè)授權(quán)實(shí)體硬件設(shè)備,或者是為已有設(shè)備的用戶提供一個(gè)授權(quán)號(hào);并為設(shè)備充值,寫(xiě)入電子錢(qián)包身份標(biāo)識(shí)、使用權(quán)限、有效期、電子錢(qián)包的支付密碼和查詢密碼、電子錢(qián)包持有者的身份信息;消費(fèi)機(jī)和電子錢(qián)包內(nèi)的加密解密采用同一個(gè)公鑰密碼算法;消費(fèi)機(jī)和電子錢(qián)包的發(fā)行和授權(quán),由一個(gè)單位、組織或者一個(gè)聯(lián)合機(jī)構(gòu)負(fù)責(zé)實(shí)施,從而保證:1、消費(fèi)機(jī)上的公鑰環(huán)包含所有電子錢(qián)包的公開(kāi)密鑰;2、每一個(gè)電子錢(qián)包的公鑰環(huán)包含所有消費(fèi)機(jī)的公開(kāi)密鑰;3、每個(gè)消費(fèi)機(jī)都有各自唯一的私有密鑰,每個(gè)電子錢(qián)包都有各自唯一的私有密鑰;4、電子錢(qián)包和消費(fèi)機(jī)都可以在聯(lián)網(wǎng)時(shí),升級(jí)或者擴(kuò)展公鑰環(huán)上的公開(kāi)密鑰;5、電子錢(qián)包和消費(fèi)機(jī)都可以在聯(lián)網(wǎng)時(shí),升級(jí)或者擴(kuò)展本身的私有密鑰。
電子錢(qián)包根據(jù)公鑰密碼算法的加密算法fun(),能夠用其私有密鑰s加密的信息m得到的密文m,同時(shí)能夠由消費(fèi)機(jī)利用公鑰環(huán)上的相對(duì)應(yīng)的該電子錢(qián)包的公開(kāi)密鑰g和公鑰密碼算法的解密算法gun(),解密密文m得到信息m;但消費(fèi)機(jī)不能通過(guò)采用公鑰環(huán)上的任何一個(gè)公開(kāi)密鑰或者其他除電子錢(qián)包的私有密鑰之外的其他密鑰對(duì)同一個(gè)信息m加密而得到電子錢(qián)包用私有密鑰加密得到的密文m。
(2)在步驟(1)建立的vlc和barcode公鑰體制雙介質(zhì)離線支付裝置中,用一個(gè)授權(quán)的電子錢(qián)包向一個(gè)授權(quán)的消費(fèi)機(jī)進(jìn)行支付,支付由電子錢(qián)包主動(dòng)發(fā)起,支付流程處理包括如下:
zd1,在電子錢(qián)包,輸入支付金額和支付密碼,并進(jìn)入zd1.1。
zd1.1,錢(qián)包模塊驗(yàn)證支付密碼是否正確,如果正確則進(jìn)入zd1.2;如果不正確,則退出支付流程,并在顯示模塊上顯示密碼錯(cuò)誤的提示。
zd1.2,電子錢(qián)包查詢錢(qián)包模塊的余額,如果余額充足,則進(jìn)入zd1.3;否則,退出流程,提示余額不足。
zd1.3,電子錢(qián)包生成支付邀請(qǐng)碼yqm1,支付邀請(qǐng)碼yqm1包括:支付隨機(jī)碼zfr1、支付金額zfk1、電子錢(qián)包身份標(biāo)識(shí)qid1;并采用電子錢(qián)包的私有密鑰qs和加密算法fun()對(duì)支付邀請(qǐng)碼yqm1進(jìn)行加密得到密文qsyqm1;再將密文qsyqm1和qid1發(fā)送出去。
zd2,消費(fèi)機(jī)收到密文qsyqm2和qid2,根據(jù)電子錢(qián)包身份標(biāo)識(shí)qid2,選擇該電子錢(qián)包的公有密鑰qs2和解密算法gun()解密密文qsyqm2,如果通過(guò)解密qsyqm2得到支付邀請(qǐng)碼yqm2,并從中提取出支付隨機(jī)碼zfr2、支付金額zfk2、電子錢(qián)包身份標(biāo)識(shí)qid2-1,則解密成功,進(jìn)入zd2.1;如果解密無(wú)法進(jìn)行,表示解密失敗,則退出支付流程,并在顯示器上顯示處理失敗的提示信息。
zd2.1,對(duì)比消費(fèi)機(jī)收到的qid2和解密qsyqm2提取出的電子錢(qián)包身份標(biāo)識(shí)qid2-1,如果一致則進(jìn)入zd2.2;如果不一致,則退出支付流程,并在顯示器上顯示電子錢(qián)包身份標(biāo)識(shí)錯(cuò)誤的提示。
zd2.2,消費(fèi)機(jī)提供兩種操作,可以在使用前設(shè)定好:1、在顯示器上顯示支付金額zfk2,并提供是否同意接收支付的選擇,如果選擇同意就進(jìn)入zd2.3,如果不同意就退出支付;2、不需要確認(rèn)支付金額zfk2,默認(rèn)接收,直接進(jìn)入zd2.3。
zd2.3,消費(fèi)機(jī)生成一個(gè)收款隨機(jī)碼skr2和收款確認(rèn)碼skm2,收款確認(rèn)碼skm2包括:收款隨機(jī)碼skr2、支付邀請(qǐng)碼yqm2、消費(fèi)機(jī)身份標(biāo)識(shí)xid2;由該消費(fèi)機(jī)的私有密鑰xs和加密算法fun(),加密skm2得到密文xsskm2,再由身份標(biāo)識(shí)為qid2的電子錢(qián)包的公開(kāi)密鑰qg加密xsskm2和消費(fèi)機(jī)身份標(biāo)識(shí)xid2,得到密文qgxsskmxid2,再根據(jù)密文qgxsskmxid2生成一個(gè)條碼,顯示在條碼顯示模塊上。
zd3,電子錢(qián)包掃描條碼顯示模塊上的條碼,識(shí)別得到qgxsskmxid3,并進(jìn)入zd3.1。
zd3.1,電子錢(qián)包用其私有密鑰qs和解密算法gun()對(duì)qgxsskmxid3進(jìn)行解密,如果解密得到xsskm3和消費(fèi)機(jī)身份標(biāo)識(shí)xid3;則解密成功,進(jìn)入zd3.2;如果解密無(wú)法進(jìn)行,表示解密失敗,則退出支付流程;由此保證,有且只有發(fā)出支付邀請(qǐng),且身份標(biāo)識(shí)為qid1的電子錢(qián)包,才能進(jìn)入后面的支付流程,避免電子錢(qián)包的偽造或者在支付過(guò)程中,被其他非法的電子錢(qián)包替換。
zd3.2,再根據(jù)身份標(biāo)識(shí)xid3,用電子錢(qián)包里的該消費(fèi)機(jī)的公開(kāi)密鑰xg3對(duì)密文xsskm3進(jìn)行解密,如果解密得到skm3,并能從中提取出收款隨機(jī)碼skr3、支付邀請(qǐng)碼yqm3、消費(fèi)機(jī)身份標(biāo)識(shí)xid3,則解密成功,進(jìn)入zd3.3;如果解密無(wú)法進(jìn)行,表示解密失敗,則退出支付流程;由此保證,有且只有身份標(biāo)識(shí)為xid3的消費(fèi)機(jī),才能對(duì)xsskm3進(jìn)行解密,并能夠進(jìn)入后面的支付流程。
zd3.3,對(duì)比zd1.3中電子錢(qián)包生成的支付邀請(qǐng)碼yqm1和在zd3.2中提取的支付邀請(qǐng)碼yqm3,當(dāng)分別一致時(shí),消費(fèi)機(jī)進(jìn)入zd4,否則提示對(duì)比驗(yàn)證,并退出支付流程。
zd4,電子錢(qián)包更新錢(qián)包模塊的錢(qián)包余額,用操作時(shí)間sj、支付金額zfk1、支付邀請(qǐng)碼yqm3、收款確認(rèn)碼skm3生成操作日志,并通過(guò)顯示模塊顯示付款成功的提示信息。
zd4.1,電子錢(qián)包生成一個(gè)完成支付的確認(rèn)碼qrm4,確認(rèn)碼qrm4包括:收款確認(rèn)碼skm3、支付金額zfk1、支付邀請(qǐng)碼yqm3。
zd4.2,由該電子錢(qián)包的私有密鑰xs和加密算法fun(),加密qrm3得到密文xsqrm3,再使用身份標(biāo)識(shí)為xid2的消費(fèi)機(jī)的公開(kāi)密鑰qg和加密算法fun(),加密xsqrm3和電子錢(qián)包身份標(biāo)識(shí)qid1,得到密文qgxsqrmqid3,再根據(jù)密文qgxsqrmqid3生成一個(gè)可見(jiàn)光通信號(hào),通過(guò)可見(jiàn)光發(fā)射模塊發(fā)送出去。
zd5,消費(fèi)機(jī)收到密文qgxsqrmqid5;由消費(fèi)機(jī)的公開(kāi)密鑰qg和解密算法gun()解密密文qgxsqrmqid5,如果通過(guò)解密qgxsqrmqid5得到xsqrm5和電子錢(qián)包身份標(biāo)識(shí)qid5,則解密成功,進(jìn)入zd5.1;如果解密無(wú)法進(jìn)行,表示解密失敗,則退出支付流程,并在顯示器上顯示處理失敗的提示信息。
zd5.2,根據(jù)電子錢(qián)包身份標(biāo)識(shí)qid5,選擇該電子錢(qián)包的公有密鑰qs5,用解密算法gun()解密密文xsqrm5,如果解密xsqrm5,并從中提取出收款確認(rèn)碼skm5、支付金額zfk5、支付邀請(qǐng)碼yqm5,則解密成功,進(jìn)入zd5.3;如果解密無(wú)法進(jìn)行,表示解密失敗,則退出支付流程,并在顯示器上顯示處理失敗的提示信息。
zd5.3,消費(fèi)機(jī)進(jìn)行如下對(duì)比驗(yàn)證:
1)對(duì)比zd2.3中消費(fèi)機(jī)生成的收款確認(rèn)碼skm2和在zd5.2中收到并解密得到的收款確認(rèn)碼skm5。
2)對(duì)比zd2中消費(fèi)機(jī)從qsyqm2解密得到的支付金額zfk2和在zd5.2中收到并解密得到的支付金額zfk5。
3)對(duì)比zd2中消費(fèi)機(jī)從qsyqm2解密得到的支付邀請(qǐng)碼yqm2和在zd5.2中收到并解密得到的支付邀請(qǐng)碼yqm5。
當(dāng)以上3個(gè)對(duì)比都分別一致時(shí),消費(fèi)機(jī)生成一個(gè)流程成功完成的標(biāo)識(shí),顯示在顯示器上。
消費(fèi)機(jī)更新收款箱模塊的余額,用本次支付的操作時(shí)間ssj、收款確認(rèn)碼skm5、支付邀請(qǐng)碼yqm5生成操作日志,消費(fèi)機(jī)生成一個(gè)流程成功完成的標(biāo)識(shí),顯示在顯示器上。
(3)服務(wù)器給每一臺(tái)消費(fèi)機(jī)設(shè)定一個(gè)有效期,如果超出有效期則無(wú)法使用,無(wú)法完成支付;有效期過(guò)后,要求消費(fèi)機(jī)必須連接服務(wù)器,向服務(wù)器上傳操作日志、收款金額,并再次由服務(wù)器為消費(fèi)機(jī)重新延展有效期。
在支付流程中,從電子錢(qián)包接收消費(fèi)機(jī)發(fā)送的數(shù)據(jù),以及從消費(fèi)機(jī)接收電子錢(qián)包發(fā)送的數(shù)據(jù),都可能在收發(fā)過(guò)程中存在無(wú)法識(shí)別的可能,所以在支付流程中,對(duì)于無(wú)法識(shí)別的數(shù)據(jù),以及因?yàn)闊o(wú)法接收數(shù)據(jù)而導(dǎo)致無(wú)法識(shí)別的情況,裝置都會(huì)在一個(gè)設(shè)定的等待時(shí)間超時(shí)后,單方面結(jié)束支付流程。
在支付流程中,從電子錢(qián)包向消費(fèi)機(jī)發(fā)送的數(shù)據(jù),以及從消費(fèi)機(jī)向電子錢(qián)包發(fā)送的數(shù)據(jù),可能在收發(fā)過(guò)程中存在數(shù)據(jù)的丟失、被篡改、偽造的風(fēng)險(xiǎn),因此在支付流程中,對(duì)每次收到的關(guān)鍵數(shù)據(jù),都假定當(dāng)前收到的數(shù)據(jù)與支付流程的前面的步驟生成的或者接收到的數(shù)據(jù)不一樣,需要對(duì)比驗(yàn)證,由此保證收發(fā)數(shù)據(jù)的真實(shí)、完整。
本發(fā)明是利用可見(jiàn)光通信技術(shù)和條碼掃描識(shí)別技術(shù)兩者相結(jié)合,把智能手機(jī)、平板電腦等設(shè)備,作為電子錢(qián)包的載體,在消費(fèi)機(jī)和電子錢(qián)包之間采用公鑰密碼體制進(jìn)行身份以及交易信息的彼此的驗(yàn)證,有效的提高了該離線支付方法的安全性,交易雙方的不可抵賴性。本發(fā)明解決了線上支付無(wú)法脫離網(wǎng)絡(luò)的弊端,用一個(gè)人們隨身攜帶的設(shè)備實(shí)現(xiàn)了離線支付,讓人們出行更加方便,同時(shí)也一定程度提高了離線支付的安全性。
附圖說(shuō)明
圖1是本發(fā)明方法的結(jié)構(gòu)示意圖。
圖2是本發(fā)明的實(shí)施例中裝置的結(jié)構(gòu)圖。
圖中標(biāo)記:1-電子錢(qián)包;2-消費(fèi)機(jī);3-服務(wù)器;11-控制模塊;12-輸入模塊;13-顯示模塊;14-數(shù)據(jù)接口;15-條碼掃描模塊;16-錢(qián)包模塊;17-可見(jiàn)光發(fā)射模塊;18-密碼處理模塊;21-讀寫(xiě)控制模塊;22-條碼顯示模塊;23-收銀箱模塊;24-可見(jiàn)光接收模塊;25-鍵盤(pán)模塊;26-顯示器;27-通信模塊;28-密碼協(xié)處理器。
具體實(shí)施方式
實(shí)施例:
本發(fā)明的一種公鑰體制下的雙介質(zhì)雙認(rèn)證快速離線支付方法,具體實(shí)施步驟如下:
建立一套vlc和barcode公鑰體制雙介質(zhì)離線支付裝置,包括:電子錢(qián)包1、消費(fèi)機(jī)2、服務(wù)器3。
電子錢(qián)包1,包括:控制模塊11、輸入模塊12、顯示模塊13、數(shù)據(jù)接口14、條碼掃描模塊15、錢(qián)包模塊16、可見(jiàn)光發(fā)射模塊17、密碼處理模塊18。
可見(jiàn)光發(fā)射模塊17,用于根據(jù)控制模塊11輸入的信息,生成并發(fā)送可見(jiàn)光信號(hào)。
條碼掃描模塊15,用于掃描識(shí)別條碼,并將識(shí)別的結(jié)果輸出給控制模塊11。
控制模塊11,用于:1、將待發(fā)送的信息進(jìn)行處理,生成數(shù)據(jù)包,并輸出給可見(jiàn)光發(fā)射模塊17,驅(qū)動(dòng)可見(jiàn)光發(fā)射模塊17發(fā)送可見(jiàn)光信號(hào);2、接收條碼掃描模塊15的掃描結(jié)果輸出,并對(duì)掃描結(jié)果進(jìn)行驗(yàn)證;3、與錢(qián)包模塊16進(jìn)行消費(fèi)、充值、余額查詢、操作日志信息的讀寫(xiě)操作;4、根據(jù)收到的信息和生成的支付信息,生成需要通過(guò)可見(jiàn)光發(fā)射模塊17發(fā)送的信息;5、能夠通過(guò)數(shù)據(jù)接口14與服務(wù)器3進(jìn)行數(shù)據(jù)交互。
錢(qián)包模塊16,用于保存包括:用戶賬號(hào)信息、錢(qián)包余額、消費(fèi)權(quán)限、查詢密碼、支付密碼、操作日志、生產(chǎn)發(fā)行機(jī)構(gòu)在內(nèi)的信息;并可以驗(yàn)證輸入的密碼是否與錢(qián)包密碼模塊內(nèi)保存的密碼一致;該模塊使用手機(jī)sim卡實(shí)現(xiàn)。
輸入模塊12,用于向控制模塊11輸入支付金額、查詢密碼、支付密碼、操作指令。
顯示模塊13,用于顯示支付金額、密碼輸入界面、操作指令以及提示信息。
密碼處理模塊18,用于保存消費(fèi)機(jī)的公鑰環(huán),電子錢(qián)包自身的私有密鑰,以及對(duì)輸入的信息,根據(jù)模塊內(nèi)置的密碼處理單元,采用公開(kāi)密鑰或者私有密鑰進(jìn)行加密,以及采用公開(kāi)密鑰或者私有密鑰進(jìn)行解密;并輸出加密或者解密后的信息。
數(shù)據(jù)接口14,用于提供電子錢(qián)包1的聯(lián)網(wǎng)功能,提供與服務(wù)器3連接并進(jìn)行數(shù)據(jù)交換、數(shù)據(jù)維護(hù)和升級(jí)的功能。
電子錢(qián)包1采用配置了閃光燈和攝像頭的智能手機(jī)實(shí)現(xiàn)。
消費(fèi)機(jī)2,包括:可見(jiàn)光接收模塊24、條碼顯示模塊22、讀寫(xiě)控制模塊21、收銀箱模塊23、鍵盤(pán)模塊25、顯示器26、通信模塊27、密碼協(xié)處理器28。
可見(jiàn)光接收模塊24,用于接收可見(jiàn)光信號(hào),并處理還原成對(duì)應(yīng)的數(shù)字信號(hào),還原成數(shù)據(jù)包。
條碼顯示模塊22,用于根據(jù)讀寫(xiě)控制模塊21的輸入信息,生成并顯示出條碼。
讀寫(xiě)控制模塊21,用于:1、接收可見(jiàn)光接收模塊24的輸出,并予以認(rèn)證;2、將待發(fā)送的信息進(jìn)行處理,輸出給條碼顯示模塊22;3、與收銀箱模塊23進(jìn)行消費(fèi)、充值、余額查詢、操作日志信息的讀寫(xiě)操作;4、提供通信接口,通過(guò)通信模塊27與服務(wù)器3進(jìn)行交易信息、用戶信息的上傳和下載。
收銀箱模塊23,用于保存包括:操作日志、收款消費(fèi)權(quán)限、黑名單、收銀余額、操作密碼、有效期、生產(chǎn)發(fā)行機(jī)構(gòu)在內(nèi)的信息。
鍵盤(pán)模塊25,用于向讀寫(xiě)控制模塊21輸入交易金額、交易密碼、操作指令。
顯示器26,用于顯示交易金額、密碼輸入界面、操作指令以及提示信息。
密碼協(xié)處理器,用于保存電子錢(qián)包的公鑰環(huán),消費(fèi)機(jī)自身的私有密鑰,以及對(duì)輸入的信息,根據(jù)密碼協(xié)處理器內(nèi)置的密碼處理單元,采用公開(kāi)密鑰或者私有密鑰進(jìn)行加密,以及采用公開(kāi)密鑰或者私有密鑰進(jìn)行解密;并輸出加密或者解密后的信息。
通信模塊27,用于通過(guò)有線或者無(wú)線的方式,連接上位機(jī)或者接入網(wǎng)絡(luò),從而與服務(wù)器相連。
服務(wù)器3,用于:1、與消費(fèi)機(jī)2通過(guò)通信模塊27建立上傳、下載的數(shù)據(jù)連接;2、與電子錢(qián)包1通過(guò)數(shù)據(jù)接口14建立上傳、下載的數(shù)據(jù)連接;3、提供本離線支付方法的后臺(tái)服務(wù)支持;4、提供整個(gè)離線支付裝置與金融系統(tǒng)的資金流動(dòng)的接口;5、為消費(fèi)機(jī)2、電子錢(qián)包1發(fā)放或取消授權(quán),提供包括:密鑰更新、算法更新和升級(jí)、使用權(quán)限調(diào)整、有效期調(diào)整、電子錢(qián)包充值、消費(fèi)機(jī)繳款在內(nèi)的服務(wù);6、保存包括:授權(quán)用戶清單、黑名單、操作日志匯總、消費(fèi)機(jī)清單在內(nèi)的信息。
授權(quán)用戶清單,用于保存包括:已經(jīng)授權(quán)可以進(jìn)行離線支付的電子錢(qián)包身份標(biāo)識(shí)、使用權(quán)限、有效期、電子錢(qián)包持有者的身份信息、各個(gè)電子錢(qián)包的公開(kāi)密鑰。
黑名單,用于保存授權(quán)用戶清單中,因欠費(fèi)、掛失、有不正當(dāng)使用記錄而被拒絕支付交易的那部分用戶信息。
支付接口,用于提供整個(gè)離線支付裝置與金融系統(tǒng)的資金流動(dòng)的接口。
操作日志匯總,用于保存包括所有消費(fèi)機(jī)、電子錢(qián)包的查詢、充值、消費(fèi)的操作的時(shí)間、支付金額、支付過(guò)程數(shù)據(jù)參數(shù)在內(nèi)的信息。
消費(fèi)機(jī)清單,用于保存包括:已經(jīng)授權(quán)可以進(jìn)行離線支付交易的消費(fèi)機(jī)身份標(biāo)識(shí)、使用權(quán)限、有效期、各個(gè)消費(fèi)機(jī)的公開(kāi)密鑰。
一組服務(wù)器3、不少于一個(gè)消費(fèi)機(jī)2、不少于一個(gè)電子錢(qián)包1,共同組成一個(gè)完整的離線支付裝置系統(tǒng);服務(wù)器3可以給包括本發(fā)明中消費(fèi)機(jī)2的模塊及其功能的設(shè)備發(fā)放權(quán)限,使其可以具備接受裝置內(nèi)的電子錢(qián)包1進(jìn)行支付的功能;服務(wù)器3可以給包括本發(fā)明中電子錢(qián)包1的模塊以及功能的設(shè)備發(fā)放權(quán)限,使其可以具備向裝置內(nèi)的消費(fèi)機(jī)2進(jìn)行支付的功能。
電子錢(qián)包1的發(fā)行過(guò)程包括:由服務(wù)器3給用戶發(fā)放一個(gè)授權(quán),授權(quán)方式可以是發(fā)放一個(gè)授權(quán)實(shí)體硬件設(shè)備,也可以是為用戶已有的配備本發(fā)明的設(shè)備提供一個(gè)授權(quán)號(hào);并為設(shè)備充值,寫(xiě)入電子錢(qián)包身份標(biāo)識(shí)、使用權(quán)限、有效期、電子錢(qián)包的支付密碼和查詢密碼、電子錢(qián)包持有者的身份信息。
消費(fèi)機(jī)2和電子錢(qián)包1的發(fā)行和授權(quán),由一個(gè)單位負(fù)責(zé)實(shí)施,從而保證:1、所有經(jīng)過(guò)授權(quán)的消費(fèi)機(jī)上的公鑰環(huán)包含所有經(jīng)過(guò)授權(quán)的電子錢(qián)包的公開(kāi)密鑰;2、所有經(jīng)過(guò)授權(quán)的電子錢(qián)包的公鑰環(huán)包含所有經(jīng)過(guò)授權(quán)的消費(fèi)機(jī)的公開(kāi)密鑰;3、每個(gè)消費(fèi)機(jī)都有各自唯一的私有密鑰,每個(gè)電子錢(qián)包都有各自唯一的私有密鑰;4、所有經(jīng)過(guò)授權(quán)的電子錢(qián)包和消費(fèi)機(jī)都可以在聯(lián)網(wǎng)時(shí),升級(jí)或者擴(kuò)展公鑰環(huán)上的公開(kāi)密鑰;5、電子錢(qián)包1和消費(fèi)機(jī)2都可以在聯(lián)網(wǎng)時(shí),升級(jí)或者擴(kuò)展本身的私有密鑰。
任何一個(gè)電子錢(qián)包根據(jù)公鑰密碼算法的加密算法fun(),都可以用其私有密鑰s加密的信息m得到的密文m,同時(shí)可以由消費(fèi)機(jī)利用公鑰環(huán)上的相對(duì)應(yīng)的該電子錢(qián)包的公開(kāi)密鑰g和公鑰密碼算法的解密算法gun(),解密密文m得到信息m;但消費(fèi)機(jī)不能通過(guò)采用公鑰環(huán)上的任何一個(gè)公開(kāi)密鑰或者其他除電子錢(qián)包的私有密鑰之外的其他密鑰對(duì)同一個(gè)信息m加密而得到電子錢(qián)包用私有密鑰加密得到的密文m。
在本實(shí)施例中,用一個(gè)授權(quán)的電子錢(qián)包1向一個(gè)授權(quán)的消費(fèi)機(jī)2進(jìn)行支付,支付由電子錢(qián)包1主動(dòng)發(fā)起,支付流程處理包括如下:
zd1,在電子錢(qián)包1,輸入支付金額和支付密碼,并進(jìn)入zd1.1。
zd1.1,錢(qián)包模塊16驗(yàn)證支付密碼是否正確,如果正確則進(jìn)入zd1.2;如果不正確,則退出支付流程,并在顯示模塊13上顯示密碼錯(cuò)誤的提示。
zd1.2,電子錢(qián)包1查詢錢(qián)包模塊16的余額,如果余額充足,則進(jìn)入zd1.3;否則,退出流程,提示余額不足。
zd1.3,電子錢(qián)包1生成支付邀請(qǐng)碼yqm1,支付邀請(qǐng)碼yqm1包括:支付隨機(jī)碼zfr1、支付金額zfk1、電子錢(qián)包身份標(biāo)識(shí)qid1;并采用電子錢(qián)包私有密鑰qs和加密算法fun()對(duì)支付邀請(qǐng)碼yqm1進(jìn)行加密得到密文qsyqm1;再將密文qsyqm1和qid1發(fā)送出去。
zd2,消費(fèi)機(jī)2收到密文qsyqm2和qid2,根據(jù)電子錢(qián)包身份標(biāo)識(shí)qid2,選擇該電子錢(qián)包公有密鑰qs2和解密算法gun()解密密文qsyqm2,如果通過(guò)解密qsyqm2得到支付邀請(qǐng)碼yqm2,并從中提取出支付隨機(jī)碼zfr2、支付金額zfk2、電子錢(qián)包身份標(biāo)識(shí)qid2-1,則解密成功,進(jìn)入zd2.1;如果解密無(wú)法進(jìn)行,表示解密失敗,則退出支付流程,并在顯示器26上顯示處理失敗的提示信息。
zd2.1,對(duì)比消費(fèi)機(jī)2收到的qid2和解密qsyqm2提取出的電子錢(qián)包身份標(biāo)識(shí)qid2-1,如果一致則進(jìn)入zd2.2;如果不一致,則退出支付流程,并在顯示器26上顯示電子錢(qián)包身份標(biāo)識(shí)錯(cuò)誤的提示。
zd2.2,消費(fèi)機(jī)2提供兩種操作,可以在使用前設(shè)定好:1、在顯示器26上顯示支付金額zfk2,并提供是否同意接收支付的選擇,如果選擇同意就進(jìn)入zd2.3,如果不同意就退出支付;2、不需要確認(rèn)支付金額zfk2,默認(rèn)接收,直接進(jìn)入zd2.3。
zd2.3,消費(fèi)機(jī)2生成一個(gè)收款隨機(jī)碼skr2和收款確認(rèn)碼skm2,收款確認(rèn)碼skm2包括:收款隨機(jī)碼skr2、支付邀請(qǐng)碼yqm2、消費(fèi)機(jī)身份標(biāo)識(shí)xid2;由該消費(fèi)機(jī)的私有密鑰xs和加密算法fun(),加密skm2得到密文xsskm2,再由身份標(biāo)識(shí)為qid2的電子錢(qián)包的公開(kāi)密鑰qg加密xsskm2和消費(fèi)機(jī)身份標(biāo)識(shí)xid2,得到密文qgxsskmxid2,再根據(jù)密文qgxsskmxid2生成一個(gè)條碼,顯示在顯示器26上。
zd3,電子錢(qián)包1掃描顯示器26上的條碼,識(shí)別得到qgxsskmxid3,并進(jìn)入zd3.1。
zd3.1,電子錢(qián)包1用其私有密鑰qs和解密算法gun()對(duì)qgxsskmxid3進(jìn)行解密,如果解密得到xsskm3和消費(fèi)機(jī)身份標(biāo)識(shí)xid3;則解密成功,進(jìn)入zd3.2;如果解密無(wú)法進(jìn)行,表示解密失敗,則退出支付流程;由此保證,有且只有發(fā)出支付邀請(qǐng),且身份標(biāo)識(shí)為qid1的電子錢(qián)包,才能進(jìn)入后面的支付流程,避免電子錢(qián)包的偽造或者在支付過(guò)程中,被其他非法的電子錢(qián)包替換。
zd3.2,再根據(jù)身份標(biāo)識(shí)xid3,用電子錢(qián)包里的該消費(fèi)機(jī)的公開(kāi)密鑰xg3對(duì)密文xsskm3進(jìn)行解密,如果解密得到skm3,并能從中提取出收款隨機(jī)碼skr3、支付邀請(qǐng)碼yqm3、消費(fèi)機(jī)身份標(biāo)識(shí)xid3,則解密成功,進(jìn)入zd3.3;如果解密無(wú)法進(jìn)行,表示解密失敗,則退出支付流程;由此保證,有且只有身份標(biāo)識(shí)為xid3的消費(fèi)機(jī),才能對(duì)xsskm3進(jìn)行解密,并能夠進(jìn)入后面的支付流程。
zd3.3,對(duì)比zd1.3中電子錢(qián)包1生成的支付邀請(qǐng)碼yqm1和在zd3.2中提取的支付邀請(qǐng)碼yqm3,當(dāng)分別一致時(shí),消費(fèi)機(jī)進(jìn)入zd4,否則提示對(duì)比驗(yàn)證,并退出支付流程。
zd4,電子錢(qián)包1更新錢(qián)包模塊16的錢(qián)包余額,用操作時(shí)間sj、支付金額zfk1、支付邀請(qǐng)碼yqm3、收款確認(rèn)碼skm3生成操作日志,并通過(guò)顯示模塊顯示付款成功的提示信息。
zd4.1,電子錢(qián)包1生成一個(gè)完成支付的確認(rèn)碼qrm4,確認(rèn)碼qrm4包括:收款確認(rèn)碼skm3、支付金額zfk1、支付邀請(qǐng)碼yqm3。
zd4.2,由該電子錢(qián)包私有密鑰xs和加密算法fun(),加密qrm3得到密文xsqrm3,再使用身份標(biāo)識(shí)為xid2的消費(fèi)機(jī)的公開(kāi)密鑰qg和加密算法fun(),加密xsqrm3和電子錢(qián)包身份標(biāo)識(shí)qid1,得到密文qgxsqrmqid3,再根據(jù)密文qgxsqrmqid3生成一個(gè)可見(jiàn)光通信號(hào),通過(guò)可見(jiàn)光發(fā)射模塊17發(fā)送出去。
zd5,消費(fèi)機(jī)2收到密文qgxsqrmqid5;由消費(fèi)機(jī)公開(kāi)密鑰qg和解密算法gun()解密密文qgxsqrmqid5,如果通過(guò)解密qgxsqrmqid5得到xsqrm5和電子錢(qián)包身份標(biāo)識(shí)qid5,則解密成功,進(jìn)入zd5.1;如果解密無(wú)法進(jìn)行,表示解密失敗,則退出支付流程,并在顯示器26上顯示處理失敗的提示信息。
zd5.2,根據(jù)電子錢(qián)包身份標(biāo)識(shí)qid5,選擇該電子錢(qián)包的公有密鑰qs5,用解密算法gun()解密密文xsqrm5,如果解密xsqrm5,并從中提取出收款確認(rèn)碼skm5、支付金額zfk5、支付邀請(qǐng)碼yqm5,則解密成功,進(jìn)入zd5.3;如果解密無(wú)法進(jìn)行,表示解密失敗,則退出支付流程,并在顯示器26上顯示處理失敗的提示信息。
zd5.3,消費(fèi)機(jī)2進(jìn)行如下對(duì)比驗(yàn)證:
1)對(duì)比zd2.3中消費(fèi)機(jī)2生成的收款確認(rèn)碼skm2和在zd5.2中收到并解密得到的收款確認(rèn)碼skm5。
2)對(duì)比zd2中消費(fèi)機(jī)2從qsyqm2解密得到的支付金額zfk2和在zd5.2中收到并解密得到的支付金額zfk5。
3)對(duì)比zd2中消費(fèi)機(jī)2從qsyqm2解密得到的支付邀請(qǐng)碼yqm2和在zd5.2中收到并解密得到的支付邀請(qǐng)碼yqm5。
當(dāng)以上3個(gè)對(duì)比都分別一致時(shí),消費(fèi)機(jī)2生成一個(gè)流程成功完成的標(biāo)識(shí),顯示在顯示器26上。
消費(fèi)機(jī)2更新收款箱模塊23的余額,用本次支付的操作時(shí)間ssj、收款確認(rèn)碼skm5、支付邀請(qǐng)碼yqm5生成操作日志,消費(fèi)機(jī)2生成一個(gè)流程成功完成的標(biāo)識(shí),顯示在顯示器26上。
在支付流程中,從電子錢(qián)包1接收消費(fèi)機(jī)2發(fā)送的數(shù)據(jù),以及從消費(fèi)機(jī)2接收電子錢(qián)包1發(fā)送的數(shù)據(jù),都可能在收發(fā)過(guò)程中存在無(wú)法識(shí)別的可能,在支付流程中,對(duì)于無(wú)法識(shí)別的數(shù)據(jù),以及因?yàn)闊o(wú)法接收數(shù)據(jù)而導(dǎo)致無(wú)法識(shí)別的情況,裝置都會(huì)在一個(gè)設(shè)定的等待時(shí)間超時(shí)后,單方面結(jié)束支付流程。