一种联邦学习系统中的快速Paillier加密方法与流程

文档序号:31359730发布日期:2022-08-31 14:21阅读:500来源:国知局
一种联邦学习系统中的快速Paillier加密方法与流程
一种联邦学习系统中的快速paillier加密方法
技术领域
1.本发明涉及数据安全领域,尤其涉及一种联邦学习系统中的快速paillier加密方法。


背景技术:

2.近些年来,随着对个人数据隐私的监管愈发严格,都强调保护个人数据隐私的重要性,限制隐私数据的粗放式流通共享。因此,很多传统的基于收集大量用户数据于云计算中心来集中式训练机器学习模型的应用将受到很大限制,各个企业和机构所掌握的数据转变成一个个数据孤岛,彼此之间不能互相流通,导致大数据无法充分发挥其效能和价值。在这种背景下,联邦学习技术应用而生。联邦学习是一种分布式机器学习的新范式,其通过交换模型参数、梯度或者其它中间计算值来训练全局机器学习模型,从而避免各参与方之间直接交互隐私训练数据。这不仅能实现各参与方样本数量和特征维度的有效扩充,提升各参与方本地模型性能,而且能保护各参与方的数据隐私,真正做到了数据可用不可见。进一步,为保护联邦学习训练过程中传递的中间信息的隐私,如在横向联邦学习中,参与方和中心服务器之间会传递模型参数或梯度,在纵向联邦学习中参与方之间会传递残差、梯度、海森矩阵等信息,paillier同态加密算法被广泛使用。
3.paillier加密算法(概率公钥加密算法)是一种非对称式且满足加法同态性质的加密算法,同传统的公钥加密算法相比,其支持在密文域上执行算术运算,并且保证密文域上的运算结果解密后同明文域上的计算结果相同。基于这种加法同态性质,paillier加密算法被广泛应用在很多实际联邦学习系统中,用以加密联邦学习中所传递的中间信息从而避免信息接收方推断出隐私信息,进一步提升联邦学习系统的安全性,保护训练数据的隐私。
4.在现有基准paillier加密算法中,针对每个加密任务都需要生成一个随机数并执行模幂运算。当加密任务数量较少时,加密时间开销仍可以接受,但对于联邦学习这类迭代式的机器学习系统来说,加密任务数量会随着迭代轮次的增加而不断增多,导致paillier加密算法的时间开销成为整个联邦学习系统运行效率的瓶颈。
5.有鉴于此,特提出本发明。


技术实现要素:

6.本发明的目的是提供了一种联邦学习系统中的快速paillier加密方法,能在保证同基准paillier加密算法相同安全性的前提下,减少训练协议在线阶段的加密运算开销,提升整个联邦学习系统的运行效率,进而解决现有技术中存在的上述技术问题。
7.本发明的目的是通过以下技术方案实现的:
8.本发明实施方式一种联邦学习系统中的快速paillier加密方法,包括:
9.步骤1,离线以模幂运算得出密态零集合:联邦学习系统启动模型训练之前的训练协议离线阶段,联邦学习系统的各参与方根据自身的对应训练任务确定自身加密任务总次
数,各参与在本地使用公钥以模幂运算生成与自身加密任务总次数对应数量的密态零组成密态零集合;
10.步骤2,利用离线得出的密态零集合以模乘运算进行在线加密:各参与方启动在线阶段联邦学习训练协议进入训练协议在线阶段进行联邦学习训练,各参与方每次需要对明文执行一次paillier加密操作时,均从所述步骤1中该参与方生成的密态零集合中随机选择一个密态零以模乘运算进行本次paillier加密操作,并在所述密态零集合中去除本次所选择的密态零。
11.与现有技术相比,本发明所提供的联邦学习系统中的快速paillier加密方法,其有益效果包括:
12.通过联邦学习系统的各参与方在离线阶段以模幂运算生成与自身加密任务总次数对应数量的密态零组成密态零集合,在线阶段需要对明文加密时,各参与方利用离线阶段生成的密态零在密文域上执行模乘运算即可实现加密,由于模乘运算相比大整数模幂运算的时间开销更小,避免了以往各参与方在线阶段加密执行基准paillier加密算法中耗时较大的大整数模幂运算,可以减少在线阶段加密运算的时间开销。该方法很好的提升了联邦学习训练协议在线阶段的运行效率。
附图说明
13.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
14.图1为本发明实施例提供的联邦学习系统中的快速paillier加密方法的流程示意图。
15.图2为本发明实施例提供的快速paillier加密方法的离线得出密态零集合的流程图。
16.图3为本发明实施例提供的快速paillier加密方法中同基准paillier加密算法在训练协议在线阶段的运行时间对比示意图。
17.图4为本发明实施例提供的快速paillier加密方法中同基准paillier加密算法在训练协议离线阶段的运行时间对比示意图。
具体实施方式
18.下面结合本发明的具体内容,对本发明实施例中的技术方案进行清楚、完整地描述;显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,这并不构成对本发明的限制。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
19.首先对本文中可能使用的术语进行如下说明:
20.术语“和/或”是表示两者任一或两者同时均可实现,例如,x和/或y表示既包括“x”或“y”的情况也包括“x和y”的三种情况。
21.术语“包括”、“包含”、“含有”、“具有”或其它类似语义的描述,应被解释为非排它
性的包括。例如:包括某技术特征要素(如原料、组分、成分、载体、剂型、材料、尺寸、零件、部件、机构、装置、步骤、工序、方法、反应条件、加工条件、参数、算法、信号、数据、产品或制品等),应被解释为不仅包括明确列出的某技术特征要素,还可以包括未明确列出的本领域公知的其它技术特征要素。
22.术语“由
……
组成”表示排除任何未明确列出的技术特征要素。若将该术语用于权利要求中,则该术语将使权利要求成为封闭式,使其不包含除明确列出的技术特征要素以外的技术特征要素,但与其相关的常规杂质除外。如果该术语只是出现在权利要求的某子句中,那么其仅限定在该子句中明确列出的要素,其他子句中所记载的要素并不被排除在整体权利要求之外。
23.除另有明确的规定或限定外,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如:可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本文中的具体含义。
24.当浓度、温度、压力、尺寸或者其它参数以数值范围形式表示时,该数值范围应被理解为具体公开了该数值范围内任何上限值、下限值、优选值的配对所形成的所有范围,而不论该范围是否被明确记载;例如,如果记载了数值范围“2~8”时,那么该数值范围应被解释为包括“2~7”、“2~6”、“5~7”、“3~4和6~7”、“3~5和7”、“2和5~7”等范围。除另有说明外,本文中记载的数值范围既包括其端值也包括在该数值范围内的所有整数和分数。
25.术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述和简化描述,而不是明示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本文的限制。
26.下面对本发明所提供的联邦学习系统中的快速paillier加密方法进行详细描述。本发明实施例中未作详细描述的内容属于本领域专业技术人员公知的现有技术。本发明实施例中未注明具体条件者,按照本领域常规条件或制造商建议的条件进行。本发明实施例中所用试剂或仪器未注明生产厂商者,均为可以通过市售购买获得的常规产品。
27.如图1所示,本发明实施例提供一种联邦学习系统中的快速paillier加密方法,包括:
28.步骤1,离线以模幂运算得出密态零集合:联邦学习系统启动模型训练之前的训练协议离线阶段,联邦学习系统的各参与方根据自身的对应训练任务确定自身加密任务总次数,各参与在本地使用公钥以模幂运算生成与自身加密任务总次数对应数量的密态零组成密态零集合;
29.步骤2,利用离线得出的密态零集合以模乘运算进行在线加密:各参与方启动在线阶段联邦学习训练协议进入训练协议在线阶段进行联邦学习训练,各参与方每次需要对明文执行一次paillier加密操作时,均从所述步骤1中该参与方生成的密态零集合中随机选择一个密态零以模乘运算进行本次paillier加密操作,并在所述密态零集合中去除本次所选择的密态零。
30.如图2所示,上述步骤1中,按以下方式联邦学习系统的各参与方根据自身的对应训练任务确定自身加密任务总次数,各参与在本地使用公钥生成与自身加密任务总次数对应数量的密态零组成密态零集合,包括:
31.步骤11,确定训练协议加密任务总次数:联邦学习系统中的各参与方,根据所选择的机器学习模型,确定在整个训练协议运行过程中自身所需要执行的加密任务总次数;
32.步骤12,生成并获取公钥:拥有私钥的参与方先随机选择两个长度相同且位数不少于512比特的素数p和q,计算n=pq,接着令g=n+1,则该拥有私钥的参与方生成的公钥为(n,g),私钥为(λ,μ);联邦学习系统中的其它参与方向该拥有私钥的参与方请求其公钥;
33.步骤13,生成密态零:联邦学习系统中各参与方均获取公钥后,根据各参与方确定的自身加密任务总次数,通过获取的公钥加密来生成对应数量的密态零,并用生成的全部密态零组合成密态零集合。
34.上述步骤11中,若两个参与方参与的是纵向逻辑回归模型,则拥有公钥的参与方按公式计算得出自身的加密任务总次数,所述公式中,m为该拥有公钥的参与方的特征维度;b为小批量数据集合的大小;e为迭代轮数;d为训练集样本总量;则拥有私钥的参与方按公式4ed计算得出自身的加密任务总次数,所述公式中,e为迭代轮数;d为训练集样本总量;
35.若两个参与方参与的是纵向神经网络模型,则拥有公钥的参与方按公式计算得出自身的加密任务总次数,所述公式中,z为该拥有公钥的参与方的模型输出维度;e为迭代轮数;d为训练集样本总量;b为小批量数据集合的大小;则拥有私钥的参与方按公式计算得出自身的加密任务总次数,所述公式中,为模型参数量;e为迭代轮数;d为训练集样本总量;b为小批量数据集合的大小。
36.上述步骤13中,按以下方式通过获取的公钥加密来生成对应数量的密态零,并用生成的全部密态零组合成密态零集合,包括:
37.方式一:用基准paillier加密算法通过获取的公钥为每个加密任务加密生成一个密态零,将生成的全部密态零组合成密态零集合;
38.方式二:根据加密任务总次数中确定加密任务预定数量,用基准paillier加密算法为预定数量加密任务的每个加密任务通过获取的公钥加密生成一个密态零,利用已生成的密态零随机组合得出所需的全部密态零,将生成的全部密态零组合成密态零集合。通过在离线阶段先生成小批量密态零再随机组合的方式,能进一步缩短离线阶段的运行时间。
39.上述步骤13的方式一中,按以下方式用基准paillier加密算法通过获取的公钥为每个加密任务加密生成一个密态零,将生成的全部密态零组合成密态零集合,包括:
40.按加密任务总次数随机选择n个随机整数r1,r2,

,rn且保证0《ri《n,i=1,2,

,n;
41.拥有私钥的参与方利用各随机整数ri用基准paillier加密算法通过获取的公钥加密整数0,即生成密态零;
42.拥有私钥的参与方将生成的所有密态零组成密态零集合s={《0》1,《0》2,

,《0》n}。
43.上述步骤13的方式二中,按以下方式根据加密任务总次数中确定加密任务预定数量,用基准paillier加密算法为预定数量加密任务的每个加密任务通过获取的公钥加密生成一个密态零,利用已生成的密态零随机组合得出所需的全部密态零,将生成的全部密态零组合成密态零集合,包括:
44.若加密任务总次数为n,通过公式计算得出加密任务预定数量m;
45.按加密任务预定数量m随机选择m个随机整数r1,r2,

,rm且同样保证0《ri《n,i=1,2,

,m,ri为整数;
46.拥有私钥的参与方利用m个随机整数生成对应数量的密态零,将生成的密态零组成密态零分集合t={《0》1,《0》2,

,《0》m},其中
47.拥有私钥的参与方计算密态零分集合t的所有2
|t|-1个非空子集,将非空子集记为对于每个非空子集拥有私钥的参与方将该非空子集中所有元素连乘,得到从中按加密任务总次数n随机挑选n个值组成密态零集合s={《0》1,《0》2,

,《0》n}。
48.综上可见,本发明实施例的面向联邦学习系统的快速paillier加密方法,通过在离线阶段生成密态零,在线阶段需要对明文加密时,利用的是离线阶段生成的密态零在密文域上执行加法运算,避免了以往在线阶段加密所需的密态零是在线阶段执行基准paillier加密算法中耗时较大的大整数模幂运算得出,可以减少在线阶段加密运算的时间开销。该方法很好的提升了联邦学习训练协议在线阶段的运行效率。
49.为了更加清晰地展现出本发明所提供的技术方案及所产生的技术效果,下面以具体实施例对本发明实施例所提供的面向联邦学习系统的快速paillier加密方法进行详细描述。
50.实施例1
51.如图1所示,本发明实施例提供一种联邦学习系统中的快速paillier加密方法,可以划分为训练协议离线阶段和训练协议在线阶段两个步骤。不失一般性,假定联邦学习系统中私钥拥有方(即私钥拥有的参与方)称为bob,公钥拥有方(即公钥拥有的参与方)称为alice。
52.步骤1,训练协议离线阶段:在联邦学习系统启动模型训练之前,即训练协议离线阶段,各参与方根据具体的训练任务确定加密任务的总次数,并在本地使用公钥完成对应数量密态零的生成。更具体的,此阶段可以划分为如下三个子步骤(参见图2):
53.步骤11,确定训练协议加密任务总次数:联邦学习系统中的各参与方,根据所选择的机器学习模型,确定在整个训练协议运行过程中自身所需要执行的加密任务总次数;记训练集样本总量为d、迭代轮数为e、小批量数据集合大小为b;那么在两参与方参与的纵向逻辑回归模型中,设公钥方特征维度为m,则公钥方的加密任务总次数为私钥方的加密任务总次数为4ed;又如在两参与方参与的纵向神经网络模型中,设公钥方的模型输
出维度为z、模型参数量为则公钥方的加密任务总次数为私钥方的加密任务总次数为
54.步骤12,生成并获取公钥:同传统paillier加密系统一样,bob方首先随机选择两个长度相同且位数不少于512比特的素数p和q,计算n=pq,个长度相同且位数不少于512比特的素数p和q,计算n=pq,接着令g=n+1,则bob方生成的公钥为(n,g),私钥为(λ,μ)。联邦学习系统中其它参与方如alice,向bob请求其公钥。
55.步骤13,生成密态零:联邦学习系统中各参与方均获取公钥(即paillier公钥)后,根据其所确定的训练协议加密任务总数,来生成对应数量的密态零。不失一般性假设bob方在整个训练协议运行期间所需要执行的加密任务总数为n,其可以采用如下两种方式来生成n个密态零:
56.方式一:对每个加密任务均使用基准paillier加密算法生成一个密态零。
57.具体为:bob方随机选择n个随机整数r1,r2,

,rn且保证0《ri《n,i=1,2,

,n,ri为整数。接着对于每个随机整数ri,bob使用基准paillier加密算法加密整数0,即
58.bob将所有密态零组成集合s={《0》1,《0》2,

,《0》n},供训练协议在线阶段使用。
59.方式二:先使用基准paillier加密算法生成小批量密态零接着随机组合。
60.在该方式二中,bob方并非对每个加密任务都使用基准paillier加密算法生成一个密态零,而是首先计算作为需要生成的预定数量;
61.然后随机选择m个随机整数r1,r2,

,rm且同样保证0《ri《n,i=1,2,

,m;
62.接着bob利用m个随机整数生成小批量密态零集合t={《0》1,《0》2,

,《0》m},其中然后bob计算集合t的所有2
|t|-1个非空子集,记为对于每个非空子集bob将该子集中所有元素连乘,得到最终bob从中随机挑选n个值,组成密态零集合s,供训练协议在线阶段使用。
63.步骤2,训练协议在线阶段:联邦学习系统中各参与方在离线阶段生成所需数量的密态零后,各参与方启动在线阶段联邦学习训练协议;同样不失一般性,假设参与方bob在训练协议在线阶段中需要对明文x执行一次加密操作,则其通过在离线阶段计算得到的密态零集合s中随机选择一个元素sj,计算enc(x)=s
jgx
modn2=sj(nx+1)modn2,接着更新集合s=s-{sj}。这样,原本基准paillier加密算法中计算耗时的大整数模幂运算被替换成计算高效的模乘运算,从而能够减少在线训练阶段加密任务的计算时间开销。
64.通过以下方式可以验证上述方法与现有的paillier加密方法的结果正确性是一致的。根据传统paillier加密系统中的解密公式其中c表示密文,函数则对于明文x:
65.(a)从方式一所产生的密态零集合s中随机选择一个元素,记为则代入到解密公式中可得代入到解密公式中可得其中是依据carmichael定理。解密结果证明了步骤13的方式一生成密态零集合的密态零进行paillier加密的正确性。
66.(b)从方式二所产生的密态零集合s中随机选择一个元素,不失一般性,记为则同样,将密文c代入到解密公式中可得同样,将密文c代入到解密公式中可得其中同样利用carmichael定理可得解密结果同样证明了步骤13的方式二生成密态零集合的密态零进行paillier加密的的正确性。
67.本发明提出的联邦学习系统中的快速paillier加密方法,同现有基准paillier加密算法在训练协议在线阶段的计算时间开销对比,如图3所示。测试环境为macos monterey12.2.1操作系统,1.4ghz四核intelcorei5 cpu,8g内存。图3中横坐标为联邦学习训练协议在线阶段所需执行加密任务的总次数,共分为四组,分别为(4k,8k,16k,32k);纵坐标为两种加密算法的运行时间,取三次运行时间的平均值得到。可以看到,快速paillier加密算法在四种不同规模的加密任务中均明显快于基准paillier加密算法,运行时间分别提升49.2倍、46.6倍、51.3倍和46.9倍,充分验证了其有效性。同时,图4中还展示了快速paillier加密算法在训练协议离线阶段所采取的两种产生密态零方案的运行时间对比,其中横坐标同样表示联邦学习训练协议所需执行的加密任务的总次数,同样分为四组,分别为(4k,8k,16k,32k),纵坐标表示两种产生密态零方案所消耗的时间,取三次平均值得到。可以看到,在四组不同规模的加密任务中,方式二的运行时间与方式一相比,分别提升38.8倍、51.1倍、61.5倍和67.7倍。同时可以发现,随着加密任务规模的不断增大,方式二的计算效率提升将进一步扩大,从而能进一步减少快速paillier加密算法在训练协议离线阶段的运行时间。
68.实施例2
69.参见图1、2,以两方纵向联邦学习系统为例,假定该系统中参与方bob拥有私钥和公钥,参与方alice只拥有公钥,那么快速paillier加密算法的具体实施方式如下:
70.步骤1,训练协议离线阶段:
71.步骤11,确定训练协议加密任务总次数:bob综合所选机器学习模型、本地数据集样本数量和特征维度、迭代轮数和小批量数据集大小等,最终确定本方在整个训练协议运行过程中需要执行的加密任务总数n=7。
72.步骤12,生成公钥:bob随机选择素数p=13和q=17,计算n=13
×
17=221,
μ=192-1
mod 221=160,同时令g=221+1=222和λ=192。则bob方获取的公钥为(221,222),私钥为(192,160)。
73.步骤13,生成密态零:在确定总共有7个加密任务后,bob方可以通过如下两种方式来产生7个密态零:
74.(a)对每个加密任务均使用基准paillier加密算法生成一个密态零。bob随机挑选7个随机整数,分别为r1=156,r2=127,r3=102,r4=50,r5=178,r6=121,r7=182。接着bob根据基准paillier加密算法计算《0》1=2220×
156
221
mod2212=23829,类似的,可以计算出《0》2=3358,《0》3=36992,《0》4=17050,《0》5=23299,《0》6=15740,《0》7=26364,最终可以得到离线阶段密态零集合s={23829,3358,36992,17050,23299,15740,26364},供在线阶段使用。
75.(b)先生成小批量密态零接着随机组合。bob首先计算然后随机挑选3个随机整数,分别为r1=139,r2=160,r3=164。接着bob通过基准paillier加密算法计算得到小批量密态零集合t={2220×
139
221
mod2212,2220×
160
221
mod2212,2220×
164
221
mod2212}={42903,45991,9901}。然后bob计算集合t所有2
3-1=7个非空子集,分别为t1={42903},t2={45991},t3={9901},t4={42903,45991},t5={42903,9901},t6={45991,9901},t7={42903,45991,9901}。以子集t7为例,计算s7=42903
×
45991
×
9901mod2212=44466,类似的,可以分别得到s1=42903,s2=45991,s3=9901,s4=24314,s5=12426,s6=12248,最终bob可以得到离线阶段密态零集合s={42903,45991,9901,24314,12426,12248,44466},供在线阶段使用。
76.步骤2,训练协议在线阶段:bob在整个联邦学习训练协议中需要加密的明文集合为x={11,12,13,14,15,16,17}。以加密x3=13为例,bob从方案1所产生的密态零集合中随机挑选s2=3358,计算enc(13)=3358
×
(1+13
×
221)mod2212=29215;同样bob也可以选择从方案2所产生的密态零集合中随机选择s6=12248,计算enc(13)=12248
×
(1+13
×
221)mod2212=35232。
77.通过以下方式对上述实施例的正确性进行验证:对于从方式一中随机选择s2=3358计算得到密文enc(13)=29215,可以使用传统paillier解密公式计算3358计算得到密文enc(13)=29215,可以使用传统paillier解密公式计算同样的,对于从方式二中随机挑选s6=12248计算得到的密文enc(13)=35232,同样可以使用传统paillier解密公式计算由此可以说明快速paillier加密算法是正确的。
78.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。本文背景技术部分公开的信息仅仅旨在加深对本发明的总体背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1