1.一种带隐藏消息摘要的光认证离线支付方法,其特征在于具体步骤为:
(1)建立一套带隐藏信道的光认证快速离线消费装置,包括:电子钱包、消费机和服务器;
电子钱包,包括:可见光发射模块、条码扫描模块、控制模块、钱包模块、输入模块、显示模块、数据接口和钱包光接收模块;可见光发射模块,用于根据控制模块输入的信息,生成并发送可见光信号;条码扫描模块,用于扫描识别条码,并将识别的结果输出给控制模块;
控制模块,用于:1、将待发送的信息进行处理,生成数据包,并输出给可见光发射模块,驱动可见光发射模块发送可见光信号;2、接收条码扫描模块的扫描结果输出,并对扫描结果进行验证;3、接收钱包光接收模块的结果输出,并予以识别、认证;4、根据收到的信息和生成的支付信息,生成需要通过可见光发射模块的信息;5、与钱包模块进行消费、充值、余额查询、操作日志信息的读写操作;6、能够通过数据接口与服务器进行数据交互;钱包模块,用于保存包括:用户账号信息、钱包余额、消费权限、查询密码、支付密码、操作日志、生产发行机构在内的信息;并能够验证输入的密码是否与钱包密码模块内保存的密码一致;输入模块,用于向控制模块输入包括支付金额、查询密码、支付密码、操作指令在内的信息;显示模块,用于显示支付金额、密码输入界面、操作指令以及提示信息;数据接口,用于提供电子钱包的联网功能,提供与服务器连接并进行数据交换、数据维护和升级的功能;钱包光接收模块,用于接收背光模块发送的可见光背光信号;
消费机,包括:可见光接收模块、条码显示模块、读写控制模块、收银箱模块、键盘模块、通信模块和背光模块;可见光接收模块,用于接收可见光信号,并处理还原成对应的数字信号,还原成数据包;条码显示模块,用于:1、根据读写控制模块的输入信息,生成并显示出条码;2、显示交易金额、密码输入界面、操作指令以及提示信息;读写控制模块,用于:1、接收可见光接收模块的输出,并予以识别、认证;2、将待发送的信息进行处理,输出给条码显示模块;3、将需要通过光信号形式发送的信息进行处理,生成数据包,并输出给背光模块,驱动背光模块发送可见光信号;4、与收银箱模块进行消费、充值、余额查询、操作日志信息的读写操作;5、提供数据接口,通过通信模块与服务器进行信息的上传和下载;收银箱模块,用于保存包括:操作日志、收款消费权限、黑名单、收银余额、操作密码、有效期、生产发行机构在内的信息;键盘模块,用于向读写控制模块输入交易金额、交易密码、操作指令;通信模块,用于通过有线或者无线的方式,连接上位机或者接入网络,从而与服务器相连;背光模块,用于为条码显示模块提供显示的照明背光,同时利用背光发送可见光背光信号;
服务器,用于:1、与消费机通过通信模块建立上传、下载的数据连接;2、与电子钱包通过数据接口建立上传、下载的数据连接;3、提供本离线支付方法的后台服务支持;4、提供整个离线支付装置与金融系统的资金流动的接口;5、为消费机、电子钱包发放或取消授权,提供包括:密钥更新、算法更新和升级、使用权限调整、有效期调整、电子钱包充值、消费机缴款、电子钱包和消费机公开信息查询在内的服务;6、保存包括:授权用户清单、黑名单、操作日志汇总、消费机清单在内的信息;
授权用户清单,用于保存包括:已经授权可以进行离线支付的电子钱包的身份标识、使用权限、有效期、电子钱包持有者的身份信息;黑名单,用于保存授权用户清单中,因欠费、挂失、有不正当使用记录而被拒绝支付交易的那部分电子钱包的身份标识信息;支付接口,用于提供整个离线支付装置与金融系统的资金流动的接口;操作日志汇总,用于保存包括所有消费机、电子钱包的查询、充值、消费的操作的时间、支付金额、支付过程数据参数在内的信息;消费机清单,用于保存包括:已经授权可以进行离线支付交易的消费机的身份标识、使用权限、有效期、消费机持有者的身份信息;服务器用于给包括上述消费机的模块及其功能的设备发放权限,使其具备接受装置内的电子钱包进行支付的功能;服务器用于给包括上述电子钱包的模块以及功能的设备发放权限,使其具备向装置内的消费机进行支付的功能;同时由服务器给用户发放一个授权,授权方式是发放一个授权实体硬件设备,或者是为已有设备的用户提供一个授权号;并为设备充值,写入电子钱包身份标识、使用权限、有效期、电子钱包的支付密码和查询密码、电子钱包持有者的身份信息;
(2)在步骤(1)建立的带隐藏信道的光认证快速离线消费装置中,由电子钱包向消费机发起支付,支付流程包括以下步骤:ZF1,电子钱包生成一个支付请求码QQM1,支付请求码QQM1包括:电子钱包身份标识QID1、支付随机码QRD1、支付金额ZFR1,并由可见光发射模块采用可见光信号的方式向消费机发送支付请求码QQM1;
ZF2,消费机通过可见光接收模块接收可见光信号形式的支付请求码QQM2,从中提取出电子钱包身份标识QID2、支付随机码QRD2、支付金额ZFR2;消费机生成一个应答随机码YDR2、一个光随机码GRD2,根据支付请求码QQM2、应答随机码YDR2、光随机码GRD2,运算得到收款应答码SKYD2,并生成收款码SKM2,收款码SKM2包括:收款金额SJR2、消费机身份标识SID2、收款应答码SKYD2、支付请求码QQM2、支付随机码QRD2;
ZF2.1,消费机将收款码SKM2生成条码,通过条码显示模块显示出来;并采用消息摘要算法、应答随机码YDR2和光随机码GRD2将收款码SKM2转为消息摘要zySKM2,通过背光模块,将光随机码GRD2、消息摘要zySKM2以可见光信号的方式向电子钱包发送出去;
ZF3,由电子钱包扫描消费机条码显示模块显示的条码得到收款码SKM3,电子钱包利用钱包光接收模块接收光随机码GRD3、消息摘要zySKM3;从收款码SKM3提取出收款金额SJR3、消费机身份标识SID3、收款应答码SKYD3、支付随机码QRD3;并根据收款应答码SKYD3、应答随机码YDR3、光随机码GRD3,运算得到支付请求码QQM3、应答随机码YDR3;再运用消息摘要算法、应答随机码YDR3、光随机码GRD3,将收款码SKM3转为消息摘要zySKM30;
ZF3.1,进行以下的对比验证:
1) ZF3中电子钱包生成的消息摘要zySKM30和ZF3中接收消息摘要zySKM3;
2)ZF1中电子钱包生成的支付金额ZFR1和ZF3中接收并从收款码中提取得到的收款金额SJR3;
3)ZF1中电子钱包生成的支付随机码QRD1和ZF3中接收并从收款码中提取得到的支付随机码QRD3;
4)ZF1中电子钱包生成的支付请求码QQM1和ZF3中运算得到的支付请求码QQM3;
如果以上有一个不一致则退出支付流程,并在显示模块上显示支付请求错误的提示信息;如果一致就进入ZF3.2;
ZF3.2,电子钱包根据从收款码SKM3提取得到的收款金额SJR3、消费机身份标识SID3、收款应答码SKYD3、支付随机码QRD3以及收款应答码SKYD3、应答随机码YDR3、光随机码GRD3,运算得到支付确认码FKQR3,并生成支付码ZFM3,支付码ZFM3包括:收款码SKM3、电子钱包身份标识FID1、支付金额FJR1、支付确认码FKQR3,再将支付码ZFM3以可见光信号的形式,由可见光发射模块发送出去;
ZF4,消费机通过可见光接收模块接收可见光信号形式的信号,得到支付码ZFM4,从中提取出收款码SKM4、电子钱包身份标识QID4、支付金额FJR4、支付确认码FKQR4,从SKM4提取出收款金额SJR4、消费机身份标识SID4、收款应答码SKYD4、收款金额SJR3、支付随机码QRD4;从支付确认码FKQR4运算得到收款应答码SKYD4、应答随机码YDR4、光随机码GRD4;
ZF4.1,进行至少以下的对比验证:
1)对比ZF2运算得到的收款应答码SKM2和ZF4中提取出的收款码SKM4;
2)对比ZF2中生成的应答随机码YDR4和ZF4中从SKM4提取出的应答随机码YDR4;
3)对比ZF2中生成的光随机码GRD2和ZF4中从SKM4提取出的光随机码GRD4;
4)对比ZF2中提取到的电子钱包身份标识QID2和ZF4中从ZFM4提取出的电子钱包身份标识QID4;
5)对比ZF2中得到的支付金额FJR2、收款金额SJR2和ZF4中从ZFM4提取出的收款金额SJR4;
6)对比ZF2中得到的支付随机码QRD2和ZF4中从ZFM4提取出的支付随机码QRD4;
如果以上6个对比都分别一致,就进入ZF4.2;否则就退出支付流程,并在条码显示模块上显示验证出错的提示信息;
ZF4.2,消费机生成一个光确认码GQR4,并根据电子钱包身份标识QID4、支付金额FJR4、消费机身份标识SID4、收款应答码SKYD4、应答随机码YDR4、光确认码GQR4、支付随机码QRD4,运算得到收款确认码SKQR4;并采用消息摘要算法、应答随机码YDR4和光确认码GQR4将收款确认码SKQR4转为消息摘要zySKQR4;
ZF4.3,消费机将收款确认码SKQR4生成条码,通过条码显示模块显示出来;并通过背光模块,将光确认码GQR4、消息摘要zySKQR4以可见光信号的方式向电子钱包发送出去;
ZF5,电子钱包扫描消费机条码显示模块显示的条码得到收款确认码SKQR5,电子钱包利用钱包光接收模块接收光确认码GQR5、消息摘要zySKQR5;根据光确认码GQR5、收款确认码SKQR5,运算得到电子钱包身份标识QID5、支付金额FJR5、消费机身份标识SID5、收款应答码SKYD5、应答随机码YDR5、支付随机码QRD5;
再运用消息摘要算法、应答随机码YDR4、光确认码GQR4,将收款确认码SKQR5转为消息摘要zySKQR50;
ZF5.1,进行至少以下的对比验证:
1)对比ZF5中电子钱包生成的消息摘要zySKQR50和ZF5中接收消息摘要zySKQR5;
2)对比ZF1生成的支付金额FJR1和从ZF5中运算得到的支付金额FJR5;
3)对比ZF1生成的支付随机码QRD1和从ZF5中运算得到的支付随机码QRD5;
4)对比ZF3得到的消费机身份标识SID3和从ZF5中运算得到的消费机身份标识SID5;
5)对比ZF3生成的收款应答码SKYD3和从ZF5中运算得到的收款应答码SKYD5;
6)对比ZF3生成的应答随机码YDR3和从ZF5中运算得到的应答随机码YDR5;
7)对比电子钱包身份标识QID1和从ZF5中运算得到的电子钱包身份标识QID5;
如果以上有一个对比不一致则退出支付流程,并在显示模块上显示验证错误的提示信息;如果一致就进入ZF5.2;
ZF5.2,电子钱包根据光确认码GQR5、收款确认码SKQR5,生成收款完成码SKWC5,再将收款完成码SKWC5以可见光信号的形式,由可见光发射模块发送出去;
ZF5.3,更新钱包模块的钱包余额,用操作时间SJ、光确认码GQR5、收款确认码SKQR5、生成的收款完成码SKWC5,生成操作日志,并通过显示模块显示付款成功的提示信息;
ZF6,消费机通过可见光接收模块接收来自电子钱包发送的可见光信号,得到收款完成码SKWC6,并从中得到光确认码GQR6、收款确认码SKQR6,再进入ZF6.1进行验证;
ZF6.1,进行至少以下的对比验证:
1)对比ZF4.2运算得到的收款确认码SKQR4和ZF6中得到的收款确认码SKQR6;
2)对比ZF4.2中生成的光确认码GQR4和ZF6中得到的光确认码GQR6;
如果以上2个对比都分别一致,就进入ZF6.2;否则就退出支付流程,并在条码显示模块上显示验证出错的提示信息,进入ZF6.3;
ZF6.2,将该操作时间SJ、电子钱包身份标识FID7、收款完成码SKWC6写入收款箱模块,生成操作日志,并更新收款箱模块的余额信息,并通过条码显示模块显示收款成功的提示信息;
ZF6.3,将该操作时间SJ、电子钱包身份标识FID7、收款完成码SKWC6写入收款箱模块,生成复核信息,等待消费机连接服务器时上传本次支付的复核信息,由服务器确认本次支付是否有问题;
(3)在支付流程中,从电子钱包接收消费机发送的数据,以及从消费机接收电子钱包发送的数据, 都可能在收发过程中存在无法识别的可能,所以在支付流程中,对于无法识别的数据,以及因为无法接收数据而导致无法识别的情况,装置都会在一个设定的等待时间超时后,单方面结束支付流程;
在支付流程中,从电子钱包向消费机发送的数据,以及从消费机向电子钱包发送的数据, 可能在收发过程中存在数据的丢失、被篡改、伪造的风险,因此在支付流程中,对每次收到的关键数据,都假定当前收到的数据与支付流程的前面的步骤生成的或者接收到的数据不一样,需要对比验证,由此保证收发数据的真实、完整。