一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于非共谋双云服务器的隐私保护外包数据KNN算法的制作方法

2022-03-08 22:52:47 来源:中国专利 TAG:

一种基于非共谋双云服务器的隐私保护外包数据knn算法
技术领域
1.本发明涉及安全多方计算以及机器学习技术领域,具体来说,是一种基于安全两方计算技术实现数据外包的隐私保护的k近邻(knearest neighbor,knn)算法,该方案基于秘密共享技术、不经意传输协议、混淆电路等技术将弱客户端的数据以及计算外包给非共谋的双云服务器,使得弱客户端在计算和存储能力有限的情况下也能实现隐私保护的knn算法。
技术背景
2.随着云计算技术以及大数据技术的发展,互联网行业的巨头如谷歌、亚马逊、微软等公司开始提供基于云服务器的机器学习服务来解决医疗、金融等领域中出现的问题,这些行业巨头提供的服务使得机器学习算法在实际应用中不断优化,得以改进。但是机器学习算法的训练模型是需要大规模的数据来支撑的,在一定程度内,训练数据量越多,训练的模型准确度越高。将大量的数据外包给云服务器去存储和计算,具有成本低,灵活性高等优点,但是在实际生活中,训练数据大多数都是由互联网公司收集的用户私人数据,可能包含用户的信用卡号码、个人的身份信搜索记录、浏览记录、交易记录以及地址等隐私信息。且存在这样的可能,由于数据是来自不同的数据源,针对同一用户的不同数据源的数据推断出更多的关于用户的隐私信息。如果用户被泄露,不仅对提供基于云服务器机器学习服务公司造成经济和名誉上的损害,而且也会造成一定的社会恐慌,在未来,数据提供者也会因为担心个人的隐私问题而拒绝提供数据,而这会对未来的研究造成阻碍。
3.对于隐私保护的knn算法问题,目前已有的相关工作主要是基于数据扰动方法的差分隐私和加密方法的同态加密和安全多方计算。差分隐私通过在数据集中添加单个记录,由于单个记录对数据集的计算结果的影响是微乎其微的,从而攻击而无法通过计算结果来推测数据集中的信息,进而保证了数据集的信息不会被泄露,这满足了knn 算法中的数据隐私保护要求。这种方案计算开销小,效率高,但是可用性差,数据挖掘人员在有限的隐私预算内可以提交查询,一旦分配的隐私预算用完,数据挖掘人员将被限制进一步的查询。
4.同态加密可以实现密文上的代数运算,得到的计算结果仍然保持密文的状态,只有持有私钥的参与方可以解密得到计算结果,能够实现knn算法中的数据集以及计算的中间参数的数据隐私保护。但是基于同态加密技术的方案都存在计算和存储开销大的问题。现存的同态加密算法的效率较低,因此会导致基于同态加密技术的隐私保护的 knn算法的实用性不强。
5.安全多方计算技术的特点是计算便宜,实用性强,因为有很多学者致力于基于安全多方计算技术来实现隐私保护的knn算法,混淆电路、不经意传输协议、秘密共享技术等都是属于安全多方计算领域的技术,这些技术能够满足计算过程中数据隐私的要求,但是多方之间的交互必然会导致通信开销大的问题。因此使用安全多方计算解决数据的隐私保护问题的主要挑战在于如何构建一个安全且高效的多方计算协议。
6.本发明提出了一种基于秘密共享和混淆电路以及不经意传输协议等技术的安全高效的双云模型下的knn算法。首先通过秘密共享技术将数据发送给双云服务器,随后利用混淆电路、不经意传输协议设计了安全欧式距离协议,安全的比较协议,安全的排序协议等,最后通过模块化顺序组合的方式,实现了安全的knn分类协议。与基于同态加密的解决方案不同,我们设计的方案能够实现在同等安全性级别的条件下,具有更高的效率,后者需要在密文上进行比较,乘法等计算,会产生较大的计算开销。此外本发明可适用于弱客户端,因为参与方仅需要完成秘密共享和发送数据,在计算的过程中均保持离线状态。


技术实现要素:

7.传统的数据外包的隐私保护的knn算法通常是基于同态加密进行展开,knn算法分类或者查询中效率较低。本方案提出一种基于非共谋双云服务器的隐私保护外包数据knn算法,借助云服务器算力高的特点,将弱客户端的数据和计算外包给双云服务器,通过使用秘密共享技术、混淆电路技术以及不经意传输协议实现数据以及计算过程中的中间参数的隐私保护,从而实现了knn算法全过程的隐私保护。
8.本发明是通过以下技术方案实现的:
9.一种基于非共谋双云服务器的隐私保护外包数据knn算法,包括如下步骤:
10.步骤1:数据预处理
11.该步骤主要用于解决数据外包问题,利用算术秘密共享保护数据集,将经秘密共享拆分后的数据集发送给两个云服务器,这样每个云服务器均只有数据的一部分,在本方案的设定中,双云服务器是非共谋的,两个服务器不能合谋恢复原始数据集,因此能够实现数据集的安全外包。
12.数据拥有者将私有的训练数据集(x,l)经算术秘密共享随机拆分成(x0,l0)和(x1,l1)两个子数据集,分别发送给云服务器s0和s1,其中x是一个n
×
d的矩阵,n表示样本数,d表示样本的特征数,l是一个n维的列向量,表示数据集x中样本对应的标签。同理,将数据使用者拥有的数据集y做同样的数据预处理,拆分成y0和y1,分别发送给云服务器s0和s1,y是一个m
×
d的矩阵,m表示样本数,d表示样本的特征数。
13.步骤2:安全欧式距离平方计算
14.安全欧式距离平方协议是两方协议,数据拥有者的数据集中的点记为p,p∈x,用户的查询点记为q,所有点的维度都是d,点p 和点q的算术秘密共享记为和分别由服务器s0和云服务器s1持有,点p与点q之间的欧式距离平方记为可以改写成如下形式:
[0015][0016]
将可以重写成公式(1)的形式,可以发现其中和是由两方分别持有的数据,可以单独计算并不会泄露任何信息,而而中的第一个乘积项是由云服务器s0持有的第二个乘积项是由云服务器s1持有的,在不泄露信息的情况实现计算,需要调用步骤3的安全乘法计算协议。具体的安全欧式距离平方协议流程如下:
[0017]
步骤2.1:云服务器s0计算
[0018]
步骤2.2:云服务器s1计算
[0019]
步骤2.3:云服务器s0和云服务器s1调用安全乘法计算协议,联合计算s0和s1分别得到乘法计算协议结果的一部分,记为za和zb。
[0020]
步骤2.4:云服务器s0得到得到云服务器s1得到
[0021]
步骤3:安全乘法计算
[0022]
假定云服务器s0和s1分别持有x和y两个数据,不泄露两方分别持有的x和y的情况下,计算出xy的值。对于安全乘法协议的研究,目前主要是基于同态加密和ot协议这两项技术,aby框架中的实验数据表明,基于ot扩展的乘法计算的速度比基于同态加密的乘法计算更加高效,基于上述的结论,因此我们将工作的重点放在了基于 ot扩展的安全乘法协议。
[0023]
两方安全乘法计算协议具体步骤如下:
[0024]
step 3.1:云服务器s0将x重写成
[0025]
step 3.2:云服务器s1作为ot的接受者,输入 (m
i,0
,m
i,1
,
……
,m
i,n-1
),其中m
i,1
= (niy-m
i,0
)mod 2
l
,m
i,x[i]
=(nix[i]y-m
i,0
)mod 2
l
[0026]
步骤3.3:云服务器s0作为ot的发送者,输入选择比特x[i]∈n,调用1-out-of-n ot协议,云服务器s0获得m
i,x[i]
=(nix[i]y
‑ꢀmi,0
)mod 2
l
[0027]
步骤3.4:云服务器s0计算
[0028]
步骤3.5:云服务器s1计算
[0029]
经过验证,可以发现,
[0030]
步骤4:安全最小值协议
[0031]
在步骤3中,双云服务器分别持有矩阵p0.mdist和p1.mdist,接下来需要对步骤3中计算出来的距离进行排序。
[0032]
以云服务器s0为例,持有以算术秘密共享形式的矩阵p0.mdist,要实现矩阵p0.mdist中相邻元素的两两比较,前人的方案提出的解决方案有以下2种思路:第一种是采用全同态,然而全同态的计算开销巨大,实用性差;第二种是将以算术秘密共享形式的矩阵p0.mdist转换成yao共享形式,再利用混淆电路实现p0.mdist中相邻的两个元素之间的比较,但是算术秘密共享形式的数据转换成yao共享,代价是昂贵的。本发明中提出一种新的形式比较混淆电路,避免了数据形式之间的转换。具体步骤如下:
[0033]
步骤4.1:调用混淆电路比较矩阵p0.mdist中两两相邻的元素,输出01或者10用p0.vecgcminoutput表示,1所在的位置对应两个比较元素中的较小值;
[0034]
步骤4.2:将服务器输出p0.vecgcminoutput连接构成向量 p0.mvecidxmin,如果p0.mvecidxmin中比特数为奇数,再 p0.mvecidxmin的最后补1;
[0035]
步骤4.3:p0.mvecidxmin乘以p0.mdist,得到下一层待比较的元素p0.msharemin;
[0036]
步骤4.4:判断p0.msharemin的长度是否大于1,如果小于等于 1,结束;
[0037]
步骤4.5:如果p0.msharemin的长度是奇数,将p0.msharemin 的最后一位存储到p0.mlastnode;
[0038]
步骤4.6:再次同步骤4.1调用混淆电路,得到比较结果p0.vecgcminoutput;
[0039]
步骤4.7:将所有的输出p0.vecgcminoutput连接构成向量 p0.mvecidxmin;
[0040]
步骤4.8:p0.mvecidxmin乘以p0.mdist,得到下一层待比较的元素p0.msharemin,将p0.mlastnode添加到p0.msharemin,
[0041]
重复步骤4.4~4.8,得到最小值p0.msharemin以及最小值对应位置的向量p0.mvecidxmin,将p0.mvecidxmin存入队列q0中;云服务器s0的操作步骤同s1得到p1.mvecidxmin存入队列q1中。
[0042]
步骤5:本步骤解决的问题是找到距离最近的k个样本,在步骤 4中,已经找到距离的一个样本,接下来就是重复k次步骤4,得到 k个样本,具体过程如下所示:
[0043]
步骤5.1:将p0.msharemin和p1.msharemin重新赋值为最大值;
[0044]
步骤5.2:重复步骤4,得到k个最小值以及最小值对应的向量 p0.mvecidxmin。
[0045]
步骤6:云服务器s0和s1根据队列中存储的p0.mvecidxmin和 p1.mvecidxmin统计得到的k个样本的标签数量,输出占比最大的标签la和lb,并将la和lb发送给数据使用者
[0046]
步骤7:数据使用者根据la lb=l得到完整的标签l。
[0047]
有益效果:本发明将秘密共享、混淆电路、不经意传输协议等安全多方计算密码学技术应用到knn算法中,借助不合谋的双云服务器,设计了基于两方的安全的乘法、安全欧
式距离、安全最小值协议,实现了knn算法中的数据和计算的安全外包,使得具有查询需求的用户能够实现查询数据以及查询结果的隐私保护,数据拥有者的私有数据在用户的查询过程中一直以秘密共享拆分后的形式存在,保证了私有数据的隐私性。
附图说明
[0048]
图1为本发明一种基于非共谋双云服务器的隐私保护外包数据 knn算法的整体框架结构示意图。
[0049]
图2为本发明一种基于非共谋双云服务器的隐私保护外包数据 knn算法是系统流程示意图。
具体实施方式
[0050]
下面结合附图对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0051]
如图1、2所示,一种基于非共谋双云服务器的隐私保护外包数据knn算法,包括如下步骤:
[0052]
步骤1:数据预处理
[0053]
该步骤主要用于解决数据外包问题,利用算术秘密共享保护数据集,将经秘密共享拆分后的数据集发送给两个云服务器,这样每个云服务器均只有数据的一部分,在本方案的设定中,双云服务器是非共谋的,两个服务器不能合谋恢复原始数据集,因此能够实现数据集的安全外包。
[0054]
数据拥有者将私有的训练数据集(x,l)经算术秘密共享随机拆分成(x0,l0)和(x1,l1)两个子数据集,分别发送给云服务器s0和s1,其中x是一个n
×
d的矩阵,n表示样本数,d表示样本的特征数,l是一个n维的列向量,表示数据集x中样本对应的标签。同理,将数据使用者拥有的数据集y做同样的数据预处理,拆分成y0和y1,分别发送给云服务器s0和s1,y是一个m
×
d的矩阵,m表示样本数,d表示样本的特征数。
[0055]
步骤2:安全欧式距离平方计算
[0056]
安全欧式距离平方协议是两方协议,数据拥有者的数据集中的点记为p,p∈x,用户的查询点记为q,所有点的维度都是d,点p 和点q的算术秘密共享记为和分别由服务器s0和云服务器 s1持有,点p与点q之间的欧式距离平方记为可以改写成如下形式:
ot协议,云服务器s0获得m
i,x[i]
=(nix[i]y
‑ꢀmi,0
)mod 2
l
[0069]
步骤3.4:云服务器s0计算
[0070]
步骤3.5:云服务器s1计算
[0071]
经过验证,可以发现,
[0072]
步骤4:安全最小值协议
[0073]
在步骤3中,双云服务器分别持有矩阵p0.mdist和p1.mdist,接下来需要对步骤3中计算出来的距离进行排序。
[0074]
以云服务器s0为例,持有以算术秘密共享形式的矩阵p0.mdist,要实现矩阵p0.mdist中相邻元素的两两比较,前人的方案提出的解决方案有以下2种思路:第一种是采用全同态,然而全同态的计算开销巨大,实用性差;第二种是将以算术秘密共享形式的矩阵p0.mdist转换成yao共享形式,再利用混淆电路实现p0.mdist中相邻的两个元素之间的比较,但是算术秘密共享形式的数据转换成yao共享,代价是昂贵的。本发明中提出一种新的形式比较混淆电路,避免了数据形式之间的转换。具体步骤如下:
[0075]
步骤4.1:调用混淆电路比较矩阵p0.mdist中两两相邻的元素,输出01或者10用p0.vecgcminoutput表示,1所在的位置对应两个比较元素中的较小值;
[0076]
步骤4.2:将服务器输出p0.vecgcminoutput连接构成向量 p0.mvecidxmin,如果p0.mvecidxmin中比特数为奇数,再 p0.mvecidxmin的最后补1;
[0077]
步骤4.3:p0.mvecidxmin乘以p0.mdist,得到下一层待比较的元素p0.msharemin;
[0078]
步骤4.4:判断p0.msharemin的长度是否大于1,如果小于等于 1,结束;
[0079]
步骤4.5:如果p0.msharemin的长度是奇数,将p0.msharemin 的最后一位存储到p0.mlastnode;
[0080]
步骤4.6:再次同步骤4.1调用混淆电路,得到比较结果 p0.vecgcminoutput;
[0081]
步骤4.7:将所有的输出p0.vecgcminoutput连接构成向量 p0.mvecidxmin;
[0082]
步骤4.8:p0.mvecidxmin乘以p0.mdist,得到下一层待比较的元素p0.msharemin,将p0.mlastnode添加到p0.msharemin,
[0083]
重复步骤4.4~4.8,得到最小值p0.msharemin以及最小值对应位置的向量p0.mvecidxmin,将p0.mvecidxmin存入队列q0中;云服务器s0的操作步骤同s1得到p1.mvecidxmin存入队列q1中。
[0084]
步骤5:本步骤解决的问题是找到距离最近的k个样本,在步骤 4中,已经找到距离的一个样本,接下来就是重复k次步骤4,得到 k个样本,具体过程如下所示:
[0085]
步骤5.1:将p0.msharemin和p1.msharemin重新赋值为最大值;
[0086]
步骤5.2:重复步骤4,得到k个最小值以及最小值对应的向量 p0.mvecidxmin。
[0087]
步骤6:云服务器s0和s1根据队列中存储的p0.mvecidxmin和 p1.mvecidxmin统计得到的k个样本的标签数量,输出占比最大的标签la和lb,并将la和lb发送给数据使用者
[0088]
步骤7:数据使用者根据la lb=l得到完整的标签l。
[0089]
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变
化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献