一种基于非对称算法的加密解密方法技术

技术编号:37869329 阅读:22 留言:0更新日期:2023-06-15 20:58
本发明专利技术涉及一种基于非对称算法的加密解密方法,在应用系统级消息传输的过程中,采用非对称SM2加密算法,以数字信封的方式安全分发对称SM4加密算法的密钥,统一发送方和接收方的密钥后,使用统一密钥加密后进行端到端的信息传输。本发明专利技术可提高应用系统级数据和消息通信的安全性。通信的安全性。通信的安全性。

【技术实现步骤摘要】
一种基于非对称算法的加密解密方法


[0001]本专利技术属于软件开发
,具体涉及一种基于非对称算法的加密解密方法。

技术介绍

[0002]随着信息时代的来临,铺天盖地的信息和数据逐渐充斥了人们的生活,随之而来的信息安全问题备受人们关注,密码技术作为信息安全问题中不可或缺的角色,近年来也得到了极大发展,正在快速地向各个领域渗透,建立一套成熟、科学、受到国际认可的商用密码体系,是信息安全的重要保障。

技术实现思路

[0003]本专利技术的目的是提供一种基于非对称算法的加密解密方法,提高应用系统级数据和消息通信的安全性。
[0004]本专利技术的技术方案如下:
[0005]一种基于非对称算法的加密解密方法,其特征在于,包括以下步骤:
[0006](1)发送方选择接收方,监听传输的明文消息内容;
[0007](2)选择发送消息之后,此时的会话明文为C1;
[0008](3)随机密码生成器会自动生成定长的SM4会话密钥Mk,并在发送方中的y钥匙链(KeyChain)进行存储,同时通过接收方的ID向安全模块获取其SM2的公钥Pk;
[0009](4)通过公钥Pk加密Mk生成定长的会话密钥密文Ck,同时使用会话密钥Mk加密明文C1成C。拼接Ck和C成密文M;
[0010](5)向安全模块发送密文M和接收方的ID,安全模块生成URL查询地址,调用安全模块接口发送地址和ID;
[0011](6)安全模块通过ID将发送地址推送给接收方;
[0012](7)接收方通过向发送地址POST请求获取到拼接的密文消息,截取得到定长的会话密钥密文Ck和即时密文消息C;
[0013](8)发送者过用自己的私钥Uk解密Ck得到Mk,在发送者的钥匙链中存储Mk,同时用Mk解密C得到明文C1,并在发送者的返回提示信息中显示。
[0014]本专利技术在应用系统级消息传输的过程中,采用非对称SM2加密算法,以数字信封的方式安全分发对称SM4加密算法的密钥,统一发送方和接收方的密钥后,使用统一密钥加密后进行端到端的安全传输。
附图说明
[0015]图1是SM2加密流程图;
[0016]图2是SM2解密流程图;
[0017]图3是SM4整体结构图;
[0018]图4是本专利技术的数据加密/解密过程示意图。
具体实施方式
[0019]本专利技术在应用系统级消息传输的过程中,采用非对称SM2加密算法,以数字信封的方式安全分发对称SM4加密算法的密钥,统一发送方和接收方的密钥后,使用统一密钥加密后进行端到端的安全传输。
[0020]SM2算法是一种非对称椭圆曲线公钥密码算法,属于ECC(Elliptic Curve Cryptosystem)算法的一种。基于椭圆曲线离散对数问题,计算复杂度是指数级,且求解困难,在相同级别的安全性要求下,椭圆曲线密码所需的密钥长度更短。
[0021]SM2算法采用的椭圆曲线方程为:y2=x3+ax+b;通过指定a、b的系数确定了唯一的标准曲线。SM2加密流程如图/1所示,假设输入长度为klen的比特串M,公钥P,输出SM2结构密文比特串C。加密步骤如下:
[0022]1、产生随机数k,k的值从1到n

1,
[0023]2、计算椭圆曲线点C1=[k]G=(1,y),将C转换成比特串,验证公钥P,计算S=[h]P,如果S是无穷远点,则出错退出,计算(x2,y2)

[k]PB,
[0024]3、计算t=KDF(xzlly2,klen),KDF是密钥派生函数,如果t是全О比特串,返回第1)步,
[0025]4、计算Cz=MEt,
[0026]5、计算C3

HASH(xz|Mlyz),
[0027]6、输出密文C=C1C2lC3,C和C的长度是固定的,C是64字节,C是32字节,很方便C从中提取C,C3和C2。
[0028]SM2解密流程如图2所示,假设输入SM2结构密文比特串C,私钥dp,输出明文M。
[0029]解密步骤如下:
[0030]1、从密文比特串C=C1IlC3lIC2中取出C,将C转换成椭圆曲线上的点,验证C,计算S

[h]C1,如果S是无穷远点,出错退出,
[0031]2、计算(xz,yz

[ds]C1,
[0032]3、计算t=KDF(xlly2,klen),KDF是密钥派生函数,如果t是全О比特串,出错退出,
[0033]4、从C=C1]lC3llCz中取出C2,计算M=Ct,
[0034]5、计算U=Hash(xzlMlyz),比较U是否与Ca相等,不相等则退出,否则输出明文M。
[0035]SM4算法属于分组对称算法,其整体结构图如图3所示。其分组长度为128位,密钥长度为128位,加密算法与密钥扩展都使用32轮非线性迭代结构,解密算法与加密算法结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
[0036]本专利技术在应用系统级别消息传输过程中,基于PKI的安全体系,采用数字信封的方式进行统一会话密钥分发。数字信封的原理就是采用对称加密算法加密大批量的数据,然后采用非对称加密算法对其中的对称密钥进行加密,在解密的过程中首先用非对称加密算法解密获取对称加密算法的密钥,然后使用获取的密钥解密获取数据明文。
[0037]本专利技术在安全传输中主要包括两大部分,第一部分是第一次建立通信时进行统一会话密钥操作,第二部分是使用统一后的密钥对通信的消息进行加密解密。
[0038]如图4所示,系统在Sender(发送方)和Receiver(接收方)互为约定对象的前提下第一次进行密文通信统一会话密钥,具体步骤如下:
[0039](1)发送方选择接收方,监听传输的明文消息内容;
[0040](2)选择发送消息之后,此时的会话明文为C1;
[0041](3)随机密码生成器会自动生成定长的SM4会话密钥Mk,并在发送方中的y钥匙链(KeyChain)进行存储,同时通过接收方的ID向安全模块获取其SM2的公钥Pk;
[0042](4)通过公钥Pk加密Mk生成定长的会话密钥密文Ck,同时使用会话密钥Mk加密明文C1成C。拼接Ck和C成密文M;
[0043](5)向安全模块发送密文M和接收方的ID,安全模块生成URL查询地址,调用安全模块接口发送地址和ID;
[0044](6)安全模块通过ID将发送地址推送给接收方;
[0045](7)接收方通过向发送地址POST请求获取到拼接的密文消息,截取得到定长的会话密钥密文Ck和即时密文消息C;
[0046](8)发送者过用自己的私钥Uk解密Ck得到Mk,在发送者的钥匙链中存储Mk,同时用Mk解密C得到明文C1,并在发送者的返回提示信息中显示。
[0047]当发送方和接收方经本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于非对称算法的加密解密方法,其特征在于,包括以下步骤:(1)发送方选择接收方,监听传输的明文消息内容;(2)选择发送消息之后,此时的会话明文为C1;(3)随机密码生成器会自动生成定长的SM4会话密钥Mk,并在发送方中的y钥匙链(KeyChain)进行存储,同时通过接收方的ID向安全模块获取其SM2的公钥Pk;(4)通过公钥Pk加密Mk生成定长的会话密钥密文Ck,同时使用会话密钥Mk加密明文C1成C。拼接Ck...

【专利技术属性】
技术研发人员:海文涛马英红
申请(专利权)人:北京航天长峰科技工业集团有限公司
类型:发明
国别省市:

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

1