設(shè)算法;
[0051]S04將所述預(yù)設(shè)算法預(yù)存在所述服務(wù)器中,并將所述預(yù)設(shè)算法發(fā)送至所述移動終端。
[0052]優(yōu)選地,在步驟S04中,當(dāng)所述服務(wù)器中包括多個用戶預(yù)存的多個預(yù)設(shè)算法,則所述服務(wù)器將生成的預(yù)設(shè)算法與所述用戶信息進(jìn)行關(guān)聯(lián)之后再對所述預(yù)設(shè)算法進(jìn)行存儲,隨后發(fā)送至所述移動終端。
[0053]優(yōu)選地,在步驟S14中,所述服務(wù)器在所述第二時間的預(yù)設(shè)時間窗口內(nèi)生成第二動態(tài)口令集,所述服務(wù)器在所述第二動態(tài)口令集中查找與第一動態(tài)口令相同的口令,完成動態(tài)口令的認(rèn)證,實(shí)現(xiàn)所述交易信息和所述用戶信息的認(rèn)證。
[0054]本發(fā)明能帶來以有益效果是:
[0055]1.在本發(fā)明中,由于標(biāo)識用戶的用戶信息是唯一的,因而在注冊的過程中根據(jù)用戶信息生成的隨機(jī)數(shù)也是唯一的,生成的預(yù)設(shè)算法也就具有唯一性和不可預(yù)見性,這樣每個用戶都有自己對應(yīng)的算法,保障了用戶使用過程中的安全性能;
[0056]2.在本發(fā)明中,在移動終端進(jìn)行線下支付的過程中,由于虛擬卡具備支付能力,從而當(dāng)服務(wù)器實(shí)現(xiàn)了用戶信息和交易信息的認(rèn)證之后,移動終端即通過該虛擬卡進(jìn)行交易,實(shí)現(xiàn)線下支付,用戶不再需要聯(lián)網(wǎng)從用戶的銀行卡中支付,也不需要從移動電話運(yùn)營商中開設(shè)專用的支付賬號,整個過程方便快捷,安全性能高,同時給用戶帶來了更好的體驗(yàn),縮短了整個支付過程的時間。
【附圖說明】
[0057]下面結(jié)合附圖和【具體實(shí)施方式】對本發(fā)明作進(jìn)一步詳細(xì)說明:
[0058]圖1為本發(fā)明中移動終端虛擬線下支付系統(tǒng)結(jié)構(gòu)示意圖;
[0059]圖2為本發(fā)明中當(dāng)服務(wù)器中預(yù)存了多個預(yù)設(shè)算法時移動終端虛擬線下支付系統(tǒng)結(jié)構(gòu)示意圖;
[0060]圖3為本發(fā)明中移動終端虛擬線下支付方法流程示意圖;
[0061]圖4為本發(fā)明中移動終端進(jìn)行虛擬線下支付之前在服務(wù)器中進(jìn)行注冊的流程示意圖。
【具體實(shí)施方式】
[0062]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0063]如圖1所述為本發(fā)明提供的移動終端虛擬線下支付系統(tǒng),簡單來說,在支付系統(tǒng)中包括了移動終端、服務(wù)器、以及交易設(shè)備,在進(jìn)行線下支付的過程中,移動終端讀取交易設(shè)備發(fā)送的交易信息,同時獲取當(dāng)前的時間信息和能夠用于唯一標(biāo)識移動終端的用戶信息,最后使用預(yù)設(shè)算法生成第一動態(tài)口令;與此同時,服務(wù)器根據(jù)從移動設(shè)備中獲取的交易信息和用戶信息使用與移動設(shè)備中相同的預(yù)設(shè)算法生成第二動態(tài)口令;最后通過服務(wù)器中通過比對第一動態(tài)口令和第二動態(tài)口令實(shí)現(xiàn)移動設(shè)備的認(rèn)證,進(jìn)而移動終端實(shí)現(xiàn)虛擬線下線下支付,本發(fā)明提供的虛擬線下支付系統(tǒng),在商場、超市等購物、餐飲類千元以下的小額消費(fèi)中使用時,只需要用戶攜帶移動終端(如手機(jī))而已,大大提高了用戶體驗(yàn)。從以上對支付過程的描述來看,在進(jìn)行支付之前,為了在移動終端和服務(wù)器中分別預(yù)存相同的預(yù)設(shè)算法,移動終端在進(jìn)行線下支付之前,需要將用戶信息發(fā)送至服務(wù)器中進(jìn)行注冊,以下我們對注冊的過程進(jìn)行具體的描述:移動終端中獲取能夠用于唯一標(biāo)識用戶的用戶信息,隨后將該用戶信息發(fā)送至服務(wù)器中,服務(wù)器中接收到該用戶信息之后,隨即根據(jù)該用戶信息使用一隨機(jī)數(shù)生成器生成一隨機(jī)數(shù)(如,采用8進(jìn)制數(shù)進(jìn)行表示);隨機(jī)數(shù)生成之后隨即通過一預(yù)設(shè)重構(gòu)機(jī)制對內(nèi)置在服務(wù)器中的算法進(jìn)行重構(gòu)生成預(yù)設(shè)算法。要說明的是,在本發(fā)明中,我們對服務(wù)器中內(nèi)置的算法不作具體限定,其可以是SM3、SM4算法,甚至可以是橢圓算法等簡單的算法,用戶可以自主選擇;且該算法除了可以預(yù)先存儲在服務(wù)器中,也可以通過網(wǎng)絡(luò)等形式下載該算法,這樣每個用戶可以根據(jù)實(shí)際情況進(jìn)行選擇,即使每個用戶選擇的重構(gòu)前的算法是一樣的,經(jīng)過本發(fā)明提供的重構(gòu)機(jī)制得到的預(yù)設(shè)算法也是不一樣的,大大提高了認(rèn)證過程中的安全性能。
[0064]具體來說,在根據(jù)第二隨機(jī)數(shù)對算法進(jìn)行重構(gòu)生成預(yù)設(shè)算法的過程中至少包括以下一個步驟:根據(jù)隨機(jī)數(shù),確定預(yù)設(shè)算法的運(yùn)算順序;根據(jù)隨機(jī)數(shù),確定預(yù)設(shè)算法的分組數(shù)據(jù)塊的結(jié)構(gòu)以及分組數(shù)據(jù)塊的運(yùn)算順序;根據(jù)隨機(jī)數(shù),確定預(yù)設(shè)算法中的固定參數(shù)。
[0065]可以看出,在本發(fā)明中,可以通過以上三種方式對算法進(jìn)行重構(gòu),得到預(yù)設(shè)算法。具體來說,假設(shè)生成的隨機(jī)數(shù)為8個字節(jié),其中,第一位代表運(yùn)算順序,第二位代表分組數(shù)據(jù)塊,第三位代表固定參數(shù),將其帶入預(yù)設(shè)重構(gòu)機(jī)制對算法進(jìn)行重構(gòu)。
[0066]以通過改變運(yùn)算順序?qū)λ惴ㄟM(jìn)行重構(gòu)來說:假定算法的一般運(yùn)算順序依次包括W0,W1,W2,W3四個主步驟,且每個步驟中分別包括相應(yīng)的子步驟,如Wl中包括to,tl, t2, t3, t4五個子步驟,在本發(fā)明中,即可以通過隨機(jī)數(shù)中的某一位代表運(yùn)算順序,以改變該上述內(nèi)置算法的運(yùn)算順序,從而生成新的算法,具體地,如果隨機(jī)數(shù)為01234567,其中,第一位代表運(yùn)算順序,若此時第一位代表Wl中的子步驟的運(yùn)算順序,則表示to為五個子步驟中的第一個運(yùn)算步驟,同理,若第一位代表主步驟的運(yùn)算順序,則表示W(wǎng)l為則說明在主步驟Wl為第一運(yùn)算步驟;如果隨機(jī)數(shù)為21304567,且第一位代表運(yùn)算順序,若此時第一位代表主步驟的運(yùn)算順序,則表示步驟W2為主步驟中的第一運(yùn)算步驟,同理,若此時第一位代表Wl中子步驟的運(yùn)算順序,則表示步驟t2為五個子步驟中的第一個運(yùn)算步驟。特別地,在本發(fā)明中,隨機(jī)數(shù)采用八進(jìn)制數(shù)表示,假若此時隨機(jī)數(shù)中代表運(yùn)算順序的位數(shù)大于算法運(yùn)算過程中的步驟數(shù)量,如,隨機(jī)數(shù)為76543210,第一位7代表運(yùn)算順序,而此時算法的主步驟只有W1,W2,W3,W4四個步驟,算法在運(yùn)行的過程中,找不到步驟W7作為第一運(yùn)算步驟,則此時自動跳過,直接按照原順序進(jìn)行運(yùn)行。在本發(fā)明中,對上述的內(nèi)置算法及隨機(jī)數(shù)對算法運(yùn)算順序的改變都不作限定,只要運(yùn)算順序改變后算法的作用不變,能達(dá)到最初的目的,都包括在本發(fā)明的內(nèi)容中。
[0067]進(jìn)一步地,以通過改變分組數(shù)據(jù)塊的結(jié)構(gòu)和運(yùn)算順序重構(gòu)算法來說:其中,改變分組數(shù)據(jù)塊的結(jié)構(gòu)包括分組數(shù)據(jù)塊的數(shù)量也包括數(shù)據(jù)塊內(nèi)部的結(jié)構(gòu)的變化。例如:可以根據(jù)隨機(jī)數(shù)中某一位字節(jié)代表分組模塊的內(nèi)部結(jié)構(gòu)的改變,另一位代表重新分組過后的分組模塊的運(yùn)算順序帶入算法的運(yùn)算從而生成新的算法。以SM3雜湊算法為例,SM3的一般運(yùn)算順序依次是:填充、分組、迭代、壓縮,假若用戶信息m的長度為24bit,則算法在運(yùn)算的過程中首先對信息進(jìn)行填充,填充后的數(shù)據(jù)m’的長度為512bit的整數(shù)倍,隨后對填充后的數(shù)據(jù)按照512bit進(jìn)行分組,即分組后的每組數(shù)據(jù)為512bit,m’ = B(°)B(1)...Bilri)。具體地,在本發(fā)明中,假若分組后的數(shù)據(jù)塊B(°) = [m0, ml, m2, m3…m7],隨機(jī)數(shù)為01234567,且第一位代表分組數(shù)據(jù)塊的運(yùn)算順序,第二代表分組數(shù)據(jù)塊的結(jié)構(gòu),則此時在運(yùn)算過程中數(shù)據(jù)組ml與m0的位置進(jìn)行對換以此改變數(shù)據(jù)塊的結(jié)構(gòu),O表示第一個數(shù)據(jù)塊B(°)在第一步進(jìn)行運(yùn)算;類似地,若第二隨機(jī)數(shù)為24653107,則在運(yùn)算過程中m4與m0的位置進(jìn)行對換來改變數(shù)據(jù)塊的結(jié)構(gòu),2表示B?在第三步進(jìn)行運(yùn)算。當(dāng)然,在本發(fā)明中,我們對改變數(shù)據(jù)塊結(jié)構(gòu)的方法不作具體限定,即在上述例子中,當(dāng)隨機(jī)數(shù)為01234567時,代表ml可以與m0_m7中任一數(shù)組進(jìn)行對換,在實(shí)際中數(shù)據(jù)組的對換取決于預(yù)設(shè)重構(gòu)機(jī)制的設(shè)定。又例如,在本發(fā)明中,可以根據(jù)隨機(jī)數(shù)中某一字節(jié)代表分組數(shù)據(jù)塊的數(shù)量,另一位代表重新分組過后的分組數(shù)據(jù)塊的運(yùn)算順序帶入上述內(nèi)置算法的運(yùn)算從而生成新的算法,以SM3雜湊算法為例,在改變分組數(shù)據(jù)塊的數(shù)量的過程中,假如用戶信息m的長度為370bit,按照SM3傳統(tǒng)的算法會首先將信息m進(jìn)行填充為512bit的數(shù)據(jù),而在本發(fā)明中,可以首先將370bit的數(shù)據(jù)按照定長(如,每組200Bit)的數(shù)據(jù)組進(jìn)行分組,隨后再將分組過后的每組數(shù)據(jù)進(jìn)行填充為512bit以改變分組數(shù)據(jù)塊的結(jié)構(gòu),隨后再按照SM3正常的步驟進(jìn)行運(yùn)算,當(dāng)然,在本發(fā)明中,我們對上述的數(shù)據(jù)組的定長不作限定,只要其能達(dá)到本發(fā)明的目的,都包括在本發(fā)明的內(nèi)容中。
[0068]進(jìn)一步地,以改變固定參數(shù)來說:可以將隨機(jī)數(shù)中的某一個位代表固定參數(shù),參與到預(yù)設(shè)重構(gòu)機(jī)制的編程運(yùn)算中改變固定參數(shù)。以橢圓曲線算法為例:Y2 = X3+aX+b,以隨機(jī)數(shù)的某一位代