【技术实现步骤摘要】
一种两方参与的频繁项数据挖掘的隐私保护方法
[0001]本专利技术涉及一种针对两方参与的频繁项数据挖掘的隐私保护方法,属于数据挖掘,隐私保护
技术介绍
[0002]在数据挖掘技术日趋成熟之时,人们开始意识到隐私的重要性,越来越多的呼声要求企业和部门加强隐私的保护。在这个背景下,各种隐私保护技术得以蓬勃发展。隐私保护不仅仅是对用户的保护,也是对大公司信誉和名誉的保护,隐私的泄漏也会带给公司和国家部门巨大的损失。更好地保护各种隐私,称为全社会共同的期望。
[0003]例如两家大医院想要共同计算出近年来最常见的几种疾病,常规手段下,两家医院只能共享双方的数据,但两家医院是竞争关系且用户的患病记录对于所有者来说是相当重要的隐私,共享数据的做法会损害用户的隐私;常规地使用差分隐私计算的话就需要可信的第三方,而第三方要对两个数据拥有方都可信是一种比较苛刻的条件;普通的安全多方计算并不能提供差分隐私的效果。
[0004]对于两方参与的数据分析任务,每一方都拥有自己的部分数据,且不愿意与另一方共享数据。尽管安全计算能够实现安全的频繁项挖掘,但准确的前k项的输出仍然可能给攻击者留下推断敏感信息的机会。差分隐私已被用于各种数据分析任务以保护参与个体的信息,但如何安全地为两方频繁项挖掘提供差分隐私尚未得到解决。
[0005]以下是专利技术中运用到的相关知识。
[0006]安全多方计算:安全多方计算主要针对在无可信第三方的情况下,如何安全地计算一个约定函数的问题。秘密共享,是将秘密分散到人群的方法, ...
【技术保护点】
【技术特征摘要】
1.一种两方参与的频繁项数据挖掘的隐私保护方法,其特征在于,所述方法包含两个参与方A和B,其中每个参与方各自拥有一个键值对数组{(key_1,value_1),...,(key_n,value_n)};在A和B本地,参与方A和B先对本地数据依据键值对中的值进行排序,排序之后互相约定长度对本地数组进行剪切;之后,参与方A和B通过安全计算合并双方的数组成为一个大的共享数组,A和B持有能组成共享数组的秘密片段,实现秘密共享,并利用安全比较对共享数组进行安全排序;最后Top
‑
k选取,通过差分隐私的指数机制,从安全排序的结果中选出Top
‑
k的结果。2.根据权利要求1所述的两方参与的频繁项数据挖掘的隐私保护方法,其特征在于,数组剪切包括如下步骤:步骤11:两个参与方A和B约定一个值k
′
=k;步骤12:A生成一个布隆数组blm,并将他的Top
‑
k
′
个数据通过函数bloom_add添加进布隆数组blm中,然后将blm发给B;步骤13:B通过布隆过滤器函数bloom_check依次检测它的本地数据,bloom_check会判断某个元素是否在布隆数组blm中,然后参与方B统计本地在blm中的key的数量为c;步骤14:若c≥μk
′
(0<μ≤1),参与方A和B截取数组的前k
′
个元素并退出;否则让k
′
=2k
’
,重复步骤12
‑
14,直到满足条件c≥μk
′
(0<μ≤1)退出或循环次数超出给定的值。给定的值可以视系统的运算能力而定;步骤15:完成上述步骤12
‑
14后,A和B会分别持有一个长度为k
’
的数组。3.根据权利要求1所述的两方参与的频繁项数据挖掘的隐私保护方法,其特征在于,秘密共享包括如下步骤:步骤21:A在本地创建数组<shr_dataset>
A
,B在本地创建数组<shr_dataset>
B
;步骤22:A用加密算法加密一个key为key
s
,然后将key
s
发给B;步骤23:B生成一个随机数rnd,发给A;步骤24:A在<shr_dataset>
A
中增添元素<key,rnd+value(key)>,其中value(key)指的是A中key的数据值;B则分情况讨论:若B中有一个key用相同的加密算法加密后能得到key
s
,则在<shr_dataset>
B
中添加元素<null,rnd
‑
value(key)>,其中value(key)指的是B中key的数据值;若B中不存在这么一个key,则B在<shr_dataset>
B
中添加元素<null,rnd>;null是一个空值,表示B不知道A的key值;步骤25:A遍历在数组中的每一个key,并重复步骤22
‑
24;在A发送完他的所有key后,B再为在步骤24...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。