神经网络模型加密数据的解密方法、片上系统及电子设备与流程
未命名
09-07
阅读:153
评论:0
1.本公开涉及数据安全技术领域,尤其涉及一种神经网络模型加密数据的解密方法、片上系统、计算机可读存储介质及电子设备。
背景技术:
2.随着人工智能(artificial intelligence,ai)的迅速发展,神经网络处理器在智能驾驶、图像识别等众多场景中应用越来越广泛。为了防止神经网络处理器进行运算的神经网络模型数据被篡改导致功能安全性降低,需要对神经网络模型数据的安全与隐私进行保护。
技术实现要素:
3.为了防止操作系统在运行阶段对神经网络模型数据进行篡改,相关技术中,在片上系统(system on chip,soc)的开发阶段设置保护机制:将神经网络模型数据进行加密后存储在存储器ddr的特定地址段中;在soc启动阶段,由安全协议加速器spacc访问ddr中存储的神经网络模型加密数据进行解密,解密之后设置spacc禁止访问ddr的特定地址段存储的数据;soc启动完成进入运行阶段后,设置只有神经网络处理器具有访问ddr的特定地址段存储的数据的权限。相关技术中解密过程只能受限于启动阶段,并且对神经网络模型加密数据进行解密的过程占用资源较大,在启动阶段解密严重拖慢soc的启动速度;另外为了防止神经网络处理器模型数据泄漏,需要将启动阶段的部分代码进行隐藏,隐藏成本较高,且不利于二次开发。
4.为了解决上述技术问题,本公开提供了一种片上系统和基于该片上系统的神经网络模型加密数据解密方法,在片上系统启动后,通过片上系统中的解密模块在满足解密条件的情况下执行解密操作,在运行阶段解密能够缩短soc启动时长、实现灵活解密;并且可以公开启动阶段的程序代码,有利于二次开发。
5.本公开的第一个方面,提供了一种神经网络模型加密数据的解密方法,包括:在片上系统启动后,通过所述片上系统中的解密模块获取来自所述片上系统中处理器的第一访问请求;通过所述解密模块基于所述第一访问请求确定所述解密模块访问神经网络模型加密数据的权限;响应于所述解密模块具有访问神经网络模型加密数据的权限,基于所述第一访问请求中的访问地址,通过所述解密模块从所述片上系统中的存储器获取所述神经网络模型加密数据;通过所述解密模块确定神经网络模型密钥,并基于所述神经网络模型密钥对所述神经网络模型加密数据进行解密,得到解密后的神经网络模型数据。
6.本公开的第二个方面,提供了一种片上系统,包括:存储器、处理器以及与所述存储器和所述处理器耦接的解密模块;所述存储器,用于存储神经网络模型加密数据;所述处理器,用于在所述片上系统启动后,向所述解密模块发送第一访问请求;所述解密模块,用于获取来自所述处理器的所述第一访问请求;基于所述第一访问请求确定所述解密模块具有访问所述神经网络模型加密数据的权限,基于所述第一访问请求中的访问地址,从所述
存储器获取所述神经网络模型加密数据;确定神经网络模型密钥,并基于所述神经网络模型密钥对所述神经网络模型加密数据进行解密,得到解密后的神经网络模型数据。
7.本公开的第三个方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述任一所述的神经网络模型加密数据的解密方法。
8.本公开的第四个方面,提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述指令,并执行所述指令以实现上述任一所述的神经网络模型加密数据的解密方法。
9.本公开第五个方面,提供了一种计算机程序产品,当所述计算机程序产品中的指令被处理器执行时,执行本公开第一方面实施例提供的神经网络模型加密数据的解密方法。
10.本公开提供的解密方法,在soc运行阶段,通过soc中的解密模块获取来自soc中处理器的第一访问请求;基于第一访问请求确定解密模块访问神经网络模型加密数据的权限;当解密模块具有访问权限时,基于第一访问请求中的访问地址,通过解密模块从soc中的存储器获取神经网络模型加密数据;解密模块基于获得的神经网络模型密钥对神经网络模型加密数据进行解密,得到解密后的神经网络模型数据。本公开提供的解密方法,解密模块在运行阶段执行解密操作,能够缩短soc启动时长;soc在运行阶段可以支持多次解密,而且每次执行解密操作时,可以结合需求对部分神经网络模型加密数据进行,从而能够实现灵活解密;并且,由于在运行阶段解密,使得启动阶段的程序代码无需隐藏,有利于二次开发。
附图说明
11.图1为相关技术提供的一种片上系统安全启动运行的流程示意图。
12.图2为本公开一示例性实施例提供的片上系统安全启动运行的流程示意图。
13.图3为本公开一示例性实施例提供的片上系统的结构示意图。
14.图4为本公开一示例性实施例提供的神经网络模型加密数据的解密方法的流程示意图。
15.图5为本公开另一示例性实施例提供的神经网络模型加密数据的解密方法的流程示意图。
16.图6为本公开再一示例性实施例提供的神经网络模型加密数据的解密方法的流程示意图。
17.图7为本公开又一示例性实施例提供的神经网络模型加密数据的解密方法的流程示意图。
18.图8为本公开再一示例性实施例提供的神经网络模型加密数据的解密方法的流程示意图。
19.图9为本公开又一示例性实施例提供的神经网络模型加密数据的解密方法的流程示意图。
20.图10为本公开再一示例性实施例提供的神经网络模型加密数据的解密方法的流程示意图。
21.图11为本公开又一示例性实施例提供的神经网络模型加密数据的解密方法的流
程示意图。
22.图12为本公开另一示例性实施例提供的片上系统的结构示意图。
23.图13为本公开再一示例性实施例提供的片上系统的结构示意图。
24.图14为本公开又一示例性实施例提供的片上系统的结构示意图。
25.图15为本公开一示例性实施例提供的电子设备的结构示意图。
具体实施方式
26.为了解释本公开,下面将参考附图详细地描述本公开的示例实施例,显然,所描述的实施例仅是本公开的一部分实施例,而不是全部实施例,应理解,本公开不受示例性实施例的限制。
27.应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
28.申请概述
29.soc上的神经网络模型数据在开发阶段可以设置保护机制,通过该保护机制可以对神经网络模型数据进行加密,将加密后的神经网络模型加密数据存储在双倍速率同步动态随机存储器(double data rate synchronous dynamic random-access memory,ddr sdram,又简称ddr)中。通过该保护机制,一方面能够保证系统功能安全,避免非法、恶意地修改神经网络模型数据导致功能安全性降低;另一方面能够对神经网络模型数据进行安全隐私保护,避免数据泄漏。
30.基于soc上的保护机制,相关技术中提供一种对神经网络模型加密数据进行解密的方法。图1为相关技术提供的一种片上系统安全启动运行的流程示意图,如图1所示,soc中的中央处理器(central processing unit,cpu)上电后,在bl1子阶段加载bl2镜像,完成之后进入bl2子阶段。在bl2子阶段,加载bl31镜像、设置ddr中用于存储神经网络模型加密数据的特定地址段、ddr初始化、通过安全协议加速器(security protocol accelerator,spacc)对神经网络模型加密数据进行解密,并将解密后的神经网络模型数据存储至ddr的特定地址段,最后配置寄存器,完成之后进入bl3子阶段,bl3之后进入运行阶段。
31.如图1所示,该解密方法是在soc启动阶段的bl2子阶段对神经网络模型加密数据进行解密的。为了在运行阶段对神经网络模型加密数据进行保护,解密完成后,收回spacc对ddr中特定地址段的访问权限。即解密完成后,在运行阶段只能由神经网络处理器访问ddr中特定地址段读取解密后的神经网络模型数据,禁止除神经网络处理器之外的其他模块访问ddr中特定地址段,该其他模块包括但不限于soc中的spacc、cpu、图像信号处理器(image signal processor,isp)等模块。
32.图1所示片上系统的解密方法需要在soc启动阶段完成所有神经网络模型数据的解密操作,对神经网络模型加密数据进行解密的过程占用资源较大,严重拖慢soc的启动速度;并且由于需要在bl2子阶段进行解密,为防止神经网络模型数据泄漏,此部分代码不可对外开放,隐藏成本较高,且不利于外部开发者进行二次开发。
33.为了解决相关技术中存在的上述问题,本公开实施例提供一种神经网络模型加密数据的解密方法,该方法在soc启动完成进入运行阶段后,根据需求对神经网络模型加密数据进行解密,能够缩短soc启动时长,实现灵活解密。
34.图2为本公开一示例性实施例提供的片上系统安全启动运行的流程示意图,如图2所示,本公开实施例提供的解密方法是在运行阶段对神经网络模型加密数据进行解密的。
35.如图2所示,soc中的cpu上电后,在bl1子阶段加载bl2镜像,完成之后进入bl2子阶段。在bl2子阶段,加载bl31镜像、设置ddr中用于存储神经网络模型加密数据的特定地址段、ddr初始化,以及配置寄存器,完成之后进入bl3子阶段。bl3之后进入运行阶段,在运行阶段,通过spacc对神经网络模型加密数据进行解密并将解密后的神经网络模型数据存储至ddr的特定地址段,神经网络处理器访问ddr中特定地址段,读取解密后的神经网络模型数据进行数据处理。在运行阶段,spacc和神经网络处理器能够访问ddr中特定地址段,除spacc和神经网络处理器之外的其他模块,包括但不限于cpu、isp等模块,都禁止访问ddr中特定地址段。
36.图2所示片上系统的解密方法,在保证神经网络模型数据安全隐私的前提下,在启动阶段无需执行解密操作,能够缩短soc启动时长;在运行阶段可以支持多次解密,而且每次执行解密操作时,可以只对本次有需求的神经网络模型加密数据进行解密,能够实现灵活解密;另外,在运行阶段解密,bl2子阶段的全部代码都可以对外开放,有利于二次开发。
37.示例性系统
38.图3为本公开一示例性实施例提供的片上系统的结构示意图,该片上系统30包括存储器301、处理器302、解密模块303和神经网络处理器304。如图3所示,存储器301、处理器302、解密模块303和神经网络处理器304可以通过总线305耦接。
39.存储器301,可以为soc上的ddr,用于存储神经网络模型加密数据。
40.处理器302,可以为soc上的cpu,用于在soc启动后,在需要利用神经网络处理器304对待处理数据进行处理时,向解密模块303发送第一访问请求。
41.解密模块303,用于获取来自处理器302的第一访问请求;基于该第一访问请求,确定是否具有访问神经网络模型加密数据的权限;当确定具有访问神经网络模型加密数据的权限时,基于第一访问请求中的访问地址,从存储器301获取神经网络模型加密数据;然后确定神经网络模型密钥,并基于神经网络模型密钥对神经网络模型加密数据进行解密,得到解密后的神经网络模型数据。在一些示例中,解密模块303还用于将解密后的神经网络模型数据存储至存储器301的预设地址段。
42.神经网络处理器304,可以包括能够实现各种特定功能的硬件加速单元。本公开实施例中,神经网络处理器304可以从存储器301的预设地址段读取解密后的神经网络模型数据,基于该解密后的神经网络模型数据对待处理数据进行处理。
43.需要说明的是,本公开实施例对于片上系统30的具体结构不作限定,片上系统30可以包括比图3所示的更多或更少的部件。例如,片上系统30还可以包括总线控制器、中断管理器、协处理器等等,本公开实施例不作限制。
44.示例性方法
45.图4为本公开一示例性实施例提供的神经网络模型加密数据的解密方法的流程示意图。本公开实施例提供的解密方法,可以应用在如图3所示的片上系统上,如图4所示,该解密方法可以包括如下步骤:
46.步骤401,在片上系统启动后,通过片上系统中的解密模块获取来自片上系统中处理器的第一访问请求。
47.soc启动完成后进入运行阶段后,在处理器运行主程序的过程中,当处理器需要调度神经网络处理器对待处理数据进行处理时,由于soc上的神经网络模型数据在开发阶段设置了保护机制,是以密文形式存储在存储器中的,因此处理器首先需要soc中的调度解密模块对存储器中的密文数据(即神经网络模型加密数据)进行解密,然后神经网络处理器才能使用解密后的神经网路模型数据对待处理数据进行处理。
48.在一种实现方式中,处理器可以通过先进先出(first input first output,fifo)存储器,向解密模块发送第一访问请求,该第一访问请求中可以携带用于存储待访问数据的访问地址。
49.步骤402,通过解密模块基于第一访问请求确定解密模块访问神经网络模型加密数据的权限。
50.解密模块获取到第一访问请求后,需要判断待访问数据是否为待解密的神经网络模型加密数据,即判断第一访问请求所访问的数据是否为需要解密模块进行解密的数据。若第一访问请求所访问的数据,是需要解密模块进行解密的神经网络模型加密数据,则设置解密模块具有访问权限;若第一访问请求所访问的数据,不需要解密模块进行解密,解密模块无需执行解密操作,则设置解密模块不具有访问权限。
51.步骤403,响应于解密模块具有访问神经网络模型加密数据的权限,基于第一访问请求中的访问地址,通过解密模块从片上系统中的存储器获取神经网络模型加密数据。
52.当基于第一访问请求确定解密模块具有访问神经网络模型加密数据的权限时,解密模块根据第一访问请求中的访问地址,从ddr的对应地址中读取神经网络模型加密数据。
53.本公开实施例中,神经网络模型加密数据是以密文形式方式存储在ddr的预设地址段的,在满足访问条件的前提下允许解密模块访问神经网络模型加密数据,设置解密模块具有访问神经网络模型加密数据的权限;在不满足访问条件的前提下禁止解密模块访问神经网络模型加密数据,设置解密模块不具有访问神经网络模型加密数据的权限。如此实现在运行阶段保留spacc访问预设地址段的权限,同时兼顾保护神经网路模型加密数据的安全性。
54.步骤404,通过解密模块确定神经网络模型密钥。
55.解密模块获取到访问神经网络模型加密数据的权限后,还需要获得能够对神经网络模型加密数据进行解密的密钥才能进行解密。本公开实施例中,将用于对神经网络模型加密数据进行解密的密钥称为神经网络模型密钥。
56.在实际应用中,解密模块可以在获取到访问神经网络模型加密数据的权限后,先获取神经网络模型密钥,若成功获取到神经网络模型密钥再从ddr中读取神经网络模型加密数据,若获取神经网络模型密钥失败,无需读取神经网络模型加密数据,能够减少神经网络模型加密数据的访问次数,进一步保护神经网络模型加密数据的安全性,而且能够减少数据传输量。
57.在一些示例中,为了保证神经网络模型密钥的安全性,可以在解密模块中设置专用的密钥生成单元,解密模块可以通过密钥生成单元生成用于对神经网络模型加密数据进行解密的神经网络模型密钥。
58.步骤405,基于神经网络模型密钥对神经网络模型加密数据进行解密,得到解密后的神经网络模型数据。
59.当解密模块同时获取到神经网络模型密钥和神经网络模型加密数据后,基于神经网络模型密钥对神经网络模型加密数据进行解密,得到解密后的神经网络模型数据,如此实现在soc的运行阶段对神经网络模型加密数据进行解密。
60.本公开实施例提供的神经网络模型加密数据的解密方法,在保证神经网络模型数据安全隐私的前提下,在启动阶段省略解密操作,能够缩短soc启动时长;在运行阶段多次执行解密步骤,能够实现多次解密,并且每次执行解密操作时,可以只对本次有需求的神经网络模型加密数据进行解密,能够实现灵活解密;另外,在运行阶段进行解密,可以对启动阶段的程序代码进行开放,有利于二次开发。
61.如图5所示,上述图4所示实施例中的步骤402“通过解密模块基于第一访问请求确定解密模块访问神经网络模型加密数据的权限”,可以包括如下步骤:
62.步骤4021,通过解密模块中的仲裁器确定第一访问请求中的访问地址与预设地址段的第一包含关系。
63.解密模块为soc中的硬件模块,解密模块可以包括仲裁器和安全协议加速器spacc。spacc是soc中设置的能够对神经网络模型加密数据进行解密的硬件加速器。本公开实施例中,仲裁器用于确定spacc是否满足访问条件,spacc用于在满足访问条件的情况下从ddr读取神经网络模型加密数据,并对其进行解密。
64.本公开实施例中,仲裁器确定spacc是否满足访问条件时,可以根据第一访问请求中的访问地址和预设地址段的包含关系来确定。其中预设地址段为ddr中用于存储神经网络模型加密数据的特定区域。在运行阶段,ddr上该特定区域仅允许来自spacc和神经网络处理器的访问,禁止soc上除spacc和神经网络处理器之外的其他模块的访问,如此在运行阶段确保神经网络模型加密数据的安全性。
65.在一种实现方式中,可以在soc的启动阶段,配置预设地址段的低地址于神经网络处理器低地址寄存器中,配置预设地址段的高地址于神经网络处理器高地址寄存器中。在运行阶段,仲裁器判断第一访问请求中的访问地址是否在神经网络处理器低地址寄存器中的低地址和神经网络处理器高地址寄存器中的高地址的范围内,来确定第一访问请求的访问地址与预设地址段的第一包含关系。
66.步骤4022,基于第一包含关系,通过仲裁器确定解密模块中的安全协议加速器访问神经网络模型加密数据的权限。
67.第一访问请求中的访问地址与预设地址段的第一包含关系可以包括:预设地址段包含第一访问请求中的访问地址和预设地址段不包含第一访问请求中的访问地址。
68.在第一包含关系为预设地址段包含第一访问请求中的访问地址的情况下,通过仲裁器确定解密模块中的安全协议加速器具有访问神经网络模型加密数据的权限。在第一包含关系为预设地址段不包含第一访问请求中的访问地址的情况下,通过仲裁器确定解密模块中的安全协议加速器不具有访问神经网络模型加密数据的权限。
69.当第一包含关系为预设地址段包含第一访问请求中的访问地址,表明第一访问请求待访问的数据是存储在预设地址段中的神经网络模型加密数据,此时确定满足访问条件,通过仲裁器设置spacc具有访问神经网络模型加密数据的权限;当第一包含关系为预设地址段不包含第一访问请求中的访问地址,表明第一访问请求待访问的数据是存储器中除预设地址段之外其他地址的数据,该些数据不是神经网络模型加密数据,不需要由spacc对
其进行解密,因此确定不满足访问条件,通过仲裁器设置spacc不具有访问神经网络模型加密数据的权限。
70.本公开实施例中,仲裁器在运行阶段接收第一访问请求,通过第一访问请求中的访问地址和预设地址段的包含关系,来确定解密模块中的spacc是否具有访问神经网络模型加密数据的权限,实现在运行阶段对spacc访问权限的控制。仅当访问请求中的访问地址在预设地址段时,仲裁器才设置spacc具有访问权限;当访问地址不在预设地址段时,仲裁器设置spacc不具有访问权限,如此在运行阶段保留spacc访问预设地址段的权限的同时,能够保护神经网路模型加密数据的安全性。
71.如图6所示,上述图4所示实施例中的步骤403“响应于解密模块具有访问神经网络模型加密数据的权限,基于第一访问请求中的访问地址,通过解密模块从片上系统中的存储器获取神经网络模型加密数据”,可以包括以下步骤:
72.步骤4031,响应于安全协议加速器具有访问神经网络模型加密数据的权限,通过解密模块中的第一拦截器控制存储器与安全协议加速器之间的第一开关单元导通。
73.本公开实施例中,解密模块还包括第一拦截器和第一开关单元,该第一开关单元设置在spacc和ddr之间,用于对spacc和ddr之间的通路进行导通或关断。该第一开关单元可以由能够实现开关逻辑功能的电子元件组成。第一拦截器用于控制第一开关单元的导通和关断。
74.步骤4032,基于第一访问请求中的访问地址,通过安全协议加速器从存储器获取神经网络模型加密数据。
75.仲裁器可以通过第一拦截器和第一开关单元来设置spacc的访问权限。当仲裁器确定第一访问请求的访问地址在预设地址段内时,确定spacc具有访问神经网络模型加密数据的权限,利用第一拦截器控制第一开关单元导通。第一开关单元导通后,spacc和ddr之间的通路导通,spacc能够从ddr的预设地址段读取神经网络模型加密数据。在一些示例中,当spacc和ddr之间的通路导通,spacc也可以向ddr的预设地址段写入解密后的神经网络模型数据。
76.当仲裁器确定第一访问请求的访问地址不在预设地址段时,确定spacc不具有访问神经网络模型加密数据的权限,利用第一拦截器控制第一开关单元关断。第一开关单元关断后,spacc和ddr之间开路,spacc无法从ddr的预设地址段读取神经网络模型加密数据,能够保护神经网络模型加密数据的安全性。
77.如图7所示,上述图4所示实施例中的步骤404“通过解密模块确定神经网络模型密钥”,可以通过下述步骤4041至步骤4043来实现。
78.步骤4041,通过解密模块中的密钥生成单元获取来自处理器的密钥选择信号。
79.spacc获取到访问神经网络模型加密数据的权限后,还需要获得能够对神经网络模型加密数据进行解密的密钥才能进行解密。本公开实施例中,为了保证神经网络模型密钥的安全性,在解密模块中设置专用的密钥生成单元。当处理器发送第一访问请求时,向密钥生成单元发送密钥选择信号,以使密钥生成单元基于该密钥选择信号输出密钥选择结果。
80.步骤4042,基于密钥选择信号,通过密钥生成单元输出密钥选择结果。
81.在本公开实施例中,密钥生成单元可以包括密钥选择寄存器、密钥生成器、系统密
钥存储器和密钥选择器。其中密钥生成器用于生成神经网络模型密钥,该神经网络模型密钥用于对神经网络模型加密数据进行解密。系统密钥存储器用于存储系统安全密钥,该系统安全密钥用于对系统中其他加密数据进行解密。
82.在一种实现方式中,密钥生成单元可以通过密钥选择寄存器获取来自处理器的密钥选择信号;然后基于密钥选择信号,通过密钥选择器选择系统安全密钥或神经网络模型密钥作为密钥选择结果;最后通过密钥选择器输出密钥选择结果。
83.示例性的,密钥选择器可以在密钥选择信号为高电平时,选择神经网络模型密钥作为密钥选择结果;在密钥选择信号为低电平时,选择系统安全密钥作为密钥选择结果。
84.在一些示例中,密钥生成器可以从一次性可编程存储器(electronic fuse,efuse)中获取用于生成神经网络模型密钥的原始数据,efuse中的数据一次性写入且破解难度大,能够避免原始数据被篡改。密钥生成器根据未被篡改的原始数据生成神经网络模型密钥,能够确保神经网络模型密钥的正确性和安全性。
85.步骤4043,基于密钥选择结果和解密模块中的安全协议加速器访问神经网络模型加密数据的权限,通过解密模块中的逻辑单元输出神经网络模型密钥。
86.本公开实施例中,为了确保spacc在获得神经网络模型密钥和神经网络模型加密数据的前提下才能进行解密,在解密模块中设置一逻辑单元,示例性的,该逻辑单元可以由能够实现与逻辑功能的电子元件组成。该逻辑单元的一个输入端连接密钥选择器的输出端,用于接收密钥选择器输出的密钥选择结果,该逻辑单元的另一个输入端连接仲裁器的输出端,用于接收仲裁器确定的能够表征spacc访问权限的第一信号(记为signal 1),该逻辑单元的输出端连接spacc的输入端。确定密钥选择结果为神经网络模型密钥,且spacc具有访问神经网络模型加密数据的权限,通过逻辑单元向spacc输出神经网络模型密钥,以使spacc基于神经网络模型密钥,对神经网络模型加密数据进行解密。
87.在一些实施例中,确定密钥选择结果为系统安全密钥,或spacc不具有访问神经网络模型加密数据的权限,spacc不会获取到神经网络模型密钥。即使spacc具有从ddr的预设地址段读取神经网络模型加密数据的权限,但是由于spacc无法获得神经网络模型密钥,使其无法对神经网络模型加密数据进行解密。在实际应用中,在spacc无法获得神经网络模型密钥的前提下,spacc即使具有访问神经网络模型加密数据的权限,也无需读取该神经网络模型加密数据,只有成功获取到神经网络模型密钥时再从ddr中读取神经网络模型加密数据,这样能够减少神经网络模型加密数据的访问次数,进一步保护神经网络模型加密数据的安全性,而且能够减少数据传输量。
88.在上述实施例基础上,本公开再提供一种解密方法,图8为本公开再一示例性实施例提供的神经网络模型加密数据的解密方法的流程示意图,如图8所示,该解密方法包括以下步骤:
89.步骤801,通过安全协议加速器生成清除指令。
90.本公开实施例中,为了进一步确保神经网络模型密钥不被泄漏,在spacc中设置安全密钥端口(secure key port,skp),spacc中的skp一旦接收到密钥选择结果,无论该密钥选择结果是否为神经网络模型密钥,在密钥选择结果信号传输完成后,立即生成用于清除密钥选择信号的清除指令,并输出该清除指令。
91.步骤802,通过解密模块中的密钥清除器基于清除指令清除密钥选择寄存器中的
密钥选择信号。
92.本公开示例中,spacc中的skp可以通过密钥清除器向密钥选择寄存器输出清除指令。密钥选择寄存器基于接收到的清除指令,对密钥选择信号进行清除。
93.示例性的,若密钥选择器在密钥选择信号为高电平时,选择神经网络模型密钥作为密钥选择结果,在密钥选择信号为低电平时,选择系统安全密钥作为密钥选择结果。当密钥选择寄存器接收到清除指令时,可以将密钥选择信号置为低电平,使得密钥选择器选择系统安全密钥作为密钥选择结果,实现对神经网络模型密钥的清除。本公开实施例提供的解密方法,spacc获得密钥选择结果后,通过密钥清除器对密钥选择寄存器中的信号进行清除,避免神经网络模型密钥长时间处于暴露状态,能够提高神经网络模型密钥的安全性。
94.在上述实施例基础上,本公开再提供一种解密方法,图9为本公开又一示例性实施例提供的神经网络模型加密数据的解密方法的流程示意图,如图9所示,该解密方法包括以下步骤:
95.步骤901,通过解密模块中的第二拦截器获取来自片上系统中处理模块的第二访问请求。
96.其中,处理模块包括片上系统中除解密模块和神经网络处理器之外的模块。本公开实施例提供的解密方法,为了在运行阶段封锁除spacc和神经网络处理器之外的其他处理模块访问ddr的预设地址段,在解密模块中设置第二拦截器,通过该第二拦截器对其他处理模块发送的第二访问请求进行拦截或响应。
97.步骤902,通过第二拦截器基于第二访问请求确定处理模块访问存储器上存储的数据的权限。
98.解密模块中的第二拦截器获取到第二访问请求后,需要判断处理模块待访问的数据是否为ddr预设地址段存储的神经网络模型加密数据。若第二访问请求所访问的数据是需要保密的神经网络模型加密数据,则需要对该第二访问请求进行拦截,禁止处理模块访问该段地址存储的加密数据,通过第二拦截器设置处理模块不具有访问神经网络模块加密数据的权限;若第二访问请求所访问的数据不是需要保密的神经网络模型加密数据,则需要对该第二访问请求进行响应,通过第二拦截器设置处理模块具有访问ddr中除预设地址段之外的其他地址所存储数据的权限。
99.步骤903,响应于处理模块不具有访问存储器上存储的神经网络模型加密数据的权限,通过第二拦截器对第二访问请求进行拦截。
100.当第二拦截器基于第二访问请求确定处理模块不具有访问存储器上存储的神经网络模型加密数据的权限时,对该第二访问请求进行拦截。本公开实施例提供的方法,ddr中预设地址段对soc上除spacc和神经网络处理器之外的其他处理模块进行封锁,使得处理模块无法获得ddr中预设地址段存储的神经网络模型加密数据,能够保证神经网络模型加密数据的安全性。
101.参见图10,该步骤902“通过第二拦截器基于第二访问请求确定处理模块访问存储器上存储的数据的权限”,可以包括以下步骤:
102.步骤9021,通过第二拦截器确定第二访问请求中的访问地址与预设地址段的第二包含关系。
103.本公开实施例中,第二拦截器确定处理模块是否满足访问条件时,可以根据第二
访问请求中的访问地址和预设地址段的包含关系来确定。其中预设地址段为ddr中用于存储神经网络模型加密数据的特定区域。在运行阶段,ddr上该特定区域仅允许来自spacc和神经网络处理器的访问,禁止soc上除spacc和神经网络处理器之外的处理模块的访问,如此在运行阶段确保神经网络模型加密数据的安全性。
104.在一种实现方式中,可以在soc的启动阶段,配置预设地址段于第二拦截器中。在运行阶段,第二拦截器判断第二访问请求中的访问地址是否在预设地址段来确定第二包含关系。
105.第二访问请求中的访问地址与预设地址段的第二包含关系可以包括:预设地址段包含第二访问请求中的访问地址和预设地址段不包含第二访问请求中的访问地址。当第二包含关系为预设地址段包含第二访问请求中的访问地址段时,进入步骤9022;当第二包含关系为预设地址段不包含第二访问请求中的访问地址段时,进入步骤9023。
106.步骤9022,在第二包含关系为预设地址段包含第二访问请求中的访问地址的情况下,通过第二拦截器确定处理模块不具有访问存储器上存储的神经网络模型加密数据的权限。
107.判断第二访问请求的访问地址是否在预设地址段内,若第二访问请求的访问地址在预设地址段内,表明处理模块欲访问ddr中预设地址段中存储的受保护的神经网络模型加密数据,此时确定处理模块不具有访问存储器上存储的神经网络模型加密数据的权限,需要对该第二访问请求进行拦截,阻止处理模块读取预设地址段中存储的受保护的神经网络模型加密数据。
108.本公开实施例中解密模块可以包括第二开关单元,该第二开关单元设置在处理模块和ddr之间,用于对处理模块和ddr之间的通路进行导通或关断。该第二开关单元可以由能够实现开关逻辑功能的电子元件组成。第二拦截器用于控制第二开关单元的导通和关断。
109.在一种实现方式中,步骤903“响应于处理模块不具有访问存储器上存储的神经网络模型加密数据的权限,通过第二拦截器对第二访问请求进行拦截”可以实现为:响应于处理模块不具有访问存储器上存储的神经网络模型加密数据的权限,通过第二拦截器控制存储器与处理模块之间的第二开关单元关断,以对第二访问请求进行拦截。
110.当第二拦截器确定第二访问请求的访问地址在预设地址段时,确定处理模块不满足访问条件,设置处理模块不具有访问神经网络模型加密数据的权限,利用第二拦截器控制第二开关单元关断。第二开关单元关断后,处理模块和ddr之间开路,处理模块无法从ddr的预设地址段读取神经网络模型加密数据,能够保护神经网络模型加密数据的安全性。
111.步骤9023,在第二包含关系为预设地址段不包含第二访问请求中的访问地址的情况下,通过第二拦截器确定处理模块具有访问存储器上存储的非神经网络模型加密数据的权限。
112.判断第二访问请求的访问地址是否在预设地址段内,若第二访问请求的访问地址不在预设地址段内,表明处理模块欲访问ddr中除预设地址段之外的其他地址中存储的其他数据,该其他数据不是受保护的神经网络模型加密数据,此时确定处理模块满足访问条件,设置处理模块具有访问存储器上存储的非神经网络模型加密数据的权限,需要对该第二访问请求进行响应,以使处理模块从ddr其他地址读取其他数据。
113.在一种实现方式中,“响应于处理模块具有访问存储器上存储的数据的权限,通过第二拦截器对第二访问请求进行响应”可以实现为:响应于处理模块具有访问存储器上存储的数据的权限,通过第二拦截器控制存储器与处理模块之间的第二开关单元导通,以使处理模块基于第二访问请求中的访问地址从存储器获取其他数据。
114.当第二拦截器确定第二访问请求的访问地址不在预设地址段时,确定处理模块具有访问存储器存储的其他数据的权限,利用第二拦截器控制第二开关单元导通。第二开关单元导通后,处理模块和ddr之间通路导通,处理模块根据第二访问请求中的访问地址,从ddr中对应的地址读取数据。
115.在上述实施例的基础上,本公开再提供一种解密方法,图11为本公开又一示例性实施例提供的神经网络模型加密数据的解密方法的流程示意图,如图11所示,该解密方法可以包括以下步骤:
116.步骤1101,通过解密模块中的安全协议加速器在存储器中存储解密后的神经网络模型数据。
117.本公开实施例中,解密模块中的spacc基于神经网络模型密钥对神经网络模型加密数据进行解密得到解密后的神经网络模型数据后,可以通过spacc和ddr之间的通路,将解密后的神经网络模型数据存储到ddr中。示例性的,spacc可以将解密后的神经网络模型数据存储到ddr的预设地址段中目标地址,该目标地址为预设地址段中除存储神经网络模型加密数据之外的地址。在运行阶段,预设地址段仅允许神经网络处理器和符合访问条件的spacc访问,将解密后神经网络模型数据存储在预设地址段的目标地址,能够保证解密后的神经网络模型数据的安全性。
118.在另一些实施例中,解密模块中的spacc基于神经网络模型密钥对神经网络模型加密数据进行解密得到解密后的神经网络模型数据后,可以直接通过总线向神经网络处理器传输解密后的神经网络模型数据。
119.步骤1102,通过片上系统中的神经网络处理器获取来自处理器的数据处理任务。
120.步骤1103,通过神经网络处理器,基于存储器中存储的解密后的神经网络模型数据,执行数据处理任务。
121.当soc中的处理器调度神经网络处理器执行某特定的数据处理任务时,神经网络处理器可以从ddr中读取解密模块预先解密并存储的解密后的神经网络模型数据,基于该解密后的神经网络模型数据,执行数据处理任务。
122.在另一些实施例中,当解密模块将解密后的神经网络模型数据通过总线传输时,神经网络处理器直接从总线获取解密后的神经网络模型数据,并执行数据处理任务。
123.本公开实施例提供的神经网络模型加密数据的解密方法,能够实现对ddr中预设地址段存储的神经网络模型加密数据进行解密,在需要执行数据处理任务时,神经网络处理器获取解密后的神经网络模型数据执行数据处理任务,能够在保证神经网络模型加密数据的安全性的前提下,实现任务处理。
124.示例性装置
125.图12为本公开另一示例性实施例提供的片上系统的结构示意图,如图12所示,该片上系统1200包括存储器1201、处理器1202和解密模块1203,所述解密模块1203与所述存储器1201和所述处理器1202耦接。
126.所述存储器1201,用于存储神经网络模型加密数据;
127.所述处理器1202,用于在所述片上系统1200启动后,向所述解密模块1203发送第一访问请求;
128.所述解密模块1203,用于获取来自所述处理器1202的所述第一访问请求;基于所述第一访问请求确定所述解密模块1203具有访问所述神经网络模型加密数据的权限,基于所述第一访问请求中的访问地址,从所述存储器1201获取所述神经网络模型加密数据;确定神经网络模型密钥,并基于所述神经网络模型密钥对所述神经网络模型加密数据进行解密,得到解密后的神经网络模型数据。
129.图13为本公开再一示例性实施例提供的片上系统的结构示意图,如图13所示,所述解密模块1203包括仲裁器12031和安全协议加速器12032,所述仲裁器12031与所述安全协议加速器12032耦接。
130.所述仲裁器12031,用于确定所述第一访问请求中的访问地址与预设地址段的第一包含关系;基于所述第一包含关系,确定所述安全协议加速器12032访问神经网络模型加密数据的权限。
131.在一些示例中,所述仲裁器12031,还用于在所述第一包含关系为所述预设地址段包含所述第一访问请求中的访问地址的情况下,确定所述安全协议加速器12032具有访问神经网络模型加密数据的权限;在所述第一包含关系为所述预设地址段不包含所述第一访问请求中的访问地址的情况下,确定所述安全协议加速器12032不具有访问神经网络模型加密数据的权限。
132.在一些示例中,如图13所示,所述解密模块1203还包括第一拦截器12033和第一开关单元12034,所述第一拦截器12033与所述第一开关单元12034和所述仲裁器12031耦接,所述第一开关单元12034与所述安全协议加速器12032和所述存储器1201耦接;
133.所述第一拦截器12033,用于响应于所述安全协议加速器12032具有访问神经网络模型加密数据的权限,控制所述存储器1201与所述安全协议加速器12032之间的第一开关单元12034导通;
134.所述安全协议加速器12032,用于基于所述第一访问请求中的访问地址,从所述存储器1201获取神经网络模型加密数据。
135.在一些示例中,如图13所示,所述解密模块1203还包括密钥生成单元12035和逻辑单元12036,所述密钥生成单元12035与所述逻辑单元12036和所述处理器1202耦接,所述逻辑单元12036与所述仲裁器12031和所述安全协议加速器12032耦接:
136.所述处理器1202,还用于输出密钥选择信号;
137.所述密钥生成单元12035,用于获取来自所述处理器1202的密钥选择信号,并基于所述密钥选择信号,输出密钥选择结果;
138.所述逻辑单元12036,用于基于所述密钥选择结果和所述安全协议加速器12032的访问权限,输出所述神经网络模型密钥。
139.在一些示例中,如图13所示,所述密钥生成单元12035包括密钥选择寄存器351、密钥生成器352、系统密钥存储器353和密钥选择器354,所述密钥选择寄存器351与所述处理器1202耦接,所述密钥选择器354分别与所述密钥选择寄存器351、所述密钥生成器352、所述系统密钥存储器353和所述逻辑单元12036耦接。
140.所述密钥选择寄存器351,用于获取来自所述处理器1202的密钥选择信号;
141.所述密钥生成器352,用于生成神经网络模型密钥;
142.所述系统密钥存储器353,用于存储系统安全密钥;
143.所述密钥选择器354,用于基于所述密钥选择信号,选择所述系统安全密钥或所述神经网络模型密钥作为所述密钥选择结果,并输出所述密钥选择结果。
144.在一些示例中,所述逻辑单元12036,还用于确定所述密钥选择结果为所述神经网络模型密钥,且所述安全协议加速器12032的访问权限为所述安全协议加速器12032具有访问神经网络模型加密数据的权限,向所述安全协议加速器12032输出所述神经网络模型密钥;
145.所述安全协议加速器12032,还用于基于所述神经网络模型密钥,对所述神经网络模型加密数据进行解密。
146.在一些示例中,所述解密模块1203还包括密钥清除器12037,所述密钥清除器12037与所述安全协议加速器12032和所述密钥选择寄存器351耦接;
147.所述安全协议加速器12032,还用于生成清除指令,并向所述密钥清除器12037发送所述清除指令;
148.所述密钥清除器12037,用于基于所述清除指令清除所述密钥选择寄存器351中的所述密钥选择信号。
149.在一些示例中,如图13所示,所述片上系统1200还包括神经网络处理器1204和处理模块1205,所述处理模块1205包括处理器1202以及所述片上系统1200中除所述解密模块1203和神经网络处理器1204之外的模块。所述解密模块1203还包括第二拦截器12038,所述第二拦截器12038与所述处理模块1205耦接;
150.所述第二拦截器12038,用于获取来自所述片上系统1200中处理模块1205的第二访问请求;基于所述第二访问请求确定所述处理模块1205访问所述存储器1201上存储的数据的权限;响应于所述处理模块1205不具有访问所述存储器1201上存储的神经网络模型加密数据的权限,对所述第二访问请求进行拦截。
151.在一些示例中,如图13所示,所述解密模块1203还包括设置在所述存储器1201和所述处理模块1205之间的第二开关单元12039,所述第二开关单元12039分别与所述处理模块1205、所述第二拦截器12038和所述存储器1201耦接;
152.所述第二拦截器12038,还用于确定所述第二访问请求中的访问地址与预设地址段的第二包含关系;在所述第二包含关系为所述预设地址段包含所述第二访问请求中的访问地址的情况下,确定所述处理模块1205不具有访问所述存储器1201上存储的神经网络模型加密数据的权限。
153.在一些示例中,所述第二拦截器12038,还用于响应于所述处理模块1205不具有访问所述存储器1201上存储的神经网络模型加密数据的权限,控制所述存储器1201与所述处理模块1205之间的第二开关单元12039关断,以对所述第二访问请求进行拦截。
154.在一些示例中,所述安全协议加速器12031,还用于在所述存储器1201中存储所述解密后的神经网络模型数据;
155.所述处理器1202,还用于向所述神经网络处理器1204发送数据处理任务;
156.所述神经网络处理器1204,还用于获取来自所述处理器1202的数据处理任务;
157.所述神经网络处理器1204,还用于基于所述存储器1201中存储的所述解密后的神经网络模型数据,执行所述数据处理任务。
158.图14为本公开又一示例性实施例提供的片上系统的结构示意图,下面结合图14对本公开实施例提供的解密方法和片上系统进行说明。
159.在soc启动阶段,安全协议加速器spacc无需对神经网络模型加密数据进行解密。soc启动完成进入运行阶段后,在cpu运行主程序的过程中,当cpu需要调度某硬件加速器处理某特定任务时,cpu通过先进先出(first input first output,fifo)存储器输出第一访问请求,该第一访问请求中携带有第一访问地址。
160.仲裁器基于第一访问地址确定是否对spacc授权访问权限。在一种示例中,仲裁器可以根据预设地址段和第一访问地址生成信号signal 1,根据signal1的电平高低来确定是否对spacc授予访问权限。在一种实现方式中,可以在soc的启动阶段,配置低地址寄存器暂存ddr中预设地址段(如图14的ddr中的阴影段)的低位地址,配置高地址寄存器暂存ddr中预设地址段的高位地址,根据低地址寄存器中的低位地址和高地址寄存器中的高位地址设置spacc可以访问的预设地址段。仲裁器接收到第一访问请求后,判断预设地址段是否包含第一访问请求中的第一访问地址。
161.当预设地址段包含第一访问地址,表明第一访问地址待访问的数据是存储在ddr预设地址段的神经网络模型加密数据,即spacc需要从预设地址段读取神经网络模型加密数据,此时仲裁器需要对spacc授予访问预设地址段的权限。仲裁器生成高电平的signal 1,拦截spacc寄存器根据仲裁器输出的高电平的signal 1,对spacc和ddr之间的第一开关单元1401进行导通,使得spacc获得访问预设地址段的权限。spacc通过导通的第一开关单元1401,从ddr的第一访问地址读取神经网络模型加密数据。
162.当预设地址段不包含第一访问地址,表明第一访问地址待访问的数据不是存储在ddr预设地址段的神经网络模型加密数据,即spacc读取的不是神经网络模型加密数据,此时仲裁器无需对spacc授予访问预设地址段的权限。仲裁器生成低电平的signal 1,拦截spacc寄存器根据仲裁器输出的低电平的signal 1,对spacc和ddr之间的第一开关单元1401进行关断,使得spacc不具有访问预设地址段的权限,即禁止spacc访问预设地址段存储的神经网络模型加密数据。由于第一开关单元1401处于关断状态,spacc和ddr预设地址段之间的通路未导通,spacc无法从预设地址段读取神经网络模型加密数据,确保神经网络模型加密数据的安全性。
163.本公开实施例中,通过判断访问地址是否在预设地址段内,来确定spacc待访问的数据是否为神经网络模型加密数据,当访问地址在预设地址段内时,才对spacc授予访问权限,允许spacc访问预设地址段以读取神经网络模型加密数据,否则,禁止spacc访问预设地址段以禁止读取神经网络模型加密数据,如此实现在运行阶段对神经网络模型加密数据进行保护。
164.spacc具有从ddr的预设地址段访问神经网络模型加密数据的权限后,还需要获得神经网络模型密钥才能对该神经网络模型加密数据进行解密。本公开实施例中,为了确保神经网络模型密钥不被窃取,cpu在发送第一访问请求时,向密钥选择寄存器输出密钥选择信号。密钥选择寄存器通过密钥选择信号使能密钥选择器,以使密钥选择器在神经网络模型密钥和系统安全密钥之间选择神经网络模型密钥作为密钥选择结果进行输出。当仲裁器
输出的signal 1为高电平、且密钥选择结果为神经网络模型密钥时,spacc获得神经网络模型密钥。spacc根据神经网络模型密钥,对读取的神经网络模型加密数据进行解密,得到解密后的神经网络模型数据。
165.当仲裁器输出的signal 1为高电平、且密钥选择结果为系统安全密钥时,spacc无法获得神经网络模型密钥,此时spacc无法成功地对神经网络模型加密数据进行解密。当仲裁器输出的signal 1为低电平、且密钥选择结果为神经网络模型密钥时,spacc获得神经网络模型密钥,此时spacc虽然获得了神经网络模型密钥,但无法从ddr的预设地址段读取到神经网络模型加密数据,还是无法成功地对神经网络模型加密数据进行解密。当仲裁器输出的signal 1为低电平、且密钥选择结果为系统安全密钥时,spacc无法获得神经网络模型密钥,此时spacc既没有获得神经网络模型加密数据,也没有获得神经网络模型密钥,必然无法成功地对神经网络模型加密数据进行解密。
166.本公开实施例中,只有当第一访问地址在预设地址段内、且密钥选择器输出神经网络模型密钥时,spacc才能同时获得神经网络模型加密数据和神经网络模型密钥,进而spacc才能基于神经网络模型密钥对神经网络模型加密数据进行解密获得解密后的神经网络模型数据;否则,当第一访问地址不在预设地址段内或者密钥选择器输出的是系统安全密钥时,spacc由于无法同时获得神经网络模型加密数据和神经网络模型密钥无法进行解密。通过限制spacc获得神经网路模型密钥和神经网络模型加密数据的方式,实现在保证神经网络模型加密数据的安全性的前提下,在运行阶段对神经网络模型加密数据进行解密,从而缩短soc启动时长、实现灵活解密。
167.本公开实施例中,spacc根据神经网络模型密钥对神经网络模型加密数据进行解密后,可以将得到的解密后的神经网络模型数据传输至cpu需要调度的某硬件加速器,以使该硬件加速器处理某特定任务;spacc也可以将解密后的神经网络模型数据写回ddr中,硬件加速器从ddr中读取解密后的神经网络模型数据以执行特定任务。
168.本公开实施例中,cpu可以通过fifo向spacc发送多个访问请求,该多个访问请求携带的访问地址,可以对应ddr预设地址段中的不同地址,各地址可以用于存储不同的神经网络模型加密数据,如此可以结合需求,每次只需对需要的神经网络模型加密数据进行解密,无需一次性地对所有神经网络模型加密数据进行解密,能够提高解密灵活性。
169.本公开实施例中,神经网络密钥可以由密钥生成器基于从一次性可编程存储器(electronic fuse,efuse)中读取的数据生成的,由于efuse具有一次性写入数据且破解难度大的特点,因此能够避免数据被篡改,确保密钥生成器读入数据是正确的,进而确保密钥生成器生成的神经网络密钥是正确的,从而确保神经网络密钥数据的正确性和安全性。
170.本公开实施例中,密钥选择器mux的使能端耦接密钥选择寄存器的输出端,密钥选择器mux的第一输入端耦接密钥生成器的输出端,密钥选择器mux的第二输入端耦接系统安全密钥寄存器的输出端。密钥选择器mux可以在密钥选择信号为高电平时选择神经网络模型密钥作为密钥选择结果进行输出,在密钥选择信号为低电平时选择系统安全密钥作为密钥选择结果进行输出。系统安全密钥可以是系统安全密钥寄存器预先读取并暂存的密钥,该系统安全密钥可以用于对除神经网络模型加密数据之外的其他数据进行解密,本公开实施例不作限定。
171.本公开实施例中,为了进一步确保神经网络模型密钥不被泄漏,在spacc中设置安
全密钥端口(secure key port,skp),spacc中的skp一旦接收到密钥选择结果,无论该密钥选择结果是否为神经网络模型密钥,在密钥选择结果信号传输完成后,都会向密钥选择寄存器输出用于清除密钥选择信号的清除指令。如图14所示,skp可以通过密钥清除寄存器(又称为密钥清除器)向密钥选择寄存器输出清除指令,密钥选择寄存器基于接收到的清除指令,对密钥选择信号进行清除,例如将高电平的密钥选择信号设置为低电平,使得密钥选择器mux选择系统安全密钥作为密钥选择结果。本公开实施例提供的片上系统,spacc获得密钥选择结果后,通过密钥清除寄存器立即对密钥选择寄存器中的信号进行清除,能够提高神经网络模型密钥的安全性。
172.参见图14,本公开实施例中,通过拦截其他模块寄存器,对soc上除spacc模块和神经网络处理器模块之外的其他模块进行封锁拦截。当其他模块(例如cpu、isp等)发送的第二访问请求中的第二访问地址指向ddr的预设地址段时,通过拦截其他模块寄存器控制第二开关单元1402关断,其他模块和ddr预设地址段之间的通过未导通,使得其他模块无法从预设地址段读取神经网络模型加密数据,确保神经网络模型加密数据的安全性。
173.本公开实施例提供的片上系统,在保证神经网络模型数据安全隐私的前提下,在启动阶段无需执行解密操作,能够缩短soc启动时长;在运行阶段可以支持多次解密,而且每次执行解密操作时,可以只对本次有需求的神经网络模型加密数据进行解密,能够实现灵活解密;另外,在运行阶段解密,bl2子阶段的全部代码可以公开,有利于二次开发。
174.需要指出的是:以上装置示例性实施例项的描述,与上述方法描述是类似的,具有同方法对应的示例性实施例相同的有益效果。对于本公开装置示例性实施例中未披露的技术细节以及相应有益技术效果,本领域的技术人员请参照本公开方法示例性实施例的描述而理解,在此不再赘述。
175.示例性电子设备
176.图15为本公开一示例性实施例提供的电子设备的结构示意图,如图15所示,所述电子设备1500包括至少一个处理器1501和存储器1502。
177.处理器1501可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备1500中的其他组件以执行期望的功能。
178.存储器1502可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器1501可以运行一个或多个计算机程序指令,以实现上文中本公开的各个实施例的神经网络模型加密数据的解密方法和/或其他期望的功能。
179.在一个示例中,电子设备1500还可以包括:输入装置1503和输出装置1504,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
180.该输入装置1503还可以包括例如键盘、鼠标等等。
181.该输出装置1504可以向外部输出各种信息,其可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
182.当然,为了简化,图15中仅示出了该电子设备1500中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备
1500还可以包括任何其他适当的组件。
183.示例性计算机程序产品和计算机可读存储介质
184.除了上述方法和设备以外,本公开的实施例还可以提供一种计算机程序产品,包括计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行上述“示例性方法”部分中描述的本公开各种实施例的神经网络模型加密数据的解密方法中的步骤。
185.计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
186.此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行上述“示例性方法”部分中描述的本公开各种实施例的神经网络模型加密数据的解密方法中的步骤。
187.计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如但不限于包括电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
188.以上结合具体实施例描述了本公开的基本原理,但是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为其是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
189.本领域的技术人员可以对本公开进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
技术特征:
1.一种神经网络模型加密数据的解密方法,包括:在片上系统启动后,通过所述片上系统中的解密模块获取来自所述片上系统中处理器的第一访问请求;通过所述解密模块基于所述第一访问请求确定所述解密模块访问神经网络模型加密数据的权限;响应于所述解密模块具有访问神经网络模型加密数据的权限,基于所述第一访问请求中的访问地址,通过所述解密模块从所述片上系统中的存储器获取所述神经网络模型加密数据;通过所述解密模块确定神经网络模型密钥,并基于所述神经网络模型密钥对所述神经网络模型加密数据进行解密,得到解密后的神经网络模型数据。2.根据权利要求1所述的方法,其中,所述通过所述解密模块基于所述第一访问请求确定所述解密模块访问神经网络模型加密数据的权限,包括:通过所述解密模块中的仲裁器确定所述第一访问请求中的访问地址与预设地址段的第一包含关系;基于所述第一包含关系,通过所述仲裁器确定所述解密模块中的安全协议加速器访问神经网络模型加密数据的权限。3.根据权利要求2所述的方法,其中,所述基于所述第一包含关系,通过所述仲裁器确定所述解密模块中的安全协议加速器访问神经网络模型加密数据的权限,包括:在所述第一包含关系为所述预设地址段包含所述第一访问请求中的访问地址的情况下,通过所述仲裁器确定所述解密模块中的安全协议加速器具有访问神经网络模型加密数据的权限;在所述第一包含关系为所述预设地址段不包含所述第一访问请求中的访问地址的情况下,通过所述仲裁器确定所述解密模块中的安全协议加速器不具有访问神经网络模型加密数据的权限。4.根据权利要求3所述的方法,其中,所述响应于所述解密模块具有访问神经网络模型加密数据的权限,基于所述第一访问请求中的访问地址,通过所述解密模块从所述片上系统中的存储器获取所述神经网络模型加密数据,包括:响应于所述安全协议加速器具有访问神经网络模型加密数据的权限,通过所述解密模块中的第一拦截器控制所述存储器与所述安全协议加速器之间的第一开关单元导通;基于所述第一访问请求中的访问地址,通过所述安全协议加速器从所述存储器获取所述神经网络模型加密数据。5.根据权利要求1所述的方法,其中,所述通过所述解密模块确定神经网络模型密钥,包括:通过所述解密模块中的密钥生成单元获取来自所述处理器的密钥选择信号,并基于所述密钥选择信号,输出密钥选择结果;基于所述密钥选择结果和所述解密模块中的安全协议加速器访问神经网络模型加密数据的权限,通过所述解密模块中的逻辑单元输出所述神经网络模型密钥。6.根据权利要求5所述的方法,其中,所述通过所述解密模块中的密钥生成单元获取来自所述处理器的密钥选择信号,并基于所述密钥选择信号,输出密钥选择结果,包括:
通过所述密钥生成单元中的密钥选择寄存器获取来自所述处理器的密钥选择信号;基于所述密钥选择信号,通过所述密钥生成单元中的密钥选择器选择系统安全密钥或所述神经网络模型密钥作为所述密钥选择结果,所述神经网络模型密钥由所述密钥生成单元中的密钥生成器生成;通过所述密钥选择器输出所述密钥选择结果。7.根据权利要求6所述的方法,其中,所述基于所述密钥选择结果和所述解密模块中的安全协议加速器访问神经网络模型加密数据的权限,通过所述解密模块中的逻辑单元输出所述神经网络模型密钥,包括:确定所述密钥选择结果为所述神经网络模型密钥,且所述安全协议加速器具有访问神经网络模型加密数据的权限,通过所述逻辑单元向所述安全协议加速器输出所述神经网络模型密钥,以使所述安全协议加速器基于所述神经网络模型密钥,对所述神经网络模型加密数据进行解密。8.根据权利要求6或7所述的方法,还包括:通过所述安全协议加速器生成清除指令;通过所述解密模块中的密钥清除器基于所述清除指令清除所述密钥选择寄存器中的所述密钥选择信号。9.根据权利要求1-7中任一项所述的方法,还包括:通过所述解密模块中的第二拦截器获取来自所述片上系统中处理模块的第二访问请求;其中,所述处理模块包括所述片上系统中除所述解密模块和神经网络处理器之外的模块;通过所述第二拦截器基于所述第二访问请求确定所述处理模块访问所述存储器上存储的数据的权限;响应于所述处理模块不具有访问所述存储器上存储的神经网络模型加密数据的权限,通过所述第二拦截器对所述第二访问请求进行拦截。10.根据权利要求9所述的方法,其中,所述通过所述第二拦截器基于所述第二访问请求确定所述处理模块访问所述存储器上存储的数据的权限,包括:通过所述第二拦截器确定所述第二访问请求中的访问地址与预设地址段的第二包含关系;在所述第二包含关系为所述预设地址段包含所述第二访问请求中的访问地址的情况下,通过所述第二拦截器确定所述处理模块不具有访问所述存储器上存储的神经网络模型加密数据的权限。11.根据权利要求10所述的方法,其中,所述响应于所述处理模块不具有访问所述存储器上存储的神经网络模型加密数据的权限,通过所述第二拦截器对所述第二访问请求进行拦截,包括:响应于所述处理模块不具有访问所述存储器上存储的神经网络模型加密数据的权限,通过所述第二拦截器控制所述存储器与所述处理模块之间的第二开关单元关断,以对所述第二访问请求进行拦截。12.根据权利要求1-7中任一项所述的方法,还包括:通过所述解密模块中的安全协议加速器在所述存储器中存储所述解密后的神经网络
模型数据;通过所述片上系统中的神经网络处理器获取来自所述处理器的数据处理任务;通过所述神经网络处理器,基于所述存储器中存储的所述解密后的神经网络模型数据,执行所述数据处理任务。13.一种片上系统,包括:存储器、处理器以及与所述存储器和所述处理器耦接的解密模块;所述存储器,用于存储神经网络模型加密数据;所述处理器,用于在所述片上系统启动后,向所述解密模块发送第一访问请求;所述解密模块,用于获取来自所述处理器的所述第一访问请求;基于所述第一访问请求确定所述解密模块具有访问所述神经网络模型加密数据的权限,基于所述第一访问请求中的访问地址,从所述存储器获取所述神经网络模型加密数据;确定神经网络模型密钥,并基于所述神经网络模型密钥对所述神经网络模型加密数据进行解密,得到解密后的神经网络模型数据。14.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-12中任一所述的神经网络模型加密数据的解密方法。15.一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述指令,并执行所述指令以实现上述权利要求1-12中任一所述的神经网络模型加密数据的解密方法。
技术总结
公开了一种神经网络模型加密数据的解密方法、片上系统及电子设备,该解密方法包括:在片上系统启动后,获取来自处理器的第一访问请求;基于第一访问请求确定解密模块访问神经网络模型加密数据的权限;响应于解密模块具有访问神经网络模型加密数据的权限,基于第一访问请求中的访问地址,从存储器获取神经网络模型加密数据;确定神经网络模型密钥,并基于神经网络模型密钥对神经网络模型加密数据进行解密,得到解密后的神经网络模型数据。本公开在保证神经网络模型数据安全隐私的前提下,在启动阶段省略解密操作,在运行阶段执行解密操作,能够缩短片上系统启动时长,实现灵活解密。实现灵活解密。实现灵活解密。
技术研发人员:李思琪 时朝辉
受保护的技术使用者:北京地平线信息技术有限公司
技术研发日:2023.06.13
技术公布日:2023/9/6
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
