支付方法和支付安全码生成方法、装置、设备与存储介质与流程

文档序号:30224032发布日期:2022-05-31 23:52阅读:117来源:国知局
支付方法和支付安全码生成方法、装置、设备与存储介质与流程

1.本发明涉及网络信息技术领域,尤其涉及支付方法和支付安全码生成方法、装置、设备与存储介质。


背景技术:

2.电子支付是指消费者、商家和金融机构之间使用安全电子手段把支付信息通过信息网络安全地传送到银行或相应的处理机构,从而实现货币支付或资金流转的行为。人们在享受移动支付带来便利的同时,也要全面认知网络支付带来的风险。为了保障用户资金安全,减小安全隐患,通常会在支付过程中使用支付安全码。
3.现有支付过程中使用的支付安全码技术基于纸质支票和硬件加密器,携带不方便,容易丢失,且已不符合目前软件化趋势,安全性有所欠缺。


技术实现要素:

4.本发明的主要目的在于提供一种支付方法和支付安全码生成方法、装置、设备与存储介质,旨在解决支付过程安全性不足问题。
5.为实现上述目的,本发明提供一种支付方法,所述支付方法包括以下步骤:
6.获取第一凭证要素和支付安全码;
7.通过国密杂凑算法sm3计算所述第一凭证要素的第一哈希值;
8.通过国密非对称加密算法计算所述支付安全码的第二哈希值;
9.比较所述第一哈希值和所述第二哈希值;
10.若所述第一哈希值与所述第二哈希值相等,则支付安全核验通过。
11.可选地,所述获取第一凭证要素和支付安全码的步骤之前,所述方法还包括:
12.获取第二凭证要素;
13.基于所述第二凭证要素生成第一明文文本;
14.根据所述sm3,为所述第一明文文本生成第三哈希值;
15.根据国密对称加密算法sm4,使用对称密钥对所述第三哈希值进行加密生成第一加密文本;
16.根据所述sm2,用私钥对所述第一加密文本签名,得到所述支付安全码。
17.可选地,所述获取第二凭证要素的步骤之前所述方法还包括:
18.发送签约申请给签发中心,通过签发中心生成所述签约申请对应的公私密钥对;
19.接收所述签发中心发送的公钥;
20.生成第一凭证,并用所述公钥对所述第一凭证进行加密,得到加密凭证;
21.将所述加密凭证发送给签约中心;
22.判断所述加密凭证是否交换成功;
23.若是,则通过签发中心返回应答成功提示。
24.可选地,所述生成第一凭证,并用所述公钥对所述第一凭证进行加密,得到加密凭
证的步骤包括:
25.使用所述签发中心提供的算法包,生成所述对称密钥和序列号,所述第一凭证包括所述对称密钥和所述序列号;
26.基于所述sm2,将所述对称密钥和所述序列号用所述公钥加密,得到加密凭证。
27.可选地,所述判断所述加密凭证是否交换成功的步骤包括:
28.通过签发中心生成的所述私钥对所述加密凭证进行解密;
29.基于所述解密结果判断所述加密凭证是否交换成功。
30.可选地,所述通过国密杂凑算法sm3计算所述第一凭证要素的第一哈希值;通过国密非对称加密算法sm2计算所述支付安全码的第二哈希值的步骤包括:
31.根据所述第一凭证要素生成第二明文文本;
32.根据所述sm3为所述第二明文文本生成第一哈希值;
33.基于所述sm2,使用所述公钥对所述支付安全码进行解除签约,得到第二加密文本;
34.根据所述sm4,使用所述第一凭证对所述第二加密文本解密,得到第二哈希值。
35.为实现上述目的,本发明还提供一种支付安全码生成方法,所述支付安全码生成方法包括以下步骤:
36.获取第二凭证要素;
37.基于所述第二凭证要素生成第一明文文本;
38.根据所述sm3,为所述第一明文文本生成第三哈希值;
39.根据国密对称加密算法sm4,使用对称密钥对所述第三哈希值进行加密生成第一加密文本;
40.根据所述sm2,用私钥对所述第一加密文本签名,得到所述支付安全码。
41.此外,为实现上述目的,本发明还提供一种支付装置,所述装置包括:
42.获取模块,用于获取第一凭证要素和支付安全码;
43.第一计算模块,用于通过国密杂凑算法sm3计算所述第一凭证要素的第一哈希值;
44.第二计算模块,用于通过国密非对称加密算法计算所述支付安全码的第二哈希值;
45.比较模块,用于比较所述第一哈希值和所述第二哈希值;
46.核验模块,用于若所述第一哈希值与所述第二哈希值相等,则支付安全核验通过。
47.可选地,所述获取模块还用于:
48.获取第二凭证要素;
49.基于所述第二凭证要素生成第一明文文本;
50.根据所述sm3,为所述第一明文文本生成第三哈希值;
51.根据国密对称加密算法sm4,使用对称密钥对所述第三哈希值进行加密生成第一加密文本;
52.根据所述sm2,用私钥对所述第一加密文本签名,得到所述支付安全码。
53.可选地,所述获取模块还用于:
54.发送签约申请给签发中心,通过签发中心生成所述签约申请对应的公私密钥对;
55.接收所述签发中心发送的公钥;
56.生成第一凭证,并用所述公钥对所述第一凭证进行加密,得到加密凭证;
57.将所述加密凭证发送给签约中心;
58.判断所述加密凭证是否交换成功;
59.若是,则通过签发中心返回应答成功提示。
60.可选地,所述获取模块还用于:
61.使用所述签发中心提供的算法包,生成所述对称密钥和序列号,所述第一凭证包括所述对称密钥和所述序列号;
62.基于所述sm2,将所述对称密钥和所述序列号用所述公钥加密,得到加密凭证。
63.可选地,所述获取模块还用于:
64.通过签发中心生成的所述私钥对所述加密凭证进行解密;
65.基于所述解密结果判断所述加密凭证是否交换成功。
66.可选地,所述第一计算模块还用于:
67.根据所述第一凭证要素生成第二明文文本;
68.根据所述sm3为所述第二明文文本生成第一哈希值;
69.可选地,所述第二计算模块还用于:
70.基于所述sm2,使用所述公钥对所述支付安全码进行解除签约,得到第二加密文本;
71.根据所述sm4,使用所述第一凭证对所述第二加密文本解密,得到第二哈希值。
72.此外,为实现上述目的,本发明还提供一种支付安全码生成装置,所述装置包括:
73.凭证要素获取模块,用于获取第二凭证要素;
74.生成模块,用于基于所述第二凭证要素生成第一明文文本;
75.第三计算模块,用于根据所述sm3,为所述第一明文文本生成第三哈希值;
76.第四计算模块,用于根据国密对称加密算法sm4,使用对称密钥对所述第三哈希值进行加密生成第一加密文本;
77.支付安全码生成模块,用于根据所述sm2,用私钥对所述第一加密文本签名,得到所述支付安全码。
78.此外,为实现上述目的,本发明还提供一种支付和/或支付安全码生成设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的支付和/或支付安全码生成程序,所述支付程序配置为实现如权利要求1至6中任一项所述的支付方法的步骤,所述支付安全码生成程序配置为实现如权利要求7所述的支付安全码生成方法的步骤。
79.此外,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有支付和/或支付安全码生成程序,所述支付程序被处理器执行时实现如权利要求1至6任一项所述的支付方法的步骤,所述支付安全码生成程序被处理器执行时实现如权利要求7所述的支付安全码生成方法的步骤。
80.本发明实施例提出的支付方法和支付安全码生成方法、装置、设备与存储介质,通过获取第一凭证要素和支付安全码,并使用国密杂凑算法sm3计算得到第一凭证要素对应的第一哈希值,通过国密非对称加密算法sm2计算得到支付安全码的第二哈希值,进一步地判断第一哈希值和第二哈希值是否相同,从而实现支付安全核验,使得交易的安全保障效
果得到提升。并且还提供了支付安全码生成方法,通过获取第二凭证要素,基于第二凭证要素生成第一明文文本,根据所述sm3,为所述第一明文文本生成第三哈希值,进而根据国密对称加密算法sm4,使用对称密钥对所述第三哈希值进行加密生成第一加密文本,根据所述sm2,用私钥对所述第一加密文本签名,得到所述支付安全码,实现了基于国密算法生成支付安全码,保障了整个交易过程的安全性。
附图说明
81.图1是本发明实施例方案涉及的硬件运行环境的支付和/或支付安全码生成设备的结构示意图;
82.图2为本发明支付方法第一实施例的流程示意图;
83.图3为本发明支付方法第二实施例生成支付安全码的流程示意图;
84.图4为本发明支付方法一实施例的密钥交换流程图;
85.图5为本发明支付方法一实施例的核验支付密码的流程图;
86.图6为本发明支付方法一实施例的功能模块示意图;
87.图7为本发明支付安全码生成方法一实施例的功能模块示意图。
88.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
89.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
90.参照图1,图1为本发明实施例方案涉及的硬件运行环境的支付和/或支付安全码生成设备结构示意图。
91.如图1所示,该支付设备可以包括:处理器1001,例如中央处理器(central processing unit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(random access memory,ram)存储器,也可以是稳定的非易失性存储器(non-volatile memory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
92.本领域技术人员可以理解,图1中示出的结构并不构成对支付和/或支付安全码生成设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
93.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及支付和/或支付安全码生成程序。
94.在图1所示的支付和/或支付安全码生成设备中,网络接口1004主要用于与其他设备进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明支付和/或支付安全码生成设备中的处理器1001、存储器1005可以设置在支付和/或支付安全码生成设备中,所述支付和/或支付安全码生成设备通过处理器1001调用存储器1005中存储的支付程序,并执行本发明实施例提供的支付和/或支付安全码生成方法。
95.本发明实施例提供了一种支付方法,参照图2,图2为本发明一种支付方法第一实施例的流程示意图。
96.本实施例中,所述支付方法包括:
97.步骤s10,获取第一凭证要素和支付安全码;
98.步骤s20,通过国密杂凑算法sm3计算所述第一凭证要素的第一哈希值;
99.步骤s30,通过国密非对称加密算法计算所述支付安全码的第二哈希值;
100.步骤s40,比较所述第一哈希值和所述第二哈希值;
101.步骤s50,若所述第一哈希值与所述第二哈希值相等,则支付安全核验通过。
102.本实施例支付方法运用于金融交易机构及银行系统中。对于金融机构及银行等来说,保障交易安全是尤其重要的。在本实施例中,支付安全码用于金融交易过程中对交易过程进行安全保护。凭证要素为银行签发凭证时凭证包含的信息,包括凭证号码、签发日期、收款账号、支付金额、收款人姓名等,每张凭证都是不一样的,是类似“身份证”id的存在。现有银行业核心领域长期以来都是沿用3des、sha-1、rsa等国际通用的密码算法体系及相关标准。为保障重要经济系统密码应用安全,也为从根本上摆脱对国外密码技术和产品的过度依赖,国产密码算法已在全国范围内大力推广,国密算法是我国自主研发创新的一套数据加密处理系列算法,从sm1-sm4分别实现了对称、非对称、摘要等算法功能。因此,本实施例将交易核验信息进行国密算法加密,一方面是不易被破解,交易安全性的高,另一方面是基于国密算法,对推动国家自有密码体系的建设是非常有好处的。
103.以下将对各个步骤进行详细说明:
104.步骤s10,获取第一凭证要素和支付安全码;
105.在一实施例中,获取第一凭证要素和支付安全码。可以理解的,在金融交易中,由于网上支付和移动支付的普及,不仅给支付带来了便捷,也带来了金融安全隐患,通常在支付交易前,需要对收款人身份进行核验,在验证身份的安全性后,才能进一步地进行交易,那么这时候就需要一个能代表收款人身份的凭证,本实施例采用第一凭证要素和支付安全码作为支付凭证,第一凭证要素和支付安全码对于一次交易或者一个账号来说都是唯一的,因此首先获取第一凭证要素和支付安全码。其中,支付安全码可以是密码、密文等。
106.步骤s20,通过国密杂凑算法sm3计算所述第一凭证要素的第一哈希值;
107.在一实施例中,通过国密杂凑算法sm3计算所述第一凭证要素的第一哈希值。其中,国密杂凑算法sm3是sm3国密算法,具体的,sm3是国密杂凑算法,适用于商用密码应用中的数字签名和验证消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。其中“sm”代表“商密”,即用于商用的、不涉及国家秘密的密码技术。因为不同的凭证要素计算出来的哈希值是不同的,并且即使是同一个凭证要素,可能部分数据被恶意篡改,仅仅通过凭证要素本身来判断是不安全的,为了验证第一凭证要素的唯一性,通过为其生成第一哈希值,由于哈希值本身唯一的特性,一旦数据发生了变化,哪怕是一个微小的变化,他的哈希值也会发生变化,因此可以用哈希值来判断两个文件是否相同。
108.步骤s30,通过国密非对称加密算法sm2计算所述支付安全码的第二哈希值;
109.在一实施例中,通过国密非对称加密算法sm2计算得到支付安全码对应的第二哈希值,也即在获取到支付安全码后,计算其对应的第二哈希值。和步骤s20中计算哈希值的目的类似,为的是获取支付安全码独一无二的哈希值,以进行安全性验证。sm2国密非对称
加密算法制定有相应的sm2标准,包括总则、数字签名算法、密钥交换协议和公钥加密算法四个部分,并在每个部分的附录详细说明了实现的相关细节及示例。sm2加密算法属于现有技术,因此,使用sm2国密算法对支付安全码进行解密的具体步骤在此不加赘述。
110.步骤s40,比较所述第一哈希值和所述第二哈希值;
111.在一实施例中,需要说明的是,支付安全码也是由银行签发凭证的时候产生的凭证要素加密生成的,因此,支付安全码解密生成的第二哈希值如果和第一凭证要素生成的第一哈希值是匹配的,那么可以证明这个支付安全码和第一凭证要素是对应的,有效的。因此,需要对第一哈希值和第二哈希值进行比较,根据比较结果判断是否是正常安全的交易。由于支付安全码和凭证要素都使用了国密算法进行加密处理,因此信息传输的安全性就获得了加强。
112.步骤s50,若所述第一哈希值与所述第二哈希值相等,则支付安全核验通过。
113.在一实施例中,若第一哈希值与第二哈希值相等,则支付安全核验通过。可以理解的,当由国密算法计算得到的第一哈希值和第二哈希值相等,那么可以证明持有凭证的交易申请方是合法的,并且支付安全码也是正确对应的,则支付安全核验通过,可以进行支付交易,并且可以通过输出核验通过提示。
114.本实施例通过获取第一凭证要素和支付安全码,并使用国密杂凑算法sm3计算得到第一凭证要素对应的第一哈希值,通过国密非对称加密算法sm2计算得到支付安全码的第二哈希值,进一步地判断第一哈希值和第二哈希值是否相同,从而实现支付安全核验,使得交易的安全保障效果得到提升。
115.进一步地,基于本发明支付方法第一实施例,提出本发明支付方法第二实施例。
116.参照图3,图3为本发明支付方法第二实施例生成支付安全码的流程图,支付方法第二实施例与支付方法第一实施例的区别在于,所述获取第一凭证要素和支付安全码的步骤之前所述方法还包括:
117.步骤s11,获取第二凭证要素;
118.步骤s12,基于所述第二凭证要素生成第一明文文本;
119.步骤s13,根据所述sm3,为所述第一明文文本生成第三哈希值;
120.步骤s14,根据国密对称加密算法sm4,使用对称密钥对所述第三哈希值进行加密生成第一加密文本;
121.步骤s15,根据所述sm2,用私钥对所述第一加密文本签名,得到所述支付安全码。
122.在本实施例中,签约方通过获取第二凭证要素,并为其生成第一明文文本,再由第一明文文本计算得到第三哈希值,使用对称密钥对第三哈希值进行加密生成第一加密文本,并用国密非对称加密算法sm2和私钥,对加密结果第一加密文本进行数字签名,生成支付安全码。
123.以下将对各个步骤进行详细说明:
124.步骤s11,获取第二凭证要素;
125.在一实施例中,获取第二凭证要素。因为支付安全码是在银行或金融机构下发凭证的时候就生成的,也即是在支付核验之前就生成的,因此,先获取第二凭证要素,进一步地由第二凭证要素生成对应的支付安全码。需要说明的是,第二凭证要素和第一凭证要素可以是相同的,并且在一次交易中凭证要素的内容包含的类别必须是一样的,例如支付安
全码是通过凭证要素:凭证号码、签发日期、收款账号和支付金额生成的,那么在验证的时候凭证要素的内容也应该是由凭证号码、签发日期、收款账号、支付金额组成的,不然是肯定不可能对应上的。
126.步骤s12,基于所述第二凭证要素生成第一明文文本;
127.在一实施例中,根据获取到的第二凭证要素生成第一明文文本。具体的,将凭证要素拼接,生成明文文本。凭证要素是一些文本或者数字,文本拼接方法不进行限定,可以用“/”、“|”等符号进行拼接,也可以直接简单的将文本组合在一起,例如:使用“+”进行拼接,凭证要素包括凭证号码、签发日期、收款账号、支付金额,则拼接得到“410075220+20220101+120045+10000”,即为第一明文文本。
128.步骤s13,根据所述sm3,为所述第一明文文本生成第三哈希值;
129.在一实施例中,通过国密杂凑算法sm3,生成第一明文文本的第三哈希值。可以理解的,为了保证第二凭证要素数据的完整性,使用国密杂凑算法sm3,也即sm3加密算法对拼接后得到的第一明文文本进行加密,得到第三哈希值。
130.表达式:hash=sm3(m)
131.其中,第一明文文本简称为m;
132.hash为第三哈希值。
133.步骤s14,根据国密对称加密算法sm4,使用对称密钥对所述第三哈希值进行加密生成第一加密文本;
134.在一实施例中,根据国密对称加密算法sm4,使用对称密钥对第三哈希值进行加密生成第一加密文本。对称密钥是生成支付安全码的步骤之前,签发中心和签约方安全交换得到的,签发中心和签约方都保存有相同的对称密钥。对称密钥加密,即发送和接收数据的双方必须使用相同的/对称的密钥对明文进行加密和解密运算。国密对称加密算法sm4也即sm4加密算法,国密算法sm4算法具有128位密钥长度和分组长度。sm4算法采用的是非线性迭代结构,每次迭代由一个轮函数给出,其中轮函数由一个非线性变换和线性变换复合而成,非线性变换由s盒所给出。因此,使用对称密钥和国密对称加密算法sm4对第三哈希值进行加密运算,生成第一加密文本。
135.简单来说,sm4算法的加密流程包括以下几个步骤:
136.1、将16字节密钥按照4字节一组分成4组,再根据密钥扩展算法,生成32组4字节轮密钥
137.2、再将输入的16字节数据也按照4字节一组分成4组进行32轮循环迭代运算(即按照指定的公式重复执行运算)。每一轮加密过程中,分别将各组数据与轮密钥进行异或操作,再将结果进行s盒变换。
138.3、32轮循环迭代运算后,将4组数据进行一个线性变换,并组合起来,最终得到16字节密文。
139.国密算法sm4本身就有安全高效的特点,因而使用sm4算法进行对第三哈希值进行加密能够提高加密过程的安全性,并且加密效率高。
140.步骤s15,根据所述国密非对称加密算法,用私钥对所述第一加密文本签名,得到支付安全码。
141.在一实施例中,通过国密非对称加密算法,用私钥对第一加密文本签名,得到第一
支付密码密文。其中,签名也即数字签名,数字签名能确定消息的完整性。因为数字签名的特点是它代表了文件的特征,文件如果发生改变,数字摘要的值也将发生变化。不同的文件将得到不同的数字摘要。并且签名与原有文件已经形成了一个混合的整体数据,不可能被篡改。因此为了保障第一加密文本的完整性,使用sm2加密算法对第一加密文本签名,得到支付安全码。
142.步骤s14和步骤s15的表达式:c=sm2(sm4(hash,ak),sk)
143.使用sm4算法并使用ak对哈希值进行加密,并用sm2算法和sk对加密结果(也即第一加密文本)进行数字签名得到支付安全码(以上简称c)
144.参照图3,图3为本发明支付方法中产生支付安全码的流程图,对本实施例进行概述。图中,明文也即第一明文文本,图中省略了将凭证要素拼接得到第一明文文本的步骤。哈希值也即第三哈希值;加密值也即第一加密文本。通过对凭证要素进行拼接得到明文,使用sm3加密算法为明文生成hash值,基于sm4加密算法使用对称密钥ak对hash进行加密,并基于sm2加密算法用私钥sk对加密值签名,得到支付安全码。
145.本实施例通过获取第二凭证要素,由第二凭证要素生成第一明文文本,根据所述国密杂凑算法sm3,为所述第一明文文本生成第三哈希值,并根据国密对称加密算法sm4,使用对称密钥对第三哈希值进行加密生成第一加密文本,然后根据国密非对称加密算法,用私钥对所述第一加密文本签名,得到了支付安全码。由于使用的对称密钥是签约方生成的,这样签约方和签发中心两方都参与了加密的过程,避免了仅由签发中心一方参与得到支付密码,提升了支付安全码生成过程的安全性。
146.需要说明的是,本发明支付安全码生成方法可以参照本实施例实施。
147.进一步地,基于本发明支付方法第一、二实施例,提出本发明支付方法第三实施例。
148.支付方法第三实施例与支付方法第一、二实施例的区别在于,所述获取第二凭证要素的步骤之前所述方法还包括:
149.步骤s111,发送签约申请给签发中心,通过签发中心生成所述签约申请对应的公私密钥对;
150.步骤s112,接收所述签发中心发送的公钥;
151.步骤s113,生成第一凭证,并用所述公钥对所述第一凭证进行加密,得到加密凭证;
152.步骤s114,将所述加密凭证发送给签约中心;
153.步骤s115,判断所述加密凭证是否交换成功;
154.步骤s116,若是,则通过签发中心返回应答成功提示。
155.在本实施例中,签约时,由签约方向签发中心申请密钥。签发中心为本次签约生成密钥对,将私钥(sk)本地保存,将公钥(vk)返回给签约方。签约方生成第一凭证。并将第一凭证通过sm2算法使用公钥加密后传递给签发中心。签发中心收到后返回应答成功,即完成密钥交换。
156.以下将对各个步骤进行详细说明:
157.步骤s111,发送签约申请给签发中心,通过签发中心生成所述签约申请对应的公私密钥对;
158.在一实施例中,发送签约申请给签发中心,签发中心收到签约申请后,为本次签约生成对应的公私密钥对。可以理解的,当签约方需要办理交易签约的时候,需要提出签约申请,签发中心则根据申请和对应的签约方生成公私密钥对,作为双方交易的保障,其中公私密钥对包括sk(secret key)非对称加密算法私钥和vk(verify key)非对称加密算法公钥。生成公私密钥对的方法有很多,例如:可以使用强命名工具(sn.exe)创建。
159.步骤s112,接收所述签发中心发送的公钥;
160.在一实施例中,接收签发中心发送来的公钥。在签发中心生成公私密钥对后,会将私钥本地保存,并且将公钥发送给签约方。
161.步骤s113,生成第一凭证,并用所述公钥对所述第一凭证进行加密,得到加密凭证;
162.步骤s114,将所述加密凭证发送给签约中心;
163.在一实施例中,由签约方生成第一凭证,并用公钥对第一凭证进行加密,生成加密凭证。具体的,第一凭证可以是对称密钥,由签约方生成对称密钥,并且将对称密钥加密,得到加密凭证。因为对称加密过程中,加密和解密都使用同一个密钥,如何把密钥安全地传递到解密者手上就成了必须要解决的问题。因此,为了解决该问题,本实施中将加密凭证进行加密传输。
164.步骤s115,判断所述加密凭证是否交换成功;
165.在一实施例中,判断加密凭证是否交换成功,也即加密凭证是否传输到签发中心处。可以理解的,由于需要用于加密凭证中的对称密钥才能进行对称加密的功能,并且加密凭证在传输过程中可能被恶意截取,或者传输出现错误,因此需要确认签发中心收到了加密凭证。具体的,可以以是否收到加密凭证报文为判断依据。
166.步骤s116,若是,则通过签发中心返回应答成功提示。
167.在一实施例中,若判断签发中心收到了该加密凭证,则对签约方返回应答成功提示。可以理解的,因为在后续交易中会使用同一个对称密钥进行安全验证,所以若签发中心收到了加密凭证,需要告知签约方密钥交换成功,可以进行交易操作。若没有接收到的话,则需要对具体情况进行判定,可以选择让签约方重新发送加密凭证或者是将本次签约作废,重新进行交换。
168.进一步地,在一实施例中,所述生成第一凭证,并用所述公钥对所述第一凭证进行加密,得到加密凭证的步骤包括:
169.步骤a,使用所述签发中心提供的算法包,生成所述对称密钥和序列号,所述第一凭证包括所述对称密钥和所述序列号;
170.在一实施例中,根据签发中心提供的算法包,签约方使用该算法包,生成对称密钥和对应的序列号。序列号是数据包序号,为根据对称密钥随机生成的一串数字,可以用来保证传输可靠性。当接收方接收到数据报文后,可以根据序列号来确认是否该报文是需要的报文。具体地,在一实施例中,可以通过设置seq命令语句来生成序列号。需要说明的是,根据签发中心提供的算法包生成对称密钥和序列号比较便捷,不需要签约方,例如:银行,准备一套生成算法。当然,在另一实施例中也可以使用银行自身安全机制生成对称密钥ak。根据提供的算法包生成对称密钥和序列号仅作为优选实施例。
171.步骤b,基于所述sm2,将所述对称密钥和所述序列号用所述公钥加密,得到加密凭
证。
172.在一实施例中,根据sm2和公钥,对对称密钥和序列号加密,得到加密凭证。因为已经把公钥传给签约方了,这时候用sm2公钥加密确保传输安全并且确保只有签发中心可以解密。
173.可以理解的,非对称加密算法需要两个密钥来进行加密和解密,就是使用公钥加密,需要用私钥解密。现在签发中心手里只有私钥,对称密钥还没有交换,所以签发中心收到是无法解密的。因此,这一步骤中使用国密非对称加密算法也即sm2和公钥进行加密。具体地,由于sm2算法为公开算法,使用sm2加密算法进行加密的步骤在此不赘述。
174.进一步地,在一实施例中,所述判断所述加密凭证是否交换成功的步骤包括:
175.步骤c,通过签发中心保存的所述私钥对所述加密凭证进行解密;
176.步骤d,基于所述解密结果判断所述加密凭证是否交换成功。
177.在一实施例中,为了判断加密凭证是否交换成功,通过签发中心的私钥对加密凭证进行解密,根据解密结果判断是否交换成功。其中,私钥为生成的公私密钥对中的私钥;解密结果包括解密成功,解密失败。根据签发中心获取的报文,如果用私钥能把这个加密报文(或凭证)解签,则证明加密凭证交换成功,也即签发中心得到解签后加密凭证中的对称密钥。需要说明的是,在一实施例中,加密凭证包括序列号和对称密钥,则需要用序列号和私钥进行解签,若能解签成功得到对称密钥则证明交换成功。
178.参照图4,图4为本发明支付方法一实施例的密钥交换流程图,进行说明:签约时,由签约方向签发中心申请密钥。签发中心为本次签约生成公私密钥对,将私钥(sk)本地保存,将公钥(vk)返回给签约方。签约方使用签发中心提供的算法包,生成对称密钥(ak)和seq序列号。并将这两个值使用sm2公钥加密后传递给签发中心。签发中心收到后返回应答成功,即完成密钥交换。
179.本实施例通过发送签约请求,通过签发中心生成所述签约申请对应的公私密钥对,接收所述签发中心发送的公钥;生成第一凭证,用该公钥对第一凭证进行加密,得到加密凭证,将所述加密凭证发送给签约中心,判断所述加密凭证是否交换成功,若交换成功,则通过签发中心返回应答成功提示,实现了密钥的安全交换。
180.进一步地,基于本发明支付方法的在前实施例,提出本发明支付方法的第四实施例,本发明支付方法的第四实施例与在前实施例的区别在于,所述通过国密杂凑算法sm3计算所述第一凭证要素的第一哈希值;通过国密非对称加密算法sm2计算所述支付安全码的第二哈希值的步骤包括:
181.步骤s21,根据所述第一凭证要素生成第二明文文本;
182.步骤s22,根据所述sm3为所述第二明文文本生成第一哈希值;
183.步骤s23,基于所述sm2,使用所述公钥对所述支付安全码进行解除签约,得到第二加密文本;
184.步骤s24,根据所述sm4,使用所述第一凭证对所述第二加密文本解密,得到第二哈希值。
185.在本实施例中,首先由第一凭证要素生成第二明文文本,再通过sm3计算得到第一凭证要素的哈希值,通过sm2对支付安全码进行解签,进一步地使用sm4计算解签后的第二加密文本对应的第二哈希值。
186.以下将对各个步骤进行详细说明:
187.步骤s21,根据所述第一凭证要素生成第二明文文本;
188.步骤s22,根据所述sm3为所述第二明文文本生成第一哈希值;
189.在一实施例中,根据第一凭证要素生成第二明文文本,并根据国密杂凑算法sm3为所述第二明文文本生成第一哈希值。为了进行安全核验,获取了第一凭证要素和支付安全码,并分别计算对应的哈希值。基于第一凭证要素生成第一哈希值的步骤与上述根据第二凭证要素生成第三哈希值的步骤是一致的,都是先根据凭证要素生成明文文本,进而根据国密杂凑算法sm3给明文文本生成哈希值。因此,在签约方收到第一凭证要素时,将第一凭证要素拼接(例如:凭证号码+签发日期+收款账号+支付金额)产生第二明文文本,本实施例中第二明文文本以m简称。然后为明文计算第一哈希值hash’。
190.表达式为:hash’=sm3(m)
191.步骤s23,基于所述sm2,使用所述公钥对所述支付安全码进行解除签约,得到第二加密文本;
192.在一实施例中,基于所述国密非对称加密算法,使用所述公钥对所述支付安全码进行解除签约,得到第二加密文本。对称加密算法给定一个明文和一个密钥,加密产生密文,其长度和明文大致相同,解密时,使用的解密密钥与加密密钥相同,因此被称为对称加密算法。可以理解的,因为支付安全码是基于国密非对称加密算法和私钥签名得到的,因此,在解密时,需要用国密非对称加密算法和公钥进行解签,得到第二加密文本。
193.步骤s24,根据所述sm4,使用所述第一凭证对所述第二加密文本解密,得到第二哈希值。
194.根据国密对称加密算法sm4也即sm4加密算法和第一凭证对第二加密文本解密,得到第二哈希值。可以理解的,因为支付密码生成过程中,加密文本是根据国密对称加密算法sm4将哈希值进行加密得到的,因此作为逆过程,使用sm4加密算法和第一凭证中的对称密钥进行解密,得到对应的第二哈希值。sm4的解密算法与加密算法相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
195.步骤s23和步骤s24的计算得到第二哈希值的表达式如下:
196.hash=sm4d(sm2d(c,vk),ak)
197.sm2和sm4下标d代表解密的过程,c是密文也即支付安全码,vk是公钥,根据sm2解密算法用vk对c进行解签,得到第二加密文本,使用sm4解密算法,用对称密钥ak对第二加密文本进行解密,得到第二哈希值hash。
198.参照图5,图5为本发明支付方法一实施例的核验支付密码的流程图,进行说明:签约方收到第一凭证要素以及支付安全码后进行核验,将凭证要素拼接(凭证号码+签发日期+收款账号+支付金额)产生第一明文文本,根据国密杂凑算法sm3为明文计算第一哈希值;使用公钥对支付安全码进行解签后,得到第二加密文本,使用第一凭证和第三加密算法sm4,第一凭证在本实施例中为对称密钥,进行解密,得到第二哈希值,判断第一哈希值与第二哈希值是否一致,若一致则核验成功,否则核验失败。
199.本实施例通过第一凭证要素生成第二明文文本,并根据国密杂凑算法sm3为所述第二明文文本生成第一哈希值;基于国密非对称加密算法,用公钥对支付安全码进行解除签约,得到第二加密文本,再根据国密对称加密算法sm4和第一凭证对第二加密文本解密,
得到第二哈希值。通过国密算法对第一凭证要素加密和支付安全码解密,得到了第一哈希值和第二哈希值,也即得到了支付安全核验所需的数据,实现了基于支付安全码和第一凭证要素进行安全支付核验,提高了支付安全性。
200.本发明还提供一种支付装置。如图6所示,图6为本发明支付方法一实施例的功能模块示意图。
201.本发明支付装置包括:
202.获取模块10,用于获取第一凭证要素和支付安全码;
203.第一计算模块20,用于通过国密杂凑算法sm3计算所述第一凭证要素的第一哈希值;
204.第二计算模块30,用于通过国密非对称加密算法计算所述支付安全码的第二哈希值;
205.比较模块40,用于比较所述第一哈希值和所述第二哈希值;
206.核验模块50,用于若所述第一哈希值与所述第二哈希值相等,则支付安全核验通过。
207.可选地,所述获取模块还用于:
208.本发明还提供一种支付安全码生成装置。如图7所示,图7为本发明支付安全码生成方法一实施例的功能模块示意图。
209.本发明支付安全码生成装置包括:
210.凭证要素获取模块100,用于获取第二凭证要素;
211.生成模块200,用于基于所述第二凭证要素生成第一明文文本;
212.第三计算模块300,用于根据所述sm3,为所述第一明文文本生成第三哈希值;
213.第四计算模块400,用于根据国密对称加密算法sm4,使用对称密钥对所述第三哈希值进行加密生成第一加密文本;
214.支付安全码生成模块500,用于根据所述sm2,用私钥对所述第一加密文本签名,得到所述支付安全码
215.本发明还提供一种存储介质。
216.本发明存储介质上存储有支付和/或支付安全码生成程序,所述支付程序被处理器执行时实现如权利要求1至6任一项所述的支付方法的步骤,所述支付安全码生成程序被处理器执行时实现如权利要求7所述的支付安全码生成方法的步骤。
217.其中,在所述处理器上运行的支付和/或支付安全码生成程序被执行时所实现的方法可参照本发明支付方法和支付安全码生成方法各个实施例,此处不再赘述。
218.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
219.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
220.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下
前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
221.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1