本發(fā)明涉及信息安全技術(shù)領(lǐng)域,特別是指一種基于5g通信標(biāo)準(zhǔn)的密文數(shù)據(jù)搜索方法。
背景技術(shù):
第五代(5g)移動(dòng)通信技術(shù)的提出吸引了大眾的注意力,隨后多個(gè)國家加速了對5g技術(shù)的研究,5g包含多種技術(shù),因此相應(yīng)的也需要采取多種安全機(jī)制,特別是多種網(wǎng)絡(luò)的共存產(chǎn)生的網(wǎng)絡(luò)融合也帶來了諸多需要解決的問題,包括5g通信標(biāo)準(zhǔn)下的密文數(shù)據(jù)安全搜索。5g是一種全新的技術(shù),是特指傳輸速率達(dá)到10gb/s的新一代移動(dòng)通信技術(shù),相比于4g技術(shù),5g技術(shù)有更多的創(chuàng)新,4g是對3g網(wǎng)絡(luò)技術(shù)的擴(kuò)展,提高了網(wǎng)絡(luò)帶寬的利用率,增強(qiáng)了網(wǎng)絡(luò)傳輸速率,4g網(wǎng)絡(luò)是以通信設(shè)備為核心的格局,5g是以功能為核心的網(wǎng)絡(luò),并結(jié)合了網(wǎng)絡(luò)功能虛擬化、定義網(wǎng)絡(luò)等關(guān)鍵技術(shù),體現(xiàn)出了高靈活性和高動(dòng)態(tài)擴(kuò)展等特性,由此發(fā)展而來的5g標(biāo)準(zhǔn)下的數(shù)據(jù)安全搜索就是其特性之一,在搜索5g通信標(biāo)準(zhǔn)下的數(shù)據(jù)時(shí)有多個(gè)安全隱患需要考慮,例如:
第一、數(shù)據(jù)傳輸安全,數(shù)據(jù)傳輸安全是指客戶端與數(shù)據(jù)接收端之間通信前后的數(shù)據(jù)一致性和隱秘性,現(xiàn)有的數(shù)據(jù)通信方式多半是以超文本傳輸協(xié)議(hypertexttransferprotocol,http)、文件傳輸協(xié)議(filetransferprotocol,ftp)、遠(yuǎn)程登錄(telnet)等,為了保證數(shù)據(jù)在傳輸過程中不被非法用戶竊取和篡改,可以通過增加安全套接層(securesocketslayer,ssl)數(shù)字證書來提供對傳輸數(shù)據(jù)的加密、服務(wù)器認(rèn)證、消息完整性校驗(yàn)等方式來保證數(shù)據(jù)的安全。
第二、信道安全,即信道中的數(shù)據(jù)是否安全,保護(hù)機(jī)密的數(shù)據(jù),確保數(shù)據(jù)的完整性,防止數(shù)據(jù)被破壞或丟失,信道中存在著各種各樣的漏洞,非法用戶可以基于此對其發(fā)起攻擊,從而導(dǎo)致信息的泄露,通常的安全措施是在系統(tǒng)中增加加密模塊,多重身份驗(yàn)證來保障數(shù)據(jù)的相對安全。
現(xiàn)有技術(shù)中,在搜索5g通信標(biāo)準(zhǔn)下的數(shù)據(jù),針對每次搜索,會(huì)想用戶客戶端返回全部的搜索結(jié)果,導(dǎo)致用戶客戶端與服務(wù)端之間的通信開銷大。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是提供一種基于5g通信標(biāo)準(zhǔn)的密文數(shù)據(jù)搜索方法,以解決現(xiàn)有技術(shù)所存在的用戶客戶端與服務(wù)端之間的通信開銷大的問題。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供一種基于5g通信標(biāo)準(zhǔn)的密文數(shù)據(jù)搜索方法,包括:
在數(shù)據(jù)提供者客戶端建立文檔與關(guān)鍵詞的正向索引,對建立的正向索引進(jìn)行加密得到加密后的正向索引文件,并對文檔明文進(jìn)行逐行加密,得到密文集合,其中,所述正向索引的索引項(xiàng)包括:文檔編號、關(guān)鍵詞、關(guān)鍵詞位置信息、關(guān)鍵詞與文檔的相關(guān)度;
將加密得到的正向索引文件和密文集合上傳至服務(wù)端;
在服務(wù)端,根據(jù)接收到的正向索引文件,創(chuàng)建密文形式的倒排索引表;
在服務(wù)端,接收用戶上傳的查詢陷門,其中,所述查詢陷門包括:關(guān)鍵詞陷門和文檔編號解密密鑰;
判斷倒排索引表是否有與關(guān)鍵詞陷門一致的索引項(xiàng),若有,則以文檔編號解密密鑰對文檔編號密文進(jìn)行解密,根據(jù)解密結(jié)果,密文集合中的文檔按照關(guān)鍵詞與文檔的相關(guān)度從大到小進(jìn)行排序,結(jié)合關(guān)鍵詞位置信息,向用戶客戶端返回關(guān)鍵詞與文檔的相關(guān)度排名前k的文檔摘要密文和相應(yīng)的文檔編號密文;
在用戶客戶端對文檔摘要密文進(jìn)行逐行解密,根據(jù)解密得到的摘要明文,選中至少一個(gè)文檔編號密文發(fā)送至服務(wù)端,服務(wù)端返回相應(yīng)的文檔密文至用戶客戶端;
在用戶客戶端,對服務(wù)端返回的文檔密文進(jìn)行解密。
進(jìn)一步地,所述對建立的正向索引進(jìn)行加密得到加密后的正向索引文件,并對文檔明文進(jìn)行逐行加密,得到密文集合包括:
生成密鑰x、y、k;
利用密鑰x結(jié)合第一加密算法對關(guān)鍵詞wi進(jìn)行加密,生成c(wi);
采用保序加密算法對關(guān)鍵詞與文檔的相關(guān)度si,j進(jìn)行加密,生成c(si,j),其中,i代表關(guān)鍵詞的下標(biāo),j代表文檔的下標(biāo);
利用第二加密算法,結(jié)合密鑰y、關(guān)鍵詞wi、生成fy(wi),再以fy(wi)作為密鑰結(jié)合安全對稱加密算法對文檔編號idj、關(guān)鍵詞位置信息loci,j、c(si,j)的拼接字符串進(jìn)行加密,得到c(idj+loci,j+c(si,j));
根據(jù)c(wi)和c(idj+loci,j+c(si,j)),生成正向索引文件,其中,正向索引文件中的每一個(gè)正向索引項(xiàng)包括:c(wi)和c(idj+loci,j+c(si,j));
利用密鑰k對文檔明文進(jìn)行逐行加密,得到密文集合。
進(jìn)一步地,所述生成密鑰x、y、k包括:
利用隨機(jī)函數(shù)和隨機(jī)種子生成隨機(jī)字符串x1、y1、k1;
將x1作為輸入結(jié)合哈希函數(shù)sha-1生成密鑰x;
將y1、k1作為輸入結(jié)合哈希函數(shù)sha-256生成密鑰y、k,其中,y為256位密鑰,k為256位密鑰。
進(jìn)一步地,所述在服務(wù)端,根據(jù)接收到的正向索引文件,創(chuàng)建密文形式的倒排索引表包括:
在服務(wù)端上,使用mapreduce并行計(jì)算模型對正向索引文件中的數(shù)據(jù)進(jìn)行整合,通過map函數(shù)接收<c(idj+loci,j+c(si,j)),c(wi)>形式的輸入,產(chǎn)生<c(wi),c(idj+loci,j+c(si,j))>形式的中間輸出;
通過reduce函數(shù)以中間輸出作為輸入,產(chǎn)生<c(wi),list(c(idj+loci,j+c(si,j)))>形式的輸出;
匯總reduce函數(shù)的輸出結(jié)果,得到倒排索引表,倒排索引表中的數(shù)據(jù)均為密文形式;
其中,<c(wi),list(c(idj+loci,j+c(si,j)))>中l(wèi)ist(·)表示相同關(guān)鍵詞下不同索引項(xiàng)之集合。
進(jìn)一步地,所述在服務(wù)端,接收用戶上傳的查詢陷門之前,所述方法還包括:
在用戶客戶端,接收用戶提交的關(guān)鍵詞wi;
利用密鑰x結(jié)合第一加密算法對關(guān)鍵詞wi進(jìn)行加密,生成關(guān)鍵詞陷門c(wi);
利用第二加密算法,結(jié)合密鑰y、關(guān)鍵詞wi、生成文檔編號解密密鑰fy(wi);
根據(jù)生成的關(guān)鍵詞陷門c(wi)和文檔編號解密密鑰fy(wi),得到查詢陷門t={c(wi),fy(wi)}。
進(jìn)一步地,所述判斷倒排索引表是否有與關(guān)鍵詞陷門一致的索引項(xiàng),若有,則以文檔編號解密密鑰對文檔編號密文進(jìn)行解密,根據(jù)解密結(jié)果,密文集合中的文檔按照關(guān)鍵詞與文檔的相關(guān)度從大到小進(jìn)行排序,結(jié)合關(guān)鍵詞位置信息,向用戶客戶端返回關(guān)鍵詞與文檔的相關(guān)度排名前k的文檔摘要密文和相應(yīng)的文檔編號密文包括:
在服務(wù)端,將t={c(wi),fy(wi)}解析成t=(τ1,τ2),其中τ1=c(wi),τ2=fy(wi);
判斷倒排索引表中是否有與τ1一致的索引項(xiàng);
若有,則以τ2作為解密密鑰進(jìn)行解密,得到文檔編號密文對應(yīng)的明文idj,其中,每一個(gè)解密之后的文檔編號都對應(yīng)著關(guān)鍵詞與該文檔的相關(guān)度c(si,j);
密文集合中的文檔根據(jù)關(guān)鍵詞與文檔的相關(guān)度c(si,j)從大到小進(jìn)行排序,得到經(jīng)過排序的文檔;
根據(jù)排序后的文檔,服務(wù)端將關(guān)鍵詞與文檔的相關(guān)度排名前k的文檔摘要密文發(fā)送至用戶客戶端。
進(jìn)一步地,所述根據(jù)排序后的文檔,服務(wù)端將關(guān)鍵詞與文檔的相關(guān)度排名前k的文檔摘要密文發(fā)送至用戶客戶端包括:
在服務(wù)端對關(guān)鍵詞位置信息loci,j進(jìn)行解密,并遍歷相應(yīng)的文檔,根據(jù)解密出來的行號將相應(yīng)的行密文取出,作為文檔摘要密文;
將文檔編號密文c(idj+loci,j+c(si,j))、相應(yīng)的文檔摘要密文返回至用戶客戶端。
進(jìn)一步地,所述在用戶客戶端對文檔摘要密文進(jìn)行逐行解密,根據(jù)解密得到的摘要明文,選中至少一個(gè)文檔編號密文發(fā)送至服務(wù)端,服務(wù)端返回相應(yīng)的文檔密文至用戶客戶端包括:
在用戶客戶端對文檔摘要密文進(jìn)行逐行解密,得到多條文檔摘要明文<idj,r(wi,j,n)>,其中,idj表示編號為j的文檔編號,r(wi,j,n)表示編號為i的關(guān)鍵詞、出現(xiàn)在編號為j的文檔的第n行;
根據(jù)解密得到的多條文檔摘要明文,選中至少一個(gè)文檔編號密文發(fā)送至服務(wù)端;
服務(wù)端利用密鑰fy(wi)對接收到的所述至少一個(gè)文檔編號密文進(jìn)行解密,根據(jù)解密結(jié)果,返回相應(yīng)的文檔密文至用戶客戶端。
進(jìn)一步地,所述在用戶客戶端,對服務(wù)端返回的文檔密文進(jìn)行解密包括:
在用戶客戶端,利用密鑰k對服務(wù)端返回的文檔密文進(jìn)行解密。
進(jìn)一步地,所述在用戶客戶端,對服務(wù)端返回的文檔密文進(jìn)行解密之后還包括:
若解密得到的文檔明文符合用戶的需求,則結(jié)束本次搜索;
若解密得到的文檔明文不符合用戶的需求,則再次向服務(wù)端發(fā)出選中的文檔編號密文。
本發(fā)明的上述技術(shù)方案的有益效果如下:
上述方案中,在數(shù)據(jù)提供者客戶端建立文檔與關(guān)鍵詞的正向索引,對建立的正向索引進(jìn)行加密得到加密后的正向索引文件,并將加密后的正向索引文件發(fā)送至服務(wù)端;服務(wù)端根據(jù)接收到的正向索引文件,創(chuàng)建密文形式的倒排索引表,從而通過利用服務(wù)端的計(jì)算能力減少了數(shù)據(jù)提供者客戶端的計(jì)算開銷;并結(jié)合關(guān)鍵詞在文檔中的位置信息,使得用戶在執(zhí)行查詢請求時(shí),服務(wù)端首先僅會(huì)返回符合用戶預(yù)查結(jié)果的前k個(gè)結(jié)果的摘要信息及和相應(yīng)的文檔編號密文,而不是全部結(jié)果的全部文檔密文,從而能夠大幅減少用戶客戶端與服務(wù)端之間的通信開銷。
附圖說明
圖1為本發(fā)明實(shí)施例提供的基于5g通信標(biāo)準(zhǔn)的密文數(shù)據(jù)搜索方法的流程示意圖;
圖2為本發(fā)明實(shí)施例提供的基于5g通信標(biāo)準(zhǔn)的密文數(shù)據(jù)搜索系統(tǒng)的結(jié)構(gòu)示意圖;
圖3為本發(fā)明實(shí)施例提供的基于5g通信標(biāo)準(zhǔn)的密文數(shù)據(jù)搜索方法的詳細(xì)流程示意圖;
圖4為本發(fā)明實(shí)施例提供的正向索引的明文結(jié)構(gòu)示意圖;
圖5為本發(fā)明實(shí)施例提供的生成密鑰的流程示意圖;
圖6為本發(fā)明實(shí)施例提供的正向索引中索引項(xiàng)的加密流程示意圖;
圖7為本發(fā)明實(shí)施例提供的正向索引密文結(jié)構(gòu)示意圖;
圖8為本發(fā)明實(shí)施例提供的倒排索引表結(jié)構(gòu)示意圖;
圖9為本發(fā)明實(shí)施例提供的索引查詢流程示意圖。
具體實(shí)施方式
為使本發(fā)明要解決的技術(shù)問題、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例進(jìn)行詳細(xì)描述。
本發(fā)明針對現(xiàn)有的用戶客戶端與服務(wù)端之間的通信開銷大的問題,提供一種基于5g通信標(biāo)準(zhǔn)的密文數(shù)據(jù)搜索方法。
參看圖1所示,本發(fā)明實(shí)施例提供的基于5g通信標(biāo)準(zhǔn)的密文數(shù)據(jù)搜索方法,包括:
步驟101,在數(shù)據(jù)提供者客戶端建立文檔與關(guān)鍵詞的正向索引,對建立的正向索引進(jìn)行加密得到加密后的正向索引文件,并對文檔明文進(jìn)行逐行加密,得到密文集合,其中,所述正向索引的索引項(xiàng)包括:文檔編號、關(guān)鍵詞、關(guān)鍵詞位置信息、關(guān)鍵詞與文檔的相關(guān)度;
步驟102,將加密得到的正向索引文件和密文集合上傳至服務(wù)端;
步驟103,在服務(wù)端,根據(jù)接收到的正向索引文件,創(chuàng)建密文形式的倒排索引表;
步驟104,在服務(wù)端,接收用戶上傳的查詢陷門,其中,所述查詢陷門包括:關(guān)鍵詞陷門和文檔編號解密密鑰;
步驟105,判斷倒排索引表是否有與關(guān)鍵詞陷門一致的索引項(xiàng),若有,則以文檔編號解密密鑰對文檔編號密文進(jìn)行解密,根據(jù)解密結(jié)果,密文集合中的文檔按照關(guān)鍵詞與文檔的相關(guān)度從大到小進(jìn)行排序,結(jié)合關(guān)鍵詞位置信息,向用戶客戶端返回關(guān)鍵詞與文檔的相關(guān)度排名前k的文檔摘要密文和相應(yīng)的文檔編號密文;
步驟106,在用戶客戶端對文檔摘要密文進(jìn)行逐行解密,根據(jù)解密得到的摘要明文,選中至少一個(gè)文檔編號密文發(fā)送至服務(wù)端,服務(wù)端返回相應(yīng)的文檔密文至用戶客戶端;
步驟107,在用戶客戶端,對服務(wù)端返回的文檔密文進(jìn)行解密。
本發(fā)明實(shí)施例所述的基于5g通信標(biāo)準(zhǔn)的密文數(shù)據(jù)搜索方法,在數(shù)據(jù)提供者客戶端建立文檔與關(guān)鍵詞的正向索引,對建立的正向索引進(jìn)行加密得到加密后的正向索引文件,并將加密后的正向索引文件發(fā)送至服務(wù)端;服務(wù)端根據(jù)接收到的正向索引文件,創(chuàng)建密文形式的倒排索引表,從而通過利用服務(wù)端的計(jì)算能力減少了數(shù)據(jù)提供者客戶端的計(jì)算開銷;并結(jié)合關(guān)鍵詞在文檔中的位置信息,使得用戶在執(zhí)行查詢請求時(shí),服務(wù)端首先僅會(huì)返回符合用戶預(yù)查結(jié)果的前k個(gè)結(jié)果的摘要信息及和相應(yīng)的文檔編號密文,而不是全部結(jié)果的全部文檔密文,從而能夠大幅減少用戶客戶端與服務(wù)端之間的通信開銷。
如圖2所示,實(shí)現(xiàn)本實(shí)施例所述的基于5g通信標(biāo)準(zhǔn)的密文數(shù)據(jù)搜索方法需要相應(yīng)的系統(tǒng),所述系統(tǒng)可以包括:服務(wù)端、數(shù)據(jù)提供者客戶端、合法授權(quán)用戶客戶端(簡稱:用戶客戶端),其中,所述數(shù)據(jù)提供者客戶端用于向服務(wù)端提供加密后的正向索引文件和密文集合;服務(wù)端根據(jù)接收到的正向索引文件,創(chuàng)建密文形式的倒排索引表;所述用戶客戶端中的用戶指的是合法授權(quán)用戶,所述合法授權(quán)用戶包括:數(shù)據(jù)提供者;所述用戶客戶端用于向服務(wù)端提交查詢陷門,并接收服務(wù)端返回的密文信息,在整個(gè)過程中正向索引文件、倒排索引表、查詢陷門、密文文檔缺一不可,每個(gè)子項(xiàng)都有各自負(fù)責(zé)的工作,通過協(xié)議的有序進(jìn)行,使得用戶的密文查詢過程順序的進(jìn)行。
本實(shí)施例中,在數(shù)據(jù)提供者客戶端建立文檔與關(guān)鍵詞的正向索引的步驟包括:
如圖3所示,在數(shù)據(jù)提供者客戶端先統(tǒng)計(jì)出各個(gè)文檔中所含關(guān)鍵詞,建立文檔與關(guān)鍵詞的正向索引,如圖4所示,每一個(gè)正向索引項(xiàng)包括文檔編號idj、關(guān)鍵詞wi、關(guān)鍵詞位置信息loci,j、關(guān)鍵詞與文檔的相關(guān)度si,j,其中,i代表關(guān)鍵詞的下標(biāo),j代表文檔的下標(biāo),二者組合在一起時(shí)可鎖定某個(gè)文檔下的某個(gè)關(guān)鍵詞。
本實(shí)施例中,在統(tǒng)計(jì)關(guān)鍵詞時(shí),首先遍歷所有的文檔,然后以預(yù)定的規(guī)則提取文檔當(dāng)中的關(guān)鍵詞,例如,假設(shè)本實(shí)施例提供的文檔數(shù)據(jù)來源于rfc,該文檔數(shù)據(jù)為全英文字符組成,幾乎涵蓋了所有的互聯(lián)網(wǎng)通信協(xié)議,所以以換行符、空格符等特殊符號對文本單詞進(jìn)行分割,得到文檔的關(guān)鍵詞集合、相應(yīng)的關(guān)鍵詞詞頻、關(guān)鍵詞總數(shù)等信息,并根據(jù)關(guān)鍵詞詞頻、關(guān)鍵詞總數(shù)計(jì)算關(guān)鍵詞與文檔的相關(guān)度。
在前述基于5g通信標(biāo)準(zhǔn)的密文數(shù)據(jù)搜索方法的具體實(shí)施方式中,進(jìn)一步地,所述對建立的正向索引進(jìn)行加密得到加密后的正向索引文件,并對文檔明文進(jìn)行逐行加密,得到密文集合包括:
生成密鑰x、y、k;
利用密鑰x結(jié)合第一加密算法對關(guān)鍵詞wi進(jìn)行加密,生成c(wi);
采用保序加密算法對關(guān)鍵詞與文檔的相關(guān)度si,j進(jìn)行加密,生成c(si,j),其中,i代表關(guān)鍵詞的下標(biāo),j代表文檔的下標(biāo);
利用第二加密算法,結(jié)合密鑰y、關(guān)鍵詞wi、生成fy(wi),再以fy(wi)作為密鑰結(jié)合安全對稱加密算法對文檔編號idj、關(guān)鍵詞位置信息loci,j、c(si,j)的拼接字符串進(jìn)行加密,得到c(idj+loci,j+c(si,j));
根據(jù)c(wi)和c(idj+loci,j+c(si,j)),生成正向索引文件,其中,正向索引文件中的每一個(gè)正向索引項(xiàng)包括:c(wi)和c(idj+loci,j+c(si,j));
利用密鑰k對文檔明文進(jìn)行逐行加密,得到密文集合。
在前述基于5g通信標(biāo)準(zhǔn)的密文數(shù)據(jù)搜索方法的具體實(shí)施方式中,進(jìn)一步地,所述生成密鑰x、y、k包括:
利用隨機(jī)函數(shù)和隨機(jī)種子生成隨機(jī)字符串x1、y1、k1;
將x1作為輸入結(jié)合哈希函數(shù)sha-1生成密鑰x;
將y1、k1作為輸入結(jié)合哈希函數(shù)sha-256生成密鑰y、k,其中,y為256位密鑰,k為256位密鑰。
本實(shí)施例中,如圖5所示,生成密鑰x、y、k的具體步驟可以包括:先通過自定義的隨機(jī)函數(shù)random(·)和隨機(jī)種子生成隨機(jī)字符串x1、y1、k1,將隨機(jī)字符串x1作為輸入結(jié)合哈希函數(shù)sha-1生成密鑰x,因?yàn)閤是用于加密關(guān)鍵詞,一般而言,關(guān)鍵詞字符串長度較短,為節(jié)省存儲(chǔ)開銷,可以選用sha-1生成160位的密鑰x。將y1、k1作為輸入結(jié)合哈希函數(shù)sha-256生成密鑰y、k(sha-256算法加密之后會(huì)生成256位的輸出結(jié)果),其中,y為256位密鑰,是因?yàn)樾枰ㄟ^對稱加密算法aes256生成加密文檔編號的密鑰,而aes256是必須以256位的密鑰作為輸入的;其中,k為256位密鑰,是因?yàn)橛糜诩用芪臋n明文,考慮其安全性,選擇生成256位的密鑰,生成的密鑰x、y、k以文檔形式存儲(chǔ)在數(shù)據(jù)提供者客戶端和用戶客戶端當(dāng)中。
本實(shí)施例中,由數(shù)據(jù)提供者在數(shù)據(jù)提供者客戶端完成所有的加密操作,并上傳至服務(wù)端,需要進(jìn)行加密的包含5個(gè)部分:文檔關(guān)鍵詞wi、文檔編號idj、文檔與關(guān)鍵詞的相關(guān)度si,j、文檔明文,關(guān)鍵詞位置信息loci,j。
本實(shí)施例中,根據(jù)索引項(xiàng)中各子項(xiàng)的作用不同,選用不同的加密密鑰和加密函數(shù)對其進(jìn)行處理,如圖6所示,所述對建立的正向索引進(jìn)行加密得到加密后的正向索引文件具體步驟可以包括:
采用保序加密算法(orderpreservingencryption,ope)對關(guān)鍵詞與文檔的相關(guān)度si,j進(jìn)行加密,生成c(si,j),保序加密算法的特點(diǎn)在于,si,j加密之后在服務(wù)端可在其密文狀態(tài)下比較關(guān)鍵詞與文檔的相關(guān)度值之間的大小關(guān)系,對其依照大小順序進(jìn)行排序;利用密鑰x結(jié)合第一加密算法(例如,哈希運(yùn)算消息認(rèn)證算法hmac-sha1(該算法會(huì)輸出密鑰長度為160位的哈希序列))對wi進(jìn)行加密,利用第二加密算法(例如,哈希函數(shù)簇中的hmac-sha256(該算法會(huì)輸出密鑰長度為256位的哈希序列)),結(jié)合密鑰y、關(guān)鍵詞wi、生成fy(wi),再以fy(wi)作為密鑰結(jié)合安全對稱加密算法(例如,aes256算法)對idj、loci,j、c(si,j)的拼接字符串進(jìn)行加密,具體如圖7所示,最終生成多個(gè)加密的正向索引文件,正向索引文件中的每一個(gè)正向索引項(xiàng)包括:c(wi)、c(idj+loci,j+c(si,j))。
本實(shí)施例中,出于安全方面的考慮,用256位的密鑰k結(jié)合aes256對文檔明文進(jìn)行逐行加密(這是改進(jìn)協(xié)議的重要一步,只有這樣才能使得服務(wù)端具備查詢摘要的能力),得到密文集合c,最后,將加密得到的正向索引文件和密文集合c一起上傳至服務(wù)端。
在前述基于5g通信標(biāo)準(zhǔn)的密文數(shù)據(jù)搜索方法的具體實(shí)施方式中,進(jìn)一步地,所述在服務(wù)端,根據(jù)接收到的正向索引文件,創(chuàng)建密文形式的倒排索引表包括:
在服務(wù)端上,使用mapreduce并行計(jì)算模型對正向索引文件中的數(shù)據(jù)進(jìn)行整合,通過map函數(shù)接收<c(idj+loci,j+c(si,j)),c(wi)>形式的輸入,產(chǎn)生<c(wi),c(idj+loci,j+c(si,j))>形式的中間輸出;
通過reduce函數(shù)以中間輸出作為輸入,產(chǎn)生<c(wi),list(c(idj+loci,j+c(si,j)))>形式的輸出;
匯總reduce函數(shù)的輸出結(jié)果,得到倒排索引表,倒排索引表中的數(shù)據(jù)均為密文形式;
其中,<c(wi),list(c(idj+loci,j+c(si,j)))>中l(wèi)ist(·)表示相同關(guān)鍵詞下不同索引項(xiàng)之集合。
本實(shí)施例中,在服務(wù)端構(gòu)建倒排索引表,服務(wù)端接收數(shù)據(jù)提供者客戶端上傳的加密處理后的正向索引文件后,利用并行計(jì)算模型mapreduce(mapreduce是一個(gè)國外研發(fā)的計(jì)算框架,無中文名稱)對其進(jìn)行處理并最后轉(zhuǎn)化為倒排索引表。mapreduce將對大數(shù)據(jù)集的操作分發(fā)給一個(gè)主節(jié)點(diǎn)管理下的各個(gè)從節(jié)點(diǎn)共同完成,其中,主節(jié)點(diǎn)即負(fù)責(zé)所有任務(wù)分配的計(jì)算機(jī),從節(jié)點(diǎn)即完成主節(jié)點(diǎn)所分配任務(wù)的計(jì)算機(jī),然后通過整合各個(gè)節(jié)點(diǎn)的中間結(jié)果得到最終結(jié)果,mapreduce框架負(fù)責(zé)處理了并行計(jì)算當(dāng)中的分布式存儲(chǔ)、工作調(diào)度、負(fù)載均衡、容錯(cuò)均衡、容錯(cuò)處理以及網(wǎng)絡(luò)通信等復(fù)雜問題,并把處理過程高度抽象為兩個(gè)函數(shù):map和reduce,map負(fù)責(zé)把任務(wù)分解成多個(gè)任務(wù),reduce負(fù)責(zé)把分解后多任務(wù)處理的結(jié)果匯總起來。
本實(shí)施例中,map函數(shù)接收<c(idj+loci,j+c(si,j)),c(wi)>形式的輸入(因?yàn)閙ap僅接受<key,value>形式輸入數(shù)據(jù),所以可以將idj、loci,j、c(si,j)之間用“+”號連接起來,“+”號表示連接符),然后產(chǎn)生<c(wi),c(idj+loci,j+c(si,j))>形式的中間輸出,再通過reduce函數(shù)以中間輸出作為輸入,產(chǎn)生<c(wi),list(c(idj+loci,j+c(si,j)))>形式的輸出,如圖8所示,<c(wi),list(c(idj+loci,j+c(si,j)))>中l(wèi)ist(·)表示相同關(guān)鍵詞下不同索引項(xiàng)之集合,最后匯總所有的reduce結(jié)果,得到倒排索引表,倒排索引表中所有數(shù)據(jù)均為密文形式。
在前述基于5g通信標(biāo)準(zhǔn)的密文數(shù)據(jù)搜索方法的具體實(shí)施方式中,進(jìn)一步地,所述在服務(wù)端,接收用戶上傳的查詢陷門之前,所述方法還包括:
在用戶客戶端,接收用戶提交的關(guān)鍵詞wi;
利用密鑰x結(jié)合第一加密算法對關(guān)鍵詞wi進(jìn)行加密,生成關(guān)鍵詞陷門c(wi);
利用第二加密算法,結(jié)合密鑰y、關(guān)鍵詞wi、生成文檔編號解密密鑰fy(wi);
根據(jù)生成的關(guān)鍵詞陷門c(wi)和文檔編號解密密鑰fy(wi),得到查詢陷門t={c(wi),fy(wi)}。
本實(shí)施例中,查詢陷門包括:關(guān)鍵詞陷門c(wi)和文檔編號解密密鑰fy(wi)兩部分,用戶客戶端根據(jù)用戶提交的要查詢的關(guān)鍵詞wi,利用第一加密算法,例如,哈希函數(shù)π:{0,1}k×{0,1}*→{0,1}p(其中,k、*表示參與計(jì)算的參數(shù)位數(shù),p表示計(jì)算之后的結(jié)果位數(shù)),結(jié)合密鑰x對用戶提交的關(guān)鍵字進(jìn)行加密,生成要查詢的關(guān)鍵詞陷門c(wi),并利用第二加密算法,例如,隨機(jī)函數(shù)f:{0,1}k×{0,1}*→{0,1}l(其中,k、*表示參與計(jì)算的參數(shù)位數(shù),l表示計(jì)算之后的結(jié)果位數(shù)),結(jié)合密鑰y和關(guān)鍵詞wi生成fy(wi),其中涉及到的具體算法與加密索引結(jié)構(gòu)時(shí)對應(yīng)的算法一致,將此c(wi)和fy(wi)一起上傳至服務(wù)端。
本實(shí)施例中,生成查詢陷門的操作由用戶客戶端完成,具體的,用戶在用戶客戶端提交關(guān)鍵詞wi,可以以x作為密鑰結(jié)合hmac-sha1算法生成c(wi)(加密方式與生成正向索引時(shí)使用的方法保持一致),利用哈希函數(shù)簇中的hmac-sha256算法,結(jié)合密鑰y、關(guān)鍵詞wi、生成fy(wi),最終生成查詢陷門t={c(wi),fy(wi)}并上傳至服務(wù)端,其中,在t中,c(wi)表示關(guān)鍵詞陷門和fy(wi)表示文檔編號解密密鑰。
在前述基于5g通信標(biāo)準(zhǔn)的密文數(shù)據(jù)搜索方法的具體實(shí)施方式中,進(jìn)一步地,所述判斷倒排索引表是否有與關(guān)鍵詞陷門一致的索引項(xiàng),若有,則以文檔編號解密密鑰對文檔編號密文進(jìn)行解密,根據(jù)解密結(jié)果,密文集合中的文檔按照關(guān)鍵詞與文檔的相關(guān)度從大到小進(jìn)行排序,結(jié)合關(guān)鍵詞位置信息,向用戶客戶端返回關(guān)鍵詞與文檔的相關(guān)度排名前k的文檔摘要密文和相應(yīng)的文檔編號密文包括:
在服務(wù)端,將t={c(wi),fy(wi)}解析成t=(τ1,τ2),其中τ1=c(wi),τ2=fy(wi);
判斷倒排索引表中是否有與τ1一致的索引項(xiàng);
若有,則以τ2作為解密密鑰進(jìn)行解密,得到文檔編號密文對應(yīng)的明文idj,其中,每一個(gè)解密之后的文檔編號都對應(yīng)著關(guān)鍵詞與該文檔的相關(guān)度c(si,j);
密文集合中的文檔根據(jù)關(guān)鍵詞與文檔的相關(guān)度c(si,j)從大到小進(jìn)行排序,得到經(jīng)過排序的文檔;
根據(jù)排序后的文檔,服務(wù)端將關(guān)鍵詞與文檔的相關(guān)度排名前k的文檔摘要密文發(fā)送至用戶客戶端。
本實(shí)施例中,如圖9所示,服務(wù)端接收查詢陷門t={c(wi),fy(wi)}之后,將其解析成t=(τ1,τ2)(其中τ1=c(wi),τ2=fy(wi)),在倒排索引表中查詢是否有與τ1一致的索引項(xiàng),若有,則以τ2作為解密密鑰結(jié)合安全對稱加密算法(例如,aes256)對<listc(idj)>進(jìn)行解密,得到文檔編號密文對應(yīng)的明文idj,每一個(gè)解密之后的文檔編號都對應(yīng)著關(guān)鍵詞與該文檔之間的相關(guān)度c(si,j),服務(wù)端再根據(jù)<list(c(si,j))>之間的數(shù)值大小關(guān)系進(jìn)行排序(因?yàn)閟i,j是由保序加密算法opm進(jìn)行加密的,所以c(si,j)即使是密文狀態(tài),仍然能保持大小關(guān)系),得到經(jīng)過排序的order<list(idj+c(si,j))>之后,服務(wù)端將返回相關(guān)度排名前k(在海量數(shù)量下,包含wi的文檔數(shù)較多,將所有的匹配結(jié)果全部返回不但會(huì)占用大量的通信帶寬,還會(huì)極大增加客戶端的解密時(shí)的計(jì)算開銷)的文檔摘要密文至用戶客戶端,其中,k值為預(yù)先設(shè)定的。
在前述基于5g通信標(biāo)準(zhǔn)的密文數(shù)據(jù)搜索方法的具體實(shí)施方式中,進(jìn)一步地,所述根據(jù)排序后的文檔,服務(wù)端將關(guān)鍵詞與文檔的相關(guān)度排名前k的文檔摘要密文發(fā)送至用戶客戶端包括:
在服務(wù)端對關(guān)鍵詞位置信息loci,j進(jìn)行解密,并遍歷相應(yīng)的文檔,根據(jù)解密出來的行號將相應(yīng)的行密文取出,作為文檔摘要密文;
將文檔編號密文c(idj+loci,j+c(si,j))、相應(yīng)的文檔摘要密文返回至用戶客戶端。
本實(shí)施例中,因?yàn)榈古潘饕碇械男畔ǎ宏P(guān)鍵詞出現(xiàn)在文檔中的位置信息,服務(wù)端可以對所有的位置信息進(jìn)行解密,然后通過遍歷相關(guān)文檔,根據(jù)解密出來的行號將所有的相關(guān)“行密文”取出,作為文檔摘要密文,再將文檔編號密文c(idj+loci,j+c(si,j))、相應(yīng)的文檔摘要密文返回至用戶客戶端。
在前述基于5g通信標(biāo)準(zhǔn)的密文數(shù)據(jù)搜索方法的具體實(shí)施方式中,進(jìn)一步地,所述在用戶客戶端對文檔摘要密文進(jìn)行逐行解密,根據(jù)解密得到的摘要明文,選中至少一個(gè)文檔編號密文發(fā)送至服務(wù)端,服務(wù)端返回相應(yīng)的文檔密文至用戶客戶端包括:
在用戶客戶端對文檔摘要密文進(jìn)行逐行解密,得到多條文檔摘要明文<idj,r(wi,j,n)>,其中,idj表示編號為j的文檔編號,r(wi,j,n)表示編號為i的關(guān)鍵詞、出現(xiàn)在編號為j的文檔的第n行;
根據(jù)解密得到的多條文檔摘要明文,選中至少一個(gè)文檔編號密文發(fā)送至服務(wù)端;
服務(wù)端利用密鑰fy(wi)對接收到的所述至少一個(gè)文檔編號密文進(jìn)行解密,根據(jù)解密結(jié)果,返回相應(yīng)的文檔密文至用戶客戶端。
本實(shí)施例中,在用戶客戶端接收到服務(wù)端返回的文檔摘要密文之后,以密鑰k結(jié)合算法aes256對文檔摘要密文進(jìn)行逐行解密,這樣,用戶在用戶客戶端可以看到多條摘要明文<idj,r(wi,j,n)>,其中,r(wi,j,n)表示編號為i的關(guān)鍵詞、出現(xiàn)在編號為j的文檔的第n行,和常用的明文搜索引擎里返回的查詢摘要一致,用戶可以在用戶客戶端自行瀏覽;然后,用戶在用戶客戶端瀏覽文檔摘要明文后,可以選中一個(gè)或多個(gè)與自己需求最相關(guān)的文檔摘要,并查看與之匹配的文檔編號密文list<c(idj+loci,j+c(si,j))>(此時(shí)idj、loci,j、c(si,j)組合在一起是一個(gè)密文整體,無法單獨(dú)拆分返回),將list<c(idj+loci,j+c(si,j))>發(fā)送至服務(wù)端。
本實(shí)施例中,服務(wù)端接到用戶選擇的文檔編號密文list<c(idj+loci,j+c(si,j))>之后,通過使用密鑰fy(wi)對c(idj+loci,j+c(si,j))進(jìn)行解密得到idj,返回與之對應(yīng)的文檔密文至用戶客戶端。
在前述基于5g通信標(biāo)準(zhǔn)的密文數(shù)據(jù)搜索方法的具體實(shí)施方式中,進(jìn)一步地,所述在用戶客戶端,對服務(wù)端返回的文檔密文進(jìn)行解密包括:
在用戶客戶端,利用密鑰k對服務(wù)端返回的文檔密文進(jìn)行解密。
本實(shí)施例中,在用戶客戶端得到服務(wù)端返回用戶指定的文檔對應(yīng)的文檔密文之后,用密鑰k結(jié)合算法ε:{0,1}l×{0,1}r→{0,1}l進(jìn)行解密,其中,l、r分別表示參與計(jì)算的參數(shù)位數(shù),由具體實(shí)驗(yàn)情況選定。
在前述基于5g通信標(biāo)準(zhǔn)的密文數(shù)據(jù)搜索方法的具體實(shí)施方式中,進(jìn)一步地,所述在用戶客戶端,對服務(wù)端返回的文檔密文進(jìn)行解密之后還包括:
若解密得到的文檔明文符合用戶的需求,則結(jié)束本次搜索;
若解密得到的文檔明文不符合用戶的需求,則再次向服務(wù)端發(fā)出選中的文檔編號密文。
本實(shí)施例中,用戶自行瀏覽解密后得到的文檔明文,若符合用戶的需求則結(jié)束本次搜索,若不符合用戶的需求,則再次向服務(wù)端發(fā)出指定的文檔編號密文集合list<c(idj+loci,j+c(si,j))>。
以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明所述原理的前提下,還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。