首页> 中国专利> 一种应用发布、使用方法、AI模型发布方法以及装置

一种应用发布、使用方法、AI模型发布方法以及装置

摘要

一种应用发布、使用方法、AI模型发布方法以及装置。本申请中,应用所有方能够基于使用方发送的应用授权请求,对该应用授权请求中的第一签名信息进行安全验证,在安全验证通过之后,可以将加密后的应用加载到加速卡,加速卡在获取加密后的应用后,可以解密该应用以供使用方使用。加速卡本身具备解密功能,能够对加密的应用进行解密,运行该应用,应用所有方无需使用额外的硬件加密装置,能够较大的缩减成本。应用在传递的过程中无需进行明文传递,能够保证应用的安全性,降低了应用被窃取或被盗用的可能性。

著录项

  • 公开/公告号CN113849777A

    专利类型发明专利

  • 公开/公告日2021-12-28

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN202010884617.X

  • 发明设计人 曾雪红;彭财元;赵品华;

    申请日2020-08-28

  • 分类号G06F21/10(20130101);G06F21/12(20130101);G06F21/60(20130101);G06F21/64(20130101);H04L9/30(20060101);H04L9/32(20060101);

  • 代理机构11291 北京同达信恒知识产权代理有限公司;

  • 代理人黄冠雄

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-06-19 13:26:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-02-08

    实质审查的生效 IPC(主分类):G06F21/10 专利申请号:202010884617X 申请日:20200828

    实质审查的生效

说明书

本申请要求在2020年6月28日提交中华人民共和国知识产权局、申请号为202010598752.8、发明名称为“一种AI模型保护方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。

技术领域

本申请涉及通信技术领域,尤其涉及一种应用发布、使用方法、AI模型发布方法以及装置。

背景技术

各种不同的应用(也可以称为应用软件)覆盖了人们生活的方方面面,如移动终端设备上安装的应用,服务器所能提供的服务均属于应用。对于一些需要执行大量运算过程的应用,如人工智能(artificial intelligence,AI)模型,通常需要加载到特定的硬件设备中,如加速卡,该硬件设备能够支持大量的运算过程,保证应用能够顺畅运行。

由于该类应用涉及到付费许可、应用保密等问题,使用方在使用该应用之前,需要先从应用所有方获取该应用的使用权,在获取该应用的使用权后,使用方才能够使用该应用。

鉴于该种应用的高价值,应用所有方为了防止应用被滥用或被盗用,通常采用如下方式保证应用的安全性:

应用所有方将加密后的应用和硬件加密装置发送给使用方,加密后的应用加载到使用方的服务器中,服务器与硬件加密装置连接,服务器从硬件加密装置获取密钥,对加密后的应用进行解密,之后将应用推送给加速卡。

这种方式中,需要为应用所有方需要额外配置硬件加密装置,增加了成本,且服务器与加速卡传输的是应用的明文,容易被探测到,进而导致应用容易被窃取,安全性较差。

发明内容

本申请提供一种应用发布、使用方法、AI模型发布方法以及装置,用以保证应用A的安全性。

第一方面,本申请实施例提供了一种应用发布方法,该方法中应用所有方可以将应用加载到加速卡中以发布给使用方,该方法应用于应用所有方,在该方法中,应用所有方可以接收来自使用方的应用授权请求,该应用授权请求可以用于请求该应用的使用权,该应用授权请求携带第一证书,其中,第一证书包括来自加速卡的第一公钥和第一签名信息;之后,应用所有方从第一证书中获取第一签名信息,对第一签名信息进行安全验证,在安全验证通过之后,应用所有方可以对应用进行加密;之后,再将加密后的应用加载到加速卡中。

通过上述方法,应用所有方对使用方发送的第一签名信息进行安全验证,以确定该第一签名信息是否来自加速卡,在确定来自该加速卡后,再将加密后的应用加载到加速卡中,通过安全验证能够确保加密后的应用需要加载到的加速卡的安全性,通过第一签名信息可以建里应用所有方与加速卡的信任链,且在加速卡中加载的是加密后的应用,能够保证应用不会以明文的方式进行传输,能够保证应用的安全性。

在一种可能的实现方式中,应用所有方对应用进行加密的方式有很多,例如,应用所有方可以从第一证书中获取第一公钥,采用第一公钥对应用进行加密。

通过上述方法,利用第一公钥对应用加密的方式更加方便,能够减少应用所有方与加速卡之间的交互,可以较为快捷的将加密后的应用加载到加速卡中。

在一种可能的实现方式中,应用所有方在对应用进行加密之前,应用所有方还可以获取加速卡生成的第二证书,该第二证书包括加速卡生成的第二公钥和第二签名信息。这里并不限定应用所有方获取该第二证书的方式,应用所有方可以直接从加速卡获取该第二证书,也可以通过使用方从加速卡获取该第二证书。应用所有方在获取给第二证书后,可以对第二签名信息进行安全验证,在安全验证成功后,启动对应用的加密过程;应用所有方在对应用进行加密时,可以从第二证书中获取第二公钥,再利用第二公钥对应用进行加密。

通过上述方法,加速卡可以向应用所有方提供用于对应用进行加密的第二公钥,且在对应用所有方在利用第二公钥对应用加密之前,应用所有方通过对第二签名信息的安全验证,确定该第二签名信息来自加速卡,进而确保第二公钥也来自加速卡,以保证第二公钥的可靠性,进一步,确保加密后的应用的安全性。

在一种可能的实现方式中,第二签名信息由第一私钥加密获得,应用所有方在对第二签名信息进行安全验证时,可以根据第一公钥对第二签名信息进行安全验证。

通过上述方法,应用所有方根据第一公钥对第二签名信息进行安全验证,能够维持与加速卡通过第一签名信息建立的信任链,并通过第一公钥对第二签名信息进行安全验证的方式更加安全、可靠。

在一种可能的实现方式中,应用所有方对应用进行加密时,应用所有方也可以自行生成用于对应用加密的密钥,这里以生成的密钥为第二公钥和第二私钥为例,应用所有方采用第二公钥对应用进行加密,还可以将第二私钥发送给加速卡,以便加速卡能够对加密后的应用进行解密。

通过上述方法,应用所有方不再需要从加速卡获取用于对应用加密的密钥,应用所有方利用自行生成的、用于对应用加密的密钥对应用进行加密,能够提高应用加密的效率,以便后续可以较快的将加密后的应用加载到加速卡中。

在一种可能的实现方式中,应用所有方在将第二私钥发送给加速卡时,可以先采用第一公钥对第二私钥进行加密;之后,再将加密后的第二私钥发送到加速卡中。

通过上述方法,采用第一公钥对第二私钥进行加密,能够较好的保证第二私钥的安全性。

在一种可能的实现方式中,应用所有方在对应用进行加密,也可以利用除第一公钥和第二公钥之外的密钥对应用进行加密,这里以除第一公钥和第二公钥之外的密钥为第一加密密钥为例,应用所有方生成第一加密密钥,根据第一加密密钥对应用进行加密;之后,再获取第二加密密钥,该第二加密密钥可以为第一公钥,也可以为第二公钥,之后,再根据第二加密密钥对第一加密密钥进行加密;在对第一加密密钥进行加密之后,将加密后的应用与加密后的第一加密密钥加载到加速卡中。

通过上述方法,应用所有方可以利用自行生成的第一加密密钥对应用进行加密,之后,再对第一公钥或第二公钥对第一加密密钥进行加密,这样能够保证第一加密密钥的安全性,以确保加速卡能够获得第一加密密钥,进而能够解密获得该应用。

在一种可能的实现方式中,应用所有方在将加密后的应用加载到加速卡中之前,还可以对加密后的应用与加密后的第一加密密钥进行签名保护。

通过上述方法,通过对加密后的应用与加密后的第一加密密钥进行签名保护,能够保证加密后的应用与加密后的应用密钥的完整性,防止在传输该过程中加密后的应用与加密后的第一加密密钥被篡改或被损坏。

在一种可能的实现方式中,应用所有方在对应用加密之前,还可以对应用进行签名保护。应用所有方还可以在对第一加密密钥加密之前,对第一加密密钥进行签名保护。

通过上述方法,在对应用加密之前进行签名保护,能够确保应用和第一加密密钥在加密之前的完整性。

在一种可能的实现方式中,应用所有方还可以将该应用的授权信息加载到加速卡中,应用所有方可以直接将该应用的授权信息加载到加速卡中,也可以采用加载应用类似的方式,生成用于对应用的授权信息进行加密的授权密钥,根据授权密钥加密授权信息;之后,再根据第二加密密钥对授权密钥进行加密,并将加密后的授权信息加载到加速卡。

通过上述方法,应用所有方将应用的授权信息加载到加速卡中,以便加速卡能够通过该应用的授权信息验证应用合法性。

在一种可能的实现方式中,应用可以为AI模型,也可以是部署在云端的云应用。

通过上述方法,应用的种类有许多种,能够有效地扩展应用场景。

第二方面,本申请实施例提供了一种应用使用方法,应用所有方将应用加载到云系统中的加速卡中以发布给使用方,该方法可以由加速卡执行,在该方法中,加速卡可以先获取第一证书,该第一证书包括第一公钥和第一签名信息,加速卡中还可以保存第一公钥对应的第一私钥;之后,加速卡可以发布第一证书,以使得使用方能够获取该第一证书,并根据第一证书去应用所有方进行安全验证;之后,加速卡可以接收并加载应用所有方在安全验证通过之后发送的加密后的应用;对加密后的应用进行解密,获取该应用。

通过上述方法,加速卡通过发布第一证书,可以促使使用方利用该第一证书从应用所有方进行安全验证,以便应用所有方能够验证该第一证书的来源,确定该第一证书来自该加速卡,之后加速卡可以获取加密后的应用,而非明文形式的应用,能够保证该应用的安全性,且加速卡本身具备解密功能,使得解密操作无需通过其他设备执行,使得应用始终存储在加速卡中,避免应用被窃取。

在一种可能的实现方式中,加速卡在解密获得应用时,可以直接采用第一证书相关的第一私钥解密获得应用。

通过上述方法,利用第一私钥对应用解密的方式更加方便,避免应用所有方与加速卡之间的多次交互,提高了应用使用的高效性。

在一种可能的实现方式中,加速卡在解密获得应用之前,还可以生成第二证书,该第二证书包括第二公钥和第二签名信息,加速卡还可以保存第二公钥对应的第二私钥;之后,加速卡可以发布第二证书,以使得应用所有方对第二证书进行安全验证;当加速卡解密获取应用时,可以采用第二证书相关的第二私钥解密获得应用。

通过上述方法,加速卡可以通过第二证书向应用所有方提供用于对应用进行加密的第二公钥,且应用所有方在获取该第二证书后,可以通过对第二签名信息的安全验证,确定该第二签名信息来自加速卡,进而确保第二公钥也来自加速卡,以保证第二公钥的可靠性。

在一种可能的实现方式中,第二签名信息由第一私钥加密获得。

通过上述方法,利用第一私钥获得第二签名信息,能够维持与加速卡通过第一签名信息建立的信任链。

在一种可能的实现方式中,加速卡还可以接收应用所有方发送的生产方自身生产的第二私钥;之后,在解密获得应用时,可以采用第二私钥解密获得应用。

通过上述方法,应用所有方利用自行生成的、用于对应用加密的密钥对应用进行加密,且加速卡还可以从应用所有方获取用于解密的密钥(也即第二私钥),对应用加密和解密的密钥均来自于应用所有方,能够进一步确保应用的安全性。

在一种可能的实现方式中,第二私钥可以由第一证书相关的第一公钥进行加密,之后再加载到加速卡中,这样,加速卡可以根据第一私钥解密获得第二私钥。

通过上述方法,采用第一公钥对第二私钥进行加密,能够较好的保证第二私钥的安全性。

在一种可能的实现方式中,加速卡还可以对加密后的应用的完整性进行校验,在校验成功之后,加载加密后的应用。加速卡也可以对加密后的第一加密密钥的完整性进行校验。

通过上述方法,通过对加密后的应用的完整性进行校验,能够确保加密后的应用的完整性,以避免加密后的应用和加密后的第一加密密钥在传输过程中被篡改或被损坏。

在一种可能的实现方式中,加速卡在解密获得应用时,可以根据第二加密密钥对应的密钥对加密后的第一加密密钥进行解密,获取第一加密密钥,第二加密密钥对应的密钥可以为第一私钥,也可以为第二私钥;之后,再采用第一加密密钥解密获得应用。

通过上述方法,第一私钥或第二私钥对第一加密密钥进行解密,这样能够保证加速卡可以获取该第一加密密钥,进而能够解密获得该应用。

在一种可能的实现方式中,加速卡还可以获取该应用的授权信息,例如,加速卡可以直接从该应用所有方获取该授权信息,也可以通过与获取该应用类似的方式获取该授权信息。例如,加速卡可以根据第二加密密钥对应的密钥对加密后的授权密钥进行解密,获取授权密钥,第二加密密钥对应的密钥可以为第一私钥,也可以为第二私钥;之后,再利用授权密钥解密获取的应用的授权信息。

通过上述方法,加速卡可以获取该应用的授权信息,以便加速卡能够通过该应用的授权信息验证应用合法性。

在一种可能的实现方式中,加速卡还可以接收应用所有方发送的授权信息更新请求,其中,该授权信息更新请求携带加密的更新后的授权信息;之后,根据所述授权信息更新请求更新授权信息。

通过上述方法,加速卡可以及时获取该应用的更新后的授权信息,以便加速卡能够通过该应用的更新后的授权信息验证应用合法性。

在一种可能的实现方式中,应用包括AI模型或云应用。

通过上述方法,应用的种类有许多种,能够有效地扩展应用场景。

第三方面,本申请实施例提供了一种AI模型发布方法,在该方法中,AI模型所有方可以将AI模型加载到加速卡中以发布给使用方,该方法可以由AI模型所有方执行,在该方法中,AI模型所有方可以先获取模型密钥,之后,再根据模型密钥对AI模型进行加密;还可以获取加密密钥,根据加密密钥对模型密钥进行加密,该加密密钥可以是由加速卡生成并由AI模型所有方验证通过、也可以是由AI模型所有方生成;之后,该AI模型所有方可以将加密后的AI模型与加密后的模型密钥加载到加速卡中。

相应的,加速卡在接收到加密后的AI模型与加密后的模型密钥后,加速卡可以利用保存的该加密密钥对应的密钥对与加密后的模型密钥解密,获取该模型密钥,之后利用模型密钥对加密后的AI模型进行解密,获取该AI模型。

通过上述方法,AI模型所有方可以利用模型密钥对应用进行加密,之后,再对加密密钥对模型密钥进行加密,这样能够保证模型密钥的安全性,以确保加速卡能够较为安全的获得模型密钥,进而能够解密获得该AI模型。

在一种可能的实现方式中,加速卡生成并发布第一证书,第一证书包括加速卡生成的第一公钥和第一签名信息,加速卡还可以包括第一公钥对应的第一私钥,使用方可以向AI模型所有方发送携带有第一证书的AI模型授权请求。AI模型所有方接收来自使用方的AI模型授权请求后,可以根据加速卡发布的根证书对第一签名信息进行验证,在验证成功后,确定该第一证书来自加速卡,保存第一公钥。

通过上述方法,AI模型所有方对第一签名信息进行验证,能够确定该第一签名信息是否来自加速卡,进而,确定该第一公钥是否来自该加速卡,在确定来自该加速卡后,保存第一公钥,能够保证所保存的第一公钥的来源可靠。

在一种可能的实现方式中,AI模型所有方获取的加密密钥可以为该第一公钥。

通过上述方法,将第一公钥作为加密密钥,较为方便,实现方式更加简单。

在一种可能的实现方式中,AI模型所有方获取的加密密钥可以是来自加速卡的其他密钥,这里以其他密钥为第二密钥为例。

加速卡可以自行生成第二证书,也可以在AI模型所有方或使用方的触发下生成该第二证书,该第二证书包括加速卡生成的第二公钥和第二签名信息,第二签名信息由第一私钥加密获得,加速卡还可以包括第二公钥对应的第二私钥。之后,加速卡还可以发布该第二证书,AI模型所有方在获得该第二证书后,可以根据保存的第一公钥对第二签名信息进行验证,在验证成功后,将第二公钥作为加密密钥。

通过上述方法,加速卡可以向AI模型所有方通过第二证书提供第二公钥,且在应用所有方将第二公钥作为加密密钥之前,AI模型所有方可以通过对第二签名信息的验证,确定该第二签名信息来自加速卡,进而确保第二公钥也来自加速卡,以保证第二公钥的可靠性。

在一种可能的实现方式中,AI模型所有方在获取加密密钥时,还可以自行生成第二公钥和第二私钥,将第二公钥作为加密密钥;之后,采用第一公钥对第二私钥进行加密,并将加密后的第二私钥加载到加速卡中。

加速卡在获取加密后的第二私钥后,可以利用第一私钥获取该第二私钥,之后利用第二私钥对加密后的模型密钥进行解密后去模型密钥,进而可以解密获取AI模型。

通过上述方法,AI模型所有方不再从加速卡获取加密密钥,AI模型所有方可以自行生成加密密钥,能够提高应用加密的效率,以便后续可以较快的将加密后的应用加载到加速卡中。

在一种可能的实现方式中,AI模型所有方将加密后的AI模型与加密后的模型密钥加载到加速卡中之前,还可以对加密后的AI模型与加密后的模型密钥进行签名保护。

加速卡可以先对加密后的AI模型与加密后的模型密钥的完整性进行校验,在校验通过后,在加载加密后的AI模型与加密后的模型密钥。

通过上述方法,通过对加密后的AI模型与加密后的模型密钥进行签名保护,能够保证加密后的应用与加密后的应用密钥的完整性,防止在传输该过程中加密后的AI模型与加密后的模型密钥被篡改或被损坏。

在一种可能的实现方式中,AI模型所有方根据模型密钥对AI模型进行加密之前,还可以对AI模型进行签名保护。之后,在加速卡解密获取该AI模型后,可以对AI模型的完整性进行校验,在校验通过后,可以运行该AI模型。

通过上述方法,在对AI模型加密之前进行签名保护,能够确保AI模型在加密之前的完整性。

在一种可能的实现方式中,AI模型所有方还可以将AI模型的授权信息加载到加速卡中,AI模型所有方可以直接将AI模型所有方加载到加速卡,也可以采用与加载AI模型类似的方式加载该授权信息。例如,AI模型所有方可以生成AI模型的授权信息和授权密钥,根据授权密钥加密授权信息;之后,根据加密密钥对授权密钥进行加密,并将加密后的授权信息和加密后的授权密钥加载到加速卡。

加速卡在接收到该加密后的授权信息和加密后的授权密钥后,可以利用加密密钥获取该授权密钥,之后利用授权密钥对加密后的授权信息进行解密,获取该授权信息。

通过上述方法,AI模型所有方将AI模型的授权信息加载到加速卡中,以便加速卡能够通过该AI模型的授权信息验证应用合法性。

在一种可能的实现方式中,AI模型所有方将加密后的授权信息加载到加速卡之前,还可以对加密后的授权信息进行签名保护。

在加速卡解密获取加密后的授权信息后,可以对加密后的授权信息的完整性进行校验,在校验通过后,可以解密获取该授权信息。

通过上述方法,可以保证加密后的授权信息的完整性,报纸加密后的授权信息被篡改。

在一种可能的实现方式中,AI模型所有方还可以更新授权信息;AI模型所有方可以直接该更新后的授权信息加载到该加速卡中,也可以根据加密密钥对更新后的授权密钥进行加密,并将加密后的更新后的授权信息加载到加速卡。

加速卡在接收到该加密后的、更新后的授权信息后,可以利用加密密钥获取该授权密钥,之后利用授权密钥对加密后的、更新后的授权信息进行解密,获取该更新后的授权信息,之后可以根据该更新后的授权信息验证应用的合法性。

通过上述方法,AI模型所有方及时更新该AI模型的授权信息,保证该AI模型的合法性。

在一种可能的实现方式中,第一公钥和第一私钥由加速卡生成,第一私钥被加密后存储于加速卡中。

通过上述方法,第一私钥始终保存在加速卡中,能够保证第一私钥的安全性。

第四方面,本申请实施例还提供了一种应用发布装置,该装置可应用于应用所有方,有益效果可以参见第一方面的描述此处不再赘述。该设备具有实现上述第一方面的方法实例中行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,设备的结构中包括获取单元、验证单元、加密单元和加载单元,这些单元可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。

第五方面,本申请实施例还提供了一种应用使用装置,该装置可以应用于加速卡,有益效果可以参见第二方面的描述此处不再赘述。该设备具有实现上述第二方面的方法实例中行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,设备的结构中包括获取单元、解密单元和发送单元,这些单元可以执行上述第二方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。

第六方面,本申请实施例还提供了一种AI模型发布装置,该装置可以应用于AI模型所有方,执行AI模型所有方所执行的方法,有益效果可以参见第三方面的描述此处不再赘述。该设备具有实现上述第三方面的方法实例中行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,设备的结构中包括获取单元、加密单元、加载单元,这些单元可以执行上述第三方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。

第七方面,本申请实施例还提供了一种AI模型使用装置,该装置可以应用于加速卡,执行加速卡所执行的方法,有益效果可以参见第三方面的描述此处不再赘述。该设备具有实现上述第三方面的方法实例中行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,设备的结构中包括获取单元、解密单元和发送单元,这些单元可以执行上述第三方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。

第八方面,本申请实施例还提供了一种计算设备,有益效果可以参见第一方面的描述此处不再赘述。计算设备的结构中包括处理器和存储器,处理器被配置为支持设备执行上述第一方面方法中相应的功能。存储器与处理器耦合,其保存设备必要的程序指令和数据。设备的结构中还包括通信接口,用于与其他设备进行通信。

第九方面,本申请实施例还提供了一种计算设备,有益效果可以参见第二方面的描述此处不再赘述。计算设备的结构中包括处理器和存储器,处理器被配置为支持设备执行上述第二方面方法中相应的功能。存储器与处理器耦合,其保存设备必要的程序指令和数据。设备的结构中还包括通信接口,用于与其他设备进行通信。

第十方面,本申请实施例还提供了一种计算设备,用于执行AI模型所有方执行的方法,有益效果可以参见第三方面的描述此处不再赘述。设备的结构中包括处理器和存储器,处理器可以执行上述第三方面方法中相应的功能。存储器与处理器耦合,其保存设备必要的程序指令和数据。设备的结构中还包括通信接口,用于与其他设备进行通信。

第十一方面,本申请实施例还提供了一种计算设备,用于执行加速卡执行的方法,有益效果可以参见第三方面的描述此处不再赘述。设备的结构中包括处理器和存储器,处理器和加密模块配合可以执行上述第三方面方法中相应的功能。存储器与处理器耦合,其保存设备必要的程序指令和数据。设备的结构中还包括通信接口,用于与其他设备进行通信。

第十二方面,本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。

第十三方面,本申请还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面的方法。

第十四方面,本申请还提供一种计算机芯片,芯片与存储器相连,芯片用于读取并执行存储器中存储的软件程序,执行上述各方面的方法。

附图说明

图1为本申请提供的一种应用所有方、使用方以及加速卡生产商的关系示意图;

图2为本申请提供的一种系统的架构示意图;

图3为本申请提供的一种应用发布方法示意图;

图4为本申请提供的一种应用发布方法示意图;

图5为本申请提供的一种应用发布方法示意图;

图6为本申请提供的一种应用发布方法示意图;

图7为本申请提供的一种应用发布装置的结构示意图;

图8为本申请提供的一种应用使用装置的结构示意图;

图9为本申请提供的一种AI模型发布装置的结构示意图;

图10为本申请提供的一种AI模型使用装置的结构示意图;

图11为本申请提供的一种计算设备的结构示意图。

具体实施方式

目前为了保证应用的安全性,应用所有方在将应用发送给使用方时,还会向使用方提供一个硬件加密装置,下面对这种方式进行说明:

首先,应用所有方可以从使用方的服务器读取服务器的硬件标识,导入到硬件加密装置中,应用所有方触发硬件加密装置生成密钥1,以及保存该服务器的硬件标识。应用所有方利用密钥1对该应用进行加密,将加密后的应用以及硬件加密装置交于使用方,使用方将该加密后的应用导入到服务器中,并将硬件加密装置连接到服务器中,硬件加密装置从服务器中获取该服务器的硬件标识,并与存储的服务器的硬件标识进行比对,在确定一致后,利用硬件加密装置中的密钥1对加密后的应用进行解密,并将解密后的应用以明文的形式发送给服务器,服务器再将该应用以明文的形式传输给加速卡,触发加速卡运行该应用。

上述方式中,应用所有方需要提供一个硬件加密装置,增加了成本;应用在解密之后,存在以明文形式传递的过程,增大了应用被窃取的可能性。

为了减少成本,提高应用的安全性,本申请实施例提供的一种应用发布、使用方法、AI模型发布方法以及装置,在对本申请实施例提供的应用发布、使用方法以及AI模型发布方法进行说明之前,对本申请实施例涉及的概念进行说明。

(1)、应用。

应用是指能够实现某一个或多个功能的程序集合,在本申请实施例中并不限定应用的类型,例如可以是移动终端设备上安装的应用软件,也可以是服务器上运行的程序指令,还可以用于人工智能推理的运算模型,也即AI模型。本申请实施例中的应用可以是部署在云端的云应用,也可以是运行的设备本地的应用。

(2)、应用所有方、使用方、加速卡生产商。

参见图1,为应用所有方、使用方、加速卡生产商之间的关系示意图。

应用所有方为具备应用所有权的一方,应用所有方可以决定“谁”能够使用该应用以及使用该应用的期限,也即决定“谁”具备该应用的使用权和有效期。在实际应用中,应用所有方可以通过售卖或租赁的方式提供该应用的使用权。

使用方即为需要使用该应用的一方,使用方可以向应用所有方申请该应用的使用权,这里并不限定申请应用的使用权的方式,例如,可以是预先通过邮件的方式申请该应用的使用权,也可以是在线下采用协商的方式向应用所有方申请该应用的使用权,还可以是在线上,通过发送请求的方式(如在本申请实施例中通过发送应用授权请求)获取该应用的使用权。

加速卡生产商是指生产加速卡的一方,加速卡是能够加载应用的硬件模块。加速卡具备独立的运算能力,能够运行所加载的应用,本申请实施例并不限定加速卡的具体形态以及所能在加速卡上运行的应用的类型,例如该加速卡可以是高速串行计算机扩展总线标准(peripheral component interconnect express,PCIe)扩展模块,具备执行AI运算的能力,该加速卡还可以是具备其他接口的硬件模块。

加速卡生产商可以将生产的加速卡售卖或租赁给需要使用应用的使用方,或具备应用所有权的应用所有方。

在本申请实施例中,应用所有方、使用方、加速卡生产商之间可能存在如下两种关系:

关系一、图1中实线所示,应用所有方可以从加速卡生产商获取(如购买或租赁)加速卡,将加密的应用加载到加速卡中,之后,使用方从应用所有方获取加载了加密的应用的加速卡,向应用所有方申请该应用的使用权,使用方在拿到该加速卡,获取该应用的使用权后,加速卡可以对加密的应用进行解密,并运行该应用。

需要说明的是,在关系一,使用方在向应用所有方申请该应用的使用权时,可以采用前述内容中所提及的方式向应用所有方申请该应用的使用权,也可以通过申请获取该加载了加密的应用的加速卡的方式申请该应用的使用权,若应用所有方给与使用方该加速卡,则表明使用方获得该应用的使用权,否则,使用方未获得该应用的使用权。

加速卡对加密的应用进行解密的操作,可以是在使用方确定需要使用该应用后,触发加速卡执行的。例如,使用方需要利用该应用实现某功能时,可以向加速卡发送解密指令,加速卡在接收到该解密指令后,可以对加密的应用进行解密,并运行该应用。又例如,加速卡上设置有按键,使用方可以通过按键的方式,触发加速卡对加密的应用进行解密。这样,当使用方根据自身需要解密该应用、并指示运行该应用。

加速卡对加密的应用进行解密的操作,也可以是由应用所有方触发的。例如,应用所有方可以验证使用方的身份,确定该使用方的身份安全或具备应用的使用权后,可以通过指令或按键的方式,触发加速卡执行对加密的应用进行解密的操作。这样,使用方能够通过加速卡直接运行该应用,无需自行触发对加密的应用进行解密的操作,能够节约使用方的时间,使用体验较好。

关系二、使用方可以从加速卡生产商获取加速卡,使用方还可以向应用所有方申请该应用的使用权,应用所有方在确认使用方对该应用的使用权后,可以将加密的应用加载到使用方获取的加速卡中。之后,加速卡对加密的应用进行解密,并运算该应用。

加速卡对加密的应用进行解密的操作,可以是加速卡在检测到加密的应用加载到加速卡后,自动执行的。

加速卡对加密的应用进行解密的操作,也可以是在使用方或应用所有方的触发下执行的,使用方或应用所有方触发加速卡对加密的应用进行解密的操作的方式可参见前述说明,此处不再赘述。

需要说明的是,应用所有方将加密的应用加载到使用方获取的加速卡的方式本申请实施例并不限定,例如,应用所有方可以直接将加密的应用加载到使用方获取的加速卡中,无需通过第三者。又例如,应用所有方也可以通过使用方将加密的应用加载到使用方获取的加速卡中,也即使用方从应用所有方获取加密的应用,之后,将加密后的应用自行加载到加速卡中。

从上述说明可知,无论应用所有方、使用方、加速卡生产商之间采用上述哪一种关系,应用在传递过程中,采用的是加密后的应用,能够保证应用在传递过程中的安全性。另外加密后的应用是保存在加速卡中的,对加密后的应用的解密操作也是在加速卡内执行的,应用并不会以明文的形式脱离加速卡,进一步确保了该应用不易被窃取。

值得注意的是,在本申请实施例提及的应用所有方、使用方、加速卡生产商所执行的各种操作可以是应用所有方、使用方、加速卡生产商自己执行的,也可以是应用所有方、使用方、加速卡生产商驱动计算设备所执行的。例如,当应用所有方将加密的应用加载到加速卡的方式时,应用所有方可以将加速卡连接在保存有该应用的计算设备上,将加密的应用从该计算设备复制到加速卡中,应用所有方也可以通过计算设备向加速卡发送携带有加密后的应用的消息,以使加速卡获取该加密后的应用。本申请实施例并不限定应用所有方、使用方、加速卡生产商所执行的各种操作的方式。

(3)、密钥、公钥、私钥。

密钥用于对信息加密或解密。密钥可以分为非对称密钥和对称密钥,非对称密钥是指加密和解密所采用的密钥是不同的,非对称密钥包括两种密钥,公钥(public key)和私钥(private key)。公钥是公开的,能够被所有人或者相关人员获知,私钥是私密的,只有该公私钥对(公私钥对也即该公钥和私钥)的所有者才能获取。公钥和私钥是互相对应的,利用公钥加密的信息,能够用对应的私钥进行解密,类似的,利用私钥加密的信息,可以用对应的公钥进行解密。

在一些应用场景中,可以利用私钥对一些信息进行签名(其本质为加密),生成签名信息,利用公钥对签名信息可以进行安全验证,能够确定该签名信息是否是被私钥进行签名生成的,进而实现对提供签名信息的一方进行验证,并可以确认被签名的信息的完整性。

在本申请实施例中为了区分不同的公钥和私钥,分别称为第一公钥、第一私钥、以及第二公钥、第二私钥、以及第三公钥、第三私钥。第一公钥和第一私钥是对应的,第二公钥和第二私钥是对应的,第三公钥和第三私钥是对应的。

对称密钥是指加密和解密所采用的密钥是相同的。在本申请实施例中以用于对应用和应用的授权信息加密的密钥(如第一加密密钥、授权密钥、模型加密密钥)是对称密钥为例进行说明,当然,用于对应用和应用的授权信息加密的密钥也可以为非对称密钥,在这种情况下,应用所有方并不是将用于对应用和应用的授权信息加密的密钥发送给加速卡,而是需要将该密钥对应的密钥发送给加速卡。

(4)、证书、根证书。

证书用于记录公钥,通过对证书的验证可以确定该证书中公钥的合法性。

以A需要公布自己的公钥,B需要获取A的公钥为例,A可以利用自己的公钥(可选的,还可以包括身份信息)生成证书,发布该证书。这样,若B可以获取该证书,从该证书中获取A的公钥,若该证书中包括身份信息,还可以从证书中读取A的身份信息。这里并不限定身份信息的类型,如身份信息可以是A的地址、标识等。证书还可以包括签名信息,通过该签名信息能够验证该证书中公钥的来源,例如,B在获取证书后,可以通过签名信息进行验证,确定该证书中记录的A的公钥是否是真实来自A的。本申请实施例并不限定签名信息的生成方式以及验证的方式,具体可以参见步骤302、304以及步骤403、405中的相关说明。

为了增加证书的公正性,A可以通过可信任的第三方生成以及发布该证书,如证书颁发机构(certificate authority,CA),A可以将自己的公钥(可选的,还可以包括身份信息)发送给第三方,由第三方对A的公钥施加签名信息,生成证书,B再从第三方或A,获取该证书,B在获取证书之后,可以验证该证书上的签名信息,以证书中该A的公钥的合法性,在验证通过后,可以从该证书中获取A的公钥。在本申请实施例中涉及的根证书就可以通过第三方生成的。在本申请实施例中根证书记录的公钥可以称为根证书的公钥,与根证书的公钥对应的私钥称为根证书的私钥。

本申请实施例中为了区别不同证书所记录的公钥以及签名信息,将所涉及的不同的证书以及签名信息分别命名为第一证书、以及第二证书。第一证书中包括第一公钥,以及第一签名信息。第二证书包括第二公钥以及第二签名信息。

如图2所示,为本申请实施例提供的一种系统架构示意图,该系统架构中包括加速卡、应用所有方(包括应用所有方所使用的计算设备)以及使用方(包括使用方所使用的计算设备)。

应用所有方可以存储该应用,如将该应用存储所使用的计算设备中。使用方可以与加速卡建立连接。本申请实施例并不限定使用方与加速卡建立连接的方式。例如,使用方可以通过有线或无线的方式与加速卡建立连接;又例如,加速卡可以安插到使用方所使用的计算设备的接口中。

需要说明的是,本申请实施例并不限定应用所有方所使用的计算设备和使用方所使用的计算设备的类型以及部署位置。例如,应用所有方所使用的计算设备和使用方所使用的计算设备可以部署在中心计算设备系统(包括至少一个云计算设备,例如:服务器、台式电脑等)中,也可以部署在边缘计算设备系统(包括至少一个边缘计算设备,例如:服务器、台式电脑等)中。应用所有方所使用的计算设备和使用方所使用的计算设备也可以是部署在其他位置的设备,如部署在陆地上,包括室内或室外、手持或车载;也可以部署在水面上(如轮船等);还可以部署在空中(例如飞机、气球和卫星上等)。

应用所有方所使用的计算设备和使用方所使用的计算设备可以为服务器、或服务器集群,还可以是个人设备,如手机(mobile phone)、平板电脑(pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端、增强现实(augmented reality,AR)终端、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程医疗(remote medical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等。

在本申请实施例中,应用所有方能够基于使用方发送的应用授权请求进行安全验证,在安全验证通过之后,可以将加密后的应用加载到加速卡,加速卡在获取加密后的应用后,可以解密该应用以供使用方使用。应用所有方能够将加密后的应用发送给加速卡,加速卡能够对加密的应用进行解密,运行该应用,应用所有方无需使用额外的硬件加密装置,能够较大的缩减成本。且由于加速卡具备解密功能,应用在传递的过程中无需进行明文传递,能够保证应用的安全性,降低了应用被窃取或被盗用的可能性。

下面结合附图,对本申请实施例提供的应用发布和使用方法进行说明,参见图3,为本申请实施例提供的一种应用发布和使用方法,该方法中包括两部分内容,其一为应用所有方基于使用方发送的应用授权请求进行安全验证的过程,参见步骤301~步骤305。其二为应用所有方将加密后的应用加载到加速卡,加速卡解密获得应用的过程,参见步骤306~步骤308。该方法包括:

步骤301:加速卡先获取第一公钥和第一私钥,该第一公钥和第一私钥对应,加速卡可以保存该第一私钥。

加速卡获取第一公钥和第一私钥的方式有许多,下面列举其中两种:

方式一、在加速卡出厂前,加速卡中可以预先配置有第一公钥和第一私钥,或加速卡可以生成第一公钥和第一私钥,例如加速卡中存在有芯片,该芯片能够生成第一公钥和第一私钥。

在出厂前,加速卡可以保存该第一私钥,为了保证第一私钥的安全性,加速卡可以将该第一私钥保存在加速卡的非易失性内存中,也可以先对该第一私钥进行加密,再保存该加密后的第一私钥,如将加密后的第一私钥保存在加速卡的非易失性内存中。这里并不限定加速卡对第一私钥加密所采用的密钥,例如可以是根密钥,也可以是根密钥的派生密钥,还可以是其他密钥。其中,根密钥可以是加速卡随机生成,根密钥可以只能在可信执行环境下被加速卡访问,这样可以保证根密钥的安全性,根密钥的派生密钥是加速卡基于根密钥生成的密钥。

方式二、加速卡出厂后,若使用方获取了该加速卡,使用方可以触发加速卡生成第一公钥和第一私钥,这里并不限定使用方触发加速卡生成第一公钥和第一私钥的方式,例如,使用方可以向加速卡发送密钥生成指令;又例如,加速卡上设置按键1,该按键1用于触发生成第一公钥和第一私钥,如该按键1可以为开机键,在点击了该开机键后,加速卡可以生成第一公钥和第一私钥。加速卡还可以保存该第一私钥,第一私钥的保存方式可以参见前述内容,此处不再赘述。

若应用所有方获取了该加速卡,也可以由应用所有方触发加速卡生成第一公钥和第一私钥,应用所有方触发加速卡生成第一公钥和第一私钥、与使用方触发加速卡生成第一公钥和第一私钥的方式类似,具体可以参见前述内容。

步骤302:加速卡获取第一证书,该第一证书包括第一公钥和第一签名信息。

加速卡获取第一证书的方式有许多种,例如,加速卡可以自行生成第一证书,也可以从其他设备获取该第一证书。

(1)、加速卡自行生成第一证书。

加速卡获取第一公钥和第一私钥后,可以利用第一签名私钥对第一信息进行签名,生成第一签名信息,该第一信息包括第一公钥,还可以包括加速卡的设备信息,例如,该加速卡的设备标识、加速卡生产商的名称或编号等。

该第一签名私钥可以是预先配置的私钥,也可以是从其他设备获取的私钥,该第一签名私钥可以是由可信任的第三方,如CA生成的,也可以是其他设备生成的,这里并不限定第一签名私钥的生成方式,凡是来源的安全的私钥均可以作为第一签名私钥。例如该第一签名私钥可以为根证书的私钥,也可以为其他私钥,这里仅以第一签名私钥为根证书的私钥为例进行说明,其中,根证书可以是第三方为加速卡生产商或加速卡生成的,根证书的私钥可以是预先配置在加速卡的,也可以是加速卡从加速卡生产商请求获取的。

之后,加速卡基于该第一公钥和第一签名信息,生成第一证书。

(2)、加速卡在使用方触发下生成第一证书。

使用方确定需要向应用所有方发送应用授权请求时,使用方可以向加速卡发送签名生成指令,加速卡在接收到该签名生成指令后,利用第一签名私钥(如根证书的私钥)对第一信息进行签名,生成第一签名信息。之后,加速卡基于该第一公钥和第一签名信息,生成第一证书。又例如,加速卡上设置按键2,该按键2用于触发生成第一证书,如该按键2也可以为开机键,在点击了该开机键后,加速卡可以生成第一公钥和第一私钥,之后再生成第一证书。

当然,加速卡也可以在应用所有方的触发下生成第一证书,例如,若应用所有方获取了该加速卡,应用所有方在触发加速卡生成第一公钥和第一私钥后,可以触发加速卡生成第一证书,应用所有方触发加速卡生成第一证书与使用方触发加速卡生成第一证书的方式类似,具体可以参见前述内容。

(3)、加速卡从其他设备获取该第一证书。

第一证书可以是加速卡生产商配置在加速卡中的。示例性的,加速卡在生成第一公钥和第一私钥后,加速卡生产商可以利用相关的计算设备从加速卡中读取该第一公钥,利用第一签名私钥(根密钥的私钥)对包括第一公钥的第一信息加密后,生成第一签名信息,加速卡生产商可以自行利用第一公钥和第一签名信息生成第一证书,也可以请求第三方,由第三方根据第一公钥和第一签名信息生成第一证书,第三方再将该第一证书发送给加速卡生产商,之后,将第一证书加载到加速卡中。

需要说明的是,在步骤302中,以第一签名信息是利用根证书的私钥对第一信息进行签名生成的为例进行说明的,在实际应用中,也可以采用其他方式生成第一签名信息,例如,第一证书中可以包括的第一公钥为加密后的第一公钥,对加密后的第一公钥进行解密所需的密钥为密钥#1,第一签名信息可以是利用根证书的私钥对密钥#1(可选的,还可以包括加速卡的设备信息)进行签名生成的。生成第一签名信息时,第一签名私钥也可以为其他私钥,如基于根证书的私钥生成的密钥,该第一签名私钥对应的密钥,也即对第一签名信息进行安全验证所使用的密钥可以是应用所有方能够从可信任的一方获取的。

步骤303:加速卡发布该第一证书,使用方从加速卡中获取该第一证书。

步骤304:使用方获取该第一证书后,向应用所有方发送应用授权请求,该应用授权请求中携带第一证书。

使用方为了能够从应用所有方获取该应用,需要先向应用所有方申请授权使用该应用,也即申请应用的使用权,使用方需要向应用所有方的计算设备发送应用授权请求。

步骤305:应用所有方接收使用方发送的应用授权请求后,对第一签名信息进行安全验证。

应用所有方对第一签名信息进行安全验证的方式与第一签名信息的生成方式有关,第一签名信息的生成方式不同,验证的方式也不同。

下面基于步骤302中生成的第一签名信息,对应用所有方对第一签名信息进行安全验证的方式进行说明:

应用所有方利用第一签名私钥对应的公钥(如根证书的公钥)验证第一签名信息。第一签名私钥对应的公钥是应用所有方能够获取的公钥,例如当第一签名私钥为根证书的私钥时,第一签名私钥对应的公钥即为根证书的公钥,这里并不限定该第一签名私钥对应的公钥的获取方式,该第一签名私钥对应的公钥可以是在应用所有方接收到应用授权请求后获取的,也可以是在应用所有方预先加载在本地的,以便后续在接收到应用授权请求时,可以较为快速的利用该公钥对第一签名信息进行验证。

可选的,应用所有方在对第一签名信息验证成功后,可以向使用方发送应用授权成功响应。

应用所有方对第一签名信息进行安全验证,可以确定该第一签名信息是否是来自加速卡,进一步确定第一公钥是否是来自加速卡,而非是使用方自己提供的伪造的第一公钥。

在步骤301~305中以加速卡将第一证书发送给使用方为例,在实际应用中,加速卡也可以直接将该第一证书发送应用所有方,之后,应用所有方对第一签名信息进行安全验证,这种情况下,应用所有方可以通过对第一签名信息的安全验证确定该第一证书中的公钥是否来自加速卡,验证第一公钥的可靠性。

若应用所有方可以直接将加密后的应用加载到加速卡中,如该加速卡为应用所有方从加速卡生产商获取的;或应用所有方在信任加速卡生产商的前提下,也可以不执行步骤301~305。

之后,应用所有方与加速卡之间可以传递加密后的应用。

步骤306:应用所有方在安全验证通过之后,对应用进行加密。

步骤307:应用所有方将加密后的所述应用加载到所述加速卡中。

步骤308:加速卡接收该加密后的应用,解密获得该应用。

步骤306~步骤308中应用所有方与加速卡之间传递加密后的应用,本申请实施例并不限定应用所有方与加速卡之间传递加密后的应用的方式。

例如,应用所有方在获取了第一公钥之后,可以直接利用第一公钥对应用进行加密,将加密后的应用发送给加速卡。加速卡在获取该加密后的应用后,可以利用第一私钥对应用进行解密。

又例如,应用所有方也可以生成用于对应用进行加密的密钥,为方便说明,该密钥称为第一加密密钥,应用所有方利用第一加密密钥对应用进行加密,将加密后的应用发送给加速卡,并将与第一加密密钥通过较为安全的方式传递给加速卡。

其中,应用所有方将第一加密密钥传递给加速卡的方式有很多种,例如,应用所有方可以利用第一公钥,对第一加密密钥进行加密,之后,将该加密后的第一加密密钥发送给加速卡;又例如,应用所有方也可以利用从加速卡获取的或自行生成的第二公钥对第一加密密钥进行加密,之后,将该加密后的第一加密密钥发送给加速卡。

又例如,应用所有方式可以自行生成第二公钥和第二私钥,利用第二公钥对应用进行加密,之后,通过较为安全的方式将第二私钥发送给加速卡。

其中,应用所有方将第二私钥发送给加速卡的方式有很多种,例如,应用所有方可以利用第一公钥,对与第二私钥进行加密,之后,将该加密后的第二私钥发送给加速卡。

下面结合图4,对应用所有方借助第一加密密钥和加速卡生成的第二公钥,与加速卡传递加密后的应用的方式进行进一步说明。在图4中,以第一加密密钥为对称密钥为例进行说明,对于第一加密密钥不是对称密钥的情况,传递的方式类似,区别在于应用所有方需要对与该第一加密密钥对应的密钥(也即对加密后的应用解密所需的密钥)加密,并传递。

步骤401:加速卡生成第二公钥和第二私钥。

本申请实施例并不限定加速卡生成第二公钥和第二私钥方式。例如,第二公钥和第二私钥可以是加速卡自行生成的,加速卡可以在将第一证书发送使用方后,直接生成第二公钥和第二私钥。又例如,第二公钥和第二私钥可以是加速卡在应用所有方或使用方的触发下生成的。如使用方在接收到应用所有方发送的授权请求响应或确定应用所有方安全验证通过后,可以向加速卡发送指令,指示加速卡生成第二公钥和第二私钥。又如,应用所有方在安全通过后,可以与加速卡进行通信,发送指令,指示加速卡生成第二公钥和第二私钥。

步骤402:加速卡生成第二签名信息,根据第二签名信息和第二公钥生成第二证书。

其中,加速卡在生成第二签名信息时,可以是利用第二签名私钥对第二信息进行签名生成的,该第二信息可以包括第二公钥,也可以包括其他信息,例如第二证书中的第二公钥为加密后的第二公钥,对加密后的第二公钥解密所需的密钥为密钥#2,第二信息也可以包括密钥#2。本申请实施例并不限定第二信息中包括的内容,上述方式仅是举例。

该第二签名私钥可以是预先配置的私钥,如第一私钥,也可以是从其他设备获取的私钥,如第一私钥,又如由可信任的第三方,如CA生成的,也可以是其他设备生成的,这里并不限定第二签名私钥的具体类型,凡是来源于可信任的机构或设备的私钥均可以作为第二签名私钥。

步骤403:加速卡发布该第二证书,使用方从加速卡获取该第二证书。

步骤404:使用方将第二证书发送给应用所有方。

需要说明的是,在步骤403~步骤404中,加速卡通过使用方将第二证书发送给应用所有方,若加速卡可以与应用所有方可以直接进行通信,如应用所有方从加速卡生产商获取了该加速卡,又如,使用方将该加速卡交于应用所有方,应用所有方可以直接从加速卡获取该第二证书。

步骤405:应用所有方在获取第二证书后,对第二签名信息进行安全验证。

应用所有方在对第二签名信息进行安全验证时,可以利用第二签名私钥对应的公钥验证第二签名信息。例如,若第二签名私钥为第一私钥,则该第二签名私钥对应的公钥为第一公钥。

步骤406:应用所有方在安全验证通过后,根据第二证书获取该第二公钥。

步骤401~步骤406为应用所有方从加速卡获取第二公钥的过程,应用所有方在获取了第二公钥之后,可以向加速卡发送加密后的应用,也即步骤401~步骤406可以在步骤305与步骤306之间执行。

步骤407:应用所有方生成第一加密密钥,利用第一加密密钥对应用进行加密,利用第二公钥对第一加密密钥进行加密。

步骤407即为步骤306的一种实现方式,这里对应用加密所采用的密钥为第一加密密钥。

可选的,在执行步骤407之前,为了保证应用不被篡改或损坏,保证应用的完整性和有效性,应用所有方可以先利用预先生成或存储的第三私钥对应用进行签名(也可以称为进行签名保护),生成第三签名信息,之后,利用第一加密密钥对第三签名信息进行加密,这样,在对加密后的第三签名信息进行解密时,可以先利用第一加密密钥进行解密,之后再利用第三公钥进行验证。同样的,为了保证第一加密密钥的完整性和有效性,应用所有方也可以第三私钥对第一加密密钥应用进行签名,生成第一密钥签名信息,之后,利用第二公钥对第一密钥签名信息进行加密,加密后的第一密钥签名信息包括加密后的第一加密密钥。

第三私钥为只能被应用所有方获取的密钥,其他设备不能获取该第三私钥。与第三私钥对应的公钥为第三公钥,该第三公钥是公开的,能够被其他设备获取。

可选的,应用所有方在利用第一加密密钥对加密后的应用(或第三签名信息)进行加密后,还可以利用第三私钥再对加密后的应用(或加密后的第三签名信息)进行签名,生成第四签名信息,也可以利用第三私钥对加密后的第一加密密钥(或加密后的第一密钥签名信息)进行签名,生成第二密钥签名信息。

应用的处理过程如下:

1、利用第三私钥对应用签名,生成第三签名信息。2、利用第一加密密钥对第三签名信息进行加密。3、利用第三私钥对加密后的第三签名信息进行签名,生成第四签名信息。

第一加密密钥的处理过程如下:

1、利用第三私钥对第一加密密钥签名,生成第一密钥签名信息。2、利用第二公钥对第一密钥签名信息进行加密。3、利用第三私钥对加密后的第一密钥签名信息进行签名,生成第二密钥签名信息。

需要说明的是,这里仅以利用第三私钥对应用以及第一加密密钥进行签名为例进行说明,实际上,也可以采用其他可信任的私钥进行签名,且对加密后的第三签名信息所使用的私钥和对加密后的第一密钥签名信息所使用的私钥也可以是不同的,本申请不对此进行限定。

应用所有方除了向加速卡发送加密后的应用以及加密后的第一加密密钥外,还可以向加速卡发送应用的授权信息,该应用的授权信息用于指示应用的合法性。应用的授权信息可以包括加速卡的设备信息,用于指示只有该设备信息标识的加速卡才能使用该应用。可选的,应用的授权信息还包括应用的相关信息,如应用的标识、应用的有效期限、对应用的解密次数等信息。

为了保证应用的授权信息的安全性,应用所有方也可以对应用的授权信息进行加密,为方便说明,应用所有方对应用的授权信息加密所采用的密钥称为授权密钥,例如,授权密钥可以为第二公钥,也可以为第一公钥,还可以为应用所有方的计算设备生成的、用于对应用的授权信息加密的密钥。授权密钥也可以为对称密钥,也可以不是对称密钥。在申请实施例中,以授权密钥为对称密钥为例进行说明,应用所有方传递授权密钥的方式与应用所有方传递第一加密密钥的方式类似,即可以通过第二公钥对授权密钥进行加密,之后发送给加速卡。对于授权密钥不是对称密钥的情况,传递的方式类似,区别在于应用所有方需要对与该授权密钥对应的密钥加密,并将加密后的与该授权密钥对应的密钥导入到加速卡中。

可选的,应用所有方对应用的授权信息进行加密之前,也可以利用第三私钥对应用的授权信息进行签名;应用所有方对应用的授权信息(或签名后的应用的授权信息)进行加密之后,还可以利用第三私钥对加密后的应用的授权信息(或加密的签名后的应用的授权信息)进行签名。

应用的授权信息的处理过程如下:

1、利用第三私钥对应用的授权信息签名,生成第一签名授权信息。2、利用授权密钥加密对第一签名授权信息进行加密。3、利用第三私钥对加密的第一签名授权信息签名,生成第二签名授权信息。

对加密后的应用(或第三签名信息)、加密后的第一加密密钥(或加密后的第一密钥签名信息)和加密后的应用的授权信息(或加密后的第一签名授权信息)进行签名,是为了保证加密后的应用、加密后的第一加密密钥和加密后的应用的授权信息的完整性,避免在加密后的应用、加密后的第一加密密钥和加密后的应用的授权信息的传输过程中,加密后的应用、加密后的第一加密密钥和加密后的应用的授权信息被损坏或恶意篡改。也就是说,利用第三公钥对加密后的应用、加密后的第一加密密钥和加密后的应用和授权信息进行验证,若验证失败,说明加密后的应用、加密后的第一加密密钥和加密后的应用的授权信息被损坏或被恶意篡改,由此能够及时发现加密后的应用、加密后的第一加密密钥和加密后的应用的授权信息被损坏或被恶意篡改。

另外,上述利用第三私钥对应用的授权信息和加密后的第一签名授权信息进行签名仅为一种示例,实际上,也可以采用其他可信任的私钥进行签名,且对应用的授权信息进行签名所使用的私钥和对加密后的第一签名授权信息进行签名所使用的私钥也可以是不同的,本申请不对此进行限定。

步骤408:应用所有方将加密后的应用以及加密后的第一加密密钥加载到加速卡。应用所有方还可以将应用的授权信息或加密后的应用的授权信息加载到加速卡。步骤408为步骤307的一种实现方式。

若应用所有方在对应用以及第一加密密钥加密之前,还对应用、第一加密密钥加密以及应用的授权信息进行了签名(也可以称为进行签名保护),应用所有方的计算设备在执行步骤408时,可以将加密后的第三签名信息、加密后的第一密钥签名信息以及签名后的第一签名授权信息发送给加速卡。

若应用所有方在对应用以及第一加密密钥加密之后,还对加密后的应用、第一加密密钥加密以及应用的授权信息进行了签名,应用所有方的计算设备在执行步骤408时,可以将第四签名信息、第二密钥签名信息以及第二签名授权信息发送给加速卡。

应用所有方在执行步骤408时,应用所有方可以通过使用方将加密后的应用以及加密后的第一加密密钥发送给加速卡,也就是说,应用所有方可以先将加密后的应用以及加密后的第一加密密钥(也可以为加密后的第三签名信息以及加密后的第一密钥签名信息,也可以为第四签名信息以及第二密钥签名信息)传输给使用方,之后,使用方将加密后的应用以及加密后的第一加密密钥加载到加速卡中。应用所有方或使用方还可以将第三公钥加载到加速卡中。应用所有方也可以直接将加密后的应用以及加密后的第一加密密钥发送给加速卡。

步骤409:加速卡接收到加密后的应用以及加密后的第一加密密钥后,可以利用第二私钥对加密后的第一加密密钥进行解密获取第一加密密钥,之后,再利用第一加密密钥对加密后的应用进行解密,获取应用。步骤409为步骤308的一种实现方式。

在步骤409中,应用的解密过程是在加速卡内部执行的,使用方并不能获取该应用,也即应用不会以明文的形式传递到加速卡之外的设备,仅保存在加速卡内部,避免被使用方或者其他方获取,能够有效保证应用的安全性。

可选的,加速卡可以利用第二私钥对加密后的授权密钥进行解密获取授权密钥,利用授权密钥对加密后的应用的授权信息进行解密,获取应用的授权信息。

可选的,若加密后的应用、加密后的第一加密密钥以及加密后的应用的授权信息在应用所有方处进行了签名保护,加速卡可以先利用第三公钥对第四签名信息、第二密钥签名信息以及第二签名授权信息的完整性进行校验,在校验通过后,再执行步骤409,也即根据第二私钥和第二密钥签名信息获取第一加密密钥,根据第四签名信息和第一加密密钥获取应用,根据第二签名授权信息和第二私钥获取应用的授权信息。

若应用所有方在对应用以及应用的授权信息在加密前进行了签名保护,加速卡在执行了步骤409之后,加速卡可以再利用第三公钥对的第三签名信息以及第一签名授权信息的完整性进行验证。

加速卡在获取应用的授权信息后,还可以根据应用的授权信息验证应用的合法性,其中包括但不限于:使用应用的授权信息中的加速卡的设备ID和自身存储的加速卡的ID比较、比较当前时间是否属于有效期限内、对应用的解密次数是否小于应用的授权信息中的解密次数,在对应用的授权信息的合法性验证通过后,对第一加密密钥对加密后的应用进行解密,获取并使用该应用。

加速卡在获取了应用后,可以运行加载该应用,加速卡可以为应用分配内存,将应用存储在内存中,加速卡还可以运行该应用,利用应用进行运算。例如加速卡可以在使用方的触发下运行该应用。

应用所有方还可以更新该应用的授权信息,变更应用的标识、应用的有效期限、以及对应用的解密次数等。应用所有方在更新该应用的授权信息后,还可以将更新后的应用的授权信息加载到加速卡中,应用所有方可以直接将该更新后的应用的授权信息加载到加速卡中,也可以采用利用前述内容中对应用的授权信息的处理方式,对更新后的应用的授权信息执行类似的处理(如进行签名、加密),之后再将更新后的应用的授权信息加载到加速卡中。加速卡则可以采用相应的方式(如完整性校验,以及解密)获取该更新后的应用的授权信息,在根据更新后的授权信息验证应用的合法性。

在如图4所示的实施例中第二公钥和第二私钥是加速卡生成的,加速卡需要将第二公钥传递给应用所有方。作为另一种可能的实施方式,第二公钥和第二私钥也可以是应用所有方生成的。下面对这种实施方式进行说明,参见图5,为本申请实施例提供的一种应用发布方法,该方法包括:

步骤501:应用所有方生成第二公钥和第二私钥。本申请实施例并不限定应用所有方生成第二公钥和第二私钥的方式。

步骤502:应用所有方利用第一公钥对第二私钥进行加密。

步骤503:应用所有方将加密后的第二私钥发送给加速卡。

应用所有方可以直接将加密后的第二私钥直接加载至加速卡中,也可以通过使用方将加密后的第二私钥发送给加速卡,即先将加密后的第二私钥发送给使用方,再由使用方将加密后的第二私钥加载至加速卡中。

步骤504:加速卡利用第一私钥对加密后的第二私钥进行解密,获取第二私钥。

步骤501~步骤504为应用所有方向加速卡发送第二私钥的过程,应用所有方在生成了第二公钥,并将第二私钥导入到加速卡之后,可以向加速卡发送加密后的应用,也即步骤501~步骤504可以在步骤305与步骤306之间执行。

步骤505:与步骤407~步骤409相同,具体可以参见前述内容,此处不再赘述。

下面以应用为AI模型为例,对本申请实施例提供的一种AI模型发布方法进行说明,参见图6。该方法包括:

步骤601:AI模型所有方获取模型密钥,根据模型密钥对AI模型进行加密。AI模型所有方根据模型密钥对AI模型进行加密与步骤407中AI模型所有方利用第一加密密钥对应用进行加密的方式类似,具体可参见前述内容,此处不再赘述。

可选的,AI模型所有方在根据模型密钥对AI模型进行加密之前,以及之后,也可以进行签名保护,AI模型所有方在根据模型密钥对AI模型进行加密之前,以及之后执行的签名保护与AI模型所有方利用第一加密密钥对应用进行加密之前以及之后执行的签名保护类似,具体可参见前述内容,此处不再赘述。

这里并不限定模型密钥的获取方式,AI模型所有方可以自行生成模型密钥,也可以从其他设备获取该模型密钥。

步骤602:AI模型所有方获取加密密钥,根据加密密钥对模型密钥进行加密。

这里并不限定加密密钥的类型,如加密密钥可以为预先从加速卡获得密钥,如第一公钥、以及加速卡可生成的第二公钥。AI模型所有方获取第一公钥以及获取加速卡生成的第二公钥的方式可以参见图3、4所示的实施例中的相关说明。加密密钥也可以为AI模型所有方自行生成的第二公钥,AI模型所有方生成第二公钥以及将第二私钥发送给加速卡的方式可以参见图5所示的实施例中的相关说明,此处不再赘述。

步骤603:AI模型所有方将加密后的AI模型与加密后的模型密钥加载到加速卡中。

AI模型所有方除了将加密后的所述AI模型与加密后的所述模型密钥加载到加速卡中外,还可以将AI模型的授权信息加载到加速卡中,AI模型所有方将AI模型的授权信息加载到加速卡中的方式与AI模型所有方在图4所示的实施例中应用所有方将应用的授权信息加载到加速卡中的方式类似,具体可参见前述说明此处不再赘述。

步骤604:加速卡利用加密密钥对应的密钥对加密后的模型密钥进行解密,获取该模型密钥,之后利用该模型密钥对加密后的AI模型进行解密,获取该AI模型。

若该加密密钥为第一公钥,则加密密钥对应的密钥为第一私钥,若该加密密钥为第二公钥,则加密密钥对应的密钥为第二私钥。

可选的,加速卡还可以获取该AI模型的授权信息,加速卡获取该AI模型的授权信息的方式与加速卡在图4所示的实施例中获取应用的授权信息的方式类似,具体可参见前述说明此处不再赘述。

基于与方法实施例同一发明构思,本申请实施例还提供了一种应用发布装置,用于执行上述方法实施例中应用所有方所执行的方法,相关特征可参见上述方法实施例,此处不再赘述,如图7所示,该应用发布装置700包括接收单元701、验证单元702、加密单元703、加载单元704。

接收单元701,用于接收所述使用方发送的应用授权请求,所述应用授权请求携带第一证书,其中,所述第一证书包括来自所述加速卡的第一公钥和第一签名信息。

验证单元702,用于对所述第一签名信息进行安全验证。

加密单元703,用于在所述验证单元安全验证通过之后,对所述应用进行加密。

加载单元704,用于将加密后的所述应用加载到所述加速卡中。

上述应用发布装置700可以用于执行图3~5所示中应用所有方所执行的方法,其中,接收单元701可以执行如图3所示的实施例中的步骤304中的应用所有方接收应用授权请求的方法;验证单元702可以执行如图3所示的实施例中的步骤305。加密单元703可以执行如图3所示的实施例中的步骤306;加载单元704可以执行如图3所示的实施例中的步骤307。

基于与方法实施例同一发明构思,本申请实施例还提供了一种应用使用装置,用于执行上述方法实施例中加速卡所执行的方法,相关特征可参见上述方法实施例,此处不再赘述,如图8所示,该应用使用装置800包括获取单元801、发送单元802、解密单元803。

获取单元801,用于获取第一证书,所述第一证书包括第一公钥和第一签名信息,并保存所述第一公钥对应的第一私钥。

发送单元802,用于发布所述第一证书,以使得所述应用所有方根据所述第一证书去所述生产方进行安全验证。

所述获取单元801,还用于接收并加载所述应用所有方在所述安全验证通过之后发送的加密后的所述应用;

解密单元803,用于解密获得所述应用。

上述应用使用装置800可以用于执行图3~5所示中加速卡所执行的方法,其中,获取单元801可以执行如图3所示的实施例中的步骤301以及步骤302;发送单元802可以执行如图3所示的实施例中的步骤303中加速卡发布第一证书的方法;解密单元803可以执行如图3所示的实施例中的步骤308。

基于与方法实施例同一发明构思,本申请实施例还提供了一种AI模型发布装置,用于执行上述方法实施例中AI模型所有方所执行的方法,相关特征可参见上述方法实施例,此处不再赘述,如图9所示,该AI模型发布装置900包括获取单元901、加密单元902、加载单元903;可选的,还可以包括验证单元904。

获取单元901,用于获取模型密钥以及获取加密密钥。

加密单元902,用于根据所述模型密钥对所述AI模型进行加密以及根据所述加密密钥对所述模型密钥进行加密,其中,所述加密密钥由所述加速卡生成并由所述AI模型所有方验证通过;

加载单元903,用于将加密后的所述AI模型与加密后的所述模型密钥加载到所述加速卡中。

上述AI模型发布装置900可以用于执行图6所示中AI模型所有方所执行的方法,其中,获取单元901可以执行如图6所示的实施例中的步骤601和步骤602的AI模型所有方获取模型密钥和获取加密密钥的方法;加密单元902可以执行如图6所示的实施例中的步骤601和步骤602中AI模型所有方执行的加密方法;加载单元903可以执行如图6所示的实施例中的步骤603。验证单元904还可以对来自加速卡的第一证书中的第一签名信息和第二证书中第二签名信息进行验证。

基于与方法实施例同一发明构思,本申请实施例还提供了一种AI模型使用装置,用于执行上述方法实施例中加速卡所执行的方法,相关特征可参见上述方法实施例,此处不再赘述,如图9所示,该AI模型使用装置1000包括获取单元1001、解密单元1002,可选的,还可以包括发送单元1003。

获取单元1001,用于接收加密后的AI模型与加密后的模型密钥。

解密单元1002,用于利用保存的该加密密钥对应的密钥对与加密后的模型密钥解密,获取该模型密钥,之后利用模型密钥对加密后的AI模型进行解密,获取该AI模型;

上述AI模型使用装置1000可以用于执行图6所示中加速卡所执行的方法,其中,获取单元1001可以执行如图6所示的实施例中的步骤603的加速卡获取加密后的AI模型和加密后的模型密钥的方法;解密单元1002可以执行如图6所示的实施例中的步骤604。发送单元1003还可以发布第一证书和第二证书。

需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

在一个简单的实施例中,本领域的技术人员可以想到上述实施例中的AI模型所有方、应用所有方、加速卡均可采用图11所示的形式。

如图11所示的设备1100,包括至少一个处理器1110、存储器1120,可选的,还可以包括通信接口1130。

存储器1120可以是易失性存储器,例如随机存取存储器;存储器也可以是非易失性存储器,例如只读存储器,快闪存储器,硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器1120是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1120可以是上述存储器的组合。

本申请实施例中不限定上述处理器1110以及存储器1120之间的具体连接介质。

在如图11的设备中,还包括通信接口1130,处理器1110在与其他设备进行通信时,可以通过通信接口1130进行数据传输。

当应用所有方采用图11所示的形式时,图11中的处理器1110可以通过调用存储器1120中存储的计算机执行指令,使得设备1100可以执行上述任一方法实施例中应用所有方执行的方法;如该设备1100可以执行图3~5所示的方法实施例中应用所有方所执行的方法。

具体的,图7中的加载单元、获取单元、验证单元和加密单元的功能/实现过程均可以通过图11中的处理器1110调用存储器1120中存储的计算机执行指令来实现。或者,图7中的验证单元和加密单元的功能/实现过程可以通过图11中的处理器1110调用存储器1120中存储的计算机执行指令来实现,图7中的加载单元和获取单元的功能/实现过程可以通过图11中的通信接口1130来实现。

当加速卡采用图11所示的形式时,图11中的处理器1110可以通过调用存储器1120中存储的计算机执行指令,使得设备1100可以执行上述任一方法实施例中加速卡执行的方法;如该设备1100可以执行图3~6所示的方法实施例中加速卡所执行的方法。

具体的,图8和图10中的获取单元、发送单元和解密单元的功能/实现过程均可以通过图11中的处理器1110调用存储器1120中存储的计算机执行指令来实现。或者,图8和图10中的解密单元的功能/实现过程可以通过图11中的处理器1110调用存储器1120中存储的计算机执行指令来实现,图8和图10中的发送单元和获取单元的功能/实现过程可以通过图11中的通信接口1130来实现。

当AI模型所有方采用图11所示的形式时,图11中的处理器1110可以通过调用存储器1120中存储的计算机执行指令,使得设备1100可以执行上述任一方法实施例中应用所有方执行的方法;如该设备1100可以执行图6所示的方法实施例中AI模型所有方所执行的方法。

具体的,图11中的加载单元、获取单元、验证单元和加密单元的功能/实现过程均可以通过图11中的处理器1110调用存储器1120中存储的计算机执行指令来实现。或者,图11中的验证单元和加密单元的功能/实现过程可以通过图11中的处理器1110调用存储器1120中存储的计算机执行指令来实现,图11中的加载单元和获取单元的功能/实现过程可以通过图11中的通信接口1130来实现。

应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号