本發(fā)明屬于數(shù)據(jù)加密技術(shù)領(lǐng)域,涉及一種基于隱私保護(hù)的可計(jì)算加密方法。
背景技術(shù):
數(shù)據(jù)加密的基本過(guò)程就是對(duì)原來(lái)為明文的文件或數(shù)據(jù)按某種算法進(jìn)行處理,使其成為不可讀的一段代碼,通常稱(chēng)為“密文”,使其只能在輸入相應(yīng)的密鑰之后才能顯示出本來(lái)內(nèi)容,通過(guò)這樣的途徑來(lái)達(dá)到保護(hù)數(shù)據(jù)不被非法人竊取、閱讀的目的。該過(guò)程的逆過(guò)程為解密,即將該編碼信息轉(zhuǎn)化為其原來(lái)數(shù)據(jù)的過(guò)程。隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展,數(shù)據(jù)庫(kù)技術(shù)日益成熟,各行各業(yè)積累了大量的有用數(shù)據(jù),尤其當(dāng)前云計(jì)算存儲(chǔ)技術(shù)的廣泛應(yīng)用,隱私信息安全問(wèn)題更加令人擔(dān)憂(yōu),如何對(duì)數(shù)據(jù)庫(kù)中一些隱私信息進(jìn)行有效保護(hù),引起了各界的廣泛關(guān)注。調(diào)查研究顯示,大多數(shù)人不愿意將自己的隱私信息提供給網(wǎng)站,而一些人在只有隱私信息得到保護(hù)的條件下才愿意提供給網(wǎng)站,因此在充分利用累積的數(shù)據(jù),挖掘其中潛在規(guī)律的同時(shí),有效保護(hù)個(gè)人隱私成為當(dāng)前一個(gè)很有意義的研究課題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提高數(shù)據(jù)的安全性,防止隱私數(shù)據(jù)被泄漏,提供一種基于隱私保護(hù)的可計(jì)算加密方法。
其具體技術(shù)方案為:
一種基于隱私保護(hù)的可計(jì)算加密方法,包括以下步驟:
步驟1、數(shù)據(jù)分解:首先將查詢(xún)的數(shù)字與操作符按一定規(guī)則轉(zhuǎn)化為特殊的加密關(guān)鍵字,通過(guò)分解關(guān)聯(lián)敏感屬性的方式,把外包數(shù)據(jù)庫(kù)中的關(guān)系模式分解為滿(mǎn)足客戶(hù)定義的隱私約束規(guī)則的數(shù)據(jù),然后對(duì)其進(jìn)行加密形成單個(gè)加密屬性,數(shù)據(jù)分解的同時(shí),把相關(guān)分解信息進(jìn)行保存;
步驟2、數(shù)據(jù)查詢(xún):分析用戶(hù)提交的查詢(xún),結(jié)合元數(shù)據(jù)把查詢(xún)分解為適當(dāng)?shù)淖硬樵?xún)并發(fā)送到數(shù)據(jù)庫(kù)服務(wù)器,然后數(shù)據(jù)庫(kù)服務(wù)器將該關(guān)鍵字輸入布隆過(guò)濾器中進(jìn)行命中判定,從而間接實(shí)現(xiàn)數(shù)據(jù)的比較;
步驟3、數(shù)據(jù)解密和存儲(chǔ):為正確訪(fǎng)問(wèn)和管理外包數(shù)據(jù)庫(kù),需要存儲(chǔ)一些數(shù)據(jù)分解時(shí)的密鑰和模式信息的數(shù)據(jù)以及查詢(xún)優(yōu)化所需的統(tǒng)計(jì)信息。
進(jìn)一步,步驟2中所述布隆過(guò)濾器的算法,具體為一種多個(gè)哈希函數(shù)映射的快速查找算法,采用一系列的bit位來(lái)保存數(shù)據(jù),用于判別某一個(gè)元素是否存在于一個(gè)集合中。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果為:
本發(fā)明提高了數(shù)據(jù)的安全性,并且易實(shí)現(xiàn)、實(shí)用性強(qiáng),可以滿(mǎn)足各種條件的數(shù)據(jù)保護(hù)。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步詳細(xì)地說(shuō)明。
一種基于隱私保護(hù)的可計(jì)算加密方法,包括以下步驟:
步驟1、數(shù)據(jù)分解:首先將查詢(xún)的數(shù)字與操作符按一定規(guī)則轉(zhuǎn)化為特殊的加密關(guān)鍵字,通過(guò)分解關(guān)聯(lián)敏感屬性的方式,把外包數(shù)據(jù)庫(kù)中的關(guān)系模式分解為滿(mǎn)足客戶(hù)定義的隱私約束規(guī)則的數(shù)據(jù),然后對(duì)其進(jìn)行加密形成單個(gè)加密屬性,數(shù)據(jù)分解的同時(shí),把相關(guān)分解信息進(jìn)行保存;具體方法為:根據(jù)各種規(guī)則從隱私約束集合中得到復(fù)合隱私約束,再由復(fù)合隱私約束計(jì)算出數(shù)據(jù)模式矩陣,匯總出每個(gè)敏感屬性的綜合權(quán)重,把綜合權(quán)重最大的隱私屬性從數(shù)據(jù)庫(kù)主模式中分離,形成一個(gè)子模式,這時(shí)主模式已經(jīng)滿(mǎn)足了復(fù)合隱私約束的一部分隱私要求,然后根據(jù)復(fù)合隱私約束中的剩余的隱私要求重新計(jì)算數(shù)據(jù)模式矩陣,把綜合權(quán)重最大的屬性從主模式中分離,如果將綜合權(quán)重最大的屬性添加到已有的子模式后,該子模式仍然滿(mǎn)足所有隱私要求,則把綜合權(quán)重最大的屬性添加到該子模式;否則,把綜合權(quán)重最大的屬性添加到一個(gè)新的子模式,直到復(fù)合隱私約束中的所有隱私要求都得到滿(mǎn)足為止。
步驟2、數(shù)據(jù)查詢(xún):分析用戶(hù)提交的查詢(xún),結(jié)合元數(shù)據(jù)把查詢(xún)分解為適當(dāng)?shù)淖硬樵?xún)并發(fā)送到數(shù)據(jù)庫(kù)服務(wù)器,然后數(shù)據(jù)庫(kù)服務(wù)器將該關(guān)鍵字輸入布隆過(guò)濾器中進(jìn)行命中判定,從而間接實(shí)現(xiàn)數(shù)據(jù)的比較;布隆過(guò)濾器由k個(gè)哈希函數(shù)以及1個(gè)位向量組成,初始化時(shí),全部位向量的值為0,當(dāng)有新數(shù)據(jù)s1插入時(shí),采用k個(gè)哈希函數(shù)將數(shù)據(jù)映射到位向量中,那么該位向量對(duì)應(yīng)地址序列的位置為1,稱(chēng)該位相量裝入了s1。當(dāng)需要查詢(xún)集合中是否存某個(gè)數(shù)據(jù)對(duì)象s2時(shí),首先檢查表示s2的位相量地址序列位,若全部為1,那么表示s2屬于位相量集。
步驟3、數(shù)據(jù)解密和存儲(chǔ):為正確訪(fǎng)問(wèn)和管理外包數(shù)據(jù)庫(kù),需要存儲(chǔ)一些數(shù)據(jù)分解時(shí)的密鑰和模式信息的數(shù)據(jù)以及查詢(xún)優(yōu)化所需的統(tǒng)計(jì)信息。經(jīng)過(guò)查詢(xún)后的數(shù)據(jù)上設(shè)有標(biāo)志字段,用于表示屬性是否為加密屬性,值是1時(shí)為加密屬性。加密密鑰字段存儲(chǔ)時(shí)加密密鑰,數(shù)據(jù)分解時(shí)用該密鑰加密數(shù)據(jù)后,存儲(chǔ)到外包數(shù)據(jù)庫(kù)服務(wù)器中,解密時(shí)用此密鑰得到原始記錄。
步驟2中所述布隆過(guò)濾器的算法,具體為一種多個(gè)哈希函數(shù)映射的快速查找算法,采用一系列的bit位來(lái)保存數(shù)據(jù),用于判別某一個(gè)元素是否存在于一個(gè)集合中。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式,本發(fā)明的保護(hù)范圍不限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明披露的技術(shù)范圍內(nèi),可顯而易見(jiàn)地得到的技術(shù)方案的簡(jiǎn)單變化或等效替換均落入本發(fā)明的保護(hù)范圍內(nèi)。