CN115913554B - 基于国密的高效匿踪联邦学习方法、系统及相关设备 - Google Patents
基于国密的高效匿踪联邦学习方法、系统及相关设备 Download PDFInfo
- Publication number
- CN115913554B CN115913554B CN202310233218.0A CN202310233218A CN115913554B CN 115913554 B CN115913554 B CN 115913554B CN 202310233218 A CN202310233218 A CN 202310233218A CN 115913554 B CN115913554 B CN 115913554B
- Authority
- CN
- China
- Prior art keywords
- party
- data
- key
- target
- public
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例公开了一种基于国密的高效匿踪联邦学习方法、系统及相关设备,应用于两方计算系统,所述两方计算系统包括第一方和第二方,该方法包括:支持国密算法的基于椭圆曲线上的DH密钥协商的高效匿踪联邦学习方案,保证安全可控的前提下,提升了计算效率,降低了通信量,且能够通过改进Paillier加解密方案,实现批量操作,进一步提升计算效率。采用本申请实施例可以提升匿踪联邦学习效率。
Description
技术领域
本申请涉及隐私计算技术领域以及计算机技术领域,具体涉及一种基于国密的高效匿踪联邦学习方法、系统及相关设备。
背景技术
目前,匿踪联邦学习技术主要用于两参与方在不泄露各自索引-数据(id,value)集合及索引交集的前提下,通过交互进行模型训练。此过程各方无法得到对方集合的信息,同时无法了解本地集合中哪些索引属于交集。现有的联合风控、联合建模技术均未对交集部分的原始索引信息进行保护,因此本技术在联合风控、联合建模等领域的增强隐私保护场景中有重要应用。但是,目前的匿踪联邦学习效率较为一般,因此,如何提升匿踪联邦学习效率的问题亟待解决。
发明内容
本申请实施例提供了一种基于国密的高效匿踪联邦学习方法、系统及相关设备,可以提升匿踪联邦学习效率。
第一方面,本申请实施例提供一种基于国密的高效匿踪联邦学习方法,应用于两方计算系统,所述两方计算系统包括第一方和第二方,所述第一方对应第一本地数据集合,所述第二方对应第二本地数据集合;所述第一本地数据集合包括多个第一数据对,每一第一数据对包括第一数据和第二数据,所述第二本地数据集合包括多个第二数据对,每一第二数据对包括第三数据和第四数据,所述方法包括:
通过所述第一方随机生成国密算法的第一密钥,获取Paillier同态加密的第一公私钥,所述第一公私钥包括第一公钥和第一私钥;
通过所述第二方随机生成所述国密算法的第二密钥,获取Paillier同态加密的第二公私钥,所述第二公私钥包括第二公钥和第二私钥;
通过所述第一方利用所述第一密钥、所述第一公钥对所述第一本地数据集合进行加密,得到第一集合;
通过所述第二方利用所述第二密钥、所述第二公钥对所述第二本地数据集合进行加密,得到第二集合;
通过所述第一方对所述第一集合进行第一随机置换,得到参考第一集合,将所述参考第一集合发送给所述第二方;
通过所述第二方对所述参考第一集合进行第二随机置换,得到中间第一集合;
通过所述第二方选取n个随机数,并对所述中间第一集合的第一项计算其经过所述第二密钥加密后的第一密文,并将所述中间第一集合的第二项进行同态运算,得到目标第一集合;
通过所述第二方对所述第二集合进行第三随机置换且顺序打乱,得到参考第二集合,将所述参考第二集合和所述目标第一集合发送给所述第一方;
通过所述第一方将所述参考第二集合中的第一项经过所述第一密钥加密,得到第二密文以及目标第二集合;
通过所述第一方计算所述目标第一集合和所述目标第二集合中第一项的交集,并记录其在所述目标第一集合内的序号,得到第三集合,所述第三集合的大小为t;
通过所述第一方选取t个随机数,并将所述第三集合中的任一元素的第二项进行同态运算,得到第四集合;将所述第四集合发送给所述第二方;
通过所述第二方将所述第四集合中的每个元素选取对应的随机数,并利用第二项用所述第二私钥进行解密,得到第一结果集合;
通过所述第一方根据所述第四集合中的每个元素的顺序,将所述目标第一集合中对应值的第二项采用所述第一私钥进行解密,得到第二结果集合。
第二方面,本申请实施例提供了一种两方计算系统,所述两方计算系统包括第一方和第二方,所述第一方对应第一本地数据集合,所述第二方对应第二本地数据集合;所述第一本地数据集合包括多个第一数据对,每一第一数据对包括第一数据和第二数据,所述第二本地数据集合包括多个第二数据对,每一第二数据对包括第三数据和第四数据,所述方法包括:
所述第一方,用于随机生成国密算法的第一密钥,获取Paillier同态加密的第一公私钥,所述第一公私钥包括第一公钥和第一私钥;
所述第二方,用于随机生成所述国密算法的第二密钥,获取Paillier同态加密的第二公私钥,所述第二公私钥包括第二公钥和第二私钥;
所述第一方,用于利用所述第一密钥、所述第一公钥对所述第一本地数据集合进行加密,得到第一集合;
所述第二方,用于利用所述第二密钥、所述第二公钥对所述第二本地数据集合进行加密,得到第二集合;
所述第一方,用于对所述第一集合进行第一随机置换,得到参考第一集合,将所述参考第一集合发送给所述第二方;
所述第二方,用于对所述参考第一集合进行第二随机置换,得到中间第一集合;
所述第二方,用于选取n个随机数,并对所述中间第一集合的第一项计算其经过所述第二密钥加密后的第一密文,并将所述中间第一集合的第二项进行同态运算,得到目标第一集合;
所述第二方,用于对所述第二集合进行第三随机置换且顺序打乱,得到参考第二集合,将所述参考第二集合和所述目标第一集合发送给所述第一方;
所述第一方,用于将所述参考第二集合中的第一项经过所述第一密钥加密,得到第二密文以及目标第二集合;
所述第一方,用于计算所述目标第一集合和所述目标第二集合中第一项的交集,并记录其在所述目标第一集合内的序号,得到第三集合,所述第三集合的大小为t;
所述第一方,用于选取t个随机数,并将所述第三集合中的任一元素的第二项进行同态运算,得到第四集合;将所述第四集合发送给所述第二方;
所述第二方,用于将所述第四集合中的每个元素选取对应的随机数,并利用第二项用所述第二私钥进行解密,得到第一结果集合;
所述第一方,用于根据所述第四集合中的每个元素的顺序,将所述目标第一集合中对应值的第二项采用所述第一私钥进行解密,得到第二结果集合。
第三方面,本申请实施例提供一种电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本申请实施例第一方面中的步骤的指令。
第四方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。
第五方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
实施本申请实施例,具备如下有益效果:
可以看出,本申请实施例中所描述的基于国密的高效匿踪联邦学习方法、系统及相关设备,应用于两方计算系统,两方计算系统包括第一方和第二方,第一方对应第一本地数据集合,第二方对应第二本地数据集合;第一本地数据集合包括多个第一数据对,每一第一数据对包括第一数据和第二数据,第二本地数据集合包括多个第二数据对,每一第二数据对包括第三数据和第四数据,通过第一方随机生成国密算法的第一密钥,获取Paillier同态加密的第一公私钥,第一公私钥包括第一公钥和第一私钥,通过第二方随机生成国密算法的第二密钥,获取Paillier同态加密的第二公私钥,第二公私钥包括第二公钥和第二私钥,通过第一方利用第一密钥、第一公钥对第一本地数据集合进行加密,得到第一集合,通过第二方利用第二密钥、第二公钥对第二本地数据集合进行加密,得到第二集合,通过第一方对第一集合进行第一随机置换,得到参考第一集合,将参考第一集合发送给第二方,通过第二方对参考第一集合进行第二随机置换,得到中间第一集合,通过第二方选取n个随机数,并对中间第一集合的第一项计算其经过第二密钥加密后的第一密文,并将中间第一集合的第二项进行同态运算,得到目标第一集合,通过第二方对第二集合进行第三随机置换且顺序打乱,得到参考第二集合,将参考第二集合和目标第一集合发送给第一方,通过第一方将参考第二集合中的第一项经过第一密钥加密,得到第二密文以及目标第二集合,通过第一方计算目标第一集合和目标第二集合中第一项的交集,并记录其在目标第一集合内的序号,得到第三集合,第三集合的大小为t,通过第一方选取t个随机数,并将第三集合中的任一元素的第二项进行同态运算,得到第四集合;将第四集合发送给第二方,通过第二方将第四集合中的每个元素选取对应的随机数,并利用第二项用第二私钥进行解密,得到第一结果集合,通过第一方根据第四集合中的每个元素的顺序,将目标第一集合中对应值的第二项采用第一私钥进行解密,得到第二结果集合,可以提升匿踪联邦学习效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种用于实现基于国密的高效匿踪联邦学习方法的两方计算系统的结构示意图;
图2是本申请实施例提供的一种基于国密的高效匿踪联邦学习方法的流程示意图;
图3是本申请实施例提供的一种Paillier改进的详细过程的演示示意图;
图4是本申请实施例提供的另一种基于国密的高效匿踪联邦学习方法的流程示意图;
图5是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例所描述计算节点可以为电子设备,电子设备可以包括智能手机(如Android手机、iOS手机、Windows Phone手机等)、平板电脑、掌上电脑、行车记录仪、服务器、笔记本电脑、移动互联网设备(MID,Mobile Internet Devices)或穿戴式设备(如智能手表、蓝牙耳机)等,上述仅是举例,而非穷举,包含但不限于上述电子设备,该电子设备也可以为云服务器,或者,该电子设备也可以为计算机集群。本申请实施例中,第一方、第二方均可以为上述电子设备。
本申请实施例中,国密算法即为国家商用密码算法。是由国家密码管理局认定和公布的密码算法标准及其应用规范,其中部分密码算法已经成为国际标准。如SM系列密码,SM代表商密,即商业密码,是指用于商业的、不涉及国家秘密的密码技术。
下面对本申请实施例进行详细介绍。
相关技术中,匿踪联邦学习方案主要分为三类:
第一种为基于两次Diffie-Hellman(DH)密钥交换的方案,其思路为生成双方集合中原始索引到密文并集索引的映射,再将所有密文形式的索引(id)和数据(value)输入至安全多方计算(multi-party computation,MPC)协议中秘密分享后,利用MPC协议生成索引交集分片,连同索引分片和数据分片一起参与后续联邦学习建模过程;
第二种为基于不经意可编程伪随机函数(oblivioius programmablepseudorandom function,OPPRF)的方案,其思路为利用OPPRF的性质,一方得到一组随机数,另一方根据索引是否在对方集合内获得对应随机数或混淆值,双方再将OPPRF的输出连同数据一起作为MPC协议的输入,利用MPC协议生成索引交集分片,连同OPPRF输出的分片和数据分片一起参与后续联邦学习建模过程;
第三种为基于DH密钥交换和Paillier加法同态加密的方案,其思路为双方分别用DH密钥和同态公钥对本地原始索引和数据进行加密,发至对方后再次加密索引并对齐,选取随机数利用加法同态的性质对数据进行秘密共享,使得各方得到交集的索引分片和对应的数据分片。双方将索引分片和数据分片作为MPC协议的输入进行后续联邦学习建模过程。
相关技术中的三类匿踪联邦学习方案分别存在不同的问题:
第一种方案中的DH密钥交换操作引入了大量的指数运算,使得计算效率很低,此外MPC运算开销较大,将所有密文的索引与数据一起作为MPC的输入,并参与联邦学习建模的全部运算过程,进一步降低了计算效率。
第二种方案中采用布谷鸟哈希(cuckoo hashing)与OPPRF相结合的技术路线,使得该方案的通信开销较大,此外与第一类方案类似,其同样引入MPC协议,使得所有OPPRF的输出与数据共同参与联邦学习建模的全部运算过程,降低了计算效率。
第三种方案同样基于DH密钥交换,会引入大量的指数运算降低效率。而且由于目前Paillier单次加解密耗时高(通常为20-40ms),当样本数量大时性能不佳。另外,目前Paillier明文空间为推荐参数为3072比特,但通常消息长度不会超过32比特,造成了极大的空间浪费。
此外,目前已知上述三类方案的实现中均不支持国密算法,使得其在安全等级要求较高的国家行政机关、政府机构、大型国有银行等应用场景下使用受限。
请参阅图1,图1是本申请实施例提供的一种用于实现基于国密的高效匿踪联邦学习方法的两方计算系统的架构示意图,如图所示,本两方计算系统可以包括第一方和第二方,所述第一方对应第一本地数据集合,所述第二方对应第二本地数据集合;所述第一本地数据集合包括多个第一数据对,每一第一数据对包括第一数据和第二数据,所述第二本地数据集合包括多个第二数据对,每一第二数据对包括第三数据和第四数据;基于该两方计算系统可以实现如下功能:
所述第一方,用于随机生成国密算法的第一密钥,获取Paillier同态加密的第一公私钥,所述第一公私钥包括第一公钥和第一私钥;
所述第二方,用于随机生成所述国密算法的第二密钥,获取Paillier同态加密的第二公私钥,所述第二公私钥包括第二公钥和第二私钥;
所述第一方,用于利用所述第一密钥、所述第一公钥对所述第一本地数据集合进行加密,得到第一集合;
所述第二方,用于利用所述第二密钥、所述第二公钥对所述第二本地数据集合进行加密,得到第二集合;
所述第一方,用于对所述第一集合进行第一随机置换,得到参考第一集合,将所述参考第一集合发送给所述第二方;
所述第二方,用于对所述参考第一集合进行第二随机置换,得到中间第一集合;
所述第二方,用于选取n个随机数,并对所述中间第一集合的第一项计算其经过所述第二密钥加密后的第一密文,并将所述中间第一集合的第二项进行同态运算,得到目标第一集合;
所述第二方,用于对所述第二集合进行第三随机置换且顺序打乱,得到参考第二集合,将所述参考第二集合和所述目标第一集合发送给所述第一方;
所述第一方,用于将所述参考第二集合中的第一项经过所述第一密钥加密,得到第二密文以及目标第二集合;
所述第一方,用于计算所述目标第一集合和所述目标第二集合中第一项的交集,并记录其在所述目标第一集合内的序号,得到第三集合,所述第三集合的大小为t;
所述第一方,用于选取t个随机数,并将所述第三集合中的任一元素的第二项进行同态运算,得到第四集合;将所述第四集合发送给所述第二方;
所述第二方,用于将所述第四集合中的每个元素选取对应的随机数,并利用第二项用所述第二私钥进行解密,得到第一结果集合;
所述第一方,用于根据所述第四集合中的每个元素的顺序,将所述目标第一集合中对应值的第二项采用所述第一私钥进行解密,得到第二结果集合。
请参阅图2,图2是本申请实施例提供的一种基于国密的高效匿踪联邦学习方法的流程示意图,应用于两方计算系统,所述两方计算系统包括第一方和第二方,所述第一方对应第一本地数据集合,所述第二方对应第二本地数据集合;所述第一本地数据集合包括多个第一数据对,每一第一数据对包括第一数据和第二数据,所述第二本地数据集合包括多个第二数据对,每一第二数据对包括第三数据和第四数据,如图所示,本基于国密的高效匿踪联邦学习方法包括:
201、通过所述第一方随机生成国密算法的第一密钥,获取Paillier同态加密的第一公私钥,所述第一公私钥包括第一公钥和第一私钥。
本申请实施例中,国密算法可以包括SM2国密算法。本申请实施例能够使得国密算法的应用场景更加广泛。
具体实现中,可以通过第一方随机生成国密算法的第一密钥,还可以获取Paillier同态加密的第一公私钥,第一公私钥可以包括第一公钥和第一私钥,举例说明下,第一方为P0,其持有的数据可以为,其中,表示第
i个第一数据,表示第
i个第二数据,
n表示第一本地数据集合的元素对的数量。
具体实现中,第一方、第二方均为参与方,可以将第一公钥发送给第二方,第二方可以记作P1,第一公钥可以记作。
举例说明下,参与方P0随机生成SM2密钥,和Paillier同态加密公私钥对。其中,为第一公钥,为第一私钥。即P0可以将发给P1。
本申请实施例中,第一方对应第一本地数据集合,第二方对应第二本地数据集合。第一本地数据集合可以包括多个第一数据对,每一第一数据对包括第一数据和第二数据,第二本地数据集合包括多个第二数据对,每一第二数据对包括第三数据和第四数据,第一数据和第二数据可以为不同类型的数据,第三数据、第四数据可以为不同类型的数据,第一数据与第三数据的类型相同,第二数据与第四数据的类型相同。例如,第一数据、第三数据的类型为索引,第二数据、第四数据的类型均为数据。
其中,索引可以包括以下至少一种:身份证号、身份卡号(ID-CARD)、电话号码(Phone Number)、银行卡号(Bank Card)、社保账号、社交账号、学号、工号等等,在此不做限定。
数据可以理解为后续用于联邦学习的信息,由参与方决定,数据可以包括以下至少一种:交易金额、年龄等等,在此不做限定。
可选的,上述步骤201,获取Paillier同态加密的第一公私钥,可以按照如下方式:
利用预设Paillier密钥生成算法获取Paillier同态加密的第一公私钥;
其中,所述预设Paillier密钥生成算法中每64个消息被编码成为一个Paillier明文空间中的元素编码,将Paillier明文空间中的一个元素划分为64个消息槽,每个消息映射到域中后按顺序放入对应的消息槽中;
和/或,
所述预设Paillier密钥生成算法中每个Paillier密文解密后进行解码运算,得到64个消息,解码方式为将每个消息槽中的元素取出,并在映射到域中得到最终消息值。
其中,GF即有限域,亦称伽罗瓦域(galois field),是仅含有限个元素的域,表示有个元素的有限域。
其中,预设Paillier密钥生成算法可以预先设置,该预设Paillier密钥生成算法可以包括对常规的Paillier算法进行改进后的算法。
其中,常规的Paillier算法可以包括以下至少一种:密钥生成算法、加密算法、解密算法、同态运算算法,其中,同态运算算法可以包括同态加法运算或者同态数乘运算。
本申请实施例中,可以将相关技术中方案的Paillier单次加解密改为批量打包。由于明文空间一个元素为3072比特,将每48比特作为一个消息槽,每个消息槽存放一个消息,因此,每个明文元素可以存放64个消息。此外,为保证同态密文加法的正确性规定:每个消息槽中的消息至多为46比特,剩余2个比特留作进位比特。同态运算时只运算正整数加法,同态减法以及负数消息需要在编码时转化为加法以及域中正整数。密文解密后运行解码算法得到多个消息结果,解码算法会将每个消息槽中的值解码为一个域中的消息。
具体实现中,如图3所示,其中所有消息长度均为46比特,加解密运算为正常的Paillier加解密算法,Paillier密钥长度选择为3072比特,具体步骤如下:
1、编码:每64个消息会编码成为一个Paillier明文空间中的元素编码,将Paillier明文空间中的一个元素划分为64个消息槽,每个消息映射到域中后按顺序放入对应的消息槽中。
2、同态加:同态加法运算无需额外操作,正常运行基础Paillier同态加法即可。
3、解码:每个Paillier密文解密后进行解码运算,得到64个消息,解码方式为将每个消息槽中的元素取出,并在映射到域中得到最终消息值。
本申请实施例中,通过Paillier消息打包技术,单次Paillier加密运算可以同时加密64个消息,加解密吞吐量提升64倍。
举例说明下,例如:消息:72,105,10,…,-18,-103,则编码后,得到3072比特的密文,即:75,105,10,…,,,每一个槽位对应明文空间一个元素。进一步的,可以对密文进行解密,得到:179,39,563,…,,,每一个槽位对应明文空间一个元素。再进行解码,得到消息:179,563,10,…,-118,-1031。
202、通过所述第二方随机生成所述国密算法的第二密钥,获取Paillier同态加密的第二公私钥,所述第二公私钥包括第二公钥和第二私钥。
本申请实施例中,可以通过第二方随机生成国密算法的第二密钥,还可以获取Paillier同态加密的第二公私钥,第二公私钥可以包括第二公钥和第二私钥。
举例说明下,参与方P1可以随机生成SM2密钥,和Paillier同态加密公私钥对,其中,为第二公钥,为第二私钥。举例说明下,第二方为P1,其持有的数据可以为,其中,表示第
i个第三数据,表示第
i个第四数据,
m表示第二本地数据集合的元素对的数量。
具体实现中,可以将第二公钥发送给第一方,即P1可以将发给P0。
本申请实施例中,可以将相关技术中的基于DH密钥交换的有限域上的代数运算改为基于ECDH的SM2椭圆曲线上的点的运算,可降低计算开销。但由于标准SM2加密实现索引对齐,需提取密文的对应部分,且对于集合的每个元素需选取同样的随机数,存在安全风险,本发明采用对标准ECC加密的改造。标准ECC密文由两部分组成,用于后续解密,而本申请实施例中,无需解密操作,因此,可对标准的加密步骤进行简化,在不降低安全性的前提下,提高运算效率。
203、通过所述第一方利用所述第一密钥、所述第一公钥对所述第一本地数据集合进行加密,得到第一集合。
具体实现中,可以通过第一方利用第一密钥对第一本地数据集合中的第一数据或者第二数据进行加密,还可以利用第一公钥对第一本地数据集合中的第一数据或者第二数据进行加密,在加密完成后,便可以得到第一集合。
可选的,上述步骤203,通过所述第一方利用所述第一密钥、所述第一公钥对所述第一本地数据集合进行加密,得到第一集合,可以包括如下步骤:
31、通过所述第一方利用所述第一密钥加密所述第一本地数据集合中的每个第一数据,得到目标第一数据集合;
32、利用所述第一公钥加密所述第一本地数据集合中的每个第二数据,得到目标第二数据集合;
33、将所述目标第一数据集合和所述目标第二数据集合组成第一集合。
本申请实施例中,可以通过第一方利用第一密钥加密第一本地数据集合中的每个第一数据,得到目标第一数据集合,再利用第一公钥加密第一本地数据集合中的每个第二数据,得到目标第二数据集合,以及将目标第一数据集合和目标第二数据集合组成第一集合。
具体的,举例说明下,P0用SM2密钥加密第一本地数据集合中的每个,得到,即目标第一数据集合,用Paillier公钥加密集合中每个,得到,即目标第二数据集合,将目标第一数据集合和目标第二数据集合组成第一集合。
可选的,所述第一密钥为SM2椭圆曲线上的点;所述第二密钥为所述SM2椭圆曲线上的另一个点;
上述步骤31,通过所述第一方利用所述第一密钥加密所述第一本地数据集合中的每个第一数据,得到目标第一数据集合,可以包括如下步骤:
311、通过所述第一方根据所述第一密钥和所述SM2椭圆曲线上的基点对第一数据i进行加密,得到参考第一数据,将所述参考第一数据发送给所述第二方,所述第一数据i为所述第一本地数据集合中的任一第一数据;
312、通过所述第二方利用所述第二密钥对所述参考第一数据进行二次加密,得到目标第一数据i,将所述目标第一数据i发送给所述第一方。
具体实现中,第一密钥可以为SM2椭圆曲线上的点;则第二密钥可以为SM2椭圆曲线上的另一个点。可以通过第一方根据第一密钥和SM2椭圆曲线上的基点对第一数据i进行加密,例如,可以进行点乘多倍点运算或者椭圆曲线上的加法运算,即得到参考第一数据,再将参考第一数据发送给第二方,第一数据i为第一本地数据集合中的任一第一数据,再通过第二方利用第二密钥对参考第一数据进行二次加密,得到目标第一数据i,将目标第一数据i发送给第一方。
本申请实施例中,基于椭圆曲线上的DH密钥协商构造,使得方案整体通信量降低。
举例说明下,本申请实施例中,SM2的密钥生成和对的两次加密过程,具体步骤如下:
1、P0随机生成SM2椭圆曲线上的点作为SM2密钥;
2、P1随机生成SM2椭圆曲线上的点作为SM2密钥;
3、P0计算,其中为椭圆曲线的基点,点乘为椭圆曲线上的多倍点运算,加法为椭圆曲线上的加法;
4、P0将发给P1;
5、P1计算,得到对明文的二次加密结果。
204、通过所述第二方利用所述第二密钥、所述第二公钥对所述第二本地数据集合进行加密,得到第二集合。
具体实现中,可以通过第二方利用第二密钥对第二本地数据集合中的第三数据或者第四数据进行加密,还可以利用第二公钥对第二本地数据集合中的第三数据或者第四数据进行加密,在加密完成后,便可以得到第二集合。
可选的,上述步骤204,通过所述第二方利用所述第二密钥、所述第二公钥对所述第二本地数据集合进行加密,得到第二集合,可以包括如下步骤:
41、通过所述第二方利用所述第二密钥加密所述第二本地数据集合中的每个第三数据,得到目标第三数据集合;
42、利用所述第二公钥加密所述第二本地数据集合中的每个第四数据,得到目标第四数据集合;
43、将所述目标第三数据集合和所述目标第四数据集合组成第二集合。
本申请实施例中,可以过第二方利用第二密钥加密第二本地数据集合中的每个第三数据,得到目标第三数据集合,再利用第二公钥加密第二本地数据集合中的每个第四数据,得到目标第四数据集合,再将目标第三数据集合和目标第四数据集合组成第二集合。
举例说明下,P1可以用SM2密钥加密集合中的每个,得到,即目标第三数据集合,再用Paillier公钥加密集合中每个,得到,得到目标第四数据集合,再将目标第三数据集合和目标第四数据集合组成第二集合。
上述步骤41,通过所述第二方利用所述第二密钥加密所述第二本地数据集合中的每个第三数据,得到目标第三数据集合,可以包括如下步骤:
411、通过所述第二方根据所述第二密钥和所述SM2椭圆曲线上的基点对第三数据i进行加密,得到参考第三数据,将所述参考第三数据发送给所述第一方,所述第三数据i为所述第二本地数据集合中的任一第三数据;
412、通过所述第一方利用所述第一密钥对所述参考第三数据进行二次加密,得到目标第三数据i,将所述目标第三数据i发送给所述第二方。
具体实现中,第一密钥可以为SM2椭圆曲线上的点;则第二密钥可以为SM2椭圆曲线上的另一个点。可以通过第二方根据第二密钥和SM2椭圆曲线上的基点对第三数据i进行加密,例如,可以进行点乘多倍点运算或者椭圆曲线上的加法运算,即得到参考第三数据,再将参考第三数据发送给第一方,第三数据i为第二本地数据集合中的任一第三数据,再通过第一方利用第一密钥对参考第三数据进行二次加密,得到目标第三数据i,将目标第三数据i发送给第二方。
举例说明下,本申请实施例中,SM2的密钥生成和对的两次加密过程, 同样地,对的加密也与此过程类似,最终得到,因此,若,则。
205、通过所述第一方对所述第一集合进行第一随机置换,得到参考第一集合,将所述参考第一集合发送给所述第二方。
本申请实施例中,可以通过第一方对第一集合进行第一随机置换,得到参考第一集合,再将参考第一集合发送给第二方,举例说明下,P0对第一集合进行随机置换,得到第一参考集合,将其发给P1。具体实现中,第一置换算法可利用任何置换算法,将集合中的数据对的顺序随机打乱。
206、通过所述第二方对所述参考第一集合进行第二随机置换,得到中间第一集合。
本申请实施例中,可以通过第二方对参考第一集合进行第二随机置换,得到中间第一集合,举例说明下,再次对P0置换后的集合,即参考第一集合进行随机置换,得到中间第一集合。具体实现中,第二置换算法可利用任何置换算法,将集合中的数据对的顺序随机打乱。
207、通过所述第二方选取n个随机数,并对所述中间第一集合的第一项计算其经过所述第二密钥加密后的第一密文,并将所述中间第一集合的第二项进行同态运算,得到目标第一集合。
本申请实施例中,可以通过第二方选取n个随机数,并对中间第一集合的第一项计算其经过第二密钥加密后的第一密文,并将中间第一集合的第二项与随机数进行同态减法运算,得到目标第一集合。
其中,第一项可以理解为经过两次随机置换后的第一密钥加密第一本地数据集合中的第一项的结果,另外,第二项则可以理解为经过两次随机置换后的第一公钥加密第一本地数据集合中的第二项的结果。
举例说明下,可以选取n个随机数,并对的第一项计算其经过SM2密钥加密后的密文,直接将第一项的结果当作要加密的值,并用作为密钥,利用SM2算法进行计算即可,并将的第二项利用同态的性质计算,得到目标第一集合。
208、通过所述第二方对所述第二集合进行第三随机置换且顺序打乱,得到参考第二集合,将所述参考第二集合和所述目标第一集合发送给所述第一方。
本申请实施例中,可以通过第二方对第二集合进行第三随机置换且顺序打乱,得到参考第二集合,将参考第二集合和目标第一集合发送给第一方。第一置换算法可采用任何置换算法。
举例说明下,P1对第二集合进行随机置换顺序打乱,得到参考第二集合,将该参考第二集合和目标第一集合一同发送给P0。
209、通过所述第一方将所述参考第二集合中的第一项经过所述第一密钥加密,得到第二密文以及目标第二集合。
本申请实施例中,可以通过第一方将参考第二集合中的第一项经过第一密钥加密,得到第二密文以及目标第二集合,举例说明下,P0将乱序的中的第一项经过SM2密钥加密后得到密文,得到目标第二集合。
210、通过所述第一方计算所述目标第一集合和所述目标第二集合中第一项的交集,并记录其在所述目标第一集合内的序号,得到第三集合,所述第三集合的大小为t。
其中,t为正整数。通过所述第一方计算目标第一集合和目标第二集合中第一项的交集,并记录其在目标第一集合内的序号,得到第三集合,可以记第三集合的大小为t。
举例说明下,P0计算与中第一项的交集,并记录其在内的序号,即为第三集合,其大小为t,即t表示集合内数据对的个数。
211、通过所述第一方选取t个随机数,并将所述第三集合中的任一元素的第二项进行同态运算,得到第四集合,将所述第四集合发送给所述第二方。
本申请实施例中,可以通过第一方选取t个随机数,并将第三集合中的任一元素的第二项进行同态运算,得到第四集合,该同态运算可以包括同态减法运算。再将第四集合发送给第二方。
举例说明下,P0选取t个随机数,并将第三集合中的第i个值的第二项用同态的性质计算,得到第四集合,其中i属于集合。
212、通过所述第二方将所述第四集合中的每个元素选取对应的随机数,并利用第二项用所述第二私钥进行解密,得到第一结果集合,
本申请实施例中,可以通过第二方将第四集合中的每个元素选取对应的随机数,并利用第二项用第二私钥进行解密,得到第一结果集合。
举例说明下,P1对于中的每个值i,选择对应的,并将第二项用解密,得到结果集合。
213、通过所述第一方根据所述第四集合中的每个元素的顺序,将所述目标第一集合中对应值的第二项采用所述第一私钥进行解密,得到第二结果集合。
本申请实施例中,可以通过第一方根据第四集合中的每个元素的顺序,将目标第一集合中对应值的第二项采用第一私钥进行解密,得到第二结果集合。
举例说明下,P0根据中i的顺序,将中对应值的第二项用解密,得到结果集合。
本申请实施例中,提出了一种基于国密算法(SM2)和改进的Paillier同态加密技术的匿踪联邦学习方案,使得国密算法的应用场景进一步得到扩展,同时保证了加密方案的安全可控,另外将基础Paillier同态加密技术进行改进,解决了相关技术中的Paillier算法明文空间浪费的问题,提升Paillier加解密吞吐量,在保证方案安全性的前提下,提升了方案整体效率。
本申请实施例中,可以理解为基于上述第三类方案的改造,对于DH密钥交换操作和Paillier技术均有改进。
具体实现中,可以将原有方案基于DH密钥交换的有限域上的代数运算改为基于ECDH的SM2椭圆曲线上的点的运算,可降低计算开销。但由于标准SM2加密实现索引对齐,需提取密文的对应部分,且对于集合的每个元素需选取同样的随机数,存在安全风险,本发明采用对标准ECC加密的改造。标准ECC密文由两部分组成,用于后续解密,而本方案无需解密操作,因此可对标准的加密步骤进行简化,在不降低安全性的前提下,提高运算效率。
另外,将原有方案的Paillier单次加解密改为批量打包。由于明文空间一个元素为3072比特,将每48比特作为一个消息槽,每个消息槽存放一个消息,因此每个明文元素可以存放64个消息。此外,为保证同态密文加法的正确性规定:每个消息槽中的消息至多为46比特,剩余2个比特留作进位比特。同态运算时只运算正整数加法,同态减法以及负数消息需要在编码时转化为加法以及域中正整数。密文解密后运行解码算法得到多个消息结果,解码算法会将每个消息槽中的值解码为一个域中的消息。
举例说明下,假如两个持有数据的参与方P0和P1,具体步骤如下:
1、参与方P0随机生成SM2密钥,和Paillier同态加密公私钥对,参与方P1随机生成SM2密钥,和Paillier同态加密公私钥对;
2、P0将发给P1,P1将发给P0;
3、P0用SM2密钥加密集合中的每个,得到,用Paillier公钥加密集合中每个,得到,组成集合;P1用SM2密钥加密集合中的每个,得到,用Paillier公钥加密集合中每个,得到,组成集合;
4、P0对集合进行随机置换并发给P1;
5、P1再次对P0置换后的集合进行随机置换,得到集合;
6、P1选取n个随机数,并对的第一项计算其经过SM2密钥加密后的密文,并将的第二项利用同态的性质计算,得到集合;
7、P1对集合进行随机置换顺序打乱,并和集合一同发送给P0;
8、P0将乱序的中的第一项经过SM2密钥加密后得到密文,得到集合;
9、P0计算与中第一项的交集,并记录其在内的序号,即为集合,其大小为t;
10、P0选取t个随机数,并将中的第i个值的第二项用同态的性质计算,得到集合,其中i属于集合;
11、P0将集合发给P1;
12、P1对于中的每个值i,选择对应的,并将第二项用解密,得到结果集合;
13、P0根据中i的顺序,将中对应值的第二项用解密,得到结果集合。
本申请实施例,能够保证匿踪联邦学习过程的安全、可控,以及保证参与方在不泄露本地数据的前提下,获得正确的结果。
本申请实施例中所描述的方法,支持国密算法的基于椭圆曲线上的DH密钥协商的高效匿踪联邦学习方案,保证安全可控的前提下,提升了计算效率,降低了通信量,且能够通过改进Paillier加解密方案,实现批量操作,进一步提升计算效率。
再举例说明下,本申请实施例中,第一方拥有的数据、第二方拥有的数据具体如下:
其中,第一方拥有的数据如下表所示:
其中,第二方拥有的数据如下表所示:
通过本申请实施例中所描述的方法,双方得到索引交集对应的两方数据的秘密分享信息,举例如下:
第一方最终得到的结果为:(80000,700)【对应于索引为4的用户,第一方的数据为87800,最终分享给第一方的值为80000,第二方的数据为2700,最终分享给第一方的值为700】、(50000,300)【对应于索引为2的用户,第一方的数据为55000,最终分享给第一方的值为50000,第二方的数据为1700,最终分享给第一方的值为300】。
其中,第二方最终得到的结果为:(7800,2000)【对应于索引为4的用户,第一方的数据为87800,最终分享给第二方的值为7800,第二方的数据为2700,最终分享给第二方的值为2000】、(5000,1400)【对应于索引为2的用户,第一方的数据为55000,最终分享给第二方的值为5000,第二方的数据为1700,最终分享给第二方的值为1400】。
即由两方得到的结果可以看出,索引为4的用户在第一方中的数据87800被秘密分享为两部分,即80000和7800,分别由两方保存,在第二方中的数据2700被秘密分享为两部分,即700和2000,分别由两方保存;索引为2的用户在第一方中的数据55000被秘密分享为两部分,50000和5000,分别由两方保存,在第二方中的数据1700被秘密分享为两部分,即300和1400。
在此过程中,两方无法得到关于用户索引和值的真实信息,仅能得到两方索引交集对应的值的部分秘密分享信息,因此对于两方而言均可保证各自用户的隐私性。同时,此方法得到的最终结果可作为基于MPC的联邦学习的输入,实现了隐藏用户索引条件下的联邦学习。
再举例说明下,上述步骤201-步骤213可以理解为双方共同执行匿踪索引对齐算法的过程,如图4所示,P0将本地索引和对应的本地数据共同作为匿踪索引对齐算法的输入,P1将本地索引和对应的本地数据共同作为匿踪索引对齐算法的输入,双方共同执行匿踪索引对齐算法;P0方得到索引与索引交集对应的数据秘密分片和,P1方得到两索引交集对应的数据秘密分片和,双方还可以将各自的数据秘密分片作为后续基于多方安全计算的联邦学习建模算法的输入,进行模型参数的梯度更新后,输出最终模型给两参与方,以提升联邦学习模型的模型能力。
可以看出,本申请实施例中所描述的基于国密的高效匿踪联邦学习方法,应用于两方计算系统,两方计算系统包括第一方和第二方,第一方对应第一本地数据集合,第二方对应第二本地数据集合;第一本地数据集合包括多个第一数据对,每一第一数据对包括第一数据和第二数据,第二本地数据集合包括多个第二数据对,每一第二数据对包括第三数据和第四数据,通过第一方随机生成国密算法的第一密钥,获取Paillier同态加密的第一公私钥,第一公私钥包括第一公钥和第一私钥,通过第二方随机生成国密算法的第二密钥,获取Paillier同态加密的第二公私钥,第二公私钥包括第二公钥和第二私钥,通过第一方利用第一密钥、第一公钥对第一本地数据集合进行加密,得到第一集合,通过第二方利用第二密钥、第二公钥对第二本地数据集合进行加密,得到第二集合,通过第一方对第一集合进行第一随机置换,得到参考第一集合,将参考第一集合发送给第二方,通过第二方对参考第一集合进行第二随机置换,得到中间第一集合,通过第二方选取n个随机数,并对中间第一集合的第一项计算其经过第二密钥加密后的第一密文,并将中间第一集合的第二项进行同态运算,得到目标第一集合,通过第二方对第二集合进行第三随机置换且顺序打乱,得到参考第二集合,将参考第二集合和目标第一集合发送给第一方,通过第一方将参考第二集合中的第一项经过第一密钥加密,得到第二密文以及目标第二集合,通过第一方计算目标第一集合和目标第二集合中第一项的交集,并记录其在目标第一集合内的序号,得到第三集合,第三集合的大小为t,通过第一方选取t个随机数,并将第三集合中的任一元素的第二项进行同态运算,得到第四集合;将第四集合发送给第二方,通过第二方将第四集合中的每个元素选取对应的随机数,并利用第二项用第二私钥进行解密,得到第一结果集合,通过第一方根据第四集合中的每个元素的顺序,将目标第一集合中对应值的第二项采用第一私钥进行解密,得到第二结果集合,可以提升匿踪联邦学习效率。
与上述实施例一致地,请参阅图5,图5是本申请实施例提供的一种电子设备的结构示意图,如图所示,该电子设备包括处理器、存储器、通信接口以及一个或多个程序,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,应用于两方计算系统,所述两方计算系统包括第一方和第二方,所述第一方对应第一本地数据集合,所述第二方对应第二本地数据集合;所述第一本地数据集合包括多个第一数据对,每一第一数据对包括第一数据和第二数据,所述第二本地数据集合包括多个第二数据对,每一第二数据对包括第三数据和第四数据;本申请实施例中,上述程序包括用于执行以下步骤的指令:
通过所述第一方随机生成国密算法的第一密钥,获取Paillier同态加密的第一公私钥,所述第一公私钥包括第一公钥和第一私钥;
通过所述第二方随机生成所述国密算法的第二密钥,获取Paillier同态加密的第二公私钥,所述第二公私钥包括第二公钥和第二私钥;
通过所述第一方利用所述第一密钥、所述第一公钥对所述第一本地数据集合进行加密,得到第一集合;
通过所述第二方利用所述第二密钥、所述第二公钥对所述第二本地数据集合进行加密,得到第二集合;
通过所述第一方对所述第一集合进行第一随机置换,得到参考第一集合,将所述参考第一集合发送给所述第二方;
通过所述第二方对所述参考第一集合进行第二随机置换,得到中间第一集合;
通过所述第二方选取n个随机数,并对所述中间第一集合的第一项计算其经过所述第二密钥加密后的第一密文,并将所述中间第一集合的第二项进行同态运算,得到目标第一集合;
通过所述第二方对所述第二集合进行第三随机置换且顺序打乱,得到参考第二集合,将所述参考第二集合和所述目标第一集合发送给所述第一方;
通过所述第一方将所述参考第二集合中的第一项经过所述第一密钥加密,得到第二密文以及目标第二集合;
通过所述第一方计算所述目标第一集合和所述目标第二集合中第一项的交集,并记录其在所述目标第一集合内的序号,得到第三集合,所述第三集合的大小为t;
通过所述第一方选取t个随机数,并将所述第三集合中的任一元素的第二项进行同态运算,得到第四集合;将所述第四集合发送给所述第二方;
通过所述第二方将所述第四集合中的每个元素选取对应的随机数,并利用第二项用所述第二私钥进行解密,得到第一结果集合;
通过所述第一方根据所述第四集合中的每个元素的顺序,将所述目标第一集合中对应值的第二项采用所述第一私钥进行解密,得到第二结果集合。
可选的,在所述通过所述第一方利用所述第一密钥、所述第一公钥对所述第一本地数据集合进行加密,得到第一集合方面,上述程序包括用于执行以下步骤的指令:
通过所述第一方利用所述第一密钥加密所述第一本地数据集合中的每个第一数据,得到目标第一数据集合;
利用所述第一公钥加密所述第一本地数据集合中的每个第二数据,得到目标第二数据集合;
将所述目标第一数据集合和所述目标第二数据集合组成第一集合。
可选的,所述第一密钥为SM2椭圆曲线上的点;所述第二密钥为所述SM2椭圆曲线上的另一个点;
在所述通过所述第一方利用所述第一密钥加密所述第一本地数据集合中的每个第一数据,得到目标第一数据集合方面,上述程序包括用于执行以下步骤的指令:
通过所述第一方根据所述第一密钥和所述SM2椭圆曲线上的基点对第一数据i进行加密,得到参考第一数据,将所述参考第一数据发送给所述第二方,所述第一数据i为所述第一本地数据集合中的任一第一数据;
通过所述第二方利用所述第二密钥对所述参考第一数据进行二次加密,得到目标第一数据i,将所述目标第一数据i发送给所述第一方。
可选的,在所述通过所述第二方利用所述第二密钥、所述第二公钥对所述第二本地数据集合进行加密,得到第二集合方面,上述程序包括用于执行以下步骤的指令:
通过所述第二方利用所述第二密钥加密所述第二本地数据集合中的每个第三数据,得到目标第三数据集合;
利用所述第二公钥加密所述第二本地数据集合中的每个第四数据,得到目标第四数据集合;
将所述目标第三数据集合和所述目标第四数据集合组成第二集合。
可选的,在所述获取Paillier同态加密的第一公私钥方面,上述程序包括用于执行以下步骤的指令:
利用预设Paillier加解密算法获取Paillier同态加密的第一公私钥;
其中,所述预设Paillier加解密算法中每64个消息被编码成为一个Paillier明文空间中的元素编码,将Paillier明文空间中的一个元素划分为64个消息槽,每个消息映射到域中后按顺序放入对应的消息槽中;
和/或,
所述预设Paillier加解密算法中每个Paillier密文解密后进行解码运算,得到64个消息,解码方式为将每个消息槽中的元素取出,并在映射到域中得到最终消息值。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory ,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种基于国密的高效匿踪联邦学习方法,其特征在于,应用于两方计算系统,所述两方计算系统包括第一方和第二方,所述第一方对应第一本地数据集合,所述第二方对应第二本地数据集合;所述第一本地数据集合包括多个第一数据对,每一第一数据对包括第一数据和第二数据,所述第二本地数据集合包括多个第二数据对,每一第二数据对包括第三数据和第四数据,所述方法包括:
通过所述第一方随机生成国密算法的第一密钥,获取Paillier同态加密的第一公私钥,所述第一公私钥包括第一公钥和第一私钥;
通过所述第二方随机生成所述国密算法的第二密钥,获取Paillier同态加密的第二公私钥,所述第二公私钥包括第二公钥和第二私钥;
通过所述第一方利用所述第一密钥、所述第一公钥对所述第一本地数据集合进行加密,得到第一集合;
通过所述第二方利用所述第二密钥、所述第二公钥对所述第二本地数据集合进行加密,得到第二集合;
通过所述第一方对所述第一集合进行第一随机置换,得到参考第一集合,将所述参考第一集合发送给所述第二方;
通过所述第二方对所述参考第一集合进行第二随机置换,得到中间第一集合;
通过所述第二方选取n个随机数,并对所述中间第一集合的第一项计算其经过所述第二密钥加密后的第一密文,并将所述中间第一集合的第二项进行同态运算,得到目标第一集合;
通过所述第二方对所述第二集合进行第三随机置换且顺序打乱,得到参考第二集合,将所述参考第二集合和所述目标第一集合发送给所述第一方;
通过所述第一方将所述参考第二集合中的第一项经过所述第一密钥加密,得到第二密文以及目标第二集合;
通过所述第一方计算所述目标第一集合和所述目标第二集合中第一项的交集,并记录其在所述目标第一集合内的序号,得到第三集合,所述第三集合的大小为t;
通过所述第一方选取t个随机数,并将所述第三集合中的任一元素的第二项进行同态运算,得到第四集合;将所述第四集合发送给所述第二方;
通过所述第二方将所述第四集合中的每个元素选取对应的随机数,并利用第二项用所述第二私钥进行解密,得到第一结果集合;
通过所述第一方根据所述第四集合中的每个元素的顺序,将所述目标第一集合中对应值的第二项采用所述第一私钥进行解密,得到第二结果集合。
2.根据权利要求1所述的方法,其特征在于,所述通过所述第一方利用所述第一密钥、所述第一公钥对所述第一本地数据集合进行加密,得到第一集合,包括:
通过所述第一方利用所述第一密钥加密所述第一本地数据集合中的每个第一数据,得到目标第一数据集合;
利用所述第一公钥加密所述第一本地数据集合中的每个第二数据,得到目标第二数据集合;
将所述目标第一数据集合和所述目标第二数据集合组成第一集合。
3.根据权利要求2所述的方法,其特征在于,所述第一密钥为SM2椭圆曲线上的点;所述第二密钥为所述SM2椭圆曲线上的另一个点;
所述通过所述第一方利用所述第一密钥加密所述第一本地数据集合中的每个第一数据,得到目标第一数据集合,包括:
通过所述第一方根据所述第一密钥和所述SM2椭圆曲线上的基点对第一数据i进行加密,得到参考第一数据,将所述参考第一数据发送给所述第二方,所述第一数据i为所述第一本地数据集合中的任一第一数据;
通过所述第二方利用所述第二密钥对所述参考第一数据进行二次加密,得到目标第一数据i,将所述目标第一数据i发送给所述第一方。
4.根据权利要求1所述的方法,其特征在于,所述通过所述第二方利用所述第二密钥、所述第二公钥对所述第二本地数据集合进行加密,得到第二集合,包括:
通过所述第二方利用所述第二密钥加密所述第二本地数据集合中的每个第三数据,得到目标第三数据集合;
利用所述第二公钥加密所述第二本地数据集合中的每个第四数据,得到目标第四数据集合;
将所述目标第三数据集合和所述目标第四数据集合组成第二集合。
5.根据权利要求1或2所述的方法,其特征在于,所述获取Paillier同态加密的第一公私钥,包括:
利用预设Paillier密钥生成算法获取Paillier同态加密的第一公私钥;
其中,所述预设Paillier加解密算法中每64个消息被编码成为一个Paillier明文空间中的元素编码,将Paillier明文空间中的一个元素划分为64个消息槽,每个消息映射到域中后按顺序放入对应的消息槽中;
和/或,
所述预设Paillier密钥生成算法中每个Paillier密文解密后进行解码运算,得到64个消息,解码方式为将每个消息槽中的元素取出,并在映射到域中得到最终消息值。
6.一种两方计算系统,其特征在于,所述两方计算系统包括第一方和第二方,所述第一方对应第一本地数据集合,所述第二方对应第二本地数据集合;所述第一本地数据集合包括多个第一数据对,每一第一数据对包括第一数据和第二数据,所述第二本地数据集合包括多个第二数据对,每一第二数据对包括第三数据和第四数据,其中,
所述第一方,用于随机生成国密算法的第一密钥,获取Paillier同态加密的第一公私钥,所述第一公私钥包括第一公钥和第一私钥;
所述第二方,用于随机生成所述国密算法的第二密钥,获取Paillier同态加密的第二公私钥,所述第二公私钥包括第二公钥和第二私钥;
所述第一方,用于利用所述第一密钥、所述第一公钥对所述第一本地数据集合进行加密,得到第一集合;
所述第二方,用于利用所述第二密钥、所述第二公钥对所述第二本地数据集合进行加密,得到第二集合;
所述第一方,用于对所述第一集合进行第一随机置换,得到参考第一集合,将所述参考第一集合发送给所述第二方;
所述第二方,用于对所述参考第一集合进行第二随机置换,得到中间第一集合;
所述第二方,用于选取n个随机数,并对所述中间第一集合的第一项计算其经过所述第二密钥加密后的第一密文,并将所述中间第一集合的第二项进行同态运算,得到目标第一集合;
所述第二方,用于对所述第二集合进行第三随机置换且顺序打乱,得到参考第二集合,将所述参考第二集合和所述目标第一集合发送给所述第一方;
所述第一方,用于将所述参考第二集合中的第一项经过所述第一密钥加密,得到第二密文以及目标第二集合;
所述第一方,用于计算所述目标第一集合和所述目标第二集合中第一项的交集,并记录其在所述目标第一集合内的序号,得到第三集合,所述第三集合的大小为t;
所述第一方,用于选取t个随机数,并将所述第三集合中的任一元素的第二项进行同态运算,得到第四集合;将所述第四集合发送给所述第二方;
所述第二方,用于将所述第四集合中的每个元素选取对应的随机数,并利用第二项用所述第二私钥进行解密,得到第一结果集合;
所述第一方,用于根据所述第四集合中的每个元素的顺序,将所述目标第一集合中对应值的第二项采用所述第一私钥进行解密,得到第二结果集合。
7.根据权利要求6所述的系统,其特征在于,在所述利用所述第一密钥、所述第一公钥对所述第一本地数据集合进行加密,得到第一集合方面,所述第一方具体用于:
通过所述第一方利用所述第一密钥加密所述第一本地数据集合中的每个第一数据,得到目标第一数据集合;
利用所述第一公钥加密所述第一本地数据集合中的每个第二数据,得到目标第二数据集合;
将所述目标第一数据集合和所述目标第二数据集合组成第一集合。
8.根据权利要求7所述的系统,其特征在于,所述第一密钥为SM2椭圆曲线上的点;所述第二密钥为所述SM2椭圆曲线上的另一个点;
在所述利用所述第一密钥加密所述第一本地数据集合中的每个第一数据,得到目标第一数据集合方面,包括:
通过所述第一方根据所述第一密钥和所述SM2椭圆曲线上的基点对第一数据i进行加密,得到参考第一数据,将所述参考第一数据发送给所述第二方,所述第一数据i为所述第一本地数据集合中的任一第一数据;
通过所述第二方利用所述第二密钥对所述参考第一数据进行二次加密,得到目标第一数据i,将所述目标第一数据i发送给所述第一方。
9.一种电子设备,其特征在于,包括处理器、存储器,所述存储器用于存储一个或多个程序,并且被配置由所述处理器执行,所述程序包括用于执行如权利要求1-5任一项所述的方法中的步骤的指令。
10.一种计算机可读存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310233218.0A CN115913554B (zh) | 2023-03-13 | 2023-03-13 | 基于国密的高效匿踪联邦学习方法、系统及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310233218.0A CN115913554B (zh) | 2023-03-13 | 2023-03-13 | 基于国密的高效匿踪联邦学习方法、系统及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115913554A CN115913554A (zh) | 2023-04-04 |
CN115913554B true CN115913554B (zh) | 2023-05-16 |
Family
ID=85730218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310233218.0A Active CN115913554B (zh) | 2023-03-13 | 2023-03-13 | 基于国密的高效匿踪联邦学习方法、系统及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115913554B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115622800A (zh) * | 2022-11-30 | 2023-01-17 | 山东区块链研究院 | 基于中国剩余表示的联邦学习同态加密系统及方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11250140B2 (en) * | 2019-02-28 | 2022-02-15 | Sap Se | Cloud-based secure computation of the median |
CN110348231B (zh) * | 2019-06-18 | 2020-08-14 | 阿里巴巴集团控股有限公司 | 实现隐私保护的数据同态加解密方法及装置 |
CN114978495A (zh) * | 2022-05-16 | 2022-08-30 | 中国科学技术大学 | 一种联邦学习系统中的快速Paillier加密方法 |
CN115630713A (zh) * | 2022-08-31 | 2023-01-20 | 暨南大学 | 样本标识符不相同下的纵向联邦学习方法、设备和介质 |
-
2023
- 2023-03-13 CN CN202310233218.0A patent/CN115913554B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115622800A (zh) * | 2022-11-30 | 2023-01-17 | 山东区块链研究院 | 基于中国剩余表示的联邦学习同态加密系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115913554A (zh) | 2023-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107196926B (zh) | 一种云外包隐私集合比较方法与装置 | |
CN101447870B (zh) | 一种基于分布式口令技术的私钥安全存储方法 | |
CN111510281B (zh) | 一种同态加密方法及装置 | |
CN105324956B (zh) | 加密明文数据的方法及设备 | |
CN109543434B (zh) | 区块链信息加密方法、解密方法、存储方法及装置 | |
CN109951453A (zh) | 一种基于区块链的安全加密方法 | |
CN110086626A (zh) | 基于非对称密钥池对的量子保密通信联盟链交易方法和系统 | |
CN110519046A (zh) | 基于一次性非对称密钥对和qkd的量子通信服务站密钥协商方法和系统 | |
CN103095452A (zh) | 需要采用穷举法解密的随机加密方法 | |
CN108768636B (zh) | 一种利用多方协同恢复私钥的方法 | |
CN102437912A (zh) | 一种基于混沌算法的n重rsa加密算法的数字版权保护方法 | |
CN102594551B (zh) | Rfid标签隐私数据可靠统计方法 | |
CN109787758A (zh) | 基于私钥池和Elgamal的抗量子计算MQV密钥协商方法和系统 | |
CN110519226A (zh) | 基于非对称密钥池和隐式证书的量子通信服务端保密通信方法和系统 | |
Thiranant et al. | Performance comparison between RSA and elliptic curve cryptography-based QR code authentication | |
CN109495244A (zh) | 基于对称密钥池的抗量子计算密钥协商方法 | |
CN103812658A (zh) | 一种基于流密码的安全通信协议 | |
CN110266483B (zh) | 基于非对称密钥池对和qkd的量子通信服务站密钥协商方法、系统、设备 | |
CN115913554B (zh) | 基于国密的高效匿踪联邦学习方法、系统及相关设备 | |
CN110213056A (zh) | 基于在线离线签名的抗量子计算节能通信方法和系统、以及计算机设备 | |
CN110519214A (zh) | 基于在线离线签名和辅助验证签名的应用系统近距离节能通信方法、系统、设备 | |
CN115473707A (zh) | 一种隐私交集求和的方法和装置 | |
KLEF | An efficient light weight cryptography algorithm scheme for WSN devices using chaotic map and GE | |
CN112019335B (zh) | 一种基于sm2算法的多方协同加解密方法及装置、系统、介质 | |
Kaur et al. | Lightweight cipher algorithms for smart cards security: A survey and open challenges |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |