本發(fā)明涉及計(jì)算機(jī),具體地說(shuō)是一種數(shù)據(jù)庫(kù)的數(shù)據(jù)水印添加和溯源方法、系統(tǒng)、設(shè)備及介質(zhì)。
背景技術(shù):
1、隨著信息技術(shù)的快速發(fā)展,企業(yè)數(shù)據(jù)的安全性變得越來(lái)越重要。而數(shù)據(jù)水印在數(shù)據(jù)泄露后可以進(jìn)行確權(quán)跟溯源已經(jīng)被廣泛使用?,F(xiàn)如今在關(guān)系型數(shù)據(jù)庫(kù)中添加數(shù)據(jù)水印的方式一般為偽行、偽列、向字段中添加不可見(jiàn)字符串等。偽行需要新增數(shù)據(jù)行數(shù)影響數(shù)據(jù)總數(shù)及數(shù)據(jù)質(zhì)量,偽列需要新增列較為明顯易被發(fā)現(xiàn),向字段中添加不可見(jiàn)字符串如果數(shù)據(jù)進(jìn)行治理后又容易丟失。
2、顯性水印為數(shù)據(jù)唯一碼,在表關(guān)聯(lián)中會(huì)用到,數(shù)據(jù)量大時(shí)改造成本高。
3、隱性水印中包含顯性水印,每一行的水印信息都不一致,難以找到規(guī)律進(jìn)行破解,另隱性水印以不可見(jiàn)字符的方式隔行插入,也難以被發(fā)現(xiàn)。
4、故如何提升關(guān)系型數(shù)據(jù)庫(kù)中水印去除的復(fù)雜度,提高數(shù)據(jù)泄露后可確權(quán)行及可溯源性是目前亟待解決的技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的技術(shù)任務(wù)是提供一種數(shù)據(jù)庫(kù)的數(shù)據(jù)水印添加和溯源方法、系統(tǒng)、設(shè)備及介質(zhì),來(lái)解決如何提升關(guān)系型數(shù)據(jù)庫(kù)中水印去除的復(fù)雜度,提高數(shù)據(jù)泄露后可確權(quán)行及可溯源性的問(wèn)題。
2、本發(fā)明的技術(shù)任務(wù)是按以下方式實(shí)現(xiàn)的,一種數(shù)據(jù)庫(kù)的數(shù)據(jù)水印添加和溯源方法,該方法具體如下:
3、添加顯性水?。簩㈥P(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)表中的確定數(shù)據(jù)唯一性且不會(huì)變更的字段組合后加入明文水印加鹽再通過(guò)md5加密后生成唯一碼,唯一碼作為數(shù)據(jù)表的關(guān)鍵字段使用;
4、添加隱性水印:將待添加的明文水印與唯一碼組合后通過(guò)對(duì)稱(chēng)加密算法生成加密密文,并根據(jù)數(shù)據(jù)量控制添加水印的行數(shù);
5、顯性水印溯源:獲取泄露數(shù)據(jù)中的確定數(shù)據(jù)唯一性的字段的溯源內(nèi)容,按照添加顯性水印的方式新生成唯一碼或獲取本地庫(kù)中根據(jù)關(guān)鍵信息獲取到的唯一碼,比較唯一碼與泄露數(shù)據(jù)是否一致;
6、隱性水印溯源:根據(jù)泄露數(shù)據(jù)中的非關(guān)鍵字段的溯源內(nèi)容以及本地?cái)?shù)據(jù)庫(kù)中的泄露數(shù)據(jù)對(duì)應(yīng)的部分?jǐn)?shù)據(jù),確定泄露數(shù)據(jù)是否是本地泄露,完成溯源。
7、作為優(yōu)選,添加隱性水印時(shí),若數(shù)據(jù)表中的非關(guān)鍵字段為n,則將加密密文拆分為n份,再將n份密文轉(zhuǎn)換為不可見(jiàn)字符串,將可不見(jiàn)字符串按字段順序插入到數(shù)據(jù)表中的非關(guān)鍵字段后面,非關(guān)鍵字段發(fā)生變更時(shí),去掉之前的水印重新生成隱性水印重新插入,避免本地水印丟失;
8、其中,不可見(jiàn)字符串是指零寬字符串。
9、作為優(yōu)選,不會(huì)變更的字段包括創(chuàng)建時(shí)間字段;
10、待添加的明文水印包括數(shù)據(jù)權(quán)屬信息。
11、更優(yōu)地,隱性水印溯源具體如下:
12、獲取泄露數(shù)據(jù);
13、獲取泄露數(shù)據(jù)中的非關(guān)鍵字段的溯源內(nèi)容,提取非關(guān)鍵字段的溯源內(nèi)容中包含的不可見(jiàn)字符串;
14、將不可見(jiàn)字符串轉(zhuǎn)換為加密密文,并按照添加隱性水印時(shí)的字段插入順序組合加密密文m1;
15、通過(guò)關(guān)鍵字段獲取本地?cái)?shù)據(jù)庫(kù)中泄露數(shù)據(jù)對(duì)應(yīng)的部分?jǐn)?shù)據(jù),將同行數(shù)據(jù)中不可見(jiàn)字符串轉(zhuǎn)換為加密密文,并按照添加隱性水印時(shí)的字段插入順序組合加密密文m2;
16、比較加密密文m1和加密密文m2的匹配度:
17、若完全一致,則完成泄露數(shù)據(jù)溯源,密文重合片段越高匹配度越高;
18、解密加密密文m1,獲取到明文水印及數(shù)據(jù)唯一碼,結(jié)合數(shù)據(jù)唯一碼與明文水印信息確定泄露數(shù)據(jù)是否是本地泄露,完成溯源。
19、一種數(shù)據(jù)庫(kù)的數(shù)據(jù)水印添加和溯源系統(tǒng),該系統(tǒng)包括:
20、顯性水印添加模塊,用于將關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)表中的確定數(shù)據(jù)唯一性且不會(huì)變更的字段組合后加入明文水印加鹽再通過(guò)md5加密后生成唯一碼,唯一碼作為數(shù)據(jù)表的關(guān)鍵字段使用;
21、隱性水印添加模塊,用于將待添加的明文水印與唯一碼組合后通過(guò)對(duì)稱(chēng)加密算法生成加密密文,并根據(jù)數(shù)據(jù)量控制添加水印的行數(shù);
22、顯性水印溯源模塊,用于獲取泄露數(shù)據(jù)中的確定數(shù)據(jù)唯一性的字段的溯源內(nèi)容,按照添加顯性水印的方式新生成唯一碼或獲取本地庫(kù)中根據(jù)關(guān)鍵信息獲取到的唯一碼,比較唯一碼與泄露數(shù)據(jù)是否一致;
23、隱性水印溯源模塊,用于根據(jù)泄露數(shù)據(jù)中的非關(guān)鍵字段的溯源內(nèi)容以及本地?cái)?shù)據(jù)庫(kù)中的泄露數(shù)據(jù)對(duì)應(yīng)的部分?jǐn)?shù)據(jù),確定泄露數(shù)據(jù)是否是本地泄露,完成溯源。
24、作為優(yōu)選,隱性水印添加模塊包括:
25、非關(guān)鍵字段確定子模塊,用于確定數(shù)據(jù)表的非關(guān)鍵性字段;
26、密文生成子模塊,用于將明文水印加唯一碼字段內(nèi)容組合后通過(guò)對(duì)稱(chēng)加密生成加密密文;
27、拆分子模塊,用于根據(jù)數(shù)據(jù)表中的非關(guān)鍵字段為n,將加密密文拆分為n份;
28、轉(zhuǎn)換子模塊,用于將n份密文轉(zhuǎn)換為不可見(jiàn)字符串;
29、插入子模塊,用于將可不見(jiàn)字符串按字段順序插入到數(shù)據(jù)表中的非關(guān)鍵字段后面,非關(guān)鍵字段發(fā)生變更時(shí),去掉之前的水印重新生成隱性水印重新插入,避免本地水印丟失;
30、其中,不可見(jiàn)字符串是指零寬字符串。
31、更優(yōu)地,隱性水印溯源模塊包括:
32、獲取子模塊,用于獲取泄露數(shù)據(jù);
33、非關(guān)鍵字段提取子模塊,用于獲取泄露數(shù)據(jù)中的非關(guān)鍵字段的溯源內(nèi)容,提取非關(guān)鍵字段的溯源內(nèi)容中包含的不可見(jiàn)字符串;
34、轉(zhuǎn)換及插入子模塊一,用于將不可見(jiàn)字符串轉(zhuǎn)換為加密密文,并按照添加隱性水印時(shí)的字段插入順序組合加密密文m1;
35、轉(zhuǎn)換及插入子模塊二,用于通過(guò)關(guān)鍵字段獲取本地?cái)?shù)據(jù)庫(kù)中泄露數(shù)據(jù)對(duì)應(yīng)的部分?jǐn)?shù)據(jù),將同行數(shù)據(jù)中不可見(jiàn)字符串轉(zhuǎn)換為加密密文,并按照添加隱性水印時(shí)的字段插入順序組合加密密文m2;
36、匹配度比較子模塊,用于比較加密密文m1和加密密文m2的匹配度:
37、若完全一致,則完成泄露數(shù)據(jù)溯源,密文重合片段越高匹配度越高;
38、解密子模塊,用于解密加密密文m1,獲取到明文水印及數(shù)據(jù)唯一碼,結(jié)合數(shù)據(jù)唯一碼與明文水印信息確定泄露數(shù)據(jù)是否是本地泄露,完成溯源。
39、一種電子設(shè)備,包括:存儲(chǔ)器和至少一個(gè)處理器;
40、其中,所述存儲(chǔ)器上存儲(chǔ)有計(jì)算機(jī)程序;
41、所述至少一個(gè)處理器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的計(jì)算機(jī)程序,使得所述至少一個(gè)處理器執(zhí)行如上述的數(shù)據(jù)庫(kù)的數(shù)據(jù)水印添加和溯源方法。
42、一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序可被處理器執(zhí)行以實(shí)現(xiàn)如上述的數(shù)據(jù)庫(kù)的數(shù)據(jù)水印添加和溯源方法。
43、本發(fā)明的數(shù)據(jù)庫(kù)的數(shù)據(jù)水印添加和溯源方法、系統(tǒng)、設(shè)備及介質(zhì)具有以下優(yōu)點(diǎn):
44、(一)本發(fā)明對(duì)能確定數(shù)據(jù)唯一性且不會(huì)發(fā)生變更的字段組合后添加版權(quán)信息并加鹽后通過(guò)md5生成數(shù)據(jù)唯一碼作為顯性水??;對(duì)于剩余字段中的非關(guān)鍵字段(假設(shè)有n個(gè)),將需要添加的明文水印加密成密文信息,將密文信息拆分為n份,再將n份信息轉(zhuǎn)碼為不可見(jiàn)字符串并分別添加到非關(guān)鍵字段的后面作為隱性水印,通過(guò)對(duì)數(shù)據(jù)添加顯性水印及隱性水印相結(jié)合的方式極大提高了數(shù)據(jù)改造成本,并保證了數(shù)據(jù)泄露后的可溯源性;
45、(二)本發(fā)明從偽列及向字段添加不可見(jiàn)字符串的方式入手向數(shù)據(jù)添加水印。偽列既然易被發(fā)現(xiàn)干脆直接展示出來(lái)作為唯一碼,向字段中添加不可見(jiàn)字符串,作為隱性水印與顯性水印相輔相成,避免數(shù)據(jù)清洗后水印丟失;
46、(三)本發(fā)明通過(guò)顯性水印及隱性水印相結(jié)合的方式向數(shù)據(jù)庫(kù)表中加入數(shù)據(jù)水印,保證泄露數(shù)據(jù)可以溯源,提升了關(guān)系型數(shù)據(jù)庫(kù)中水印去除的復(fù)雜度,提高了數(shù)據(jù)泄露后可確權(quán)性及可溯源性;
47、(四)本發(fā)明將水印信息拆分到不同字段,減少每個(gè)字段存儲(chǔ)的不可見(jiàn)字符的數(shù)據(jù)量,且隔行添加水印,減少了隱性水印的存儲(chǔ)成本且保留了水印的可追溯性。