一种基于双区块链的联邦学习加密数据审计方法及其系统
- 国知局
- 2024-11-21 11:33:17
本发明涉及一种基于双区块链的联邦学习加密数据审计方法及其系统,通过双区块链的结构与联邦学习的架构实现数据隐私保护,利用改良的国密算法sm9进行同态加密,设计审计算法审计模型训练过程中存在的梯度攻击威胁,属于人工智能安全领域。
背景技术:
1、审计是一种系统性的、独立的评估和检查活动,旨在验证和评估组织、系统、过程、项目或账务的准确性、合规性和可靠性。审计在各个领域和行业中扮演着重要的角色,它有助于确保数据的准确性和可靠性,并保护利益和资产,随着信息化建设与大数据时代发展,审计也被广泛应用于机器学习领域。作为分布式隐私保护机器学习新范式,联邦学习可能存在一些非可信参与方,它们可能试图通过提供虚假或损坏的加密梯度来干扰或破坏联邦学习过程。针对联邦学习中的加密梯度数据进行审计,定位存在的投毒攻击与搭便车攻击恶意梯度,对于维护模型学习效果是十分必要的。
2、然而,传统数据审计方法依赖于中心化的审计机构或第三方来验证数据和计算的准确性和合法性。这种中心化的信任模型可能引入单点故障,一旦审计机构或第三方受到攻击或操纵,审计结果可能受到质疑或篡改。此外,传统审计方法通常缺乏透明度,审计过程和结果对于参与者来说不可见或不可验证,从而可能导致对审计结果的怀疑和不信任。且传统的数据审计方法需要访问原始数据或解密数据才能进行审计,这与联邦学习的数据保留本地特性相悖,给参与成员带来了数据安全和隐私的风险。此外,传统数据审计方法无法有效地激励联邦学习中参与方合作并惩罚参与方的不当行为,不利于模型收敛。
3、区块链技术的出现为联邦学习的数据审计提供了新的可能性。区块链是一个去中心化、不可篡改的分布式账本,可以记录和验证交易和数据的完整性。文献《blockchainassisted federated learning for enabling network edge intelligence》通过利用区块链技术实现参与节点的审计,保证联邦学习过程的可靠性,并设计了一个匹配审计机制以避免隐私泄露。同态加密技术允许在加密状态下对数据进行计算操作,而无需解密数据本身,为联邦学习加密梯度的审计也提供了重要支持,如文献《blockchain andhomomorphic encryption based privacy-preserving model aggregation for medicalimages》即利用同态加密与区块链实现对隐私敏感模型的安全聚合。然而,在现有的方法中,使用单个区块链进行审计存在性能限制、故障风险大、资源利用率低等问题。
4、国密算法,以sm系列密码为代表,相比于国际主流的rsa算法,具有更高的效率、更低的功耗,然而国密算法不具有同态性质,在隐私保护时不占优势。2022年的文章《基于国密sm2和sm9的加法同态加密方案》实现了国密算法的加法同态,然而这种改良方法尚没有应用落地,且该方法中,密钥的生成依赖于kgc,不适用于联邦场景中多个加密方且对隐私保护需求极高的情境。
5、现有的联邦学习数据审计方法依赖于中心化的审计机构或第三方,可能引入单点故障和信任问题。且传统数据审计方法需要访问原始数据或解密数据,与联邦学习的数据保留本地特性相冲突,增加数据安全和隐私风险。引入区块链的审计方法则存在性能限制、故障风险大、资源利用率低等问题。最新的实现同态加密的改良国密算法却尚未落地应用且集中式生成密钥不易获得联邦成员信任。
技术实现思路
1、本发明的目的在于提供一种能够进行数据隐私保护、确保参与方公平与安全、高效利用资源的联邦学习数据审计方法,包括客户端模块、服务器端模块、行为区块链模块以及审计区块链模块,所述审计方法在四大模块按照一定步骤循环进行,直到模型训练收敛。本发明能够有效审计联邦学习中的梯度攻击威胁,并且合理分配了区块链的资源配置,具有较低的故障损失,使用改良国密算法分布式生成密钥且执行同态加密,密码效率更高、功耗更小、贴切分布式多用户情境。
2、本发明首先公开了一种基于双区块链的联邦学习加密数据审计方法,使用双区块链的结构对联邦学习的客户端梯度进行审计,其中行为区块链负责记录交易信息与为梯度密文添加噪声,审计区块链负责实施审计算法对梯度集合进行核查,使用改良sm9算法对客户端梯度数据进行同态加密,所述审计算法针对一个梯度方阵,通过“先整体、后逐行逐列、最后单个梯度”的方法逐步缩小审计范围来定位威胁梯度。本发明所述方法的主要步骤包括:
3、步骤s1、服务器分发全局模型给审计区块链与各客户端,分发测试数据集给审计区块链;
4、步骤s2、客户端训练得到本地数据梯度,用改良国密sm9算法进行同态加密,调用智能合约计算测试数据集上的模型损失,向行为区块链提交梯度密文和损失;
5、步骤s3、行为区块链为梯度密文添加噪声并记录交易信息,将密文与损失转交给审计区块链;
6、步骤s4、审计区块链聚合梯度,审计梯度组合并逐步缩小范围,定位恶意数据;
7、步骤s5、服务器端聚合审计区块链,进行全局模型更新;
8、方法循环上述5个步骤,直到全局模型收敛,训练结束。
9、步骤s2中,针对每个客户端,将需要加密的本地梯度数据设为m,经过改良sm9算法,得到梯度密文c=(c1,c2,c3),主要步骤包括:
10、步骤s2.1、为模n乘法群,kgc随机生成作为加密主私钥,根据sharmir门限秘密共享方案,随机构造t-1次多项式f(x)∈zq[x]:
11、f(x)=msk+a1x+a2x2+…+at-1xt-1
12、其中msk=f(0),a1,a2,...,at-1∈zq;
13、步骤s2.2、随机选取n个元素x1,x2,...,xn∈zq,n为联邦成员的个数,计算mski=f(xi),将(xi,mski)分别分发给联邦成员clienti(i=1,2,...,n);
14、步骤s2.3、n名成员中的t位分享自己分得的密钥碎片mski以复原msk:
15、
16、步骤s2.4、设g1,g2为阶为素数n的加法循环群,p1,p2是它们的生成元,根据恢复的全局主私钥msk,计算全局主公钥:
17、mpk=[msk]p1
18、步骤s2.5、设解密方即审计区块链的标识为id,hid为加密私钥生成函数标识符,kgc在有限域fn上计算:
19、t1=h1(id||hid,n)+msk
20、t2=msk·t1-1
21、审计区块链以此得到解密私钥:
22、skid=[t2]p2
23、步骤s2.6、定义密码杂凑函数:
24、
25、计算群g中的元素qb=h1(id||hid,n)p1+mpk;
26、步骤s2.7、生成随机数计算群g1中的元素c1=[r]qb;
27、步骤s2.8、gt为阶为素数n的乘法循环群,e是从g1×g2到gt的双线性对,计算群gt中的元素g=e(mpk,p2),计算w=gr;
28、步骤s2.9、设需要加密的本地梯度数据为m,其比特长度mlen设为32比特,klen=mlen+256,定义密钥生成函数kdf:{0,1}*×klen→{0,1}klen,计算k=kdf(c1||w||id,klen);
29、步骤s2.10、去掉k的前mlen比特,剩下的为k2,然后计算c2=gm×w;
30、步骤s2.11、定义消息验证码函数计算c3=mac(k2,c2);
31、步骤s2.12、得到梯度密文c=(c1,c2,c3)。
32、步骤s3中,行为区块链为梯度密文添加噪声,主要步骤包括:
33、步骤s3.1、行为区块链的一个块中包含9个梯度密文,这些梯度密文映射到一个3阶方阵中,设映射梯度记为cij,将矩阵行号标记为i∈{1,2,3},矩阵列号标记为j∈{1.2.3},矩阵表示为c=(cij)3×3,其中:对应的损失也映射为lij;
34、步骤s3.2、对于每个映射梯度cij,行为区块链生成与梯度密文大小相似的随机值nij作为噪声,行为区块链调整每个nij,确保每行与每列的噪声求和值为0,即且
35、步骤s3.3、对nij同态加密得到
36、步骤s3.4、聚合cij与nij得到将添加了噪声的梯度矩阵记为c′=(c′ij)3×3;
37、步骤s3.5、行为区块链将交易信息记录在块中,将噪声梯度矩阵c′与映射损失lij传递给审计区块链。
38、步骤s4中,审计区块链聚合梯度,审计梯度组合并逐步缩小范围,定位恶意数据,主要步骤包括:
39、步骤s4.1、审计区块链计算平均损失聚合添加了噪声的梯度密文,由于改良后的sm9国密算法具有同态性,所以聚合后噪声得到去除:
40、
41、步骤s4.2、审计区块链对聚合梯度密文进行同态解密,利用审计区块链私钥skid,计算群gt中的元素w′=e(c1,skid),计算利用bsgs算法从中运算得到
42、步骤s4.3、审计区块链计算全局聚合梯度的均值:
43、
44、步骤s4.4、审计区块链使用解密后的梯度组合进行模型更新,在公共测试数据集上评估模型并计算损失,记为lglobal;
45、步骤s4.5、以lglobal为基准,进行全局审计,将lglobal与lavg进行比较,若|lglobal-lavg|<∈1,∈1>0则误差在允许范围,整组梯度通过审计,否则,表示设备间数据质量差异较大。可能存在提供恶意梯度的不诚实设备,审计区块链将以矩阵的行与列为单位审计梯度;
46、步骤s4.6、全局审计发现可能存在恶意梯度后,按行与列中聚合噪声梯度矩阵c′,同态解密得到与
47、步骤s4.7、使用测试数据集评估各行与各列的聚合梯度与得到损失和
48、步骤s4.8、按矩阵行与矩阵列审计和审计与lglobal和lij的偏差,若则判定i行存在搭便车的可疑梯度,记为可疑行,若则判定列j存在搭便车的可疑梯度,记为可疑列,若则判定i行存在投毒攻击的可疑梯度,记为可疑行,若则判定列j存在投毒攻击的可疑梯度,记为可疑列;
49、步骤s4.9、如果审计区块链只在其中一行与其中一列中审计出异常聚合梯度,则将它们的公共梯度标识为恶意梯度,提供该梯度的设备标识为恶意设备;
50、步骤s4.10、如果审计区块链发现存在多个可疑行与多个可疑列,则认为存在多个恶意设备,将非可疑行列的正常梯度移除,得到可疑梯度集合c′doubt;
51、步骤s4.11、要求集合c′doubt内可疑梯度的提供客户们分别与审计区块链直接交互,将c′ij消除噪声并解密得到mij;
52、步骤s4.12、使用单个梯度对模型进行更新,使用测试数据集评估模型损失l′ij,将l′ij与lglobal和lij比较,若l′ij-lij>∈2,∈2>0,则梯度mij为存在搭便车行为的可疑梯度,若l′ij-lglobal>∈3,∈3>0,则梯度mij为存在投毒攻击的可疑梯度,提供该梯度的客户标识为恶意设备;
53、步骤s4.13、若存在恶意设备,则禁止恶意设备参与训练,若矩阵c′=(c′ij)3×3的梯度整体通过审计,则将同态加密的聚合梯度交由服务器端以供全局模型更新。
54、本发明还公开了一种基于双区块链的联邦学习加密数据审计系统,该系统用于实现所述的基于双区块链的联邦学习加密数据审计方法,所述系统包括客户端模块、行为区块链模块、审计区块链模块和服务器模块;
55、所述客户端模块,客户端使用全局模型根据本地数据训练,得到本地数据梯度,更新本地模型,使用改良国密sm9算法对本地梯度进行同态加密,调用智能合约计算测试数据集上的模型损失,向行为区块链提交梯度密文和损失;
56、所述行为区块链模块,行为区块链收集客户端的加密梯度,为梯度添加噪声,并记录交易信息,将添加了噪声的梯度密文以及损失发送给审计区块链;
57、所述审计区块链模块,审计区块链传递全局模型参数给客户端,聚合行为区块链发来的本地梯度,消除噪声,对梯度矩阵进行审计,定位恶意梯度,在审计确定整组梯度无风险后发送给服务器端;
58、所述服务器模块,接收审计后的同态加密梯度组,利用聚合梯度组来更新全局模型,将更新后的模型参数与测试数据集分发回审计区块链;
59、重复执行服务器模块、客户端模块、行为区块链模块、审计区块链模块,直到全局模型收敛,得到最终的全局模型。
60、本发明还公开了一种移动终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的基于双区块链的联邦学习加密数据审计方法。
61、本发明还公开了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述的基于双区块链的联邦学习加密数据审计方法中的步骤。
62、本发明的有益效果
63、本技术满足了信息时代用户对于数据隐私保护的强烈需求,又能为企业高效审计加密数据的安全合规性,对于交易双方均大有裨益;该方法通过优化区块链结构与审计算法,确保了审计过程的低资源消耗与低故障损失,有效降低了审计成本;该方法应用了最新的改良国密算法且进一步优化了密钥生成,具有更高的加解密效率与更低的功效,同时更符合联邦学习的分布式场景需求。具体包括:
64、1)采用双区块链结构对加密梯度进行审计,既可以实现保护隐私的梯度记录,又可以实现可信质量审计,该结构一大一小的双区块链设置,易于管理且避免了在区块生成和共识过程中发生的浪费;
65、2)设计的梯度审计算法能在最大限度保护数据提供方隐私的前提下,快速定位到可疑数据,高效且安全;
66、3)能有效降低联邦学习客户端与服务器端遭受模型反演攻击、投毒攻击、搭便车攻击等各方面攻击的威胁;
67、4)将改良后的国密算法sm9创新性得运用到审计领域,扩展了国产密码的应用场景分布式生成加密主私钥,让加密过程更加安全可信,贴切联邦场景。
本文地址:https://www.jishuxx.com/zhuanli/20241120/331752.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表