一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于GPU加解密的请求处理方法及服务器与流程

2022-02-20 21:46:18 来源:中国专利 TAG:

基于gpu加解密的请求处理方法及服务器
技术领域
1.本发明涉及计算机技术领域,尤其涉及一种基于gpu加解密的请求处理方法及服务器。


背景技术:

2.基于gpu(graphics processing unit,图形处理器)强大的算力,服务器通常利用gpu对客户端发送的数据进行处理,以提供相应的服务,比如推理服务、训练服务等。训练服务是服务器向客户端提供的模型训练服务。推理服务是服务器向客户端提供的基于已训练好的模型的推理服务。
3.服务器提供服务的过程是:客户端发送数据处理请求给服务器,数据处理请求通常携带源数据;服务器根据数据处理请求进行相应的处理后,将处理结果返回给客户端。服务器提供服务的过程需要对数据进行严格保护,对数据的保护通常采用加解密实现。
4.现有服务器提供服务的过程对数据进行保护的方法是:客户端通过安全通道建立和服务器的连接,从本地或远程获取待处理数据;客户端通过安全通道将加密后的待处理数据发送给服务器;服务器使用cpu(central processing unit,中央处理器)在主机内存中解密数据,然后将解密后的数据拷贝到gpu中进行处理,gpu处理完成后,将处理结果明文拷贝到主机内存;cpu在主机内存中对处理结果加密后,通过建立的安全通道将处理结果返回给客户端。数据的加解密均在主机cpu和内存空间完成。
5.gpu具有超大算力和超高数据吞吐量,而cpu的处理能力有限,现有技术由cpu加解密难以应对超大数据流量,成为服务器数据处理瓶颈。并且,任务调度执行过程中被cpu解密后的明文数据暴露在主机内存中一段时间,而处于内存中的数据易被恶意程序窃取,造成极大安全隐患。


技术实现要素:

6.为解决现有技术中的问题,本发明提供一种基于gpu加解密的请求处理方法及服务器。
7.本发明提供一种基于gpu加解密的请求处理方法,包括:接收客户端发送的数据处理请求;其中,所述数据处理请求包括用户标识,还包括待处理数据或所述待处理数据的数据存储信息;获取所述数据处理请求对应的数据处理核函数,并根据所述用户标识获取对应的加密核函数和解密核函数;其中,所述数据处理核函数用于利用gpu执行所述数据处理请求对应的数据处理逻辑,所述加密核函数用于利用gpu加密数据,所述解密核函数用于利用gpu解密数据;根据所述数据处理核函数、所述加密核函数及所述解密核函数构建数据处理任务,并通过gpu对所述待处理数据执行所述数据处理任务。
8.根据本发明提供的一种基于gpu加解密的请求处理方法,所述根据所述数据处理核函数、所述加密核函数及所述解密核函数构建数据处理任务,包括:将所述解密核函数、所述数据处理核函数及所述加密核函数按序拼接,得到所述数据处理任务。
9.根据本发明提供的一种基于gpu加解密的请求处理方法,所述根据所述数据处理核函数、所述加密核函数及所述解密核函数构建数据处理任务,包括:确定所述数据处理核函数的第一执行结果存储地址,确定所述解密核函数的第二执行结果存储地址,以及确定所述加密核函数的第三执行结果存储地址;确定所述数据处理核函数、所述解密核函数及所述加密核函数的任务执行次序;根据所述第一执行结果存储地址、所述第二执行结果存储地址、所述第三执行结果存储地址及所述任务执行次序构建所述数据处理任务。
10.根据本发明提供的一种基于gpu加解密的请求处理方法,所述任务执行顺序是先执行所述解密核函数、再执行所述数据处理核函数,最后执行所述加密核函数;所述通过gpu对所述待处理数据执行所述数据处理任务,包括:通过gpu利用所述解密核函数对所述待处理数据进行解密处理,获取明文数据,并将所述明文数据存储到所述第一执行结果存储地址;从所述第一执行结果存储地址获取所述明文数据,并利用所述数据处理核函数对所述明文数据进行处理,将数据处理结果存储到所述第二执行结果存储地址;从所述第二执行结果存储地址获取所述数据处理结果,并利用所述加密核函数对所述数据处理结果进行加密,得到加密结果数据,将所述加密结果数据存储到所述第三执行结果存储地址。
11.根据本发明提供的一种基于gpu加解密的请求处理方法,在所述接收客户端发送的数据处理请求之前,所述方法还包括:接收所述客户端通过加密通道发送的加解密算法及密钥,并根据所述加解密算法及密钥构建所述加密核函数及所述解密核函数,以及建立所述加密核函数及所述解密核函数与所述用户标识的映射关系。
12.根据本发明提供的一种基于gpu加解密的请求处理方法,所述建立所述加密核函数及所述解密核函数与所述用户标识的映射关系,包括:生成所述客户端的所述用户标识,并建立所述用户标识和所述加密核函数及所述解密核函数之间的映射关系;所述方法还包括:将所述用户标识通过所述加密通道发送到所述客户端。
13.根据本发明提供的一种基于gpu加解密的请求处理方法,所述待处理数据为已加密数据;所述接收客户端发送的数据处理请求包括:接收所述客户端通过非加密通道发送的所述数据处理请求。
14.本发明还提供一种服务器,包括:请求接收模块,用于:接收客户端发送的数据处理请求;其中,所述数据处理请求包括用户标识,还包括待处理数据或所述待处理数据的数据存储信息;核函数获取模块,用于:获取所述数据处理请求对应的数据处理核函数,并根据所述用户标识获取对应的加密核函数和解密核函数;其中,所述数据处理核函数用于利用gpu执行所述数据处理请求对应的数据处理逻辑,所述加密核函数用于利用gpu加密数据,所述解密核函数用于利用gpu解密数据;任务执行模块,用于:根据所述数据处理核函数、所述加密核函数及所述解密核函数构建数据处理任务,并通过gpu对所述待处理数据执行所述数据处理任务。
15.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于gpu加解密的请求处理方法的步骤。
16.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于gpu加解密的请求处理方法的步骤。
17.本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器
执行时实现如上述任一种所述基于gpu加解密的请求处理方法的步骤。
18.本发明提供的基于gpu加解密的请求处理方法及服务器,通过在接收到数据处理请求后,根据获取的数据处理核函数、加密核函数及解密核函数构建数据处理任务,并通过gpu执行数据处理任务,将数据的加解密在gpu中执行,充分利用了gpu的数据处理能力,避免了cpu加解密造成的服务瓶颈问题及在主机内存空间暴露明文数据安全风险,提升了数据处理速率及数据安全性。
附图说明
19.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1是本发明提供的基于gpu加解密的请求处理方法的流程示意图之一;
21.图2是本发明提供的基于gpu加解密的请求处理方法的架构图;
22.图3是本发明提供的基于gpu加解密的请求处理方法的流程示意图之二;
23.图4是本发明提供的基于gpu加解密的请求处理方法的流程示意图之三;
24.图5是本发明提供的一种服务器的结构示意图;
25.图6是本发明提供的电子设备的结构示意图。
具体实施方式
26.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
27.下面结合图1-图6描述本发明的基于gpu加解密的请求处理方法及服务器。
28.图1是本发明提供的基于gpu加解密的请求处理方法的流程示意图之一。如图1所示,所述方法包括:
29.步骤101、接收客户端发送的数据处理请求;其中,所述数据处理请求包括用户标识,还包括待处理数据或所述待处理数据的数据存储信息。
30.本发明提供的基于gpu加解密的请求处理方法可以应用于服务器,如云服务器。服务器包括cpu和主机内存空间及gpu设备空间。其中,数据处理请求的接收、任务的构建及调度等均在cpu和主机内存空间执行。数据的加解密及处理在gpu设备空间执行,通过gpu替代cpu进行数据的加解密,避免了cpu进行加解密造成的服务瓶颈;并且,明文数据不暴露在主机内存空间,提升安全性。其中,gpu可以是服务器本地的,也可以是远程的。
31.服务器接收客户端发送的数据处理请求,数据处理请求包括用户标识,数据处理请求还包括待处理数据或待处理数据的数据存储信息。待处理数据为对应数据处理请求的实际需要处理的数据,为提高安全性,待处理数据通常是加密后的数据。
32.客户端可以从本地或远程存储中获取待处理数据,并在数据处理请求中携带待处理数据。加密的待处理数据也可以存储在服务器中(加密的方法和密钥需要在客户端通过
安全通信模块预先提交给服务器),并在数据处理请求中携带待处理数据的数据存储信息,服务器根据待处理数据的数据存储信息获取待处理数据。
33.步骤102、获取所述数据处理请求对应的数据处理核函数,并根据所述用户标识获取对应的加密核函数和解密核函数;其中,所述数据处理核函数用于利用gpu执行所述数据处理请求对应的数据处理逻辑,所述加密核函数用于利用gpu加密数据,所述解密核函数用于利用gpu解密数据。
34.同一客户端可以请求服务器提供多种类型的服务,并且同一类型的服务也可以有多个。比如,同一客户端可以请求服务器提供训练服务和推理服务,其中,可以包括多个训练服务用于训练不同的模型,也可以包括多个推理服务用于根据多个不同的模型进行推理。
35.服务器接收到客户端发送的数据处理请求后,需要能够根据数据处理请求获知需要提供什么样的服务,数据处理核函数用于利用gpu执行数据处理请求对应的数据处理逻辑。因此,接收到数据处理请求需要能够获取对应的数据处理核函数。
36.如果客户端需要服务器提供多个服务,则可以在数据处理请求中携带服务标识,并将服务标识和数据处理核函数一一对应。如果客户端只需要服务器提供一个服务,则可以直接建立客户端标识与数据处理核函数的映射关系。其中,客户端标识是客户端的唯一标识。
37.加密核函数用于利用gpu加密数据,解密核函数用于利用gpu解密数据。对应同一客户端,对不同数据的加解密可以只用一个加解密算法 密钥的组合,因此,加密核函数和解密核函数可以直接与客户端对应,如建立客户端标识与加密核函数和解密核函数的映射关系,此时客户端标识可以作为用户标识。
38.对应同一客户端,对不同数据的加解密也可以用多种不同的加解密方法 密钥的组合。可以为每个(用户 加解密算法 密钥)的请求分配一个用户标识。同一个客户端到服务器可以同时用多个加密算法 密钥的组合请求服务,那么这个客户端会有多个用户标识。
39.无论客户端具有一个还是多个用户标识,用户标识都是和加密核函数和解密核函数一一对应的,根据用户标识可以获取对应的加密核函数和解密核函数。
40.服务器接收到数据处理请求后,获取数据处理请求对应的数据处理核函数,并根据用户标识获取对应的加密核函数和解密核函数。数据处理核函数、加密核函数和解密核函数在cpu及主机内存空间获取,在gpu设备空间执行。
41.步骤103、根据所述数据处理核函数、所述加密核函数及所述解密核函数构建数据处理任务,并通过gpu对所述待处理数据执行所述数据处理任务。
42.服务器根据数据处理核函数、加密核函数及解密核函数构建数据处理任务,并通过gpu对待处理数据执行数据处理任务。其中,在cpu及主机内存空间根据数据处理核函数、加密核函数及解密核函数构建数据处理任务,在gpu设备空间对待处理数据执行数据处理任务。
43.数据处理任务基于数据处理核函数、加密核函数及解密核函数所构建。gpu执行数据处理任务的过程包括对待处理数据利用解密核函数进行解密,利用数据处理核函数对解密后的数据进行处理,以及利用加密核函数对处理结果数据进行加密的过程。若数据处理请求携带的是待处理数据的数据存储信息,服务器在通过gpu对待处理数据执行数据处理
任务之前,需要先根据待处理数据的数据存储信息获取待处理数据。
44.本发明提供的基于gpu加解密的请求处理方法,通过在接收到数据处理请求后,根据获取的数据处理核函数、加密核函数及解密核函数构建数据处理任务,并通过gpu执行数据处理任务,将数据的加解密在gpu中执行,充分利用了gpu的数据处理能力,避免了cpu加解密造成的服务瓶颈问题及在主机内存空间暴露明文数据安全风险,提升了数据处理速率及数据安全性。
45.根据本发明提供的一种基于gpu加解密的请求处理方法,所述根据所述数据处理核函数、所述加密核函数及所述解密核函数构建数据处理任务,包括:将所述解密核函数、所述数据处理核函数及所述加密核函数按序拼接,得到所述数据处理任务。
46.在根据数据处理核函数、加密核函数及解密核函数构建数据处理任务时,可以将解密核函数、数据处理核函数及加密核函数按序拼接,得到数据处理任务,即将解密核函数、数据处理核函数及加密核函数统一成一个整体,在一个任务中执行。
47.解密核函数、数据处理核函数和加密核函数均是可以运行在gpu上的代码,在将解密核函数、数据处理核函数及加密核函数按序拼接时,根据代码的执行顺序,将解密核函数、数据处理核函数及加密核函数按序拼接。
48.本发明提供的基于gpu加解密的请求处理方法,通过将解密核函数、数据处理核函数及加密核函数按序拼接,得到数据处理任务,提升了数据处理任务执行的简便性。
49.根据本发明提供的一种基于gpu加解密的请求处理方法,所述根据所述数据处理核函数、所述加密核函数及所述解密核函数构建数据处理任务,包括:确定所述数据处理核函数的第一执行结果存储地址,确定所述解密核函数的第二执行结果存储地址,以及确定所述加密核函数的第三执行结果存储地址;确定所述数据处理核函数、所述解密核函数及所述加密核函数的任务执行次序;根据所述第一执行结果存储地址、所述第二执行结果存储地址、所述第三执行结果存储地址及所述任务执行次序构建所述数据处理任务。
50.可以将数据处理核函数、解密核函数及加密核函数分别对应不同的子任务,各个子任务协调执行实现数据处理任务的执行。子任务的执行结果需要存储到设定的位置,后一子任务执行时需要到前一子任务的执行结果存储地址中获取数据。
51.因此,在根据数据处理核函数、加密核函数及解密核函数构建数据处理任务时,需要确定数据处理核函数的第一执行结果存储地址,确定解密核函数的第二执行结果存储地址,以及确定加密核函数的第三执行结果存储地址。其中,数据处理核函数的第一执行结果存储地址、解密核函数的第二执行结果存储地址及加密核函数的第三执行结果存储地址可以是预先设置好的,也可以是在接收到数据处理请求后临时分配的。
52.另外,需要确定数据处理核函数、解密核函数及加密核函数的任务执行次序。根据数据处理核函数、解密核函数及加密核函数的功能及实际需求,通常先解密数据,再进行数据处理,然后加密数据。因此,可以设置任务执行次序为依次执行数据处理核函数、解密核函数及加密核函数。当然,若有其他需求,比如数据处理函数执行多次,也可以设置先执行解密核函数,执行预设次数的数据处理核函数,最后执行加密核函数等。
53.根据第一执行结果存储地址、第二执行结果存储地址、第三执行结果存储地址及任务执行次序构建数据处理任务。由于数据处理任务是基于第一执行结果存储地址、第二执行结果存储地址、第三执行结果存储地址及任务执行次序所构建的,因此数据处理任务
包括第一执行结果存储地址、第二执行结果存储地址、第三执行结果存储地址及任务执行次序的信息。
54.本发明提供的基于gpu加解密的请求处理方法,通过确定数据处理核函数、解密核函数及加密核函数的执行结果存储地址及执行次序,进而构建数据处理函数,提高了数据处理的灵活性,可以满足不同的数据处理需求。
55.根据本发明提供的一种基于gpu加解密的请求处理方法,所述任务执行顺序是先执行所述解密核函数、再执行所述数据处理核函数,最后执行所述加密核函数;所述通过gpu对所述待处理数据执行所述数据处理任务,包括:通过gpu利用所述解密核函数对所述待处理数据进行解密处理,获取明文数据,并将所述明文数据存储到所述第一执行结果存储地址;从所述第一执行结果存储地址获取所述明文数据,并利用所述数据处理核函数对所述明文数据进行处理,将数据处理结果存储到所述第二执行结果存储地址;从所述第二执行结果存储地址获取所述数据处理结果,并利用所述加密核函数对所述数据处理结果进行加密,得到加密结果数据,将所述加密结果数据存储到所述第三执行结果存储地址。
56.若任务执行顺序设置为先执行解密核函数、再执行数据处理核函数,最后执行加密核函数,则在通过gpu执行数据处理任务时,首先利用解密核函数对待处理数据进行解密处理,获取明文数据,并将明文数据存储到第一执行结果存储地址;然后,从第一执行结果存储地址获取明文数据,并利用数据处理核函数对明文数据进行处理,将数据处理结果存储到第二执行结果存储地址;最后,从第二执行结果存储地址获取数据处理结果,并利用加密核函数对数据处理结果进行加密,得到加密结果数据,将加密结果数据存储到第三执行结果存储地址。
57.gpu可以将第三执行结果存储地址存储的加密结果数据提交到cpu和主机内存空间,然后通过cpu和主机内存空间返回给客户端。
58.本发明提供的基于gpu加解密的请求处理方法,通过gpu对待处理数据依次执行解密核函数、数据处理核函数及加密核函数,后一任务从前一任务的执行结果存储地址获取数据后再执行,将最终的执行结果进行存储,实现了任务执行及结果处理的有序化。
59.根据本发明提供的基于gpu加解密的请求处理方法,在所述接收客户端发送的数据处理请求之前,所述方法还包括:接收所述客户端通过加密通道发送的加解密算法及密钥,并根据所述加解密算法及密钥构建所述加密核函数及所述解密核函数,以及建立所述加密核函数及所述解密核函数与所述用户标识的映射关系。
60.在接收客户端发送的数据处理请求之前,服务器首先接收客户端通过加密通道发送的加解密算法及密钥,并根据加解密算法及密钥构建加密核函数及解密核函数。为保证安全性,加解密算法及密钥需要通过加密通道进行发送。
61.客户端提供的加解密算法可以是具体的代码,也可以是通用的加解密算法的名称。若为具体的代码,服务器将接收的加解密算法的代码编译成gpu可以执行的代码。若为通用的加解密算法的名称,服务器获取相应加解密算法的代码,若相应的代码不能够在gpu执行,则将加解密算法的代码编译成gpu可以执行的代码。
62.服务器根据加解密算法及密钥构建加密核函数及解密核函数,得到的加密核函数和解密核函数可以运行于gpu,并且可以利用密钥进行加解密。
63.服务器构建加密核函数及解密核函数后,建立加密核函数及解密核函数与用户标
识的映射关系,以便在接收到客户端的携带用户标识的数据处理请求时,根据建立的映射关系获取对应的加密核函数及解密核函数。其中,用户标识可以是客户端发送给服务器的。
64.可以理解的,待处理数据若预先存储于服务器,对待处理数据进行加解密的加解密算法和密钥与构建加解密核函数的加解密算法和密钥是相同的。
65.本发明提供的基于gpu加解密的请求处理方法,通过接收客户端通过加密通道发送的加解密算法及密钥,并根据加解密算法及密钥构建加密核函数及解密核函数,以及建立加密核函数及解密核函数与用户标识的映射关系,为利用gpu对数据进行加解密提供了基础。
66.根据本发明提供的一种基于gpu加解密的请求处理方法,所述建立所述加密核函数及所述解密核函数与所述用户标识的映射关系,包括:生成所述客户端的所述用户标识,并建立所述加密核函数及所述解密核函数和所述用户标识之间的映射关系;所述方法还包括:将所述用户标识通过所述加密通道发送到所述客户端。
67.可以在构建加密核函数及解密核函数之后,生成客户端的用户标识,并建立用户标识和加密核函数及解密核函数之间的映射关系。用户标识可以为uuid码(universally unique identifier,通用唯一识别码)。客户端向服务器发送消息时,通常携带用户标识,以获取对应的加解密核函数。利用服务器自动生成与加密核函数和解密核函数对应的用户标识,其中的用户标识的规则可以按照服务端的规则设置,便于服务器利用统一的方法根据用户标识进行查找,获取对应的加密核函数及解密核函数,以节省计算时间和资源。
68.服务器建立用户标识和加密核函数及解密核函数之间的映射关系之后,将用户标识通过加密通道发送到客户端。客户端向服务器发送数据处理请求时将携带服务器发送的用户标识。
69.本发明提供的基于gpu加解密的请求处理方法,通过生成客户端的用户标识发送到客户端,有利于节省服务器的查询处理时间及节省计算资源。
70.根据本发明提供的一种基于gpu加解密的请求处理方法,所述待处理数据为已加密数据;所述接收客户端发送的数据处理请求包括:接收所述客户端通过非加密通道发送的所述数据处理请求。
71.现有技术中客户端通过加密通道向服务器发送数据处理请求,如客户端通过与服务器建立ssl连接,并通过ssl连接传输加密数据。通过加密通道保证数据安全传输,并便于服务器根据加密通道的加解密算法进行数据加解密。但是客户端已加密数据需要先解密并在使用加密通道如ssl发送时重新加密,增加客户端负担。
72.本发明提供的基于gpu加解密的请求处理方法,由于服务器已经构建了用于对客户端数据加解密的加密核函数和解密核函数,因此客户端发送的已加密的数据处理请求无需再通过加密通道进行传输,而是可以直接通过非加密通道将已加密的数据处理请求传输到服务器进行处理。
73.因此,客户端可以从本地或远程获取待处理数据,若待处理数据已经进行了加密,且加密算法和密钥与客户端提供给服务器的相同,则客户端无需进行解密及再加密,避免了冗余处理,减轻了客户端负担。
74.本发明提供的基于gpu加解密的请求处理方法,通过将已加密的待处理数据经非加密通道传输到服务器,节省了加密通道资源,并且避免了冗余的加解密处理,减轻了客户
端负担。
75.图2是本发明提供的基于gpu加解密的请求处理方法的架构图。如图2所示,服务器分为cpu和主机内存空间与gpu设备空间。
76.cpu和主机内存空间:
77.安全通信模块:与客户端安全通信交换数据加解密算法、密钥,并将与加解密核函数对应的通用唯一识别码(uuid码)发送给客户端。
78.核构建模块:利用加解密核编译器根据数据加解密算法和密钥生成加密核函数与解密核函数,并管理与用户之间的关联。加密核函数与解密核函数可以是运行于gpu的二进制代码的形式。
79.任务构建:根据用户请求构建数据处理任务,如构建推理任务,并根据需求将加密核函数与解密核函数与数据处理任务拼接。
80.任务调度:调度执行数据处理任务并提交到gpu设备空间。
81.gpu设备空间:
82.接收并执行核函数,其中,核函数包括数据处理核函数、加密核函数及解密函数。
83.图3是本发明提供的基于gpu加解密的请求处理方法的流程示意图之二。如图3所示,该方法包括:
84.在步骤1,2:客户端通过安全通信模块提交加解密算法与密钥;
85.在步骤3,4:核构建模块依据加解密算法和密钥生成加密核函数和解密核函数;
86.在步骤5,6:服务器将用户uuid(universally unique identifier,通用唯一识别码)返回客户端;
87.在步骤7,8:客户端从本地或远程获取数据,对明文数据进行加密,对加密算法和密钥和客户端提供给服务器相同的已加密数据不操作;
88.在步骤9:提交请求到服务器;
89.在步骤10,11:获取客户端对应的加密核函数和解密核函数并与数据处理核函数拼接;
90.在步骤12,13:gpu中解密数据,执行数据处理(如推理)并加密结果;
91.在步骤14:服务器返回结果至客户端。
92.图4是本发明提供的基于gpu加解密的请求处理方法的流程示意图之三。如图4所示,该方法包括:
93.客户端通过加密通道向服务器提交对称加密算法和密钥;
94.服务器(也可称为服务器端、服务端)分配用户识别信息并根据对称加密算法和密钥创建加密核函数和解密核函数;
95.客户端使用密钥加密明文数据,或直接读取已加密数据;
96.客户端采用对称加密方式发送数据处理请求,数据处理请求包括用户识别信息(用户标识)、发送数据的指纹及加密的待处理数据;其中,发送数据的指纹如可以为数据的哈希值,用于识别被篡改的数据;
97.服务器验证请求并根据用户识别信息查找对应的加解密核函数,其中,加解密核函数包括加密核函数和解密核函数;验证请求包括确认待处理数据是否被篡改以及客户端是否合法等;
98.服务器在cpu和主机内存空间将解密核函数作为数据处理的第一步,加密核函数作为数据处理的最后一步,将解密核函数和加密核函数与数据处理核函数进行拼接后提交到gpu;
99.gpu中完成数据处理并将结果加密;
100.将加密后的结果返回客户端;
101.客户端解密结果。
102.本发明提供的基于gpu加解密的请求处理方法,gpu上运行的加密核函数和解密核函数,可以在gpu上高速处理,可称为gpu上的加解密加速算法。通过gpu上的加解密加速算法将数据加解密任务在gpu中完成,能够利用gpu的计算优势直接对数据解密及加密,有效降低cpu工作负载,降低对服务器主机cpu的性能要求,减轻cpu工作负担。并且,服务请求排队过程中处于密文状态,只有在进行数据处理服务时才被解密,明文数据不暴露在主机内存空间,增强私密性及安全性。另外,与使用硬件进行加解密方法不够灵活,加解密单元容易被浪费或成为服务瓶颈相比,本发明使用gpu加速的加解密核函数进行数据加解密,不依赖于硬件,通用性强,易于更新。
103.下面对本发明提供的服务器进行描述,下文描述的服务器与上文描述的基于gpu加解密的请求处理方法可相互对应参照。
104.图5是本发明提供的一种服务器的结构示意图。如图5所示,所述服务器包括请求接收模块10、核函数获取模块20及任务执行模块30,其中:请求接收模块10用于:接收客户端发送的数据处理请求;其中,所述数据处理请求包括用户标识,还包括待处理数据或所述待处理数据的数据存储信息;核函数获取模块20用于:获取所述数据处理请求对应的数据处理核函数,并根据所述用户标识获取对应的加密核函数和解密核函数;其中,所述数据处理核函数用于利用gpu执行所述数据处理请求对应的数据处理逻辑,所述加密核函数用于利用gpu加密数据,所述解密核函数用于利用gpu解密数据;任务执行模块30用于:根据所述数据处理核函数、所述加密核函数及所述解密核函数构建数据处理任务,并通过gpu对所述待处理数据执行所述数据处理任务。
105.本发明提供的基于gpu加解密的请求处理方法,通过在接收到数据处理请求后,根据获取的数据处理核函数、加密核函数及解密核函数构建数据处理任务,并通过gpu执行数据处理任务,将数据的加解密在gpu中执行,充分利用了gpu的数据处理能力,避免了cpu加解密造成的服务瓶颈问题及在主机内存空间暴露明文数据安全风险,提升了数据处理速率及数据安全性。
106.根据本发明提供的一种基于gpu加解密的请求处理方法,任务执行模块30在用于根据所述数据处理核函数、所述加密核函数及所述解密核函数构建数据处理任务时,具体用于:将所述解密核函数、所述数据处理核函数及所述加密核函数按序拼接,得到所述数据处理任务。
107.本发明提供的基于gpu加解密的请求处理方法,通过将解密核函数、数据处理核函数及加密核函数按序拼接,得到数据处理任务,提升了数据处理任务执行的简便性。
108.根据本发明提供的一种基于gpu加解密的请求处理方法,任务执行模块30在用于根据所述数据处理核函数、所述加密核函数及所述解密核函数构建数据处理任务时,具体用于:确定所述数据处理核函数的第一执行结果存储地址,确定所述解密核函数的第二执
行结果存储地址,以及确定所述加密核函数的第三执行结果存储地址;确定所述数据处理核函数、所述解密核函数及所述加密核函数的任务执行次序;根据所述第一执行结果存储地址、所述第二执行结果存储地址、所述第三执行结果存储地址及所述任务执行次序构建所述数据处理任务。
109.本发明提供的基于gpu加解密的请求处理方法,通过确定数据处理核函数、解密核函数及加密核函数的执行结果存储地址及执行次序,进而构建数据处理函数,提高了数据处理的灵活性,可以满足不同的数据处理需求。
110.根据本发明提供的一种基于gpu加解密的请求处理方法,所述任务执行顺序是先执行所述解密核函数、再执行所述数据处理核函数,最后执行所述加密核函数;任务执行模块30在用于通过gpu对所述待处理数据执行所述数据处理任务时,具体用于:通过gpu利用所述解密核函数对所述待处理数据进行解密处理,获取明文数据,并将所述明文数据存储到所述第一执行结果存储地址;从所述第一执行结果存储地址获取所述明文数据,并利用所述数据处理核函数对所述明文数据进行处理,将数据处理结果存储到所述第二执行结果存储地址;从所述第二执行结果存储地址获取所述数据处理结果,并利用所述加密核函数对所述数据处理结果进行加密,得到加密结果数据,将所述加密结果数据存储到所述第三执行结果存储地址。
111.本发明提供的基于gpu加解密的请求处理方法,通过gpu对待处理数据依次执行解密核函数、数据处理核函数及加密核函数,后一任务从前一任务的执行结果存储地址获取数据后再执行,将最终的执行结果进行存储,实现了任务执行及结果处理的有序化。
112.根据本发明提供的一种基于gpu加解密的请求处理方法,服务器还包括核函数构建模块,核函数构建模块在请求接收模块10接收客户端发送的数据处理请求之前,用于:接收所述客户端通过加密通道发送的加解密算法及密钥,并根据所述加解密算法及密钥构建所述加密核函数及所述解密核函数,以及建立所述加密核函数及所述解密核函数与所述用户标识的映射关系。
113.本发明提供的基于gpu加解密的请求处理方法,通过接收客户端通过加密通道发送的加解密算法及密钥,并根据加解密算法及密钥构建加密核函数及解密核函数,以及建立加密核函数及解密核函数与用户标识的映射关系,为利用gpu对数据进行加解密提供了基础。
114.根据本发明提供的一种基于gpu加解密的请求处理方法,核函数构建模块在用于建立所述加密核函数及所述解密核函数与所述用户标识的映射关系时,具体用于:生成所述客户端的所述用户标识,并建立所述加密核函数及所述解密核函数和所述用户标识之间的映射关系;服务器还包括发送模块,发送模块用于:将所述用户标识通过所述加密通道发送到所述客户端。
115.本发明提供的基于gpu加解密的请求处理方法,通过生成客户端的用户标识发送到客户端,有利于节省服务器的查询处理时间及节省计算资源。
116.根据本发明提供的一种基于gpu加解密的请求处理方法,所述待处理数据为已加密数据;请求接收模块10在用于接收客户端发送的数据处理请求时,具体用于:接收所述客户端通过非加密通道发送的所述数据处理请求。
117.本发明提供的基于gpu加解密的请求处理方法,通过将已加密的待处理数据经非
加密通道传输到服务器,节省了加密通道资源,并且避免了冗余的加解密处理,减轻了客户端负担。
118.图6是本发明提供的电子设备的结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(communications interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行基于gpu加解密的请求处理方法,该方法包括:接收客户端发送的数据处理请求;其中,所述数据处理请求包括用户标识,还包括待处理数据或所述待处理数据的数据存储信息;获取所述数据处理请求对应的数据处理核函数,并根据所述用户标识获取对应的加密核函数和解密核函数;其中,所述数据处理核函数用于利用gpu执行所述数据处理请求对应的数据处理逻辑,所述加密核函数用于利用gpu加密数据,所述解密核函数用于利用gpu解密数据;根据所述数据处理核函数、所述加密核函数及所述解密核函数构建数据处理任务,并通过gpu对所述待处理数据执行所述数据处理任务。
119.此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
120.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的基于gpu加解密的请求处理方法,该方法包括:接收客户端发送的数据处理请求;其中,所述数据处理请求包括用户标识,还包括待处理数据或所述待处理数据的数据存储信息;获取所述数据处理请求对应的数据处理核函数,并根据所述用户标识获取对应的加密核函数和解密核函数;其中,所述数据处理核函数用于利用gpu执行所述数据处理请求对应的数据处理逻辑,所述加密核函数用于利用gpu加密数据,所述解密核函数用于利用gpu解密数据;根据所述数据处理核函数、所述加密核函数及所述解密核函数构建数据处理任务,并通过gpu对所述待处理数据执行所述数据处理任务。
121.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的基于gpu加解密的请求处理方法,该方法包括:接收客户端发送的数据处理请求;其中,所述数据处理请求包括用户标识,还包括待处理数据或所述待处理数据的数据存储信息;获取所述数据处理请求对应的数据处理核函数,并根据所述用户标识获取对应的加密核函数和解密核函数;其中,所述数据处理核函数用于利用gpu执行所述数据处理请求对应的数据处理逻辑,所述加密核函数用于利用gpu加密数据,所述解密核函数用于利用gpu解密数据;根据所述数据处理核函数、所述加密核函数及所述解密核函数构建数据处理任务,并通过gpu对所述待处理数据执行所述数据处理任务。
122.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
123.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
124.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献