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