一种模型处理方法、装置及计算机可读存储介质与流程

文档序号:31390743发布日期:2022-09-03 02:23阅读:56来源:国知局
一种模型处理方法、装置及计算机可读存储介质与流程

1.本发明属于数据安全领域,特别是涉及一种模型处理方法、装置及计算机可读存储介质。


背景技术:

2.深度学习是当前人工智能应用的主要技术方案,以深度学习技术训练的神经网络模型被广泛应用于人机交互、推荐系统、安全防护等各个领域。具体场景包括语音处理、图像识别、信用评估、过滤恶意邮件、抵抗恶意网络攻击等。随着边缘设备和终端设备的增多,在云端训练神经网络模型并使用深度学习加速器在边缘设备上处理数据已成为一种趋势。
3.然而,在神经网络模型的发布和应用过程中,其网络结构和节点权重会完全对外暴露,神经网络模型经发布和/或第三方应用时,容易被复制、二次开发或修改,影响模型安全。
4.因此,为了防止神经网络模型被他人复制、攻击和篡改,需要对的神经网络模型进行加密处理,提高神经网络模型的安全性。


技术实现要素:

5.本发明提供一种模型处理方法、装置及计算机可读存储介质,可以防止神经网络模型被他人复制、攻击和篡改,提高神经网络模型的安全性。
6.依据本发明的第一方面,提供了一种模型处理方法,应用于模型加密系统,所述模型加密系统包括服务端、客户端和密钥管理子系统,所述方法包括:
7.所述密钥管理子系统根据客户端的设备信息对所述客户端进行安全认证,在所述客户端通过安全认证的情况下生成密钥,所述密钥包括第一密钥和第二密钥;将所述第一密钥分发至服务端,将所述第二密钥分发至客户端;
8.所述服务端根据所述密钥管理子系统分发的第一密钥生成验证子图,并将所述验证子图添加至待加密的神经网络模型中得到密文模型;将所述密文模型发送至所述客户端;
9.所述客户端接收密钥管理子系统分发的第二密钥和所述服务端发送的密文模型,并根据所述第二密钥获取针对所述密文模型的运行权限,以利用所述密文模型执行数据处理任务。
10.依据本发明的第二方法,提供了一种模型处理方法,应用于服务端,所述方法包括:
11.接收密钥管理子系统分发的第一密钥,所述第一密钥由密钥管理子系统在客户端通过安全认证的情况下生成;
12.根据待加密的神经网络模型的模型框架和所述第一密钥生成验证子图;
13.将所述验证子图添加至所述神经网络模型中,得到密文模型;
14.将所述密文模型发送至客户端,以使所述客户端基于所述密文模型执行数据处理
任务
15.依据本发明的第三方面,提供了一种模型处理方法,应用于客户端,所述方法包括:
16.接收密钥管理子系统分发的第二密钥和服务端发送的密文模型,所述第二密钥由密钥管理子系统在所述客户端通过安全认证的情况下生成;
17.在确定接收到的模型运行请求满足预设的验证触发条件的情况下,将所述第二密钥输入至所述密文模型中的验证子图;所述模型运行请求中携带数据处理任务;
18.执行所述验证子图,以根据所述第二密钥验证所述客户端是否具备针对所述密文模型的运行权限;
19.若确定所述客户端具备针对所述密文模型的运行权限,则响应于所述模型运行请求,运行所述密文模型以执行所述数据处理任务。
20.依据本发明的第四方面,提供了一种模型处理方法,应用于密钥管理子系统,所述方法包括:
21.根据客户端的设备信息对所述客户端进行安全认证;
22.在所述客户端通过安全认证的情况下生成密钥,所述密钥包括第一密钥和第二密钥;
23.将所述第一密钥分发至服务端,以及将所述第二密钥分发至所述客户端,以使所述服务端根据所述第一密钥生成验证子图,所述客户端根据所述第二密钥获取针对所述密文模型的运行权限,以利用所述密文模型执行数据处理任务。
24.依据本发明的第五方面,提供了一种模型加密系统,所述模型加密系统包括服务端、客户端和密钥管理子系统,
25.所述密钥管理子系统用于根据客户端的设备信息对所述客户端进行安全认证,在所述客户端通过安全认证的情况下生成密钥,所述密钥包括第一密钥和第二密钥;将所述第一密钥分发至服务端,将所述第二密钥分发至客户端;
26.所述服务端用于根据所述密钥管理子系统分发的第一密钥生成验证子图,并将所述验证子图添加至待加密的神经网络模型中得到密文模型;将所述密文模型发送至所述客户端;
27.所述客户端用于接收密钥管理子系统分发的第二密钥和所述服务端发送的密文模型,并根据所述第二密钥获取针对所述密文模型的运行权限,以利用所述密文模型执行数据处理任务。
28.依据本发明的第六方面,提供了一种模型处理装置,应用于服务端,所述装置包括:
29.密钥接收模块,用于接收密钥管理子系统分发的第一密钥,所述第一密钥由密钥管理子系统在客户端通过安全认证的情况下生成;
30.验证子图生成模块,用于根据待加密的神经网络模型的模型框架和所述第一密钥生成验证子图;
31.密文模型生成模块,用于将所述验证子图添加至所述神经网络模型中,得到密文模型;
32.密文模型发送模块,用于将所述密文模型发送至客户端,以使所述客户端基于所
述密文模型执行数据处理任务。
33.依据本发明的第七方面,提供了一种模型处理装置,应用于客户端,所述装置包括:
34.模型接收模块,用于接收密钥管理子系统分发的第二密钥和服务端发送的密文模型,所述第二密钥由密钥管理子系统在所述客户端通过安全认证的情况下生成;
35.密钥输入模块,用于在确定接收到的模型运行请求满足预设的验证触发条件的情况下,将所述第二密钥输入至所述密文模型中的验证子图;所述模型运行请求中携带数据处理任务;
36.验证子图执行模块,用于执行所述验证子图,以根据所述第二密钥验证所述客户端是否具备针对所述密文模型的运行权限;
37.密文模型运行模块,用于若确定所述客户端具备针对所述密文模型的运行权限,则响应于所述模型运行请求,运行所述密文模型以执行所述数据处理任务。
38.依据本发明的第八方面,提供了一种模型处理装置,应用于密钥管理子系统,所述装置包括:
39.安全认证模块,用于根据客户端的设备信息对所述客户端进行安全认证;
40.密钥生成模块,用于在所述客户端通过安全认证的情况下生成密钥,所述密钥包括第一密钥和第二密钥;
41.密钥分发模块,用于将所述第一密钥分发至服务端,以及将所述第二密钥分发至所述客户端,以使所述服务端根据所述第一密钥生成验证子图,并将所述验证子图添加至待加密的神经网络模型中得到密文模型,所述客户端根据所述第二密钥获取针对所述密文模型的运行权限,以利用所述密文模型执行数据处理任务。
42.依据本发明的第九方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方面中任一所述的模型处理方法。
43.针对在先技术,本发明具备如下优点:
44.本发明实施例提供的模型处理方法,通过模型加密系统对神经网络模型进行加密、解密处理。所述模型加密系统包括服务端、客户端和密钥管理子系统。其中,所述密钥管理子系统根据客户端的设备信息对所述客户端进行安全认证,在所述客户端通过安全认证的情况下生成密钥,所述密钥包括第一密钥和第二密钥;将所述第一密钥分发至服务端,将所述第二密钥分发至客户端;所述服务端根据所述密钥管理子系统分发的第一密钥生成验证子图,并将所述验证子图添加至待加密的神经网络模型中得到密文模型;将所述密文模型发送至所述客户端;所述客户端接收密钥管理子系统分发的第二密钥和所述服务端发送的密文模型,并根据所述第二密钥获取针对所述密文模型的运行权限,以利用所述密文模型执行数据处理任务。本发明实施例通过密钥管理子系统执行密钥的生成、分发操作,实现了对密钥的统一管理;并且本发明是在客户端通过安全认证的情况下才生成密钥,启动对神经网络模型一系列处理操作,保证了用于接收、运行神经网络模型客户端的合法性,可以有效避免神经网络模型被非法使用,提高了神经网络模型的安全性。在本发明实施例中,由服务端在待加密的神经网络模型中添加验证子图,得到密文模型,并向客户端传输密文模型,从而在模型发布、传输过程中不会暴露神经网络模型的网络结构和节点权重等信息,保
证了神经网络模型的传输安全;客户端在运行接收到的密文模型之前,需要通过接收到的第二密钥获取针对密文模型的运行权限,保证了神经网络模型的应用安全。
45.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
46.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
47.图1是本发明实施例提供的一种模型处理方法的步骤流程图;
48.图2是本发明实施例提供的一种模型加密系统的结构框图;
49.图3是本发明实施例提供的另一种模型处理方法的步骤流程图;
50.图4是本发明实施例提供的又一种模型处理方法的步骤流程图;
51.图5是本发明实施例提供的另一种模型处理方法的步骤流程图;
52.图6是本发明实施例提供的一种模型处理装置的结构框图;
53.图7是本发明实施例提供的另一种模型处理装置的结构框图;
54.图8是本发明实施例提供的又一种模型处理装置的结构框图。
具体实施方式
55.下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
56.图1是本发明实施例提供的一种模型处理方法的步骤流程图,如图1所示,该方法可以包括:
57.步骤101、密钥管理子系统根据客户端的设备信息对所述客户端进行安全认证,在所述客户端通过安全认证的情况下生成密钥,所述密钥包括第一密钥和第二密钥;将所述第一密钥分发至服务端,将所述第二密钥分发至客户端。
58.步骤102、服务端根据所述密钥管理子系统分发的第一密钥生成验证子图,并将所述验证子图添加至待加密的神经网络模型中得到密文模型;将所述密文模型发送至所述客户端。
59.步骤103、客户端接收密钥管理子系统分发的第二密钥和所述服务端发送的密文模型,并根据所述第二密钥获取针对所述密文模型的运行权限,以利用所述密文模型执行数据处理任务。
60.本发明实施例提供的模型处理方法,应用于模型加密系统,参照图2,示出了一种模型加密系统的结构框图,如图2所示,所述模型加密系统包括服务端201、客户端202和密钥管理子系统203。
61.其中,密钥管理子系统用于根据客户端的设备信息对客户端进行安全认证,以判
断客户端的合法性。作为一种示例,可以根据客户端的设备信息和当前配置参数,判断客户端的当前配置参数是否被恶意篡改,如果客户端的当前配置参数被恶意篡改,则确定该客户端不合法,也即未通过安全认证;反之,则确定该客户端通过安全认证。如果密钥管理子系统确定客户端通过安全认证,则生成密钥,包括用于模型加密的第一密钥和用于模型解密的第二密钥。具体的生成方法可以根据预先设定的加密算法确定,例如,如果采用对称加密算法,则根据对称加密算法生成第一密钥和第二密钥;如果采用非对称加密算法,则根据非对称加密算法生成第一密钥和第二密钥。密钥管理子系统生成第一密钥和第二密钥之后,将第一密钥分发至服务端,将第二密钥分发至客户端。
62.服务端接收到密钥管理子系统分发的第一密钥之后,根据第一密钥正常验证子图,并将验证子图添加至待加密的神经网络模型中得到密文模型。需要说明的是,在本发明实施例中,服务端生成的验证子图相当于密文模型的一个功能模块,用于对请求运行密文模型的客户端的权限进行验证。服务端在得到密文模型之后,将密文模型发送至客户端,以供客户端使用。
63.客户端在接收到密钥管理子系统分发的第二密钥和服务端发送的密文模型之后,根据第二密钥获取针对该密文模型的运行权限,以便利用密文模型执行数据处理任务。示例性的,客户端将第二密钥出入至密文模型的验证子图中进行解密计算,如果解密成功,则确定该客户端具备针对该密文模型的运行权限;反之,如果解密不成功,则确定该客户端不具备针对该密文模型的运行权限。
64.本发明实施例通过密钥管理子系统执行密钥的生成、分发操作,实现了对密钥的统一管理;并且本发明是在客户端通过安全认证的情况下才生成密钥,启动对神经网络模型一系列处理操作,保证了用于接收、运行神经网络模型客户端的合法性,可以有效避免神经网络模型被非法使用,提高了神经网络模型的安全性。在本发明实施例中,由服务端在待加密的神经网络模型中添加验证子图,得到密文模型,并向客户端传输密文模型,从而在模型发布、传输过程中不会暴露神经网络模型的网络结构和节点权重等信息,保证了神经网络模型的传输安全;客户端在运行接收到的密文模型之前,需要通过接收到的第二密钥获取针对密文模型的运行权限,保证了神经网络模型的应用安全。
65.图3是本发明实施例提供的另一种模型处理方法的步骤流程图,应用于服务端,如图3所示,该方法可以包括:
66.步骤301、接收密钥管理子系统分发的第一密钥,所述第一密钥由密钥管理子系统在客户端通过安全认证的情况下生成。
67.步骤302、根据待加密的神经网络模型的模型框架和所述第一密钥生成验证子图。
68.步骤303、将所述验证子图添加至所述神经网络模型中,得到密文模型。
69.步骤304、将所述密文模型发送至客户端,以使所述客户端基于所述密文模型执行数据处理任务。
70.其中,第一密钥由密钥管理子系统在客户端通过安全认证的情况下生成。密钥管理子系统在确定客户端通过安全认证的情况下,生成第一密钥和第二密钥,并将第一密钥分发至服务端,将第二密钥分发至客户端。
71.服务端接收到密钥管理子系统分发的第一密钥之后,根据待加密的神经网络模型的模型框架和第一密钥生成验证子图,并将验证子图添加至神经网络模型中,得到密文模
型。需要说明的是,本发明实施例对神经网络模型的模型框架不做具体限定,例如,神经网络模型的模块框架可以为tensorflow、pytorch等。
72.服务端在得到密文模型之后,将密文模型发送至客户端,以供客户端基于密文模型执行数据处理任务。
73.在本发明实施例中,由服务端在待加密的神经网络模型中添加验证子图,得到密文模型,并向客户端传输密文模型,从而在模型发布、传输过程中不会暴露神经网络模型的网络结构和节点权重等信息,保证了神经网络模型的传输安全。
74.在本发明的一种可选实施例中,步骤302所述根据待加密的神经网络模型的模型框架和所述第一密钥生成验证子图,包括:
75.子步骤3021、确定待加密的神经网络模型的模型框架;
76.子步骤3022、根据所述模型框架调用相应的编译算法生成验证子图;
77.子步骤3023、根据所述第一密钥和加密算法对所述验证子图进行加密处理,得到加密后的验证子图;
78.子步骤3024、将所述加密后的验证子图添加至所述神经网络模型中,得到密文模型。
79.在本发明实施例中,可以先确定待加密的神经网络模型的模型框架,然后,根据该模型框架调用相应的编译算法生成验证子图。
80.可以理解的是,此时生成的验证子图为明文验证子图,为了保证模型的安全性,服务端需要根据接收到的第一密钥对该验证子图进行加密处理,得到加密后的验证子图,也即密文验证子图。可选地,所述加密算法包括对称加密算法和非对称加密算法。示例性地,在本发明实施例中,可以采用des算法、3des算法、aes算法等。最后,将密文验证子图添加到神经网络模型中,即可得到第二密文模型。
81.作为一种示例,所述将所述加密后的验证子图添加至所述神经网络模型中,得到密文模型,包括:在所述神经网络模型的输入层之前插入所述加密后的验证子图,得到密文模型,所述加密后的验证子图用于对接收到所述密文模型的客户端进行验证。
82.在本发明实施例中,可以在神经网络模型的输入层之前插入加密后的验证子图,从而当客户端运行密文模型时,先通过验证子图对客户端的运行权限进行验证,当确定客户端具备密文模型的运行权限之后,再将客户端待执行的数据处理任务的计算数据输入至密文模型的输入层中进行处理。
83.作为另一种示例,所述加密后的验证子图包括第一验证子图和第二验证子图,所述将所述加密后的验证子图添加至所述神经网络模型中,得到密文模型,包括:在所述神经网络模型的输入层之前插入所述第一验证子图,并在所述神经网络模型的输出层之后插入所述第二验证子图。
84.其中,所述第一验证子图用于对接收到所述密文模型的客户端进行验证,并对输入至所述第一验证子图的待处理数据进行加密;所述第二验证子图用于对所述输出层输出的数据处理结果进行加密。
85.在本发明实施例中,除了可以在神经网络模型的输入层之前插入第一验证子图,还可以在神经网络模型的输出层之后插入第二验证子图,从而当客户端运行密文模型时,通过第一验证子图对客户端的运行权限进行验证,当确定客户端具备密文模型的运行权限
之后,再对客户端待执行的数据处理任务的计算数据进行加密后输入至密文模型的输入层中进行处理,由输出层输出数据处理结果。然后,通过第二验证子图对该数据处理结果进行加密,使得密文模型最终输出的数据处理结果也为密文。通过第一验证子图和第二验证子图,使得密文模型的输入数据和输出数据均为密文,可以有效避免数据泄露,保证了数据安全。
86.综上所述,本发明实施例提供的模型处理方法,由服务端在待加密的神经网络模型中添加验证子图,得到密文模型,并向客户端传输密文模型,从而在模型发布、传输过程中不会暴露神经网络模型的网络结构和节点权重等信息,保证了神经网络模型的传输安全。
87.图4是本发明实施例提供的又一种模型处理方法的步骤流程图,应用于客户端,如图4所示,该方法可以包括:
88.步骤401、接收密钥管理子系统分发的第二密钥和服务端发送的密文模型,所述第二密钥由密钥管理子系统在所述客户端通过安全认证的情况下生成。
89.步骤402、在确定接收到的模型运行请求满足预设的验证触发条件的情况下,将所述第二密钥输入至所述密文模型中的验证子图;所述模型运行请求中携带数据处理任务。
90.步骤403、执行所述验证子图,以根据所述第二密钥验证所述客户端是否具备针对所述密文模型的运行权限。
91.步骤404、若确定所述客户端具备针对所述密文模型的运行权限,则响应于所述模型运行请求,运行所述密文模型以执行所述数据处理任务。
92.其中,第二密钥由密钥管理子系统在客户端通过安全认证的情况下生成。密钥管理子系统在确定客户端通过安全认证的情况下,生成用于第一密钥和第二密钥,并将第一密钥分发至服务端,将第二密钥分发至客户端。
93.密文模型中包括加密后的验证子图,该验证子图由服务端根据待加密的神经网络模型的模型框架和第一密钥生成。
94.客户端在接收到密钥管理子系统分发的第二密钥和服务端发送的密文模型之后,根据接收到的模型运行请求运行密文模型。其中,该模型运行请求可以是持有客户端的用户通过执行触发操作生成的,该触发操作可以为点击客户端中的预设按钮、执行对密文模型的调用操作,等等;也可以是发布数据处理任务的电子设备发送的,例如,服务端或其他客户端向接收到密文模型的客户端发送模型运行请求,以触发该客户端基于密文模型执行数据处理任务。需要说明的是,本发明实施例对模型运行请求的具体生成方式不做具体限定。
95.客户端接收到的模型运行请求时,先判断接收到的模型运行请求是否满足预设的验证触发条件。其中,所述验证触发条件用于指示是否需要针对本次模型运行请求进行验证,该验证触发条件可以是模型运行请求的当前请求次数大于预设次数,或者接收到连续两次模型运行请求的时间差大于预设周期,等等。
96.作为一种示例,所述在确定接收到的模型运行请求满足预设的验证触发条件的情况下,将所述第二密钥输入至所述密文模型中的验证子图之前,所述方法还包括:
97.步骤s11、接收针对所述密文模型的模型运行请求并记录当前请求次数;
98.步骤s12、若所述当前请求次数大于预设次数,则确定所述模型运行请求满足预设
的验证触发条件。
99.在本发明实施例中,可以按照接收到的模型运行请求的请求次数对客户端的运行权限进行验证,对客户端的运行权限进行一次验证之后,再接收到运行请求时,如果当前请求次数小于预设次数,则可以不对客户端的运行权限进行验证,如果当前请求次数大于预设次数,则需要对客户端的运行权限进行再次验证,也即确定该模型运行请求满足预设的验证触发条件。
100.作为另一种示例,所述在确定接收到的模型运行请求满足预设的验证触发条件的情况下,将所述第二密钥输入至所述密文模型中的验证子图之前,所述方法还包括:
101.步骤s21、接收针对所述密文模型的模型运行请求并记录所述模型运行请求的第一请求时间;
102.步骤s22、计算上一次接收到满足验证触发条件的模型运行请求的第二请求时间与所述第一请求时间之间的时间差;
103.步骤s23、若所述时间差大于预设周期,则确定所述模型运行请求满足预设的验证触发条件。
104.在本发明实施例中,还可以按照预设周期对客户端的运行权限进行验证,对客户端的运行权限进行一次验证之后,在预设周期内,可以不对客户端的运行权限进行再次验证。具体的,当接收到的模型运行请求的请求时间与上一次验证时间之间时间差小于预设周期时,可以不用对客户端进行验证;当接收到的模型运行请求的请求时间与上一次验证时间(也即上一次接收到满足验证触发条件的模型运行请求的第二请求时间)之间的时间差大于预设周期时,需要对客户端进行再次验证,也即确定该模型运行请求满足预设的验证触发条件。
105.可选地,所述预设周期包括所述模型运行请求对应的推理运行时段。在本发明实施例中,也可以将预设周期设置为模型运行请求对应的推理运行时段,从而在验证子图通过验证,且神经网络模型的推理运行时未结束时,无需再次对神经网络模型进行验证,以提高神经网络模型的运行效率,在保证数据安全的同时降低验证复杂度。
106.当确定接收到的模型运行请求满足预设的验证触发条件时,客户端将第二密钥输入至密文模型中的验证子图,并执行该验证子图,以根据第二密钥验证客户端是否具备针对该密文模型的运行权限。如果确定该客户端具备针对密文模型的运行权限,则响应于模型运行请求,运行密文模型以执行模型运行请求中携带的数据处理任务。
107.在本发明的一种可选实施例中,步骤403所述执行所述验证子图,以根据所述第二密钥验证所述客户端是否具备针对所述密文模型的运行权限,包括:
108.子步骤4031、执行所述验证子图,以根据所述第二密钥进行解密计算;
109.子步骤4032、若解密成功,则确定所述客户端具备针对所述密文模型的运行权限;
110.子步骤4033、若解密不成功,则确定所述客户端不具备针对所述密文模型的运行权限。
111.在本发明实施例中,根据第二密钥验证客户端是否具备针对密文模型的运行权限,本质上是根据第二密钥对密文模型中的验证子图进行解密计算,如果解密成功,就可以确定该客户端具备针对密文模型的运行权限;如果解密不成功,则可以确定该客户端不具备针对密文模型的运行权限。
112.在本发明的一种可选实施例中,所述密文模型中包含两个验证子图,所述两个验证子图包括与所述密文模型的输入层串联的第一验证子图,以及与所述密文模型的输出层串联的第二验证子图,步骤404所述响应于所述模型运行请求,运行所述密文模型以执行所述数据处理任务,包括:
113.子步骤4041、响应于所述模型运行请求,将所述数据处理任务的待处理数据输入至所述密文模型的第一验证子图中,以通过所述第一验证子图对所述待处理数据进行加密处理,得到密文数据;
114.子步骤4042、将所述密文数据输入至所述密文模型的输入层中,基于所述密文模型对所述密文数据进行数据处理;
115.子步骤4043、获取所述密文模型的输出层输出的数据处理结果;
116.子步骤4044、将所述数据处理结果输入至所述第二验证子图中进行加密处理,得到加密后的数据处理结果并输出。
117.需要说明的是,由于在本发明实施例中,服务端在待加密的神经网络模型中插入加密后的验证子图时,有两种插入方式:一种是仅在神经网络模型的输入层之前插入加密后的验证子图;另一种是在神经网络模型的输入层之前插入第一验证子图,在神经网络模型的输出层之后插入第二验证子图。因此,客户端接收到的密文模型中可能只包含一个验证子图,也可能包含第一验证子图和第二验证子图。其中,所述第一验证子图用于对接收到所述密文模型的客户端进行验证,并对输入至所述第一验证子图的待处理数据进行加密;所述第二验证子图用于对所述输出层输出的数据处理结果进行加密。
118.如果客户端接收到的密文模型中仅包含一个验证子图,则在确定客户端具备针对密文模型的运行权限之后,直接运行密文模型以执行数据处理任务即可。如果客户端接收到的密文模型中包含第一验证子图和第二验证子图时,则客户端执行密文模型时也需要执行第一验证子图和第二验证子图。
119.具体的,客户端首先将数据处理任务的待处理数据输入到密文模型的第一验证子图中,通过执行第一验证子图对待处理数据进行加密处理,得到密文数据。然后,将得到的密文数据输入至密文模型的输入层中,基于该密文模型对密文数据进行数据处理,得到密文模型的输出层输出的数据处理结果。最后,将数据处理结果输入到第二验证子图中,通过执行第二验证子图,对数据处理结果进行加密处理,得到加密后的数据处理结果并输出。
120.在本本发明实施例中,通过第一验证子图和第二验证子图,使得密文模型的输入数据和输出数据均为密文,可以有效避免数据泄露,保证了数据安全。
121.综上所述,本发明实施例提供的模型处理方法,由服务端在待加密的神经网络模型中添加验证子图,得到密文模型,并向客户端传输密文模型,从而在模型发布、传输过程中不会暴露神经网络模型的网络结构和节点权重等信息,保证了神经网络模型的传输安全;客户端在运行接收到的密文模型之前,需要通过接收到的第二密钥获取针对密文模型的运行权限,保证了神经网络模型的应用安全。
122.图5是本发明实施例提供的另一种模型处理方法的步骤流程图,应用于密钥管理子系统,如图5所示,该方法可以包括:
123.步骤501、根据客户端的设备信息对所述客户端进行安全认证。
124.步骤502、在所述客户端通过安全认证的情况下生成密钥,所述密钥包括第一密钥
和第二密钥。
125.步骤503、将所述第一密钥分发至服务端,以及将所述第二密钥分发至所述客户端,以使所述服务端根据所述第一密钥生成验证子图,并将所述验证子图添加至待加密的神经网络模型中得到密文模型,所述客户端根据所述第二密钥获取针对所述密文模型的运行权限,以利用所述密文模型执行数据处理任务。
126.在本发明实施例中,密钥管理子系统用于根据客户端的设备信息对客户端进行安全认证,以判断客户端的合法性。作为一种示例,可以根据客户端的设备信息和当前配置参数,判断客户端的当前配置参数是否被恶意篡改,如果客户端的当前配置参数被恶意篡改,则确定该客户端不合法,也即未通过安全认证;反之,则确定该客户端通过安全认证。如果密钥管理子系统确定客户端通过安全认证,则生成密钥,包括第一密钥和第二密钥。具体的生成方法可以根据预先设定的加密算法确定,例如,如果采用对称加密算法,则根据对称加密算法生成第一密钥和第二密钥;如果采用非对称加密算法,则根据非对称加密算法生成第一密钥和第二密钥。密钥管理子系统生成第一密钥和第二密钥之后,将第一密钥分发至服务端,将第二密钥分发至客户端。
127.在本发明的一种可选实施例中,步骤501所述根据客户端的设备信息对所述客户端进行安全认证,包括:
128.子步骤5011、将所述客户端的设备信息与所述客户端的当前配置参数进行匹配,判断所述客户端的是否通过安全认证;
129.子步骤5012、若所述客户端的设备信息与所述客户端的当前配置参数相匹配,则确定所述客户端通过安全认证;
130.子步骤5013、若所述客户端的设备信息与所述客户端的当前配置参数不匹配,则所述客户端未通过安全认证。
131.在本发明实施例中,可以基于客户端的设备信息与客户端的当前配置参数,对客户端进行安全认证。具体的,将客户端的设备信息与客户端的当前配置参数进行匹配,判断该客户端的当前配置参数是否被恶意篡改,以此确定该客户端是否通过安全认证。
132.如果该客户端的设备信息与当前配置参数相匹配,说明该客户端的配置参数没有被恶意篡改,则可以确定该客户端通过安全认证。反之,如果该客户端的设备信息与当前配置参数不匹配,说明该客户端的配置参数已经被恶意篡改,则可以确定该客户端未通过安全认证。
133.在本发明的一种可选实施例中,步骤502所述在所述客户端通过安全认证的情况下生成密钥,包括:
134.在所述客户端通过安全认证的情况下,根据密钥配置参数生成密钥,所述密钥配置参数包括密钥有效期、密钥使用次数中的至少一项。
135.需要说明是,本发明实施例可以在生成密钥的同时,设置密钥的密钥配置参数,如密钥有效期、密钥使用次数等,从而可以限定客户端在根据第二密钥进行运行权限的验证时的验证触发条件,例如,客户端进行单次验证之后,在密钥有效期内,无需再次进行验证;或者,客户端在进行单次解密后,只要当前接收到的模型运行请求的请求次数小于密钥使用次数,则无需再次进行验证,等等。
136.综上所述,通过密钥管理子系统执行密钥的生成、分发操作,实现了对密钥的统一
管理;并且本发明是在客户端通过安全认证的情况下才生成密钥,启动对神经网络模型一系列处理操作,保证了用于接收、运行神经网络模型客户端的合法性,可以有效避免神经网络模型被非法使用,提高了神经网络模型的安全性。
137.图2是本发明实施例提供的一种模型加密系统的结构框图,如图2所示,该系统可以包括:
138.密钥管理子系统,用于根据客户端的设备信息对所述客户端进行安全认证,在所述客户端通过安全认证的情况下生成密钥,所述密钥包括第一密钥和第二密钥;将所述第一密钥分发至服务端,将所述第二密钥分发至客户端;
139.服务端,用于根据所述密钥管理子系统分发的第一密钥生成验证子图,并将所述验证子图添加至待加密的神经网络模型中得到密文模型;将所述密文模型发送至所述客户端;
140.客户端,用于接收密钥管理子系统分发的第二密钥和所述服务端发送的密文模型,并根据所述第二密钥获取针对所述密文模型的运行权限,以利用所述密文模型执行数据处理任务。
141.图6是本发明实施例提供的一种模型处理装置的结构框图,应用于服务端,如图6所示,该装置60可以包括:
142.密钥接收模块601,用于接收密钥管理子系统分发的第一密钥,所述第一密钥由密钥管理子系统在客户端通过安全认证的情况下生成;
143.验证子图生成模块602,用于根据待加密的神经网络模型的模型框架和所述第一密钥生成验证子图;
144.密文模型生成模块603,用于将所述验证子图添加至所述神经网络模型中,得到密文模型;
145.密文模型发送模块604,用于将所述密文模型发送至客户端,以使所述客户端基于所述密文模型执行数据处理任务。
146.可选地,所述验证子图生成模块602,包括:
147.模型框架确定子模块,用于确定待加密的神经网络模型的模型框架;
148.验证子图生成子模块,用于根据所述模型框架调用相应的编译算法生成验证子图;
149.加密处理子模块,用于根据所述第一密钥和加密算法对所述验证子图进行加密处理,得到加密后的验证子图;
150.验证子图添加子模块,用于将所述加密后的验证子图添加至所述神经网络模型中,得到密文模型。
151.可选地,所述验证子图添加子模块,包括:
152.第一验证子图添加单元,用于在所述神经网络模型的输入层之前插入所述加密后的验证子图,得到密文模型,所述加密后的验证子图用于对接收到所述密文模型的客户端进行验证。
153.可选地,所述加密后的验证子图包括第一验证子图和第二验证子图,所述验证子图添加子模块,包括:
154.第二验证子图添加单元,用于在所述神经网络模型的输入层之前插入所述第一验
证子图,并在所述神经网络模型的输出层之后插入所述第二验证子图;其中,所述第一验证子图用于对接收到所述密文模型的客户端进行验证,并对输入至所述第一验证子图的待处理数据进行加密;所述第二验证子图用于对所述输出层输出的数据处理结果进行加密。
155.可选地,所述加密算法包括对称加密算法或非对称加密算法。
156.图7是本发明实施例提供的另一种模型处理装置的结构框图,应用于客户端,如图7所示,该装置70可以包括:
157.模型接收模块701,用于接收密钥管理子系统分发的第二密钥和服务端发送的密文模型,所述第二密钥由密钥管理子系统在所述客户端通过安全认证的情况下生成;
158.密钥输入模块702,用于在确定接收到的模型运行请求满足预设的验证触发条件的情况下,将所述第二密钥输入至所述密文模型中的验证子图;所述模型运行请求中携带数据处理任务;
159.验证子图执行模块703,用于执行所述验证子图,以根据所述第二密钥验证所述客户端是否具备针对所述密文模型的运行权限;
160.密文模型运行模块704,用于若确定所述客户端具备针对所述密文模型的运行权限,则响应于所述模型运行请求,运行所述密文模型以执行所述数据处理任务。
161.可选地,所述验证子图执行模块703,包括:
162.验证子图执行子模块,用于执行所述验证子图,以根据所述第二密钥进行解密计算;
163.第一确定子模块,用于若解密成功,则确定所述客户端具备针对所述密文模型的运行权限;
164.第二确定子模块,用于若解密不成功,则确定所述客户端不具备针对所述密文模型的运行权限。
165.可选地,所述密文模型中包含两个验证子图,所述两个验证子图包括与所述密文模型的输入层串联的第一验证子图,以及与所述密文模型的输出层串联的第二验证子图,所述密文模型运行模块704,包括:
166.第一输入子模块,用于响应于所述模型运行请求,将所述数据处理任务的待处理数据输入至所述密文模型的第一验证子图中,以通过所述第一验证子图对所述待处理数据进行加密处理,得到密文数据;
167.第二输入子模块,用于将所述密文数据输入至所述密文模型的输入层中,基于所述密文模型对所述密文数据进行数据处理;
168.结果获取子模块,用于获取所述密文模型的输出层输出的数据处理结果;
169.加密处理子模块,用于将所述数据处理结果输入至所述第二验证子图中进行加密处理,得到加密后的数据处理结果并输出。
170.可选地,所述装置还包括:
171.第一接收模块,用于接收针对所述密文模型的模型运行请求并记录当前请求次数;
172.第一确定模块,用于若所述当前请求次数大于预设次数,则确定所述模型运行请求满足预设的验证触发条件。
173.可选地,所述装置还包括:
174.第二接收模块,用于接收针对所述密文模型的模型运行请求并记录所述模型运行请求的第一请求时间;
175.计算模块,用于计算上一次接收到满足验证触发条件的模型运行请求的第二请求时间与所述第一请求时间之间的时间差;
176.第二确定模块,用于若所述时间差大于预设周期,则确定所述模型运行请求满足预设的验证触发条件。
177.可选地,所述预设周期包括所述模型运行请求对应的推理运行时段。
178.图8是本发明实施例提供的又一种模型处理装置的结构框图,应用于密钥管理子系统,如图8所示,该装置80可以包括:
179.安全认证模块801,用于根据客户端的设备信息对所述客户端进行安全认证;
180.密钥生成模块802,用于在所述客户端通过安全认证的情况下生成密钥,所述密钥包括第一密钥和第二密钥,所述第一密钥用于模型加密所述神经网络模型,所述第二密钥用于模型解密;
181.密钥分发模块803,用于将所述第一密钥分发至服务端,以及将所述第二密钥分发至所述客户端,以使所述服务端根据所述第一密钥生成验证子图,并将所述验证子图添加至待加密的神经网络模型中得到密文模型,所述客户端根据所述第二密钥获取针对所述密文模型的运行权限,以利用所述密文模型执行数据处理任务。
182.可选地,所述安全认证模块,包括:
183.参数匹配子模块,用于将所述客户端的设备信息与所述客户端的当前配置参数进行匹配,判断所述客户端的是否通过安全认证;
184.第一认证子模块,用于若所述客户端的设备信息与所述客户端的当前配置参数相匹配,则确定所述客户端通过安全认证;
185.第二认证子模块,用于若所述客户端的设备信息与所述客户端的当前配置参数不匹配,则所述客户端未通过安全认证。
186.可选地,所述密钥生成模块,包括:
187.密钥生成子模块,用于在所述客户端通过安全认证的情况下,根据密钥配置参数生成密钥,所述密钥配置参数包括密钥有效期、密钥使用次数中的至少一项。
188.对于上述装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
189.另外,本发明实施例还提供一种终端,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述模型处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
190.本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述模型处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等。
191.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
192.本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本发明的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。
193.在此提供的模型处理方法不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造具有本发明方案的系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
194.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
195.类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
196.本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
197.此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
198.本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的操作执行方法中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
199.应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,
不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1