数据加密传输方法及数据解密方法与流程

文档序号:31456876发布日期:2022-09-07 14:51阅读:290来源:国知局
数据加密传输方法及数据解密方法与流程

1.本发明涉及数据加密技术领域,特别涉及一种数据加密传输方法及数据解密方法。


背景技术:

2.对数据加密后再传输是一种保障数据安全的有效手段。常用的加密方式有对称加密和非对称加密。对称加密算法是采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法也称为单密钥加密。非对称加密算法是需要两个密钥来进行加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。由于单独的对称加密或非对称加密具有一定的可靠性,因此目前的数据加密传输都只采用了一种加密手段。


技术实现要素:

3.本发明的目的在于提供一种数据加密传输方法及数据解密方法,结合对称加密和非对称加密,提高数据安全性的同时也提高数据传输效率。
4.为了实现上述发明目的,本发明实施例提供了以下技术方案:
5.一方面,本发明提供了一种数据加密传输方法,包括以下步骤:
6.步骤1,生成随机的对称加密秘钥;
7.步骤2,使用所述对称加密秘钥对欲传输的原始数据加密,得到加密数据;
8.步骤3,使用非对称加密算法对所述对称加密秘钥进行加密,得到非对称加密秘钥;
9.步骤6,将所述加密数据、所述非对称加密秘钥组合后发送给数据接收方。
10.在更优化的方案中,在所述步骤6之前还包括步骤5,使用摘要算法对所述加密数据、所述非对称加密秘钥进行计算,生成加密信号;所述步骤6则是将所述加密数据、所述非对称加密秘钥、所述加密信号组合后发送给数据接收方。本方案中增加了数据签名,可以有效防止数据被篡改。
11.在更优化的方案中,在所述步骤6之前还包括步骤4,生成请求时间;所述步骤6则是将所述加密数据、所述非对称加密秘钥、所述请求时间组合后发送给数据接收方。本方案中增加了时间验证,可以保证接收到的数据在允许的时间范围内,即验证数据是否有可能被篡改,进一步提高数据传输的安全性。
12.另一方面,本发明实施例还提供了一种数据解密方法,包括以下步骤:
13.获得加密传输数据,并分解所述加密传输数据得到加密数据、非对称加密秘钥;
14.使用非对称加密的私钥对所述非对称加密秘钥进行解密,得到对称加密秘钥;
15.使用所述对称加密秘钥对所述加密数据进行解密,得到原始数据。
16.在更优化的方案中,所述获得加密传输数据,并分解所述加密传输数据得到加密数据、非对称加密秘钥的步骤,包括:获得加密传输数据,并分解所述加密传输数据得到加
密数据、非对称加密秘钥、请求时间;
17.所述的数据解密方法还包括步骤:判断所述请求时间与当前时间之间的时间差是否在设定的时间阈值范围内,如果不是则判定为无效请求。
18.在更优化的方案中,所述获得加密传输数据,并分解所述加密传输数据得到加密数据、非对称加密秘钥的步骤,包括:获得加密传输数据,并分解所述加密传输数据得到加密数据、非对称加密秘钥、加密信号;
19.所述的数据解密方法还包括步骤:使用摘要算法对所述加密数据、所述非对称加密秘钥进行计算,生成加密验证信号,比较所述加密验证信号和接收到的所述加密信号是否一致,如果不一致则判定为无效请求。
20.与现有技术相比,本发明方法中,对称加密的秘钥每次都随机生成,数据使用对称加密的方式,将对称加密的秘钥使用非对称加密的方式进行加密作为参数一起传递出去,这样既保证了数据的安全性又保证了效率。
附图说明
21.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
22.图1为实施例中数据加密传输方法的流程图。
23.图2为实施例中数据解密方法的流程图。
具体实施方式
24.下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的器件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
25.请参阅图1,本实施例中提供的数据加密传输方法,包括以下步骤:
26.s10,生成随机的对称加密秘钥。
27.对称加密算法有很多种,本步骤中对具体采用哪种对称加密算法没有要求。例如以aes对称加密算法为例,对称加密秘钥用f_key表示,随机生成一个对称加密秘钥为f_key=18dur9t0w58rue83i495ie8r4i38ww6a。
28.s20,使用所述对称加密秘钥对欲传输的原始数据加密,得到加密数据。
29.仅作为举例,假设数据data={'user_name':'王先生'},得到的加密数据用s_data表示,那么使用上述对称加密秘钥f_key进行加密后的结果为:s_data=25e7c8c3b2f4fbf8a67bed4dfeaff81b2cffc90f698b730dd18da65291ee3ff0。
30.s30,使用非对称加密算法对所述对称加密秘钥进行加密,得到非对称加密秘钥。
31.非对称加密算法有很多种,本步骤中对采用具体哪种非对称加密算法没有要求。
例如以rsa非对称加密算法为例,非对称加密秘钥用s_key表示。对步骤s10生成的对称加密秘钥f_key使用rsa加密后得到:s_key=4928bb2ece3211fad930ef7762b245b59e0667c0171d76e973f25a0968df287cd5346b764c5dc70e496702079e9d90aa76b2d284db45c1d6e5d97517130c63ce866d00e94b95ed38c54bd7d7c125876d1b358b60308089d421e4a264ba96f154ea0bc2aa622179da542a41a3286337d812f9af734a50b64e6f54df327503f086。
32.s40,生成请求时间。
33.本步骤中对于时间精度及格式没有具体要求,请求时间用s_time表示。以精确到毫秒为例,假设s_time=1638330271283(毫秒形式的时间格式)。
34.s50,使用摘要算法对所述加密数据、所述非对称加密秘钥、所述请求时间进行计算,生成加密信号。
35.具体地,先将所述加密数据、所述非对称加密秘钥、所述请求时间进行拼接,然后使用摘要算法对拼接后的整段数据进行加密,即得到加密信号。
36.摘要算法有很多种,本步骤中对具体采用哪种摘要算法没有要求。例如以sha256算法为例,生成的加密信号用s_sign表示。基于步骤s20生成的s_data、步骤s30生成的s_key、步骤s40生成的s_time,拼接后得到sign_temp=s_key+s_time+s_data,然后使用sha256算法对sign_temp进行加密,签名后得到:s_sign=6f84dc56b2486c9cb709882996ad55b7810635847baa5697dd93d3084d83eed7。
37.s60,将所述加密数据、所述非对称加密秘钥、所述请求时间、所述加密信号组合后发送给数据接收设备。
38.容易理解的是,此处的数据接收设备可以是任何设备,例如服务器、计算机等。
39.容易理解的是,对于数据传输的方式没有限定,包括但不限于http、tcp、u盘等。
40.本步骤中,对于组合的格式和顺序没有要求。作为一种简单的可实施方式,就是将所有数据相拼接(即相加),数据之间通过一个符号(例如分隔符|)相隔开。
41.以上述举例为例,组合后的数据用all_data表示,则all_data=25e7c8c3b2f4fbf8a67bed4dfeaff81b2cffc90f698b730dd18da65291ee3ff0|4928bb2ece3211fad930ef7762b245b59e0667c0171d76e973f25a0968df287cd5346b764c5dc70e496702079e9d90aa76b2d284db45c1d6e5d97517130c63ce866d00e94b95ed38c54bd7d7c125876d1b358b60308089d421e4a264ba96f154ea0bc2aa622179da542a41a3286337d812f9af734a50b64e6f54df327503f086|1638330271283|6f84dc56b2486c9cb709882996ad55b7810635847baa5697dd93d3084d83eed7。
42.对称加密速度快,但是安全性稍低,非对称加密速度慢,但是安全性较高。上述方法中,对称加密的秘钥每次都随机生成,数据使用对称加密的方式,将对称加密的秘钥使用非对称加密的方式进行加密作为参数一起传递出去,这样既保证了数据的安全性又保证了效率。
43.时间验证主要是为了防止请求被重复利用,有时候加密后的请求也有可能被别人拦截,攻击者可以再次发送完整的加密请求来获得数据。上述方法中,增加了时间验证,保证接收到的数据是在允许的时间范围内,即保证过期的请求不会被攻击者重复利用。增加时间验证的目的是进一步保障数据传输的安全性,因此,时间验证可以是作为可选的优化方案,而不是必要方案。
44.上述方法中,通过摘要算法进行数据签名,可以防止数据被篡改,进一步增强了数据传输的安全性。因此,数据签名的处理也可以作为是可选的优化方案。
45.如图2所示,对接收的加密数据进行解密的方法,包括以下步骤:
46.s100,获取请求(把一次数据传输的发送方向接收方发送数据的过程叫做“请求”)中的所述加密数据、所述非对称加密秘钥、所述请求时间、所述加密信号。
47.获得数据后,根据数据中的分隔符将数据进行拆分,分别对应得到:第一份为s_data,第二份为s_key,第三份为s_time,第四份为s_sign。
48.需要说明的是,一般情况数据组成的排列顺序会指定一个规则,双方(发送方和接收方)都按照这个规则排序,而且传参数的时候是有参数名称和参数值的,因此将数据拆分后可以准确的知道每份数据分别代表什么内容。例如:
49.s200,使用非对称加密的私钥对所述非对称加密秘钥进行解密,得到对称加密秘钥。
50.在加密时是使用非对称加密的公钥进行加密,此处解密则需要对应的私钥进行解密。
51.仍以上述举例为例,使用rsa解密后得到:f_key=18dur9t0w58rue83i495ie8r4i38ww6a。
52.s300,使用对称加密秘钥对所述加密数据进行解密,得到真实的原始数据。
53.仍以上述举例为例,使用aes解密后data={'user_name':'王先生'}。
54.s400,判断所述请求时间与当前时间之间的时间差是否在设定的时间阈值范围内,如果不是则判定为无效请求。
55.假设当前时间time=1638330275000,与s_time=1638330271283进行比较,差值在1分钟之内(1秒=1000毫秒),符合要求,判定为有效请求。
56.如果是有效请求,则根据请求参数执行一些操作后返回数据,如果是无效请求,则返回一个错误信息。
57.针对有效请求的返回数据示例:
[0058][0059]
针对无效请求的返回数据示例:
[0060][0061]
s500,使用摘要算法对所述加密数据、所述非对称加密秘钥、所述请求时间进行计算,生成加密验证信号,比较所述加密验证信号和接收到的所述加密信号是否一致,如果不一致则判定为无效请求。判断为无效请求后返回一个错误信息。
[0062]
仍以上述举例为例,使用sha256算法对s_key、s_time、s_data进行计算,得到:
[0063]
sign_compare=6f84dc56b2486c9cb709882996ad55b7810635847baa5697dd93d3084d83eed7。
[0064]
比较sign_compare与s_sign的值相等,因此说明数据未被篡改。如果这两个值不相等,则说明数据被篡改过。
[0065]
容易理解的是,图1和图2所示的方法步骤中,除非有必然的逻辑关联性,否则步骤之间没有执行先后之分,例如步骤s400和s500之前没有执行先后之分。
[0066]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1