美文网首页大数据运维及安全信息安全
实现差分隐私技术的简单应用

实现差分隐私技术的简单应用

作者: 爱看时事的通信崔 | 来源:发表于2020-05-23 10:48 被阅读0次

    大数据时代,数据发布是信息资源共享的最重要途径之一,然而如果考虑不到数据保护的话,就会导致隐私信息泄露问题,甚至造成严重后果。为有效应对隐私泄露问题,人们通常采用以下几种方式:一是通过失真等降低数据敏感性--数据脱敏;二是通过“去标识化”实现隐私保护--匿名化;三是通过加噪声来抵抗差分攻击--差分隐私。

    这其中,数据脱敏简单地删除敏感字段,其使用性差,而且仍然存在隐私泄露隐患。匿名化技术不断被发现存在漏洞和缺陷,其不可靠性比较差。差分隐私技术对比前两者,具有严格的数学模型,安全性级别可量化可证明,是当前最热门的隐私保护技术之一。

    对于差分隐私技术,我们不需要掌握它复杂的数学原理,只需要清楚差分隐私技术比较可靠,学会如何应用即可。

    下面我们通过一段Python代码来演示。
    假设公司提供的人事资料供大家查询,资料中包括姓名和薪水信息,其中姓名是公开的,而薪水是需要隐私保护的。

    数据见下表:

    姓名 薪水
    王二 5000
    张三 6000
    李四 7000

    Python代码的具体实现如下:

    import numpy as np # 导入numpy库
    
    def get_noisy_digit(value, epsilon): 
    # 符合普拉斯分布的噪声
    # 数学公式无需完全理解
        u = np.random.random() - 0.5
        noisy_digit = 0.0 - value/epsilon*np.sign(u)*np.log(1.0-2*np.abs(u))
        return np.rint(noisy_digit)
    
    if __name__ == '__main__':
        company_salary = {'王二':5000,'张三':6000,'李四':7000} # 真实的人力资源数据
        noisy_salary = company_salary.copy() # 新建的人力资源数据
        value = 3000 # 薪水最大差距3000
        epsilon = 4 # 隐私保护预算,值越小泄露风越小,噪声越大
        for i in pseudo_val: 
            noisy_salary[i] = (noisy_salary[i] + get_noisy_digit(value, epsilon)) # 逐个加噪声
    
        print('真实的数据如下:{}'.format(company_salary))
        print('差分隐私后的数据如下:{}'.format(noisy_salary))
    

    运行代码后,得到结果如下:

    真实的数据如下:{'王二': 5000, '张三': 6000, '李四': 7000}
    差分隐私后的数据如下:{'王二': 6052.0, '张三': 6306.0, '李四': 7188.0}
    

    可以看到,薪水数据经过差分隐私技术处理,发生了明显变化,从而有效的保护了薪水隐私。

    相关文章

      网友评论

        本文标题:实现差分隐私技术的简单应用

        本文链接:https://www.haomeiwen.com/subject/qwjkahtx.html