本發(fā)明公開一種用于數(shù)據(jù)庫加密的密文單字符匹配模糊查詢方法及裝置,涉及數(shù)據(jù)庫加密。
背景技術(shù):
1、數(shù)據(jù)庫加密技術(shù)旨在保護(hù)存儲在數(shù)據(jù)庫中的敏感信息免受未授權(quán)訪問。隨著數(shù)據(jù)泄露事件的頻發(fā),加密技術(shù)成為數(shù)據(jù)安全的關(guān)鍵部分。數(shù)據(jù)庫加密可以在不同層面進(jìn)行,包括全數(shù)據(jù)庫加密、列級加密,以及應(yīng)用層加密等,旨在實(shí)現(xiàn)數(shù)據(jù)在靜態(tài)狀態(tài)下的安全保護(hù)。
2、在加密的數(shù)據(jù)庫中進(jìn)行模糊查詢引入了額外的挑戰(zhàn),因?yàn)閭鹘y(tǒng)的查詢技術(shù)不能直接應(yīng)用于加密數(shù)據(jù)。要在不解密數(shù)據(jù)的情況下進(jìn)行有效查詢,需要特殊的加密和查詢技術(shù)。這些技術(shù)嘗試平衡查詢效率、查詢準(zhǔn)確度和數(shù)據(jù)安全性。
3、目前,從算法角度實(shí)現(xiàn)模糊查詢的加密技術(shù)主要包括同態(tài)加密、安全多方計算(smc),以及可搜索加密(sse)等。同態(tài)加密允許對加密數(shù)據(jù)進(jìn)行操作而無需解密,但其高昂的計算成本限制了其在大規(guī)模數(shù)據(jù)上的應(yīng)用。可搜索加密技術(shù)通過構(gòu)建特殊的加密索引來支持模糊查詢,構(gòu)建和維護(hù)加密索引,以及執(zhí)行加密搜索操作可能會導(dǎo)致顯著的性能開銷。
4、從方案角度實(shí)現(xiàn)模糊查詢的加密技術(shù)主要包括內(nèi)存解密、數(shù)據(jù)脫敏、分詞組合等。內(nèi)存解密是將所有數(shù)據(jù)加載到內(nèi)存中解密,這樣可以和查詢明文一樣使用模糊查詢。這個方案雖然可以實(shí)現(xiàn)模糊查詢,如果數(shù)據(jù)量大的話,完全無法使用。數(shù)據(jù)脫敏是對密文脫敏后存儲到模糊查詢列,會丟失大量精度。分詞組合是現(xiàn)在廣泛使用的方案,對密文進(jìn)行分詞組合,將分詞結(jié)果進(jìn)行加密,查詢針對組合詞進(jìn)行解密。該方案缺點(diǎn)是存儲成本急劇增加,模糊查詢長度有一定限制。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明針對現(xiàn)有技術(shù)的問題,提供一種用于數(shù)據(jù)庫加密的密文單字符匹配模糊查詢方法及裝置,所采用的技術(shù)方案為:
2、第一方面,一種用于數(shù)據(jù)庫加密的密文單字符匹配模糊查詢方法,所述方法包括:
3、s1,根據(jù)數(shù)據(jù)庫執(zhí)行sql類型,通過單字符匹配算法將數(shù)據(jù)加密存儲到模糊查詢列;
4、s2,根據(jù)執(zhí)行所述模糊查詢列,通過常規(guī)數(shù)據(jù)庫加密對sql進(jìn)行改寫;
5、s3,根據(jù)改寫后的所述sql,通過所述模糊查詢列進(jìn)行單個字符的匹配,得到模糊查詢結(jié)果。
6、在一些實(shí)現(xiàn)方式中,s1中,所述單字符匹配算法,通過對字符進(jìn)行掩碼處理進(jìn)行字符模糊化,得到模糊化的字符用于模糊查詢。
7、在一些實(shí)現(xiàn)方式中,所述s1具體包括:
8、s11,通過對原始字符的各個字符進(jìn)行偏移操作和按位與操作,轉(zhuǎn)化為一個新的掩碼字符;
9、s12,根據(jù)所述偏移操作,通過添加常量對所述原始字符進(jìn)行不可逆處理。
10、在一些實(shí)現(xiàn)方式中,所述s11具體包括:
11、s111,根據(jù)原始字符的各個字符,通過所述偏移操作使用預(yù)定義的常量?`default_delta`進(jìn)行偏移操作;
12、s112,根據(jù)偏移操作后的單個所述字符,通過所述按位與操作使用常量掩碼?`default_mask`進(jìn)行按位與操作;
13、s113,根據(jù)原始字符的特定字符,使用`map`通過查找表提供對應(yīng)的特定索引值,并對所述特定索引值進(jìn)行偏移和掩碼處理。
14、第二方面,本發(fā)明實(shí)施例提供一種用于數(shù)據(jù)庫加密的密文單字符匹配模糊查詢裝置,所述裝置包括:
15、加密模塊,用于根據(jù)數(shù)據(jù)庫執(zhí)行sql類型,通過單字符匹配算法將數(shù)據(jù)加密存儲到模糊查詢列;
16、查詢模塊,用于根據(jù)執(zhí)行所述模糊查詢列,通過常規(guī)數(shù)據(jù)庫加密對sql進(jìn)行改寫;
17、匹配模塊,用于根據(jù)改寫后的所述sql,通過所述模糊查詢列進(jìn)行單個字符的匹配,得到模糊查詢結(jié)果。
18、在一些實(shí)現(xiàn)方式中,所述加密模塊中,所述單字符匹配算法,通過對字符進(jìn)行掩碼處理進(jìn)行字符模糊化,得到模糊化的字符用于模糊查詢。
19、在一些實(shí)現(xiàn)方式中,所述加密模塊具體包括:
20、掩碼處理單元,用于通過對原始字符的各個字符進(jìn)行偏移操作和按位與操作,轉(zhuǎn)化為一個新的掩碼字符;
21、偏移處理單元,用于根據(jù)所述偏移操作,通過添加常量對所述原始字符進(jìn)行不可逆處理。
22、在一些實(shí)現(xiàn)方式中,所述掩碼處理單元具體包括:
23、第一操作子單元,用于根據(jù)原始字符的各個字符,通過所述偏移操作使用預(yù)定義的常量?`default_delta`進(jìn)行偏移操作;
24、第二操作子單元,用于根據(jù)偏移操作后的單個所述字符,通過所述按位與操作使用常量掩碼?`default_mask`進(jìn)行按位與操作;
25、第三操作子單元,用于根據(jù)原始字符的特定字符,使用`map`通過查找表提供對應(yīng)的特定索引值,并對所述特定索引值進(jìn)行偏移和掩碼處理。
26、第三方面,本發(fā)明實(shí)施例提供一種電子設(shè)備,包括存儲器和處理器,所述存儲器用于存儲一條或多條計算機(jī)指令,其中,所述一條或多條計算機(jī)指令被所述處理器執(zhí)行時,實(shí)現(xiàn)如上述第一方面所述的方法。
27、第四方面,本發(fā)明實(shí)施例提供一種計算機(jī)存儲介質(zhì),所述計算機(jī)可讀取存儲介質(zhì)中存儲有計算機(jī)程序,所述計算機(jī)程序被處理器執(zhí)行時,用實(shí)現(xiàn)如第一方面所述的方法。
28、本發(fā)明的一個或多個實(shí)施例至少能夠帶來如下有益效果:
29、本發(fā)明方法通過偏移(`default_delta`)和掩碼(`default_mask`)的組合操作是算法的核心。這兩者結(jié)合使用,確保即使輸入的字符接近,它們的掩碼字符也可能有顯著不同。這一特性增強(qiáng)了模糊化效果,同時保留了一些輸入字符的模式。
30、由于掩碼操作會丟棄部分信息,并且可能會有多個不同的輸入字符映射到相同的掩碼字符,這使得反向推導(dǎo)出原始字符變得不可能。例如,如果?`default_mask`?是一個低字節(jié)的掩碼,任何輸入字符的高字節(jié)部分信息都會丟失。
31、每次對相同的輸入字符進(jìn)行掩碼處理,都會生成相同的掩碼字符。這一特性使得算法適合用于模糊查詢,因?yàn)橄到y(tǒng)可以在不保存原始數(shù)據(jù)的情況下,通過掩碼字符來匹配查詢條件。
32、通過本發(fā)明方法的計算過程,能夠一個簡單且有效的字符模糊化方法。確保數(shù)據(jù)在被存儲或處理時不會直接暴露原始信息,同時保留了一種可預(yù)測的方式來對數(shù)據(jù)進(jìn)行查詢。具體來說,算法的設(shè)計使得每個輸入字符都有一個唯一的、不可逆的掩碼字符映射,這種映射既防止了數(shù)據(jù)泄露,又支持模糊查詢功能。
1.一種用于數(shù)據(jù)庫加密的密文單字符匹配模糊查詢方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,s1中,所述單字符匹配算法,通過對字符進(jìn)行掩碼處理進(jìn)行字符模糊化,得到模糊化的字符用于模糊查詢。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述s1具體包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述s11具體包括:
5.一種用于數(shù)據(jù)庫加密的密文單字符匹配模糊查詢裝置,其特征在于,所述裝置包括:
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述加密模塊中,所述單字符匹配算法,通過對字符進(jìn)行掩碼處理進(jìn)行字符模糊化,得到模糊化的字符用于模糊查詢。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述加密模塊具體包括:
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述掩碼處理單元具體包括:
9.一種電子設(shè)備,其特征在于,包括存儲器和處理器,所述存儲器用于存儲一條或多條計算機(jī)指令,其中,所述一條或多條計算機(jī)指令被所述處理器執(zhí)行時實(shí)現(xiàn)如上述權(quán)利要求1-4中任意一項(xiàng)所述方法。
10.一種計算機(jī)可讀存儲介質(zhì),其特征在于,所述計算機(jī)可讀取存儲介質(zhì)中存儲有計算機(jī)程序,所述計算機(jī)程序被處理器執(zhí)行時用以實(shí)現(xiàn)如上述權(quán)利要求1-4中任意一項(xiàng)所述法。