1.一种具有隐私保护的可验证多方k‑means联邦学习方法,其特征在于:包括以下步骤:S1:每个用户分别加密各自的样本数据,并上传至云服务器;
S2:云服务器随机选取k个聚类中心;
S3:云服务器利用安全乘法协议和安全距离计算协议计算用户各个样本与聚类中心的欧几里得距离的平方;
S4:云服务器对距离密文进行安全位分解;
S5:云服务器利用安全距离比较协议对每个用户的各个样本进行划分;
S6:用户计算每个聚类中自己所拥有样本之和和样本数;
S7:用户计算每个样本的秘密值 和辅助验证值 并利用秘密共享协议计算出新的聚类中心,上传至云服务器;包括以下步骤:S71:随机选取part个随机数{x1,…,xpart}公开,part是用户的个数;
S72:每个用户计算每个样本的秘密值和辅助验证值,具体包括:S721:用户p,随机选取dp个part‑1阶多项式:其中p=1,2,…,part,j=1,2,…,dp,保存记录多项式的系数;
S722:用户p计算每个样本对应其他用户的秘密值:其中p=1,2,…,part,i=1,2,…,part,且i≠p,j=1,2,…,dp, 表示第p个用户的第j个样本;
S723:用户p计算 其中k=0,…,part‑1,j=1,2,…,dp,并将 上链,g为用户选取的随机数;
S73:用户利用秘密共享协议计算出新的聚类中心,并上传至云服务器,具体包括:S731:用户p将位于Cτ中的样本秘密值 发送给用户i,其中p=1,2,…,part,Cτ表示第τ个簇,τ=1,2,…,k,i=1,2,…,part,且i≠p,j=1,2,…,dp;
S732:用户p接收其他用户发送的 秘密值,并验证 如果通过验证则计算 并发送给云平台;
S733:云平台利用拉格朗日插值法恢复出aτ,bτ,并计算新的聚类中心μ′τ,其中τ=1,
2,…,k;
S8:云服务器计算新的聚类中心和原聚类中心的距离,如果小于阈值,则结束聚类操作,否则,更新聚类中心并进行下一轮迭代;
S9:用户及用户样本动态变化;包括以下步骤:S91:用户动态增加,具体包括:S911:增加用户生成一个随机数xpart+1并添加增加标识符广播给其他用户;
S912:用户part+1随机选择dpart+1个多项式:其中j=1,2,…,dpart+1,并且保存多项式的系数;
S913:用户part+1计算每个样本对应其他用户的秘密值:其中p=1,2,…,part+1,i=1,2,…,part+1,且i≠p,j=1,2,…,dpart+1,表示第part+1个用户的第j个样本;
S914:用户part+1计算 其中k=0,…,part,j=1,2,…,dpart+1,并将上链;
S915:添加用户与原始用户开始新的k‑means聚类算法;
S92:用户动态减少,具体包括:S921:减少用户p广播之前生成的随机数xp并添加减少标识符广播给其他用户;
S922:其他用户删除自身每个样本对应用户p的秘密值 其中j=1,2,…,di,i=1,
2,…,part,且i≠p;
S923:剩下的用户开始新的k‑means聚类算法;
S93:用户样本动态增加,具体包括:S931:用户p增加新样本
S932:用户p生成一个新的随机part‑1阶多项式:其中 需要保存记录多项式的系数;
S933:用户p计算新样本对应其他用户的秘密值其中i=1,2,…,part;
S934:用户p计算新样本的辅助验证值 其中k=0,…,part‑1,j=1,
2,…,dp,并将 上链;
S935:用户添加样本后与其他用户开始新的k‑means聚类算法;
S94:用户p减少样本v,具体包括:S941:用户删除样本v对应的多项式及秘密值;
S942:用户添加样本后与其他用户开始新的k‑means聚类算法。
2.根据权利要求1所述的具有隐私保护的可验证多方k‑means联邦学习方法,其特征在于:所述步骤S1中具体包括以下步骤:S11:每个用户生成公钥pkp,skp,其中1≤p≤part,part是用户的个数;具体包括:S111:每个用户选取两个大素数p,q,并保证gcd(pq,(p‑q)(q‑1))=1;
S112:每个用户计算N=pq,λ=lcm(p‑1,q‑1);
x 2 ‑1
S113:每个用户随机选取g,并且存在μ=(L(gmod N)) mod N,其中 L(μ)=(μ‑1)/NS114:每个用户的公钥是pk=(N,g),私钥是sk=(λ,μ);
x N 2
S12:每个用户随机选取r,计算密文c=gr mod N ,其中 x是样本明文;具体包括:S121:每个用户计算 其中 其中p表示用户,dp表示第p个用户的样本个数, 表示每个样本的维度数, 表示第p个用户的第i个样本的第j个属性值;
p
S122:每个用户将加密后的C上传至云服务器。
3.根据权利要求2所述的具有隐私保护的可验证多方k‑means联邦学习方法,其特征在于:所述步骤S2具体包括以下步骤:S21:云服务器随机挑选出k个聚类中心φ={μc|1≤c≤k},其中μc={μc,j|1≤j≤l};
S22:云服务器分别用各个用户的公钥对聚类中心进行加密,并分别保存为 其中其中
4.根据权利要求3所述的具有隐私保护的可验证多方k‑means联邦学习方法,其特征在于:所述步骤S3包括以下步骤:p
S31:云服务器计算用户p的C和聚类中心 的欧几里得距离的平方,其中1≤p≤part;
S32:云服务器计算 其中1≤i≤dp,1≤c≤k,1≤j≤l;
S33:云服务器利用 计算 其中SM(E(x),E(y))=E(xy)的计算包括:S331:云服务器挑选两个不一样的随机数rx,ry∈ZN;
S332:云服务器计算x′=E(x)E(y),y′=E(rx)E(ry);
S333:云服务器将x′,y′发送给用户p;
S334:用户p计算hx=D(x′),hy=D(y′),h=hxhymod N,h′=E(h);
S335:用户p将h′发送给云服务器;
S336:云服务器计算
N‑1
S337:云服务器计算E(xy)=s′E(rxry) ;
S34:云服务器计算 其中1≤i≤dp,1≤c≤k。
5.根据权利要求4所述的具有隐私保护的可验证多方k‑means联邦学习方法,其特征在于:所述步骤S4包括以下步骤:S41:云服务器将距离E(dis)分解成dis明文情况下按位加密的结果SBD(E(dis))=
S411:云服务器计算l=2 mod N,T=E(dis);
S412:云服务器计算E(disi)=Encrypted_LSB(T,i),其中i=0,1,…,w‑1,具体包括:2
S4121:云服务器计算Y=T*E(r)mod N,其中r是随机数,且r∈ZN;
S4122:云服务将Y发送给用户;
S4123:用户计算y=D(Y),如果y是偶数,则α=E(0),否则α=E(1);
S4124:用户将α发送给云服务器;
S4125:云服务器计算E(disi),其中如果r是偶数,则E(disi)=α,否则E(disi)=E(1)*N‑1 2α mod N;
S4126:云服务器返回E(disi);
N‑1 2
S413:云服务器计算Z=T*E(disi) mod N;
l 2
S414:云服务器计算T=Zmod N;
S42:云服务器计算γ=SVR(E(dis),
N‑1 2
S422:云服务器计算V=U*E(dis) mod N;
r′ 2
S423:云服务器计算W=V mod N,其中r′随机数,且r′∈ZN;
S424:云服务器将W发送给用户;
S425:用户计算D(W),,如果D(W)=0,则γ=1,否则γ=0;
S426:用户将γ发送给云服务器;
S43:云服务器收到用户发送的γ,如果γ=1,则返回
6.根据权利要求5所述的具有隐私保护的可验证多方k‑means联邦学习方法,其特征在于:所述步骤S5包括以下步骤:S51:云服务器分别计算出 中的最小值,其中1≤p≤part,1≤iw
≤dp,0≤dis≤2‑1;
S52:云服务器定义 其中c=1,2,…,k;
S53:云服务器定义num=k;
S54:云服务器定义u=1;
S55:云服务器定义v=1;
S56:云服务器判断,如果u=1,则否则
其中SMIN(E(x),E(y))的计算包括:S561:云服务器随机选取一个函数F,其中函数F随机使得x>y或者y>x;
S562:云服务器计算Wi,Γi,Gi,Hi,Φi,其中1≤i≤w,具体包括:S5621:调用S33步骤计算E(xiyi)=SM(E(xi),E(yi))随机选取一个函数F,其中函数F随机使得x>y或者y>x;
N‑1
S5622:云服务器进行判断,如果F:x>y,则计算Wi=E(xi)*E(xi*yi) ,N‑1
如果F:y>x,则计算Wi=E(yi)*E(xi*yi) , 其中 是随机数,且
S5623:云服务器计算
S5624:云服务器计算 其中H0=E(0),ri是随机数,且ri∈ZN;
S5625:云服务器计算Φi=E(‑1)*Hi;
S5626:云服务器计算 其中r′i是随机数,且r′i∈ZN;
S5627:云服务器计算Γ′=π1(Γ),L′=π2(L)其中π1,π2是置换函数;
S5628:云服务器将Γ′,L′发送给用户;
S563:用户计算Mj=D(L′j),并且,如果存在Mj=1,则α=1,否则α=0,其中1≤j≤w;
S564:用户计算M′j=Γ′j,其中1≤j≤w;
S565:用户将M′,E(α)发送给云服务器;
S566:云服务器计算
S567:云服务器计算 如果F:x>y,则E(min(x,y)i)=E(xj)*λj,如果F:y>x,则E(min(x,y)j)=E(yj)*λj,其中1≤j≤w;
S57:云服务器计算j=j+1,如果 则返回S56,否则跳转到S58;
S58:云服务器计算i=i+1,如果 则计算 并返回S55,否则跳转到S59;
S59:云服务器判断每个样本距离哪个聚类中心最近,并把该样本归到这个类中。
7.根据权利要求6所述的具有隐私保护的可验证多方k‑means联邦学习方法,其特征在于:所述步骤S6包括如下步骤:S61:云服务器把聚类结果发送给各个用户;
S62:各个用户计算每个簇中自己所拥有的样本之和ai以及样本数bi,其中i=1,…,k;
S63:各个用户计算 其中Cτ表示第τ个簇;
S64:各个用户计算bτ=|Cτ|,其中Cτ表示第τ个簇;
S65:各个用户定义Vτs∈(aτ,bτ)。
8.根据权利要求7所述的具有隐私保护的可验证多方k‑means联邦学习方法,其特征在于:所述步骤S8包括以下步骤:S81:云服务器计算新聚类中心和原聚类中心的差值ε=|μ′τ‑μτ|,其中τ=1,2,…,k;
S82:如果ε≤θ,则结束聚类操作,否则用μ′τ代替μτ,并返回S3,其中τ=1,2,…,k。