基于混合加密體制的手機(jī)支付系統(tǒng)研究與實(shí)現(xiàn)
手機(jī)支付是近幾年才發(fā)展起來(lái)的支付方式。它有著與信用卡同樣的方便性,同時(shí)又避免了在交易過(guò)程中使用多種信用卡以及商家是否支持這些信用卡結(jié)算的麻煩。消費(fèi)者只需一部手機(jī),就可以完成整個(gè)交易過(guò)程,深受消費(fèi)者,尤其是年輕人的推崇。手機(jī)支付將會(huì)有非常大的商業(yè)前景,而且將會(huì)引領(lǐng)移動(dòng)電子商務(wù)和無(wú)線金融的發(fā)展,成為人們生活中購(gòu)物方式的一種潮流。隨著手機(jī)支付業(yè)務(wù)的不斷擴(kuò)大,手機(jī)支付系統(tǒng)面臨的主要問(wèn)題之一就是系統(tǒng)的安全問(wèn)題[1]。
而當(dāng)前,我國(guó)關(guān)于手機(jī)支付安全性方面的研究幾乎一片空白。針對(duì)手機(jī)自身的特點(diǎn),基于橢圓曲線加密體制[1]和AES加密算法[2]的混合加密算法,設(shè)計(jì)了一種可以處理高額交易的手機(jī)支付模型。成功地實(shí)現(xiàn)了用戶的銀行帳號(hào)與手機(jī)號(hào)碼的綁定,在銀行帳號(hào)和手機(jī)號(hào)碼之間建立了一對(duì)一或多對(duì)一的對(duì)應(yīng)關(guān)系。該模型采用雙重認(rèn)證的方式進(jìn)行認(rèn)證,無(wú)線運(yùn)營(yíng)商對(duì)手機(jī)號(hào)碼進(jìn)行認(rèn)證,銀行對(duì)銀行帳號(hào)進(jìn)行認(rèn)證。目前國(guó)內(nèi)的支付系統(tǒng)都要求在交易過(guò)程中傳送用戶的銀行帳號(hào)密碼,而在本文的支付系統(tǒng)中,用戶的銀行帳號(hào)密碼不需傳送。
1 手機(jī)支付和混合加密算法
手機(jī)支付,又稱移動(dòng)支付。它是利用STK技術(shù)在SIM卡上開(kāi)發(fā)的通過(guò)手機(jī)進(jìn)行消費(fèi)的功能。主要基于銀行帳號(hào)和手機(jī)號(hào)碼的惟一性,將銀行賬戶和手機(jī)號(hào)碼進(jìn)行綁定,使用戶可以通過(guò)手機(jī)短信息、語(yǔ)音、WAP、GPRS等多種方式對(duì)自己的銀行帳戶進(jìn)行操作,實(shí)現(xiàn)查詢、轉(zhuǎn)帳、繳費(fèi)、消費(fèi)等功能,并可以通過(guò)短信息等方式得到交易結(jié)果和帳戶變化通知。
用橢圓曲線加密體制生成對(duì)稱加密算法AES的隨機(jī)會(huì)話密鑰K,使用隨機(jī)會(huì)話密鑰K和AES加密算法來(lái)加密消息。這樣構(gòu)造的混合密碼體制可以獲得較快的加密速度和較大的加密強(qiáng)度。選擇基于橢圓曲線的數(shù)字簽名,通常是一個(gè)二維向量,記為(r,s)。
2 手機(jī)支付系統(tǒng)模型
帳戶管理是銀行的強(qiáng)項(xiàng),如果沒(méi)有銀行的參與,則不能處理高額支付。本文的支付模型是手機(jī)用戶、銀行、商家及無(wú)線運(yùn)營(yíng)商四者都參與的系統(tǒng),與參考文獻(xiàn)的支付模型相比,具有較強(qiáng)的實(shí)用性。整個(gè)交易過(guò)程按系統(tǒng)模型中的標(biāo)號(hào)順序依次進(jìn)行,如圖l所示。
3 參與者的初始設(shè)置
商家S通過(guò)橢圓曲線密碼體制,選定IDS作為自己的身份標(biāo)識(shí),密鑰對(duì)是(ds,Qs),其中ds是私鑰,Qs是公鑰,保留ds,公開(kāi)Qs和IDs。與商家的初始設(shè)置過(guò)程一樣,無(wú)線運(yùn)營(yíng)商T的身份標(biāo)識(shí)是IDT。密胡對(duì)是(dT,QT);銀行B的身份標(biāo)識(shí)是IDB,密鑰對(duì)是(dB,QB)。通過(guò)橢圓曲線密碼體制選擇(d1,Q1)作為與商家通信時(shí)的密鑰對(duì)。選擇同無(wú)線運(yùn)營(yíng)商通信時(shí)的密鑰對(duì)(d2,Q2);將Q2與手機(jī)開(kāi)戶的消息(包括手機(jī)充值)發(fā)送給無(wú)線運(yùn)營(yíng)商;無(wú)線運(yùn)營(yíng)商進(jìn)行物理鑒定(包括身份證等)并驗(yàn)證用戶提交的消息后,生成用戶的手機(jī)號(hào)碼IDU發(fā)送給用戶,同時(shí)在手機(jī)帳號(hào)的數(shù)據(jù)庫(kù)中儲(chǔ)存新用戶(IDU,Q2)。選擇同銀行通信時(shí)的密鑰對(duì)(d3,Q3);將Q3、IDU及初始存款的相關(guān)消息遞交給銀行;銀行進(jìn)行物理鑒定(包括身份證等)以確信手機(jī)號(hào)碼IDU的合法性后,生成用戶的銀行帳號(hào)IDBU發(fā)送給用戶,同時(shí)在銀行帳號(hào)的數(shù)據(jù)庫(kù)中儲(chǔ)存新用戶(IDBU,IDU,Q3)。
4 手機(jī)支付系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
(1)手機(jī)用戶生成購(gòu)買指令m1(包含購(gòu)買物品的名稱、數(shù)量及轉(zhuǎn)帳銀行的名稱等),用密鑰d1生成m1的簽名(r1,s1);生成核實(shí)手機(jī)權(quán)限的指令m2(不涉及交易的具體細(xì)節(jié)),用密鑰d2生成m2的簽名(r2,s2);用同商家通信時(shí)的會(huì)話密鑰,對(duì)m1、r1和s1進(jìn)行加密處理得到密文c1;用同無(wú)線運(yùn)營(yíng)商通信時(shí)的會(huì)話密鑰,對(duì)m2、r2、s2和IDS進(jìn)行加密處理得到密文c2,將c1和c2合并后發(fā)送給商家。
(2)商家開(kāi)啟用戶遞交的指令c1,如果用戶的數(shù)字簽名是錯(cuò)誤的,則交易過(guò)程到此結(jié)束。否則生成驗(yàn)證手機(jī)權(quán)限的指令m3,用私鑰dS生成m3的簽名(r3,s3);將m3、r1、s3和IDU進(jìn)行加密處理得到密文c3,將c3和c2合并后發(fā)送給無(wú)線運(yùn)營(yíng)商。
(3)無(wú)線運(yùn)營(yíng)商開(kāi)啟商家遞交的指令c3和c2,如果下面四種情況中有一種存在,則通知商家本次交易是非法的:①商家或用戶的數(shù)字簽名是錯(cuò)誤的;②根據(jù)IDU查找不到用戶在無(wú)線運(yùn)營(yíng)商處的記錄Q2;③比較用戶和商家遞交的指令后,發(fā)現(xiàn)兩組指令中的IDS,和IDU不相同;④查找用戶的信用記錄后,發(fā)現(xiàn)用戶的信用度很低。否則通知商家用戶擁有手機(jī)號(hào)碼IDU的使用權(quán)限,交易可以繼續(xù)下去。生成指令m4將驗(yàn)證的結(jié)果反饋給商家,用私鑰dT生成m4的簽名(r4,s4),將m4和簽名加密后發(fā)送給商家。
(4)如果反饋的消息表明本次交易是非法的,則交易過(guò)程到此結(jié)束。否則商家生成請(qǐng)求轉(zhuǎn)帳指令m5,用私鑰ds生成m5的簽名(r5,s5),money表示交易所付金額,nnm為交易序列號(hào),IDBS是商家的銀行帳號(hào),將m5、r5、s5、money、num、IDU:和IDBS加密處理后遞交給銀行。
(5)銀行開(kāi)啟商家遞交的指令,如果下面三種情況中有一種存在,則交易過(guò)程到此結(jié)束:①商家的數(shù)字簽名是錯(cuò)誤的;②根據(jù)IDU查找不到用戶在銀行的記錄仉和IDBU;③用戶的銀行帳戶上余額不足(小于交易所需的金額money)。否則生成確認(rèn)購(gòu)買指令m6,用私鑰dB生成m6的簽名(r6,s6),將num、m6和(r6,s6)加密處理后發(fā)送給用戶。
(6)如果用戶認(rèn)為本次交易是非法的,則拒絕給銀行回復(fù)消息;否則生成回復(fù)指令m7.用私鑰d3生成m7的簽名(r7,s7),將m7及簽名(r7,s7)加密處理后遞交給銀行。
(7)如果銀行沒(méi)有得到用戶的回復(fù)指令,則購(gòu)買過(guò)程到此終止;否則驗(yàn)證用戶的數(shù)字簽名的合法性,進(jìn)行轉(zhuǎn)帳繳費(fèi)操作,并作相應(yīng)的轉(zhuǎn)帳記錄。生成轉(zhuǎn)帳成功的指令m8,用私鑰dB生成m8的簽名(r8,s8),將m8及(r8,s8)加密處理后發(fā)送給商家;生成用戶的信用記錄消息m9,用私鑰dB生成m9的簽名(r9,s9),將m9及(r9,s9)加密處理后發(fā)送給無(wú)線運(yùn)營(yíng)商。
(8)商家驗(yàn)證銀行的數(shù)字簽名合法后,將產(chǎn)品或服務(wù)交付給用戶,并保留交易記錄。
(9)無(wú)線運(yùn)營(yíng)商驗(yàn)證銀行的數(shù)字簽名合法后,增加手機(jī)用戶IDU的信用度。
5 系統(tǒng)的安全性和有效性分析
系統(tǒng)的安全性主要基于有限域上橢圓曲線加法群的離散對(duì)數(shù)問(wèn)題和AES加密算法的安全強(qiáng)度。銀行在進(jìn)行轉(zhuǎn)帳前,必須給用戶發(fā)送確認(rèn)購(gòu)買指令。若商家或無(wú)線運(yùn)營(yíng)商企圖對(duì)同一訂單向銀行發(fā)送兩次轉(zhuǎn)帳指令,銀行便向用戶發(fā)送兩次確認(rèn)購(gòu)買指令,用戶根據(jù)交易序列號(hào)num等信息很容易得知商家或無(wú)線運(yùn)營(yíng)商有一方在進(jìn)行重復(fù)消費(fèi)。
當(dāng)有人冒充用戶進(jìn)行支付時(shí),由于私鑰d2和d3是未知的,所以無(wú)法通過(guò)無(wú)線運(yùn)營(yíng)商和銀行的驗(yàn)證。每次傳送指令時(shí)都進(jìn)行了加密處理,如果攻擊者選擇攻擊密文c,則需直接攻擊128位的AES,這在現(xiàn)有的技術(shù)條件下是極其困難的;若選擇攻擊會(huì)話密鑰K,則面臨棘手的ECDLP數(shù)學(xué)難題,且會(huì)話密鑰K只使用一次,此后不再有效,即使得到密鑰K也沒(méi)有多大的實(shí)用價(jià)值。當(dāng)雙方發(fā)生爭(zhēng)執(zhí)時(shí),任何第三方都可以用通常的方式驗(yàn)證簽名。手機(jī)用戶發(fā)送兩次指令便可完成整個(gè)交易?;跈E圓曲線加密體制和AES加密算法的混合加密算法,大大減少了計(jì)算和通信的負(fù)荷,所以本系統(tǒng)運(yùn)算量小,易于在計(jì)算機(jī)的硬件和軟件上實(shí)現(xiàn)。
用戶通過(guò)手機(jī)支付交易時(shí),無(wú)需使用現(xiàn)金,即可實(shí)現(xiàn)輕松購(gòu)物。隨著手機(jī)的日益普及,手機(jī)支付將有很大的市場(chǎng)潛力和良好的發(fā)展前景。本文結(jié)合混合加密體制的理論和手機(jī)通信的的特點(diǎn),設(shè)計(jì)了一個(gè)可以處理高額交易的手機(jī)支付系統(tǒng),整個(gè)系統(tǒng)具有較高的安全性和實(shí)用性。
評(píng)論