数据请求方法、请求应答方法、数据通信系统及存储介质与流程

文档序号:26590378发布日期:2021-09-10 20:43阅读:74来源:国知局
数据请求方法、请求应答方法、数据通信系统及存储介质与流程

1.本发明涉及通信技术领域,特别是涉及一种数据请求方法、请求应答方法、数据通信系统及计算机可读存储介质。


背景技术:

2.随着通信技术的发展,用户可利用通信终端进行高效数据通信,但是大都采用明文的形式进行传输数据,网络通信的过程中存在着各种各样的安全问题。
3.现有的解决通信网络安全问题的手段主要分为两种,一种是类似ssl/https的通信方法;另一种是客户端与服务端通过公私钥对的方式进行通信。但是以上两种方法均存在各自的缺点,首先,ssl/https证书体系中需要第三方机构提供证书验证支撑,通信过程复杂。其次,目标采用的公私钥对否方式,各客户端均保存有公私钥对,公私钥对中的私钥可以用来解密其他客户端的加密信息,即第三方可以修改通信内容,存在冒充风险,即第三方可以冒充他人身份参与通信,无法避免篡改风险。
4.综上所述,如何有效地解决现有的通信方式通信过程复杂,存在篡改风险等问题,是目前本领域技术人员急需解决的问题。


技术实现要素:

5.本发明的目的是提供一种数据请求方法,该方法较大地简化了通信过程,实现了双方通信内容的加密、签名,避免了信息被篡改的风险;本发明的另一目的是提供一种请求应答方法、数据通信系统及计算机可读存储介质。
6.为解决上述技术问题,本发明提供如下技术方案:
7.一种数据请求方法,应用于客户端,包括:
8.当对目标数据进行请求时,生成所述目标数据对应的请求消息;
9.对所述请求消息进行哈希计算,得到消息摘要;
10.利用sm9用户签名私钥对所述消息摘要进行加密,得到请求消息签名;其中,所述sm9用户签名私钥为利用sm9签名主私钥与所述客户端对应的用户唯一标识计算生成的私钥;
11.利用sm9加密主公钥和所述用户唯一标识对所述请求消息、所述消息摘要以及所述请求消息签名进行加密,得到请求消息密文;
12.将所述用户唯一标识和所述请求消息密文发送至所述目标数据所在的服务端。
13.在本发明的一种具体实施方式中,对所述请求消息进行哈希计算,包括:
14.利用sm3杂凑算法对所述请求消息进行哈希计算。
15.在本发明的一种具体实施方式中,在将所述用户唯一标识和所述请求消息密文发送至所述目标数据所在的服务端之后,还包括:
16.接收所述服务端返回的应答数据密文;
17.利用sm9用户加密私钥与所述用户唯一标识对所述应答数据密文进行解密,得到
应答数据、应答数据摘要以及应答数据签名;其中,所述sm9用户加密私钥为利用sm9加密主私钥与所述用户唯一标识计算生成的私钥;
18.利用所述应答数据摘要对所述应答数据签名进行验签,得到应答验签结果;
19.当所述应答验签结果为通过时,确定所述应答数据为所述目标数据。
20.一种请求应答方法,应用于服务端,包括:
21.接收客户端发送的请求消息密文和用户唯一标识;
22.调取所述用户唯一标识对应的sm9用户加密私钥;
23.利用所述sm9用户加密私钥和所述用户唯一标识对所述请求消息密文进行解密,得到请求消息、消息摘要以及请求消息签名;
24.利用所述消息摘要对所述请求消息签名进行验签操作,得到请求验签结果;
25.当所述请求验签结果为通过时,对所述请求消息进行应答操作。
26.在本发明的一种具体实施方式中,对所述请求消息进行应答操作,包括:
27.查找所述请求消息对应的应答数据;
28.对所述应答数据做哈希计算,得到应答数据摘要;
29.利用sm9用户签名私钥与所述用户唯一标识对所述应答数据摘要进行加密,得到应答数据签名;
30.利用sm9加密主公钥和所述用户唯一标识对所述应答数据、所述应答数据摘要以及所述应答数据签名进行加密,得到应答数据密文;
31.将所述应答数据密文返回给所述客户端。
32.在本发明的一种具体实施方式中,对所述应答数据做哈希计算,包括:
33.利用sm3杂凑算法对所述应答数据做哈希计算。
34.一种数据通信系统,包括:
35.客户端,用于当对目标数据进行请求时,生成所述目标数据对应的请求消息;对所述请求消息进行哈希计算,得到消息摘要;利用sm9用户签名私钥对所述消息摘要进行加密,得到请求消息签名;其中,所述sm9用户签名私钥为利用sm9签名主私钥与所述客户端对应的用户唯一标识计算生成的私钥;利用sm9加密主公钥和所述用户唯一标识对所述请求消息、所述消息摘要以及所述请求消息签名进行加密,得到请求消息密文;将所述用户唯一标识和所述请求消息密文发送至所述目标数据所在的服务端;
36.所述服务端,用于接收所述请求消息密文和所述用户唯一标识;调取所述用户唯一标识对应的sm9用户加密私钥;利用所述sm9用户加密私钥和所述用户唯一标识对所述请求消息密文进行解密,得到所述请求消息、所述消息摘要以及所述请求消息签名;其中,所述sm9用户加密私钥为利用sm9加密主私钥与所述用户唯一标识计算生成的私钥;利用所述消息摘要对所述请求消息签名进行验签操作,得到请求验签结果;当所述请求验签结果为通过时,对所述请求消息进行应答操作。
37.在本发明的一种具体实施方式中,所述客户端,具体用于利用sm3杂凑算法对所述请求消息进行哈希计算。
38.在本发明的一种具体实施方式中,所述服务端,具体用于查找所述请求消息对应的应答数据;对所述应答数据做哈希计算,得到应答数据摘要;利用sm9用户签名私钥与所述用户唯一标识对所述应答数据摘要进行加密,得到应答数据签名;利用sm9加密主公钥和
所述用户唯一标识对所述应答数据、所述应答数据摘要以及所述应答数据签名进行加密,得到应答数据密文;将所述应答数据密文返回给所述客户端。
39.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述数据请求方法或请求应答方法的步骤。
40.本发明所提供的数据请求方法,应用于客户端,当对目标数据进行请求时,生成目标数据对应的请求消息;对请求消息进行哈希计算,得到消息摘要;利用sm9用户签名私钥对消息摘要进行加密,得到请求消息签名;其中,sm9用户签名私钥为利用sm9签名主私钥与客户端对应的用户唯一标识计算生成的私钥;利用sm9加密主公钥和用户唯一标识对请求消息、消息摘要以及请求消息签名进行加密,得到请求消息密文;将用户唯一标识和请求消息密文发送至目标数据所在的服务端。
41.由上述技术方案可知,通过采用国密算法sm9对双方通信内容进行加密,不需要第三方机构提供证书验证支撑,较大地简化了通信过程。并且利用sm9签名主私钥结合客户端的用户唯一标识计算该客户端独有的sm9用户签名私钥,且利用sm9加密主私钥结合客户端的用户唯一标识计算该客户端独有的sm9用户加密私钥,从而实现了双方通信内容的加密、签名,避免了信息被篡改的风险。
42.相应的,本发明还提供了与上述数据请求方法相对应的请求应答方法、数据通信系统和计算机可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
43.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1为本发明实施例中数据请求方法的一种实施流程图;
45.图2为本发明实施例中数据请求方法的另一种实施流程图;
46.图3为本发明实施例中请求应答方法的一种实施流程图;
47.图4为本发明实施例中请求应答方法的另一种实施流程图;
48.图5为本发明实施例中一种数据通信系统的结构框图。
具体实施方式
49.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
50.参见图1,图1为本发明实施例中数据请求方法的一种实施流程图,应用于客户端,该方法可以包括以下步骤:
51.s101:当对目标数据进行请求时,生成目标数据对应的请求消息。
52.当客户端需要向服务端请求目标数据时,生成目标数据对应的请求消息。如当需要请求某业务数据时,生成该业务数据对应的请求消息,以利用该请求消息进行业务数据
请求。
53.目标数据为服务端预先存储的数据。
54.s102:对请求消息进行哈希计算,得到消息摘要。
55.在生成目标数据对应的请求消息之后,对请求消息进行哈希(hash)计算,得到消息摘要。
56.消息摘要是一个唯一对应请求消息的固定长度的值,其由一个单向哈希加密函数对请求消息进行作用而产生。如果请求消息在传输途中改变了,则接收者通过对收到请求消息的新产生的摘要与原摘要比较,就可确定请求消息是否被篡改,因此消息摘要保证了请求消息的完整性。
57.s103:利用sm9用户签名私钥对消息摘要进行加密,得到请求消息签名。
58.其中,sm9用户签名私钥为利用sm9签名主私钥与客户端对应的用户唯一标识计算生成的私钥。
59.客户端与服务端在进行数据传输之前,预先建立加密通信机制。加密通信机制建立过程可以包括:客户端生成随机sm2密钥对,向服务端发送生成的sm2公钥和客户端自身的用户唯一标识。服务端接收sm2公钥和用户唯一标识,生成sm9加密主密钥对和sm9签名主密钥对。服务端采用sm9加密主密钥对中的sm9加密主私钥与用户唯一标识计算生成sm9用户加密私钥,采用sm9签名主密钥对中的sm9签名主私钥与用户唯一标识计算生成sm9用户签名私钥。服务端利用接收到的sm2公钥将生成的sm9用户加密私钥和sm9用户签名私钥进行加密生成sm9用户私钥密文,并将sm9用户私钥密文生成的sm9加密主公钥和sm9签名主公钥一起发送给客户端。客户端接收服务端的sm9用户私钥密文、sm9加密主公钥和sm9签名主公钥,利用sm2私钥对sm9用户私钥密文解密,得到sm9用户加密私钥和sm9用户签名私钥,从而建立完成客户端与服务端之间的加密通信机制。通过sm2非对称算法的加解密保证了sm9用户加密私钥和sm9用户签名私钥的安全传输。
60.在计算得到消息摘要之后,可以利用sm9用户签名私钥对消息摘要进行加密,得到请求消息签名。
61.s104:利用sm9加密主公钥和用户唯一标识对请求消息、消息摘要以及请求消息签名进行加密,得到请求消息密文。
62.在得到请求消息签名之后,利用sm9加密主公钥和用户唯一标识对请求消息、消息摘要以及请求消息签名一起加密,得到请求消息密文。
63.s105:将用户唯一标识和请求消息密文发送至目标数据所在的服务端。
64.得到请求消息密文之后,将用户唯一标识和请求消息密文发送至目标数据所在的服务端。通过为客户端生成唯一对应的sm9用户加密私钥和sm9用户签名私钥,避免了不同客户端之间共享同一个sm9主私钥。通过sm9标识密码算法的加解密来进行身份验证,保证数据的安全传输,同时通过sm9标识密码算法的签名验签来保证数据的完整性。且采用国密算法sm9对双方通信内容进行加密,不需要第三方机构提供证书验证支撑,较大地简化了通信过程。
65.由上述技术方案可知,通过采用国密算法sm9对双方通信内容进行加密,不需要第三方机构提供证书验证支撑,较大地简化了通信过程。并且利用sm9签名主私钥结合客户端的用户唯一标识计算该客户端独有的sm9用户签名私钥,且利用sm9加密主私钥结合客户端
的用户唯一标识计算该客户端独有的sm9用户加密私钥,从而实现了双方通信内容的加密、签名,避免了信息被篡改的风险。
66.需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在后续实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在下文的改进实施例中不再一一赘述。
67.参见图2,图2为本发明实施例中数据请求方法的另一种实施流程图,应用于服务端,该方法可以包括以下步骤:
68.s201:当对目标数据进行请求时,生成目标数据对应的请求消息。
69.s202:利用sm3杂凑算法对请求消息进行哈希计算,得到消息摘要。
70.可以采用sm3杂凑算法对请求消息进行哈希计算,通过国密sm3杂凑算法对请求消息进行哈希计算,对请求消息有效加密的同时,不需要第三方机构提供证书验证支撑,较大地简化了通信过程。
71.s203:利用sm9用户签名私钥对消息摘要进行加密,得到请求消息签名。
72.其中,sm9用户签名私钥为利用sm9签名主私钥与客户端对应的用户唯一标识计算生成的私钥。
73.s204:利用sm9加密主公钥和用户唯一标识对请求消息、消息摘要以及请求消息签名进行加密,得到请求消息密文。
74.s205:将用户唯一标识和请求消息密文发送至目标数据所在的服务端。
75.s206:接收服务端返回的应答数据密文。
76.服务端在接收到用户唯一标识和请求消息密文之后,会对请求消息密文进行验签,若验签通过,确定解密得到的请求消息为用户唯一标识对应的客户端发送的请求,传输过程中未被篡改。服务端会查找请求消息对应的应答数据,并对应答数据进行加密并签名,得到应答数据密文,将应答数据密文返回给用户唯一标识对应的客户端,客户端接收服务端返回的应答数据密文。
77.s207:利用sm9用户加密私钥与用户唯一标识对应答数据密文进行解密,得到应答数据、应答数据摘要以及应答数据签名。
78.其中,sm9用户加密私钥为利用sm9加密主私钥与用户唯一标识计算生成的私钥。
79.应答数据密文为服务端利用sm9签名主公钥和用户唯一标识对应答数据、应答数据摘要以及应答数据签名一起加密之后发给客户端的数据密文。客户端在接收到应答数据密文之后,利用sm9用户加密私钥与用户唯一标识对应答数据密文进行解密,得到应答数据、应答数据摘要以及应答数据签名。
80.s208:利用应答数据摘要对应答数据签名进行验签,得到应答验签结果。
81.在解密得到应答数据、应答数据摘要以及应答数据签名之后,利用应答数据摘要对应答数据签名进行验签,得到应答验签结果。即通过sm9用户签名私钥对应答数据签名进行解密,得到解密后应答数据摘要,通过对应答数据进行哈希计算,得到新生成的应答数据摘要,将解密后应答数据摘要、新生成的应答数据摘要、以及对应答密文解密得到的应答数据摘要进行对比,若均一致,则确认验签通过,若否,说明验签失败。
82.s209:当应答验签结果为通过时,确定应答数据为目标数据。
83.当确认应答验签结果为通过时,说明当前接收到的应答数据在传输过程为未发生
篡改,确定应答数据为目标数据。
84.参见图3,图3为本发明实施例中请求应答方法的一种实施流程图,应用于服务端,该方法可以包括以下步骤:
85.s301:接收客户端发送的请求消息密文和用户唯一标识。
86.当客户端需要向服务端请求数据时,客户端生成请求消息密文,将请求消息密文和客户端自身的用户唯一标识一起发送给服务端。服务端接收客户端发送的请求消息密文和用户唯一标识。
87.s302:调取用户唯一标识对应的sm9用户加密私钥。
88.服务端在接收到客户端发送的请求消息密文和用户唯一标识之后,调取用户唯一标识对应的sm9用户加密私钥。
89.s303:利用sm9用户加密私钥和用户唯一标识对请求消息密文进行解密,得到请求消息、消息摘要以及请求消息签名。
90.请求消息密文为客户端利用sm9加密主公钥和用户唯一标识对请求消息、消息摘要以及请求消息签名进行加密得到的密文。服务端在调取到sm9用户加密私钥之后,利用sm9用户加密私钥和用户唯一标识对请求消息密文进行解密,得到请求消息、消息摘要以及请求消息签名。
91.s304:利用消息摘要对请求消息签名进行验签操作,得到请求验签结果。
92.服务端在解密得到请求消息、消息摘要以及请求消息签名之后,利用消息摘要对请求消息签名进行验签操作,得到请求验签结果。即通过sm9用户签名私钥对请求消息签名进行解密,得到解密后消息摘要,通过请求消息进行哈希计算,得到新生成的消息摘要,将解密后消息摘要、新生成的消息摘要、以及对请求消息密文解密得到的消息摘要进行对比,若均一致,则确认验签通过,若否,说明验签失败。
93.s305:当请求验签结果为通过时,对请求消息进行应答操作。
94.当确认请求验签结果为通过时,说明当前接收到的请求消息在传输过程为未发生篡改,对请求消息进行应答操作。
95.参见图4,图4为本发明实施例中请求应答方法的另一种实施流程图,该方法可以包括以下步骤:
96.s401:接收客户端发送的请求消息密文和用户唯一标识。
97.s402:调取用户唯一标识对应的sm9用户加密私钥。
98.s403:利用sm9用户加密私钥和用户唯一标识对请求消息密文进行解密,得到请求消息、消息摘要以及请求消息签名。
99.s404:利用消息摘要对请求消息签名进行验签操作,得到请求验签结果。
100.s405:当请求验签结果为通过时,查找请求消息对应的应答数据。
101.当请求验签结果为通过时,服务端查找请求消息对应的应答数据。
102.s406:利用sm3杂凑算法对应答数据做哈希计算,得到应答数据摘要。
103.服务端利用sm3杂凑算法对应答数据做哈希计算,得到应答数据摘要。通过国密sm3杂凑算法对应答数据进行哈希计算,对应答数据有效加密的同时,不需要第三方机构提供证书验证支撑,较大地简化了通信过程。
104.s407:利用sm9用户签名私钥与用户唯一标识对应答数据摘要进行加密,得到应答
数据签名。
105.在查找到应答数据之后,利用sm9用户签名私钥与用户唯一标识对应答数据摘要进行加密,得到应答数据签名。
106.s408:利用sm9加密主公钥和用户唯一标识对应答数据、应答数据摘要以及应答数据签名进行加密,得到应答数据密文。
107.在加密得到应答数据签名之后,利用sm9加密主公钥和用户唯一标识对应答数据、应答数据摘要以及应答数据签名进行加密,得到应答数据密文。
108.s409:将应答数据密文返回给客户端。
109.在得到应答数据密文之后,将应答数据密文返回给客户端。
110.相应于上面的方法实施例,本发明还提供了一种数据通信系统,下文描述的数据通信系统与上文描述的数据请求方法及请求应答方法可相互对应参照。
111.参见图5,图5为本发明实施例中一种数据通信系统的结构框图,该系统可以包括:
112.客户端51,用于当对目标数据进行请求时,生成目标数据对应的请求消息;对请求消息进行哈希计算,得到消息摘要;利用sm9用户签名私钥对消息摘要进行加密,得到请求消息签名;其中,sm9用户签名私钥为利用sm9签名主私钥与客户端51对应的用户唯一标识计算生成的私钥;利用sm9加密主公钥和用户唯一标识对请求消息、消息摘要以及请求消息签名进行加密,得到请求消息密文;将用户唯一标识和请求消息密文发送至目标数据所在的服务端52;
113.服务端52,用于接收请求消息密文和用户唯一标识;调取用户唯一标识对应的sm9用户加密私钥;利用sm9用户加密私钥和用户唯一标识对请求消息密文进行解密,得到请求消息、消息摘要以及请求消息签名;其中,sm9用户加密私钥为利用sm9加密主私钥与用户唯一标识计算生成的私钥;利用消息摘要对请求消息签名进行验签操作,得到请求验签结果;当请求验签结果为通过时,对请求消息进行应答操作。
114.在本发明的一种具体实施方式中,客户端51,具体用于利用sm3杂凑算法对请求消息进行哈希计算。
115.在本发明的一种具体实施方式中,客户端51,还用于在将用户唯一标识和请求消息密文发送至目标数据所在的服务端52之后,接收服务端52返回的应答数据密文;利用sm9用户加密私钥与用户唯一标识对应答数据密文进行解密,得到应答数据、应答数据摘要以及应答数据签名;其中,sm9用户加密私钥为利用sm9加密主私钥与用户唯一标识计算生成的私钥;利用应答数据摘要对应答数据签名进行验签,得到应答验签结果;当应答验签结果为通过时,确定应答数据为目标数据。
116.在本发明的一种具体实施方式中,服务端52,具体用于查找请求消息对应的应答数据;对应答数据做哈希计算,得到应答数据摘要;利用sm9用户签名私钥与用户唯一标识对应答数据摘要进行加密,得到应答数据签名;利用sm9加密主公钥和用户唯一标识对应答数据、应答数据摘要以及应答数据签名进行加密,得到应答数据密文;将应答数据密文返回给客户端51。
117.在本发明的一种具体实施方式中,服务端52,具体用于利用sm3杂凑算法对应答数据做哈希计算。
118.相应于上面的方法实施例,本发明还提供一种计算机可读存储介质,计算机可读
存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:
119.当对目标数据进行请求时,生成目标数据对应的请求消息;对请求消息进行哈希计算,得到消息摘要;利用sm9用户签名私钥对消息摘要进行加密,得到请求消息签名;其中,sm9用户签名私钥为利用sm9签名主私钥与客户端对应的用户唯一标识计算生成的私钥;利用sm9加密主公钥和用户唯一标识对请求消息、消息摘要以及请求消息签名进行加密,得到请求消息密文;将用户唯一标识和请求消息密文发送至目标数据所在的服务端。
120.或:
121.接收客户端发送的请求消息密文和用户唯一标识;调取用户唯一标识对应的sm9用户加密私钥;利用sm9用户加密私钥和用户唯一标识对请求消息密文进行解密,得到请求消息、消息摘要以及请求消息签名;利用消息摘要对请求消息签名进行验签操作,得到请求验签结果;当请求验签结果为通过时,对请求消息进行应答操作。
122.该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
123.对于本发明提供的计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不做赘述。
124.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
125.本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1