其他分享
首页 > 其他分享> > 《EPTD:移动人群感知系统中高效隐私保护的真相发现》论文笔记

《EPTD:移动人群感知系统中高效隐私保护的真相发现》论文笔记

作者:互联网

移动人群感知系统中高效隐私保护的真相发现

Efficient and Privacy-Preserving Truth Discovery in Mobile Crowd Sensing Systems

  所谓群智感知是一种将普通用户的移动设备(如手机、手环)作为基本感知单元的数据收集平台。具体来说,当需要收集某些数据时,数据需求方可将数据的采集任务有偿分配给多个配有感知设备的移动用户,并要求每个用户上传其收集到的特定数据。真值发现算法通常被用在群智感知场景中,比如应用在交通监控、路径规划和实时导航上。

  真值发现的原理是如果某用户提供的数据更接近基本事实,并且如果该用户具有更高的权重,则该用户提供的数据将在聚合过程中计数更多,大致讲一下:

  假设系统中有D个移动用户,每个用户被要求去观测H个不同类型的对象(第d个用户对第h个观测对象的观测值可被记录为xdh,xh*表示第h个观测对象在每一次迭代过程中的真值),首先初始化真值xh*。wd是计算当前H个传感值离当前真值(估计值)的距离,所占有的权重比例。如果用户d上传的数据离当前的真值很近,那么被分配的wd值就越高。

\begin{array}{c} w_{d} = \log \left(\frac{\sum_{d^{\prime} = 1}^{\mathcal{D}} \sum_{h = 1}^{\mathcal{H}} d_{i s t}\left(x_{h}^{d^{\prime}}, x_{h}^{*}\right)}{\sum_{h = 1}^{\mathcal{H}} d_{i s t}\left(x_{h}^{d}, x_{h}^{*}\right)}\right) \end{array}

  已知每个用户d的当前权重后,真值发现中的每个观测对象h的真值xh*更新如下(类似于计算学分绩的公式):

\begin{array}{c} x_{h}^{*}=\frac{\sum_{d=1}^{\mathcal{D}} w_{d} \cdot x_{h}^{d}}{\sum_{d=1}^{\mathcal{D}} w_{d}} \end{array}

  权重更新和真值更新迭代,直到满足一定的收敛条件得到真值。

 

  真值发现算法通常由数据需求方执行,目的是剔除某些移动设备上传的错误的和低质量的数据从而保证来源数据的可靠性。然而,传统的真值发现算法并没有考虑数据采集过程中的隐私泄露问题。一般来说,移动用户采集的感知数据如实时的位置信息、个人健康数据以及身份信息通常包含个人的敏感信息,明文地提交这些数据给数据需求方势必会造成严重的隐私泄露隐患;

  另一方面,在云辅助的数据采集过程中,数据需求方通常将复杂的真值发现算法外包给云服务器执行,从而进一步降低本地计算成本。然而,外包计算的不透明性使得真值发现结果的正确性难以保证。为了降低成本,一个恶意的服务提供商完全有动机去压缩真值发现的计算过程,并以相对失真的结果去欺骗数据需求方。

 

  为改进以上问题,Miao等人提出基于Pailliar同态加密算法的PPTD模型并进行后续的改进,使密文计算能力大大提升,但是他们都要求用户始终在线。一旦有用户掉线,密文无法正确解密,因此不适合应用在大规模场景中。为解决离线问题,大多学者提出了采用差分隐私技术和互不勾结的双服务器设置的方法进行设计,但现实生活中很难保证有两个服务器互不勾结的执行命令。

  针对当前安全的真值发现算法要求用户时刻保持在线的缺陷,EPTD模型给出了在只有一个云服务器下,支持用户离线的一个真值发现方案。

  (1)它的底层技术是用Shamir秘密分享协议进行密文的分享和重构,利用Diffie-Hellman密钥协商协议生成用户双方的共享密钥。因为EPTD支持一定数量的用户掉线,所以在每轮用户与服务器的交换中,都要验证当前集合中的用户数是否≥阈值t,否则就恢复不了被共享出去的密钥份额或随机数份额,服务器拒绝服务(下面就不重复指明这一条件)。

  (2)EPTD用的是双重数据混淆机制,为什么要用双重掩蔽呢?我们知道,只有一种随机数的掩蔽方法(Masking with One-Time Pads)要求用户俩俩约定一个随机数值,并在原数值上进行加减:

\begin{array}{c}
\ y_{u}=\ x_{u}+\sum_{u<v} s_{u v}-\sum_{u>v} s_{v u}
\end{array}即:
\begin{array}{l}
y_{1}=x_{1}+s_{12}+s_{13}...
y_{2}=x_{2}-s_{12}+s_{23}...
y_{3}=x_{3}-s_{13}-s_{23}
\end{array}

  当他们聚合后,原来加减的值就会互相抵消,最终得到聚合的真值。

\begin{array}{l} y_{1}+y_{2}+y_{3}=\sum_{i=1}^{3} x_{i} \end{array}

  但当某一个用户离线的时候,例如y2没有上传到服务器,则 y1+y3的值并没有消掉所有的suv,故得不到正确聚合的真值。

  为解决掉线后能否准确聚合的问题,我们采用双重掩蔽(Double-Masking)的办法,即在原有的互相约定的随机数 上,再引进一个随机数bu,即

\begin{array}{c}
\ y_{u}=\ x_{u}+\ b_{u}+\sum_{u<v} s_{u v}-\sum_{u>v} s_{v u}
\end{array}

  在开始的秘密共享阶段时,三个人之间彼此知道对方的suv和bu。当y2掉线时——服务器便问y1、y3要关于y2的suv,y1和y3分别向服务器发送s12和s23;而此时在线的y1和y3——则上传他们的b1、b3 值给服务器。这样,服务器收到它应收到的值后,就可以开始计算(y1+y3=...,再消掉已知接收到的值,得到x1+x3

\begin{array}{l} y_{1}+y_{3}-s_{1,2}+s_{2,3}-b_{1}-b_{3}=x_{1}+x_{3} \end{array}

  这个双重掩蔽技术,就能保证用户在离线的情况下,服务器依然能得到准确的聚合值。

 

  EPTD的模型主要分为一个用户模块和一个服务器模块,他们之间要经过六轮信息交换才能得到一次更新后的真值,在每一次真值更新的过程中,用户和服务器之间都一定要进行密钥生成、加密信息、解密信息的操作,循环多次,最终得出迭代后的真值结果。

  先讲一下它们密钥的生成和分享,以及怎样用双掩码恢复的内容,这个方案结合了数字签名、D-H交换协议、Shamir秘密分享以及认证加密等知识,并且该方案在EPTD模型中用到了两次。最后再讲这些密钥设计的方法怎么跟权重更新、真值更新的过程结合在一起。

  初始时,要让每个用户生成密钥对并互相让对方知道自己的公钥。论文里时这么介绍它的方案的:

  可信第三方(TA)为每一个用户d生成三个密钥对T、D、C,其中C私钥是给每个用户的公钥进行签名的,然后每个用户将签名结果和T、D、C的三个公钥发给服务器,服务器则用C的公钥去验证签名,若合法,则证明了这三个公钥是该用户的

  于是,服务器便知道每个用户的T、D公钥,并把这些公钥信息转发给任意用户,这样大家都知道彼此的T、D公钥。论文中,(TdPK,TdSK)是用作认证加密AE的密钥;(DdPK,DdSK)是用作伪随机数生成器PRG的种子值。下面会讲到。

  (论文中,用户m泛指除用户d外的任意一个在线的用户)

 

  发密钥,用户d先用用户m的公钥C去验证用户m签名的合法性(也就是d要知道用户m的公钥是不是他本人的)。验证通过后,用户d选择一个随机数 ,并用shamir.share算法把随机数nd和它的D私钥(DdSK)拆分为子秘密。另外,用D-H算法对用户d的私钥DdSK和用户m的公钥DmPK进行运算得到两者临时对话密钥KA.agree(TdSK,TmPK),并被用做认证加密的密钥。

  认证加密的加密(AE.enc)内容包括密钥和密文,密钥即上面这个KA.agree(TdSK,TmPK),密文包括用户d对用户m的随机数、密钥的子秘密份额,接着认证加密打包的含有子秘密的密文发送给服务器。

 

  解密文,用户用上面的随机数和私钥对自己的原始数据进行双重掩蔽后,也发给服务器。服务器收到以上的加密信息后,通过向当前在线用户中询问要到随机数 的子秘密并用shamir.recon算法恢复出,向该过程中离线的用户要到子私钥信息,并用shamir算法恢复 ,再通过D-H协议恢复 对密文进行去噪处理(即在用户上传的数据中减去收到的这些值),同时进行聚合运算。

  与之前介绍的双重掩蔽技术一致,最后将会得到聚合后的用户真值。

 

   知道了上面的基本的加密、交换和解密的原理,接下来就可以讲整个模型的流程了,也就是如何把真值发现的内容嵌入到里面:

  0、初始——生成密钥(公钥广播):User们和Server之间进行公钥广播(上面讲了用数字签名的方法)

  1、第一轮——Shamir分享(加密分享、解密子密钥,传送初始真值):User把私钥随机数分成子秘密,并对每个子秘密进行加密,传给Server;Server对收到的秘密和初始化的H个用户传感估计值xh*进行广播

  2、第一次加密——加密每个用户观测值初始化估计真值距离和:用户收到广播的xh*,分别计算它的H个传感器观测值与H个估计值的距离和\begin{array}{l} x_{d}^{2}=\sum_{h=1}^{H} \operatorname{dist}\left(x_{h}^{d}, x_{h}^{*}\right) \end{array},再利用双重掩码技术对距离和xd2加密得到yd2,并发给服务器(上面讲了)。

\begin{array}{c}
y_{d}^{2} = x_{d}^{2} +\Sigma P R G\left(b_{u}\right)+\sum_{d<m_{j}} \operatorname{PRG}\left(r_{m_{j}}, d\right)-\sum_{d>m_{j}} P R G\left(r_{m_{j}}, d\right)(\bmod R)
\end{array}

  3、第一次解密——解出聚合的距离和,并作为权重更新的依据加密后分发给用户:

  服务器收到yd2后,向当前在线用户中询问要到随机数nd的子秘密并用shamir.recon恢复;向该过程中离线的用户要到子私钥信息,并用shamir算法恢复DmjSK,再通过D-H协议恢复\begin{array}{c} \left\{\mathrm{r}_{m_{j}, d}=K A \text {. agree }\left(D_{m_{j}}^{S K}, D_{d}^{P K}\right)\right\} \end{array},对yd2进行去噪处理(即消去yd2公式中的收到以上的这些值),同时进行聚合运算,我们得到(上面讲过):

\begin{array}{c} \Sigma \boldsymbol{x}_{\boldsymbol{d}}^{2}=\left\{\Sigma \boldsymbol{y}_{\boldsymbol{d}}^{2}-\sum P R G\left(n_{d}\right)-\sum_{d\left\langle m_{j}\right.} \operatorname{PRG}\left(r_{m_{j}}, d\right)+\sum_{d>m_{j}} \operatorname{PRG}\left(r_{m_{j}}, d\right)\right\}(\bmod R)=\sum_{d \in U_{3}} \sum_{h=1}^{H} \operatorname{dist}\left(x_{h}^{d}, x_{h}^{*}\right) \end{array}

  可以理解为:表示所有用户的H个观测值与H个估计值的距离和的聚合。

  这个就像权重公式 里log里面的分子:

\begin{array}{c} w_{d} = \log \left(\frac{\sum_{d^{\prime} = 1}^{\mathcal{D}} \sum_{h = 1}^{\mathcal{H}} d_{i s t}\left(x_{h}^{d^{\prime}}, x_{h}^{*}\right)}{\sum_{h = 1}^{\mathcal{H}} d_{i s t}\left(x_{h}^{d}, x_{h}^{*}\right)}\right) \end{array}

  于是,服务器对继续进行log运算,并加上随机数r进行混淆(为了确保服务器和每个用户都不知道权重信息,服务器随机选择一个噪声r来掩盖原始聚合结果),得到结果为

\begin{array}{c} C_{\text {result }}=\log \left(\sum_{d \in U_{3}} \sum_{h=1}^{H} \operatorname{dist}\left(x_{h}^{d}, x_{h}^{*}\right)\right)+r \end{array}

  随机数r满足\begin{array}{c} t \cdot r>\max \left|\sum_{d=1}^{D} x_{h}^{d} \cdot w_{d}\right| \end{array}

  将Cresult返回给当前在线用户。

 

  4、第二次用户加密——用户进行加密的权重更新:用户收到Cresult后进行权重更新。我们对Cresult做对数运算,解出wd权重公式的形式。运算后得到wd',表示用户d更新后的加噪权重值,即

\begin{array}{c} \omega_{d}^{\prime}=C_{r e s u l t}-\log \left(\sum_{h=1}^{H} \operatorname{dist}\left(x_{h}^{d}, x_{h}^{*}\right)\right)=\log \left(\frac{\sum_{d \in U_{3}} \sum_{h=1}^{H} \operatorname{dist}\left(x_{h}^{d}, x_{h}^{*}\right)}{\sum_{h=1}^{H} \operatorname{dist}\left(x_{h}^{d}, x_{h}^{*}\right)}\right)+r=\omega_{d}+r \end{array}

  对wd'进行双重掩码加密,得到yd'密文值。(新的这次加密要重新生成公私钥,同前面,生成、加密和分享新的n和r的子秘密)

\begin{array}{c}
y_{d}^{’} = w_{d}^{’} +\Sigma P R G\left(n_{d’}\right)+\sum_{d<m_{j}} \operatorname{PRG}\left(d, r_{m_{j}}\right)-\sum_{d>m_{j}} P R G\left(d, r_{m_{j}}\right)(\bmod R)
\end{array}

  再乘以用户d的H个传感器的观测值 ,有xdh

\begin{array}{c}
y_{d}^{h’} = w_{d}^{’} ·x_{d}^{h} +\Sigma P R G\left(n_{d’}\right)+\sum_{d<m_{j}} \operatorname{PRG}\left(d, r_{m_{j}}\right)-\sum_{d>m_{j}} P R G\left(d, r_{m_{j}}\right)(\bmod R)
\end{array}

  ydh'表示用户d的H个传感器观测值xdh与更新后的权重wd的乘积利用双掩码技术加密后的密文值,用户将{yd',ydh'}发给服务器。

 

  5、第二次解密——服务器收到用户权重比例进行真值更新:同上面解密双掩码过程,服务器解密出两种随机数的值。

  那么就可以对yd'和ydh'进行聚合运算,同时做去噪处理,恢复出∑(wd+r) 和∑(wd+r)·xdh

\begin{array}{c} \Sigma \boldsymbol{w}_{\boldsymbol{d}}^{’}=\left\{\Sigma \boldsymbol{y}_{\boldsymbol{d}}^{’}-\sum P R G\left(n_{d’}\right)-\sum_{d\left\langle m_{j}\right.} \operatorname{PRG}\left(r_{m_{j}}, d\right)+\sum_{d>m_{j}} \operatorname{PRG}\left(r_{m_{j}}, d\right)\right\}(\bmod R) = \sum_{d \in U_{5}}\left(\omega_{d}^{\prime}+r\right) \end{array} \end{array} \begin{array}{c} \Sigma w_{d}^{’} ·x_{d}^{h}=\left\{\Sigma \boldsymbol{y}_{\boldsymbol{d}}^{’} ·x_{d}^{h}-\sum P R G\left(n_{d’}\right)-\sum_{d\left\langle m_{j}\right.} \operatorname{PRG}\left(r_{m_{j}}, d\right)+\sum_{d>m_{j}} \operatorname{PRG}\left(r_{m_{j}}, d\right)\right\}(\bmod R) = \sum_{d \in U_{5}}\left(\omega_{d}^{\prime}+r\right) ·x_{d}^{h} \end{array}

  此时消去随机数r,可做如下运算:(其中d∈U5

\begin{array}{l} C_{\text {result }^{\prime}}=\sum \omega_{\boldsymbol{d}}^{\prime} \bmod (\Sigma r)=\Sigma\left(\omega_{\boldsymbol{d}}+\boldsymbol{r}\right) \boldsymbol{m o d}(\Sigma r)=\Sigma \omega_{\boldsymbol{d}} \\ C_{\text {result }^{\prime}}^{h}=\Sigma \omega_{\boldsymbol{d}}^{\prime} \cdot x_{h}^{d} \bmod (\Sigma r)=\Sigma \omega_{\boldsymbol{d}} \cdot x_{h}^{d} \end{array}

  根据真值更新的公式有:

\begin{array}{l} x_{h}^{*}=\frac{\Sigma \omega_{\boldsymbol{d}} \cdot x_{h}^{d}}{\sum \omega_{\boldsymbol{d}}}=\frac{C_{\text {result }^{\prime}}^{h}}{C_{\text {result }}^{\prime}} \end{array}

  服务器计算得到当前迭代下的真值xd*,并向所有用户广播。

  用户们再反复重复上述的1-6轮,不停迭代,直到满足系统设定的收敛条件,服务器最终将得到收敛下的最优真值(H个估计值)。

 

关于实验:

  论文模拟了100个智能手机去观测目标建筑的40个特征,其中包括建筑物的高度、长度和布局等。进而分析EPTD在精确度、计算开销以及通信开销等方面的性能。

  我们知道,用户越多,服务器收集的数据越多,从而在一定程度上提升最终真值的精确度。我们令每个用户观测40个物体,扩展参数L = 103,结果表明随着用户数的增加,EPTD的错误率在不断降低,当用户数达到 100 时, EPTD的错误率基本趋于零。所以EPTD 在密文下并没有损失真值估计的精确度。

  计算开销上,随着用户数量的不断增加,EPTD和现有方案PPTD的计算开销也在不断增加。然而,在相同的用户数量下,EPTD 中单个用户的计算开销依然远小于PPTD。这是因为PPTD主要利用pailliar同态加密算法去实现密文下的聚合运算,并执行复杂的指数运算。EPTD 只需要用户随机选择两次噪音,并将噪音值加入到原始数据中,此过程只涉及传统整数群里面的加法。因此,与PPTD 相比,EPTD 在用户端的计算开销上具有显著的优势。

  同样的,经过实验,EPTD的通信开销也优于PPTD。这因为EPTD除了只用进行两次加噪的简单运算外,它所需要的交互轮次密文大小都远小于PPTD,因此,EPTD 在通信开销上保证了良好的性能。

 

总结:

  论文提出了移动人群感知系统中的EPTD方法,该方法可以实现较高的准确性,即使云服务器与任何一组小于t的用户勾结,也可以保护用户的感官数据和权重隐私。此外,我们的EPTD是完全健壮的用户退出在任何时间点,并构建在更实际的单服务器设置。在真实世界的移动人群感知系统上进行的大量实验也证明了EPTD与现有模型相比的预期性能。对于未来的研究方向,我们将考虑进一步提高EPTD的通信开销。此外,也可以考虑设计一个更安全的协议来抵御来自云服务器的主动攻击

 

 

 

标签:right,sum,用户,隐私,真值,感知,EPTD,array,left
来源: https://www.cnblogs.com/veggieg/p/15324940.html