本發(fā)明屬于網(wǎng)絡(luò)空間安全技術(shù)領(lǐng)域,具體涉及標(biāo)準(zhǔn)模型下格上云存儲(chǔ)密文數(shù)據(jù)公鑰可搜索加密方法。
背景技術(shù):
隨著云存儲(chǔ)技術(shù)的迅速發(fā)展,現(xiàn)在越來越多的用戶將數(shù)據(jù)存儲(chǔ)到云服務(wù)器。這樣,用戶享有高質(zhì)量的數(shù)據(jù)存儲(chǔ)服務(wù),極大地降低了用戶的計(jì)算開銷以及維護(hù)數(shù)據(jù)的成本開銷。為了安全存儲(chǔ)外包數(shù)據(jù)在不可信的遠(yuǎn)程云服務(wù)器,用戶的敏感數(shù)據(jù)在外包之前需要加密。然而,如何高效地搜索存儲(chǔ)在云服務(wù)器上的密文數(shù)據(jù)就成為一個(gè)棘手的問題。
利用帶關(guān)鍵詞的公鑰可搜索加密算法是一個(gè)非??尚械募夹g(shù)。Boneh等人最先提出了帶關(guān)鍵詞的公鑰可搜索加密算法。之后,Baek等首次提出在公共信道下的公鑰可搜索加密算法。在2010年,F(xiàn)ang等人再一次構(gòu)造了公共信道下的公鑰可搜索加密算法,并且與Baek等的算法相比,其效率更高。2014年Wu等人提出了指定測試者的基于身份的可搜索加密算法,該算法除了確保密文不可區(qū)分之外,還證明了算法能夠確保陷門的不可區(qū)分性。
目前,所設(shè)計(jì)的面向云計(jì)算環(huán)境應(yīng)用的公鑰可搜索加密算法并不多。而且,對(duì)于這些現(xiàn)存的云存儲(chǔ)密文數(shù)據(jù)公鑰可搜索加密算法,都是著眼于現(xiàn)今應(yīng)用比較成熟的設(shè)備,對(duì)安全性的考慮上也都基于DH問題和CDH問題等傳統(tǒng)的數(shù)學(xué)困難問題,而這些問題都容易被量子計(jì)算機(jī)輕松破解,在量子計(jì)算環(huán)境下是不安全的。此外,這些公鑰可搜素加密算法都是在標(biāo)準(zhǔn)模型下設(shè)計(jì)的,其安全性證明都要借助于隨機(jī)預(yù)言機(jī)模型,這在一定程度上不能真實(shí)反應(yīng)設(shè)計(jì)的公鑰可搜索加密算法的安全性?;诖?,目前越來越多的研究者正著眼于后量子密碼安全的公鑰可搜索加密算法的研究。因此結(jié)合格密碼與可搜索加密算法,以及傳統(tǒng)的標(biāo)準(zhǔn)模型密碼設(shè)計(jì)技術(shù),設(shè)計(jì)能夠適用于云計(jì)算環(huán)境的抗量子計(jì)算的標(biāo)準(zhǔn)模型下格上公鑰可搜索加密方法是一項(xiàng)很有意義的工作。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是,提供一種標(biāo)準(zhǔn)模型下格上云存儲(chǔ)密文數(shù)據(jù)公鑰可搜索加密方法。
本發(fā)明的技術(shù)方案為:標(biāo)準(zhǔn)模型下格上云存儲(chǔ)密文數(shù)據(jù)公鑰可搜索加密方法,其特征在于,包括以下步驟:
a.系統(tǒng)初始化:設(shè)置格密碼算法所需要的安全參數(shù),運(yùn)行陷門生成函數(shù)產(chǎn)生數(shù)據(jù)接收者和云服務(wù)器的公私鑰對(duì);同時(shí)設(shè)置向量編碼函數(shù);
b.關(guān)鍵詞密文產(chǎn)生:數(shù)據(jù)擁有者根據(jù)向量編碼函數(shù)計(jì)算與關(guān)鍵詞相關(guān)聯(lián)的公開矩陣,并根據(jù)LWE加密思想得到關(guān)鍵詞密文的第一個(gè)分量;數(shù)據(jù)擁有者選取隨機(jī)挑戰(zhàn)身份,并根據(jù)此隨機(jī)身份計(jì)算與之相關(guān)聯(lián)的公開矩陣,同樣根據(jù)LWE加密思想得到關(guān)鍵詞密文的第二個(gè)分量;將關(guān)鍵詞密文的第一個(gè)分量、關(guān)鍵詞密文的第二個(gè)分量和隨機(jī)挑戰(zhàn)身份標(biāo)識(shí)構(gòu)成關(guān)鍵詞密文發(fā)送到云服務(wù)器;
c.搜索陷門產(chǎn)生:數(shù)據(jù)接收者利用自己的私鑰,并根據(jù)已知選定的向量,利用左原像抽樣函數(shù)產(chǎn)生此向量的原像即搜索陷門,并通過安全信道發(fā)送給指定的云服務(wù)器;
d.測試匹配:指定的云服務(wù)器首先將密文拆分為關(guān)鍵詞密文的第一個(gè)分量、關(guān)鍵詞密文的第二個(gè)分量和隨機(jī)挑戰(zhàn)身份標(biāo)識(shí)三個(gè)分量,利用數(shù)據(jù)接收者發(fā)送的搜索陷門從關(guān)鍵詞密文的第一個(gè)分量中計(jì)算校驗(yàn)比特,同時(shí)根據(jù)隨機(jī)挑戰(zhàn)身份標(biāo)識(shí),利用左原像抽樣函數(shù)導(dǎo)出與隨機(jī)身份關(guān)聯(lián)的公開矩陣對(duì)應(yīng)的秘密向量,據(jù)此再從關(guān)鍵詞密文的第二個(gè)分量中計(jì)算另一個(gè)校驗(yàn)比特,并在整數(shù)范圍內(nèi)將這兩個(gè)校驗(yàn)比特與相比對(duì);如果它們足夠接近,則輸出比特為1,表示測試正確,指定的云服務(wù)器返回?cái)?shù)據(jù)接收者想搜索的與關(guān)鍵詞相關(guān)聯(lián)密文信息;否則,測試出錯(cuò),無返回直接結(jié)束。
進(jìn)一步的,所述步驟a的具體方法為:
a1.設(shè)置格密碼算法所需要的安全參數(shù):設(shè)安全參數(shù)n,設(shè)置素?cái)?shù)q=poly(n),整數(shù)m≥2nlogq,設(shè)置為離散高斯噪聲分布;同時(shí)為了左原像抽樣函數(shù)SampleLeft能夠正確運(yùn)行,設(shè)置安全的高斯參數(shù)δ;
a2.運(yùn)行陷門生成函數(shù)產(chǎn)生數(shù)據(jù)接收者和云服務(wù)器的公私鑰對(duì):運(yùn)行陷門產(chǎn)生函數(shù)TrapGen(q,n)產(chǎn)生均勻隨機(jī)的n×m矩陣對(duì)應(yīng)的格格基為再次運(yùn)行陷門產(chǎn)生函數(shù)TrapGen(q,n)產(chǎn)生均勻隨機(jī)的n×m矩陣對(duì)應(yīng)的格格基為
a3.設(shè)置向量編碼函數(shù):選擇兩個(gè)均勻隨機(jī)的n×m矩陣A1、B1,同時(shí)選擇兩個(gè)均勻隨機(jī)的n維矩陣向量則得到向量編碼函數(shù)為H:
a4.構(gòu)建系統(tǒng)公共參數(shù)為PP=(Ac,Ar,A1,B1,v1,v2,H),秘密參數(shù)
更進(jìn)一步的,所述步驟b的具體方法為:
輸入系統(tǒng)公共參數(shù)PP,關(guān)鍵詞
b1.計(jì)算關(guān)鍵詞密文的第一個(gè)分量:
b11.利用向量編碼函數(shù)H計(jì)算與關(guān)鍵詞關(guān)聯(lián)的公開矩陣得:選取隨機(jī)比特b∈{0,1},同時(shí)選取均勻隨機(jī)的n維向量選取均勻隨機(jī)的m×m矩陣R←{-1,1}m×m;
b12.根據(jù)離散高斯噪聲分布選取噪聲e1,e2←Zq,根據(jù)離散高斯噪聲分布選取兩個(gè)m維噪聲向量同時(shí)計(jì)算m維向量m維
b13.得到關(guān)鍵詞密文的第一個(gè)分量:
b2.計(jì)算關(guān)鍵詞密文的第二個(gè)分量:
選取隨機(jī)身份標(biāo)識(shí)計(jì)算與隨機(jī)身份關(guān)聯(lián)的公開矩陣得到關(guān)鍵詞密文的第二個(gè)分量:
b3.數(shù)據(jù)擁有者發(fā)送關(guān)鍵詞的密文CT={CT1,CT2,id}給云服務(wù)器。
更進(jìn)一步的,所述步驟c的具體方法為:
數(shù)據(jù)接收者選取關(guān)鍵詞產(chǎn)生相應(yīng)的搜索陷門如下:
計(jì)算矩陣運(yùn)行左抽樣原像函數(shù)并從離散高斯噪聲分布中輸出原像根據(jù)向量編碼函數(shù)H與關(guān)鍵詞關(guān)聯(lián)的公開矩陣可得于是
據(jù)接收者將通過安全信道發(fā)送給指定的云服務(wù)器。
再進(jìn)一步的,所述步驟d的具體方法為:
指定的云服務(wù)器首先將密文數(shù)據(jù)CT拆分為CT1,CT2,id,并執(zhí)行:
d1.采用數(shù)據(jù)接收者發(fā)送的搜索陷門從關(guān)鍵詞密文的第一個(gè)分量中計(jì)算校驗(yàn)比特:計(jì)算在整數(shù)范圍內(nèi)比對(duì)b′與如果它們足夠接近,即整數(shù)范圍內(nèi)測試結(jié)果輸出為1,否則輸出為0;
d2.利用隨機(jī)身份標(biāo)識(shí)id,云服務(wù)器利用在離散高斯噪聲分布中產(chǎn)生根據(jù)向量編碼函數(shù)H與關(guān)鍵詞關(guān)聯(lián)的公開矩陣得到于是最后,云服務(wù)器計(jì)算在整數(shù)范圍內(nèi)比對(duì)b″和如果它們足夠接近,即整數(shù)范圍內(nèi)測試結(jié)果輸出為1,否則輸出為0;
d3.云服務(wù)器驗(yàn)證是否b′與b″相等,如果相等,則返回測試正確,否則,測試錯(cuò)誤。
本發(fā)明的有益效果為,本發(fā)明提供了具有隱私保護(hù)的格上云存儲(chǔ)密文數(shù)據(jù)公鑰可搜索加密方法,屬于網(wǎng)絡(luò)空間全領(lǐng)域,解決了量子計(jì)算環(huán)境下云存儲(chǔ)密文數(shù)據(jù)搜索的問題;此方法是在標(biāo)準(zhǔn)模型下設(shè)計(jì)的密碼算法,不需要隨機(jī)預(yù)言機(jī),使其更加真實(shí)地反應(yīng)設(shè)計(jì)的公鑰可搜索加密方法的安全性,同時(shí)能夠有效抵抗量子計(jì)算機(jī)攻擊。
具體實(shí)施方式
下面詳細(xì)描述本發(fā)明的技術(shù)方案:
系統(tǒng)初始階段:系統(tǒng)首先設(shè)置格密碼算法所需要的安全參數(shù),運(yùn)行陷門生成函數(shù)產(chǎn)生數(shù)據(jù)接收者和云服務(wù)器的公私鑰對(duì)。系統(tǒng)再隨機(jī)選取均勻隨機(jī)的兩個(gè)n×m矩陣和兩個(gè)n維向量:設(shè)置一個(gè)特殊的向量編碼函數(shù)。
關(guān)鍵詞密文產(chǎn)生階段:數(shù)據(jù)擁有者計(jì)算與關(guān)鍵詞相關(guān)聯(lián)的公開矩陣,并根據(jù)LWE加密思想得到關(guān)鍵詞密文的第一個(gè)分量;數(shù)據(jù)擁有者選取隨機(jī)挑戰(zhàn)身份,并根據(jù)此隨機(jī)身份計(jì)算與之相關(guān)聯(lián)的公開矩陣,同樣根據(jù)LWE加密思想得到關(guān)鍵詞密文的第二個(gè)分量。
搜索陷門產(chǎn)生階段:數(shù)據(jù)接收者利用自己的私鑰,并根據(jù)已知選定的向量,利用左原像抽樣函數(shù)產(chǎn)生此向量的原像即搜索陷門,并通過安全信道發(fā)送給指定的云服務(wù)器。
測試匹配階段:指定的云服務(wù)器首先將密文拆分為三個(gè)分量,利用數(shù)據(jù)接收者發(fā)送的搜索陷門從第一個(gè)密文分量中計(jì)算校驗(yàn)比特,同時(shí)根據(jù)隨機(jī)身份標(biāo)識(shí),利用左原像抽樣函數(shù)導(dǎo)出與隨機(jī)身份關(guān)聯(lián)的公開矩陣對(duì)應(yīng)的秘密向量,據(jù)此再從第二個(gè)密文分量中計(jì)算另一個(gè)校驗(yàn)比特,并在整數(shù)范圍內(nèi)將這兩個(gè)校驗(yàn)比特與相比對(duì)。如果它們足夠接近,則輸出比特為1,測試正確,指定的云服務(wù)器返回?cái)?shù)據(jù)接收者想搜索的與關(guān)鍵詞相關(guān)聯(lián)密文信息。否則,測試出錯(cuò),無返回。
以下給出一個(gè)具體實(shí)例說明:
實(shí)施中用到的符號(hào)說明見下表:
標(biāo)準(zhǔn)模型下格上云存儲(chǔ)密文數(shù)據(jù)公鑰可搜索加密方法。該公鑰可搜索加密方法包括以下基本步驟:Setup,PEKS,Trapdoor,Test。
Setup:包括以下四個(gè)子步驟:
(1)對(duì)于安全參數(shù)n,設(shè)置素?cái)?shù)q=poly(n),整數(shù)m≥2nlogq,設(shè)置為離散高斯噪聲分布。為了左原像抽樣函數(shù)SampleLeft能夠正確運(yùn)行,系統(tǒng)設(shè)置安全的高斯參數(shù)δ。
(2)運(yùn)行陷門產(chǎn)生函數(shù)TrapGen(q,n)產(chǎn)生均勻隨機(jī)的n×m矩陣它對(duì)應(yīng)的格格基為同樣運(yùn)行TrapGen(q,n)產(chǎn)生均勻隨機(jī)的n×m矩陣對(duì)應(yīng)的格格基為
(3)選擇兩個(gè)兩個(gè)均勻隨機(jī)的n×m矩陣A1,B1。同時(shí)選擇兩個(gè)均勻隨機(jī)的n維矩陣向量設(shè)置特殊的向量編碼函數(shù),具體為H:
(4)系統(tǒng)分別輸出公共參數(shù)PP=(Ac,Ar,A1,B1,v1,v2,H),秘密參數(shù)
PEKS:輸入系統(tǒng)公共參數(shù)PP,關(guān)鍵詞數(shù)據(jù)擁有者產(chǎn)生關(guān)鍵詞的密文如下:
(1)利用特殊的向量編碼函數(shù)H計(jì)算與關(guān)鍵詞關(guān)聯(lián)的公開矩陣選取隨機(jī)比特b∈{0,1},同時(shí)選取均勻隨機(jī)的n維向量選取均勻隨機(jī)的m×m矩陣R←{-1,1}m×m。
(2)根據(jù)離散高斯噪聲分布選取噪聲e1,e2←Zq,根據(jù)離散高斯噪聲分布選取兩個(gè)m維噪聲向量同時(shí)計(jì)算m維向量m維
(3)計(jì)算關(guān)鍵詞密文的第一個(gè)分量:
(4)選取隨機(jī)身份標(biāo)識(shí)計(jì)算與隨機(jī)身份關(guān)聯(lián)的公開矩陣并計(jì)算關(guān)鍵詞密文的第二個(gè)分量
(5)數(shù)據(jù)擁有者發(fā)送關(guān)鍵詞的密文CT={CT1,CT2,id}給云服務(wù)器。
Trapdoor:數(shù)據(jù)接收者選取關(guān)鍵詞產(chǎn)生相應(yīng)的搜索陷門如下:
(1)計(jì)算矩陣運(yùn)行左抽樣原像函數(shù)并從離散高斯噪聲分布中輸出原像注意到于是
(2)數(shù)據(jù)接收者將通過安全信道發(fā)送給指定的云服務(wù)器。
Test:指定的云服務(wù)器首先將密文數(shù)據(jù)CT拆分為CT1,CT2,id,并執(zhí)行以下步驟:
(1)計(jì)算在整數(shù)范圍內(nèi)比對(duì)b′與如果它們足夠接近,即整數(shù)范圍內(nèi)測試結(jié)果輸出為1,否則輸出為0。
(2)利用隨機(jī)身份標(biāo)識(shí)id,云服務(wù)器利用在離散高斯噪聲分布中產(chǎn)生注意到于是最后,云服務(wù)器計(jì)算在整數(shù)范圍內(nèi)比對(duì)b″和如果它們足夠接近,即整數(shù)范圍內(nèi)測試結(jié)果輸出為1,否則輸出為0。
(3)云服務(wù)器驗(yàn)證是否b′與b″相等,如果相等,則返回測試正確,否則,測試錯(cuò)誤。
該標(biāo)準(zhǔn)模型下格上公鑰可搜索加密方法的正確性推導(dǎo)如下:
利用陷門Tw′,指定的云服務(wù)器能夠計(jì)算利用自己的解密私鑰云服務(wù)器能夠利用左原像抽樣函數(shù)得到這樣,云服務(wù)器能夠計(jì)算由于式子和都是噪聲向量,為了解密正確,需要確保這兩個(gè)噪聲上界不超過q/5。一旦被正確解密后,云服務(wù)器從分量CT1中得到b′=b,以及從CT2,id中得到b″=b,于是此指定的云服務(wù)器能夠驗(yàn)證b′=b",因此云服務(wù)器相信密文CT=(CT1,CT2,id)與數(shù)據(jù)接收者提供的搜索陷門Tw′是一致的,即數(shù)據(jù)接收者選取的關(guān)鍵詞與數(shù)據(jù)擁有者產(chǎn)生的密文對(duì)應(yīng)的關(guān)鍵詞一致。
該標(biāo)準(zhǔn)模型下格上公鑰可搜索加密方法的正確性推導(dǎo)如下:
利用陷門Tw′,指定的云服務(wù)器能夠計(jì)算利用自己的解密私鑰云服務(wù)器能夠利用左原像抽樣函數(shù)得到這樣,云服務(wù)器能夠計(jì)算由于式子和都是噪聲向量,為了解密正確,需要確保這兩個(gè)噪聲上界不超過q/5。一旦被正確解密后,云服務(wù)器從分量CT1中得到b′=b,以及從CT2,id中得到b″=b,于是此指定的云服務(wù)器能夠驗(yàn)證b′=b",因此云服務(wù)器相信密文CT=(CT1,CT2,id)與數(shù)據(jù)接收者提供的搜索陷門Tw′是一致的,即數(shù)據(jù)接收者選取的關(guān)鍵詞與數(shù)據(jù)擁有者產(chǎn)生的密文對(duì)應(yīng)的關(guān)鍵詞一致。
本發(fā)明提供格上云存儲(chǔ)密文數(shù)據(jù)公鑰可搜索加密方法。該公鑰可搜索加密方法在標(biāo)準(zhǔn)模型下設(shè)計(jì)的密碼算法,不需要隨機(jī)預(yù)言機(jī),使其更加真實(shí)地反應(yīng)設(shè)計(jì)的公鑰可搜索加密方法的安全性,同時(shí)設(shè)計(jì)的密碼算法基于LWE困難問題假設(shè),能夠有效抵抗量子計(jì)算機(jī)攻擊。該發(fā)明方法需要指定唯一的云服務(wù)器來進(jìn)行測試和返回相應(yīng)搜索結(jié)果,使得任意惡意服務(wù)器都不能執(zhí)行搜索測試操作,這樣在一定程度上避免了惡意服務(wù)器的攻擊。而且算法能夠確保密文的不可區(qū)分性。此外,該發(fā)明方法在產(chǎn)生關(guān)鍵詞密文階段只需要計(jì)算有限的線性代數(shù)運(yùn)算,并不需要計(jì)算開銷較大的模指數(shù)運(yùn)算和雙線性對(duì)運(yùn)算,這在后量子通信環(huán)境中具有很大的實(shí)際應(yīng)用價(jià)值。