一种基于国密算法的数据安全传输方法与流程

文档序号:23824857发布日期:2021-02-03 17:24阅读:153来源:国知局
一种基于国密算法的数据安全传输方法与流程

[0001]
本发明涉及数据传输技术领域,尤其是涉及一种基于国密算法的数据安全传输方法。


背景技术:

[0002]
目前,在数据传输过程中,数据的安全是需要着重关注的,数据传输的方式很多,在不同的传输过程中,采用的安全保护方法也不同,如软件升级中,传统的企业没有提供统一软件升级的管理工具,所以软件安装、升级、卸载等都是手动或半自动完成的。这样提供给客户的软件安装、升级、卸载的方式五花八门,安装程序主要分两种,下载器的安装包和离线安装包。而升级功能看似简单,但对于一个持续迭代更新的软件来说却是一个重要的功能模块。开发团队修复bug完成后交版本,大多迫切的希望客户能马上通过升级新版本来完善用户体验。
[0003]
现如今,常见的客户端在线升级方式有以下几种:方法一、首先客户端发送检测更新的消息到服务器,服务器给返回是否有新版本,最新版本号以及下载地址等信息,客户端就根据这些信息处理。如果有更新就去刚刚获取到的地址下载最新的安装程序,然后执行安装程序更新。
[0004]
方法二、由于方法一重新安装太麻烦,而且安装包也特别大,下载也非常耗时。下载程序的方法被替换成了一个压缩包,里面装的是程序需要更新的文件。升级程序下载好压缩包后再解压到安装目录中就完成了软件的升级。
[0005]
方法三、因为更新软件升级包大小越来越大,用户更新升级的等待时间较长,部分软件就采用了后台静默下载的方式。当主程序一般都还在运行过程中,升级程序下载完成后,升级更新需要关闭主程序然后进行文件替换,避免文件被占用,引起升级失败。现有较新的技术中双目录更新的方法来应对这种情况。双目录指的是把原来的文件先复制到另一个目录下,更新程序的时候就更新这个文件目录,升级完成后就直接从新的目录中启动新版本。
[0006]
以上三种升级方法中都会存在,终端用户无法知道所获得的软件是否被篡改,这会对用户的系统安全造成隐患。由于用户方无法校验软件包的合法性与安全性,用户一旦发起远程升级,如软件包被篡改加入了隐性病毒或者实际发送未非合法升级软件包,给用户系统的安全性、稳定性、系统的性能造成很大危害,直接给升级方造成损失。
[0007]
因此,如何保证数据传输过程中的安全,是目前亟待解决的问题。


技术实现要素:

[0008]
本发明的目的是提供一种基于国密算法的数据安全传输方法,在平台端生成公私密钥对和根密钥,根据根密钥、终端产生的随机数加密终端地址,得到工作密钥明文,传输给终端;接收终端发送的第二数据包并解密,得到mac地址、元素块mab,用工作密钥mak加密元素块mab后,对mac地址进行验证,发送验证结果给终端。在终端,登录时生成随机数,采用
公钥加密随机数得到随机数密文,将随机数密文、终端地址发送给平台;接收平台发送的工作密钥明文,并存储;根据欲发送数据,形成元素块mab,对mab进行运算后用工作密钥加密,再进行计算得到mac地址,发送mac地址、mab给平台进行验证,接收平台返回的验证结果。本申请通过密钥及一系列运算加密传输数据,保证了数据安全。
[0009]
第一方面,本发明的上述发明目的通过以下技术方案得以实现:一种基于国密算法的数据安全传输方法,在密钥生成过程中,平台的工作包括:生成公私密钥对和根密钥,将公钥传输给终端,接收终端地址和随机数密文,用私钥解密,采用随机数、根密钥加密终端地址,得到工作密钥明文,传输给终端。
[0010]
本发明进一步设置为:平台的工作包括以下步骤:s1、生成根密钥,并保存;s2、采用算法,生成公私钥对,并保存;s3、根据终端请求,发送公钥给终端;s4、接收终端发送的第一数据包,采用私钥解密,得到终端地址和随机数;s5、用根密钥对终端地址加密,得到工作密钥mak;s6、用随机数对工作密钥mak加密,得到工作密钥明文;s7、发送工作密钥明文给终端。
[0011]
本发明进一步设置为:根据项目编号生成根密钥;采用国密算法sm2生成公私钥对。
[0012]
本发明进一步设置为:采用3des加密算法,用根密钥对终端地址加密。
[0013]
第二方面,本发明的上述发明目的还通过以下技术方案得以实现:一种基于国密算法的数据安全传输方法,在数据传输过程中,平台的工作包括:接收终端发送的第二数据包,解密第二数据包,得到mac地址、元素块mab,用工作密钥mak加密元素块mab后,对mac地址进行验证,发送验证结果给终端。
[0014]
第三方面,本发明的上述发明目的还通过以下技术方案得以实现:一种基于国密算法的数据安全传输方法,在密钥生成过程中,终端的工作包括:获取公钥,生成随机数,采用公钥加密随机数得到随机数密文,将随机数密文、终端地址形成第一数据包,发送给平台;接收平台发送的工作密钥明文,并存储。
[0015]
本发明进一步设置为:终端的工作包括以下步骤:a1、向平台发送获取公钥请求;a2、接收平台发送的公钥,并保存;a3、终端登录时,生成随机数,采用公钥对随机数加密,生成随机数密文;a4、将随机数密文、终端地址形成第一数据包,并发送给平台;a5、接收平台发送的工作密钥明文,采用随机数进行解密,得到工作密钥mak,并存储。
[0016]
第四方面,本发明的上述发明目的还通过以下技术方案得以实现:一种基于国密算法的数据安全传输方法,在数据传输过程中,终端的工作包括:根据欲发送数据,形成元素块mab,对mab进行计算,用工作密钥加密计算结果后再进行计算,得到mac地址,发送mac地址、mab给平台进行验证,接收平台返回的验证结果。
[0017]
本发明进一步设置为:终端的工作包括以下步骤:b1、根据欲发送数据,形成元素块mab;
b2、对mab进行运算,得到第一数据;b3、截取第一数据的n个字节,采用工作密钥对n个字节进行加密,对加密结果再进行运算,得到第二数据;b4、截取第二数据的m个字节作为mac地址;b5、发送mac地址、元素块mab给平台进行验证;b6、接收平台的验证结果。
[0018]
本发明进一步设置为:步骤b2中,包括以下子步骤:b21、对元素块mab按照设定字节长度k进行截取,得到长度为k的多个字段;b22、对最后不足长度k的字段补足到k字节;b23、对所有字段进行运算,将运算的结果作为第一数据。
[0019]
本发明进一步设置为:步骤b3中,包括以下子步骤:b31、截取第一数据的n个字节,采用工作密钥mak对n个字节进行加密,得到加密字节;b32、将加密字节与第一数据的另外n个字节进行运算,得到运算字节;b33、采用单倍长密钥算法,对运算字节进行计算,得到第三数据;b34、将第三数据进行数据格式转换,得到第二数据。
[0020]
第五方面,本发明的上述发明目的还通过以下技术方案得以实现:一种平台,包括平台处理器、平台存储器,所述平台存储器用于存储能够在所述平台处理器上运行的平台计算机程序,所述平台处理器执行所述平台计算机程序时,实现平台工作所述方法。
[0021]
第六方面,本发明的上述发明目的还通过以下技术方案得以实现:一种终端,包括终端处理器、终端存储器,所述终端存储器用于存储能够在所述终端处理器上运行的终端计算机程序,所述终端处理器执行所述终端计算机程序时,实现终端工作所述方法。
[0022]
与现有技术相比,本申请的有益技术效果为:1.本申请平台通过生成密钥对,结合终端地址和随机数,得到工作密钥和工作密钥明文,实现了工作密钥的唯一,保证了安全;2.进一步地,本申请在数据传输过程中,平台接收终端发送的数据包,得到终端mac进行验证,确保终端一机一密,提高了数据传输的安全;3.进一步地,本申请终端根据密钥进行加密,存储工作密钥明文,保证了终端设备与平台的一一对应;4.进一步地,本申请终端在数据传输过程中,通过一系列的运算,产生数据包,把终端的mac与元素块mab发送给平台进行验证,提高了数据传输时的安全性,降低了被破解或被攻击的几率。
附图说明
[0023]
图1是本申请的一个具体实施例的密钥产生过程流程示意图;图2是本申请的一个具体实施例的数据传输过程流程示意图。
具体实施方式
[0024]
以下结合附图对本发明作进一步详细说明。
[0025]
本申请的一种基于国密算法的数据安全传输方法,包括密钥产生过程与数据传输过程,对应一个项目生成根密钥,并生成密钥对,根密钥与密钥对一一对应,密钥产生后,在每次的数据传输过程中进行调用,保证了一机一密,提高了数据传输时的安全性。
[0026]
数据在平台与终端之间进行传输,平台包括平台处理器、平台显示装置、平台存储器,平台存储器用于存储能够在平台处理器上运行的平台计算机程序,平台处理器执行平台计算机程序。
[0027]
终端包括终端处理器、终端显示装置、终端存储器,终端存储器用于存储能够在所述终端处理器上运行的终端计算机程序。
[0028]
本申请的平台计算机程序、终端计算机程序可分别存储于一计算机可读存储介质中,所述计算机程序在被处理器执行时,可实现本申请所述方法。
[0029]
如图1所示,平台产生密钥对,并发送给终端存储公钥,终端产生随机数并用公钥加密,生成随机数密文,将随机数密文、终端地址形成第一数据包,并发送给平台,平台解密后得到工作密钥mak并发送终端进行保存。工作密钥mak在数据传输过程中用于对数据进行加密。
[0030]
密钥产生过程中,平台的工作包括:生成公私密钥对和根密钥,将公钥传输给终端,接收终端地址和随机数密文,用私钥解密,采用随机数、根密钥加密终端地址,得到工作密钥明文,传输给终端。
[0031]
具体地,包括以下步骤:s1、生成根密钥,并保存;s2、采用算法,生成公私钥对,并保存;s3、根据终端请求,发送公钥给终端;s4、接收终端发送的第一数据包,采用私钥解密,得到终端地址和随机数;s5、用根密钥对终端地址加密,得到工作密钥mak;s6、用随机数对工作密钥mak加密,得到工作密钥明文;s7、发送工作密钥明文给终端。
[0032]
在步骤s1中,对项目进行编号,将编号转换为ascii码,截取ascii码的w个字节生成根密钥,实现根密钥与项目一一对应的关系。
[0033]
在本申请的一个具体实施例中,一般情况下,编号不同之处在于最后一位,截取ascii码的最后16个字节,形成独特的根密钥。
[0034]
平台采用国密算法sm2生成公私钥对,公钥用于在平台进行展示,私钥保存在平台数据库中,将公钥、私钥分开存储。
[0035]
根据终端请求,平台把公钥发送给终端,接收终端发送的第一数据包,用私钥进行解密,得到终端地址、随机数,采用3des加密算法,用根密钥对终端地址进行加密,得到工作密钥mak。
[0036]
在本申请的一个具体实施例中,终端地址转换为ascii码后作为加密因子进行加密,位数不足时用f补足。
[0037]
终端在密钥生成过程中的工作包括:获取公钥,生成随机数,采用公钥加密随机数
得到随机数密文,将随机数密文、终端地址形成第一数据包,发送给平台;接收平台发送的工作密钥明文,并存储。
[0038]
具体地,包括以下步骤:a1、向平台发送获取公钥请求;a2、接收平台发送的公钥,并保存;a3、终端登录时,生成随机数,采用公钥对随机数加密,生成随机数密文;a4、将随机数密文、终端地址形成第一数据包,并发送给平台;a5、接收平台发送的工作密钥明文,采用随机数进行解密,得到工作密钥mak,并存储。
[0039]
终端发送请求,得到公钥,并将公钥保存在安全芯片中。
[0040]
终端登录时,使用安全芯片产生随机数,再用公钥对随机数进行加密,得到随机数密文;将随机数密文、终端地址形成第一数据包,并发送给平台;接收平台发送的工作密钥明文,采用sm4算法,用随机数对工作密钥明文进行解密,得到工作密钥mak,将工作密钥mak存储在安全芯片中,并保证不能被读取。
[0041]
密钥产生后,在平台存储有私钥、根密钥、工作密钥mak,在终端存储在工作密钥mak、公钥。工作密钥mak用于计算报文的安全认证。
[0042]
在数据传输过程中,如图2所示,终端的工作包括:根据欲发送数据,形成元素块mab,对mab进行计算,用工作密钥mak加密计算结果后再进行计算,得到mac地址,发送mac地址、mab给平台进行验证,接收平台返回的验证结果。
[0043]
具体地,包括以下步骤:b1、根据欲发送数据,形成元素块mab;b2、对mab进行运算,得到第一数据;b3、截取第一数据的n个字节,采用工作密钥对n个字节进行加密,对加密结果再进行运算,得到第二数据;b4、截取第二数据的m个字节作为mac地址;b5、发送mac地址、元素块mab给平台进行验证;b6、接收平台的验证结果。
[0044]
其中,n、m、k、w根据需要选择。
[0045]
将欲传输给平台的数据,以类型生成元素块mab(=mac elemement block,mac元素块)。
[0046]
对元素块mab进行运算,包括以下步骤:b21、对元素块mab按照设定字节长度k进行截取,得到长度为k的多个字段;b22、对最后不足长度k的字段补足到k字节;b23、对所有字段进行运算,将运算的结果作为第一数据。
[0047]
在本申请的一个具体实施例中,将元素块mab转换为ascii码,按照每字段16个字节进行截取,共得到多个字段,考虑到不一定能被16整分,对不足的添加“0x00”补足。
[0048]
对所有字段进行逻辑运算,如异或运算,得到16字节结果,作为第一数据。
[0049]
对第一数据进行运算,得到第二数据,包括以下步骤:b31、截取第一数据的n个字节,采用工作密钥mak对n个字节进行加密,得到加密字节;b32、将加密字节与第一数据的另外n个字节进行逻辑运算,得到运算字节;
b33、采用单倍长密钥算法,对运算字节进行计算,得到第三数据;b34、将第三数据进行数据格式转换,得到第二数据。
[0050]
在本申请的一个具体实施例中,从第一数据的16个字节中,截取前8个字节,用工作密钥mak进行加密,得到加密字节,将加密字节与第一数据的后8个字节进行逻辑运算,如异或运算,得到运算字节,对运算字幕进行单倍长密钥运算,得到第三数据,将第三数据转换成asc码的16个字节,取前8个字节作为mac地址。
[0051]
将mac地址、元素块mab组成第二数据包,发送给平台,经过平台验证后,接收平台的验证结果。
[0052]
平台在接收到第二数据包后,采用工作密钥mak对元素块mab进行加密,得到加密结果,把加密结果与mac进行对比,如果相同,表示验证成功,发送成功信息给终端;如果不相同,则表示验证不成功,发送错误信息给终端。
[0053]
终端接收到验证结果后,进行相应操作。
[0054]
所述终端包括pos机,所述平台包括pos中心。
[0055]
本具体实施方式的实施例均为本发明的较佳实施例,并非依此限制本发明的保护范围,故:凡依本发明的结构、形状、原理所做的等效变化,均应涵盖于本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1