1.一種基于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),第三方支付平臺收到用戶的申請后,為用戶生成唯一的用戶標(biāo)識IDA和對應(yīng)的hash函數(shù),并通過會話密鑰KAB加密IDA和該hash函數(shù)后發(fā)送給用戶的客戶端;
步驟A.6),客戶端收到經(jīng)過加密的IDA和hash函數(shù)后,通過會話密鑰KAB解密得用戶標(biāo)識IDA以及對應(yīng)的hash函數(shù);
步驟A.7),客戶端生成在區(qū)間(0,1)之間的隨機數(shù)yA,并根據(jù)yA以及用戶IDA對應(yīng)的hash函數(shù)生成以下單項哈希鏈后保存:
(hash(yA),hash 2(yA),hash 3(yA),...,hash N(yA))
其中,N為大于2的自然數(shù);
步驟A.8),客戶端將單項哈希鏈的鏈尾值hashN(yA)發(fā)送給第三方支付平臺,
步驟A.9),第三方支付平臺收到單項哈希鏈的鏈尾值hashN(yA)后,將其保存,并發(fā)送信息給用戶表示賬號申請成功。
2.根據(jù)權(quán)利要求1所述的基于NTRU的第三方移動支付方法,其特征在于,用戶認(rèn)證包含以下具體步驟:
步驟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é)點值的哈希值,并判斷其是否等于單項哈希鏈的鏈尾值,如果相等,則表示該用戶認(rèn)證成功。
3.根據(jù)權(quán)利要求2所述的基于NTRU的第三方移動支付方法,其特征在于,用戶向第三方支付平臺進(jìn)行抗量子攻擊的支付過程包含以下具體步驟:
步驟C.1),用戶通過客戶端向第三方支付平臺發(fā)送支付請求,其客戶端產(chǎn)生隨機數(shù)yB,哈希運算得到hash(yB),并計算發(fā)送加密信息如下:
其中,為用戶的私鑰,為用戶的公鑰,為用戶的秘鑰對,為第三方支付平臺的公鑰,為第三方支付平臺的私鑰,為第三方支付平臺的秘鑰對,ENTRU表示用基于NURU的加密算法進(jìn)行加密;
步驟C.2),第三方支付平臺收到信息后,根據(jù)IDA進(jìn)行解密:
其中,DNTRU表示基于NURU的解密算法進(jìn)行解密;
步驟C.3),第三方支付平臺驗證是否合法,若合法則向用戶表示同意支付請求;
步驟C.4),用戶的客戶端接受到第三方支付平臺同意支付請求的表示后,提取第三方支付平臺的公鑰利用會話密鑰KAB加密會話內(nèi)容得到并向第三方支付平臺發(fā)送信息
步驟C.5),第三方支付平臺對用戶進(jìn)行用戶認(rèn)證,認(rèn)證成功后,通過第三方支付平臺存儲的私鑰解密得到會話密鑰KAB后,發(fā)送信息給用戶表示會話密鑰已經(jīng)協(xié)商完成;
步驟C.6),用戶的客戶端向第三方支付平臺發(fā)送支付信息:
首先,將支付信息M進(jìn)行哈希運算生成數(shù)字摘要hash(M),并用私鑰加密hash(M)得到
然后,采用會話KAB加密支付信息M得到EAES(KAB,M),其中,EAES表示用對稱加密算法AES加密;
最后,發(fā)送消息給第三方支付平臺;
步驟C.7),第三方支付平臺收到客戶端發(fā)送的支付信息后,對用戶進(jìn)行用戶認(rèn)證,認(rèn)證成功后,根據(jù)會話密鑰KAB解密為DAES(KAB,EAES(KAB,M))得到支付信息M,然后根據(jù)IDA提取用戶的公鑰并判斷與hash(M)是否相等,若相等,第三方支付平臺根據(jù)支付信息進(jìn)行結(jié)算業(yè)務(wù),并發(fā)送支付成功消息給用戶。