單 超,鄒云峰
(國網(wǎng)江蘇省電力有限公司營銷服務(wù)中心,江蘇 南京 210036)
電力數(shù)據(jù)包含反映社會生活和生產(chǎn)的居民和企業(yè)真實用電數(shù)據(jù),具有廣泛的應(yīng)用場景和深層的使用價值。隨著電力系統(tǒng)信息化和電力大數(shù)據(jù)應(yīng)用的不斷深入,作為電力營銷數(shù)據(jù)的重要組成部分,用電數(shù)據(jù)在電力數(shù)據(jù)分析中發(fā)揮著重要作用,需要頻繁地在系統(tǒng)內(nèi)進行分發(fā)共享,支撐電力大數(shù)據(jù)分析應(yīng)用。即便對需分發(fā)共享的用電數(shù)據(jù)進行了脫敏處理,仍然存在數(shù)據(jù)接收者對用電數(shù)據(jù)進行非授權(quán)轉(zhuǎn)發(fā)泄露的風(fēng)險,用電數(shù)據(jù)的安全分發(fā)和發(fā)生數(shù)據(jù)泄露后的溯源問責(zé),已成為提升營銷數(shù)據(jù)安全管理能力的重要環(huán)節(jié)。
數(shù)字水印是目前解決數(shù)據(jù)版權(quán)問題的常用方法,文獻[1]將水印嵌入轉(zhuǎn)化為約束條件下的求最優(yōu)解問題,使用遺傳算法、粒子群算法創(chuàng)建水?。晃墨I[2]將圖像水印領(lǐng)域的灰度直方圖調(diào)節(jié)方法應(yīng)用在數(shù)據(jù)庫領(lǐng)域,實現(xiàn)較小的數(shù)據(jù)擾動;文獻[3]提出了基于小波的數(shù)字水印,支持電力數(shù)據(jù)安全傳輸問題;文獻[4]提出了基于混合變換域數(shù)字水印,支持?jǐn)?shù)據(jù)安全傳輸。此外,偽行偽列水印也是目前電力行業(yè)常用的水印方法。
已有研究方法主要存在以下不足:1)對數(shù)據(jù)挖掘分析可用性關(guān)注不足,已有方法主要關(guān)注查詢類應(yīng)用,預(yù)測電費是否逾期是用電數(shù)據(jù)分析的重要場景,現(xiàn)有的水印方法難以有效支撐用電數(shù)據(jù)分發(fā)共享中數(shù)據(jù)挖掘分析可用性的維持,如聚類的可用性等;2)已有方法大多假設(shè)分發(fā)共享中數(shù)據(jù)外泄形式是對完整數(shù)據(jù)表進行非授權(quán)轉(zhuǎn)發(fā),但在實際情況下,非法使用者可能只轉(zhuǎn)發(fā)部分?jǐn)?shù)據(jù)記錄,這將導(dǎo)致嵌入在數(shù)據(jù)中的水印遭到破壞,難以有效提取水印并對泄露者進行溯源。
針對上述問題,本文引入信息增益率和基尼系數(shù),提出重要性指數(shù)指標(biāo)來衡量屬性重要程度,并選擇重要性指數(shù)較小的若干屬性作為非重要屬性,向非重要屬性嵌入水印,降低水印對數(shù)據(jù)分析可用性的影響,實現(xiàn)對用電數(shù)據(jù)分析可用性的維持,并考慮對每條用電元組嵌入完整水印,結(jié)合所選非重要屬性數(shù)目,劃分子水印,通過密鑰和主鍵隨機選擇子水印在元組中的嵌入位置,保證水印安全性,實現(xiàn)部分?jǐn)?shù)據(jù)泄露的溯源。
本文主要工作如下:
1)針對非授權(quán)的部分用電數(shù)據(jù)的泄露溯源問題,將水印切分后分別嵌入數(shù)據(jù)的多個非重要屬性,本文提出根據(jù)主鍵和密鑰隨機選擇水印在小數(shù)部分嵌入位置的方法,實現(xiàn)部分?jǐn)?shù)據(jù)泄露時的水印溯源。
2)針對現(xiàn)有水印方法影響數(shù)據(jù)分析可用性問題,本文引入信息增益率和基尼系數(shù),計算屬性重要性指數(shù),選擇重要性指數(shù)較低的屬性嵌入水印,降低水印對數(shù)據(jù)分析可用性的影響,設(shè)置私密參數(shù)使數(shù)據(jù)接收者無法逆推水印,實現(xiàn)水印安全性和數(shù)據(jù)分析可用性的兼顧。
近年來,數(shù)字水印在數(shù)據(jù)安全分發(fā)共享方面得到了持續(xù)的關(guān)注,水印對數(shù)據(jù)可用性的影響以及水印的安全是研究者關(guān)注的焦點。
文獻[5]首次提出了數(shù)據(jù)庫水印的概念,通過修改屬性值LSB(Least Significant Bit)的方法來實現(xiàn)水印嵌入。數(shù)據(jù)庫水印以水印嵌入是否改變原始數(shù)據(jù)為標(biāo)準(zhǔn),可分為基于失真的水印和基于非失真的水印[6-7]。
文獻[8]提出了基于差分?jǐn)U展的技術(shù)水印,通過可逆的方式為數(shù)據(jù)庫添加水印。文獻[9]使用遺傳算法對基于差分?jǐn)U展的水印方法進行了優(yōu)化。文獻[10]使用螢火蟲算法對基于差分?jǐn)U展的水印方法進行了優(yōu)化。文獻[11]通過添加虛假元組實現(xiàn)水印嵌入,虛假元組以真實元組為依據(jù)通過采樣生成。文獻[12]根據(jù)二進制水印序列的LSB調(diào)整元組相對順序?qū)崿F(xiàn)水印嵌入。文獻[13-14]針對醫(yī)療記錄安全分發(fā)問題,提出了基于水印的解決方案。文獻[15]將數(shù)據(jù)集劃分為若干個子集,提出了基于數(shù)據(jù)子集的水印嵌入方法,實現(xiàn)數(shù)據(jù)外泄的溯源。
在提升水印安全性方面,數(shù)據(jù)庫指紋[16-18]是數(shù)據(jù)庫水印領(lǐng)域的重點研究方向之一,通過向多個原始數(shù)據(jù)庫副本添加不同的水印信息形成若干不同的水印數(shù)據(jù)庫并發(fā)送給多個第三方,在數(shù)據(jù)泄露時,從數(shù)據(jù)中提取出與第三方身份對應(yīng)的水印,實現(xiàn)對泄露數(shù)據(jù)的第三方溯源與問責(zé)。文獻[19]提出了將所嵌入水印變?yōu)門ardos編碼的數(shù)據(jù)溯源方法,使用密鑰和主鍵隨機選擇屬性嵌入水印,但這種篩選方法缺少對數(shù)據(jù)分布特性的兼顧,嵌入水印后數(shù)據(jù)的可用性損失較大,同時也無法解決數(shù)據(jù)部分外泄時的溯源問題。文獻[20]通過哈希運算選擇待嵌入水印的屬性和水印嵌入位置,提升水印抗擦除性,但由于水印只嵌入在部分?jǐn)?shù)據(jù)記錄中,且被嵌入水印的記錄只嵌入了水印的一個比特位,部分?jǐn)?shù)據(jù)記錄外泄時,水印可能無法有效提取,造成溯源失敗。針對數(shù)據(jù)部分外泄時的溯源問題,文獻[21]提出了基于距離對數(shù)據(jù)分組的方法,計算記錄與原點的歐氏距離并排序,將數(shù)據(jù)集均分為若干組,實現(xiàn)不依賴主鍵的分組,但水印嵌入后,造成屬性值改變,進而導(dǎo)致分組結(jié)果與原始數(shù)據(jù)的分組結(jié)果不一致,水印可能無法成功提取,并且其向每條元組中嵌入的是子水印而非完整水印,當(dāng)數(shù)據(jù)部分外泄時,從中提取的子水印可能無法組成完整水印而導(dǎo)致溯源失敗。在電力系統(tǒng)內(nèi),已采用的基于偽行/偽列水印的數(shù)據(jù)溯源方法,存在水印容易被甄別擦除問題。文獻[3]提出了基于小波的數(shù)字水印,文獻[4]提出了基于混合變換域數(shù)字水印,支持電力行業(yè)數(shù)據(jù)安全,但它們同樣無法有效維持添加水印后用電數(shù)據(jù)的分析可用性。
綜上所述,現(xiàn)有的基于水印的數(shù)據(jù)溯源方法存在共享分發(fā)過程中數(shù)據(jù)分析可用性維持效果較弱,以及難以有效支撐發(fā)生部分?jǐn)?shù)據(jù)外泄時的溯源問責(zé)問題,難以滿足用電數(shù)據(jù)預(yù)測類數(shù)據(jù)挖掘應(yīng)用。
在用電數(shù)據(jù)挖掘建模業(yè)務(wù)應(yīng)用場景下,需要將特定行業(yè)(地區(qū))的用電數(shù)據(jù)作為樣本分發(fā)共享給業(yè)務(wù)支撐部門或外協(xié)單位,然而這些獲取授權(quán)的數(shù)據(jù)接收者在接收到用電數(shù)據(jù)后,存在有意或無意泄露數(shù)據(jù)的風(fēng)險,為了規(guī)避用電數(shù)據(jù)非授權(quán)外泄風(fēng)險,需要提升發(fā)生數(shù)據(jù)非授權(quán)外泄后的溯源問責(zé)能力,以便對數(shù)據(jù)非授權(quán)外泄行為進行事后問責(zé)。現(xiàn)有的數(shù)字水印方法存在部分?jǐn)?shù)據(jù)泄露場景下水印遭破壞無法溯源的問題,同時,嵌入水印后的用電數(shù)據(jù)分析可用性維持效果較弱,無法支撐后續(xù)挖掘分析。
針對上述問題,本文設(shè)計一種基于數(shù)字水印的數(shù)據(jù)泄露溯源算法(Watermarking-based Records Traceability Algorithm, WRTA)。該方法利用信息增益率和基尼系數(shù)來設(shè)計屬性重要性衡量指數(shù),選擇重要性指數(shù)較小的屬性,對其小數(shù)部分進行水印嵌入,實現(xiàn)對數(shù)據(jù)分析可用性的維持,并將十進制數(shù)形式的水印劃分為若干個子水印,分別嵌入每條元組的非重要屬性,實現(xiàn)數(shù)據(jù)部分泄露時的溯源。
以用電數(shù)據(jù)分發(fā)共享后用于電費是否逾期分析場景為例,用電數(shù)據(jù)基本表結(jié)構(gòu)如下:D(企業(yè)編號,A1,A2,…,Am,P),其中P為類標(biāo)號屬性,對應(yīng)待預(yù)測月份電費是否逾期,A1,…,Am為條件屬性,對應(yīng)連續(xù)若干個月的企業(yè)用電信息,諸如月用電量、歷史逾期次數(shù)等,樣例數(shù)據(jù)示意見表1,每行對應(yīng)一家企業(yè)1—4月的用電量和上一年發(fā)生電費預(yù)期的次數(shù),其中第1列的10185~10187為3家企業(yè)的編號,2列~5列為每家企業(yè)1—4月的用電量,第5列為每家企業(yè)上一年逾期次數(shù),最后1列對應(yīng)類標(biāo)號屬性,記錄4月份各家企業(yè)是否發(fā)生了電費逾期。
表1 用電數(shù)據(jù)表樣例
分發(fā)該類數(shù)據(jù)的目的是支撐基于用電數(shù)據(jù)的企業(yè)用電分析、電費逾期風(fēng)險監(jiān)管。
定義1 信息增益[22]。度量數(shù)據(jù)集D按屬性Ai(1≤i≤m)劃分后純度的提升,假設(shè)數(shù)據(jù)集D以屬性Ai進行劃分,則屬性Ai的信息增益為:
Gain(Ai,D)=Entropy(D)-Entropy(Ai,D)
其中,pi為數(shù)據(jù)集D中各個類分布狀態(tài)的概率,Entropy(Ai,D)為D中某條數(shù)據(jù)記錄基于其屬性Ai的取值判斷該記錄所屬類別需要的信息量。
定義2 信息增益率[23]。給定數(shù)據(jù)集D,在決策樹分類中,信息增益率GainRatio(X,D)用于衡量條件屬性X對劃分?jǐn)?shù)據(jù)集的重要程度為:
其中,Gain(X,D)表示利用屬性X劃分?jǐn)?shù)據(jù)集的信息增益,Split_info(X)表示以X屬性對數(shù)據(jù)集D進行劃分后,數(shù)據(jù)集關(guān)于類標(biāo)號屬性分布的一致程度,屬性X的值域為{x1,x2,…,xn},Ti為D中X屬性取xi的數(shù)據(jù)記錄構(gòu)成的數(shù)據(jù)子集,|Ti|表示數(shù)據(jù)子集Ti包含的記錄數(shù)目。
當(dāng)屬性X為連續(xù)屬性時,采用二分法進行處理[23],使連續(xù)屬性離散化。假設(shè)屬性X有n個屬性值,將屬性值從小到大排序,并選擇相鄰屬性值的平均值作為劃分點t,借此將數(shù)據(jù)集劃分為大于等于t和小于t的2個數(shù)據(jù)子集。一共可形成n-1個劃分點,然后計算每個劃分點下的信息增益率并選擇最大值作為該連續(xù)屬性的信息增益率。
定義3 基尼系數(shù)[24]。數(shù)據(jù)集D包含來自m個類別的M條記錄,根據(jù)屬性X將數(shù)據(jù)集劃分為子集D1和D2,這2個數(shù)據(jù)子集包含的記錄數(shù)分別為M1和M2,則屬性X的基尼系數(shù)定義為:
其中,pj表示第j個樣本記錄屬于目標(biāo)類別的概率。
在本例中,數(shù)據(jù)集D包含來自2個類的記錄,對應(yīng)類標(biāo)號屬性P取“是”和“否”2類,即發(fā)生逾期和不發(fā)生逾期2種情況。