阶段六:统计型作业的差分隐私保护
本示例作业,以统计各行业的“企业税收总和”与“用电量总和”,进行统计分析:
Select industry, sum(tax_bal), sum(electric_bal) from LEAGUE_CREATOR.tax a join dayu002.power_data b on a.id = b.id group by industry
统计分析型的作业,可能被作业执行方通过增删某个碰撞的id,得到两次作业之间的差值,从而推算出实际taxpay和water_fee。
- 开启空间中的差分隐私开关保护敏感数据,符合差分隐私条件的统计作业,会自动应用差分隐私算法对计算结果进行加噪保护, 在一定误差范围内保证数据无法被恶意偷取。
图1 差分隐私开关
- 第一次执行作业的结果如下:
图2 作业结果
- 在返回最终统计结果前,增加了一个差分隐私计算的任务节点,如图3所示。
- 再执行如下sql,sql中过滤掉了某个企业,试图用差值去计算这个企业的税收值。
Select industry, sum(tax_bal), sum(electric_bal) from LEAGUE_CREATOR.tax a join dayu002.power_data b on a.id = b.id where a.id <> '123400558' group by industry
这个企业的实际tax为274:
图4 tax
得到新的结果如下:
图5 新结果
经过计算,66539.583321490225131-66078.857559963717677=461,
通过差分隐私算法保护聚合操作的安全性,使开启算法保护的计算差值与预期得到的实际差值274不同,避免真实数据被窃取。