CN107612680A - 一种移动网络支付中的国密算法 - Google Patents
一种移动网络支付中的国密算法 Download PDFInfo
- Publication number
- CN107612680A CN107612680A CN201710826679.3A CN201710826679A CN107612680A CN 107612680 A CN107612680 A CN 107612680A CN 201710826679 A CN201710826679 A CN 201710826679A CN 107612680 A CN107612680 A CN 107612680A
- Authority
- CN
- China
- Prior art keywords
- calculated
- algorithm
- elliptic curve
- bit string
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种移动网络支付中的国密算法,其技术要点是,包括以下步骤:一、加密流程;二、结算流程。本发明的算法包括三部分内容,数字签名验签算法、密钥交换协议和公钥加解密算法。密钥交换协议可满足通信双方经过两次或可选3次信息传递过程,计算获取一个由双方共同决定的共享秘密密钥;公钥加密算法适用于国家商用密码应用中的消息加解密,消息发送者可利用接收者的公钥对消息进行加密,接收者用对应的私钥进行解密,获取消息。数字签名算法、密钥交换协议以及公钥加密算法都使用了国家密管理局批准的SM3密码杂凑算法和随机数发生器。本发明的算法适用于商用应用中的数字签名和验证,可满足多种密码应用中的身份认证和数据完整性、真实性的安全需求。
Description
技术领域:
本发明涉及移动网络安全支付技术领域,具体涉及一种移动网络支付中的国密算法。
背景技术:
信息安全是近年来的热门话题。从国家安全委员会的设立,到政府部门对Windows8操作系统及部分国外安全产品的禁用,都可见国家对信息安全的重视,与此同时,人民银行也高度重视金融业的信息安全问题,要求商业银行坚决贯彻“安全可控”的政策要求,以推动金融机构信息安全的发展。对商业银行而言,随着移动互联网、云计算和大数据等新技术的实际应用,也迫使其积极提升对信息安全的管理。但信息安全是一个非常广泛的课题,如何寻找切入点,稳步推进安全可控进程,是银行亟待解决的问题。
随着互联网技术的发展,移动网络支付已经与人们的生活息息相关。移动网络支付是用户通过手机等移动终端对消费的商品或服务进行支付的一种方式,移动支付技术将移动终端设备、互联网、应用提供商以及金融机构相融合,为用户提供货币支付、缴费等金融业务。与传统支付方式相比,移动支付具有“随时、随地、随身”、产业链长、行业跨度大、社会影响面广等特点。随着我国移动支付业务的飞速发展,支付安全问题也成为全产业关注的最基本、最重要的问题之一。移动支付安全基础主要包括:密码算法、密钥管理、安全基础设施、认证体系及电子凭证等。密码算法包括国际通用密码算法在移动支付业务中的配用和我国自主研发的国密算法的配用。国密算法由国家密码局发布,包含SM1\SM2\SM3\SM4\SSF33算法。SM系列算法是指国家密码局公布的中国自主研发的商用密码算法和规范。目前移动支付面临的安全威胁主要来自于支付操作所处的运行环境和信息的传输和存储环境中,其中基于操作系统和应用软件的威胁较为突出,并在基于移动互联网的支付中更受关注。由于存在上述可能的安全隐患,移动支付应实现以下安全目标:交易双方身份认证、数据机密性、数据完整性、数据抗抵赖性等;交易双方身份认证:交易开始前应确认交易双方的身份;数据机密性:交易过程中应保证业务数据不可侵犯,采用加密或其他有效措施实现业务数据传输和存储的保密性;数据完整性:交易过程中保证业务数据在传输和存储过程中不受到篡改;数据抗抵赖性:交易双方均不能否认或抵赖已经发生的交易事件,应能为双方提供数据源发证据或数据接收证据。
移动支付中交易数据采用对称算法SM1或者SM4加密,会话密钥由密码设备自己产生,并且保存在设备内存中,同时将该会话密钥在密码设备中使用密码设备的加解密密钥加密(SM2非对称算法)并导出会话密钥密文,将该会话密钥密文随同加密的信令数据组成完整信令,配合时间戳,Hash(SM3杂凑算法),签名等安全措施,发送到接收方。接收方得到信令后,首先需要验证签名,判断来源合法,然后验证hash,判断数据完整性,再次验证时间戳,判断信令时效性,最后通过将会话密钥密文导入加密设备中,获取会话密钥,并对交易数据进行解密。SM系列算法是指国家密码局公布的中国自主研发的商用密码算法和规范。在金融IC卡领域,SM系列算法中的SM2、SM3和SM4,分别对应国际通用密码算法中的RSA、SHA-1和3DES。社会保障、医疗卫生、公共交通等多个关乎国计民生的公共服务领域,社会影响力不断增加,其安全重要性日益凸显。
SM4算法是我国自主研发的分组密码算法,2006年由国家密码管理局公布,该算法的分组长度为128bit,密钥长度为128bit。SM4算法同样采用移位、异或、S盒等操作,由于该算法是我国自主研发且算法公布的时间比较晚,对SM4算法的研究比较少,所以SM4算法具有较高的安全性。任何一个密码算法都是由一系列的基本操作按照一定的顺序连接而成,并且不同密码算法往往具有相同和相似的操作,因此可以将这些操作设计为可重构处理单元(reconfigu-rable processing unit,RPU),为不同的密码算法所共用。加密算法和密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。SM4算法轮变换规模比较小,轮数较多,若采用状态机控制,速度比较低,若采用全流水线方式实现则占用的资源比较多。考虑到速度与面积的平衡关系,采用半流水线方式实现。国际的DES算法和国产的SM4算法的目的都是为了加密保护静态储存和传输信道中的数据。从算法上看,国产SM4算法在计算过程中增加非线性变换,理论上能大大提高其算法的安全性,并且由专业机构进行了密码分析,民间也对21轮SM4进行了差分密码分析,结论均为安全性较高。
国家密码管理局在2010年12月份公布了《SM2椭圆曲线公钥密码算法》,必将使SM2椭圆曲线公钥加密算法的应用范围更加广泛。因此如何高效地实现SM2算法也是广大密码产品生产者关心的问题。椭圆曲线的多倍点运算是实现SM2算法的核心运算。
网络交易过程中,用户所有的信息都是利用网络进行传输,这些信息在网络上很容易被不法者窃取。卖家除了验证和辨别买家的身份信息真实性之外,还需要核实用户信息的真实性,从而确定请求确实是由客户端实体本身发送,从而避免黑客冒充买家将改动后的身份信息发给卖家。要想拥有这样核实用户身份信息的方法需要一项重要的网络安全技术:邮件(消息)摘要与散列函数。消息摘要是指通过消息推导出来的特定信息,该特定信息能反应消息特征、且具有固定长度。我国在2010年发布了SM3密码杂凑算法,该算法将作为我国最新的商用密码加密标准。该算法由王小云等人设计,SM3算法的压缩函数与SHA-256算法的压缩函数极其相似,都是采用MD结构。但是SM3算法的压缩函数更为复杂。
发明内容:
本发明提供了一种移动网络支付中的国密算法,其在保证网络支付安全的前提下,简化了SM3算法。
本发明的移动网络支付中的国密算法,采用的技术方案在于,包括以下步骤:
一、加密流程
a、用随机数发生器产生随机数k∈[1,n—1];
b、计算椭圆曲线点C1=[k]G=(x1,y1),将C1的数据类型转换为比特串;
c、计算椭圆曲线点S=[h]PB,若S是无穷远点,则报错;
d、计算椭圆曲线点[k]PB=(x2,y2),将坐标x2,y2的数据类型转换为比特串;
e、计算t=KDF(x2||y2,kl),若t为全0比特串,则返回步骤a;
f、计算
g、计算C3=Hash(x2||M||y2);
h、输出密文C=C1||C2||C3;
二、结算流程
设kl为密文中C2的比特长度,为了对密文C=C1||C2||C3进行解密,作为解密者的用户应实现以下运算步骤:
a、从C中取出比特串C1,将C1的数据类型转换为椭圆曲线上的点,验证C1是否满足椭圆曲线方程,若不满足则报错并退出;
b、计算椭圆曲线点S=[h]C1,若S是无穷远点,则报错并退出;
c、计算[dB]C1=(x2,y2),将坐标x2,y2的数据类型转换为比特串;
d、计算t=KDF(x2||y2,kl),若t为全0比特串,则报错并退出;
e、从C中取出比特串C2,计算
f、计算u=Hash(x2||M'||y2),从C中取出比特串C3,若u≠C3,则报错并退出;
h、输出明文M′。
作为本发明的进一步改进,SM2椭圆曲线数字签名算法中定义,设待签名的消息为M,为了获得M的数字签名,作为签名用户A实现以下步骤:
A1、置M=ZA||M;
A2、计算e=HV(M),将e转化为整数;
A3、用随机数发生器产生随机数k∈[1,n-1];
A4、计算椭圆曲线点(x1,y1)=k G,将x1转化为整数;
A5、计算r=(e+x1)mod n,若r=0或者r+k=n,则返回A3;
A6、计算s=(1+d A)-1·(k-r·d A)mod n,若s=0,则返回A3;
A7、将转化为字节串,消息M的签名为(r,s)。
作为本发明的进一步改进,数字签名验证算法是为了验证收到的消息M'及其数字签名(r',s'),作为验证者用户B实现以下运算步骤:
B1、检验r'∈[1,n-1]是否成立,若不成立验证不通过;
B2、检验s'∈[1,n-1]是否成立,若不成立验证不通过;
B3、置M'=ZA||M';
B4、计算e'=HV(M'),将e'转化为整数;
B5、将r',s'转化为整数,计算t=(r'+s')mod n,若t=0,则验证不能通过;
B6、计算椭圆曲线点(x1',y1')=s'G+t PA;
B7、将x1'转化为整数,计算R=(e+x1')mod n,检验R=r是否成立,若成立,验证通过,否则验证不通过。
本发明的有益效果是:本发明的算法主要包括三部分内容,分别为数字签名验签算法、密钥交换协议和公钥加解密算法。其中的密钥交换协议适用于商用密码应用中的密钥交换,可满足通信双方经过两次或可选3次信息传递过程,计算获取一个由双方共同决定的共享秘密密钥,即会话密钥;公钥加密算法适用于国家商用密码应用中的消息加解密,消息发送者可以利用接收者的公钥对消息进行加密,接收者用对应的私钥进行解密,获取消息。数字签名算法、密钥交换协议以及公钥加密算法都使用了国家密管理局批准的SM3密码杂凑算法和随机数发生器。本发明的算法适用于商用应用中的数字签名和验证,可满足多种密码应用中的身份认证和数据完整性、真实性的安全需求。
具体实施方式:
本发明的移动网络支付中的国密算法,包括以下步骤:
一、加密流程
a、用随机数发生器产生随机数k∈[1,n—1];
b、计算椭圆曲线点C1=[k]G=(x1,y1),将C1的数据类型转换为比特串;
c、计算椭圆曲线点S=[h]PB,若S是无穷远点,则报错;
d、计算椭圆曲线点[k]PB=(x2,y2),将坐标x2,y2的数据类型转换为比特串;
e、计算t=KDF(x2||y2,kl),若t为全0比特串,则返回步骤a;
f、计算
g、计算C3=Hash(x2||M||y2);
h、输出密文C=C1||C2||C3;
二、结算流程
设kl为密文中C2的比特长度,为了对密文C=C1||C2||C3进行解密,作为解密者的用户应实现以下运算步骤:
a、从C中取出比特串C1,将C1的数据类型转换为椭圆曲线上的点,验证C1是否满足椭圆曲线方程,若不满足则报错并退出;
b、计算椭圆曲线点S=[h]C1,若S是无穷远点,则报错并退出;
c、计算[dB]C1=(x2,y2),将坐标x2,y2的数据类型转换为比特串;
d、计算t=KDF(x2||y2,kl),若t为全0比特串,则报错并退出;
e、从C中取出比特串C2,计算
f、计算u=Hash(x2||M'||y2),从C中取出比特串C3,若u≠C3,则报错并退出;
h、输出明文M′。
SM2椭圆曲线数字签名算法中定义,设待签名的消息为M,为了获得M的数字签名,作为签名用户A实现以下步骤:
A1、置M=ZA||M;
A2、计算e=HV(M),将e转化为整数;
A3、用随机数发生器产生随机数k∈[1,n-1];
A4、计算椭圆曲线点(x1,y1)=k G,将x1转化为整数;
A5、计算r=(e+x1)mod n,若r=0或者r+k=n,则返回A3;
A6、计算s=(1+d A)-1·(k-r·d A)mod n,若s=0,则返回A3;
A7、将转化为字节串,消息M的签名为(r,s)。
数字签名验证算法是为了验证收到的消息M'及其数字签名(r',s'),作为验证者用户B实现以下运算步骤:
B1、检验r'∈[1,n-1]是否成立,若不成立验证不通过;
B2、检验s'∈[1,n-1]是否成立,若不成立验证不通过;
B3、置M'=ZA||M';
B4、计算e'=HV(M'),将e'转化为整数;
B5、将r',s'转化为整数,计算t=(r'+s')mod n,若t=0,则验证不能通过;
B6、计算椭圆曲线点(x1',y1')=s'G+t PA;
B7、将x1'转化为整数,计算R=(e+x1')mod n,检验R=r是否成立,若成立,验证通过,否则验证不通过。
Claims (3)
1.一种移动网络支付中的国密算法,其特征在于,包括以下步骤:
一、加密流程
a、用随机数发生器产生随机数k∈[1,n—1];
b、计算椭圆曲线点C1=[k]G=(x1,y1),将C1的数据类型转换为比特串;
c、计算椭圆曲线点S=[h]PB,若S是无穷远点,则报错;
d、计算椭圆曲线点[k]PB=(x2,y2),将坐标x2,y2的数据类型转换为比特串;
e、计算t=KDF(x2||y2,kl),若t为全0比特串,则返回步骤a;
f、计算
g、计算C3=Hash(x2||M||y2);
h、输出密文C=C1||C2||C3;
二、结算流程
设kl为密文中C2的比特长度,为了对密文C=C1||C2||C3进行解密,作为解密者的用户应实现以下运算步骤:
a、从C中取出比特串C1,将C1的数据类型转换为椭圆曲线上的点,
验证C1是否满足椭圆曲线方程,若不满足则报错并退出;
b、计算椭圆曲线点S=[h]C1,若S是无穷远点,则报错并退出;
c、计算[dB]C1=(x2,y2),将坐标x2,y2的数据类型转换为比特串;
d、计算t=KDF(x2||y2,kl),若t为全0比特串,则报错并退出;
e、从C中取出比特串C2,计算
f、计算u=Hash(x2||M'||y2),从C中取出比特串C3,若u≠C3,则报错并退出;
h、输出明文M′。
2.如权利要求1所述的一种移动网络支付中的国密算法,其特征在于:SM2椭圆曲线数字签名算法中定义,设待签名的消息为M,为了获得M的数字签名,作为签名用户A实现以下步骤:
A1、置M=ZA||M;
A2、计算e=HV(M),将e转化为整数;
A3、用随机数发生器产生随机数k∈[1,n-1];
A4、计算椭圆曲线点(x1,y1)=k G,将x1转化为整数;
A5、计算r=(e+x1)mod n,若r=0或者r+k=n,则返回A3;
A6、计算s=(1+d A)-1·(k-r·d A)mod n,若s=0,则返回A3;
A7、将转化为字节串,消息M的签名为(r,s)。
3.如权利要求2所述的一种移动网络支付中的国密算法,其特征在于:数字签名验证算法是为了验证收到的消息M'及其数字签名(r',s'),作为验证者用户B实现以下运算步骤:
B1、检验r'∈[1,n-1]是否成立,若不成立验证不通过;
B2、检验s'∈[1,n-1]是否成立,若不成立验证不通过;
B3、置M'=ZA||M';
B4、计算e'=HV(M'),将e'转化为整数;
B5、将r',s'转化为整数,计算t=(r'+s')mod n,若t=0,则验证不能通过;
B6、计算椭圆曲线点(x1',y1')=s'G+t PA;
B7、将x1'转化为整数,计算R=(e+x1')mod n,检验R=r是否成立,若成立,验证通过,否则验证不通过。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710826679.3A CN107612680A (zh) | 2017-09-14 | 2017-09-14 | 一种移动网络支付中的国密算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710826679.3A CN107612680A (zh) | 2017-09-14 | 2017-09-14 | 一种移动网络支付中的国密算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107612680A true CN107612680A (zh) | 2018-01-19 |
Family
ID=61063850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710826679.3A Withdrawn CN107612680A (zh) | 2017-09-14 | 2017-09-14 | 一种移动网络支付中的国密算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107612680A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109787767A (zh) * | 2018-11-30 | 2019-05-21 | 济南晟安信息技术有限公司 | Sm2协同数字签名方法及装置 |
CN111310203A (zh) * | 2020-02-10 | 2020-06-19 | 广东工业大学 | 一种基于sm2和sm4的电子病历混合加密方法 |
CN112231662A (zh) * | 2020-10-20 | 2021-01-15 | 南京中孚信息技术有限公司 | 一种基于sm2算法的二维码的注册认证方法及系统 |
CN112822155A (zh) * | 2020-12-21 | 2021-05-18 | 陕西土豆数据科技有限公司 | 一种基于国密的航拍数据加解密方法 |
CN113536335A (zh) * | 2021-06-11 | 2021-10-22 | 上海胡桃网络科技有限公司 | 一种支付系统国密算法动态更新的方法 |
CN113904777A (zh) * | 2021-09-23 | 2022-01-07 | 武汉大学 | 一种基于sm2数字签名算法的签密方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107147488A (zh) * | 2017-03-24 | 2017-09-08 | 广东工业大学 | 一种基于sm2加解密算法的签名验签系统和方法 |
-
2017
- 2017-09-14 CN CN201710826679.3A patent/CN107612680A/zh not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107147488A (zh) * | 2017-03-24 | 2017-09-08 | 广东工业大学 | 一种基于sm2加解密算法的签名验签系统和方法 |
Non-Patent Citations (2)
Title |
---|
国密局: "SM2椭圆曲线公钥密码算法", 《国密局公告21号》 * |
汪朝晖,张振峰: "SM2椭圆曲线公钥密码算法综述", 《信息安全研究》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109787767A (zh) * | 2018-11-30 | 2019-05-21 | 济南晟安信息技术有限公司 | Sm2协同数字签名方法及装置 |
CN111310203A (zh) * | 2020-02-10 | 2020-06-19 | 广东工业大学 | 一种基于sm2和sm4的电子病历混合加密方法 |
CN111310203B (zh) * | 2020-02-10 | 2023-02-03 | 广东工业大学 | 一种基于sm2和sm4的电子病历混合加密方法 |
CN112231662A (zh) * | 2020-10-20 | 2021-01-15 | 南京中孚信息技术有限公司 | 一种基于sm2算法的二维码的注册认证方法及系统 |
CN112231662B (zh) * | 2020-10-20 | 2024-02-27 | 南京中孚信息技术有限公司 | 一种基于sm2算法的二维码的注册认证方法及系统 |
CN112822155A (zh) * | 2020-12-21 | 2021-05-18 | 陕西土豆数据科技有限公司 | 一种基于国密的航拍数据加解密方法 |
CN113536335A (zh) * | 2021-06-11 | 2021-10-22 | 上海胡桃网络科技有限公司 | 一种支付系统国密算法动态更新的方法 |
CN113904777A (zh) * | 2021-09-23 | 2022-01-07 | 武汉大学 | 一种基于sm2数字签名算法的签密方法 |
CN113904777B (zh) * | 2021-09-23 | 2023-10-03 | 武汉大学 | 一种基于sm2数字签名算法的签密方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021042685A1 (zh) | 一种区块链的交易方法、装置及系统 | |
CA2197915C (en) | Cryptographic key recovery system | |
US8437474B2 (en) | Public key encryption for groups | |
CN107612680A (zh) | 一种移动网络支付中的国密算法 | |
CN101064595B (zh) | 一种计算机网络安全输入认证系统和方法 | |
CN102547688B (zh) | 一种基于虚拟专用信道的高可信手机安全通信信道的建立方法 | |
CN107124268A (zh) | 一种可抵抗恶意攻击的隐私集合交集计算方法 | |
CN109409884A (zh) | 一种基于sm9算法的区块链隐私保护方案和系统 | |
CN110034917A (zh) | 一种基于同态加密算法的联盟链数据处理方法及装置 | |
CN111342955B (zh) | 一种通信方法及其设备、计算机存储介质 | |
CN110519046A (zh) | 基于一次性非对称密钥对和qkd的量子通信服务站密钥协商方法和系统 | |
CN103905384A (zh) | 基于安全数字证书的嵌入式终端间会话握手的实现方法 | |
CN102769623A (zh) | 基于数字证书和生物识别信息进行双重认证的方法 | |
CN114036539A (zh) | 基于区块链的安全可审计物联网数据共享系统及方法 | |
CN109495497A (zh) | 基于信誉度动态管理及国产密码算法隐私信息加密传输方法 | |
CN111416712B (zh) | 基于多个移动设备的量子保密通信身份认证系统及方法 | |
CN110224816A (zh) | 基于密钥卡和序列号的抗量子计算应用系统以及近距离节能通信方法和计算机设备 | |
Lou et al. | A weak quantum blind signature with entanglement permutation | |
Du et al. | The applications of blockchain in the covert communication | |
Nosrati et al. | Security assessment of mobile-banking | |
Sun et al. | The Mobile payment based on public-key security technology | |
CN115001658A (zh) | 在非稳定网络环境下可信的地铁身份认证和存取控制方法 | |
CN106211108A (zh) | 一种基于rsa公钥的短信加密方法 | |
Téllez et al. | Security in mobile payment systems | |
CN114374519B (zh) | 一种数据传输的方法、系统及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180119 |