一种基于NTRU的第三方移动支付方法与流程

文档序号:12622065阅读:333来源:国知局
一种基于NTRU的第三方移动支付方法与流程
本发明涉及公钥体制加解密领域,尤其涉及一种基于NTRU的第三方移动支付方法。
背景技术
:现今主流的关于移动支付的研究主要集中在两个方面:第一个主要是基于流行的通信协议设计的移动支付方案,主要包括NFC、红外、蓝牙、以及RFID等通信协议。蓝牙支付属于近场支付缺陷是安全性不高,红外支付的缺陷是受限于支付的距离和角度,而NFC支付没有以上的问题且即使没有通电情况下,依然可以实现支付,因此NFC将会成为近场支付的主流技术。但是类似于NFC、红外、蓝牙、以及RFID等近场支付的支付方式,他们的使用场景为线下的小额支付,而对于线上的远程支付却不适用。第二个就是远程支付方式,比较流行的有支付宝、微信支付、银联钱包等。关于这些第三方支付方式,主要有APP以及WAP支付两种,对于APP应用支付主流的加密技术就是通过对称加密和非对称加密结合手机短信的方式实现用户的安全认证。对称加密由于需要传输信息的双方事先协商好秘钥,无法满足电子商务中支付双方互不认识、互不信任的安全场景。而非对称加密体制在长期应用中成为了保护电子商务的主流安全体系,安全性基于其核心加解密算法。不同加解密算法的安全性建立在数学上的难解问题上。目前流行的就是基于大整数难分解的困难问题的RSA和椭圆曲线加解密算法ECC。与ECC加密签名算法相比,传统的签名机制,如RSA算法,需要更多的处理资源和更多的存储空间。ECC算法使用的密钥长度只是同等加密强度的RSA算法密钥长度的1/6,这个特点使得ECC密钥存储和证书存储占用空间大大减少,数字签名的处理效率得到提高,也使得ECC成为业内公认的目前支持无线环境下的安全机制的一个最适合的选择。但是随着量子计算的发展,可以预计,后量子计算时代ECC算法不再安全严重威胁到电子商务的安全。因此抗击量子计算攻击的安全算法研究一直是研究的前沿和热点,其中基于格的研究成果最为丰富。而基于格的各种算法中NTRU(NumberTheoryResearchUnit)算法由于其算法的高效,安全性达到了可抗击量子计算的强度,成为应用密码学的热门研究对象。2015年NTRU加密算法应用于公钥体制PubilicKeyInfrastructure(PKI)中,通过与RSA类PKI性能比较发现,其速度有很大优势,且会较快速度产生CA证书。但是尚未见NTRU加密算法应用于无线公钥体制WirelessPubilicKeyInfrastructure(WPKI)中的报道。对于移动支付的安全需求来说,资源有限的支付终端既需要一个高效算法,支付过程的安全性又要求其核心加解密算法是一个能抗击量子计算攻击的算法。因次结合NTRU到WPKI中设计出适合移动支付的方法既是电子商务安全在后量子时代的迫切需求,也是是技术趋势的必然选择。技术实现要素:本发明为解决上述技术问题采用以下技术方案:一种基于NTRU的第三方移动支付方法,其中,用户申请账号的具体步骤如下:步骤A.1),用户从CA机构获得NTRU-WPKI数字证书CA{A};步骤A.2),第三方支付平台从CA机构获得NTRU-WPKI数字证书CA{B};步骤A.3),用户和第三方支付平台交换NTRU-WPKI数字证书,并通过会话密钥协商算法得到会话密钥KAB;步骤A.4),用户下载第三方支付平台的客户端并通过客户端向第三方支付平台申请账户;步骤A.5),第三方支付平台收到用户的申请后,为用户生成唯一的用户标识IDA和对应的hash函数,并通过会话密钥KAB加密IDA和该hash函数后发送给用户的客户端,发送信息如下:EAES(KAB,IDA||hash)其中,EAES表示用对称加密算法AES加密,秘钥为KAB,||表示将前后数据串联,加密内容为IDA与hash的连接串;步骤A.6),客户端收到经过加密的IDA和hash函数后,通过会话密钥KAB解密得用户标识IDA以及对应的hash函数:DAES(KAB,EAES(KAB,IDA||hash))其中,DAES表示用对称加密算法AES解密,秘钥为KAB,解密内容为接受到的信息EAES(KAB,IDA||hash);步骤A.7),客户端生成在区间(0,1)之间的随机数yA,并根据yA以及用户IDA对应的hash函数生成以下单项哈希链后保存:(hash(yA),hash2(yA),hash3(yA),...,hashN(yA))其中,N为大于2的自然数;步骤A.8),客户端将单项哈希链的链尾值hashN(yA)发送给第三方支付平台,步骤A.9),第三方支付平台收到单项哈希链的链尾值hashN(yA)后,将其保存,并发送信息给用户表示账号申请成功。用户认证包含以下具体步骤:步骤B.1),客户端取得保存的单项哈希链;步骤B.2),客户端判断单项哈希链的节点数是否大于2;如果单项哈希链的节点数大于2,将自己的IDA以及单项哈希链的倒数第二个节点的值发送给第三方支付平台,同时,将单项哈希链的最后一个节点去除后保存;如果单项哈希链的节点数小于等于2,客户端生成在区间(0,1)之间的随机数,并根据该随机数以及用户IDA对应的hash函数生成节点数为N的新的单项哈希链,保存后将单项哈希链的链尾值发送给第三方支付平台,并重新执行步骤B.1);步骤B.3),第三方支付平台根据用户的IDA匹配到其对应的hash函数,通过其对应的hash函数计算单项哈希链的倒数第二个节点值的哈希值,并判断其是否等于单项哈希链的链尾值,如果相等,则表示该用户认证成功。用户向第三方支付平台进行抗量子攻击的支付过程包含以下具体步骤:步骤C.1),用户通过客户端向第三方支付平台发送支付请求,其客户端产生随机数yB,哈希运算得到hash(yB),并计算发送加密信息如下:ENTRU(KBp,hash(yB)||ENTRU(KAr,hash(yB)))||IDA]]>其中,为用户的私钥,为用户的公钥,为用户的秘钥对,为第三方支付平台的公钥,为第三方支付平台的私钥,为第三方支付平台的秘钥对,ENTRU表示用基于NURU的加密算法进行加密;步骤C.2),第三方支付平台收到信息后,根据IDA进行解密:DNTRU(KBr,ENTRU(KBp,hash(yB)||ENTRU(KAr,hash(yB))))]]>其中,DNTRU表示基于NURU的解密算法进行解密;步骤C.3),第三方支付平台验证是否合法,若合法则向用户表示同意支付请求;步骤C.4),用户的客户端接受到第三方支付平台同意支付请求的表示后,提取第三方支付平台的公钥利用会话密钥KAB加密会话内容得到并向第三方支付平台发送信息步骤C.5),第三方支付平台对用户进行用户认证,认证成功后,通过第三方支付平台存储的私钥解密得到会话密钥KAB后,发送信息给用户表示会话密钥已经协商完成;步骤C.6),用户的客户端向第三方支付平台发送支付信息:首先,将支付信息M进行哈希运算生成数字摘要hash(M),并用私钥加密hash(M)得到然后,采用会话KAB加密支付信息M得到EAES(KAB,M),其中,EAES表示用对称加密算法AES加密;最后,发送消息给第三方支付平台;步骤C.7),第三方支付平台收到客户端发送的支付信息后,对用户进行用户认证,认证成功后,根据会话密钥KAB解密为DAES(KAB,EAES(KAB,M))得到支付信息M,然后根据IDA提取用户的公钥并判断与hash(M)是否相等,若相等,第三方支付平台根据支付信息进行结算业务,并发送支付成功消息给用户。本发明采用以上技术方案与现有技术相比,具有以下技术效果:1.移动支付的安全性达到了可以抗击量子计算攻击的强度;2.相较于基于ECC的WPKI,大幅度提高了移动支付的速度,改善了用户体验。附图说明图1是NTRU-WPKI数字证书体系的结构示意图;图2是生成数字证书以及第三方账号申请的流程示意图;图3是用户认证的流程示意图;图4是可抗击量子计算攻击的支付的流程示意图;图5是WPKI与NTRU-WPKI数字证书生成速率对比图。具体实施方式下面结合说明书附图对本发明创造作进一步说明。由于支付过程中涉及的符号较多,首先定义符号意义如下:函数E算法名称(参数1,参数2)表示用某个具体的加密算法,以参数1为秘钥对参数2代表的信息进行加密得到的密文,函数D算法名称(参数1,参数2)表示用某个具体的解密算法,以参数1为秘钥对参数2代表的信息进行解密得到的明文,上述两个函数互为逆函数。符号||表示将前后数据串联,tA为时戳,rA为现时数。IDA和IDB分别为用户和第三方支付平台唯一的用户标识。每个用户都会运行NTRU算法生成一组密钥对,比如用户A秘钥对为为A的私钥,为A的公钥,用户私钥自己保留,公钥信息以及其他注册信息提交给登记机构,登记机构审查后提交给CA,CA根据提供的公钥以及用户信息生成数字证书发送给用户。如图1所示,首先客户运行NTRU算法生成密钥对其中为A的私钥,为A的公钥,用户私钥自己保留,公钥信息以及其他注册信息提交给登记机构,登记机构审查后提交给CA,CA根据提供的公钥以及用户信息生成数字证书发送给客户A。如图2所示,用户申请账号的具体步骤如下:步骤A.1),用户从CA机构获得NTRU-WPKI数字证书CA{A};步骤A.2),第三方支付平台从CA机构获得NTRU-WPKI数字证书CA{B};步骤A.3),用户和第三方支付平台交换NTRU-WPKI数字证书,并通过会话密钥协商算法得到会话密钥KAB;步骤A.4),用户下载第三方支付平台的客户端并通过客户端向第三方支付平台申请账户;步骤A.5),第三方支付平台收到用户的申请后,为用户生成唯一的用户标识IDA和对应的hash函数,并通过会话密钥KAB加密IDA和该hash函数后发送给用户的客户端,发送信息如下:EAES(KAB,IDA||hash)其中,EAES表示用对称加密算法AES加密,秘钥为KAB,||表示将前后数据串联,加密内容为IDA与hash的连接串;步骤A.6),客户端收到经过加密的IDA和hash函数后,通过会话密钥KAB解密得用户标识IDA以及对应的hash函数:DAES(KAB,EAES(KAB,IDA||hash))其中,DAES表示用对称加密算法AES解密,秘钥为KAB,解密内容为接受到的信息EAES(KAB,IDA||hash);步骤A.7),客户端生成在区间(0,1)之间的随机数yA,并根据yA以及用户IDA对应的hash函数生成以下单项哈希链后保存:(hash(yA),hash2(yA),hash3(yA),...,hashN(yA))其中,N为大于2的自然数;步骤A.8),客户端将单项哈希链的链尾值hashN(yA)发送给第三方支付平台,步骤A.9),第三方支付平台收到单项哈希链的链尾值hashN(yA)后,将其保存,并发送信息给用户表示账号申请成功。步骤A.3)中的会话密钥协商算法具体如下:假设用户和第三方支付平台通信,为用户的公钥证书,为第三方支付平台的公钥证书。每个通信方都有两个秘钥,一个是公钥,一个是私钥。公钥是众所周知的,可以通过证书提取。私钥是只有通信方自己知道的秘钥。即用户的公钥为私钥为第三方支付平台的公钥为私钥为若发起会话的用户要把他们之间的本次会话密钥KAB发送给第三方支付平台,那么用户首先获取第三方支付平台的公钥证书提出第三方支付平台的公钥然后将如下信息发送给第三方支付平台:M=ENTRU(KBp,KAB||tA||rA||IDB||X)]]>X=ENTRU(KAr,IDB)]]>其中符号||表示将前后数据串联,ENTRU表示用NTRU算法进行加密,DNTRU表示用NTRU算法进行解密。tA为时戳,rA为现时数,IDB为第三方支付平台的身份,为用户的公钥证书。那么第三方支付平台收到发送的信息后,首先用第三方支付平台的私钥解密信息M:DNTRU(KBr,ENTRU(KBp,KAB||tA||rA||IDB||X))]]>得:KAB||tA||rA||IDB||X若时间戳、现时数、IDB均有效,那么第三方支付平台提取用户的公钥验证签名值:X=ENTRU(KAr,IDB)]]>DNTRU(KAp,ENTRU(KAr,IDB))]]>若以上签名值有效,那么第三方支付平台成功收到会话密钥KAB。即通信双方协商本次通话的会话密钥KAB成功。如图3所示,用户认证包含以下具体步骤:步骤B.1),客户端取得保存的单项哈希链;步骤B.2),客户端判断单项哈希链的节点数是否大于2;如果单项哈希链的节点数大于2,将自己的IDA以及单项哈希链的倒数第二个节点的值发送给第三方支付平台,同时,将单项哈希链的最后一个节点去除后保存;如果单项哈希链的节点数小于等于2,客户端生成在区间(0,1)之间的随机数,并根据该随机数以及用户IDA对应的hash函数生成节点数为N的新的单项哈希链,保存后将单项哈希链的链尾值发送给第三方支付平台,并重新执行步骤B.1);步骤B.3),第三方支付平台根据用户的IDA匹配到其对应的hash函数,通过其对应的hash函数计算单项哈希链的倒数第二个节点值的哈希值,并判断其是否等于单项哈希链的链尾值,如果相等,则表示该用户认证成功。如图4所示,用户向第三方支付平台进行抗量子攻击的支付过程包含以下具体步骤:步骤C.1),用户通过客户端向第三方支付平台发送支付请求,其客户端产生随机数yB,哈希运算得到hash(yB),并计算发送加密信息如下:ENTRU(KBp,hash(yB)||ENTRU(KAr,hash(yB)))||IDA]]>其中,为用户的私钥,为用户的公钥,为用户的秘钥对,为第三方支付平台的公钥,为第三方支付平台的私钥,为第三方支付平台的秘钥对,ENTRU表示用基于NURU的加密算法进行加密;步骤C.2),第三方支付平台收到信息后,根据IDA进行解密:DNTRU(KBr,ENTRU(KBp,hash(yB)||ENTRU(KAr,hash(yB))))]]>其中,DNTRU表示基于NURU的解密算法进行解密;步骤C.3),第三方支付平台验证是否合法,若合法则向用户表示同意支付请求;步骤C.4),用户的客户端接受到第三方支付平台同意支付请求的表示后,提取第三方支付平台的公钥利用会话密钥KAB加密会话内容得到并向第三方支付平台发送信息步骤C.5),第三方支付平台对用户进行用户认证,认证成功后,通过第三方支付平台存储的私钥解密得到会话密钥KAB后,发送信息给用户表示会话密钥已经协商完成;步骤C.6),用户的客户端向第三方支付平台发送支付信息:首先,将支付信息M进行哈希运算生成数字摘要hash(M),并用私钥加密hash(M)得到然后,采用会话KAB加密支付信息M得到EAES(KAB,M),其中,EAES表示用对称加密算法AES加密;最后,发送消息给第三方支付平台;步骤C.7),第三方支付平台收到客户端发送的支付信息后,对用户进行用户认证,认证成功后,根据会话密钥KAB解密为DAES(KAB,EAES(KAB,M))得到支付信息M,然后根据IDA提取用户的公钥并判断与hash(M)是否相等,若相等,第三方支付平台根据支付信息进行结算业务,并发送支付成功消息给用户。图5为关于该原型系统的函数模块结构图。从以上模块图可以看出,前后台交互模块贯穿了这个过程,这里本文采用的Http协议实现前后台的交互。为了对比基于WPKI和NTRU-WPKI数字证书性能的差异,实现了两套支付系统。一种是基于WPKI的数字证书移动支付系统,加解密算法和签名算法均为ECC;另一种是基于NTRU-WPKI移动支付系统,加解密算法是NTRU,签名算法为NTRUMLP,其他算法都一样,即会话加密算法为AES算法,哈希函数为SHA-1。下表为不同安全级别下NTRU-WPKI的参数选择。表1NTRU-WPKI参数选择安全级别/(bit)NTRU-WPKI参数(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数字证书生成速率对比安全级别/(bit)100个WPKI数字证书生成时间/(ms)100个NTRU-WPKI数字证书生成时间/(ms)80115037341112301211443412852619190711921241274221325625102373318从以上数据可以看出,在安全级别等同的情况下,NTRU-WPKI数字证书的生成速率比WPKI快很多。且随着安全级别的变大,差距越来越明显。在用户认证阶段:本文利用哈希链实现用户认证,这里用WPKI的ECC签名算法认证与本方案作为对比,这里ECC的安全级别为80bit。哈希函数为SHA-1。实验环境同上。从表3可知,哈希链认证在速度方面远远超过ECC认证,且SHA-1在目前没有破解。表3哈希链认证和ECC认证的速率对比100次ECC认证/(ms)100次哈希链认证/(ms)1831129在支付阶段:本文将基于NTRU-WPKI数字证书方案和WPKI数字证书方案作为实验对比。所得结果如表4所示。表4WPKI与NTRU-WPKI支付过程的速率对比安全级别/(bit)100次WPKI支付交易时间/(ms)100次NTRU-WPKI支付交易时间/(ms)804760546201126915373291289723990711922101782171625639730131978从上表可以看出,基于NTRU-WPKI的移动支付模型在支付阶段速率相对于WPKI具有压倒性优势。表5为NTRU-WPKI和WPKI的密钥尺寸对比,实验数据显示NTRU-WPKI在密钥尺寸远大于WPKI。由此可见NTRU-WPKI相对于WPKI在数字证书生成以及移动支付加解密过程中速率快速得多。表5WPKI与NTRU-WPKI密钥尺寸对比安全级别/(bit)NTRU-WPKI公钥尺寸/(bits)WPKI的密钥尺寸/(bits)1123033224128350125619251933842567690521综上所述,NTRU-WPKI数字证书的移动支付方案存在的问题也很明显。首先NTRU加密算法不具有RSA、ECC可以直接用私钥加密然后公钥解密的性质。此外在NTRU-WPKI为基础的公钥加密措施中,加密算法和签名算法是独立的,而WPKI在加密和签名算法均是同一个算法。因此这给系统设计以及参数选择带来一定的局限,此外基于NTRU-WPKI的密钥尺寸远大于基于WPKI的密钥尺寸。然而,对于现如今移动终端G级别的内存,NTRU-WPKI的密钥尺寸对于内存来说显得微不足道。而值得一提的是本
技术领域
技术人员可以理解的是,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1