本技术涉及通信,尤其涉及一种模型参数传输方法、装置及可读存储介质。
背景技术:
1、联邦学习是一种隐私保护下的分布式机器学习与模型训练技术。在联邦学习过程中,联邦学习服务器可以聚合各个客户端本地训练得到的模型参数,得到全局模型参数,再将该全局模型参数返回各个服务器,以优化各个服务的本地模型。
2、为了确保上述模型参数在传输过程中的安全性,可以先基于公钥和私钥对需传输的模型参数进行加密。然而,由于对该模型参数进行加密需预先共享公钥和私钥,而攻击者可以通过私钥解密密文,因此会导致传输模型参数的安全性较差。
技术实现思路
1、本技术提供一种模型参数传输方法、装置及可读存储介质,能够提升传输模型参数的安全性。
2、为达到上述目的,本技术采用如下技术方案:
3、第一方面,本技术提供一种模型参数传输方法,该方法应用于半诚实的第一服务器,该方法包括:向半诚实的第二服务器发送n个客户端的目标模型参数和n个公钥,n个公钥与n个客户端一一对应,n个客户端中每个客户端的目标模型参数为:对n个客户端中一个客户端发送的加密模型参数进行盲化全同态加密处理后得到的模型参数,n为正整数;接收第二服务器发送的每个客户端的第一全局模型参数,每个客户端的第一全局模型参数为:基于对应的公钥,以及n个客户端的目标模型参数得到的全局模型参数;向每个客户端发送对应的第二全局模型参数,每个客户端对应的第二全局模型参数为:对对应的第一全局模型参数进行去盲化处理后得到的全局模型参数。本技术实施例用于模型参数的传输过程中。
4、基于上述技术方案,本技术实施例提供的模型参数传输方法,由于一方面传输的模型参数无需通过客户端对应的私钥进行加密,攻击者无法通过私钥解密密文;另一方面在模型参数的传输过程中,通过两个半诚实的服务器间的交互进行解密并返回全局模型参数,可以避免传统技术中一个不信任的服务器造成的数据泄露;因此可以提升传输模型参数的安全性。
5、在第一方面的第一种可能的实现方式中,第一服务器和第二服务器是互不勾结的。
6、在第一方面的第二种可能的实现方式中,上述向半诚实的第二服务器发送n个客户端的目标模型参数和n个公钥之前,上述模型参数传输方法还包括:接收每个客户端发送的加密模型参数和对应的公钥;对每个客户端的加密模型参数分别进行盲化全同态加密处理,得到n个客户端的目标模型参数。
7、在第一方面的第三种可能的实现方式中,上述对每个客户端的加密模型参数分别进行盲化全同态加密处理,包括:针对每个客户端的加密模型参数,为一个客户端的加密模型参数生成随机数;使用一个客户端对应的公钥对随机数进行加密,得到加密后的随机数;将加密后的随机数与一个客户端的加密模型参数进行全同态运算,得到一个客户端的目标模型参数。
8、在第一方面的第四种可能的实现方式中,上述向每个客户端发送对应的第二全局模型参数之前,上述模型参数传输方法还包括:针对每个客户端的第一全局模型参数,将一个客户端的第一全局模型参数对应的随机数进行加权平均处理,得到处理后的随机数;使用一个客户端对应的公钥对处理后的随机数进行加密,得到加密随机数;将加密随机数与一个客户端的第一全局模型参数进行全同态运算,得到一个客户端的第二全局模型参数。
9、第二方面,本技术提供一种模型参数传输装置,该装置包括第一发送模块和第一接收模块;第一发送模块,用于向半诚实的第二服务器发送n个客户端的目标模型参数和n个公钥,n个公钥与n个客户端一一对应,n个客户端中每个客户端的目标模型参数为:对n个客户端中一个客户端发送的加密模型参数进行盲化全同态加密处理后得到的模型参数,n为正整数;第一接收模块,用于接收第二服务器发送的每个客户端的第一全局模型参数,每个客户端的第一全局模型参数为:基于对应的公钥,以及n个客户端的目标模型参数得到的全局模型参数;第一发送模块,还用于向每个客户端发送对应的第二全局模型参数,每个客户端对应的第二全局模型参数为:对对应的第一全局模型参数进行去盲化处理后得到的全局模型参数。
10、在第二方面的第一种可能的实现方式中,第一服务器和第二服务器是互不勾结的。
11、在第二方面的第二种可能的实现方式中,上述装置还包括第一处理模块;第一接收模块,还用于在第一发送模块向第二服务器发送n个客户端的目标模型参数和n个公钥之前,接收每个客户端发送的加密模型参数和对应的公钥;第一处理模块,用于对每个客户端的加密模型参数分别进行盲化全同态加密处理,得到n个客户端的目标模型参数。
12、在第二方面的第三种可能的实现方式中,第一处理模块,具体用于针对每个客户端的加密模型参数,为一个客户端的加密模型参数生成随机数;且使用一个客户端对应的公钥对随机数进行加密,得到加密后的随机数;并将加密后的随机数与一个客户端的加密模型参数进行全同态运算,得到一个客户端的目标模型参数。
13、在第二方面的第四种可能的实现方式中,上述装置还包括第二处理模块;第二处理模块,用于在第一发送模块向每个客户端发送对应的第二全局模型参数之前,针对每个客户端的第一全局模型参数,将一个客户端的第一全局模型参数对应的随机数进行加权平均处理,得到处理后的随机数;且使用一个客户端对应的公钥对处理后的随机数进行加密,得到加密随机数;并将加密随机数与一个客户端的第一全局模型参数进行全同态运算,得到一个客户端的第二全局模型参数。
14、第三方面,本技术提供一种模型参数传输方法,该方法应用于半诚实的第二服务器,该方法包括:接收半诚实的第一服务器发送的n个客户端的目标模型参数和n个公钥,n个公钥与n个客户端一一对应,n个客户端中每个客户端的目标模型参数为:对n个客户端中一个客户端发送的加密模型参数进行盲化全同态加密处理后得到的模型参数,n为正整数;向第一服务器发送每个客户端的第一全局模型参数,每个客户端的第一全局模型参数为:基于对应的公钥,以及n个客户端的目标模型参数得到的全局模型参数。
15、在第三方面的第一种可能的实现方式中,第一服务器和第二服务器是互不勾结的。
16、在第三方面的第二种可能的实现方式中,上述向第一服务器发送每个客户端的第一全局模型参数之前,上述模型参数传输方法还包括:使用主密钥解密算法对每个客户端的目标模型参数分别进行解密,得到n个客户端的盲化模型参数;聚合n个客户端的盲化模型参数,得到聚合模型参数;分别使用每个客户端对应的公钥对聚合模型参数进行加密,得到每个客户端的第一全局模型参数。
17、在第三方面的第三种可能的实现方式中,上述接收半诚实的第一服务器发送的n个客户端的目标模型参数和n个公钥之前,上述模型参数传输方法还包括:生成公共参数与主密钥,公共参数用于每个客户端生成对应的公钥,主密钥用于解密每个客户端生成的公钥;通过第一服务器向每个客户端发送公共参数。
18、基于上述技术方案,本技术实施例提供的模型参数传输方法,由于一方面传输的模型参数无需通过客户端对应的私钥进行加密,攻击者无法通过私钥解密密文;另一方面在模型参数的传输过程中,通过两个半诚实的服务器间的交互进行解密并返回全局模型参数,可以避免传统技术中一个不信任的服务器造成的数据泄露;因此可以提升传输模型参数的安全性。
19、第四方面,本技术提供一种模型参数传输装置,该装置包括第二接收模块和第二发送模块;第二接收模块,用于接收半诚实的第一服务器发送的n个客户端的目标模型参数和n个公钥,n个公钥与n个客户端一一对应,n个客户端中每个客户端的目标模型参数为:对n个客户端中一个客户端发送的加密模型参数进行盲化全同态加密处理后得到的模型参数,n为正整数;第二发送模块,用于向第一服务器发送每个客户端的第一全局模型参数,每个客户端的第一全局模型参数为:基于对应的公钥,以及n个客户端的目标模型参数得到的全局模型参数。
20、在第四方面的第一种可能的实现方式中,第一服务器和第二服务器是互不勾结的。
21、在第四方面的第二种可能的实现方式中,上述装置还包括第三处理模块;第三处理模块,用于在第二发送模块向第一服务器发送每个客户端的第一全局模型参数之前,使用主密钥解密算法对每个客户端的目标模型参数分别进行解密,得到n个客户端的盲化模型参数;且聚合n个客户端的盲化模型参数,得到聚合模型参数;并分别使用每个客户端对应的公钥对聚合模型参数进行加密,得到每个客户端的第一全局模型参数。
22、在第四方面的第三种可能的实现方式中,上述装置还包括生成模块;生成模块,用于在第二接收模块接收第一服务器发送的n个客户端的目标模型参数和n个公钥之前,生成公共参数与主密钥,公共参数用于每个客户端生成对应的公钥,主密钥用于解密每个客户端生成的公钥;第二发送模块,还用于通过第一服务器向每个客户端发送公共参数。
23、第五方面,本技术提供了一种模型参数传输装置,该装置包括:处理器和通信接口;通信接口和处理器耦合,处理器用于运行计算机程序或指令,以实现如第一方面和第一方面的任一种可能的实现方式中所描述的模型参数传输方法,或者实现如第三方面和第三方面的任一种可能的实现方式中所描述的模型参数传输方法。
24、第六方面,本技术提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当指令在终端上运行时,使得终端执行如第一方面和第一方面的任一种可能的实现方式中所描述的模型参数传输方法,或者执行如第三方面和第三方面的任一种可能的实现方式中所描述的模型参数传输方法。
25、第七方面,本技术实施例提供一种包含指令的计算机程序产品,当计算机程序产品在数据管理装置上运行时,使得数据管理装置执行如第一方面和第一方面的任一种可能的实现方式中所描述的模型参数传输方法,或者执行如第三方面和第三方面的任一种可能的实现方式中所描述的模型参数传输方法。
26、第八方面,本技术实施例提供一种芯片,芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行计算机程序或指令,以实现如第一方面和第一方面的任一种可能的实现方式中所描述的模型参数传输方法,或者实现如第三方面和第三方面的任一种可能的实现方式中所描述的模型参数传输方法。
27、具体的,本技术实施例中提供的芯片还包括存储器,用于存储计算机程序或指令。