本技術(shù)涉及數(shù)據(jù)安全,特別是涉及一種數(shù)據(jù)隱匿查詢方法、裝置、系統(tǒng)、計(jì)算機(jī)設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)程序產(chǎn)品。
背景技術(shù):
1、隱匿查詢技術(shù)旨在保護(hù)用戶在查詢過程中的隱私,使數(shù)據(jù)查詢方能夠在不被數(shù)據(jù)提供方知曉具體查詢條件和結(jié)果的前提下完成查詢。相關(guān)技術(shù)中,可以使用隱私集合求交的方式進(jìn)行數(shù)據(jù)的隱匿查詢。然而,相關(guān)技術(shù)中的隱匿查詢過程通常涉及復(fù)雜的加密運(yùn)算以及大量密文數(shù)據(jù)傳輸,導(dǎo)致計(jì)算資源和通信帶寬開銷較大,難以實(shí)現(xiàn)高效的數(shù)據(jù)查詢。
技術(shù)實(shí)現(xiàn)思路
1、基于此,有必要針對(duì)上述技術(shù)問題,提供一種數(shù)據(jù)隱匿查詢方法、裝置、系統(tǒng)、計(jì)算機(jī)設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)程序產(chǎn)品。
2、第一方面,本技術(shù)提供了一種數(shù)據(jù)隱匿查詢方法,包括:
3、利用公鑰加密待查詢數(shù)據(jù),得到第一密文;
4、將所述公鑰和所述第一密文發(fā)送至數(shù)據(jù)提供方;
5、接收由所述數(shù)據(jù)提供方發(fā)送的第二密文;所述第二密文由所述數(shù)據(jù)提供方根據(jù)所述公鑰、所述第一密文和擬合系數(shù)序列進(jìn)行同態(tài)加密計(jì)算得到;所述擬合系數(shù)序列由所述數(shù)據(jù)提供方根據(jù)各供查詢數(shù)據(jù)和各所述供查詢數(shù)據(jù)對(duì)應(yīng)的驗(yàn)證數(shù)據(jù)擬合得到;
6、利用私鑰解密所述第二密文,得到所述待查詢數(shù)據(jù)對(duì)應(yīng)的待驗(yàn)證數(shù)據(jù);
7、若所述待查詢數(shù)據(jù)與所述待驗(yàn)證數(shù)據(jù)的對(duì)應(yīng)關(guān)系驗(yàn)證通過,則從所述待驗(yàn)證數(shù)據(jù)提取得到所述待查詢數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)查詢結(jié)果。
8、在其中一個(gè)實(shí)施例中,所述供查詢數(shù)據(jù)包含數(shù)據(jù)標(biāo)識(shí)、附加數(shù)據(jù);所述驗(yàn)證數(shù)據(jù)由所述數(shù)據(jù)提供方根據(jù)所述供查詢數(shù)據(jù)的所述附加數(shù)據(jù)和所述供查詢數(shù)據(jù)對(duì)應(yīng)的驗(yàn)證標(biāo)簽,利用第一生成函數(shù)生成;所述驗(yàn)證標(biāo)簽由所述數(shù)據(jù)提供方根據(jù)所述供查詢數(shù)據(jù)包含的所述數(shù)據(jù)標(biāo)識(shí)、所述附加數(shù)據(jù),利用第二生成函數(shù)生成;所述若所述待查詢數(shù)據(jù)與所述待驗(yàn)證數(shù)據(jù)的對(duì)應(yīng)關(guān)系驗(yàn)證通過,則從所述待驗(yàn)證數(shù)據(jù)提取得到所述待查詢數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)查詢結(jié)果之前,還包括:利用所述第一生成函數(shù)對(duì)應(yīng)的第一提取函數(shù),從所述待驗(yàn)證數(shù)據(jù)提取第一子數(shù)據(jù)和第二子數(shù)據(jù);利用所述第二生成函數(shù)對(duì)應(yīng)的第二驗(yàn)證函數(shù),驗(yàn)證所述第一子數(shù)據(jù)是否為對(duì)應(yīng)于所述待查詢數(shù)據(jù)和所述第二子數(shù)據(jù)的驗(yàn)證標(biāo)簽;根據(jù)標(biāo)簽驗(yàn)證結(jié)果,確定所述待查詢數(shù)據(jù)與所述待驗(yàn)證數(shù)據(jù)的對(duì)應(yīng)關(guān)系是否驗(yàn)證通過。
9、在其中一個(gè)實(shí)施例中,所述根據(jù)標(biāo)簽驗(yàn)證結(jié)果,確定所述待查詢數(shù)據(jù)與所述待驗(yàn)證數(shù)據(jù)的對(duì)應(yīng)關(guān)系是否驗(yàn)證通過,包括:若所述標(biāo)簽驗(yàn)證結(jié)果指示所述第一子數(shù)據(jù)為所述待查詢數(shù)據(jù)和所述第二子數(shù)據(jù)對(duì)應(yīng)的驗(yàn)證標(biāo)簽,則確定所述待驗(yàn)證數(shù)據(jù)與所述待查詢數(shù)據(jù)相對(duì)應(yīng)。
10、在其中一個(gè)實(shí)施例中,所述若所述待查詢數(shù)據(jù)與所述待驗(yàn)證數(shù)據(jù)的對(duì)應(yīng)關(guān)系驗(yàn)證通過,則從所述待驗(yàn)證數(shù)據(jù)提取得到所述待查詢數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)查詢結(jié)果,包括:根據(jù)提取自所述待驗(yàn)證數(shù)據(jù)的所述第二子數(shù)據(jù),得到所述待查詢數(shù)據(jù)對(duì)應(yīng)的所述數(shù)據(jù)查詢結(jié)果。
11、第二方面,本技術(shù)還提供了一種數(shù)據(jù)隱匿查詢方法,包括:
12、對(duì)各供查詢數(shù)據(jù)和各所述供查詢數(shù)據(jù)對(duì)應(yīng)的驗(yàn)證數(shù)據(jù)進(jìn)行擬合,得到擬合系數(shù)序列;
13、接收來自數(shù)據(jù)查詢方的公鑰和第一密文;所述第一密文由所述數(shù)據(jù)查詢方利用所述公鑰對(duì)待查詢數(shù)據(jù)加密得到;
14、根據(jù)所述公鑰、所述第一密文和所述擬合系數(shù)序列進(jìn)行同態(tài)加密計(jì)算,得到所述第一密文對(duì)應(yīng)的第二密文;
15、將所述第二密文發(fā)送至所述數(shù)據(jù)查詢方。
16、在其中一個(gè)實(shí)施例中,所述供查詢數(shù)據(jù)包含數(shù)據(jù)標(biāo)識(shí)、附加數(shù)據(jù);所述對(duì)各供查詢數(shù)據(jù)和各所述供查詢數(shù)據(jù)對(duì)應(yīng)的驗(yàn)證數(shù)據(jù)進(jìn)行擬合,得到擬合系數(shù)序列之前,包括:根據(jù)各所述供查詢數(shù)據(jù)包含的所述數(shù)據(jù)標(biāo)識(shí)和所述附加數(shù)據(jù),利用第二生成函數(shù)生成各所述供查詢數(shù)據(jù)對(duì)應(yīng)的驗(yàn)證標(biāo)簽;根據(jù)各所述供查詢數(shù)據(jù)包含的所述附加數(shù)據(jù)和對(duì)應(yīng)的所述驗(yàn)證標(biāo)簽,利用第一生成函數(shù)生成各所述供查詢數(shù)據(jù)對(duì)應(yīng)的所述驗(yàn)證數(shù)據(jù)。
17、在其中一個(gè)實(shí)施例中,所述對(duì)各供查詢數(shù)據(jù)和各所述供查詢數(shù)據(jù)對(duì)應(yīng)的驗(yàn)證數(shù)據(jù)進(jìn)行擬合,得到擬合系數(shù)序列,包括:根據(jù)各所述供查詢數(shù)據(jù)和各所述供查詢數(shù)據(jù)對(duì)應(yīng)的所述驗(yàn)證數(shù)據(jù),利用多項(xiàng)式插值法構(gòu)造擬合多項(xiàng)式,根據(jù)所述擬合多項(xiàng)式的多項(xiàng)式系數(shù)得到所述擬合系數(shù)序列;所述根據(jù)所述公鑰、所述第一密文和所述擬合系數(shù)序列進(jìn)行同態(tài)加密計(jì)算,得到所述第一密文對(duì)應(yīng)的第二密文,包括:根據(jù)所述公鑰,對(duì)所述擬合系數(shù)序列的各所述多項(xiàng)式系數(shù)進(jìn)行加密,得到經(jīng)加密的擬合系數(shù)序列;利用經(jīng)加密的所述擬合系數(shù)序列對(duì)所述第一密文進(jìn)行計(jì)算,得到所述第一密文對(duì)應(yīng)的所述第二密文。
18、第三方面,本技術(shù)還提供了一種數(shù)據(jù)隱匿查詢系統(tǒng),包括:
19、數(shù)據(jù)查詢方、數(shù)據(jù)提供方;
20、所述數(shù)據(jù)查詢方,用于利用公鑰加密待查詢數(shù)據(jù),得到第一密文;
21、所述數(shù)據(jù)提供方,用于對(duì)各供查詢數(shù)據(jù)和各所述供查詢數(shù)據(jù)對(duì)應(yīng)的驗(yàn)證數(shù)據(jù)進(jìn)行擬合,得到擬合系數(shù)序列;
22、所述數(shù)據(jù)查詢方,還用于將所述公鑰和所述第一密文發(fā)送至所述數(shù)據(jù)提供方;
23、所述數(shù)據(jù)提供方,還用于接收來自數(shù)據(jù)查詢方的所述公鑰和所述第一密文;根據(jù)所述公鑰、所述第一密文和所述擬合系數(shù)序列進(jìn)行同態(tài)加密計(jì)算,得到所述第一密文對(duì)應(yīng)的第二密文;將所述第二密文發(fā)送至所述數(shù)據(jù)查詢方;
24、所述數(shù)據(jù)查詢方,還用于接收由所述數(shù)據(jù)提供方發(fā)送的所述第二密文;利用私鑰解密所述第二密文,得到所述待查詢數(shù)據(jù)對(duì)應(yīng)的待驗(yàn)證數(shù)據(jù);若所述待查詢數(shù)據(jù)與所述待驗(yàn)證數(shù)據(jù)的對(duì)應(yīng)關(guān)系驗(yàn)證通過,則從所述待驗(yàn)證數(shù)據(jù)提取得到所述待查詢數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)查詢結(jié)果。
25、第四方面,本技術(shù)還提供了一種數(shù)據(jù)隱匿查詢裝置,包括:
26、加密模塊,用于利用公鑰加密待查詢數(shù)據(jù),得到第一密文;
27、發(fā)送模塊,用于將所述公鑰和所述第一密文發(fā)送至數(shù)據(jù)提供方;
28、接收模塊,用于接收由所述數(shù)據(jù)提供方發(fā)送的第二密文;所述第二密文由所述數(shù)據(jù)提供方根據(jù)所述公鑰、所述第一密文和擬合系數(shù)序列進(jìn)行同態(tài)加密計(jì)算得到;所述擬合系數(shù)序列由所述數(shù)據(jù)提供方根據(jù)各供查詢數(shù)據(jù)和各所述供查詢數(shù)據(jù)對(duì)應(yīng)的驗(yàn)證數(shù)據(jù)擬合得到;
29、解密模塊,用于利用私鑰解密所述第二密文,得到所述待查詢數(shù)據(jù)對(duì)應(yīng)的待驗(yàn)證數(shù)據(jù);
30、獲取模塊,用于若所述待查詢數(shù)據(jù)與所述待驗(yàn)證數(shù)據(jù)的對(duì)應(yīng)關(guān)系驗(yàn)證通過,則從所述待驗(yàn)證數(shù)據(jù)提取得到所述待查詢數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)查詢結(jié)果。
31、第五方面,本技術(shù)還提供了一種數(shù)據(jù)隱匿查詢裝置,包括:
32、擬合模塊,用于對(duì)各供查詢數(shù)據(jù)和各所述供查詢數(shù)據(jù)對(duì)應(yīng)的驗(yàn)證數(shù)據(jù)進(jìn)行擬合,得到擬合系數(shù)序列;
33、接收模塊,用于接收來自數(shù)據(jù)查詢方的公鑰和第一密文;所述第一密文由所述數(shù)據(jù)查詢方利用所述公鑰對(duì)待查詢數(shù)據(jù)加密得到;
34、加密計(jì)算模塊,用于根據(jù)所述公鑰、所述第一密文和所述擬合系數(shù)序列進(jìn)行同態(tài)加密計(jì)算,得到所述第一密文對(duì)應(yīng)的第二密文;
35、發(fā)送模塊,用于將所述第二密文發(fā)送至所述數(shù)據(jù)查詢方。
36、第六方面,本技術(shù)還提供了一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)以下步驟:
37、利用公鑰加密待查詢數(shù)據(jù),得到第一密文;
38、將所述公鑰和所述第一密文發(fā)送至數(shù)據(jù)提供方;
39、接收由所述數(shù)據(jù)提供方發(fā)送的第二密文;所述第二密文由所述數(shù)據(jù)提供方根據(jù)所述公鑰、所述第一密文和擬合系數(shù)序列進(jìn)行同態(tài)加密計(jì)算得到;所述擬合系數(shù)序列由所述數(shù)據(jù)提供方根據(jù)各供查詢數(shù)據(jù)和各所述供查詢數(shù)據(jù)對(duì)應(yīng)的驗(yàn)證數(shù)據(jù)擬合得到;
40、利用私鑰解密所述第二密文,得到所述待查詢數(shù)據(jù)對(duì)應(yīng)的待驗(yàn)證數(shù)據(jù);
41、若所述待查詢數(shù)據(jù)與所述待驗(yàn)證數(shù)據(jù)的對(duì)應(yīng)關(guān)系驗(yàn)證通過,則從所述待驗(yàn)證數(shù)據(jù)提取得到所述待查詢數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)查詢結(jié)果。
42、第七方面,本技術(shù)還提供了一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)以下步驟:
43、對(duì)各供查詢數(shù)據(jù)和各所述供查詢數(shù)據(jù)對(duì)應(yīng)的驗(yàn)證數(shù)據(jù)進(jìn)行擬合,得到擬合系數(shù)序列;
44、接收來自數(shù)據(jù)查詢方的公鑰和第一密文;所述第一密文由所述數(shù)據(jù)查詢方利用所述公鑰對(duì)待查詢數(shù)據(jù)加密得到;
45、根據(jù)所述公鑰、所述第一密文和所述擬合系數(shù)序列進(jìn)行同態(tài)加密計(jì)算,得到所述第一密文對(duì)應(yīng)的第二密文;
46、將所述第二密文發(fā)送至所述數(shù)據(jù)查詢方。
47、第八方面,本技術(shù)還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)以下步驟:
48、利用公鑰加密待查詢數(shù)據(jù),得到第一密文;
49、將所述公鑰和所述第一密文發(fā)送至數(shù)據(jù)提供方;
50、接收由所述數(shù)據(jù)提供方發(fā)送的第二密文;所述第二密文由所述數(shù)據(jù)提供方根據(jù)所述公鑰、所述第一密文和擬合系數(shù)序列進(jìn)行同態(tài)加密計(jì)算得到;所述擬合系數(shù)序列由所述數(shù)據(jù)提供方根據(jù)各供查詢數(shù)據(jù)和各所述供查詢數(shù)據(jù)對(duì)應(yīng)的驗(yàn)證數(shù)據(jù)擬合得到;
51、利用私鑰解密所述第二密文,得到所述待查詢數(shù)據(jù)對(duì)應(yīng)的待驗(yàn)證數(shù)據(jù);
52、若所述待查詢數(shù)據(jù)與所述待驗(yàn)證數(shù)據(jù)的對(duì)應(yīng)關(guān)系驗(yàn)證通過,則從所述待驗(yàn)證數(shù)據(jù)提取得到所述待查詢數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)查詢結(jié)果。
53、第九方面,本技術(shù)還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)以下步驟:
54、對(duì)各供查詢數(shù)據(jù)和各所述供查詢數(shù)據(jù)對(duì)應(yīng)的驗(yàn)證數(shù)據(jù)進(jìn)行擬合,得到擬合系數(shù)序列;
55、接收來自數(shù)據(jù)查詢方的公鑰和第一密文;所述第一密文由所述數(shù)據(jù)查詢方利用所述公鑰對(duì)待查詢數(shù)據(jù)加密得到;
56、根據(jù)所述公鑰、所述第一密文和所述擬合系數(shù)序列進(jìn)行同態(tài)加密計(jì)算,得到所述第一密文對(duì)應(yīng)的第二密文;
57、將所述第二密文發(fā)送至所述數(shù)據(jù)查詢方。
58、第十方面,本技術(shù)還提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)以下步驟:
59、利用公鑰加密待查詢數(shù)據(jù),得到第一密文;
60、將所述公鑰和所述第一密文發(fā)送至數(shù)據(jù)提供方;
61、接收由所述數(shù)據(jù)提供方發(fā)送的第二密文;所述第二密文由所述數(shù)據(jù)提供方根據(jù)所述公鑰、所述第一密文和擬合系數(shù)序列進(jìn)行同態(tài)加密計(jì)算得到;所述擬合系數(shù)序列由所述數(shù)據(jù)提供方根據(jù)各供查詢數(shù)據(jù)和各所述供查詢數(shù)據(jù)對(duì)應(yīng)的驗(yàn)證數(shù)據(jù)擬合得到;
62、利用私鑰解密所述第二密文,得到所述待查詢數(shù)據(jù)對(duì)應(yīng)的待驗(yàn)證數(shù)據(jù);
63、若所述待查詢數(shù)據(jù)與所述待驗(yàn)證數(shù)據(jù)的對(duì)應(yīng)關(guān)系驗(yàn)證通過,則從所述待驗(yàn)證數(shù)據(jù)提取得到所述待查詢數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)查詢結(jié)果。
64、第十一方面,本技術(shù)還提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)以下步驟:
65、對(duì)各供查詢數(shù)據(jù)和各所述供查詢數(shù)據(jù)對(duì)應(yīng)的驗(yàn)證數(shù)據(jù)進(jìn)行擬合,得到擬合系數(shù)序列;
66、接收來自數(shù)據(jù)查詢方的公鑰和第一密文;所述第一密文由所述數(shù)據(jù)查詢方利用所述公鑰對(duì)待查詢數(shù)據(jù)加密得到;
67、根據(jù)所述公鑰、所述第一密文和所述擬合系數(shù)序列進(jìn)行同態(tài)加密計(jì)算,得到所述第一密文對(duì)應(yīng)的第二密文;
68、將所述第二密文發(fā)送至所述數(shù)據(jù)查詢方。
69、上述數(shù)據(jù)隱匿查詢方法、裝置、系統(tǒng)、計(jì)算機(jī)設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)程序產(chǎn)品,先利用公鑰加密待查詢數(shù)據(jù)得到第一密文并將公鑰和第一密文發(fā)送至數(shù)據(jù)提供方,然后接收由數(shù)據(jù)提供方發(fā)送的第二密文,其中該第二密文由數(shù)據(jù)提供方根據(jù)公鑰、第一密文和擬合系數(shù)序列進(jìn)行同態(tài)加密計(jì)算得到,擬合系數(shù)序列由數(shù)據(jù)提供方根據(jù)各供查詢數(shù)據(jù)和各供查詢數(shù)據(jù)對(duì)應(yīng)的驗(yàn)證數(shù)據(jù)擬合得到,隨后利用私鑰解密第二密文得到待查詢數(shù)據(jù)對(duì)應(yīng)的待驗(yàn)證數(shù)據(jù),若待查詢數(shù)據(jù)與待驗(yàn)證數(shù)據(jù)的對(duì)應(yīng)關(guān)系驗(yàn)證通過則從待驗(yàn)證數(shù)據(jù)提取得到待查詢數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)查詢結(jié)果。該方案,通過由數(shù)據(jù)查詢方將根據(jù)各供查詢數(shù)據(jù)和各供查詢數(shù)據(jù)對(duì)應(yīng)的驗(yàn)證數(shù)據(jù)擬合得到擬合系數(shù)序列,并利用該擬合系數(shù)序列以及接收自數(shù)據(jù)查詢方的公鑰和第一密文進(jìn)行同態(tài)加密計(jì)算,能夠在一次計(jì)算中實(shí)現(xiàn)對(duì)數(shù)據(jù)命中情況的校驗(yàn)以及對(duì)查詢結(jié)果的計(jì)算,使得到的第二密文具備自校驗(yàn)功能和查詢結(jié)果的數(shù)據(jù)傳遞功能,從而數(shù)據(jù)查詢方只需接收第二密文并對(duì)其進(jìn)行解密和驗(yàn)證即可獲取待查詢數(shù)據(jù)對(duì)應(yīng)的查詢結(jié)果,該過程能夠減少數(shù)據(jù)查詢方和數(shù)據(jù)提供方需要進(jìn)行的計(jì)算量以及減少兩者之間傳輸?shù)臄?shù)據(jù)量,從而有利于節(jié)省數(shù)據(jù)隱匿查詢過程中的計(jì)算資源開銷和通信帶寬開銷。