一种基于SM9算法的短信加密方法与流程

文档序号:17358334发布日期:2019-04-09 21:53阅读:636来源:国知局
一种基于SM9算法的短信加密方法与流程

本发明涉及信息安全领域,具体涉及一种基于sm9算法的短信加密方法。



背景技术:

随着移动通信的飞速发展和智能移动终端的不断普及,短信已经成为人们日常生活中进行信息交流的一种主流方式。然而,人们在享受着短信带来的便捷,却不经意间忽略了其产生的安全隐患。比如,在人们使用短信进行传输商业信息、个人隐私,使用短信验证码进行账户登录和交易支付时,不法分子可以通过监听窃取短信传输的数据获取用户信息,可以通过恶意app或者木马读取在本地明文存储的短信信息。

传统的短信加密技术大多使用对称加密算法(加密和解密密钥相同)进行加解密,且密钥一般存储在应用层,一但移动终端被植入木马或恶意软件,攻击者很容易获取密钥,那么此短信加密技术就不再安全。

此外,传统的短信加密技术使用数字证书进行身份认证,需要证书的颁发机构ca、证书的发布与查询,以及证书的校验计算,而这大大增加了加密技术的实现成本,降低了系统的运行效率。



技术实现要素:

本发明的目的在于,针对现有技术中存在的缺陷,提供一种基于sm9算法的短信加密方法,提高短信加密的安全性和运行效率。

为实现上述目的,本发明采用以下技术方案:

一种基于sm9算法的短信加密方法,用于对发信端设备和收信端设备之间的短信通信进行加解密,包括:将发信端设备和收信端设备在短信通信的加解密过程中使用到的密钥存储在各自设备的主处理器中的tee(trustedexecutionenvironment,可信执行环境)中。

进一步地,所述密钥包括公钥和私钥,其中,所述公钥为收信端设备的身份标识,所述私钥是根据所述公钥按照sm9算法对应生成的。

进一步地,所述发信端设备和收信端设备均为手机,所述公钥为收信端手机的手机号码。

进一步地,所述方法具体包括以下步骤:

s1、使用发信端设备在短信app中编写短信数据后,发信端设备的短信app向发信端设备的tee发送加密请求,以获取收信端设备的身份标识作为公钥;

s2、发信端设备的短信app使用s1所述的公钥对短信数据进行加密,形成密态数据;

s3、发信端设备的短信app将密态数据打包后形成密文数据包,并将密文数据包发送到发信端设备的基带通信模块中,基带通信模块将密文数据包调制后形成调制信号,发送到电信运营商的短信传输通道上;

s4、调制信号形式的加密短信数据经过电信运营商的短信传输通道,传输到收信端设备的基带通信模块中,基带通信模块将加密短信数据解调后还原成密文数据包发送给收信端设备的短信app;

s5、收信端设备的短信app将密文数据包进行数据拆包,还原成密态数据;

s6、当收信端设备的用户需要读取短信时,收信端设备的短信app发送解密请求到收信端设备的tee中,以获取私钥;

s7、收信端设备的短信app使用私钥对密态数据进行解密,以供用户查阅短信数据。

进一步地,所述s2还包括:将密态数据存储于发信端设备的存储区中。

进一步地,所述s5还包括:将密态数据存储于收信端设备的存储区中。

本发明在正常的短信业务基础上,使用sm9算法和可信执行环境tee相结合的安全加密技术,对手机之间的短信数据进行加密保护,确保了短信数据的安全性。其同时具备算法强度的优越性、算法密钥的安全性和身份认证的便捷性。

附图说明

图1是本发明实施例提供的一种基于sm9算法的短信加密方法的流程示意图。

具体实施方式

在详细说明本发明的技术方案之前,先简要介绍本发明涉及的一些基本概念。

sm9算法是一种基于身份标识的中国自主公钥密码算法,2016年国家密码管理局发布了《sm9标识密码算法》,标准编号:gm/t0044-2016。sm9算法是一种基于双线性配对和椭圆曲线的新型公钥密码技术,从传统的pki(publickeyinfrastructure,公钥基础设施)基础上发展而来,主要解决的问题集中在身份认证、抗否认、完整性、保密性等方面,为实现应用安全提供了一个新的解决思路。

sm9算法从加密机制上属于非对称加密算法。非对称加密算法在进行加解密的过程中需要使用到两个密钥——公钥和私钥。公钥与私钥是成对生成,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。

tee(trustedexecutionenvironment,可信执行环境)最先由globalplatform(全球平台国际标准组织,简称gp)提出。它是移动设备主处理器上的一个安全区域,其可以保证加载到该环境内部的代码和数据的安全性、机密性以及完整性。tee提供一个隔离的执行环境,提供的安全特征包含:隔离执行、可信应用的完整性、可信数据的机密性、安全存储等。

下面将结合附图和具体的实施例,对本发明的技术方案进行详细说明。

在一个完整的单向短信通信流程中,一般涉及发信端设备和收信端设备,以及负责对两者的信息进行收发传送的电信运营商。而本发明相对于现有技术所作出的最大改进,一方面是采用了sm9算法,其同时具备算法强度的优越性和身份认证的便捷性;另一方面是在sm9算法的基础之上,将发信端设备和收信端设备在短信通信的加解密过程中使用到的密钥存储在各自设备的主处理器中的tee中,进一步提升了密钥数据的安全性。

其中,所述密钥包括公钥和私钥。在本发明中,采用基于身份认证的sm9算法,公钥是通信双方的身份标识,然后根据公钥生成相应的私钥。具体而言,在一个完整的单向短信通信流程中,所述用于加密的公钥为收信端设备的身份标识,存储于发信端设备的tee中;所述私钥是根据所述公钥按照sm9算法对应生成的,存储于收信端设备的tee中。

所述发信端设备和收信端设备可以是手机、平板电脑或者其他任何支持短信通信的智能终端设备。在本发明实施例中,为便于表述,统一采用手机作为发信端设备和收信端设备,并且,直接选择通信双方的手机号作为彼此的公钥。其中,假设发信端设备为手机a,收信端设备为手机b;那么在由手机a向手机b发送短信的过程中,公钥为手机b的手机号,存储于手机a的tee中,用于加密;而以手机b的手机号为公钥生成的私钥,则存储于手机b的tee中,用于解密。

具体地,如图1所示,根据本发明,由手机a向手机b发送短信的过程中,对短信进行加解密的方法如下:

s1、使用手机a在短信app中编写短信数据后,手机a的短信app向手机a的tee发送加密请求,以获取手机b的手机号作为公钥;

s2、手机a的短信app使用s1所述的公钥对短信数据进行加密,形成密态数据;并将密态数据存储于手机a的存储区中;

s3、手机a的短信app将密态数据打包后形成密文数据包,并将密文数据包发送到手机a的基带通信模块中,基带通信模块将密文数据包调制后形成调制信号,发送到电信运营商的短信传输通道上;

s4、调制信号形式的加密短信数据经过电信运营商的短信传输通道,传输到手机b的基带通信模块中,基带通信模块将加密短信数据解调后还原成密文数据包发送给手机b的短信app;

s5、手机b的短信app将密文数据包进行数据拆包,还原成密态数据;并将密态数据存储于手机b的存储区中;

s6、当手机b的用户需要读取短信时,手机b的短信app发送解密请求到手机b的tee中,以获取私钥;

s7、手机b的短信app使用私钥对密态数据进行解密,以供用户查阅短信数据。

需要说明的是,本发明实施例仅例举了手机a向手机b发送短信的单向流程。然而,在实际情况中,短信的通信往往是双向的,根据本发明的技术方案,本领域的技术人员应当能够毫无疑义地认识到:当使用手机b向手机a发送短信时,则手机b为发信端设备,手机a为收信端设备;在此过程中,手机a的手机号为用于加密的公钥,存储于手机b的tee中,用于对短信进行加密;而以手机a的手机号为公钥生成的私钥,则存储于手机a的tee中,用于对短信进行解密。数据处理及传输过程依此类推。

本发明在正常的短信业务基础上,使用sm9算法和可信执行环境tee相结合的安全加密技术,对手机之间的短信数据进行加密保护,确保了短信数据的安全性。其同时具备算法强度的优越性、算法密钥的安全性和身份认证的便捷性。

传统的短信加密方案使用的是对称加密算法,而本专利使用sm9算法的是非对称加密算法。与对称加密算法相比,非对称加密算法更复杂,算法强度更高,它的保密性更好;但是由于算法更复杂,它的加解密速度稍慢一些,不过,因为短信内容长度很短,对加解密时长基本没有影响。此外,本发明使用的sm9算法的算法强度相当于3027位密钥的rsa加密算法,算法强度非常高,到目前为止,仍未被破译;具备算法强度的优越性。

同时,本发明采用的sm9算法,公钥就是双方的身份标识(手机号),确保了通信双方身份的真实可信,减少了签发数字证书进行身份认证的过程,降低了加密短信技术的实现成本,提高了系统的运行速度。提升了身份认证的便捷性。

进一步地,本发明将密钥存储在可信执行环境tee中,只有通过设备认证,才能使用临时密钥完成应用与tee的加密数据传输,实现读写tee内部数据。因此,恶意软件或木马无法与tee通信,也无法监听tee的通信,进而实现了对tee中密钥数据的保护。提升了算法密钥的安全性。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1