本發(fā)明涉及數(shù)據(jù)挖掘技術(shù)領(lǐng)域,特別涉及一種分布式關(guān)聯(lián)規(guī)則挖掘隱私信息保護(hù)方法。
背景技術(shù):
伴隨著數(shù)據(jù)挖掘技術(shù)在各個(gè)領(lǐng)域的廣泛應(yīng)用,數(shù)據(jù)挖掘?qū)τ脩舻碾[私和數(shù)據(jù)安全所造成的威脅越來越引起人們的關(guān)注。在涉及企業(yè)敏感數(shù)據(jù)(如電子病歷中包含的醫(yī)院醫(yī)療業(yè)務(wù)或財(cái)務(wù)狀況)或個(gè)人隱私信息(如電子病歷中包含的患者隱私病癥)的各種數(shù)據(jù)挖掘日常應(yīng)用中,對于如何提高數(shù)據(jù)的安全性引起了學(xué)者的廣泛關(guān)注。
目前國內(nèi)外的隱私保護(hù)數(shù)據(jù)挖掘算法主要有基于數(shù)據(jù)擾亂的、基于查詢限制等方法,在分布式環(huán)境下主要有基于查詢限制或數(shù)據(jù)擾亂和查詢限制混合使用等方法。數(shù)據(jù)擾亂首先通過數(shù)據(jù)離散化、數(shù)據(jù)隨機(jī)變換和增加噪聲等操作對原始數(shù)據(jù)進(jìn)行干擾,對干擾后的數(shù)據(jù)進(jìn)行挖掘,減少挖掘中隱私的泄漏;查詢限制則是通過數(shù)據(jù)隱藏、抽樣、劃分或加密等方式,再利用概率統(tǒng)計(jì)或分布式計(jì)算的方法得到挖掘結(jié)果,以達(dá)到保護(hù)數(shù)據(jù)的目的。目前分布式環(huán)境下關(guān)聯(lián)規(guī)則挖掘隱私保護(hù)算法較多的使用同態(tài)加密技術(shù),該技術(shù)最主要的特點(diǎn)是對經(jīng)過同態(tài)加密的數(shù)據(jù)進(jìn)行處理得到一個(gè)輸出,將這一輸出進(jìn)行解密,其結(jié)果與用同一方法處理未加密的原始數(shù)據(jù)得到的輸出結(jié)果是一樣的。在將該技術(shù)運(yùn)用在分布式關(guān)聯(lián)規(guī)則挖掘中時(shí),私鑰擁有者容易通過兩兩計(jì)算站點(diǎn)的信息,獲得足夠多的方程組后,解出各站點(diǎn)數(shù)據(jù)集中項(xiàng)集的支持度信息造成隱私泄漏。
技術(shù)實(shí)現(xiàn)要素:
針對現(xiàn)有技術(shù)存在的不足,本發(fā)明提出一種分布式關(guān)聯(lián)規(guī)則挖掘隱私信息保護(hù)方法,增強(qiáng)在水平分布式環(huán)境下關(guān)聯(lián)規(guī)則挖掘中各站點(diǎn)支持度和個(gè)體信息的安全性。
一種分布式關(guān)聯(lián)規(guī)則挖掘隱私信息保護(hù)方法,其特征包含于以下步驟:
1)各站點(diǎn)使用差分隱私算法對各自擁有的數(shù)據(jù)集進(jìn)行匿名化操作;
2)引入的半可信第三方利用Shamir秘密共享算法將產(chǎn)生的私鑰分解成n+1個(gè)子私鑰;
3)第三方將n個(gè)子私鑰分別發(fā)送給各站點(diǎn)(共n個(gè)站點(diǎn)),把原始私鑰重置為第n+1個(gè)子私鑰的值skn+1;
4)第三方將所有的子私鑰重構(gòu)成原私鑰,對各站點(diǎn)發(fā)送過來的支持度矩陣進(jìn)行解密;
5)第三方對支持度矩陣解密完成后,將原私鑰重置為第n+1個(gè)子私鑰的值skn+1。
附圖說明
圖1是算法流程圖
圖2是分布式數(shù)據(jù)挖掘框架
具體實(shí)施方式
該方法思想如下:
(1)在對數(shù)據(jù)進(jìn)行挖掘前,各站點(diǎn)對各自擁有的原始數(shù)據(jù)集D使用差分隱私保護(hù)算法進(jìn)行匿名化處理,構(gòu)成匿名化數(shù)據(jù)集D’。
(2)引入半可信第三方,第三方產(chǎn)生使用同態(tài)加密算法時(shí)所需的公鑰私鑰對(pk,sk),利用Shamir秘密共享算法將私鑰分解成n+1個(gè)子私鑰,賦值sk為skn+1并將公鑰子私鑰對分別發(fā)送給各站點(diǎn)。
(3)各站點(diǎn)計(jì)算出k-項(xiàng)集的本地支持?jǐn)?shù),構(gòu)成行矩陣,使用公鑰pk對該矩陣M進(jìn)行同態(tài)加密,形成新的行矩陣E(M),將E(M)連同子私鑰一并發(fā)送給第三方。
(4)第三方整合各站點(diǎn)發(fā)來的所有矩陣,利用Shamir算法還原私鑰sk,計(jì)算k-項(xiàng)集(包含k個(gè)項(xiàng)的項(xiàng)集)的全局支持?jǐn)?shù),利用Shamir算法對私鑰再次進(jìn)行分解,重置sk=skn+1,根據(jù)Apriori數(shù)據(jù)挖掘算法,最終得出關(guān)聯(lián)規(guī)則。
下面結(jié)合實(shí)施例子及附圖對本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實(shí)施方式不限于此。
現(xiàn)設(shè)定有三個(gè)數(shù)據(jù)集D1、D2、D3分別分布在三個(gè)站點(diǎn)S1、S2、S3中,具體數(shù)據(jù)集見表1-表3。最小支持度為min_sup,最小置信度為min_conf,挖掘框架如圖2所示。
表1原始數(shù)據(jù)集D1示例
表2原始數(shù)據(jù)集D2示例
表3原始數(shù)據(jù)集D3示例
1)站點(diǎn)S1、S2、S3使用差分隱私算法將站點(diǎn)內(nèi)數(shù)據(jù)集進(jìn)行匿名化,得到經(jīng)過差分隱私算法執(zhí)行后的數(shù)據(jù)集(見表4-表6);
表4匿名化后數(shù)據(jù)集D1′示例
表5匿名化后數(shù)據(jù)集D2′示例
表6匿名化后數(shù)據(jù)集D3′示例
2)第三方DC產(chǎn)生公鑰和私鑰(pk,sk),利用Shamir密鑰共享方法將私鑰sk分解成4個(gè)子密鑰ski(1≤i≤4),并將sk賦值為sk4;
3)DC將(pk,ski)發(fā)送給各站點(diǎn);
4)各站點(diǎn)并行計(jì)算1-項(xiàng)集的支持?jǐn)?shù),使用pk將1-項(xiàng)集支持?jǐn)?shù)利用Paillier同態(tài)加密算法進(jìn)行加密,構(gòu)成行矩陣將該行矩陣和ski一同發(fā)送給DC;
5)DC將各站點(diǎn)發(fā)送過來的行矩陣相加,并將ski合并到sk,用私鑰sk解密得并重置sk=sk4。若Sup1大于min_sup*|D|(|D|為各站點(diǎn)總事務(wù)數(shù)之和),則該候選1-項(xiàng)集為全局頻繁1-項(xiàng)集;
6)DC使用關(guān)聯(lián)規(guī)則挖掘算法Apriori生成全局2-項(xiàng)集;
7)若全局頻繁1-項(xiàng)集的數(shù)目不等于零,轉(zhuǎn)到第4步,否則繼續(xù)執(zhí)行下一步;
8)各站點(diǎn)統(tǒng)計(jì)出2-項(xiàng)集的支持?jǐn)?shù),以同樣的方式發(fā)送給DC;
9)DC將所有的候選頻繁項(xiàng)集支持度與給定的最小置信度進(jìn)行比較,候選頻繁項(xiàng)集支持度大于min_conf的,則為關(guān)聯(lián)規(guī)則,否則丟棄;
以上對本發(fā)明的具體實(shí)施例進(jìn)行了描述。需要理解的是,本發(fā)明并不局限于上述特定實(shí)施方式,本領(lǐng)域技術(shù)人員可以在權(quán)利要求的范圍內(nèi)做出各種變形或修改,這并不影響本發(fā)明的實(shí)質(zhì)內(nèi)容。