基于SM2动态密钥交换与SM4数据加密的通信方法技术

技术编号:20224571 阅读:51 留言:0更新日期:2019-01-28 22:36
本发明专利技术公开了一种基于SM2动态密钥交换与SM4数据加密的通信方法,其包括以下步骤:S1、握手请求阶段;S2、认证阶段;S3:完成握手阶段;S4:数据加密;S5:数据解密。本发明专利技术数据加密采用国密算法,符合国家推广国密算法的政策,密钥长度达到国家密码商用要求,SM2密钥协商算法中将对方的辨别标识也计算在共享密钥中,同时可以对传输的数据是否加密进行配置,可以保证传输的数据的完整性以及是否被篡改。

【技术实现步骤摘要】
基于SM2动态密钥交换与SM4数据加密的通信方法
本专利技术涉及通信网络安全
,尤其涉及一种基于SM2动态密钥交换与SM4数据加密的通信方法。
技术介绍
在数据的通信传输领域,为了保证数据的安全性,通常发送端会对传输的数据进行加密,接收端对数据进行解密。在现有技术中,经常使用的算法分为两种即对称加密算法、非对称加密算法。对称加密指加密和解密使用相同密钥的加密算法。它要求发起端和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信的安全性至关重要。非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。然而在现有技术中,加密通信方法存在以下技术问题,1、数据加密没有采用国密算法,不符合国家数据加密要求(与国家推广国密算法政策相悖);2、密钥安全系数不够,容易被破解;3、RSA算法本身无法防范中间人攻击,需要搭配数字认证使用;4、数据传输过程是否加密不能灵活配置;5、无法确定原数据是否被改动。因此,有必要提供一种基于SM2动态密钥交换与SM4数据加密的通信方法,已解决上述现有技术中存在的缺陷。
技术实现思路
为解决上述技术问题,本专利技术提供一种基于SM2动态密钥交换与SM4数据加密的通信方法。本专利技术提供的一种基于SM2动态密钥交换与SM4数据加密的通信方法,包括以下步骤:S1、握手请求阶段:发起端发起请求消息,响应端接受到请求消息后向发起端发送回应消息;S2、认证阶段:发起端与响应端通过SM2算法进行密钥协商,完成双方身份认证,并得出协商密钥;S3:完成握手阶段:发起端发送处理协商密钥消息和结束消息,响应端收到结束消息后向发起端发送处理协商密钥消息和结束消息;S4:数据加密:在发起端、响应端皆收到结束消息后,发起端使用处理后的协商密钥通过SM4算法对待发送消息加密处理,并将通信结构的flag设置为1,表示数据被加密;S5:数据解密:响应端将接受的数据进行解析,如果通信结构的flag为1,则使用SM4解密算法对数据进行解密。进一步的,所述S2认证阶段包括以下步骤:(1)第一轮认证:从发起端原始数据中产生随机数ra∈[1,n-1];进行计算RA=[rA]G=(x1,y1),将结果发送给响应端,响应端从原始数据中产生随机数rB∈[1,n-1],随后进行计算RB=[rB]G=(x2,y2),随后通过计算出曲线方程(2)第二轮验证:若发起端的RA不满足曲线方程tB,则协商失败;若发起端的RA满足曲线方程tB,则响应端计算随后计算椭圆的曲线点判断V是否为0,若为0则协商失败;若不为0,则计算KB=KDF(xv||yv||ZA||ZB,klen),同时计算SB=Hash(OxO2||yv||Hash(xv||ZA||ZB||x1||y1||x2||y2));随后将RB、SB发送给发起端;(3)第三轮验证:发起端计算随后计算出曲线方程判断RB是否满足曲线方程tA,若不满足,则协商失败;若满足,则发起端计算随后计算椭圆的曲线点判断U是否为0,若为0则协商失败;若不为0,则计算KA=KDF(xU||yU||ZA||ZB,klen),同时计算S1=Hash(OxO2||yU||Hash(xU||ZA||ZB||x1||y1||x2||y2)),判断S1与SB是否相等,若不相等,则协议失败,停止;若相等,则发起端计算SA=Hash(OxO3||yU||Hash(xU||ZA||ZB||x1||y1||x2||y2)),并将SA发送给响应端;响应端计算S2=Hash(OxO3||yv||Hash(xv||ZA||ZB||x1||y1||x2||y2)),并判断S2与SA是否相等,若不相等,则协议失败,停止;若相等则密钥确认成功,将该密钥定为协商密钥。进一步的,所述S4数据加密步骤如下:将待发送数据进行哈希处理,并存储到通信结构的hashData中;将待发送数据通过SM4加密算法进行加密处理,其密钥为将协商密钥处理后的密钥,并将其存储到通信结构的len和data中;将通信机构的flag设置为1。更进一步的,所述S5数据解密步骤包括:将接受到的数据进行处理解析,查看通信结构的flag是否为1;若通信结构的flag为1,则通过SM4解密算法对数据的data进行解密,密钥为将协商密钥处理后的密钥;对解密的数据进行哈希处理,并与通信结构的hashData进行比较,验证发送信息是否有改变。与相关技术相比,本专利技术具有以下有益效果:(1)数据加密采用国密算法,符合国家推广国密算法的政策;(2)密钥长度达到国家密码商用要求;(3)SM2密钥协商算法中将对方的辨别标识也计算在共享密钥中;(4)可以对传输的数据是否加密进行配置;(5)可以保证传输的数据的完整性以及是否被篡改。附图说明图1为本专利技术认证阶段的流程示意图。具体实施方式下面将结合附图和实施方式对本专利技术作进一步说明。本专利技术的基于SM2动态密钥交换与SM4数据加密的通信方法,包括以下步骤:S1、握手请求阶段:发起端发起请求消息,响应端接受到请求消息后向发起端发送回应消息;S2、认证阶段:发起端与响应端通过SM2算法进行密钥协商,完成双方身份认证,并得出协商密钥;S3:完成握手阶段:发起端发送处理协商密钥消息和结束消息,响应端收到结束消息后向发起端发送处理协商密钥消息和结束消息;S4:数据加密:在发起端、响应端皆收到结束消息后,发起端使用处理后的协商密钥通过SM4算法对待发送消息加密处理,并将通信结构的flag设置为1,表示数据被加密;S5:数据解密:响应端将接受的数据进行解析,如果通信结构的flag为1,则使用SM4解密算法对数据进行解密。如图1所示,所述S2认证阶段包括以下步骤:(1)第一轮认证:从发起端原始数据中产生随机数ra∈[1,n-1];进行计算RA=[rA]G=(x1,y1),将结果发送给响应端,响应端从原始数据中产生随机数rB∈[1,n-1],随后进行计算RB=[rB]G=(x2,y2),随后通过计算出曲线方程(2)第二轮验证:若发起端的RA不满足曲线方程tB,则协商失败;若发起端的RA满足曲线方程tB,则响应端计算随后计算椭圆的曲线点判断V是否为0,若为0则协商失败;若不为0,则计算KB=KDF(xv||yv||ZA||ZB,klen),同时计算SB=Hash(OxO2||yv||Hash(xv||ZA||ZB||x1||y1||x2||y2));随后将RB、SB发送给发起端;(3)第三轮验证:发起端计算随后计算出曲线方程判断RB是否满足曲线方程tA,若不满足,则协商失败;若满足,则发起端计算随后计算椭圆的曲线点判断U是否为0,若为0则协商失败;若不为0,则计算KA=KDF(xU||yU||ZA||ZB,klen),同时计算S1=Hash(OxO2||yU||Hash(xU||ZA||ZB||x1||y1||x2||y2)),判断S1与SB是否相等,若不相等,则协议失败,停止;若相等,则发起端计算S本文档来自技高网...

【技术保护点】
1.一种基于SM2动态密钥交换与SM4数据加密的通信方法,其特征在于包括以下步骤:S1、握手请求阶段:发起端发起请求消息,响应端接受到请求消息后向发起端发送回应消息;S2、认证阶段:发起端与响应端通过SM2算法进行密钥协商,完成双方身份认证,并得出协商密钥;S3:完成握手阶段:发起端发送处理协商密钥消息和结束消息,响应端收到结束消息后向发起端发送处理协商密钥消息和结束消息;S4:数据加密:在发起端、响应端皆收到结束消息后,发起端使用处理后的协商密钥通过SM4算法对待发送消息加密处理,并将通信结构的flag设置为1,表示数据被加密;S5:数据解密:响应端将接受的数据进行解析,如果通信结构的flag为1,则使用SM4解密算法对数据进行解密。

【技术特征摘要】
1.一种基于SM2动态密钥交换与SM4数据加密的通信方法,其特征在于包括以下步骤:S1、握手请求阶段:发起端发起请求消息,响应端接受到请求消息后向发起端发送回应消息;S2、认证阶段:发起端与响应端通过SM2算法进行密钥协商,完成双方身份认证,并得出协商密钥;S3:完成握手阶段:发起端发送处理协商密钥消息和结束消息,响应端收到结束消息后向发起端发送处理协商密钥消息和结束消息;S4:数据加密:在发起端、响应端皆收到结束消息后,发起端使用处理后的协商密钥通过SM4算法对待发送消息加密处理,并将通信结构的flag设置为1,表示数据被加密;S5:数据解密:响应端将接受的数据进行解析,如果通信结构的flag为1,则使用SM4解密算法对数据进行解密。2.如权利要求1所述的基于SM2动态密钥交换与SM4数据加密的通信方法,其特征在于:所述S2认证阶段包括以下步骤:(1)第一轮认证:从发起端原始数据中产生随机数ra∈[1,n-1];进行计算RA=[rA]G=(x1,y1),将结果发送给响应端,响应端从原始数据中产生随机数rB∈[1,n-1],随后进行计算RB=[rB]G=(x2,y2),随后通过计算出曲线方程(2)第二轮验证:若发起端的RA不满足曲线方程tB,则协商失败;若发起端的RA满足曲线方程tB,则响应端计算随后计算椭圆的曲线点判断V是否为0,若为0则协商失败;若不为0,则计算KB=KDF(xv||yv||ZA||ZB,klen),同时计算SB=Hash(OxO2||yv||Hash(xv||ZA||ZB||x1||y1||x2||y2));随后将RB、SB发送给发起端;(3)第三轮验证:发起端计算随后计算出...

【专利技术属性】
技术研发人员:张磊戴智华
申请(专利权)人:西安莫贝克半导体科技有限公司
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1