本申请涉及人工智能领域,例如涉及一种模型数据的载入方法、装置、设备和存储介质。
背景技术:
随着人工智能(artificialintelligence,简称ai)技术的发展,许多服务提供者都致力于研发出各种各样的ai模型以满足用户在各个方面的需求。目前ai模型需要搭载在相应的运行平台上(比如芯片),借助运行平台上的硬件才能运行,但是由于现有的运行平台上没有提供相应的技术来阻止ai模型在载入运行平台的过程中遭受攻击,使得ai模型在载入运行平台时很容易被攻击,进而威胁到ai模型的准确性和安全,服务提供者和用户也很容易因此遭受到巨大的损失。
上述背景技术内容仅用于帮助理解本申请,而并不代表承认或认可所提及的任何内容属于相对于本申请的公知常识的一部分。
技术实现要素:
本申请实施例提供一种模型数据的载入方法、装置、设备和存储介质,用以防止模型数据在载入运行平台过程中被攻击,提高模型数据载入的准确性和安全性。
本申请实施例第一方面提供了一种模型数据的载入方法,包括:获取待载入模型对应的第一模型数据和密码,并基于预存的密钥派生函数以及所述密码生成第一密钥;采用所述第一密钥对所述第一模型数据进行加密处理,得到加密后的第二模型数据,并生成包括所述密码和所述第二模型数据的第一数据块;将所述第一数据块载入运行平台,以使所述运行平台在获取到所述第一数据块后,从所述第一数据块中解密获得所述第一模型数据。
本申请实施例第二方面提供了一种模型载入方法,包括:获取模型数据载入装置载入的第一数据块,所述第一数据块中包括密码,以及第一模型数据经过第一密钥加密后得到的第二模型数据,其中所述第一密钥是基于密钥派生函数和所述密码生成的;基于预存的所述密钥派生函数和所述密码生成所述第一密钥;基于所述第一密钥对所述第二模型数据进行解密,得到第一模型数据。
本申请实施例第三方面提供了一种模型数据载入装置,包括:处理器和存储器,所述存储器中存储有指令,当所述处理器执行所述指令时,执行如下方法:获取待载入模型对应的第一模型数据和密码,并基于预存的密钥派生函数以及所述密码生成第一密钥;采用所述第一密钥对所述第一模型数据进行加密处理,得到加密后的第二模型数据,并生成包括所述密码和所述第二模型数据的第一数据块;将所述第一数据块载入运行平台,以使所述运行平台在获取到所述第一数据块后,从所述第一数据块中解密获得所述第一模型数据。
本申请实施例第四方面提供一种运行平台,包括处理器和存储器,所述存储器中存储有指令,当所述处理器执行所述指令时,执行如下方法:获取模型数据载入装置载入的第一数据块,所述第一数据块中包括密码,以及第一模型数据经过第一密钥加密后得到的第二模型数据,其中所述第一密钥是基于密钥派生函数和所述密码生成的;基于预存的所述密钥派生函数和所述密码生成所述第一密钥;基于所述第一密钥对所述第二模型数据进行解密,得到第一模型数据。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述第一方面和第二方面的方法。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述第一方面和第二方面的方法。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,附图不构成比例限制,并且其中:
图1是本申请实施例适用的一种应用场景的示意图;
图2是本申请实施例提供的一种模型数据的载入方法的流程图;
图3是本申请实施例提供的一种模型数据的载入方法的流程图;
图4是本申请实施例提供的一种模型载入方法的流程图;
图5是本申请实施例提供的一种模型数据载入装置的结构示意图;
图6是本申请实施例提供的一种运行平台的结构示意图。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
图1是本申请实施例适用的一种应用场景的示意图,如图1所示,目前模型数据通常需要通过模型载入装置10(例如计算机、平板电脑等)载入运行平台11(比如,芯片、服务器等),以使模型数据能够借助运行平台11的硬件在运行平台11上运行。但是目前尚没有技术方案能够在载入过程中针对模型数据进行专门的保护,使得模型数据在载入运行平台11的过程中很容易遭到攻击,并对模型数据的准确性和安全性造成危害。
针对现有技术存在的上述缺陷,本申请实施例提供了一种保护机制,用以在模型数据的载入过程中对模型数据进行保护,避免模型数据被攻击、破坏,从而提高模型数据的准确性和安全性。
下面结合示例性的实施例来对本申请技术方案进行详细的陈述。
图2是本申请实施例提供的一种模型数据的载入方法的流程图,该方法适用的场景是将训练得到的模型的数据加载到运行平台上,使得运行平台在运行该数据后能够实现该模型的功能。本实施例的方法可以由一种模型数据载入装置来执行,如图2所示,该方法包括:
步骤101、获取待载入模型对应的第一模型数据和密码,并基于预存的密钥派生函数以及所述密码生成第一密钥。
其中,在一种可能的设计中,第一模型数据可示例性的理解为待载入的模型的全部原始数据,该数据在模型数据载入装置侧没有经过相应的转换处理,不能够直接在运行平台上运行。相应的,在此种设计中运行平台在获得第一模型数据后,还需要将第一模型数据转换成可以在该运行平台上运行的数据。
在另一种可能的设计中,第一模型数据还可示例性的理解为待载入模型的原始数据经过相应转换处理后所得到的能够直接在运行平台上运行的数据。在此种设计中,模型数据载入装置在获取到待载入模型的数据后,需要对该数据进行转换处理,得到能够在运行平台上运行的第一模型数据。并且由于第一模型数据已经可以在运行平台上运行了,因此,运行平台在获取到第一模型数据后无需再对第一模型数据进行转换处理。
本实施例中所称的“密码”可以是预先设定的统一密码,所有待载入的模型都对应同一个密码,或者本实施例中的密码也可以是模型数据载入装置为待载入的模型随机生成的密码,又或者该密码还可以是用户预先为待载入模型设置的密码。在后两种情况中,不同的待载入的模型可能对应不同的密码。为了方便描述本实施例中的密码可以示例性的理解为上述第二种情况中随机生成的密码。
本实施例中的涉及的密钥派生函数为模型数据载入装置和运行平台预先约定的派生函数,模型数据载入装置根据密钥派生函数和密码生成用于对第一模型数据进行加密的第一密钥,在另一端,运行平台利用密钥派生函数生成第一密钥进行解密,也就是说本实施例中的第一密钥无需直接传输给运行平台。由于密钥派生函数为模型数据载入装置和运行平台之间约定的函数,其他设备无法获得,提高了加密的可靠性。
本实施例中对于“第一密钥”的命名仅是用于将基于密钥派生函数和上述密码生成的密钥与本实施例中涉及的其他密钥进行区分,而不具备其他含义。
步骤102、采用所述第一密钥对所述第一模型数据进行加密处理,得到加密后的第二模型数据,并生成包括所述密码和所述第二模型数据的第一数据块。
步骤103、将所述第一数据块载入运行平台,以使所述运行平台在获取到所述第一数据块后,从所述第一数据块中解密获得所述第一模型数据。
其中,将第一数据块载入运行平台的方法有多种:
在一种可能的实现方法中,可以直接将第一数据块载入运行平台,即在此方法中,第一数据块在载入运行平台之前不进行其他加密处理和/或数据签名,而是直接将第一数据块载入运行平台。此时运行平台在接收到第一数据块后直接从第一数据块中获取密码,并根据预先约定并存储的密钥派生函数生成上述第一密钥,通过第一密钥对第一数据块中携带的第二模型数据进行解密,获得第一模型数据。
在另一种可能的实现方法中,在第一数据块载入运行平台之前,模型数据载入装置还需要再次对第一数据块进行加密和/或签名,并将处理后的数据块发送给运行平台,运行平台接收到数据块后,按照加密顺序的相反顺序执行解密,获得第一模型数据。
本实施例,通过获取待载入模型对应的第一模型数据和密码,并基于该密码和预存的密钥派生函数生成第一密钥,采用第一密钥对第一模型数据进行加密处理得到第二模型数据,生成包括密码和第二模型数据的第一数据块,将第一数据块载入运行平台,使得运行平台在获取到第一数据块后,能够基于第一数据块中的密码以及预存的和上述相同的密钥派生函数生成第一密钥,采用第一密钥解密获得第一模型数据。由于本实施例中第一模型数据在载入运行平台之前先经过了第一密钥的加密,并且用于生成第一密钥的密钥派生函数是模型数据载入装置与运行平台预先约定并存储的,其他设备或者用户无法获得,因而能够保证第一模型数据在载入运行平台的过程中不会被篡改,提高了模型数据载入的准确性和安全性。
下面结合具体的实施例对上述技术方案进行进一步的扩展和优化。
图3是本申请实施例提供的一种模型数据的载入方法的流程图,如图3所示,在上述实施例的基础上,该方法包括如下步骤:
步骤201、获取待载入模型对应的第一模型数据和密码,并基于预存的密钥派生函数以及所述密码生成第一密钥。
步骤202、采用所述第一密钥对所述第一模型数据进行加密处理,得到加密后的第二模型数据,并生成包括所述密码和所述第二模型数据的第一数据块。
步骤203、采用预存的私钥对所述第一数据块进行签名,得到第二数据块。
步骤204、将所述第二数据块载入运行平台,以使所述运行平台在获取到所述第二数据块后,从所述第二数据块中解密获得所述第一模型数据。
在本实施例中第一数据块需要经过模型数据载入装置的私钥签名后才能执行进一步的载入操作。具体的,在一种可能的设计中,可以直接将签名后得到的第二数据块载入运行平台,运行平台在获得第二数据块后先根据模型数据载入装置的公钥对第二数据块进行验证获得第一数据块,进一步的再采用与前述实施例类似方法,从第一数据块中解密获得第一模型数据。在另一种可能的场景中,在签名得到第二数据块后,还可以采用预存的第二密钥对第二数据块进行加密,将加密后得到的第三数据块载入运行平台,运行平台按照上述加密顺序的相反顺序进行解密。或者在其他实施例中,还可以在前一种情况的基础上,再执行一次或多次加密,其过程与前一种情况类似在这里不再赘述。当然前述几种场景仅为示例说明而不是对本申请的唯一限定,比如,在实际场景中,还可以在得到第一数据块后,直接采用预设的一个或多个密钥对第一数据块进行一次或多次加密,并将加密后的数据块载入运行平台,而不对数据块进行签名操作。
本实施例,通过对包括第一模型数据的数据块进行加密和签名双重处理,能够在确保模型数据数据安全性的同时确保模型数据的正确性。
图4是本申请实施例提供的一种模型载入方法的流程图,如图4所示,该方法包括:
步骤301、获取模型数据载入装置载入的第一数据块,所述第一数据块中包括密码,以及第一模型数据经过第一密钥加密后得到的第二模型数据,其中所述第一密钥是基于密钥派生函数和所述密码生成的。
步骤302、基于预存的所述密钥派生函数和所述密码生成所述第一密钥。
步骤303、基于所述第一密钥对所述第二模型数据进行解密,得到第一模型数据。
在一种可能的设计中,所述获取模型数据载入装置载入的第一数据块,包括:
获取模型数据载入装置载入的第二数据块,所述第二数据块为所述第一数据块经过模型数据载入装置的私钥签名后得到的;基于预存的所述私钥对应的公钥对所述第二数据块进行验证,获得所述第一数据块。
在一种可能的设计中,所述获取第二数据块,包括:获取所述模型数据载入装置载入的第三数据块,所述第三数据块是所述第二数据块经过第二密钥加密后得到的;采用预存的所述第二密钥对所述第三数据块进行解密,获得所述第二数据块。
在一种可能的设计中,所述第一模型数据是所述模型数据载入装置基于待载入的模型的数据转换得到的用于在运行平台上运行的模型数据。
在一种可能的设计中,所述密码是所述模型数据载入装置随机生成的与所述第一模型数据对应的密码。
本实施例的执行方式和有益效果与前述实施例类似,在这里不再赘述。
图5是本申请实施例提供的一种模型数据载入装置的结构示意图,如图5所示,模型载入装置50包括:处理器51和存储器52,所述存储器52中存储有指令,当所述处理器51执行所述指令时,执行如下方法:获取待载入模型对应的第一模型数据和密码,并基于预存的密钥派生函数以及所述密码生成第一密钥;采用所述第一密钥对所述第一模型数据进行加密处理,得到加密后的第二模型数据,并生成包括所述密码和所述第二模型数据的第一数据块;将所述第一数据块载入运行平台,以使所述运行平台在获取到所述第一数据块后,从所述第一数据块中解密获得所述第一模型数据。
在一种可能的设计中,所述处理器51在将所述第一数据块载入运行平台,以使所述运行平台在获取到所述第一数据块后,从所述第一数据块中解密获得所述第一模型数据时,具体用于:采用预存的私钥对所述第一数据块进行签名,得到第二数据块;将所述第二数据块载入运行平台,以使所述运行平台在获取到所述第二数据块后,从所述第二数据块中解密获得所述第一模型数据。
在一种可能的设计中,所述处理器51在将所述第二数据块载入运行平台,以使所述运行平台在获取到所述第二数据块后,从所述第二数据块中解密获得所述第一模型数据时,具体用于:采用预存的第二密钥对所述第二数据块进行加密,得到第三数据块;将所述第三数据块载入运行平台,以使所述运行平台在获取到所述第三数据块后,从所述第三数据块中解密获得所述第一模型数据。
在一种可能的设计中,所述处理器51在获取待载入模型对应的第一模型数据时,具体用于:获取待载入的模型的数据;将所述待载入的模型的数据转换成用于在所述运行平台上运行的第一模型数据。
在一种可能的设计中,所述处理器51在获取待载入模型对应的第一模型数据和密码时,具体用于:获取待载入模型对应的第一模型数据,随机生成与所述第一模型数据对应的密码。
本申请实施例提供的装置能够用于执行上述图2或图3所示实施例的方法,其执行方式和有益效果类似,在这里不再赘述。
图6是本申请实施例提供的一种运行平台的结构示意图,如图6所示,运行平台60,包括处理器61和存储器62,存储器62中存储有指令,当所述处理器61执行所述指令时,执行如下方法:获取模型数据载入装置载入的第一数据块,所述第一数据块中包括密码,以及第一模型数据经过第一密钥加密后得到的第二模型数据,其中所述第一密钥是基于密钥派生函数和所述密码生成的;基于预存的所述密钥派生函数和所述密码生成所述第一密钥;基于所述第一密钥对所述第二模型数据进行解密,得到第一模型数据。
在一种可能的设计中,所述处理器61在获取模型数据载入装置载入的第一数据块时,具体用于:获取模型数据载入装置载入的第二数据块,所述第二数据块为所述第一数据块经过模型数据载入装置的私钥签名后得到的;基于预存的所述私钥对应的公钥对所述第二数据块进行验证,获得所述第一数据块。
在一种可能的设计中,所述处理器61在获取第二数据块时,具体用于:获取所述模型数据载入装置载入的第三数据块,所述第三数据块是所述第二数据块经过第二密钥加密后得到的;采用预存的所述第二密钥对所述第三数据块进行解密,获得所述第二数据块。
在一种可能的设计中,所述第一模型数据是所述模型数据载入装置基于待载入的模型的数据转换得到的用于在运行平台上运行的模型数据。
在一种可能的设计中,所述密码是所述模型数据载入装置随机生成的与所述第一模型数据对应的密码。
本实施例提供的运行平台能够用于执行图4实施例的方法,其执行方式和友谊效果类似,在这里不再赘述。
本申请实施例还提供计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述的模型数据载入方法。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述模型数据载入方法。
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
本申请实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
当用于本申请中时,虽然术语“第一”、“第二”等可能会在本申请中使用以描述各元件,但这些元件不应受到这些术语的限制。这些术语仅用于将一个元件与另一个元件区别开。比如,在不改变描述的含义的情况下,第一元件可以叫做第二元件,并且同样第,第二元件可以叫做第一元件,只要所有出现的“第一元件”一致重命名并且所有出现的“第二元件”一致重命名即可。第一元件和第二元件都是元件,但可以不是相同的元件。
本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。
所描述的实施例中的各方面、实施方式、实现或特征能够单独使用或以任意组合的方式使用。所描述的实施例中的各方面可由软件、硬件或软硬件的结合实现。所描述的实施例也可以由存储有计算机可读代码的计算机可读介质体现,该计算机可读代码包括可由至少一个计算装置执行的指令。所述计算机可读介质可与任何能够存储数据的数据存储装置相关联,该数据可由计算机系统读取。用于举例的计算机可读介质可以包括只读存储器、随机存取存储器、cd-rom、hdd、dvd、磁带以及光数据存储装置等。所述计算机可读介质还可以分布于通过网络联接的计算机系统中,这样计算机可读代码就可以分布式存储并执行。
上述技术描述可参照附图,这些附图形成了本申请的一部分,并且通过描述在附图中示出了依照所描述的实施例的实施方式。虽然这些实施例描述的足够详细以使本领域技术人员能够实现这些实施例,但这些实施例是非限制性的;这样就可以使用其它的实施例,并且在不脱离所描述的实施例的范围的情况下还可以做出变化。比如,流程图中所描述的操作顺序是非限制性的,因此在流程图中阐释并且根据流程图描述的两个或两个以上操作的顺序可以根据若干实施例进行改变。作为另一个例子,在若干实施例中,在流程图中阐释并且根据流程图描述的一个或一个以上操作是可选的,或是可删除的。另外,某些步骤或功能可以添加到所公开的实施例中,或两个以上的步骤顺序被置换。所有这些变化被认为包含在所公开的实施例以及权利要求中。
另外,上述技术描述中使用术语以提供所描述的实施例的透彻理解。然而,并不需要过于详细的细节以实现所描述的实施例。因此,实施例的上述描述是为了阐释和描述而呈现的。上述描述中所呈现的实施例以及根据这些实施例所公开的例子是单独提供的,以添加上下文并有助于理解所描述的实施例。上述说明书不用于做到无遗漏或将所描述的实施例限制到本申请的精确形式。根据上述教导,若干修改、选择适用以及变化是可行的。在某些情况下,没有详细描述为人所熟知的处理步骤以避免不必要地影响所描述的实施例。