基于同态加密及签名算法的分布式机器学习隐私保护方法及系统
- 国知局
- 2024-07-31 23:26:20
本发明属于人工智能安全,涉及基于同态加密和签名算法的分布式机器学习隐私保护方法及系统。
背景技术:
1、机器学习由于其强大的性能,在生产生活的各个方面得到了广泛的应用,但是,机器学习的优异表现依赖于强大的硬件,为了提高机器学习的训练的效率,分布式机器学习应运而生,在分布式机器学习框架中,各个用户用自己的数据集和硬件训练同一个机器学习模型,然后将训练得到的本地模型参数上传到第三方的中心云服务器进行聚合,然后将聚合得到的全局参数返回给各个本地用户,本地用户用全局参数更新自己的机器学习模型,这样就实现了一个机器学习模型的分布式并行训练。
2、但是,这样的机器学习模型面临着模型参数隐私泄露的问题:首先,用户和中心云之间的本地模型参数和聚合得到的全局模型参数传递是通过公开网络进行的,这样就难免会遇到网络攻击。如果消息的机密性不加以保护,攻击者就可以轻易窃取这些参数,由此泄露模型的隐私并且造成商业价值的损失。其次,如果不对消息的完整性加以保护,攻击者同样可以篡改这些参数,从而扰乱模型的训练,降低模型的精度。
3、目前分布式机器学习的隐私保护方法主要有同态加密和差分隐私两种,同态加密作为一种在可以密文上进行算术运算的加密技术,完美契合了模型参数聚合的场景,可以让加密的本地参数在半可信的第三方服务器上进行聚合,而本地参数本身却不会被泄露给第三方中心云服务器,此外,该方案不会降低参数本身的精度。差分隐私通过给参数添加噪声的方式保护隐私,模型则直接在添加了噪声的参数上进行训练,相比同态加密,计算复杂度会更低,但是会降低模型准确性和可用性。
4、专利申请号为cn202311271587.5的中国发明专利申请提供了一种轻量级隐私保护和完整性验证的联邦学习方法、系统、设备及介质,采用同态加密技术和双服务器架构,实现了分布式机器学习的隐私保护。该发明方法中,对聚合的模型参数进行同态加密保护参与用户的隐私,对计算结果进行哈希并且和认证服务器的同态哈希计算结果进行比对,可以验证聚合服务器是否诚实地执行了聚合算法并得到了正确的聚合结果。但该方法无法抵抗聚合服务器和认证服务器的共谋攻击,且无法保证数据传输过程中的完整性。
5、专利申请号为cn202310382247.3的中国发明专利申请提供了一种基于paillier的联邦学习数据隐私保护方法。该方法采用paillier加密对聚合的本地参数进行加密,由于paillier加密是加法同态的,聚合服务器可以在密文上计算本地梯度参数的和,从而保护了本地梯度参数的隐私。但是,该方法的公私钥是由一个随机客户端生成的,且所有密文都用这一对公私钥,其他客户端的所有隐私数据都将对生成密钥的客户端单向透明;此外,该方法只支持梯度相加这一简单的聚合方案,不支持更加复杂先进的参数聚合方案,最后,该方法无法保证数据在公开网络上传输的完整性,无法抵抗网络攻击者的篡改。
6、专利申请号为cn20231 1434899.3的中国发明专利申请提供了一种数据隐私保护和高模型质量的分布式联邦学习方法。该方法采用mkhe同态加密方法对本地参数的隐私进行保护,参数的聚合没有采用中心服务器,而是采用区块链技术进行去中心化的参数聚合,该方法可以保护模型参数的隐私并检查更新模型的质量,防止恶意客户端篡改和上传虚假模型。但是,该方法没有考虑到传输过程中参数的完整性保护,网络攻击者可以轻易篡改返回的数据。
7、专利申请号为cn202311100506.5的中国发明专利申请提供了基于双服务器架构的隐私保护可验证联邦学习方法,采用paillier同态加密算法对客户端要聚合的本地梯度进行加密;同时,采用聚合服务器和辅助服务器的双服务器架构,将聚合梯度和聚合哈希标签的过程分别在这两个服务器上独立完成,避免了单个服务器被攻陷而造成的伪造全局参数问题;同时,引入密钥生成中心,为整个系统的密钥分发提供保障。但是,该方案无法抵抗聚合服务器和辅助服务器的共谋攻击,并且,所有的客户端都共享同一对加密密钥,一旦被泄露,所有客户端的本地梯度隐私都会被泄露;此外,该方案中数据在开放网络上传输的完整性也无法得到保证。
8、专利申请号为cn202310326043.8的中国发明专利申请提供了基于线性同态哈希和签密的可验证隐私保护联邦学习方法,采用聚合服务器和更新服务器的双服务器架构,聚合服务器负责聚合所有用户的本地模型参数,并交由更新服务器,与更新服务器计算得到的本地模型参数的同态哈希结果进行比较,验证一致则将聚合得到的全局模型返还给各个用户,数据的隐私采用加法同态算法和aes算法进行保护。该方法的问题在于无法抵抗聚合服务器和更新服务器的共谋攻击,且双重加密和结果的验证大大降低了模型训练的效率。
9、专利申请号为cn202010847611.5的中国发明专利申请提供了一种基于差分隐私的分布式机器学习隐私保护方法。在该方案中,用户广播经过添加噪声扰动处理的自己的本地参数,保护了自身的本地参数隐私,也能够和其他用户之间合作学习得到最优化的本地参数,去中心化的结构避免了中心聚合服务器的通信瓶颈,提高了聚合的效率。但是,差分隐私添加的扰动难以对抗基于对抗式生成网络gan的攻击,且去中心化的广播增大了整个系统的总体通信负载。
10、期刊《华中科技大学学报(自然科学版)》2020.05期论文“高效抗合谋攻击分布式机器学习隐私保护方案”,基于部分同态hash-elgamal方案构建了同态加密算法,保护了数据提供者的外包数据的隐私以及数据传输过程中的隐私;云服务器用差分隐私算法,添加拉普拉斯噪声,保护加密的数据。分布式架构协助完成分布式机器学习模型的训练。但是,该方案使用同态加密保护数据提供者上传到云服务器的数据集,数据集的巨大数据量造成了巨大的计算成本。
11、期刊《信息技术与信息化》2023.08期论文“基于本地差分隐私的联邦学习隐私保护方法”提出了一种基于本地差分隐私的联邦学习方法fl-ldp,在模型数据中加入高斯机制产生的扰动,保护了用户数据的隐私。但是,该差分隐私方案本身有隐私预算的限制,且无法抵抗对抗式生成网络的攻击,另一方面,该方案没有考虑传输数据的完整性,无法抵抗网络攻击者的篡改。
12、综上所述,现有分布式机器学习隐私保护方法安全性差,存在隐私信息泄露的风险,无法抵抗共谋攻击,无法抵抗网络攻击者的篡改,密钥管理混乱,不支持复杂的参数聚合等种种问题。
技术实现思路
1、针对现有技术存在的问题,本发明一种基于同态加密和签名算法的分布式机器学习隐私保护方法及系统,基于n阶合数剩类困难问题和大整数因式分解难题,设计了支持同态加法的同态加密算法,并设计了与加密算法相契合的签名算法,实现了不同用户的数据用不同的公钥加密,提高了数据的安全性;加密算法的同态特性支持密文的同态聚合,保护用户本地参数的隐私;诚实可信管理员管理整个系统的密钥,保证了加密和签名公钥的可信,并为半可信中心服务器聚合全局参数提供了密文转换的功能;加密算法和签名算法的结合,为开放网络中传输的参数数据的隐私和完整性提供了保障;该方案使得分布式机器学习的数据对恶意网络攻击者不可窃取,无法被隐秘篡改,保障对半可信的中心云的隐私性。
2、为了实现上述目的,本发明采取的技术方案是:
3、基于同态加密和签名算法的分布式机器学习隐私保护方法,包括如下步骤:
4、系统初始化模块基于n阶合数困难问题,定义签名和加密算法的全局参数,根据全局参数,生成管理员的主密钥,建立并维护整个系统的公钥目录,从而初始化整个系统;
5、中心服务器密钥生成模块接收系统初始化模块分发的全局参数,并基于全局参数生成中心服务器的加密公私钥对和签名公私钥对,并将加密公钥和签名公钥提交给系统初始化模块;
6、用户密钥生成模块接收系统初始化模块分发的全局参数,并基于全局参数生成用户的加密公私钥对和签名公私钥对,并将加密公钥和签名公钥提交给系统初始化模块存放并维护;
7、本地模型训练及参数保护模块用于使用用户的本地数据,训练机器学习模型,将训练得到的本地参数,签名并加密传输给中心服务器的加密参数聚合处理模块;
8、加密参数聚合处理模块收集不同用户侧的本地模型训练及参数保护模块上传的加密本地参数,并打包发送给管理员侧的密文转换模块;
9、密文转换模块收到中心服务器侧加密全局参数处理模块发来的打包密文后,将来自不同用户公钥加密的密文,用主密钥统一解密,并用管理员的公钥重新加密,然后签名加密,并发送给加密参数聚合处理模块;
10、加密参数聚合处理模块收到管理员侧密文转换模块发来的转换密文之后,聚合这些转换密文,得到加密全局参数,签名加密,然后发送给管理员侧的密文转换模块进行二次转换;
11、密文转换模块收到加密参数聚合处理模块发来的加密全局参数后,用管理员的私钥解密,签名全局参数,并分别用不同用户的公钥加密,将这些密文打包发送给加密参数聚合处理模块;
12、加密参数聚合处理模块接收到管理员侧密文转换模块发来的经转换后的加密全局参数,直接分发给对应的用户;
13、本地模型训练及参数保护模块在接收到加密参数聚合处理模块分发的全局参数后,解密并验证签名,验证通过后使用得到的全局参数更新用户的分布式机器学习模型,完成一轮训练,并重复进行下一轮迭代直至训练结束。
14、进一步的,具体包括如下步骤:
15、步骤1,系统公共参数生成模块首先选择2个安全素数p,q,满足p=2p′+1,q=2q′+1,并且其中p′,q′也是素数,令模数n=pq,群是二次剩余模n2的循环群,qr代表二次剩余,随机选择元素计算g=θ2mod n2,g是群的生成元,接下来计算gp′q′=1+kn,k∈[1,n-1];群的阶为令(n,g,k)为公共参数,系统公共参数生成模块通过安全信道将其分发给中心服务器和全部用户;
16、步骤2,主密钥生成模块设置mk=(p′,q′)为主密钥,由管理员保密保存,然后选择一个随机数α∈[1,n2-1],作为管理员的加密私钥,并计算对应的加密公钥h=gαmod n2,最后选择一个随机数x∈[1,n]作为签名私钥,并计算对应的签名公钥y=gx mod n2;
17、步骤3,公钥维护模块首先建立一个公钥目录,并将管理员的加密公钥h和签名公钥y和存放入公钥目录,随后接收系统中所有实体提交的加密公钥和签名公钥,并验证其有效性,如果有效则存放入公钥目录,该公钥目录公开可访问;
18、步骤4,中心服务器密钥生成模块接收系统初始化模块分发的公共参数(n,g,k),选择随机数αc∈[1,n2-1],作为中心服务器的加密私钥,并计算对应的加密公钥然后选择随机数xc∈[1,n]作为中心服务器签名私钥,并计算对应的签名公钥最后将加密公钥hc和签名公钥yc提交给公钥目录维护模块,存放于公开可访问的公钥目录;
19、步骤5,用户密钥生成模块接收系统初始化模块分发的公共参数(n,g,k),为用户i生成加密和签名密钥;首先,选择随机数αi∈[1,n2-1]作为用户i的加密私钥,并计算对应的加密公钥然后选择随机数xi∈[1,n]作为签名私钥,并计算对应的签名公钥最后将用户i加密公钥ht和签名公钥yi提交给公钥目录维护模块,存放于公开可访问的公钥目录;
20、步骤6,本地模型训练模块使用用户的本地数据,训练机器学习模型,将训练得到的参数pi,交由本地参数保护模块,进行加密处理;
21、步骤7,本地参数保护模块首先使用用户i的签名私钥xi,对本地参数pi和时间戳t进行签名,首先选择一个随机数r′1∈[1,n],计算s2=r′1h(s1,(pi||t))mod n2,生成签名(s1,s2),然后,对本地参数pi,时间戳t和签名(s1,s2)进行加密;首先,选择一个随机数r1∈[1,n2-1],计算密文生成密文(ai,bi);最后,密文被发送给中心服务器侧加密参数收集模块;
22、步骤8,加密参数收集模块收集各个用户发来的加密的密文{(ai,bi)|i∈[1,n]},并根据用户的训练情况得到学习率η,将学习率η和时间戳t合并为η||t,然后用中心云的签名私钥xc,生成签名(s1c,s2c),其中s2c=(r′2h(s1c,(η||t))+xc)mod n2,r′2∈r[1,n2-1],接着将η||t||(s1c,s2c)用管理员公钥h加密生成密文(ag,bg),其中r2∈r[1,n2-1];最后将用户密文{ai,bi|i∈[1,n]}和(ac,bc)合并发送给密文转换模块;
23、步骤9,密文转换模块接收到加密参数收集模块发来的加密密文{(ai,bi)|i∈[1,n]}和(ac,bc)之后,并用主密钥mk=(p′,q′)解密密文,首先计算然后计算最后计算出明文随后,密文转换模块检查等式当且仅当等式成立且时间戳t满足要求,则签名有效;否则,签名无效;同理解密并验证签名得到η;
24、步骤10,当签名有效时,密文转换模块将本地参数{pi|i∈[1,n]}乘以-η得到{-ηpi|i∈[1,n]},然后将其用管理员的公钥h加密为{(aai,bai)|i∈[1,n]},其中r3∈r[1,n2-1];随后,对转换的密文{(aai,bai)|i∈[1,n]}用管理员的签名私钥x进行签名,计算s2a=(r′3h(s1a,({(aai,bai)|i∈[1,n]}||t))+x)mod n2,r′3∈r[1,n],生成签名(s1a,s2a),最后,用中心服务器的公钥hc加密{(aai,bai)|i∈[1,n]}||t||(s1a,s2a)为r4∈r[1,n2-1],得到密文最后将密文发送给全局参数同态聚合模块;
25、步骤11,全局参数同态聚合模块用中心服务器的加密私钥αc解密密文得到明文接下来验证等式并检查时间戳t,当且仅当等式成立且时间戳满足要求,签名验证通过,接受密文;否则,拒绝密文;在接受密文的情况下,全局参数同态聚合模块同态聚合全局参数,计算(ag,bg)就是聚合得到的全局参数;
26、步骤12,全局参数同态聚合模块对得到的(ag,bg)||t进行签名,计算s2c2=(r′4h(s1c2,((ag,bg)||t))+xc)mod n2,r′4∈r[1,n],生成签名(s1c2,s2c2),然后对(s1c2,s2c2)||t用管理员的加密公钥h进行加密得到密文(ac1,bc1),其中r5∈r[1,n2-1],最后将密文发送给密文转换模块进行二次转换;
27、步骤13,密文转换模块收到全局参数同态聚合模块发来的全局参数密文(ac1,bc1)后,用管理员的加密私钥α解密密文(ac1,bc1),首先计算验证等式是否成立,当且仅当等式成立且时间戳t满足条件,签名验证通过,接收密文;否则,丢弃密文;密文转换模块接着用主密钥mk=(p′,q′)解密(ag,bg),首先计算然后计算最后计算pg就是聚合得到的全局参数明文;
28、步骤14,密文转换模块对pg||t进行签名,首先计算s2ag=(r′5h(s1ag,(pg||t))+x)mod n2,r′5∈r[1,n],生成签名(s1ag,s2ag),然后用各个用户各自的加密公钥{hi|i∈[1,n]}加密pg||t||(s1ag,s2ag)为其中r6∈r[1,n2-1];将加密得到的密文{(aai,bai)|i∈[1,n]}打包发送给聚合参数分发模块;
29、步骤15,聚合参数分发模块直接把打包的密文解包并将每个密文(aai,bai),i∈[1,n]发送给对应的用户i侧的本地参数保护模块;
30、步骤16,用户i侧的本地参数保护模块首先解密密文(aai,bai),计算然后验证等式是否成立,当且仅当等式成立且时间戳t满足要求,则签名验证通过,接受全局参数pg;否则,签名验证不通过;在签名有效的情况下,用户i侧的本地参数保护模块将pg发送给本地模型训练模块;
31、步骤17,用户i侧的本地模型训练模块接受全局参数pg并用其更新模型参数,一轮模型全局参数聚合结束,返回步骤6进行下一轮迭代,每一轮迭代用户都用聚合的全局参数更新模型,直到模型表现符合要求,机器学习模型的分布式训练结束。
32、本发明还提供了基于同态加密和签名算法的分布式机器学习隐私保护系统,包括系统初始化模块、中心服务器密钥生成模块、用户密钥生成模块、本地模型训练及参数保护模块、加密参数聚合处理模块和密文转化模块;
33、所述系统初始化模块用于基于n阶合数困难问题,定义签名和加密算法的全局参数,根据全局参数,生成管理员的主密钥,建立并维护整个系统的公钥目录,从而初始化整个系统;
34、所述中心服务器密钥生成模块用于接收系统初始化模块分发的全局参数,并基于全局参数生成中心服务器的加密公私钥对和签名公私钥对,并将加密公钥和签名公钥提交给系统初始化模块,以便其维护整个系统所有实体的公钥目录;
35、所述用户密钥生成模块用于接收系统初始化模块分发的全局参数,并基于全局参数生成用户的加密公私钥对和签名公私钥对,并将加密公钥和签名公钥提交给系统初始化模块存放并维护;
36、所述本地模型训练及参数保护模块用于使用用户的本地数据,训练机器学习模型,将训练得到的本地参数,签名并加密传输给中心服务器的加密参数聚合处理模块;在接收到加密参数聚合处理模块分发的全局参数后,解密并验证签名,验证通过后使用得到的全局参数更新用户的分布式机器学习模型,完成一轮训练;
37、所述加密参数聚合处理模块用于将不同用户侧的本地模型训练及参数保护模块上传的加密本地参数进行收集,并打包发送给管理员侧的密文转换模块;在收到管理员侧密文转换模块发来的转换密文之后,聚合这些转换密文,得到加密全局参数,签名加密,然后发送给管理员侧的密文转换模块;在接收到管理员侧密文转换模块发来的经转换后的加密全局参数,直接分发给对应的用户;
38、所述密文转换模块用于在收到中心服务器侧加密全局参数处理模块发来的打包密文之后,将这些来自不同用户公钥加密的密文,用主密钥统一解密,并用管理员的公钥重新加密,然后签名加密,并发送给加密参数聚合处理模块;并在收到加密参数聚合处理模块发来的加密全局参数后,用管理员的私钥解密,签名全局参数,并分别用不同用户的公钥加密,将这些密文打包发送给加密参数聚合处理模块。
39、进一步的,所述系统初始化模块包括系统公共参数生成模块、主密钥生成模块和公钥目录维护模块;所述系统公共参数生成模块用于生成全局参数,所述主密钥生成模块用于生成管理员的密钥和主密钥,所述公钥目录维护模块用于维护公开可访问的公钥目录。
40、进一步的,所述本地模型训练及参数保护模块包括本地模型训练模块和本地参数保护模块,所述本地模型训练模块用于使用用户的本地数据,训练机器学习模型;所述本地参数保护模块用于将得到的本地参数进行加密保护并上传给中心服务器侧的加密参数聚合处理模块,并接收加密参数聚合处理模块返回的全局参数,用该全局参数更新本地模型。
41、进一步的,所述加密参数聚合处理模块包括加密参数收集模块、全局参数同态聚合模块和聚合参数分发模块;加密参数收集模块用于从各个用户收集本地数据,并打包给密文转模块进行首次密文转换;全局参数同态聚合模块用于将转换的密文同态聚合得到加密的全局参数;聚合参数分发模块用于将经由管理员侧的密文转换模块进行二次转换后的全局参数分发给各个用户。
42、与现有技术相比,本发明具有如下优点和有益效果:
43、1.本发明提供了一种基于同态加密和签名算法的分布式机器学习隐私保护方法及系统,基于n阶合数剩余类困难问题,大整数因式分解难题和离散对数难题构造加法同态加密算法,实现客户端上传数据的机密性保护;不同的客户端用各自的加密公钥加密自己的数据,并在管理员主密钥的协助之下,实现了全局参数的加法同态聚合;设计了契合加密算法的签名算法,保证了传输数据的完整性;管理员生成全局参数和维护系统的公钥目录,实现了分布式机器学习系统的安全密钥分发;本发明完整保护了分布式机器学习的数据在开放网络传输和半可信中心云上计算的隐私和完整性,管理员的引入,实现了安全的密钥分发和多密钥同态参数聚合。
44、2.本发明通过自主设计的系统初始化模块,生成基于n阶合数剩余类困难问题和离散对数难题的同态加密和数字签名全局参数、以及用于解密全局密文的主密钥,安全强度与1024位的rsa加密算法相当,该模块通过维护整个系统公钥目录,实现安全可信的公钥分发;通过用户和中心服务器的密钥生成模块,生成每个实体的加密和签名密钥;通过用户端的本地模型训练及参数保护模块,对于用户端本地数据,采用分布式机器学习模型进行分布式训练,得到本地参数,签名并加密上传;通过中心服务器侧的全局参数聚合处理模块,实现全局参数的聚合,保护用户端本地参数的隐私,并利用半可信的中心云,实现了对全局参数的聚合及分发;通过管理员侧的密文转换模块,协助中心服务器,实现了全局参数的同态聚合。
45、3.本发明能够实现针对传输数据的机密性和完整性保护,同时,在保护各用户端本地数据隐私的前提下,在半可信的中心服务器上实现全局参数的同态聚合。本发明可实现安全、可靠、高精度的分布式机器学习模型训练。
本文地址:https://www.jishuxx.com/zhuanli/20240730/197554.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。