CN103345683B - 基于电子钱包的离线充值方法及系统 - Google Patents

基于电子钱包的离线充值方法及系统 Download PDF

Info

Publication number
CN103345683B
CN103345683B CN201310296966.XA CN201310296966A CN103345683B CN 103345683 B CN103345683 B CN 103345683B CN 201310296966 A CN201310296966 A CN 201310296966A CN 103345683 B CN103345683 B CN 103345683B
Authority
CN
China
Prior art keywords
money
code
charge code
random number
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310296966.XA
Other languages
English (en)
Other versions
CN103345683A (zh
Inventor
徐国栋
袁洁
余斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Tianyu Information Industry Co Ltd
Original Assignee
Wuhan Tianyu Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Tianyu Information Industry Co Ltd filed Critical Wuhan Tianyu Information Industry Co Ltd
Priority to CN201310296966.XA priority Critical patent/CN103345683B/zh
Publication of CN103345683A publication Critical patent/CN103345683A/zh
Application granted granted Critical
Publication of CN103345683B publication Critical patent/CN103345683B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明公开了一种基于电子钱包的离线充值方法及系统,涉及电子钱包充值领域,该方法为:用户将充值金额和EPID发到充值码生成服务器端,充值码生成服务器端获取到用户发来的充值金额及EPID后,将充值金额及EPID进行转换和加密运算,生成字节码方式的充值码;充值码生成服务器端将字节码方式的充值码转换为数字串方式的充值码,以与用户请求一致的形式,将数字串方式的充值码发送给用户;用户将数字串方式的充值码输入电子钱包终端,电子钱包终端解密后,完成终端电子钱包的充值。本发明不需要借助无线POS充值,用户根据电子钱包充值码,在相应的电子钱包上完成离线充值,充值过程不需第三方配合。

Description

基于电子钱包的离线充值方法及系统
技术领域
本发明涉及电子钱包充值领域,特别是涉及一种基于电子钱包的离线充值方法及系统。
背景技术
由于电子钱包在执行充值时,涉及到资金的相互转移,因此用户必须将电子钱包卡或拥有电子钱包功能的终端设备,拿到指定的充值场所,在双方有效认证的前提下,才能进行充值;如此,给用户带来了很大的不便,如果充值点个数稀少,充值点覆盖率低,则用户可能会为了简单的充值而劳累一天的行程,同时也给充值点带来了巨大的负荷,更有可能由于用户量过多,而无法满足众多用户的充值需求,目前只有建立大量的实体充值点,投入大量的人力和物力,才能满足不断增长的客户需求。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种基于电子钱包的离线充值方法及系统,不需要借助无线POS进行刷卡充值,终端用户根据电子钱包充值码,在相应的电子钱包上完成离线充值,充值过程不需要第三方进行配合处理。
本发明提供的基于电子钱包的离线充值方法及系统,包括以下步骤:
S1、用户将充值金额信息和电子钱包唯一标识EPID信息发送到充值码生成服务器端,即电子钱包服务器端;
S2、充值码生成服务器端获取到用户发来的充值金额信息及EPID信息后,将充值金额信息及EPID信息进行一系列的转换和加密运算,生成字节码方式的充值码;
所述充值码由随机效验码和充值信令组成,随机效验码为明文,充值信令为密文,系统采用十六进制数HEX转二-十进制代码BCD码方式,将字节码数据转换为数字串,随机效验码为5位数字码,充值信令为20位数字码;充值信令由充值信令头和MAC消息认证码组成,充值信令头由充值流水号、充值方式、充值金额组成,充值流水号由地址码和地址序列组成,地址码的取数区间为0~2047,地址序列的取值范围为【1,2,4,8,16,32,64,128】;生成充值码时,如果检验到上次对应的地址序列为128,则将对应的地址码数字做加1处理,然后将地址序列置为1;否则,将地址序列的数据左移1位;充值流水号用于避免用户重复充值,充值方式用于描述充值码的生成源方式,充值金额为该充值码对应的金额,单位为元,MAC消息认证码由EPID、充值码流水号、充值方式和充值金额组合计算得到,MAC消息认证码用于避免同一充值码在多个不同电子钱包上进行充值;
充值码生成服务器端随机生成两字节的原始随机数据RS,原始随机数据RS与8字节的EPID进行同或操作,得到同或处理结果:数据A;原始随机数据RS与8字节的EPID进行异或操作,得到异或处理结果:数据B;将数据A、B组合,数据A放高位,数据B放低位,得到16字节长度的随机数最终值RD,该随机数最终值RD用来生成MAC过程密钥及充值过程密钥;
MAC消息认证码的计算流程如下:随机数最终值RD为MAC过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值,充值码生成服务器端将随机数最终值RD、随机数索引RIDX、电子钱包唯一标识EPID、充值信令头信息传递给加密机,加密机根据随机数索引RIDX及预定的加密组版本号获取MAC密钥,然后根据MAC密钥与随机数最终值RD计算得到16字节的MAC消息认证码过程密钥MSEC;加密机采用三重数据加密算法Tri-DES,对MSEC和MAC源数据进行计算,MAC源数据为充值信令头+EPID,最终生成与EPID对应的MAC消息认证码;
对充值码进行加密的流程如下:随机数最终值RD为加密过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值,充值码生成服务器端将随机数最终值RD、随机数索引RIDX、EPID、充值信令头、MAC消息认证码信息传递给加密机,加密机根据随机数索引RIDX及预定的加密组版本号获取圈存密钥,然后根据圈存密钥与随机数最终值RD,计算得到16字节的充值过程密钥RSEC;加密机采用Tri-DES算法,对充值过程密钥RSEC和充值码源数据进行计算,充值码源数据为充值信令头+MAC,最终生成与EPID对应的加密充值码;
S3、充值码生成服务器端将字节码方式的充值码转换为数字串方式的充值码,最终以与用户请求一致的形式,将数字串方式的充值码发送给用户:充值码生成服务器端接收到加密机生成的加密充值码后,调用HEX转BCD方式,生成20位BCD方式的充值信令;将预先生成的原始随机数据RS经过HEX转BCD方式,生成5位BCD方式的随机效验码;
S4、用户将充值码生成服务器端发来的数字串方式的充值码输入电子钱包终端,电子钱包终端解密后,完成终端电子钱包的充值:
电子钱包终端充值时,按序输入BCD方式的随机效验码、BCD方式的充值信令,电子钱包终端接收的是BCD码数据,该输入分为两部分,一部分为充值码类型:5位BCD随机效验码;第二部分为充值信令:20位BCD的充值信令,电子钱包终端采用BCD转HEX方式,将BCD码转换为系统认知的HEX编码方式;
电子钱包终端的解密流程如下:用户输入的充值码的前5位BCD码为解密过程密钥源数据,充值码的前5位BCD码为原始随机数据RS,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值;电子钱包卡根据RIDX获取自己的分散圈存密钥;电子钱包卡根据自己的卡标识Card ID与原始随机数据RS经过同或和异或操作得到16字节的随机数最终值RD;电子钱包卡根据随机数最终值RD和分散圈存密钥获得圈存过程密钥DLK;电子钱包卡将充值码的后20位BCD码转换为HEX后,根据DLK和转换为HEX后的充值码后20位BCD码,采用Tri-DES算法进行计算,获取解密后的充值信令;
电子钱包终端解析出充值信令后,再次确认MAC消息认证码的合法性,并获取MAC过程密钥:电子钱包卡获得随机数最终值RD,根据RIDX获取自己的分散MAC密钥;电子钱包根据分散MAC密钥、充值信令中的充值流水号、充值方式、充值金额以及EPID,通过Tri_DES算法计算,获得MAC消息认证码的数值MAC1;电子钱包卡将数值MAC1与充值信令中的MAC码匹配运算,如果一致,则认为合法,否则认为充值码无效,不允许其离线充值。在充值时,电子钱包终端进一步效验充值信令中的充值流水号,如果该充值流水号与电子钱包卡的系统记录无冲突,则允许充值,否则认为无效操作。
在上述技术方案的基础上,步骤S2中所述MAC消息认证码的计算过程中,在进行Tri_DES操作前,确保MAC源数据为8的整数倍字节。
在上述技术方案的基础上,如果提供的MAC源数据不满足条件,则在高字节的地方,以0x00的方式补齐数据。
在上述技术方案的基础上,步骤S2中所述对充值码进行加密的过程中,在进行Tri_DES操作前,确保充值码源数据为8的整数倍字节。
在上述技术方案的基础上,如果提供的充值码源数据不满足条件,则在高字节的地方,以0x00的方式补齐数据。
本发明还提供一种基于电子钱包的离线充值系统,包括装载有电子钱包卡的电子钱包终端,电子钱包卡是一张含有小型计算单元的卡片,电子钱包终端是装载有电子钱包卡的终端设备,还包括充值码生成服务器端,用户将充值金额信息和电子钱包唯一标识EPID信息发送到充值码生成服务器端,即电子钱包服务器端;充值码生成服务器端获取到用户发来的充值金额信息及EPID信息后,将充值金额信息及EPID信息进行一系列的转换和加密运算,生成字节码方式的充值码;
所述充值码由随机效验码和充值信令组成,随机效验码为明文,充值信令为密文,系统采用十六进制数HEX转二-十进制代码BCD码方式,将字节码数据转换为数字串,随机效验码为5位数字码,充值信令为20位数字码;充值信令由充值信令头和MAC消息认证码组成,充值信令头由充值流水号、充值方式、充值金额组成,充值流水号由地址码和地址序列组成,地址码的取数区间为0~2047,地址序列的取值范围为【1,2,4,8,16,32,64,128】;生成充值码时,如果检验到上次对应的地址序列为128,则将对应的地址码数字做加1处理,然后将地址序列置为1;否则,将地址序列的数据左移1位;充值流水号用于避免用户重复充值,充值方式用于描述充值码的生成源方式,充值金额为该充值码对应的金额,单位为元,MAC消息认证码由EPID、充值码流水号、充值方式和充值金额组合计算得到,MAC消息认证码用于避免同一充值码在多个不同电子钱包上进行充值;
充值码生成服务器端随机生成两字节的原始随机数据RS,原始随机数据RS与8字节的EPID进行同或操作,得到同或处理结果:数据A;原始随机数据RS与8字节的EPID进行异或操作,得到异或处理结果:数据B;将数据A、B组合,数据A放高位,数据B放低位,得到16字节长度的随机数最终值RD,该随机数最终值RD用来生成MAC过程密钥及充值过程密钥;
MAC消息认证码的计算流程如下:随机数最终值RD为MAC过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值,充值码生成服务器端将随机数最终值RD、随机数索引RIDX、电子钱包唯一标识EPID、充值信令头信息传递给加密机,加密机根据随机数索引RIDX及预定的加密组版本号获取MAC密钥,然后根据MAC密钥与随机数最终值RD计算得到16字节的MAC消息认证码过程密钥MSEC;加密机采用三重数据加密算法Tri-DES,对MSEC和MAC源数据进行计算,MAC源数据为充值信令头+EPID,最终生成与EPID对应的MAC消息认证码;
对充值码进行加密的流程如下:随机数最终值RD为加密过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值,充值码生成服务器端将随机数最终值RD、随机数索引RIDX、EPID、充值信令头、MAC消息认证码信息传递给加密机,加密机根据随机数索引RIDX及预定的加密组版本号获取圈存密钥,然后根据圈存密钥与随机数最终值RD,计算得到16字节的充值过程密钥RSEC;加密机采用Tri-DES算法,对充值过程密钥RSEC和充值码源数据进行计算,充值码源数据为充值信令头+MAC,最终生成与EPID对应的加密充值码;
充值码生成服务器端将字节码方式的充值码转换为数字串方式的充值码,最终以与用户请求一致的形式,将数字串方式的充值码发送给用户:充值码生成服务器端接收到加密机生成的加密充值码后,调用HEX转BCD方式,生成20位BCD方式的充值信令;将预先生成的原始随机数据RS经过HEX转BCD方式,生成5位BCD方式的随机效验码;
用户将充值码生成服务器端发来的数字串方式的充值码输入电子钱包终端,电子钱包终端解密后,完成终端电子钱包的充值:
电子钱包终端充值时,按序输入BCD方式的随机效验码、BCD方式的充值信令,电子钱包终端接收的是BCD码数据,该输入分为两部分,一部分为充值码类型:5位BCD随机效验码;第二部分为充值信令:20位BCD的充值信令,电子钱包终端采用BCD转HEX方式,将BCD码转换为系统认知的HEX编码方式;
电子钱包终端的解密流程如下:用户输入的充值码的前5位BCD码为解密过程密钥源数据,充值码的前5位BCD码为原始随机数据RS,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值;电子钱包卡根据RIDX获取自己的分散圈存密钥;电子钱包卡根据自己的卡标识Card ID与原始随机数据RS经过同或和异或操作得到16字节的随机数最终值RD;电子钱包卡根据随机数最终值RD和分散圈存密钥获得圈存过程密钥DLK;电子钱包卡将充值码的后20位BCD码转换为HEX后,根据DLK和转换为HEX后的充值码后20位BCD码,采用Tri-DES算法进行计算,获取解密后的充值信令;
电子钱包终端解析出充值信令后,再次确认MAC消息认证码的合法性,并获取MAC过程密钥:电子钱包卡获得随机数最终值RD,根据RIDX获取自己的分散MAC密钥;电子钱包根据分散MAC密钥、充值信令中的充值流水号、充值方式、充值金额以及EPID,通过Tri_DES算法计算,获得MAC消息认证码的数值MAC1;电子钱包卡将数值MAC1与充值信令中的MAC码匹配运算,如果一致,则认为合法,否则认为充值码无效,不允许其离线充值。在充值时,电子钱包终端进一步效验充值信令中的充值流水号,如果该充值流水号与电子钱包卡的系统记录无冲突,则允许充值,否则认为无效操作。
在上述技术方案的基础上,所述MAC消息认证码的计算过程中,在进行Tri_DES操作前,确保MAC源数据为8的整数倍字节。
在上述技术方案的基础上,如果提供的MAC源数据不满足条件,则在高字节的地方,以0x00的方式补齐数据。
在上述技术方案的基础上,所述对充值码进行加密的过程中,在进行Tri_DES操作前,确保充值码源数据为8的整数倍字节。
在上述技术方案的基础上,如果提供的充值码源数据不满足条件,则在高字节的地方,以0x00的方式补齐数据。
与现有技术相比,本发明的优点如下:
(1)本发明提供的电子钱包离线充值方法及系统,不需要借助无线POS进行刷卡充值;用户能够通过购买充值卡方式、营业厅业务办理方式、个人中心办理方式等多种途径,获取电子钱包充值码,终端用户根据电子钱包充值码,在相应的电子钱包上完成离线充值,充值过程不需要第三方进行配合处理,无需建立大量的实体充值点,能够节省人力和物力。
(2)本发明考虑到电子钱包卡的存储能力有限,在存储充值记录时,采用二维填表方式,每充值成功1次,则将对应的地址空间的标签置为已处理;下次如果有相同的地址信息到来,则能够阻止其充值,避免了一码多充问题。
(3)本发明在终端电子钱包卡上维护用户的充值记录表及相关历史充值信息,以方便日后追溯;此外,充值信息以密文形式保存到卡端,方便用户追溯处理充值码操作失败或其它情况的错误。
附图说明
图1是本发明实施例中基于电子钱包的离线充值方法的流程图。
图2是本发明实施例中充值码的结构框图。
图3是本发明实施例中生成随机数的流程图。
图4是本发明实施例中充值码解密的流程图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
本发明实施例提供一种基于电子钱包的离线充值系统,包括充值码生成服务器端和装载有电子钱包卡的电子钱包终端,电子钱包卡是一张含有小型计算单元的卡片,电子钱包终端是装载有电子钱包卡的终端设备,例如:机顶盒、手机、PDA(Personal Digital Assistant,个人数字处理)等。
参见图1所示,本发明实施例提供一种基于电子钱包的离线充值方法,包括以下步骤:
S1、用户可以通过各种不同的方式,例如:短信方式,电话方式,web方式等,将充值金额信息和EPID(Electronic Purse Identity,电子钱包唯一标识)信息发送到充值码生成服务器端,即电子钱包服务器端;
S2、充值码生成服务器端获取到用户发来的充值金额信息及EPID信息后,将充值金额信息及EPID信息进行一系列的转换和加密运算,生成字节码方式的充值码;
S3、充值码生成服务器端将字节码方式的充值码转换为数字串方式的充值码,最终以与用户请求一致的形式,将数字串方式的充值码发送给用户;考虑到充值码的使用场景为各种不同终端,由于目前大部分终端仅采用数字键盘方式,即只包括0~9几个简单字符,因此充值码采用数字码方式告知用户,使其能在不同终端输入该充值码;
S4、用户将充值码生成服务器端发来的数字串方式的充值码输入电子钱包终端,电子钱包终端解密后,完成终端电子钱包的充值。
参见图2所示,充值码由随机效验码和充值信令组成,随机效验码为明文,充值信令为密文,系统采用HEX(HEXadecimal,十六进制数)转BCD码(Binary-Coded Decimal,二-十进制代码)方式,将字节码数据转换为用户可输入的数字串,随机效验码为5位数字码,充值信令为20位数字码;充值信令由充值信令头和MAC(MessageAuthentication Code,消息认证码)消息认证码组成,充值信令头由充值流水号、充值方式、充值金额组成,充值流水号由地址码和地址序列组成,地址码的取数区间为0~2047,地址序列的取值范围为【1,2,4,8,16,32,64,128】。生成充值码时,如果检验到上次对应的地址序列为128,则将对应的地址码数字做加1处理,然后,将地址序列置为1;否则,只需将地址序列的数据左移1位。充值流水号用于避免用户重复充值,充值方式用于描述充值码的生成源方式,充值金额为该充值码对应的金额,单位为元,MAC消息认证码由EPID、充值码流水号、充值方式和充值金额组合计算得到,具体计算方式参见图4所示。MAC消息认证码用于避免同一充值码在多个不同电子钱包上进行充值。
参见图3所示,充值码生成服务器端随机生成两字节的RS(Random Source,原始随机数据),原始随机数据RS与8字节的EPID进行同或操作,得到同或处理结果:数据A;原始随机数据RS与8字节的EPID进行异或操作,得到异或处理结果:数据B;将数据A、B组合,数据A放高位,数据B放低位,得到16字节长度的RD(Result-Random Data,随机数最终值),该随机数最终值RD用来生成MAC过程密钥及充值过程密钥。
MAC消息认证码的计算流程如下:随机数最终值RD为MAC过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到RIDX(Random Index,随机数索引)的数值,作为密钥组索引的值,充值码生成服务器端将随机数最终值RD、随机数索引RIDX、电子钱包唯一标识EPID、充值信令头(充值流水号,充值方式及充值金额)信息传递给加密机,加密机根据随机数索引RIDX及预定的加密组版本号获取MAC密钥,然后根据MAC密钥与随机数最终值RD计算得到16字节的MAC消息认证码过程密钥MSEC(MessageAuthentication Code Session Key,消息认证码过程密钥);加密机采用Tri-DES(Triple Data Encryption Standard,三重数据加密算法)算法,对MSEC和MAC源数据(充值信令头+EPID)进行计算,最终生成与EPID对应的MAC消息认证码。在进行Tri_DES操作前,需要确保MAC源数据(充值信令头+EPID)为8的整数倍字节,如果提供的MAC源数据不满足条件,则需要在高字节的地方,以0x00的方式补齐数据。
对充值码进行加密的流程如下:随机数最终值RD为加密过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值,充值码生成服务器端将随机数最终值RD、随机数索引RIDX、EPID、充值信令头(充值流水号,充值方式及充值金额)、MAC消息认证码信息传递给加密机,加密机根据随机数索引RIDX及预定的加密组版本号获取圈存密钥,然后根据圈存密钥与随机数最终值RD,计算得到16字节的RSEC(Recharge Session Key,充值过程密钥);加密机采用Tri-DES算法,对充值过程密钥RSEC和充值码源数据(充值信令头+MAC)进行计算,最终生成与EPID对应的加密充值码。在进行Tri_DES操作前,需要确保充值码源数据(充值信令头+MAC)为8的整数倍字节,如果提供的充值码源数据不满足条件,则需要在高字节的地方,以0x00的方式补齐数据。
充值码生成服务器端接收到加密机生成的加密充值码后,调用HEX转BCD方式,生成20位BCD方式的充值信令;将预先生成的原始随机数据RS经过HEX转BCD方式,生成5位BCD方式的随机效验码。
电子钱包终端充值时,按序输入BCD方式的随机效验码、BCD方式的充值信令。电子钱包终端接收的是BCD码数据,该输入分为两部分,一部分为充值码类型,即5位BCD随机效验码;第二部分为充值信令,即20位BCD的充值信令。电子钱包终端首先采用BCD转HEX方式,将BCD码转换为系统认知的HEX编码方式。
参见图4所示,电子钱包终端的解密流程如下:
用户输入的充值码的前5位BCD码(即原始随机数据RS)为解密过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值;电子钱包卡根据RIDX获取自己的分散圈存密钥;电子钱包卡根据自己的Card ID(Card Identity,卡标识)与RS经过同或和异或操作得到16字节的随机数最终值RD;电子钱包卡根据随机数最终值RD和分散圈存密钥获得圈存过程密钥DLK(Credit For Load Session Key,圈存过程密钥);电子钱包卡将充值码的后20位BCD码转换为HEX后,根据DLK和转换为HEX后的充值码后20位BCD码,采用Tri-DES算法进行计算,获取解密后的充值信令。
电子钱包终端解析出充值信令后,再次确认MAC消息认证码的可靠合法性。电子钱包卡获取MAC过程密钥:电子钱包卡获得随机数最终值RD,根据RIDX获取自己的分散MAC密钥;电子钱包根据分散MAC密钥、充值信令中的充值流水号、充值方式、充值金额以及EPID,通过Tri_DES算法计算,获得MAC消息认证码的数值MAC1。电子钱包卡将数值MAC1与充值信令中的MAC码匹配运算,如果一致,则认为合法,否则认为充值码无效,不允许其离线充值。在充值时,电子钱包终端进一步效验充值信令中的充值流水号,如果该充值流水号与电子钱包卡的系统记录无冲突,则允许充值,否则认为无效操作。
本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型属在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。
说明书中未详细描述的内容为本领域技术人员公知的现有技术。

Claims (10)

1.一种基于电子钱包的离线充值方法,其特征在于,包括以下步骤:
S1、用户将充值金额信息和电子钱包唯一标识EPID信息发送到充值码生成服务器端,即电子钱包服务器端;
S2、充值码生成服务器端获取到用户发来的充值金额信息及EPID信息后,将充值金额信息及EPID信息进行一系列的转换和加密运算,生成字节码方式的充值码;
所述充值码由随机效验码和充值信令组成,随机效验码为明文,充值信令为密文,系统采用十六进制数HEX转二-十进制代码BCD码方式,将字节码数据转换为数字串,随机效验码为5位数字码,充值信令为20位数字码;充值信令由充值信令头和MAC消息认证码组成,充值信令头由充值流水号、充值方式、充值金额组成,充值流水号由地址码和地址序列组成,地址码的取数区间为0~2047,地址序列的取值范围为【1,2,4,8,16,32,64,128】;生成充值码时,如果检验到上次对应的地址序列为128,则将对应的地址码数字做加1处理,然后将地址序列置为1;否则,将地址序列的数据左移1位;充值流水号用于避免用户重复充值,充值方式用于描述充值码的生成源方式,充值金额为该充值码对应的金额,单位为元,MAC消息认证码由EPID、充值码流水号、充值方式和充值金额组合计算得到,MAC消息认证码用于避免同一充值码在多个不同电子钱包上进行充值;
充值码生成服务器端随机生成两字节的原始随机数据RS,原始随机数据RS与8字节的EPID进行同或操作,得到同或处理结果:数据A;原始随机数据RS与8字节的EPID进行异或操作,得到异或处理结果:数据B;将数据A、B组合,数据A放高位,数据B放低位,得到16字节长度的随机数最终值RD,该随机数最终值RD用来生成MAC过程密钥及充值过程密钥;
MAC消息认证码的计算流程如下:随机数最终值RD为MAC过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值,充值码生成服务器端将随机数最终值RD、随机数索引RIDX、电子钱包唯一标识EPID、充值信令头信息传递给加密机,加密机根据随机数索引RIDX及预定的加密组版本号获取MAC密钥,然后根据MAC密钥与随机数最终值RD计算得到16字节的MAC消息认证码过程密钥MSEC;加密机采用三重数据加密算法Tri-DES,对MSEC和MAC源数据进行计算,MAC源数据为充值信令头+EPID,最终生成与EPID对应的MAC消息认证码;
对充值码进行加密的流程如下:随机数最终值RD为加密过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值,充值码生成服务器端将随机数最终值RD、随机数索引RIDX、EPID、充值信令头、MAC消息认证码信息传递给加密机,加密机根据随机数索引RIDX及预定的加密组版本号获取圈存密钥,然后根据圈存密钥与随机数最终值RD,计算得到16字节的充值过程密钥RSEC;加密机采用Tri-DES算法,对充值过程密钥RSEC和充值码源数据进行计算,充值码源数据为充值信令头+MAC,最终生成与EPID对应的加密充值码;
S3、充值码生成服务器端将字节码方式的充值码转换为数字串方式的充值码,最终以与用户请求一致的形式,将数字串方式的充值码发送给用户:充值码生成服务器端接收到加密机生成的加密充值码后,调用HEX转BCD方式,生成20位BCD方式的充值信令;将预先生成的原始随机数据RS经过HEX转BCD方式,生成5位BCD方式的随机效验码;
S4、用户将充值码生成服务器端发来的数字串方式的充值码输入电子钱包终端,电子钱包终端解密后,完成终端电子钱包的充值:
电子钱包终端充值时,按序输入BCD方式的随机效验码、BCD方式的充值信令,电子钱包终端接收的是BCD码数据,该输入分为两部分,一部分为充值码类型:5位BCD随机效验码;第二部分为充值信令:20位BCD的充值信令,电子钱包终端采用BCD转HEX方式,将BCD码转换为系统认知的HEX编码方式;
电子钱包终端的解密流程如下:用户输入的充值码的前5位BCD码为解密过程密钥源数据,充值码的前5位BCD码为原始随机数据RS,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值;电子钱包卡根据RIDX获取自己的分散圈存密钥;电子钱包卡根据自己的卡标识Card ID与原始随机数据RS经过同或和异或操作得到16字节的随机数最终值RD;电子钱包卡根据随机数最终值RD和分散圈存密钥获得圈存过程密钥DLK;电子钱包卡将充值码的后20位BCD码转换为HEX后,根据DLK和转换为HEX后的充值码后20位BCD码,采用Tri-DES算法进行计算,获取解密后的充值信令;
电子钱包终端解析出充值信令后,再次确认MAC消息认证码的合法性,并获取MAC过程密钥:电子钱包卡获得随机数最终值RD,根据RIDX获取自己的分散MAC密钥;电子钱包根据分散MAC密钥、充值信令中的充值流水号、充值方式、充值金额以及EPID,通过Tri_DES算法计算,获得MAC消息认证码的数值MAC1;电子钱包卡将数值MAC1与充值信令中的MAC码匹配运算,如果一致,则认为合法,否则认为充值码无效,不允许其离线充值;在充值时,电子钱包终端进一步效验充值信令中的充值流水号,如果该充值流水号与电子钱包卡的系统记录无冲突,则允许充值,否则认为无效操作。
2.如权利要求1所述的基于电子钱包的离线充值方法,其特征在于:步骤S2中所述MAC消息认证码的计算过程中,在进行Tri_DES操作前,确保MAC源数据为8的整数倍字节。
3.如权利要求2所述的基于电子钱包的离线充值方法,其特征在于:如果提供的MAC源数据不满足条件,则在高字节的地方,以0x00的方式补齐数据。
4.如权利要求1或2或3所述的基于电子钱包的离线充值方法,其特征在于:步骤S2中所述对充值码进行加密的过程中,在进行Tri_DES操作前,确保充值码源数据为8的整数倍字节。
5.如权利要求4所述的基于电子钱包的离线充值方法,其特征在于:如果提供的充值码源数据不满足条件,则在高字节的地方,以0x00的方式补齐数据。
6.一种基于电子钱包的离线充值系统,包括装载有电子钱包卡的电子钱包终端,电子钱包卡是一张含有小型计算单元的卡片,电子钱包终端是装载有电子钱包卡的终端设备,其特征在于:还包括充值码生成服务器端,用户将充值金额信息和电子钱包唯一标识EPID信息发送到充值码生成服务器端,即电子钱包服务器端;充值码生成服务器端获取到用户发来的充值金额信息及EPID信息后,将充值金额信息及EPID信息进行一系列的转换和加密运算,生成字节码方式的充值码;
所述充值码由随机效验码和充值信令组成,随机效验码为明文,充值信令为密文,系统采用十六进制数HEX转二-十进制代码BCD码方式,将字节码数据转换为数字串,随机效验码为5位数字码,充值信令为20位数字码;充值信令由充值信令头和MAC消息认证码组成,充值信令头由充值流水号、充值方式、充值金额组成,充值流水号由地址码和地址序列组成,地址码的取数区间为0~2047,地址序列的取值范围为【1,2,4,8,16,32,64,128】;生成充值码时,如果检验到上次对应的地址序列为128,则将对应的地址码数字做加1处理,然后将地址序列置为1;否则,将地址序列的数据左移1位;充值流水号用于避免用户重复充值,充值方式用于描述充值码的生成源方式,充值金额为该充值码对应的金额,单位为元,MAC消息认证码由EPID、充值码流水号、充值方式和充值金额组合计算得到,MAC消息认证码用于避免同一充值码在多个不同电子钱包上进行充值;
充值码生成服务器端随机生成两字节的原始随机数据RS,原始随机数据RS与8字节的EPID进行同或操作,得到同或处理结果:数据A;原始随机数据RS与8字节的EPID进行异或操作,得到异或处理结果:数据B;将数据A、B组合,数据A放高位,数据B放低位,得到16字节长度的随机数最终值RD,该随机数最终值RD用来生成MAC过程密钥及充值过程密钥;
MAC消息认证码的计算流程如下:随机数最终值RD为MAC过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值,充值码生成服务器端将随机数最终值RD、随机数索引RIDX、电子钱包唯一标识EPID、充值信令头信息传递给加密机,加密机根据随机数索引RIDX及预定的加密组版本号获取MAC密钥,然后根据MAC密钥与随机数最终值RD计算得到16字节的MAC消息认证码过程密钥MSEC;加密机采用三重数据加密算法Tri-DES,对MSEC和MAC源数据进行计算,MAC源数据为充值信令头+EPID,最终生成与EPID对应的MAC消息认证码;
对充值码进行加密的流程如下:随机数最终值RD为加密过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值,充值码生成服务器端将随机数最终值RD、随机数索引RIDX、EPID、充值信令头、MAC消息认证码信息传递给加密机,加密机根据随机数索引RIDX及预定的加密组版本号获取圈存密钥,然后根据圈存密钥与随机数最终值RD,计算得到16字节的充值过程密钥RSEC;加密机采用Tri-DES算法,对充值过程密钥RSEC和充值码源数据进行计算,充值码源数据为充值信令头+MAC,最终生成与EPID对应的加密充值码;
充值码生成服务器端将字节码方式的充值码转换为数字串方式的充值码,最终以与用户请求一致的形式,将数字串方式的充值码发送给用户:充值码生成服务器端接收到加密机生成的加密充值码后,调用HEX转BCD方式,生成20位BCD方式的充值信令;将预先生成的原始随机数据RS经过HEX转BCD方式,生成5位BCD方式的随机效验码;
用户将充值码生成服务器端发来的数字串方式的充值码输入电子钱包终端,电子钱包终端解密后,完成终端电子钱包的充值:
电子钱包终端充值时,按序输入BCD方式的随机效验码、BCD方式的充值信令,电子钱包终端接收的是BCD码数据,该输入分为两部分,一部分为充值码类型:5位BCD随机效验码;第二部分为充值信令:20位BCD的充值信令,电子钱包终端采用BCD转HEX方式,将BCD码转换为系统认知的HEX编码方式;
电子钱包终端的解密流程如下:用户输入的充值码的前5位BCD码为解密过程密钥源数据,充值码的前5位BCD码为原始随机数据RS,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值;电子钱包卡根据RIDX获取自己的分散圈存密钥;电子钱包卡根据自己的卡标识Card ID与原始随机数据RS经过同或和异或操作得到16字节的随机数最终值RD;电子钱包卡根据随机数最终值RD和分散圈存密钥获得圈存过程密钥DLK;电子钱包卡将充值码的后20位BCD码转换为HEX后,根据DLK和转换为HEX后的充值码后20位BCD码,采用Tri-DES算法进行计算,获取解密后的充值信令;
电子钱包终端解析出充值信令后,再次确认MAC消息认证码的合法性,并获取MAC过程密钥:电子钱包卡获得随机数最终值RD,根据RIDX获取自己的分散MAC密钥;电子钱包根据分散MAC密钥、充值信令中的充值流水号、充值方式、充值金额以及EPID,通过Tri_DES算法计算,获得MAC消息认证码的数值MAC1;电子钱包卡将数值MAC1与充值信令中的MAC码匹配运算,如果一致,则认为合法,否则认为充值码无效,不允许其离线充值;在充值时,电子钱包终端进一步效验充值信令中的充值流水号,如果该充值流水号与电子钱包卡的系统记录无冲突,则允许充值,否则认为无效操作。
7.如权利要求6所述的基于电子钱包的离线充值系统,其特征在于:所述MAC消息认证码的计算过程中,在进行Tri_DES操作前,确保MAC源数据为8的整数倍字节。
8.如权利要求7所述的基于电子钱包的离线充值系统,其特征在于:如果提供的MAC源数据不满足条件,则在高字节的地方,以0x00的方式补齐数据。
9.如权利要求6或7或8所述的基于电子钱包的离线充值系统,其特征在于:所述对充值码进行加密的过程中,在进行Tri_DES操作前,确保充值码源数据为8的整数倍字节。
10.如权利要求9所述的基于电子钱包的离线充值系统,其特征在于:如果提供的充值码源数据不满足条件,则在高字节的地方,以0x00的方式补齐数据。
CN201310296966.XA 2013-07-15 2013-07-15 基于电子钱包的离线充值方法及系统 Active CN103345683B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310296966.XA CN103345683B (zh) 2013-07-15 2013-07-15 基于电子钱包的离线充值方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310296966.XA CN103345683B (zh) 2013-07-15 2013-07-15 基于电子钱包的离线充值方法及系统

Publications (2)

Publication Number Publication Date
CN103345683A CN103345683A (zh) 2013-10-09
CN103345683B true CN103345683B (zh) 2016-08-10

Family

ID=49280477

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310296966.XA Active CN103345683B (zh) 2013-07-15 2013-07-15 基于电子钱包的离线充值方法及系统

Country Status (1)

Country Link
CN (1) CN103345683B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103366276B (zh) * 2013-07-15 2016-05-18 武汉天喻信息产业股份有限公司 基于充值码的电子钱包充值方法及系统
CN103645882A (zh) * 2013-12-09 2014-03-19 中颖电子股份有限公司 基于单片机的批量乱序随机数的生成方法
CN103747158A (zh) * 2013-12-20 2014-04-23 华为终端有限公司 一种充值方法及装置
CN108270561B (zh) * 2017-01-04 2021-08-13 阿里巴巴集团控股有限公司 数据发送方法及装置、密钥索引的生成方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826233A (zh) * 2008-03-07 2010-09-08 北京握奇数据系统有限公司 一种远程管理电子钱包状态的装置
CN102289893A (zh) * 2011-04-29 2011-12-21 中国联合网络通信集团有限公司 电子钱包圈存方法、装置和系统
CN102694935A (zh) * 2007-12-28 2012-09-26 中国移动通信集团公司 一种电子充值方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050064119A (ko) * 2003-12-23 2005-06-29 한국전자통신연구원 인터넷접속을 위한 확장인증프로토콜 인증시 단말에서의서버인증서 유효성 검증 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102694935A (zh) * 2007-12-28 2012-09-26 中国移动通信集团公司 一种电子充值方法及装置
CN101826233A (zh) * 2008-03-07 2010-09-08 北京握奇数据系统有限公司 一种远程管理电子钱包状态的装置
CN102289893A (zh) * 2011-04-29 2011-12-21 中国联合网络通信集团有限公司 电子钱包圈存方法、装置和系统

Also Published As

Publication number Publication date
CN103345683A (zh) 2013-10-09

Similar Documents

Publication Publication Date Title
EP3210177B1 (en) Transaction messaging
CN102377566B (zh) 一种电表数据的安全处理装置及系统
CN103795523B (zh) 用于电子招投标的电子标书多层加解密系统及方法
CN103345683B (zh) 基于电子钱包的离线充值方法及系统
CN102118710A (zh) 手机终端之间数据传输系统及其传输方法
CN103020682B (zh) 图书二维码标识生成装置、二维码标识识别装置及系统
CN101017562A (zh) 一种基于通信网络的电子发票的生成和交互使用方法
CN103198390A (zh) 一种基于二维码的预约提货送货信息的数据处理方法及系统
CN103116728B (zh) 一种程序文件签名及验证签名的方法
CN106452762A (zh) 一种车载自组织网络中基于身份的高效数据传输方法
CN106327723B (zh) 一种基于智能平台的mPOS交易系统
CN103903129A (zh) 一种基于短信方式实现的汇款系统及方法
CN102801529B (zh) 一种卡片安全通讯的方法
CN104166823A (zh) 一种智慧医疗数据安全保障系统
CN103259787A (zh) 一种基于json协议包的医疗领域云及端安全交互方法
CN104574652A (zh) Ic卡排污数据增加、扣减的方法和ic卡
CN106411501A (zh) 权限令牌生成方法、系统及其设备
CN101639957A (zh) 一种实现圈存或圈提的方法、终端及银行业务系统
CN106375090A (zh) 一种充值系统及其充值方法
CN103458401A (zh) 一种语音加密通信系统及通信方法
CN210899418U (zh) 一种视频数据采集传输安全性的保护装置
CN102609842B (zh) 一种基于硬件签名设备的支付密码装置及其应用方法
CN104113543A (zh) 一种基于分组密码的消息鉴别方法
CN109039585A (zh) 基于des算法的远程加密电力能耗数据采集系统及方法
CN103366276B (zh) 基于充值码的电子钱包充值方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant