发明名称 基于电子钱包的离线充值方法及系统
摘要 本发明公开了一种基于电子钱包的离线充值方法及系统,涉及电子钱包充值领域,该方法为:用户将充值金额和EPID发到充值码生成服务器端,充值码生成服务器端获取到用户发来的充值金额及EPID后,将充值金额及EPID进行转换和加密运算,生成字节码方式的充值码;充值码生成服务器端将字节码方式的充值码转换为数字串方式的充值码,以与用户请求一致的形式,将数字串方式的充值码发送给用户;用户将数字串方式的充值码输入电子钱包终端,电子钱包终端解密后,完成终端电子钱包的充值。本发明不需要借助无线POS充值,用户根据电子钱包充值码,在相应的电子钱包上完成离线充值,充值过程不需第三方配合。
申请公布号 CN103345683A 申请公布日期 2013.10.09
申请号 CN201310296966.X 申请日期 2013.07.15
申请人 武汉天喻信息产业股份有限公司 发明人 徐国栋;袁洁;余斌
分类号 G06Q20/00(2012.01)I;H04L29/06(2006.01)I 主分类号 G06Q20/00(2012.01)I
代理机构 北京捷诚信通专利事务所(普通合伙) 11221 代理人 魏殿绅;庞炳良
主权项 一种基于电子钱包的离线充值方法,其特征在于,包括以下步骤:S1、用户将充值金额信息和电子钱包唯一标识EPID信息发送到充值码生成服务器端,即电子钱包服务器端;S2、充值码生成服务器端获取到用户发来的充值金额信息及EPID信息后,将充值金额信息及EPID信息进行一系列的转换和加密运算,生成字节码方式的充值码;所述充值码由随机效验码和充值信令组成,随机效验码为明文,充值信令为密文,系统采用十六进制数HEX转二‑十进制代码BCD码方式,将字节码数据转换为数字串,随机效验码为4个数字码,充值信令为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码匹配运算,如果一致,则认为合法,否则认为充值码无效,不允许其离线充值。在充值时,电子钱包终端进一步效验充值信令中的充值流水号,如果该充值流水号与电子钱包卡的系统记录无冲突,则允许充值,否则认为无效操作。
地址 430223 湖北省武汉市东湖开发区华中科技大学科技园天喻大厦