一种缩短电子货币消费交易时间的方法

文档序号:6665205阅读:225来源:国知局
专利名称:一种缩短电子货币消费交易时间的方法
技术领域
本发明涉及一种能够有效缩短基于智能卡之类载体的电子货币的消费交易时间的方法,属于金融电子化技术领域。
背景技术
随着电子商务的普遍开展,传统的金融支付方式越来越不能满足要求,在这一背景下,电子钱包成为世界各国开展电子商务活动中的热门话题。它被认为是实现全球电子化交易和因特网交易的一种重要工具。
电子钱包是由智能卡(IC卡)发展而来的,是一种有存储金额的智能卡或者说是内装有电子货币的智能卡。它作为电子货币可以代替现金,可以在正确装配的销售点系统(POS)装置上消费,也可以进行联机消费和网上消费。目前,我国已有多家金融机构开展了基于智能卡的电子钱包业务。中国人民银行修订发布的《中国金融集成电路(IC)卡规范》(简称为PBOC),为利用智能卡开展电子钱包、电子存折等金融业务提供了基本的操作规范。
基于PBOC规范的消费流程包括4个要素1.用户卡认证PSAM(消费安全存取模块)卡 2.PSAM卡认证用户卡;3.成功扣款并更新交易明细记录;4.计算并返回正确的TAC和MAC2。
以正在大力推广的电子不停车收费系统(ETC)为例,整个收费过程参见图1所示。其中,“时间段I”是车载OBU进入RSU收费区域,OBU和RSU相互交互认证、上传给RSU数据,OBU同时选择用户卡、PSAM卡的应用目录等一些消费前的准备工作。由于这些指令的执行时间都比较短,所以这部分对时间的要求不高。“时间段II”是RSU根据OBU上传的数据来判断所扣的金额并传给OBU(约在进入RSU区域内50ms左右后),OBU执行消费的流程,包括3部分用户卡消费初始化(需要真实金额)、PSAM计算MAC1、用户卡消费。其中用户卡消费指令执行时间非常长。对时间段II在某些情况下要求非常短。“时间段III及以后时间”阶段需要处理如下事情OBU上传给RSU数据(如TAC等),对用户卡的消费验证阶段和后续工作(比如写一些记录等内容)。在“时间段III及以后时间”内由于OBU上传给RSU必须需要大约20ms左右的时间,这是必须保证的。在OBU传给RSU数据后,其他的操作都可以继续进行。所以这段时间内对卡片来说没有时间限制。
参见图2所示的消费处理流程,主要包括以下步骤1.用户卡消费初始化主要作用卡片产生过程密钥SK。将原余额、脱机交易序号、透支限额、密钥版本号、算法标识、4字节伪随机数送卡外。过程密钥SK是用自己的消费密钥对随机数加密得到的。
一般情况下用户卡对自己产生的随机数进行分散得到过程密钥SK;将原余额、脱机交易序号、透支限额、密钥版本号、算法标识、4字节伪随机数送卡外。
2.PSAM卡计算MAC1主要作用PSAM卡按照指定的密钥版本号,使用相应的消费主密钥对应用序列号分散得到消费子密钥。产生和用户卡消费初始化过程中相同的过程密钥SK,并计算产生MAC1。
由于SK以及交易时间的不同;所以每次的MAC1是不相同的。
3.用户卡消费主要作用IC卡用过程密钥SK验证MAC1的正确性(用户卡认证PSAM卡)。如果验证通过,则将从余额扣除消费的金额;成功扣款要将卡片脱机交易序号加1,更新交易明细记录。用SK对相应数据计算得到4字节的MAC2用内部密钥的左右各8字节异或运算的结果对相应数据计算得到4字节的TAC。将MAC2和TAC码回送给终端(计算并返回正确的TAC和MAC2)。
TAC(交易认证码)的计算遵循PBOC规范,其中涉及到的金额按实际金额计算。
用户卡用过程密钥SK验证MAC1的正确性。如果验证通过,则将从余额扣除消费的金额;将卡片脱机交易序号加1;更新交易记录。
用SK对相应数据计算得到4字节的MAC2;用内部密钥的左右各8字节异或运算的结果对相应数据计算得到4字节的TAC码。
PSAM卡校验MAC2体现了用PSAM卡认证用户卡,并变更交易序号。
此过程中需要对芯片的擦写次数比较多,对于一般的芯片来说,整个消费指令执行时间一般都要65~80ms左右(不包括消费初始化、计算MAC1以及OBU和卡片的通信时间)。这一时间要求对通常的金融业务来说是完全够用的,但对于一些特殊的应用场合而言,时间就显得明显过长了。
以上述的ETC系统为例,目前的设计大都采用欧洲标准,允许车辆以较高速度通过,通过距离也有一定限制。一般而言,完成整个交易过程中和RSU(Road-Side Unit,路侧单元)相关的时间为120毫秒(ms),其中前40~50ms用于OBU(车载单元)和RSU区域进行相互认证、OBU与卡片相互认证等操作;中间40~50ms留给卡片做消费;最后的20ms用于OBU上传给RSU相关数据(如TAC)等。由于一般的OBU留给卡片的整个消费时间大约为50ms,现有的PBOC金融规范所规定的消费流程远远不能达到要求。另外,为了保证交易的安全性,还必须通过专门的流程对安全性进行认证。这就需要对目前的电子消费流程进行优化,以达到快速消费的要求。

发明内容
本发明的目的在于提供一种能够有效缩短电子货币消费交易时间的方法,该方法提供了适合智能卡之类载体内的电子钱包、电子存折等消费的新流程,能够在确保安全性的同时,显著缩短交易所需的时间。
为实现上述的发明目的,本发明采用下述的技术方案一种缩短电子货币消费交易时间的方法,其特征在于将消费流程分为预消费指令和扣款指令两部分执行;其中,在完成消费初始化之后,首先计算第一报文鉴别代码,执行预消费指令;所述预消费指令在所要求时间内返回交易认证码和第二报文鉴别代码后,对扣款的标记位置位;所述扣款指令根据标记位是否被置位完成包括用户卡扣款、更新交易记录在内的操作。
其中较优地,在执行预消费指令时,将生成的包括交易认证码、第二报文鉴别代码、交易明细、余额、状态信息在内的信息集中拼装成一个数据块,一次性写入EEPROM中定义好的钱包缓冲区中。
所述扣款指令可任选在消费流程执行中或者结束之后的时间段内执行。
所述扣款指令在执行时,首先执行从钱包缓冲区里读出相应数据并存储到相应位置的卡内处理流程,根据卡内处理流程的处理结果返回相应状态码;在消费初始化之前执行选择文件/目录指令前,首先执行卡内处理流程,完成扣款,再做选择文件/目录。
在执行消费初始化指令时,首先执行卡内处理流程,完成扣款,再做消费初始化操作。
所述卡内处理流程的处理流程为(1)判断标志位是否被置位,若被置位则表示需要将缓冲区内容写入钱包及相应文件,若未被置位,则表示不需要写入,直接返回;(2)读取钱包缓冲区内的对应数据;(3)从对应数据中,分别取交易明细、余额、联机交易序号、脱机交易序号、交易认证码和第二报文鉴别代码等数据存入相应的地方;(4)将EEPROM中取TAC标志位置位;所述电子货币消费交易包括但不限于电子钱包或者电子存折交易。
本发明提供了双界面或纯非接触CPU卡或接触CPU卡等载体进行电子货币消费的全新交易流程。利用该方法所提供的流程,既可保证电子货币消费过程中的安全性,又能实现比较快的交易速度。


下面结合附图和具体实施例对本发明作进一步的说明。
图1为标准的PBOC安全交易流程的示意图。
图2为标准的PBOC消费交易流程中,用户卡、终端、PSAM卡三方交互的示意图。
图3为本发明所提供的新的安全交易流程的示意图。
图4为新的消费交易流程中,用户卡、终端、PSAM卡三方交互的示意图。
具体实施例方式
本发明所提供的方法主要针对交易时间要求比较短,还要卡片返回PBOC规范必需的交易认证码(TAC)和MAC(Message AuthenticationCode,报文鉴别代码)2的情况而设计。利用本发明所提供的交易流程,能有效缩短双界面智能卡或纯非接触智能卡或接触CPU卡等类似载体消费指令时间,尤其适用于高速公路不停车收费系统的OBU(On-Board-Unit)方案等。
下面结合图3所示,以高速公路不停车收费系统的OBU方案为例展开详细的说明。
前已述及,缩短智能卡交易时间的关键就在于使“时间段II”满足ETC系统的时间要求。对“时间段II”要求尽可能短的原因可以归结为以下四点(1)由于RSU支持的距离有限,整个交易时间必须在120ms内完成。
(2)OBU得到金额的时间(约在进入RSU区域内50ms左右后)不能太长;(3)用户卡执行消费指令的时间非常长。由于功耗问题,一般芯片实际使用的非接触最大时钟为6.68MHz。另外,在接触式卡片上(15MHz)实际测得写一页EEPROM需要4ms。根据时钟频率换算,非接触卡上写EEPROM耗时约6ms,因此通过修改时钟来缩短时间是不可行的。
(4)“时间段III及以后时间”内必须保证OBU上传给RSU所需要大约20ms左右的时间。
在上述四点原因中,本发明主要针对其中的第三点开展工作,以便有效缩短消费指令的执行时间。为此,在本发明中,把原PBOC规范提供的消费流程分为2部分预消费和扣款指令。预消费在所要求时间内返回PBOC要求的结果(TAC和MAC2),然后对扣款的标记位置位。这既保证了时间,又保证了结果。扣款指令根据被标记位是否被置位完成用户卡扣款、更新交易记录等需要多次写EEPROM等费时的内容,这保证了实际的金额也被扣除,交易记录被更新。此外,本发明也增加了对PBOC规范内“选择文件/目录”指令和“消费初始化”指令的修改,增加判断对标记位是否置位的检测,以确保扣款的完成,从而有效的缩短了消费时间。
具体而言,在预消费指令时,将生成的TAC,MAC2,交易明细,余额,状态信息等信息拼装成一个数据块I,一次性写入EEPROM(可擦除可编程只读存储器)中定义好的电子钱包缓冲区中。然后返回TAC和MAC2。由于预消费指令对所有数据打包并集中写到芯片的某个位置,这样对芯片的擦写次数由原来的8次(3次不带保护写和5次带保护写)减少到2次(1次带保护写和1次不带保护写),从而有效的缩短了指令执行时间。通过预消费指令,生成了消费结果所要求的TAC和MAC2,并为用户卡扣款、更新交易记录做准备(内容均在数据块I里面)。
预消费指令的内部详细处理流程如下(1)计算出MAC1,与接收到的MAC1对比,错误返回6982;(2)计算出MAC2;(3)计算出TAC;(4)写一字节的FF至PBOCKEYTTI(前次交易类型)处,保证断电后不可取交易证明;(5)将和消费相关的必需数据(包括TAC、MAC2、交易明细、余额、联机交易序号、脱机交易序号、DF信息、EF信息、临时开始信息、临时DF开始信息、交易类型、校验值、标志位等共51字节)组成一个数据块I,带保护统一写入EEPROM中定义的钱包缓冲区中;(6)返回TAC+MAC2。
表1为预消费指令中的命令报文示例

表1表1为消费/取现命令报文数据域示例,它包括以下数据元

表2
MAC1的计算方法遵循PBOC规范的规定。由SK对表3数据按MAC计算方法生成MAC1。

表3由于SK以及交易时间的不同;所以每次的MAC1并不相同。预消费命令执行成功的响应报文数据域如表4所示

表4TAC的计算同PBOC规范的规定,其中涉及到的金额按实际金额计算。MAC2的计算也按PBOC规范。
预消费指令处理完毕后,卡片继续执行电子钱包扣款指令。此段时间和以前的消费指令时间相差不多,但是扣款指令的执行可以放在时间段III,因为在时间要求上对这段要求并不严格。扣款指令后的结果是根据数据块I来实现用户卡真正意义上的扣款,并更新交易记录。
扣款指令的内部详细处理流程是这样的首先执行从钱包缓冲区里读出相应数据并存储到相应位置的卡内处理流程,根据卡内处理流程的处理结果返回相应的状态码。
卡内处理流程的具体步骤为(1)判断标志位是否被置位,若被置位则表示需要将缓冲区内容写入钱包及相应文件。若未被置位,则表示不需要写入,直接返回;(2)读取钱包缓冲区内的对应数据;(3)从对应数据中,分别取交易明细、余额、联机交易序号、脱机交易序号、交易认证码和第二报文鉴别代码等数据存入相应的地方;
(4)将EEPROM中取TAC标志位置位;取TAC标志位用来表明是否允许从卡片中取该次交易的TAC码。当置位时,允许取该次交易的TAC码,未置位时,则不允许。
扣款指令的命令报文示例如表5所示。

表5通过预消费和扣款指令实现的消费流程如图4所示。
在本发明中,还采取了一些特殊的错误恢复机制,即使一旦在写钱包时断电仍会完成扣款功能,从而保证交易的完整性。具体而言,预消费指令执行完毕对标记位置位;扣款指令首先判断是否置位,将所有数据归位后再清除标记位。对于执行选择文件/目录指令和消费初始化指令时也是首先检测标记位是否置位,若置位首先执行卡内处理流程完成扣款;然后才执行原来的选择文件/目录指令和消费初始化指令。TAC的正确与否是交由RSU实时验证的。
另外,在选择文件/目录指令、消费初始化指令中都执行卡内处理流程,完成扣款后,再做相应的选择或消费初始化操作。
基于上述错误恢复机制,对于几种可能出错的情况(不局限于所列举的情况),分别进行如下的处理(1)预消费指令中,写FF至PBOCKEYTTI前断电此种情况下,TAC和MAC2不会返回。也无任何数据写入EEPROM中,交易未执行。
(2)预消费指令中,写FF至PBOCKEYTTI后,写数据包至钱包缓冲区前断电此种情况下,TAC和MAC2不会返回。也无任何数据写入EEPROM中,交易未执行。
(3)预消费指令中,写数据包至钱包缓冲区中断电此种情况下,TAC和MAC2不会返回。由于数据包未写入正确,校验值及标记位都会错误。所以相当于交易未成功。
(4)预消费指令中,写数据包成功,返回TAC和MAC2时断电这种情况下,TAC和MAC2不会返回。下次上电应先取交易证明(TAC),此时钱包和记录文件会同时改写。保证了消费的完整性。
(5)预消费指令完成后,电子钱包扣款指令执行前断电此种情况下,TAC和MAC2已经返回,必须要完成钱包的扣款。下次消费上电时,必定会执行选择文件/目录指令。会先完成上次扣款才会执行交易。
(6)电子钱包扣款指令时断电此种情况下,由于写入都为带保护写,数据会恢复。同时标志位没有改变。在下次消费上电时,执行选择文件/目录指令,仍然会先完成上次扣款。
(7)极端情况如果选择文件/目录指令一直不执行。那么在消费初始化时,仍将会把上次消费的数据写入钱包。保证扣款操作的完整性。
应用了新的消费流程以后,对于预消费指令写一字节FF至PBOCKEYTTI(约6MS),带保护写数据包至钱包缓冲区(约12MS),这就有效缩短了时间,可以满足高速交易的要求。
对于电子钱包扣款指令带保护写一字节FF至PBOCKEYTTI(约12MS),带保护写23字节交易明细(约12MS),写8字节TAC和MAC2(约6MS),写8字节余额和脱机序号和联机序号(约6MS),带保护写一字节校验值(约12MS),带保护写循环文件指针2次(约25MS)。这段时间尽管比较长,但这是可以在第三时间段内完成的(时间段III对时间上要求不苛刻)。
由此可见,新的交易流程能有效缩短双界面智能卡或纯非接触智能卡等的消费指令时间,可适用于比如高速公路不停车收费系统的OBU方案等。OBU方案由于要求时间短,一般采用的双界面或纯非接触界面的智能卡的速率为106Kbps。今后为了提高通信速度,还可以进一步将卡片速率调整为106Kbps、212Kbps、424Kbps、847Kbps可选。
以上对本发明所述的缩短电子货币消费交易时间的方法进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。
权利要求
1.一种缩短电子货币消费交易时间的方法,其特征在于将消费流程分为预消费指令和扣款指令两部分执行;其中,在完成消费初始化之后,首先计算第一报文鉴别代码,执行所述预消费指令;所述预消费指令在所要求时间内返回交易认证码和第二报文鉴别代码后,对扣款的标记位置位;所述扣款指令根据标记位是否被置位,完成包括用户卡扣款、更新交易记录在内的操作。
2.如权利要求1所述的缩短电子货币消费交易时间的方法,其特征在于在执行预消费指令时,将生成的包括交易认证码、第二报文鉴别代码、交易明细、余额、状态信息在内的信息集中拼装成一个数据块,一次性写入EEPROM中定义好的钱包缓冲区中。
3.如权利要求1所述的缩短电子货币消费交易时间的方法,其特征在于所述扣款指令可任选在消费流程执行中或者结束之后的时间段内执行。
4.如权利要求3所述的缩短电子货币消费交易时间的方法,其特征在于所述扣款指令在执行时,首先执行从钱包缓冲区里读出相应数据并存储到相应位置的卡内处理流程,根据卡内处理流程的处理结果返回相应状态码。
5.如权利要求1所述的缩短电子货币消费交易时间的方法,其特征在于在消费初始化之前的执行选择文件/目录指令前,首先执行卡内处理流程完成扣款,再做选择文件/目录操作。
6.如权利要求1所述的缩短电子货币消费交易时间的方法,其特征在于在执行消费初始化指令时,首先执行卡内处理流程完成扣款,再做消费初始化操作。
7.如权利要求4~6中任意一项所述的缩短电子货币消费交易时间的方法,其特征在于所述卡内处理流程的处理流程为(1)判断标志位是否被置位,若被置位则表示需要将缓冲区内容写入钱包及相应文件,若未被置位,则表示不需要写入,直接返回;(2)读取钱包缓冲区内的对应数据;(3)从对应数据中,分别取交易明细、余额、联机交易序号、脱机交易序号、交易认证码和第二报文鉴别代码等数据存入相应的地方;(4)将EEPROM中取TAC标志位置位。
8.如权利要求1所述的缩短电子货币消费交易时间的方法,其特征在于所述电子货币消费交易包括但不限于电子钱包或者电子存折交易。
全文摘要
本发明提供了一种能够缩短电子货币消费交易时间的方法。该方法中,将消费流程分为预消费指令和扣款指令两部分执行;其中,在完成消费初始化之后,首先计算第一报文鉴别代码,执行预消费指令;预消费指令在所要求时间内返回交易认证码和第二报文鉴别代码后,对扣款的标记位置位;扣款指令根据被标记位是否被置位完成包括用户卡扣款、更新交易记录在内的操作。利用本发明所提供的电子货币消费交易方法,既可保证智能卡在消费过程中的安全性,又能实现比较快的交易速度。
文档编号G07B15/06GK1963854SQ20061014410
公开日2007年5月16日 申请日期2006年11月27日 优先权日2006年11月27日
发明者席砺莼, 董敏, 臧宏伟, 林立峰, 陈文革, 桂杰 申请人:北京握奇数据系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1