基于文件名的第三方密文檢索方法
【技術領域】
[0001]本發明屬于數字信息處理技術領域,特別涉及文件名密文檢索方法,可用于信息處理系統的存儲管理以及文件的檢索。
【背景技術】
[0002]伴隨著云計算的發展,云存儲也隨之發展起來。云存貯實際上就是將數據存放到第三方,然而第三方的對數據的安全控制力度不足,容易造成用戶數據的丟失與泄露。為了保護數據的安全,在存儲在第三方之前,通常會對數據進行加密處理,使得除用戶自己以外的所有用戶以及第三方都無法得知用戶明文數據信息,然而這就對數據的檢索帶來了困難。
[0003]與明文檢索不同,存儲在第三方文件的搜索是基于密文進行檢索。對于第三方中的密文文件,如果將所有文件下載解密后再進行明文搜索,效率將非常低下。因此,對于加密數據的隱私保護以及檢索在基于第三方存儲中非常重要。對密文進行檢索,通常的做法是在加密內容前需要提取關鍵詞構建索引表,然后對索引表加密,通過對索引表的搜索來搜索文件內容。然而對文件內容的檢索涉及關鍵字的提取,索引表的建立,過程復雜,效率低;其次由于沒有對文件名進行加密處理,容易泄露用戶的隱私,影響數據的安全性;并且隨著對文件的增刪操作都需要變更索引表,難以適應文件變更頻繁的應用場景。
【發明內容】
[0004]本發明的目的在于提出一種基于文件名的第三方密文檢索方法,以將對文件內容的檢索轉移到對文件名的檢索,提高檢索效率和文件之間的相互獨性,增強對用戶隱私和數據安全性的保護。
[0005]為實現上述目的,本發明的技術方案包括如下步驟:
[0006](I)密鑰生成
[0007]隨機生成四個不同的密鑰:文件內容對稱密鑰Kc,文件名對稱密鑰k,摘要運算密鑰k’,偽隨機序列密鑰Ks;
[0008](2)文件內容加密
[0009]用文件內容對稱密鑰K。對文件內容加密,得到文件內容密文,將文件內容密文上傳到第三方;
[0010](3)文件名加密
[0011]3a)按照文件名明文P的字數將其分割成s個單元:Ρρ P2...P1...Ps,I彡i彡s ;
[0012]3b)對每個分割單元的長度進行固定比特填充,使其滿足加密要求的η比特長度,得到填充之后的分割單元-.V1,W2...V1...Ws;
[0013]3c)對填充之后的每一單元Wi用文件名對稱密鑰K加密,得到文件名加密單元Xi;
[0014]3d)將文件名加密單元Xi分為前后兩個文件名加密模塊,分別記為L jP R i,其中前文件名加密模塊1^的長度為n-m比特,后文件名加密模塊R郝長度為m比特,m為隨機選取的比特長度,n-m為需要做摘要運算的長度,用摘要運算密鑰1^’對Li進行摘要運算,得到文件名摘要運算密鑰Ki;
[0015]3e)用偽隨機序列密鑰Ks生成長度為n-m比特的偽隨機序列S i,用文件名摘要運算密鑰Ki對該S i做摘要運算,得到長度為m比特的摘要V i;
[0016]3f)將偽隨機序列Si和摘要Vi拼接后與加密單元Xi進行異或運算,得到文件名密文單元Ci;
[0017]3g)對文件名密文單元(^進行拼接,得到文件名密文C ;
[0018]3h)對該文件名密文C進行雜湊運算及編碼,并將編碼作為存儲的文件名F,記錄文件名密文C與存儲的文件名F之間的雜湊運算映射關系L ;
[0019](4)用文件內容對稱密鑰K。對文件內容密文解密,得到文件內容明文,用文件名對稱密鑰K對文件名密文解密,得到文件名明文P ;
[0020](5)關鍵字搜索
[0021]5a)按照搜索關鍵字的字數將其分割成I個檢索單元A Z2...Zj...Z1,KjSl;
[0022]5b)對每個檢索單元Zj進行固定比特填充,使其滿足加密要求的η比特長度,得到填充之后的檢索單元:Υ” Y2-..Y」...Y1;
[0023]5c)對填充之后的每一檢索單元Yj用文件名對稱密鑰k加密,得到檢索加密單元
Gj;
[0024]5d)將每一檢索加密單元分為前后兩個檢索加密模塊,分別記為L R r設前檢索加密模塊Lj的長度為n-m比特,后檢索加密模塊R」的長度為m比特,并用摘要運算密鑰k’對h做摘要運算,得到每個檢索加密單元摘要運算密鑰Mj;
[0025]5e)將步驟5d)得到的每一檢索單元的前后兩個檢索加密模塊Lp &和其摘要運算密鑰Mj提交給第三方,第三方將其中的L」、Rj分別與每一文件名密文單元C ,做異或運算得到長度為n-m比特的前檢驗值s和長度為m比特的后檢驗值v ;
[0026]5f)用檢索加密單元摘要運算密鑰Mj對前校驗值s做摘要運算,得到長度為m比特的前校驗值摘要V’ ;
[0027]5g)將前校驗值摘要V’與后校驗值V進行比較,判斷文件名密文C中是否含有目標檢索單元:若V’ = V,則表明該文件名密文C含有目標檢索單元Zf否則,不含有目標檢索單元Zj;
[0028]5h)對含有目標檢索單元的文件名密文C做雜湊運算及編碼,查找文件名密文C與存儲的文件名F之間的雜湊運算映射關系L,即可找到目標文件。
[0029]本發明與現有技術相比具有如下優點:
[0030]1、本發明對文件名加密搜索,由于文件名字數較少,不需要提取關鍵字、建立索引表,操作簡單,效率高;
[0031]2、本發明除對文件內容加密外,還對文件名加密,進一步保護了用戶數據,提高了安全性;
[0032]3、本發明整個過程由于只涉及對稱密碼算法,不涉及復雜的非對稱密碼算法,因而運算快速高效;
[0033]4、本發明由于其的文件變更不涉及索引表,即修改文件之間相互獨立,故能夠適應文件變更頻繁的場合
【附圖說明】
[0034]圖1是密文檢索系統網絡模型圖;
[0035]圖2是本發明的實現總流程圖;
[0036]圖3是本發明中的文件名加密示意圖;
[0037]圖4是本發明中的文件名加密子流程圖;
[0038]圖5是本發明中的文件名解密示意圖;
[0039]圖6是本發明中的文件名解密子流程圖;
[0040]圖7是本發明中的關鍵字搜索示意圖;
[0041]圖8是本發明中的關鍵字搜索子流程圖。
【具體實施方式】
[0042]下面結合附圖及具體實例對本發明作進一步的詳細描述:
[0043]如圖1所示,密文檢索系統網絡包括數據擁有者和第三方,第三方用來存儲用戶數據,用戶與第三方直接進行交互。數據擁有者將自己的文件及文件名加密之后上傳到第三方服務器存儲,需要查詢時,對查詢關鍵字進行加密后傳到服務器進行查詢,服務器返回查詢結果。整個查詢過程的數據都是以密文形態存在,能夠保護用戶數據的安全。
[0044]參照圖2,本發明基于文件名的第三方密文檢索方法的具體步驟包括如下:
[0045]步驟1.用戶產生密鑰
[0046]用戶隨機生成四個不同的密鑰:第一個是加密文件內容的文件內容對稱密鑰K。,第二個是加密文件名的文件名對稱密鑰k,第三個是進行摘要運算所需要的摘要運算密鑰k’,第四個是產生偽隨機序列所需要的偽隨機序列密鑰Ks。
[0047]步驟2.文件內容加密
[0048]為了保證用戶數據的安全性,需要在文件上傳之前對文件內容加密,用步驟I生成的文件內容對稱密鑰K。,采用對稱加密算法對文件內容加密,得到文件內容密文,將文件內容密文上傳到第三方服務器。
[0049]步驟3.文件名加密
[0050]將文件內容加密后,需要對文件名進行加密處理,以進一步提高用戶數據的安全性,得到文件名密文,然后將文件名密文上傳至第三方服務器。
[0051]參照圖3和圖4,文件名加密的具體實現步驟如下:
[0052]3a)按照文件名的字數將其分割成s個單元-P1, P2...P1...Ps,I彡i彡S,對于中文文件名是將每個漢字作為一個分割單元,對于英文文件名是將每個單詞作為一個分割單元;
[0053]3b)對每個分割單元的用固定比特序列進行長度填充,使其滿足加密要求的η比特長度,得到填充之后的分割單元-.V1,W2...V1...Ws;
[0054]3c)用步驟I生成文件名對稱密鑰k,對每一填充后的分割單元Wi采用電碼本模式加密,生成文件名加密單元Xi;
[0055]3d)將文件名加密單元Xi分為前、后兩個文件名加密模塊,分別記為L jP R i,其中前文件名加密模塊1^的長度為n-m比特,后加文件名加密模塊R郝長度為m比特,用步驟I生成的摘要運算密鑰k’對前文件名加密模塊Li進行摘要運算,得到文件名摘要密鑰K i;
[0056]3e)用步驟I生成偽隨機序列密鑰Ks生成長度為n_m比特偽隨機序列S 用生成的文件名摘要密鑰Ki對偽隨機序列S ^故摘要運算得到長度為m比特的摘要V i;
[0057]3f)將偽隨機序列Si和摘要V i拼接后與文件名加密單元X i進行異或運算,得到文件名密文單元Ci;
[0058]3g)對文件名密文單元(^進行拼接,得到文件名密文C ;
[0059]3h)對文件名密文C進行雜湊運算及編碼得到作為存儲的文件名F,并記錄文件名密文C與存儲的文件名F之間的雜湊運算映射關系L。
[0060]步驟4.文件內容解密
[0061]從第三方服務器下載得到的是文件內容密