新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 基于混合加密体制的手机支付系统研究与实现

基于混合加密体制的手机支付系统研究与实现

——
作者:杨小东 王彪 张贵仓 魏伟 陆洪文时间:2007-05-22来源:电子技术应用收藏
是近几年才发展起来的支付方式。它有着与信用卡同样的方便性,同时又避免了在交易过程中使用多种信用卡以及商家是否支持这些信用卡结算的麻烦。消费者只需一部手机,就可以完成整个交易过程,深受消费者,尤其是年轻人的推崇。将会有非常大的商业前景,而且将会引领移动电子商务和无线金融的发展,成为人们生活中购物方式的一种潮流。随着业务的不断扩大,手机支付系统面临的主要问题之一就是系统的安全问题[1]。而当前,我国关于手机支付安全性方面的研究几乎一片空白。针对手机自身的特点,基于椭圆曲线加密体制[1]和AES加密算法[2]的算法,设计了一种可以处理高额交易的手机支付模型。成功地实现了用户的银行帐号与手机号码的绑定,在银行帐号和手机号码之间建立了一对一或多对一的对应关系。该模型采用双重认证的方式进行认证,无线运营商对手机号码进行认证,银行对银行帐号进行认证。目前国内的支付系统都要求在交易过程中传送用户的银行帐号密码,而在本文的支付系统中,用户的银行帐号密码不需传送。

  

手机支付模型

1 手机支付和算法

手机支付,又称移动支付。它是利用STK技术在SIM卡上开发的通过手机进行消费的功能。主要基于银行帐号和手机号码的惟一性,将银行账户和手机号码进行绑定,使用户可以通过手机短信息、语音、WAP、GPRS等多种方式对自己的银行帐户进行操作,实现查询、转帐、缴费、消费等功能,并可以通过短信息等方式得到交易结果和帐户变化通知。

用椭圆曲线加密体制生成对称加密算法AES的随机会话密钥K,使用随机会话密钥K和AES加密算法来加密消息。这样构造的混合密码体制可以获得较快的加密速度和较大的加密强度。选择基于椭圆曲线的数字签名,通常是一个二维向量,记为(r,s)。

2 手机支付系统模型

帐户管理是银行的强项,如果没有银行的参与,则不能处理高额支付。本文的支付模型是手机用户、银行、商家及无线运营商四者都参与的系统,与参考文献的支付模型相比,具有较强的实用性。整个交易过程按系统模型中的标号顺序依次进行,如图l所示。

3 参与者的初始设置

商家S通过椭圆曲线密码体制,选定IDS作为自己的身份标识,密钥对是(ds,Qs),其中ds是私钥,Qs是公钥,保留ds,公开Qs和IDs。与商家的初始设置过程一样,无线运营商T的身份标识是IDT。密胡对是(dT,QT);银行B的身份标识是IDB,密钥对是(dB,QB)。通过椭圆曲线密码体制选择(d1,Q1)作为与商家通信时的密钥对。选择同无线运营商通信时的密钥对(d2,Q2);将Q2与手机开户的消息(包括手机充值)发送给无线运营商;无线运营商进行物理鉴定(包括身份证等)并验证用户提交的消息后,生成用户的手机号码IDU发送给用户,同时在手机帐号的数据库中储存新用户(IDU,Q2)。选择同银行通信时的密钥对(d3,Q3);将Q3、IDU及初始存款的相关消息递交给银行;银行进行物理鉴定(包括身份证等)以确信手机号码IDU的合法性后,生成用户的银行帐号IDBU发送给用户,同时在银行帐号的数据库中储存新用户(IDBU,IDU,Q3)。

4 手机支付系统的设计与实现

(1)手机用户生成购买指令m1(包含购买物品的名称、数量及转帐银行的名称等),用密钥d1生成m1的签名(r1,s1);生成核实手机权限的指令m2(不涉及交易的具体细节),用密钥d2生成m2的签名(r2,s2);用同商家通信时的会话密钥,对m1、r1和s1进行加密处理得到密文c1;用同无线运营商通信时的会话密钥,对m2、r2、s2和IDS进行加密处理得到密文c2,将c1和c2合并后发送给商家。

(2)商家开启用户递交的指令c1,如果用户的数字签名是错误的,则交易过程到此结束。否则生成验证手机权限的指令m3,用私钥dS生成m3的签名(r3,s3);将m3、r1、s3和IDU进行加密处理得到密文c3,将c3和c2合并后发送给无线运营商。

(3)无线运营商开启商家递交的指令c3和c2,如果下面四种情况中有一种存在,则通知商家本次交易是非法的:①商家或用户的数字签名是错误的;②根据IDU查找不到用户在无线运营商处的记录Q2;③比较用户和商家递交的指令后,发现两组指令中的IDS,和IDU不相同;④查找用户的信用记录后,发现用户的信用度很低。否则通知商家用户拥有手机号码IDU的使用权限,交易可以继续下去。生成指令m4将验证的结果反馈给商家,用私钥dT生成m4的签名(r4,s4),将m4和签名加密后发送给商家。

(4)如果反馈的消息表明本次交易是非法的,则交易过程到此结束。否则商家生成请求转帐指令m5,用私钥ds生成m5的签名(r5,s5),money表示交易所付金额,nnm为交易序列号,IDBS是商家的银行帐号,将m5、r5、s5、money、num、IDU:和IDBS加密处理后递交给银行。 

(5)银行开启商家递交的指令,如果下面三种情况中有一种存在,则交易过程到此结束:①商家的数字签名是错误的;②根据IDU查找不到用户在银行的记录仉和IDBU;③用户的银行帐户上余额不足(小于交易所需的金额money)。否则生成确认购买指令m6,用私钥dB生成m6的签名(r6,s6),将num、m6和(r6,s6)加密处理后发送给用户。 

(6)如果用户认为本次交易是非法的,则拒绝给银行回复消息;否则生成回复指令m7.用私钥d3生成m7的签名(r7,s7),将m7及签名(r7,s7)加密处理后递交给银行。 

(7)如果银行没有得到用户的回复指令,则购买过程到此终止;否则验证用户的数字签名的合法性,进行转帐缴费操作,并作相应的转帐记录。生成转帐成功的指令m8,用私钥dB生成m8的签名(r8,s8),将m8及(r8,s8)加密处理后发送给商家;生成用户的信用记录消息m9,用私钥dB生成m9的签名(r9,s9),将m9及(r9,s9)加密处理后发送给无线运营商。 

(8)商家验证银行的数字签名合法后,将产品或服务交付给用户,并保留交易记录。 

(9)无线运营商验证银行的数字签名合法后,增加手机用户IDU的信用度。 

5 系统的安全性和有效性分析 

系统的安全性主要基于有限域上椭圆曲线加法群的离散对数问题和AES加密算法的安全强度。银行在进行转帐前,必须给用户发送确认购买指令。若商家或无线运营商企图对同一订单向银行发送两次转帐指令,银行便向用户发送两次确认购买指令,用户根据交易序列号num等信息很容易得知商家或无线运营商有一方在进行重复消费。当有人冒充用户进行支付时,由于私钥d2和d3是未知的,所以无法通过无线运营商和银行的验证。每次传送指令时都进行了加密处理,如果攻击者选择攻击密文c,则需直接攻击128位的AES,这在现有的技术条件下是极其困难的;若选择攻击会话密钥K,则面临棘手的ECDLP数学难题,且会话密钥K只使用一次,此后不再有效,即使得到密钥K也没有多大的实用价值。当双方发生争执时,任何第三方都可以用通常的方式验证签名。手机用户发送两次指令便可完成整个交易。基于椭圆曲线加密体制和AES加密算法的算法,大大减少了计算和通信的负荷,所以本系统运算量小,易于在计算机的硬件和软件上实现。 

用户通过手机支付交易时,无需使用现金,即可实现轻松购物。随着手机的日益普及,手机支付将有很大的市场潜力和良好的发展前景。本文结合混合加密体制的理论和手机通信的的特点,设计了一个可以处理高额交易的手机支付系统,整个系统具有较高的安全性和实用性。



评论


相关推荐

技术专区

关闭