本發(fā)明涉及公鑰體制加解密領(lǐng)域,尤其涉及一種基于NTRU的第三方移動支付方法。
背景技術(shù):
:現(xiàn)今主流的關(guān)于移動支付的研究主要集中在兩個方面:第一個主要是基于流行的通信協(xié)議設(shè)計的移動支付方案,主要包括NFC、紅外、藍牙、以及RFID等通信協(xié)議。藍牙支付屬于近場支付缺陷是安全性不高,紅外支付的缺陷是受限于支付的距離和角度,而NFC支付沒有以上的問題且即使沒有通電情況下,依然可以實現(xiàn)支付,因此NFC將會成為近場支付的主流技術(shù)。但是類似于NFC、紅外、藍牙、以及RFID等近場支付的支付方式,他們的使用場景為線下的小額支付,而對于線上的遠程支付卻不適用。第二個就是遠程支付方式,比較流行的有支付寶、微信支付、銀聯(lián)錢包等。關(guān)于這些第三方支付方式,主要有APP以及WAP支付兩種,對于APP應(yīng)用支付主流的加密技術(shù)就是通過對稱加密和非對稱加密結(jié)合手機短信的方式實現(xiàn)用戶的安全認證。對稱加密由于需要傳輸信息的雙方事先協(xié)商好秘鑰,無法滿足電子商務(wù)中支付雙方互不認識、互不信任的安全場景。而非對稱加密體制在長期應(yīng)用中成為了保護電子商務(wù)的主流安全體系,安全性基于其核心加解密算法。不同加解密算法的安全性建立在數(shù)學上的難解問題上。目前流行的就是基于大整數(shù)難分解的困難問題的RSA和橢圓曲線加解密算法ECC。與ECC加密簽名算法相比,傳統(tǒng)的簽名機制,如RSA算法,需要更多的處理資源和更多的存儲空間。ECC算法使用的密鑰長度只是同等加密強度的RSA算法密鑰長度的1/6,這個特點使得ECC密鑰存儲和證書存儲占用空間大大減少,數(shù)字簽名的處理效率得到提高,也使得ECC成為業(yè)內(nèi)公認的目前支持無線環(huán)境下的安全機制的一個最適合的選擇。但是隨著量子計算的發(fā)展,可以預(yù)計,后量子計算時代ECC算法不再安全嚴重威脅到電子商務(wù)的安全。因此抗擊量子計算攻擊的安全算法研究一直是研究的前沿和熱點,其中基于格的研究成果最為豐富。而基于格的各種算法中NTRU(NumberTheoryResearchUnit)算法由于其算法的高效,安全性達到了可抗擊量子計算的強度,成為應(yīng)用密碼學的熱門研究對象。2015年NTRU加密算法應(yīng)用于公鑰體制PubilicKeyInfrastructure(PKI)中,通過與RSA類PKI性能比較發(fā)現(xiàn),其速度有很大優(yōu)勢,且會較快速度產(chǎn)生CA證書。但是尚未見NTRU加密算法應(yīng)用于無線公鑰體制WirelessPubilicKeyInfrastructure(WPKI)中的報道。對于移動支付的安全需求來說,資源有限的支付終端既需要一個高效算法,支付過程的安全性又要求其核心加解密算法是一個能抗擊量子計算攻擊的算法。因次結(jié)合NTRU到WPKI中設(shè)計出適合移動支付的方法既是電子商務(wù)安全在后量子時代的迫切需求,也是是技術(shù)趨勢的必然選擇。技術(shù)實現(xiàn)要素:本發(fā)明為解決上述技術(shù)問題采用以下技術(shù)方案:一種基于NTRU的第三方移動支付方法,其中,用戶申請賬號的具體步驟如下:步驟A.1),用戶從CA機構(gòu)獲得NTRU-WPKI數(shù)字證書CA{A};步驟A.2),第三方支付平臺從CA機構(gòu)獲得NTRU-WPKI數(shù)字證書CA{B};步驟A.3),用戶和第三方支付平臺交換NTRU-WPKI數(shù)字證書,并通過會話密鑰協(xié)商算法得到會話密鑰KAB;步驟A.4),用戶下載第三方支付平臺的客戶端并通過客戶端向第三方支付平臺申請賬戶;步驟A.5),第三方支付平臺收到用戶的申請后,為用戶生成唯一的用戶標識IDA和對應(yīng)的hash函數(shù),并通過會話密鑰KAB加密IDA和該hash函數(shù)后發(fā)送給用戶的客戶端,發(fā)送信息如下:EAES(KAB,IDA||hash)其中,EAES表示用對稱加密算法AES加密,秘鑰為KAB,||表示將前后數(shù)據(jù)串聯(lián),加密內(nèi)容為IDA與hash的連接串;步驟A.6),客戶端收到經(jīng)過加密的IDA和hash函數(shù)后,通過會話密鑰KAB解密得用戶標識IDA以及對應(yīng)的hash函數(shù):DAES(KAB,EAES(KAB,IDA||hash))其中,DAES表示用對稱加密算法AES解密,秘鑰為KAB,解密內(nèi)容為接受到的信息EAES(KAB,IDA||hash);步驟A.7),客戶端生成在區(qū)間(0,1)之間的隨機數(shù)yA,并根據(jù)yA以及用戶IDA對應(yīng)的hash函數(shù)生成以下單項哈希鏈后保存:(hash(yA),hash2(yA),hash3(yA),...,hashN(yA))其中,N為大于2的自然數(shù);步驟A.8),客戶端將單項哈希鏈的鏈尾值hashN(yA)發(fā)送給第三方支付平臺,步驟A.9),第三方支付平臺收到單項哈希鏈的鏈尾值hashN(yA)后,將其保存,并發(fā)送信息給用戶表示賬號申請成功。用戶認證包含以下具體步驟:步驟B.1),客戶端取得保存的單項哈希鏈;步驟B.2),客戶端判斷單項哈希鏈的節(jié)點數(shù)是否大于2;如果單項哈希鏈的節(jié)點數(shù)大于2,將自己的IDA以及單項哈希鏈的倒數(shù)第二個節(jié)點的值發(fā)送給第三方支付平臺,同時,將單項哈希鏈的最后一個節(jié)點去除后保存;如果單項哈希鏈的節(jié)點數(shù)小于等于2,客戶端生成在區(qū)間(0,1)之間的隨機數(shù),并根據(jù)該隨機數(shù)以及用戶IDA對應(yīng)的hash函數(shù)生成節(jié)點數(shù)為N的新的單項哈希鏈,保存后將單項哈希鏈的鏈尾值發(fā)送給第三方支付平臺,并重新執(zhí)行步驟B.1);步驟B.3),第三方支付平臺根據(jù)用戶的IDA匹配到其對應(yīng)的hash函數(shù),通過其對應(yīng)的hash函數(shù)計算單項哈希鏈的倒數(shù)第二個節(jié)點值的哈希值,并判斷其是否等于單項哈希鏈的鏈尾值,如果相等,則表示該用戶認證成功。用戶向第三方支付平臺進行抗量子攻擊的支付過程包含以下具體步驟:步驟C.1),用戶通過客戶端向第三方支付平臺發(fā)送支付請求,其客戶端產(chǎn)生隨機數(shù)yB,哈希運算得到hash(yB),并計算發(fā)送加密信息如下:ENTRU(KBp,hash(yB)||ENTRU(KAr,hash(yB)))||IDA]]>其中,為用戶的私鑰,為用戶的公鑰,為用戶的秘鑰對,為第三方支付平臺的公鑰,為第三方支付平臺的私鑰,為第三方支付平臺的秘鑰對,ENTRU表示用基于NURU的加密算法進行加密;步驟C.2),第三方支付平臺收到信息后,根據(jù)IDA進行解密:DNTRU(KBr,ENTRU(KBp,hash(yB)||ENTRU(KAr,hash(yB))))]]>其中,DNTRU表示基于NURU的解密算法進行解密;步驟C.3),第三方支付平臺驗證是否合法,若合法則向用戶表示同意支付請求;步驟C.4),用戶的客戶端接受到第三方支付平臺同意支付請求的表示后,提取第三方支付平臺的公鑰利用會話密鑰KAB加密會話內(nèi)容得到并向第三方支付平臺發(fā)送信息步驟C.5),第三方支付平臺對用戶進行用戶認證,認證成功后,通過第三方支付平臺存儲的私鑰解密得到會話密鑰KAB后,發(fā)送信息給用戶表示會話密鑰已經(jīng)協(xié)商完成;步驟C.6),用戶的客戶端向第三方支付平臺發(fā)送支付信息:首先,將支付信息M進行哈希運算生成數(shù)字摘要hash(M),并用私鑰加密hash(M)得到然后,采用會話KAB加密支付信息M得到EAES(KAB,M),其中,EAES表示用對稱加密算法AES加密;最后,發(fā)送消息給第三方支付平臺;步驟C.7),第三方支付平臺收到客戶端發(fā)送的支付信息后,對用戶進行用戶認證,認證成功后,根據(jù)會話密鑰KAB解密為DAES(KAB,EAES(KAB,M))得到支付信息M,然后根據(jù)IDA提取用戶的公鑰并判斷與hash(M)是否相等,若相等,第三方支付平臺根據(jù)支付信息進行結(jié)算業(yè)務(wù),并發(fā)送支付成功消息給用戶。本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:1.移動支付的安全性達到了可以抗擊量子計算攻擊的強度;2.相較于基于ECC的WPKI,大幅度提高了移動支付的速度,改善了用戶體驗。附圖說明圖1是NTRU-WPKI數(shù)字證書體系的結(jié)構(gòu)示意圖;圖2是生成數(shù)字證書以及第三方賬號申請的流程示意圖;圖3是用戶認證的流程示意圖;圖4是可抗擊量子計算攻擊的支付的流程示意圖;圖5是WPKI與NTRU-WPKI數(shù)字證書生成速率對比圖。具體實施方式下面結(jié)合說明書附圖對本發(fā)明創(chuàng)造作進一步說明。由于支付過程中涉及的符號較多,首先定義符號意義如下:函數(shù)E算法名稱(參數(shù)1,參數(shù)2)表示用某個具體的加密算法,以參數(shù)1為秘鑰對參數(shù)2代表的信息進行加密得到的密文,函數(shù)D算法名稱(參數(shù)1,參數(shù)2)表示用某個具體的解密算法,以參數(shù)1為秘鑰對參數(shù)2代表的信息進行解密得到的明文,上述兩個函數(shù)互為逆函數(shù)。符號||表示將前后數(shù)據(jù)串聯(lián),tA為時戳,rA為現(xiàn)時數(shù)。IDA和IDB分別為用戶和第三方支付平臺唯一的用戶標識。每個用戶都會運行NTRU算法生成一組密鑰對,比如用戶A秘鑰對為為A的私鑰,為A的公鑰,用戶私鑰自己保留,公鑰信息以及其他注冊信息提交給登記機構(gòu),登記機構(gòu)審查后提交給CA,CA根據(jù)提供的公鑰以及用戶信息生成數(shù)字證書發(fā)送給用戶。如圖1所示,首先客戶運行NTRU算法生成密鑰對其中為A的私鑰,為A的公鑰,用戶私鑰自己保留,公鑰信息以及其他注冊信息提交給登記機構(gòu),登記機構(gòu)審查后提交給CA,CA根據(jù)提供的公鑰以及用戶信息生成數(shù)字證書發(fā)送給客戶A。如圖2所示,用戶申請賬號的具體步驟如下:步驟A.1),用戶從CA機構(gòu)獲得NTRU-WPKI數(shù)字證書CA{A};步驟A.2),第三方支付平臺從CA機構(gòu)獲得NTRU-WPKI數(shù)字證書CA{B};步驟A.3),用戶和第三方支付平臺交換NTRU-WPKI數(shù)字證書,并通過會話密鑰協(xié)商算法得到會話密鑰KAB;步驟A.4),用戶下載第三方支付平臺的客戶端并通過客戶端向第三方支付平臺申請賬戶;步驟A.5),第三方支付平臺收到用戶的申請后,為用戶生成唯一的用戶標識IDA和對應(yīng)的hash函數(shù),并通過會話密鑰KAB加密IDA和該hash函數(shù)后發(fā)送給用戶的客戶端,發(fā)送信息如下:EAES(KAB,IDA||hash)其中,EAES表示用對稱加密算法AES加密,秘鑰為KAB,||表示將前后數(shù)據(jù)串聯(lián),加密內(nèi)容為IDA與hash的連接串;步驟A.6),客戶端收到經(jīng)過加密的IDA和hash函數(shù)后,通過會話密鑰KAB解密得用戶標識IDA以及對應(yīng)的hash函數(shù):DAES(KAB,EAES(KAB,IDA||hash))其中,DAES表示用對稱加密算法AES解密,秘鑰為KAB,解密內(nèi)容為接受到的信息EAES(KAB,IDA||hash);步驟A.7),客戶端生成在區(qū)間(0,1)之間的隨機數(shù)yA,并根據(jù)yA以及用戶IDA對應(yīng)的hash函數(shù)生成以下單項哈希鏈后保存:(hash(yA),hash2(yA),hash3(yA),...,hashN(yA))其中,N為大于2的自然數(shù);步驟A.8),客戶端將單項哈希鏈的鏈尾值hashN(yA)發(fā)送給第三方支付平臺,步驟A.9),第三方支付平臺收到單項哈希鏈的鏈尾值hashN(yA)后,將其保存,并發(fā)送信息給用戶表示賬號申請成功。步驟A.3)中的會話密鑰協(xié)商算法具體如下:假設(shè)用戶和第三方支付平臺通信,為用戶的公鑰證書,為第三方支付平臺的公鑰證書。每個通信方都有兩個秘鑰,一個是公鑰,一個是私鑰。公鑰是眾所周知的,可以通過證書提取。私鑰是只有通信方自己知道的秘鑰。即用戶的公鑰為私鑰為第三方支付平臺的公鑰為私鑰為若發(fā)起會話的用戶要把他們之間的本次會話密鑰KAB發(fā)送給第三方支付平臺,那么用戶首先獲取第三方支付平臺的公鑰證書提出第三方支付平臺的公鑰然后將如下信息發(fā)送給第三方支付平臺:M=ENTRU(KBp,KAB||tA||rA||IDB||X)]]>X=ENTRU(KAr,IDB)]]>其中符號||表示將前后數(shù)據(jù)串聯(lián),ENTRU表示用NTRU算法進行加密,DNTRU表示用NTRU算法進行解密。tA為時戳,rA為現(xiàn)時數(shù),IDB為第三方支付平臺的身份,為用戶的公鑰證書。那么第三方支付平臺收到發(fā)送的信息后,首先用第三方支付平臺的私鑰解密信息M:DNTRU(KBr,ENTRU(KBp,KAB||tA||rA||IDB||X))]]>得:KAB||tA||rA||IDB||X若時間戳、現(xiàn)時數(shù)、IDB均有效,那么第三方支付平臺提取用戶的公鑰驗證簽名值:X=ENTRU(KAr,IDB)]]>DNTRU(KAp,ENTRU(KAr,IDB))]]>若以上簽名值有效,那么第三方支付平臺成功收到會話密鑰KAB。即通信雙方協(xié)商本次通話的會話密鑰KAB成功。如圖3所示,用戶認證包含以下具體步驟:步驟B.1),客戶端取得保存的單項哈希鏈;步驟B.2),客戶端判斷單項哈希鏈的節(jié)點數(shù)是否大于2;如果單項哈希鏈的節(jié)點數(shù)大于2,將自己的IDA以及單項哈希鏈的倒數(shù)第二個節(jié)點的值發(fā)送給第三方支付平臺,同時,將單項哈希鏈的最后一個節(jié)點去除后保存;如果單項哈希鏈的節(jié)點數(shù)小于等于2,客戶端生成在區(qū)間(0,1)之間的隨機數(shù),并根據(jù)該隨機數(shù)以及用戶IDA對應(yīng)的hash函數(shù)生成節(jié)點數(shù)為N的新的單項哈希鏈,保存后將單項哈希鏈的鏈尾值發(fā)送給第三方支付平臺,并重新執(zhí)行步驟B.1);步驟B.3),第三方支付平臺根據(jù)用戶的IDA匹配到其對應(yīng)的hash函數(shù),通過其對應(yīng)的hash函數(shù)計算單項哈希鏈的倒數(shù)第二個節(jié)點值的哈希值,并判斷其是否等于單項哈希鏈的鏈尾值,如果相等,則表示該用戶認證成功。如圖4所示,用戶向第三方支付平臺進行抗量子攻擊的支付過程包含以下具體步驟:步驟C.1),用戶通過客戶端向第三方支付平臺發(fā)送支付請求,其客戶端產(chǎn)生隨機數(shù)yB,哈希運算得到hash(yB),并計算發(fā)送加密信息如下:ENTRU(KBp,hash(yB)||ENTRU(KAr,hash(yB)))||IDA]]>其中,為用戶的私鑰,為用戶的公鑰,為用戶的秘鑰對,為第三方支付平臺的公鑰,為第三方支付平臺的私鑰,為第三方支付平臺的秘鑰對,ENTRU表示用基于NURU的加密算法進行加密;步驟C.2),第三方支付平臺收到信息后,根據(jù)IDA進行解密:DNTRU(KBr,ENTRU(KBp,hash(yB)||ENTRU(KAr,hash(yB))))]]>其中,DNTRU表示基于NURU的解密算法進行解密;步驟C.3),第三方支付平臺驗證是否合法,若合法則向用戶表示同意支付請求;步驟C.4),用戶的客戶端接受到第三方支付平臺同意支付請求的表示后,提取第三方支付平臺的公鑰利用會話密鑰KAB加密會話內(nèi)容得到并向第三方支付平臺發(fā)送信息步驟C.5),第三方支付平臺對用戶進行用戶認證,認證成功后,通過第三方支付平臺存儲的私鑰解密得到會話密鑰KAB后,發(fā)送信息給用戶表示會話密鑰已經(jīng)協(xié)商完成;步驟C.6),用戶的客戶端向第三方支付平臺發(fā)送支付信息:首先,將支付信息M進行哈希運算生成數(shù)字摘要hash(M),并用私鑰加密hash(M)得到然后,采用會話KAB加密支付信息M得到EAES(KAB,M),其中,EAES表示用對稱加密算法AES加密;最后,發(fā)送消息給第三方支付平臺;步驟C.7),第三方支付平臺收到客戶端發(fā)送的支付信息后,對用戶進行用戶認證,認證成功后,根據(jù)會話密鑰KAB解密為DAES(KAB,EAES(KAB,M))得到支付信息M,然后根據(jù)IDA提取用戶的公鑰并判斷與hash(M)是否相等,若相等,第三方支付平臺根據(jù)支付信息進行結(jié)算業(yè)務(wù),并發(fā)送支付成功消息給用戶。圖5為關(guān)于該原型系統(tǒng)的函數(shù)模塊結(jié)構(gòu)圖。從以上模塊圖可以看出,前后臺交互模塊貫穿了這個過程,這里本文采用的Http協(xié)議實現(xiàn)前后臺的交互。為了對比基于WPKI和NTRU-WPKI數(shù)字證書性能的差異,實現(xiàn)了兩套支付系統(tǒng)。一種是基于WPKI的數(shù)字證書移動支付系統(tǒng),加解密算法和簽名算法均為ECC;另一種是基于NTRU-WPKI移動支付系統(tǒng),加解密算法是NTRU,簽名算法為NTRUMLP,其他算法都一樣,即會話加密算法為AES算法,哈希函數(shù)為SHA-1。下表為不同安全級別下NTRU-WPKI的參數(shù)選擇。表1NTRU-WPKI參數(shù)選擇安全級別/(bit)NTRU-WPKI參數(shù)(N,p,q,Bs,Bt)112(401,3,2^19,240,80)128(439,3,2^20,264,88)196(593,3,2^20,300,100)256(743,3,2^21,336,112)表2WPKI與NTRU-WPKI數(shù)字證書生成速率對比安全級別/(bit)100個WPKI數(shù)字證書生成時間/(ms)100個NTRU-WPKI數(shù)字證書生成時間/(ms)80115037341112301211443412852619190711921241274221325625102373318從以上數(shù)據(jù)可以看出,在安全級別等同的情況下,NTRU-WPKI數(shù)字證書的生成速率比WPKI快很多。且隨著安全級別的變大,差距越來越明顯。在用戶認證階段:本文利用哈希鏈實現(xiàn)用戶認證,這里用WPKI的ECC簽名算法認證與本方案作為對比,這里ECC的安全級別為80bit。哈希函數(shù)為SHA-1。實驗環(huán)境同上。從表3可知,哈希鏈認證在速度方面遠遠超過ECC認證,且SHA-1在目前沒有破解。表3哈希鏈認證和ECC認證的速率對比100次ECC認證/(ms)100次哈希鏈認證/(ms)1831129在支付階段:本文將基于NTRU-WPKI數(shù)字證書方案和WPKI數(shù)字證書方案作為實驗對比。所得結(jié)果如表4所示。表4WPKI與NTRU-WPKI支付過程的速率對比安全級別/(bit)100次WPKI支付交易時間/(ms)100次NTRU-WPKI支付交易時間/(ms)804760546201126915373291289723990711922101782171625639730131978從上表可以看出,基于NTRU-WPKI的移動支付模型在支付階段速率相對于WPKI具有壓倒性優(yōu)勢。表5為NTRU-WPKI和WPKI的密鑰尺寸對比,實驗數(shù)據(jù)顯示NTRU-WPKI在密鑰尺寸遠大于WPKI。由此可見NTRU-WPKI相對于WPKI在數(shù)字證書生成以及移動支付加解密過程中速率快速得多。表5WPKI與NTRU-WPKI密鑰尺寸對比安全級別/(bit)NTRU-WPKI公鑰尺寸/(bits)WPKI的密鑰尺寸/(bits)1123033224128350125619251933842567690521綜上所述,NTRU-WPKI數(shù)字證書的移動支付方案存在的問題也很明顯。首先NTRU加密算法不具有RSA、ECC可以直接用私鑰加密然后公鑰解密的性質(zhì)。此外在NTRU-WPKI為基礎(chǔ)的公鑰加密措施中,加密算法和簽名算法是獨立的,而WPKI在加密和簽名算法均是同一個算法。因此這給系統(tǒng)設(shè)計以及參數(shù)選擇帶來一定的局限,此外基于NTRU-WPKI的密鑰尺寸遠大于基于WPKI的密鑰尺寸。然而,對于現(xiàn)如今移動終端G級別的內(nèi)存,NTRU-WPKI的密鑰尺寸對于內(nèi)存來說顯得微不足道。而值得一提的是本
技術(shù)領(lǐng)域:
技術(shù)人員可以理解的是,除非另外定義,這里使用的所有術(shù)語(包括技術(shù)術(shù)語和科學術(shù)語)具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣定義,不會用理想化或過于正式的含義來解釋。以上所述的具體實施方式,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳細說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施方式而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。當前第1頁1 2 3