Skip to content

Review for TFL'21

!!! info "[TFL'21]" - AnonymTD & PerturbTD Achieving Privacy-preserving and Lightweight Truth Discovery in Mobile Crowdsensing


Introduction


Problem Statement


Proposed Protocol

AnonymTD

M 个任务: \{T_1, T_2, \ldots, T_M\}K 个 workers: \{p_1, p_2, \ldots, p_K\}x_m^k 代表 p_k 对于任务 T_m 观测到的数值。

两个 PRF: \piF

\pi:\{0,1\}^p \times \{0,1\}^\ell \to \{0,1\}^\ell
F:\{0,1\}^p \times \{0,1\}^m \to \{0,1\}^n

副服务器 AS 对所有的服务器生成同一个随机密钥 x\gets_R \{0,1\}^p,用于第一个 PRF \pi。每一个 worker 都可以生成相应的扰动序号 s_k = \pi_x(k)

AS 生成 K 个随机密钥,\{y_1, y_2, \ldots, y_K\},其中 y_i \gets_R \{0,1\}^p。AS 给每个 worker 随机分配两个不同的密钥,如分配给 p_k 两个密钥 y_iy_j,其中 i\neq j

那么,对于任一 worker,都可以构造一个匿名函数:

A_k(\cdot) = F_{y_i}(\cdot) - F_{y_j}(\cdot)

Workers 就可以使用匿名函数来生成数据了,以 worker p_k 为例,他可以生成 K 个数据: \{AD_k^1, AD_k^2, \ldots, AD_k^K\},对于 i\in [1,K]

如果 i\neq s_k,那么 AD_k^i = A_k(i)

如果 i=s_k,那么 AD_k^i = A_k(i) + x_m^k

也就是说,这一组数据里,只有第 s_k 个数据才包含了他观测的数值

在收集到 K 个 workers 的数据后,加和

d_m^i = \sum_{k=1}^K AD_k^i

之后便可以通过迭代完成计算。

Question

对于 DR,每个 worker 的数据是可见的,只是跟 worker 的 ID 对不上号(顺序被打乱)。权重对于 DR 也是完全可知的。一旦有某个 worker 没有上传数据,此方法就不可行。

PerturbTD

对于 worker p_k,生成随机数 N_\alpha^k = \{\alpha_1^k, \alpha_2^k, \ldots, \alpha_M^k\}N_\beta^k = \{\beta_1^k, \beta_2^k, \ldots, \beta_M^k\}

混淆数据: \hat{x}_m^k = x_m^k + \alpha_m^k\bar{x}_m^k = x_m^k \cdot \beta_m^k

混淆数据发送给 DR,随机数发送给 AS,随后 workers 便可以离线。