一种用于加密模型的安全性评估的方法和设备
技术领域
本公开涉及加密模型安全性领域,具体而言,涉及一种加密模型安全部署评估方案。
背景技术
随着互联网技术的不断发展和云计算概念的诞生,越来越多的公司和用户倾向于通过互联网来进行数据通信。由此,许多公司在自己的平台上建立起各种数据模型来处理来自各种源的各种类型的数据,所述处理包括:接收、计算、更新、存储、发送等各种数据操作。例如,一种被广泛使用的数据模型是机器学习模型,机器学习模型可通过模拟或实现人类的学习行为,来获取新的知识或技能,重新组织已有的知识结构,进而不断改善自身的性能。它是人工智能的核心,是计算机具有人工智能的关键技术,其应用遍及人工智能的各个领域。它主要使用数据的归纳、综合而不是演绎。数据模型可以分为未加密数据模型(明文数据模型)和加密数据模型(密文数据模型)。在部署数据模型时,需要评估模型的安全性。明文数据模型可以直接判断安全性,却不能保护数据需求方的隐私,而密文数据模型虽然能保护需求方的隐私,却使得要部署的数据源方难以直接评估模型的安全性。因此,存在对模型安全部署方案进行改进的需求,以便能够提供一种更加安全稳健的模型安全部署评估机制。
发明内容
本公开涉及一种加密模型安全部署评估方案,所述方案利用了同态加密技术实现对加密模型的安全性评估,因此,不存在泄露模型参数明文的风险。
根据本公开的第一方面,提供了一种用于加密模型的安全性评估的数据需求方设备,所述数据需求方设备被配置为:向数据源方设备发送要将经同态加密的数据模型部署在所述数据源方设备上的部署请求,所述部署请求包括了基于所述数据模型的明文参数被同态加密的密文模型参数以及所述同态加密所使用的公钥;从安全性评估方设备接收第一密文安全评估指标;以及利用与所述公钥相对应的私钥解密接收到的第一密文安全评估指标以生成明文安全评估指标并将所述明文安全评估指标转发给所述安全性评估方设备。
根据本公开的第二方面,提供了一种用于加密模型的安全性评估的数据源方设备,所述数据源方设备被配置为:从数据需求方设备接收要将经同态加密的数据模型部署在所述数据源方设备上的部署请求,所述部署请求包括了被同态加密的密文模型参数以及所述同态加密所使用的公钥;将所述被同态加密的密文模型参数以及所述公钥转发给安全性评估方设备;以及从所述安全性评估方设备接收模型安全评估报告,并根据所述模型安全评估报告审批是否部署所述数据需求方设备提供的经同态加密的数据模型。
根据本公开的第三方面,如第二方面所述的数据源方设备还被配置为:在将所述被同态加密的密文模型参数以及所述公钥转发给所述安全性评估方设备之前,打乱所述被同态加密的密文模型参数的顺序。
根据本公开的第四方面,提供了一种用于加密模型的安全性评估的安全性评估方设备,所述安全性评估方设备被配置为:接收从数据源方设备转发的由数据需求方设备提供的被同态加密的密文模型参数以及公钥;利用所述被同态加密的密文模型参数通过计算得到第一密文安全评估指标并将所述第一密文安全评估指标发送给所述数据需求方设备;从所述数据需求方设备接收明文安全评估指标;利用由所述数据需求方设备提供的所述公钥对接收到的所述明文安全评估指标进行加密以生成第二密文安全评估指标;比较所述第一密文安全评估指标与所述第二密文安全评估指标以确定它们的一致性,并基于所述一致性生成相应的模型安全评估报告;以及将所述模型安全评估报告发送给所述数据源方设备。
根据本公开的第五方面,提供了一种用于加密模型的安全性评估的方法,所述方法包括:数据需求方设备向数据源方设备发送要将经同态加密的数据模型部署在所述数据源方设备上的部署请求,所述部署请求包括了基于所述数据模型的明文参数被同态加密的密文模型参数以及所述同态加密所使用的公钥;所述数据源方设备将所述被同态加密的密文模型参数以及所述公钥转发给安全性评估方设备;所述安全性评估方设备利用接收到的所述被同态加密的密文模型参数通过计算得到第一密文安全评估指标,并将所述第一密文安全评估指标发送给所述数据需求方设备;所述数据需求方设备利用与所述公钥相对应的私钥解密接收到的所述第一密文安全评估指标以生成明文安全评估指标,并将所述明文安全评估指标转发给所述安全性评估方设备;所述安全性评估方设备利用由所述数据需求方设备提供的所述公钥对接收到的所述明文安全评估指标进行加密以生成第二密文安全评估指标,比较所述第一密文安全评估指标与所述第二密文安全评估指标以确定它们的一致性,并基于所述一致性生成相应的模型安全评估报告,再将所述模型安全评估报告发送给所述数据源方设备;以及所述数据源方设备根据接收到的所述模型安全评估报告审批是否部署所述数据需求方设备提供的经同态加密的数据模型。
根据本公开的第六方面,如第五方面所述的方法还包括:在所述数据需求方设备向所述数据源方设备发送所述部署请求之前,已经利用来自各个源的数据作为模型特征来训练所述数据模型,并通过对所述模型参数进行同态加密得到加密数据模型。
根据本公开的第七方面,如第五方面所述的方法还包括:当发生多次评估时,通过对多个所述第一密文安全评估指标和第二密文安全评估指标的比较结果进行综合考虑来生成综合的模型安全评估报告。
根据本公开的第八方面,如第五方面所述的方法也可以在所述数据源方设备部署了所述经同态加密的数据模型之后被执行以用于评估所述数据需求方所提供的明文模型结果有没有反推所述数据源方的明细数据值的风险。
根据本公开的第九方面,如第五方面所述的方法还包括:在所述解密步骤中,在将所述明文安全评估指标发送给所述安全评估方之前,所述数据需求方可以通过将所述解密出的方差Var与根据明文算出的Var比较来进行审核以避免泄露模型参数
根据本公开的第十方面,如第五方面所述的方法还包括:随同所述公钥还提供了一个随机数以保证在相同随机数条件下相同公钥对同一个数据加密结果一致。
根据本公开的第十一方面,提供了一种用于加密模型的安全性评估的数据需求方设备,所述数据需求方设备被配置为:向数据源方设备发送要将经同态加密的数据模型部署在所述数据源方设备上的部署请求,所述部署请求包括了基于所述数据模型的明文参数被同态加密的密文模型参数以及所述同态加密所使用的公钥;从所述数据源方设备接收第一密文安全评估指标;以及利用与所述公钥相对应的私钥解密接收到的第一密文安全评估指标以生成明文安全评估指标并将所述明文安全评估指标转发给所述数据源方设备。
根据本公开的第十二方面,提供了一种用于加密模型的安全性评估的数据源方设备,所述数据源方设备被配置为:从数据需求方设备接收要将经同态加密的数据模型部署在所述数据源方设备上的部署请求,所述部署请求包括了被同态加密的密文模型参数以及所述同态加密所使用的公钥;利用所述被同态加密的密文模型参数通过计算得到第一密文安全评估指标并将所述第一密文安全评估指标发送给数据需求方设备;从所述数据需求方设备接收明文安全评估指标;利用由所述数据需求方设备提供的所述公钥对接收到的所述明文安全评估指标进行加密以生成第二密文安全评估指标;比较所述第一密文安全评估指标与所述第二密文安全评估指标以确定它们的一致性,并基于所述一致性生成相应的模型安全评估报告;以及根据所述模型安全评估报告审批是否部署所述数据需求方设备提供的经同态加密的数据模型。
根据本公开的第十三方面,提供了一种用于加密模型的安全性评估的方法,所述方法包括:数据需求方设备向数据源方设备发送要将经同态加密的数据模型部署在所述数据源方设备上的部署请求,所述部署请求包括了基于所述数据模型的明文参数被同态加密的密文模型参数以及所述同态加密所使用的公钥;所述数据源方设备利用接收到的所述被同态加密的密文模型参数通过计算得到第一密文安全评估指标并将所述第一密文安全评估指标发送给所述数据需求方设备;所述数据需求方设备利用与所述公钥相对应的私钥解密接收到的所述第一密文安全评估指标以生成明文安全评估指标,并将所述明文安全评估指标转发给所述数据源方设备;所述数据源方设备利用由所述数据需求方设备提供的所述公钥对接收到的所述明文安全评估指标进行加密以生成第二密文安全评估指标,比较所述第一密文安全评估指标与所述第二密文安全评估指标以确定它们的一致性,并基于所述一致性生成相应的模型安全评估报告;以及根据所述模型安全评估报告审批是否部署所述数据需求方设备提供的经同态加密的数据模型。
根据本公开的第十四方面,如第十三方面所述的方法还包括:在所述数据需求方设备向所述数据源方设备发送所述部署请求之前,已经利用来自各个源的数据作为模型特征来训练所述数据模型,并通过对所述模型参数进行同态加密得到加密数据模型。
根据本公开的第十五方面,如第十三方面所述的方法还包括:当发生多次评估时,通过对多个所述第一密文安全评估指标和第二密文安全评估指标的比较结果进行综合考虑来生成综合的模型安全评估报告。
根据本公开的第十六方面,如第十三方面所述的方法也可以在所述数据源方设备部署了所述经同态加密的数据模型之后被执行以用于评估所述数据需求方所提供的明文模型结果有没有反推所述数据源方的明细数据值的风险。
根据本公开的第十七方面,如第十三方面所述的方法包括:随同所述公钥还提供了一个随机数以保证在相同随机数条件下相同公钥对同一个数据加密结果一致。
提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
附图说明
为了描述可获得本公开的上述和其它优点和特征的方式,将通过参考附图中示出的本公开的具体实施例来呈现以上简要描述的本公开的更具体描述。可以理解,这些附图只描绘了本公开的各典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释本公开,在附图中:
图1示出了本公开的一个示例性运行计算环境。
图2是根据本公开的一个实施例的加密模型安全部署评估方案。
图3根据本公开的一个实施例的加密模型安全部署评估方法的流程图。
图4示出了本公开的另一个示例性运行计算环境。
图5是根据本公开的另一个实施例的加密模型安全部署评估方案。
图6根据本公开的另一个实施例的加密模型安全部署评估方法的流程图。
具体实施方式
首先,为了解决在部署数据模型时的安全性和隐私之间的矛盾,在传统模型安全部署方案中,在部署加密数据模型之前,提供了可信评估方作为第三方评估机构来审批所述要部署的加密数据模型是否安全,它可以从数据需求方获取明文模型参数,然后,在基于该明文模型参数计算出模型安全性评估指标后,就向数据源方输出模型参数安全性评估报告。数据源方根据该安全性评估报告来判断模型安全性并决定是否将其部署在本地。
但是,这种传统的评估方案存在很大的缺陷,即其方案是建立在假定可信评估方是完全可以信任的第三方的基础上,但在现实世界中,即使并非第三方刻意为之,但总是有各种入侵者试图利用各种漏洞或后门攻破可信第三方的安全壁垒来盗取各种有价值的数据。由于数据需求方将模型参数以明文方式传送给可信评估方以计算模型安全性评估指标,因此,一旦可信评估方被攻破(例如被植入木马程序),则所述明文模型参数很有可能被木马程序偷偷地传送给入侵者,从而导致数据需求方的模型明文在无人察觉的情况下被暴露给入侵者。
或者,在另一种情况下,假如评估方实际上和数据源方形成共谋,以将数据需求方的模型参数明文泄露给数据源方(这种泄露对于正常状态下的可信评估方来说是绝对禁止的,但不能排除可信评估方中的内部工作人员的私下共谋行为的存在可能性),则数据需求方的加密模型明文也会暴露给数据源方。无论是上述哪种情况,都将使得数据需求方的模型安全性受到严重的威胁。所以,传统模型安全部署方案并不能很好地解决模型安全部署的问题。
而另一方面,随着互联网的发展和云计算概念的诞生,以及人们在密文搜索、电子投票、移动代码和多方计算等方面的需求日益增加,同态加密(Homomorphic Encryption)变得更加重要。同态加密是一类具有特殊自然属性的加密方法,它是一种基于数学难题的计算复杂性理论的密码学技术。对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。与一般加密算法相比,同态加密除了能实现基本的加密操作之外,还能实现密文间的多种计算功能,即先计算后解密可等价于先解密后计算。本质上,同态加密是指这样一种加密函数:对明文进行环上的加法和乘法运算再加密,与加密后对密文进行相应的运算,结果是等价的。正是同态加密这种特殊自然属性,使得要彻底解决部署数据模型时的安全性和隐私之间的矛盾变得可能。
在具体介绍本公开的方案之前,首先对同态加密的具体算法加以说明,以帮助技术人员清楚认识到同态算法的所述特殊自然属性。
具有同态性质的加密函数是指两个明文a、b满足Dec(En(a)⊙En(b))=a⊕b的加密函数,其中En是加密运算,Dec是解密运算,⊙、⊕分别对应明文和密文域上的运算。当⊕代表加法时,称该加密为加同态加密:当⊙代表乘法时,称该加密为乘同态加密。而全同态加密是指同时满足加同态和乘同态性质,可以进行任意多次加和乘运算的加密函数。用数学公式来表达,即Dec(f(En(m1),En(m2),…,En(mk)))=f(m1,m2,…,mk),或写成:f(En(m1),En(m2),…,En(mk))=En(f(m1,m2,…,mk)),如果f是任意函数,称为全同态加密。
为了便于理解,下面对最常用的同态加密算法加以说明。最常用的同态加密算法有加法同态Paillier算法、乘法同态Elgamal算法、基于LWE的全同态算法。下面给出同态加密算法的定义。
令加密运算为c=E(PK,m),解密运算为m=D(SK,d)。其中,m为明文,c为密文,SK为加密密钥,E(,)为加密函数,D(,)为解密函数。
加法同态加密算法性质:可实现如下的加法同态运算,还可以利用多次加法同态运算实现数乘同态运算。
加法同态运算:HAdd(c1,c2)
给定明文m1和m2的密文c1和c2,即c1=E(PK,m1),c2=E(PK,m2)。对c1和c2计算可得到m1+m2的密文,即有下式成立:
HAdd(c1,c2)=E(PK,m1+m2)
数乘同态运算:HSM(c1,m2)
给定明文m1的密文c1和明文m2,对c1执行m2次HAdd(,)运算可以得到m1×m2的密文。例如,当m2=3时,有下式成立:
HSM(c1,m2)=HAdd(c1,HAdd(c1,HAdd(c1,c1)))=E(PK,m1×m2)
乘法同态加密算法性质:可实现如下的乘法同态运算:
乘法同态运算:HMul(c1,c2)
给定明文m1和m2的密文c1和c2,即c1=E(PK,m1),c2=E(PK,m2)。对c1和c2计算可得到m1×m2的密文,即有下式成立:
HMul(c1,c2)=E(PK,m1×m2)。
由此可见,在上式中,对明文进行环上的加法和乘法运算再加密,与加密后对密文进行相应的运算,其结果都是等价的。利用这个特殊自然属性,有助于解决部署数据模型时的安全性和隐私之间的矛盾。上述算法公式都是同态加密领域的基本知识,在此不再进一步详细描述。
在了解了同态加密的基本算法和含义之后,为使本公开的目的、技术方案及优点更加清楚明白,以下参照附图并例举实施例,对本公开作进一步详细说明。
首先,在图1中示出了本公开的一个实施例的一个示例性运行计算环境。在图1所示的计算环境中,包含了数据需求方设备110(简称为“数据需求方110”)、安全性评估方设备120(简称为“安全性评估方120”)以及数据源方设备130(简称为“数据源方130”)这三方。所述数据需求方、安全性评估方以及数据源方可以由安全计算节点,例如个人计算机、服务器、客户端、移动设备(例如手机、个人数字助理、平板等)以及各种计算设备等构成。在所述各方之间,通过网络进行数据通信,所述网络包括各种类型的有线和无线网络,包括但不局限于互联网、局域网、WIFI、WLAN、蜂窝通信网络(GPRS、CDMA、2G/3G/4G/5G蜂窝网络)、卫星通信网络等等。通过所述数据通信网络,数据需求方、安全性评估方以及数据源方可以相互传送各种数据以供处理。在如图2所示的本公开的一个实施例中的加密模型安全部署评估方案中,就涉及在这三方之间的数据交换。而在另一个实施例中,所述方案可以仅仅涉及数据需求方110和数据源方130这两者,该方案在图4和5中有详细描述。
在描述了图1的本公开的一个实施例的示例性运行计算环境之后,接着,结合所述运行计算环境来描述一种利用同态加密来更加安全稳健的模型安全部署评估机制。如图2所示,示出了一种在数据需求方110、安全性评估方120以及数据源方130这三方之间实现的模型安全部署评估的整体方案。首先,数据需求方110向数据源方130发送要将数据模型(例如训练好的机器学习模型)经过同态加密后部署在数据源方130上的部署请求,在所述部署请求中包含了基于所述数据模型的明文参数被同态加密的密文模型参数以及加密所使用的公钥。在发起所述部署请求之前,数据需求方110已经利用来自各个源的数据作为模型特征来训练出数据模型,并用公钥对所述数据模型的模型参数进行同态加密后得到了加密数据模型(密文模型)。注意,在各实施例中,是以线性回归模型作为机器学习模型的一个示例来进行描述,但应该理解所述数据模型并不局限于线性回归模型,而是可以应用于各种类型的数据模型,例如模型结果为预测概率值的其他密文模型,如逻辑回归、回归决策树等数据模型。在本公开的上下文中,原始的数据模型也被称为“明文模型”,而经同态加密后的数据模型也被称为“密文模型”。在接收到来自数据需求方110的包含经同态加密的密文模型参数和公钥的请求之后,数据源方130将经同态加密的密文模型参数的顺序打乱,随后,将被打乱顺序的经同态加密的密文模型参数与所述公钥一起传送给安全性评估方120或直接将经同态加密的密文模型参数和公钥一起传送给安全性评估方120。所述安全性评估方120在获取经同态加密的密文模型参数和公钥后,利用该经同态加密的密文模型参数通过计算得到第一密文安全评估指标(在本实施例中以方差计算为例),并将该第一密文安全评估指标传送给数据需求方110。数据需求方110利用与所述公钥相对应的私钥解密接收到的第一密文安全评估指标以生成明文安全评估指标,接着将明文安全评估指标回传给安全评估方120。安全评估方120利用先前由数据需求方110提供的公钥对接收到的明文安全评估指标进行加密以生成第二密文安全评估指标,并将所述第二密文安全评估指标与第一密文安全评估指标进行比较以确定它们的一致性。接着,安全评估方120根据所述一致性生成相应的模型安全评估报告并将其返回给数据源方130以供其参考。其中,当第一密文安全评估指标与第二密文安全评估指标一致时,可以提供所述密文模型是安全的模型安全评估报告,反之,当第一密文安全评估指标与第二密文安全评估指标不一致时,可以提供所述密文模型是不安全(例如数据需求方110可能在解密过程中造假)的模型安全评估报告。在接收到来自安全评估方120的模型安全评估报告之后,数据源方130根据模型安全评估报告审批所述模型部署请求,即如果模型安全评估报告指示所述密文模型是安全的则批准部署所述密文模型,否则拒绝部署该密文模型并可向数据需求方110返回拒绝部署的提示。当审批批准后,在数据源方130上部署所述经加密的密文模型。至此,所述方案结束。
在本公开的所述方案中,安全评估方只能拿到密文形式下的密文模型参数,因此,没有从其泄露出模型参数明文的风险;同时,数据需求方在将第一密文安全评估指标解密成明文安全评估指标之后,不是直接将明文安全评估指标发送给数据源方,而是先由安全评估方对数据需求方解密之前和之后的两份安全评估指标进行校验后生成模型安全评估报告,再将该报告返回给数据源方,从而防止了数据需求方在解密过程中造假(如果数据需求方提供的是加密密文指标则根据同态加密技术的特点,在安全评估方处对第一和第二这两份密文安全评估指标的比较就不可能一致)。由此可见,本公开的加密模型安全部署评估方案解决了传统模型安全部署方案中所存在的各种缺陷,提供了具有改进性能的更加安全稳健的模型安全部署评估机制。
在了解了本公开的加密模型安全部署评估方案的概况之后,在图3中示出了根据本公开的一个实施例的利用同态加密的模型安全部署评估方法的流程图。所述流程图与图2所示的评估方案相对应。该流程图同样涉及在数据需求方110、安全性评估方120以及数据源方130这三者之间的数据流动。
首先,在步骤310,数据需求方110生成同态加密的加密密钥(公钥PK)和解密密钥(私钥SK),对模型参数进行同态加密以生成加密数据模型,随后,向数据源方130发送要将经过同态加密后的数据模型部署在数据源方130上的部署请求,在所述部署请求中包含了基于所述数据模型的明文参数被同态加密的密文模型参数以及所述同态加密所使用的公钥PK。具体的模型加密过程如下:
算法输入:k+1个模型参数a_0,a_1,…,a_k。
算法过程:c_0=E(PK,a_0),c_1=E(PK,a_1),…,c_k=E(PK,a_k)。
算法输出:k+1个加密模型参数c_0,c_1,…,c_k。
其中,应该理解上述算法示例仅仅是出于说明目的的简单加密过程的演示。实际上,根据非对称加密技术的特点,出于安全性考虑,采用非对称加密时,随同所述公钥还会提供一个随机数给数据评估方,以保证在相同随机数条件下相同公钥对同一个数据加密结果一致。“随机数”是非对称加密的常用安全手段,与本公开本身的关系不大,因此,不再在此深入展开。
随后,在步骤320,在接收到所述部署请求之后,数据源方130将经同态加密的密文模型参数(即c_0,c_1,…,c_k,其顺序可以被打乱)和公钥(即PK)一起传送给安全性评估方120。
接着,在步骤330,所述安全性评估方120在获取经同态加密的密文模型参数和公钥后,利用该经同态加密的密文模型参数通过计算得到第一密文安全评估指标,并将该第一密文安全评估指标传送给数据需求方110。在本公开中,“安全性评估指标”是指根据同态性质利用加密模型参数计算出的方差(var)或极差之类的统计指标。使用所述统计指标可以防止出现模型中某个特征的参数远大于其他特征的参数的情况。这种远大于其他特征的参数的参数很可能是用于反推其对应的原始值的“恶意”参数。因此,通过方差计算,可以使得可能的“恶意”参数彻底失去作用。在本实施例中通过对经同态加密的密文模型参数执行方差计算来作为计算安全性评估指标的一个示例,其算法如下:
算法输入:k+1个加密模型参数c_0,c_1,…,c_k。
算法过程:密文(样本)方差指标为:
Var_E=HAdd(HSM(HAdd(HMul(c_0,c_0),HMul(c_1,c_1),…,
HMul(c_k,c_k)),1/k),HSM(HMul(HAdd(c_0,c_1,…,c_k),
HAdd(c_0,c_1,…,c_k)),-1/(k*(k+1)))。
其中,如前所述,HAdd()表示加法同态运算,HSM()表示数乘同态运算,而HMul()表示乘法同态运算。
在步骤340,数据需求方110利用与所述公钥相对应的私钥SK解密接收到的第一密文模型安全评估指标中的密文参数以生成明文安全评估指标(Var=D(SK,Var_E)并将该明文安全评估指标发给安全性评估方120。
在步骤350,安全评估方120利用由数据需求方110提供的公钥PK对接收到的明文安全评估指标进行加密以生成第二密文安全评估指标:
Var_E2=E(PK,Var)。
其中,如前所述,Var表示方差,E(,)为加密函数,D(,)为解密函数,SK为私钥,而PK为公钥。
在步骤360,安全评估方120将(步骤330生成的)所述第一密文安全评估指标与第二密文安全评估指标进行比较以确定它们的一致性,即将Var_E与Var_E2进行比较。其中,如果数据需求方110是意图通过造假模型参数来恶意套取数据源方的明细数据,则在数据需求方110用私钥SK解密时造假的模型参数必然导致所生成的明文安全评估指标的明文参数发生变化,进而导致在安全评估方120处基于所述明文参数加密生成的Var_E2与Var_E不一致。这种不一致性,揭示了数据需求方110在步骤340解密时进行了造假。
在步骤370,安全评估方120基于所述一致性生成相应的模型安全评估报告并将其返回给数据源方130以供其参考。其中,当第一密文安全评估指标与第二密文安全评估指标一致时,可以提供所述数据模型是安全的模型安全评估报告,反之,当第一密文安全评估指标与第二密文安全评估指标不一致时,可以提供所述数据模型是不安全(例如数据需求方110可能在解密过程中造假)的模型安全评估报告。
最后,在步骤380,数据源方130根据接收到的模型安全评估报告,审批所述模型部署请求,即如果模型安全评估报告指示所述加密密文模型是安全的则批准部署所述密文模型,否则拒绝部署所述密文模型并可向数据需求方110返回拒绝部署的提示。当批准部署后,在数据源方130上部署所述加密的密文模型。
至此,所述评估方法的整个流程结束。需要理解的是,本公开所涉及的同态加密和解密算法利用了常用的同态加密解密算法中的一些参数、函数和算式。这些参数、函数和算式都是同态加密的基本常识,因此,不再在此过多描述。上述示例算法仅仅是为了说明性目的提供的,并不是要把本公开的同态加密、解密以及计算局限于上述算法。实际上,技术人员可以根据实际需要选择其他任何合适的同态加密和解密和计算算法。
在一个改进实施例中,在步骤330中基于经同态加密的密文模型参数生成方差Var_E之后,还可以将该方差与设定的一个阈值进行比较,如果所述方差超过该阈值则判定为不安全,因为所述模型参数可能是用来攻击模型的造假参数。
在一个改进的实施例中,提供了一种综合的安全等级评估报告,即在该报告的生成过程中,可以存在多次评估,进而同时提供了多个第一安全评估指标和第二密文安全评估指标,通过对这些第一密文安全评估指标和第二密文安全评估指标的比较结果进行综合考虑(例如评分)之后,就能获得更加准确的综合的安全等级评估报告。具体而言,数据源方130可以要求数据需求方110在不同的时间多次发送部署请求,并将每次部署请求中的加密模型参数和公钥发送给安全评估方120。同样,安全评估方120也在每次对加密模型参数进行计算生成第一安全评估指标后将该第一安全评估指标发送给数据需求方110,并在接收到经数据需求方110解密后的明文安全评估指标后使用公钥对所述明文安全评估指标进行加密以生成相应的第二密文安全评估指标并与相应的第一安全评估指标进行比较。随后,综合每次比较后的结果再生成综合的安全等级评估报告。所述综合可以包括当多次比较结果中有一次结果超过阈值就给出不安全的评估,或者对所有结果进行加权平均后获得一个总的安全评分分数加入报告中以反馈给数据源方130,等等。在另一个改进的实施例中,在步骤340的数据需求方110解密接收到的密文模型安全评估指标中的密文参数以生成明文安全评估指标的步骤中,在将明文安全评估指标发送给安全评估方120之前,数据需求方可以通过将所述解密出的方差Var与根据明文算出的Var比较来进行审核,以确定是否有人将一个加密的模型参数变型后假冒成Var_E让数据需求方110解密。通过所述审核,可以发现这种假冒行为以避免泄露模型参数。
在其它实施例中,所述模型安全性评估方案还可以用于在加密数据模型被部署到数据源方之后的模型结果评估中,以评估数据需求方110所提供的明文模型结果有没有反推数据源方的明细数据值的风险。在数据源方存储有大量有价值的数据,因此,如果数据需求方110所提供的数据模型所提供的明文模型结果可以轻易推算出数据源方输入的明细数据值,则说明数据需求方110可能设定了特定的模型参数来进行反推。因此,可以使用本公开的模型安全性评估方案对已部署的加密数据模型进行审计以确定是否存在反推风险。由于其过程类似,不再在此详细陈述。
另外,如前所述,在非对称加密过程中,随同所述公钥还会提供一个随机数,以保证在相同随机数条件下相同公钥对同一个数据加密结果一致。因此,在上述涉及公钥的步骤中,实际上还包含了随机数的处理。但所述“随机数”是非对称加密的常用安全手段
上面主要描述的是在数据需求方、安全性评估方以及数据源方这三方之间的模型安全部署评估机制。而根据本公开的另一个实施例,也提供了一种利用同态加密来更加安全稳健的模型安全部署评估机制。如图4所示,示出了一种在无需安全性评估方的情况下,在数据需求方110以及数据源方130这两方之间实现的模型安全部署评估的示例性运行环境。在该示例性运行环境中,数据需求方110以及数据源方130通过网络直接双向通信,而不需要安全性评估方的参与。
而在图5中示出了根据本公开的另一个实施例的加密模型安全部署评估方案。
首先,数据需求方110向数据源方130发送要将数据模型(例如训练好的机器学习模型)经过同态加密后部署在数据源方130上的部署请求,在所述部署请求中包含了基于所述数据模型的明文参数被同态加密的密文模型参数以及加密所使用的公钥。在接收到来自数据需求方110的包含经同态加密的密文模型参数和公钥的请求之后,数据源方130利用该经同态加密的密文模型参数通过计算得到第一密文安全评估指标,并将该第一密文安全评估指标传送给数据需求方110。数据需求方110利用与所述公钥相对应的私钥解密接收到的密文模型安全评估指标以生成明文安全评估指标,接着将明文安全评估指标回传给数据源方130。数据源方130利用先前由数据需求方110提供的公钥对接收到的明文安全评估指标进行加密以生成第二密文安全评估指标,并将所述第二密文安全评估指标与第一密文安全评估指标进行比较以确定它们的一致性。接着,数据源方130根据所述一致性生成相应的模型安全评估报告。其中,当第一密文安全评估指标与第二密文安全评估指标一致时,可以提供所述数据模型是安全的模型安全评估报告,反之,当第一密文安全评估指标与第二密文安全评估指标不一致时,可以提供所述数据模型是不安全(例如数据需求方110可能在解密过程中造假)的模型安全评估报告。然后,数据源方130根据模型安全评估报告审批所述模型部署请求,即如果模型安全评估报告指示所述加密密文模型是安全的则批准部署所述密文模型,否则拒绝部署所述密文模型并可向数据需求方110返回拒绝部署的提示。当审批批准后,在数据源方130上部署所述加密的密文模型。至此,所述方案结束。
所述模型安全评估报告的生成方便了对其进行存档以备将来使用,也即如果所述模型安全评估报告显示来自所述数据需求方110的数据模型是不安全的,则在今后再收到来自同一数据需求方110的后续部署请求后,可以直接查阅所存储的先前生成的与该数据需求方110相关联的模型安全评估报告来直接拒绝来自该数据需求方110的后续部署请求以节省资源。
因此,在一个实施例中,也可以跳过所述安全评估报告生成的步骤,而直接根据第一密文安全评估指标与第二密文安全评估指标的比较结果来审批所述模型部署请求,即如果第一密文安全评估指标与第二密文安全评估指标的比较结果为一致,则批准部署所述密文模型,反之,如果比较结果不一致,则拒绝部署所述密文模型。
在本公开的所述方案中,数据源方130只能拿到密文形式下的模型参数,因此,没有泄露模型参数明文的风险;同时数据需求方110在对第一密文安全评估指标解密之后,由数据源方130通过利用公钥对明文安全评估指标进行加密以生成第二密文安全评估指标并对数据需求方解密前和后的这两份安全评估指标进行校验后生成模型安全评估报告,从而防止了数据需求方在解密过程中造假(如果提供的是造假指标则根据同态加密技术的特点,这两份密文安全评估指标不可能一致)。由此可见,本公开的加密模型安全部署评估方案解决了传统模型安全部署方案中所存在的各种缺陷,提供了具有改进性能的更加安全稳健的模型安全部署评估机制。
在了解了本公开的另一个实施例的加密模型安全部署评估方案的概况之后,在图6中示出了根据本公开的该另一个实施例的利用同态加密的模型安全部署评估方法的流程图。所述流程图涉及在数据需求方110以及数据源方130这两者之间的数据流动。其中与图3相类似的内容、定义和描述不再详述。
首先,在步骤610,数据需求方110生成同态加密的加密密钥(公钥PK)和解密密钥(私钥SK),对模型参数进行同态加密以生成加密数据模型,随后,向数据源方130发送要将经过同态加密后的数据模型部署在数据源方130上的部署请求,在所述部署请求中包含了基于所述数据模型的明文参数被同态加密的密文模型参数以及加密所使用的公钥PK。具体的加密过程如下:
算法输入:k+1个模型参数a_0,a_1,…,a_k。
算法过程:c_0=E(PK,a_0),c_1=E(PK,a_1),…,c_k=E(PK,a_k)。
算法输出:k+1个加密模型参数c_0,c_1,…,c_k。
随后,在步骤620,所述数据源方130在接收到所述部署请求之后,利用该经同态加密的密文模型参数通过计算得到第一密文安全评估指标,并将该第一密文安全评估指标传送给数据需求方110。所述计算指标可以是例如根据同态性质利用加密模型参数计算极差、方差类型之类的统计指标,以防止模型中某个特征的参数远大于其他特征的参数。这种远大于其他特征的参数的参数很可能是用于反推其对应的原始值的“恶意”参数。以方差为例,其算法如下:
算法输入:k+1个加密模型参数c_0,c_1,…,c_k。
算法过程:密文(样本)方差指标为:
Var_E=HAdd(HSM(HAdd(HMul(c_0,c_0),HMul(c_1,c_1),…,HMul(c_k,c_k)),1/k),HSM(HMul(HAdd(c_0,c_1,…,c_k),HAdd(c_0,c_1,…,c_k)),-1/(k*(k+1)))。
在步骤630,数据需求方110利用与所述公钥相对应的私钥SK解密接收到的第一密文模型安全评估指标中的密文参数以生成明文安全评估指标(Var=D(SK,Var_E)并将该明文安全评估指标返回给数据源方130。
在步骤640,所述数据源方130利用由数据需求方110提供的公钥PK对接收到的明文安全评估指标进行加密以生成第二密文安全评估指标Var_E2=E(PK,Var)。
在步骤650,数据源方130将(在步骤620生成的)所述第一密文安全评估指标与第二密文安全评估指标进行比较以确定它们的一致性,即将Var_E与Var_E2进行比较。其中,如果数据需求方110是意图通过造假模型参数来恶意套取数据源方的明细数据,则在解密时进行的造假必然导致明文安全评估指标的明文参数发生变化,进而导致基于所述明文参数生成的Var_E2与先前计算的Var_E不一致。这种不一致性,揭示了数据需求方110在解密时进行了造假。
在步骤660,数据源方130基于所述一致性生成相应的模型安全评估报告。其中,当第一密文安全评估指标与第二密文安全评估指标一致时,可以提供所述数据模型是安全的模型安全评估报告,反之,当第一密文安全评估指标与第二密文安全评估指标不一致时,可以提供所述数据模型是不安全(例如数据需求方110可能在解密过程中造假)的模型安全评估报告。
最后,在步骤670,数据源方130根据所述模型安全评估报告,审批所述模型部署请求,即如果模型安全评估报告指示所述加密密文模型是安全的则批准部署所述密文模型,否则拒绝部署所述密文模型并可向数据需求方110返回拒绝部署的提示。当审批批准后,在数据源方130上部署所述加密的密文模型。
在一个改进的实施例中,提供了一种综合的安全等级评估报告,即在该报告的生成过程中,可以存在多次评估,进而同时提供了多个第一安全评估指标和第二密文安全评估指标,通过对这些第一密文安全评估指标和第二密文安全评估指标的多次比较结果进行综合考虑(例如进行加权求和,过滤最大和最小差异等等),就能获得更加准确的综合的安全等级评估报告。具体而言,数据源方130可以要求数据需求方110在不同的时间多次发送部署请求,并在每次接收到部署请求时,都对加密模型参数进行计算生成第一安全评估指标以发送给数据需求方110,并在接收到经数据需求方110解密后的明文安全评估指标后使用公钥对所述明文安全评估指标进行加密以生成相应的第二密文安全评估指标并与相应的第一安全评估指标进行比较。随后,数据源方130综合每次比较后的结果再生成综合的安全等级评估报告。所述综合可以包括当多次比较结果中有一次结果超过阈值就给出不安全的评估,或者对所有结果进行加权平均后获得一个总的安全评分分数加入报告中以反馈安全性,等等。
在另一个改进的实施例中,在步骤340的数据需求方110解密接收到的密文模型安全评估指标中的密文参数以生成明文安全评估指标的步骤中,在将明文安全评估指标发送给安全评估方120之前,数据需求方可以通过将所述解密出的方差Var与根据明文算出的Var比较来进行审核,以确定是否是否有人将一个加密得分模型参数变型后假冒成Var_E让数据需求方110解密。通过所述审核,可以发现这种假冒行为以避免泄露模型参数。
另外,如前所述,在非对称加密过程中,随同所述公钥还会提供一个随机数,以保证在相同随机数条件下相同公钥对同一个数据加密结果一致。因此,在上述涉及公钥的步骤中,实际上还包含了随机数的处理。但所述“随机数”是非对称加密的常用安全手段。
在上述另一个实施例中,数据源方可以取代安全评估方来完成第一和第二密钥安全指标的生成、比较以及模型安全评估报告的生成。这样,进一步避免了评估方的存在可能带来的各种安全性隐患,使得所述安全评估报告更加可信。因此,其也能解决传统模型安全部署方案中所存在的各种缺陷,并提供具有改进性能的更加安全稳健的模型安全部署评估机制。
虽然以上描述了不同的实施例,但应当理解的是它们只是作为示例而非限制。(诸)相关领域的技术人员将领会,在不偏离如所附权利要求书所定义的本公开的精神和范围的情况下,可以在形式和细节方面进行各种修改。因此,此处所公开的本公开的宽度和范围不应被上述所公开的示例性实施例所限制,而应当仅根据所附权利要求书及其等同替换来定义。