一种基于SM9的双方加密解密方法、系统及电子设备技术方案

技术编号:37592578 阅读:12 留言:0更新日期:2023-05-18 11:31
本发明专利技术公开了一种基于SM9的双方加密解密方法、系统及电子设备,首先用户A使用消息收发双方的标识ID与系统公钥加密消息M发送给用户B;然后加密后的消息密文C包含用户A与用户B的标识与密钥信息;最后用户A可使用自身的私钥与消息密文中包含的C1和C

【技术实现步骤摘要】
一种基于SM9的双方加密解密方法、系统及电子设备


[0001]本专利技术属于信息安全
,涉及一种双方加密解密方法、系统及电子设备,具体涉及一种基于SM9算法的双方加密解密方法、系统及电子设备。

技术介绍

[0002]在信息安全领域中,如何保护数据的安全与隐私一直是人们关注的重点。在安全通信场景中,服务端加密方法会存储在传输过程中加密的数据,保证数据不被未经授权者访问,但这种方法不能保护整个的数据隐私的传输过程。端到端加密方式提供了很好的解决方法,这种方法的加密解密过程发生在终端设备上,只有发送方和指定的接收方可以访问数据,任何第三方机构都不能访问服务器上的加密数据。即时通信是当前信息网络上应用广泛的一种通信技术,允许两人或多人使用互联网实时传输文字、语音和图片等信息。与电子邮件等传统安全通信任务的要求不同,安全即时通信不仅要求保障用户信息的安全传输,同时也需要保证用户隐私数据的安全存储。
[0003]运用密码技术是解决通信过程中的数据隐私保护问题的重要手段。目前的即时通信加密技术为满足该场景下用户双方的解密需求,需要通过密钥协商生成双方共有的会话密钥。这种方法不仅为实现会话密钥的一次一密安全要求带来了困难,也为即时通信系统的密钥管理带来了极大困难。SM9公钥加密与解密算法即基于标识的非对称密码算法,该算法使消息发送者可以利用接收者的标识对消息进行加密,只有接收者可以用相应的私钥对该密文进行解密,从而获取消息。与传统公钥加密算法相比,SM9通过将用户标识作为公钥,从而省略了数字证书交换与证书管理等过程,适用于互联网各种新兴应用的安全保障。

技术实现思路

[0004]本专利技术的目的在于克服现有安全即时通信加密方法存在的缺陷,提出了一种基于SM9算法的双方加密解密方法、系统及电子设备,用于解决现有技术存在的需要复杂的密钥协商过程以及密钥管理困难的问题,在省去密钥协商过程的情况下,实现满足一次一密且通信双方均可解密的公钥加密算法,同时解决数据的安全传输和安全存储。
[0005]本专利技术的方法所采用的技术方案是:一种基于SM9算法的双方加密解密方法,包括以下步骤:
[0006]步骤1:用户A使用消息收发双方的标识ID与系统公钥加密消息M发送给用户B;加密后的消息密文C包含用户A与用户B的标识与密钥信息;
[0007]其中:C=C1||C
′1||C3||C2;
[0008]C
′1=[r]Q
B

[0009]C1=[r
·
t
‑1]Q
A

[0010]C3=MAC(K2,C2);
[0011]Q
A
=[H1(ID
A
||hid,N)]P1+P
pub

e

[0012]Q
B
=[H1(ID
B
||hid,N)]P1+P
pub

e

[0013]t=H1(de
A
||C
′1);
[0014]其中,ID
A
和ID
B
分别为用户A和用户B的标识;H1()为由密码杂凑函数派生的密码函数;hid为用一个字节表示的私钥生成函数标识符,由密钥生成中心KGG选择并公开;P1为群G1的生成元,G1是阶为素数N的加法循环群;P
pub

e
为加密主公钥,P
pub

e
=[ke]P1,ke为加密主私钥;随机数r∈[1,N

1];de
A
为用户A的私钥;使用密钥派生函数KDF()生成加密码密钥,加密消息M得到C2;MAC()为消息认证码函数,K2为密钥;
[0015]步骤2:用户A使用自身的私钥与消息密文中包含的C1和C
′1计算中间参数,解密出消息明文;
[0016]步骤3:用户B使用自身的私钥与消息密文中包含的C
′1计算中间参数,解密出消息明文。
[0017]本专利技术的系统所采用的技术方案是:一种基于SM9算法的双方加密解密系统,包括以下模块:
[0018]模块1,用于用户A使用消息收发双方的标识ID与系统公钥加密消息M发送给用户B;加密后的消息密文C包含用户A与用户B的标识与密钥信息;
[0019]其中:C=C1||C
′1||C3||C2;
[0020]C
′1=[r]Q
B

[0021]C1=[r
·
t
‑1]Q
A

[0022]C3=MAC(K2,C2);
[0023]Q
A
=[H1(ID
A
||hid,N)]P1+P
pub

e

[0024]Q
B
=[H1(ID
B
||hid,N)]P1+P
pub

e

[0025]t=H1(de
A
||C
′1);
[0026]其中,ID
A
和ID
B
分别为用户A和用户B的标识;H1()为由密码杂凑函数派生的密码函数;hid为用一个字节表示的私钥生成函数标识符,由密钥生成中心KGC选择并公开;P1为群G1的生成元,G1是阶为素数N的加法循环群;P
pub

e
为加密主公钥,P
pub

e
=[ke]P1,ke为加密主私钥;随机数r∈[1,N

1];de
A
为用户A的私钥;使用密钥派生函数KDF()生成加密码密钥,加密消息M得到C2;MAC()为消息认证码函数,K2为密钥;
[0027]模块2,用于用户A使用自身的私钥与消息密文中包含的C1和C1′
计算中间参数,解密出消息明文;
[0028]模块3,用于用户B使用自身的私钥与消息密文中包含的C1′
计算中间参数,解密出消息明文。
[0029]本专利技术的电子设备所采用的技术方案是:一种电子设备,包括:
[0030]一个或多个处理器;
[0031]存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现所述的基于SM9算法的双方加密解密方法。
[0032]相对于现有技术,本专利技术的有益效果是:使用基于SM9的公钥加密算法的扩展实现,利用消息收发双方的用户标识进行消息加解密可省去消息通讯过程中的数字证书交换与证书管理等过程,适用于即时通信场景下的数据安全保障;将用户双方的标识引入消息加密过程中,从而使得消息收发双方均能够解密双方的消息,消除了当前即时通信对称加密方法中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
为K最左边的mlen比特,K2为剩下的K
2_
len比特,若K1为全0比特串,则回转执行步骤1.2:(2)计算如果加密明文的方法是结合密钥派生函数的分组密码算法,则:(1)计算整数klen=K1‑
len+K
2_
len,然后计算K=KDF(C1||C
′1||w||ID
A
||ID
B
,klen);令K1为K最左边的K
1_
len比特,K2为剩下的K
2_
len比特,若K1为全0比特串,则回转执行步骤1.2;(2)计算C2=Enc(K1,M);其中,Enc()为分组加密算法;步骤1.8:计算C3=MAC(K2,C2);其中,MAC()为消息认证码函数;步骤1.9:输出密文C=C1||C
′1||C3||C2。3.根据权利要求1所述的基于SM9的双方加密解密方法,其特征在于,步骤2的具体实现包括以下子步骤:步骤2.1:从C中取出比特串C1与C
′1,将C1的数据类型转换为椭圆曲线上的点,验证C1∈G1是否成立,并计算中间变量t,若不成立则报错并退出;步骤2.2:计算群G
T
中的元素w

,将w

的数据类型转换为比特串;w

=e(C1,de
A
)
t
;步骤2.3:使用密钥派生函数KDF()生成加密码密钥,解密密文C2得到M;如果加密明文的方法是基于密钥派生函数的序列密码算法,则:(1)计算整数klen=mlen+K
2_
len,然后计算K

=KDF(C1||C
′1||w

||ID
A
||ID
B
,klen);令K
′1为K

最左边的mlen比特,K
′2为剩下的K
2_
len比特,若K
′1为全0比特串,则报错并退出;(2)计算如果加密明文的方法是结合密钥派生函数的分组密码算法,则:(1)计算整数klen=K
1_
len+K
2_
len,然后计算K

=KDF(C1||C
′1||w

||ID
A
||ID
B
,klen);令K
′1为K

最左边的K
1_
len比特,K
′2为剩下的K
2_
len比特,若K
′1为全0比特串,则报错并退出;(2)计算M

=Dec(k
′1,C2);其中,Dec()为分组解密算法;步骤2.4:计算u=MAC(K
′2,C2),从C中取出比特串C3,若u≠C3,则报错并退出;步骤2.5:输出明文M

。4.根据权利要求1所述的基于SM9的双方加密解密方法,其特征在于,步骤3的具体实现包括以下子步骤:步骤3.1:从C中取出比特串C
′1,将C
′1的数据类型转换为椭圆曲线上的点,验证C
′1∈G1是否成立,若不成立则报错并退出;步骤3.2:计算群G
T
中的元素w

,将w

的数据类型转换为比特串;w

=e(C
′1,de
B
);其中,de
B
为用户B的私钥,de
B
=[ke
·
(H1(ID
B
||...

【专利技术属性】
技术研发人员:杜昭睿宋奕杨世昭王茜艳霍明月
申请(专利权)人:烟台珈港电子科技有限公司
类型:发明
国别省市:

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

1