本發(fā)明涉及不經(jīng)意量子密鑰分配及經(jīng)典的后處理領(lǐng)域,具體涉及一種不經(jīng)意量子密鑰分配的后處理方法。
背景技術(shù):
如今大數(shù)據(jù)的發(fā)展越來越快,數(shù)據(jù)庫查詢服務(wù)變得越來越廣泛,因此查詢數(shù)據(jù)庫時(shí)的隱私問題也變得越來越重要。這種在數(shù)據(jù)庫查詢時(shí)的隱私保護(hù)問題最早由chor等人在1995年提出,被稱為隱私信息檢索(privateinformationretrieval,pir),這種策略能夠避免數(shù)據(jù)庫持有者獲取用戶查詢語句的相關(guān)信息,從而保護(hù)用戶隱私,但同時(shí)也暴露了數(shù)據(jù)庫安全性的問題。隨后gertner等人針對(duì)數(shù)據(jù)庫安全性的問題提出了對(duì)稱隱私信息檢索(symmetricallyprivateinformationretrieval,spir),這可以被描述為:一個(gè)用戶alice想獲取數(shù)據(jù)庫持有者bob所持?jǐn)?shù)據(jù)庫中的一個(gè)元素,但她不希望bob知道自己具體對(duì)哪個(gè)元素感興趣(用戶隱私),反過來bob不允許alice獲得數(shù)據(jù)庫中其他敏感的信息(數(shù)據(jù)庫隱私)。
由于經(jīng)典spir方案的通信和計(jì)算復(fù)雜度很高,giovannetti等人在2008年首次提出用量子方法來解決這個(gè)問題,即量子隱私查詢(quantumprivatequery,qpq)。量子隱私查詢的出現(xiàn)很好地解決了經(jīng)典方案的不足,但是這種方案存在不實(shí)用的缺點(diǎn)。于是jakobi等人在2011年提出了一種實(shí)用的數(shù)據(jù)庫隱私查詢方案,該方案在數(shù)據(jù)庫和查詢用戶之間進(jìn)行不經(jīng)意量子密鑰分配,并經(jīng)過經(jīng)典的后處理過程,來實(shí)現(xiàn)隱私查詢的目的。這種量子隱私查詢方案相對(duì)較為實(shí)用,因?yàn)樗恍枰苽鋯喂庾?,現(xiàn)有技術(shù)設(shè)備容易實(shí)現(xiàn),因此能更好地推廣到實(shí)際應(yīng)用中。此外,該方案還能夠有效抵抗量子存儲(chǔ)攻擊、發(fā)送偽造量子態(tài)攻擊以及糾纏測(cè)量攻擊,同時(shí)還能抵抗信道的損失。
然而,已有的基于單光子的不經(jīng)意量子密鑰分配的后處理方法都還沒有達(dá)到精確控制查詢用戶已知密鑰位數(shù)的效果,也就是說,查詢用戶最終獲得的已知密鑰位數(shù)是概率性的,這可能會(huì)對(duì)數(shù)據(jù)庫的安全性造成影響,此外還無法適用于一些特殊的數(shù)據(jù)庫查詢服務(wù),例如返回指定個(gè)數(shù)查詢結(jié)果的數(shù)據(jù)庫查詢服務(wù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于解決現(xiàn)有不經(jīng)意量子密鑰分配的后處理方法的不足,提供一種不經(jīng)意量子密鑰分配的后處理方法,以期使數(shù)據(jù)服務(wù)中心能根據(jù)具體的應(yīng)用需求,精確地控制查詢用戶知道任意位數(shù)(但是事先約定好的)的密鑰,從而既能提高數(shù)據(jù)庫的安全性,又能更好地應(yīng)用于一些特殊的數(shù)據(jù)庫查詢服務(wù)。
本發(fā)明為解決技術(shù)問題所采用如下的技術(shù)方案是:
本發(fā)明一種不經(jīng)意量子密鑰分配的后處理方法的特點(diǎn)是,在數(shù)據(jù)庫查詢服務(wù)中,存在一個(gè)數(shù)據(jù)服務(wù)中心s和一個(gè)查詢用戶u,所述數(shù)據(jù)服務(wù)中心s向所述查詢用戶u分配一個(gè)n位不經(jīng)意密鑰k,其中,所述數(shù)據(jù)服務(wù)中心s知道所述不經(jīng)意密鑰k中所有的n比特,而所述查詢用戶u僅知道所述不經(jīng)意密鑰k的任意m比特,1≤m≤n,且所述數(shù)據(jù)服務(wù)中心s不知道所述查詢用戶u具體m比特的位置;所述后處理方法是按如下步驟進(jìn)行:
步驟1:判斷m=1是否成立,若成立,則執(zhí)行步驟2;否則,執(zhí)行步驟4;
步驟2:所述數(shù)據(jù)服務(wù)中心s和所述查詢用戶u之間進(jìn)行n次不經(jīng)意量子密鑰分配,從而建立n個(gè)n位的預(yù)處理不經(jīng)意密鑰{k1,k2,…,ki,…kn},ki表示任意第i個(gè)n位的預(yù)處理不經(jīng)意密鑰,i=1,2,...,n;
步驟2.1:所述查詢用戶u事先生成一個(gè)秘密的正整數(shù)x,1≤x≤n;
步驟2.2:初始化i=1;
步驟2.3:所述數(shù)據(jù)服務(wù)中心s利用不經(jīng)意量子密鑰分配方法生成第i個(gè)長度為n的原始不經(jīng)意密鑰roki,其中,所述數(shù)據(jù)服務(wù)中心s知道所述第i個(gè)原始不經(jīng)意密鑰roki所有的n比特,而所述查詢用戶u僅知道所述第i個(gè)原始不經(jīng)意密鑰roki中的若干比特;并將所述若干比特中的一個(gè)已知位的下標(biāo)記為j,1≤j≤n;
步驟2.4:所述查詢用戶u利用式(1)計(jì)算第i輪位移量si并發(fā)送給所述數(shù)據(jù)服務(wù)中心s:
si=j(luò)-x(1)
步驟2.5:所述數(shù)據(jù)服務(wù)中心s根據(jù)所述第i輪位移量si對(duì)所述第i個(gè)原始不經(jīng)意密鑰roki進(jìn)行移位,使得所述數(shù)據(jù)服務(wù)中心s和所述查詢用戶u之間共享第i個(gè)n位的預(yù)處理不經(jīng)意密鑰ki;
步驟2.6:將i+1賦值給i,并判斷i>n是否成立,若成立,則執(zhí)行步驟3,否則返回步驟2.3;
步驟3:所述數(shù)據(jù)服務(wù)中心s利用式(2)計(jì)算所述n位不經(jīng)意密鑰k:
所述查詢用戶u利用式(3)得到密鑰位k(x):
式(3)中,k(x)是所述n位不經(jīng)意密鑰k的第x位,ki(x)是所述第i個(gè)n位的預(yù)處理不經(jīng)意密鑰ki的第x位;
步驟4:初始化變量t=1;
步驟5:判斷t<m是否成立,若成立,則將
步驟6:令t+1賦值給t后,返回步驟5;
步驟7:將
步驟8、將m個(gè)不經(jīng)意密鑰{k1′,k2′,…,kt′,…k′m}按序拼接起來,從而組成一個(gè)n位的不經(jīng)意密鑰k;
步驟9:所述查詢用戶u隨機(jī)生成一種置換函數(shù)π(·),并公開給所述數(shù)據(jù)服務(wù)中心s;
步驟10、所述查詢用戶u和所述數(shù)據(jù)服務(wù)中心s分別利用式(4)對(duì)所述n位的不經(jīng)意密鑰k進(jìn)行置換,得到置換后的n位不經(jīng)意密鑰k*:
k*=π(k)(4)
從而使得所述數(shù)據(jù)服務(wù)中心s知道所述置換后的n位不經(jīng)意密鑰k*中所有的n比特,而所述查詢用戶u僅知道所述置換后的n位不經(jīng)意密鑰k*中的m比特,且所述數(shù)據(jù)服務(wù)中心s不知道所述查詢用戶u具體m比特的位置。
與已有技術(shù)相比,本發(fā)明的有益效果體現(xiàn)在:
1、針對(duì)已有的不經(jīng)意量子密鑰分配的后處理方法不足,本發(fā)明通過多次執(zhí)行不經(jīng)意量子密鑰分配及多次移位異或的方法,從而實(shí)現(xiàn)了數(shù)據(jù)服務(wù)中心精確控制查詢用戶的已知密鑰位數(shù),使得不經(jīng)意的量子密鑰分配更實(shí)用。
2、本發(fā)明通過多次執(zhí)行不經(jīng)意量子密鑰分配、多次移位異或及最終的隨機(jī)置換方法能夠精確控制查詢用戶所能知道的不經(jīng)意密鑰中的比特位數(shù),確保查詢用戶只能檢索數(shù)據(jù)庫中所規(guī)定的條目(項(xiàng))數(shù),從而減少了其它數(shù)據(jù)項(xiàng)泄露的風(fēng)險(xiǎn),保護(hù)了數(shù)據(jù)庫的安全性。
3、本發(fā)明通過多次執(zhí)行不經(jīng)意量子密鑰分配、多次移位異或及最終的隨機(jī)置換方法,能夠精確控制查詢用戶恰好知道不經(jīng)意密鑰中的任意1比特或任意m比特,從而擴(kuò)大了不經(jīng)意量子密鑰分配的應(yīng)用范圍,例如返回一個(gè)查詢結(jié)果的最近隱私查詢,返回多個(gè)(任意m個(gè))查詢結(jié)果的近鄰隱私查詢。
附圖說明
圖1為本發(fā)明數(shù)據(jù)服務(wù)中心s向查詢用戶u精確分配1位不經(jīng)意密鑰的后處理示意圖;
圖2為本發(fā)明數(shù)據(jù)服務(wù)中心s向查詢用戶u精確分配m(m>1)位不經(jīng)意密鑰時(shí)的拼接示意圖;
圖3為本發(fā)明數(shù)據(jù)服務(wù)中心s向查詢用戶u精確分配m(m>1)位不經(jīng)意密鑰時(shí)的隨機(jī)置換示意圖。
具體實(shí)施方式
下面對(duì)本發(fā)明技術(shù)方案進(jìn)行詳細(xì)說明,但是本發(fā)明的保護(hù)范圍不局限于所述實(shí)施例。
本實(shí)施例中,一種不經(jīng)意量子密鑰分配的后處理方法,是在數(shù)據(jù)庫查詢服務(wù)中,存在一個(gè)數(shù)據(jù)服務(wù)中心s和一個(gè)查詢用戶u,數(shù)據(jù)服務(wù)中心s向所述查詢用戶u分配一個(gè)n位不經(jīng)意密鑰k,其中,數(shù)據(jù)服務(wù)中心s知道不經(jīng)意密鑰k中所有的n比特,而查詢用戶u僅知道不經(jīng)意密鑰k的任意m比特,1≤m≤n,且數(shù)據(jù)服務(wù)中心s不知道查詢用戶u具體m比特的位置;該后處理方法是按如下步驟進(jìn)行:
步驟1:判斷m=1是否成立,若成立,則執(zhí)行步驟2;否則,執(zhí)行步驟4;
通常n為一個(gè)較大的整數(shù),而m為一個(gè)相對(duì)較小的整數(shù)。本實(shí)施例中,為方便起見,令m=2,n=8,并進(jìn)入步驟4。
步驟2:數(shù)據(jù)服務(wù)中心s和查詢用戶u之間進(jìn)行n次不經(jīng)意量子密鑰分配,從而建立n個(gè)n位的預(yù)處理不經(jīng)意密鑰{k1,k2,…,ki,…kn},ki表示任意第i個(gè)n位的預(yù)處理不經(jīng)意密鑰,i=1,2,...,n;
在實(shí)際應(yīng)用中,n一般為一個(gè)較大的整數(shù),而n為一個(gè)相對(duì)較小的整數(shù)。本實(shí)施例中,不失一般性,令n=2,n=8。
步驟2.1:查詢用戶u事先生成一個(gè)秘密的正整數(shù)x,即查詢用戶u想知道最終n位的不經(jīng)意密鑰中的第x位密鑰;1≤x≤n;
本實(shí)施例中,假設(shè)x=7,即查詢用戶u想知道最終8位的不經(jīng)意密鑰中的第7位密鑰。
步驟2.2:初始化i=1;
步驟2.3:數(shù)據(jù)服務(wù)中心s利用不經(jīng)意量子密鑰分配方法生成第i個(gè)長度為n的原始不經(jīng)意密鑰roki,其中,數(shù)據(jù)服務(wù)中心s知道第i個(gè)原始不經(jīng)意密鑰roki所有的n比特,而查詢用戶u僅知道第i個(gè)原始不經(jīng)意密鑰roki中的若干比特;并將所述若干比特中的一個(gè)已知位的下標(biāo)記為j,1≤j≤n;
步驟2.4:查詢用戶u利用式(1)計(jì)算第i輪位移量si并發(fā)送給數(shù)據(jù)服務(wù)中心s:
si=j(luò)-x(1)
步驟2.5:數(shù)據(jù)服務(wù)中心s根據(jù)第i輪位移量si對(duì)第i個(gè)原始不經(jīng)意密鑰roki進(jìn)行移位,使得數(shù)據(jù)服務(wù)中心s和查詢用戶u之間共享第i個(gè)n位的預(yù)處理不經(jīng)意密鑰ki;
其中si<0,右移;si>0,左移動(dòng);si=0,不移動(dòng)。
步驟2.6:將i+1賦值給i,并判斷i>n是否成立,若成立,則執(zhí)行步驟3,否則返回步驟2.3;
本實(shí)施例中,n=2,即循環(huán)執(zhí)行2次不經(jīng)意量子密鑰分配,生成2個(gè)原始不經(jīng)意密鑰。如圖1所示,查詢用戶u記rok1中的j=6,rok2中的j=4,計(jì)算得s1=-1,s2=-3并發(fā)送給數(shù)據(jù)服務(wù)中心s,經(jīng)移位后數(shù)據(jù)服務(wù)中心s和查詢用戶u之間共享k1和k2。
步驟3:數(shù)據(jù)服務(wù)中心s利用式(2)計(jì)算n位不經(jīng)意密鑰k:
查詢用戶u利用式(3)得到密鑰位k(x):
式(3)中,k(x)是n位不經(jīng)意密鑰k的第x位,ki(x)是第i個(gè)n位的預(yù)處理不經(jīng)意密鑰ki的第x位;
如圖1下部分所示,
步驟4:初始化變量t=1;
步驟5:判斷t<m是否成立,若成立,則將
本實(shí)施例中,m=2,n=8,計(jì)算
步驟6:令t+1賦值給t后,返回步驟5;
由于本例中m=2,故執(zhí)行一次步驟5后進(jìn)入步驟7。
步驟7:將
計(jì)算
步驟8、將m個(gè)不經(jīng)意密鑰{k1′,k2′,…,kt′,…k′m}按序拼接起來,從而組成一個(gè)n位的不經(jīng)意密鑰k;
如圖2所示,將2個(gè)不經(jīng)意密鑰{k1′,k2′}按序拼接形成一個(gè)8位的不經(jīng)意密鑰k。
步驟9:所述查詢用戶u隨機(jī)生成一種置換函數(shù)π(·),并公開給所述數(shù)據(jù)服務(wù)中心s;
步驟10、所述查詢用戶u和所述數(shù)據(jù)服務(wù)中心s分別利用式(4)對(duì)所述n位的不經(jīng)意密鑰k進(jìn)行置換,得到置換后的n位不經(jīng)意密鑰k*:
k*=π(k)(4)
從而使得所述數(shù)據(jù)服務(wù)中心s知道所述置換后的n位不經(jīng)意密鑰k*中所有的n比特,而所述查詢用戶u僅知道所述置換后的n位不經(jīng)意密鑰k*中的m比特,且所述數(shù)據(jù)服務(wù)中心s不知道所述查詢用戶u具體m比特的位置。
本實(shí)施例中,數(shù)據(jù)服務(wù)中心s和查詢用戶u的隨機(jī)置換π(·)如圖3所示,這么做的目的是為了打亂查詢用戶u的已知m比特的下標(biāo)次序,進(jìn)一步確保用戶的隱私。