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