TWI467411B - 文件處理方法與系統 - Google Patents
文件處理方法與系統 Download PDFInfo
- Publication number
- TWI467411B TWI467411B TW101104417A TW101104417A TWI467411B TW I467411 B TWI467411 B TW I467411B TW 101104417 A TW101104417 A TW 101104417A TW 101104417 A TW101104417 A TW 101104417A TW I467411 B TWI467411 B TW I467411B
- Authority
- TW
- Taiwan
- Prior art keywords
- encrypted
- file
- key
- remote server
- words
- Prior art date
Links
Description
本揭露是有關於一種電子系統,將文件儲存於遠端伺服器的文件處理方法與文件處理系統。
在現今資訊時代,文件儲存與處理是個重要課題。由於通訊技術的普及,使用者往往需要在不同地點、不同時間存取、搜尋、處理某一個相同文件。利用遠端儲存(remote storage)技術,本地用戶端(local client)可以透過通訊網路將多個文件儲存於遠端儲存伺服器(Remote Storage Server,RSS)。例如,雲端伺服器(cloud server)可以滿足多個用戶端的大量資料儲存需求(Humungous data storage requirements)。
為了資訊安全,存放在遠端伺服器的文件必須加密。又為了滿足用戶端的資料處理需求(例如搜尋關鍵字等),傳統文件處理系統中的遠端伺服器必須具備解密能力。例如,傳統遠端伺服器必須具有解密金鑰(Decryption Key)以便將加密文件轉換為明文(plaintext),然後才能對明文文件進行關鍵字搜尋(keyword search)。然而,遠端伺服器可能無法信賴。在遠端伺服器具備解密能力的情況下,用戶端無法防止遠端伺服器進行不忠實查詢處理(unfaithful query processing)。也就是說,存放在遠端伺服器的文件內容可能會被窺視/洩漏。
另一傳統文件處理系統中的遠端伺服器沒有解密能力。因此用戶端必需將多個加密文件中所有可能的每一個文件完整下載至用戶端,然後由用戶端使用金鑰為加密文件進行解密,以便進行資料處理(例如搜尋關鍵字等)。可想而知,在大量資料儲存需求的情況下,這些龐大的加密文件會消耗大量的頻寬資源。
本揭露提供一種文件處理方法與系統,以提升遠端儲存文件的資訊安全,且方便於遠端伺服器進行資料各種處理需求。
本揭露實施例提出一種文件處理方法,包括:於用戶端將至少一文件分為多個文件頁;於該用戶端以第一金鑰個別加密該些文件頁而獲得多個加密頁;於該用戶端擷取該些文件頁中部分字元而獲得多個標誌字;於該用戶端記錄該些標誌字與其所在頁面資訊;於該用戶端以不同於該第一金鑰的第二金鑰個別加密該些標誌字與其所在頁面資訊而獲得加密第二文件;以及將該些加密頁與該加密第二文件從該用戶端傳送至遠端伺服器儲存。
本揭露實施例提出一種文件處理系統,包括遠端伺服器以及用戶端。用戶端經由通訊網路耦接至遠端伺服器。用戶端將至少一文件分為多個文件頁,以及用第一金鑰個別加密這些文件頁而獲得多個加密頁。另外,用戶端擷取這些文件頁中部分字元而獲得多個標誌字,以及記錄該些標誌字與其所在頁面資訊。用戶端以不同於第一金鑰的第二金鑰加密這些標誌字與其所在頁面資訊而獲得加密第二文件。用戶端將加密頁與加密第二文件傳送至該遠端伺服器儲存。
基於上述,本揭露實施例中用戶端使用不同金鑰分別加密文件頁與第二文件,然後將加密後的文件頁與加密第二文件傳送至遠端伺服器儲存。由於遠端伺服器沒有金鑰,因此遠端伺服器無法解密文件頁與第二文件。再者,加密文件頁與加密第二文件二者的金鑰並不相同,因此提升了儲存於遠端伺服器中文件的資訊安全。再者,用戶端事先將文件頁的加密標誌字提取出來而製成加密第二文件,使得遠端伺服器可以依照用戶端的各種處理需求(例如搜尋關鍵字等需求)而在加密域(Encryption-Domain)中進行對應的處理。
為讓本揭露之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1是依照本揭露實施例說明一種文件處理系統的功能方塊示意圖。文件處理系統包括遠端伺服器120以及用戶端110。遠端伺服器120可以是遠端儲存伺服器(Remote Storage Server,RSS)、雲端伺服器(cloud server)或是其他類型伺服裝置。用戶端110可以是個人電腦(personal computer,PC)、筆記型電腦、個人數位助理(Personal Digital Assistant,PDA)、智慧型手機(smart phone)或是其他類型可程式裝置。用戶端110經由通訊網路10耦接至遠端伺服器120。
圖2是依照本揭露實施例說明一種文件處理方法的流程示意圖。請參照圖1與圖2,用戶端110想要將一個或多個文字文件(text document)經由通訊網路10上傳至遠端伺服器120儲存之前,用戶端110會進行圖2所示流程圖。於步驟S205中,用戶端110會將每一個文件分為多個文件頁。例如,用戶端100會將一個文件分割(broken down)成許多頁(page),而每一頁大小為128KB。接下來,用戶端110會進行步驟S210,以便用第一金鑰CPS-KEY個別加密這些文件頁而獲得多個加密頁。這些加密頁各自被賦予一個獨一無二的標誌(identification,ID)。於本實施例中,用戶端110在步驟S210中個別地壓縮(compressed)該些文件頁而獲得多個壓縮頁,然後以第一金鑰CPS-KEY個別地加密這些壓縮頁而獲得多個加密頁。於其他實施例中,用戶端110在步驟S210中可能不壓縮(compressed)該些文件頁,而直接以第一金鑰CPS-KEY個別地加密這些文件頁而獲得多個加密頁。每一個加密且壓縮後的加密頁一個一個地被安排在一個龐大的檔案(huge file)中,稱之為壓縮頁序列(Compressed Page Sequence,CPS)。接下來,用戶端110會將這些加密頁(壓縮頁序列)傳送至遠端伺服器120儲存(步驟S230)。
另外,用戶端110在完成步驟S205後還會進行步驟S215。在步驟S215中,用戶端110擷取這些尚未加密的文件頁中部分字元,而獲得多個標誌字(significant words)。用戶端110將這些標誌字組成標誌字集(Significant Word Set,SWS)。也就是說,用戶端110從這些文件頁中找出(identifies)多個有意義的字。在一些實施例中,步驟S215中用戶端110可以刪除該些文件頁中的冠詞(removing articles)(例如“a”、“an”、“the”等)以及其他基本文法字元(basic grammar words)(例如“to”、“for”、“with”等),而獲得該些標誌字。在另一些實施例中,步驟S215中用戶端110可以在移除該些文件頁中冠詞以及基本文法字元而獲得多個原始字後,再對這些原始字進行字幹擷取(stemming)而獲得該些標誌字。上述字幹擷取是根據Porter演算法或是其他演算法將單字轉換為字根,例如將retrieve、retrieval以及retrieving等字元都轉換成相同的retriev字根,又例如將have、having以及had等字元都轉換成相同的hav字根。
因此,舉例而言,一個10000字的文件可以藉由步驟S215的進行而從該文件中擷取(extracted)出500個標誌字。用戶端110在完成步驟S215後接著進行步驟S220,用戶端110記錄由多個標誌字形成的標誌字集以及其所在的頁面資訊,並於步驟S225用第二金鑰SWS-KEY個別加密該些標誌字與其所在頁面資訊,而獲得加密第二文件。上述第一金鑰CPS-KEY與第二金鑰SWS-KEY是不相同的兩個密鑰(keys)。
在一些實施例中,所述所在頁面資訊(索引資訊)可以包括該文件的檔名(file name)與在該文件中頁差距值(page offset)。例如,假設檔名為AA的一文件被分為5頁,其中有一個標誌字“home”是取自於文件AA的第三頁(也就是該些加密頁中的第三頁),則標誌字“home”的所在頁面資訊(索引資訊)包括“AA,3”。
用戶端110在完成步驟S225後接著進行步驟S230,以便將該些加密頁與加密第二文件(原文件之索引)傳送至遠端伺服器120儲存。遠端伺服器120在接收該些加密頁後,遠端伺服器120將該些加密頁儲存至一資料庫中。遠端伺服器120在接收加密後的第二文件後,遠端伺服器120會將加密後的第二文件中每一個加密標誌字與對應的所在頁面資訊(索引資訊)登錄/加入遠端伺服器120的全域搜尋索引(Global Search Index,GSI)中。例如,全域搜尋索引包括鍵(key)欄與值(value)欄,其中該鍵欄記錄該些加密標誌字,而該值欄記錄該些所在頁面資訊(索引資訊)。使用一些標準開放原始碼公用程式(open source utilities,例如來自Apache的Lucene)可以實現全域搜尋索引。在全域搜尋索引中的每一個加密標誌字被映射(mapped)至其對應索引資訊,而遠端伺服器120依據此索引資訊可以從資料庫中找到對應的加密頁。
圖3是依照本揭露實施例說明用戶端110向遠端伺服器120提出搜尋要求的流程示意圖。當用戶端110欲搜尋某一個關鍵字(keyword) KW時,用戶端110會進行步驟S310以便使用第二金鑰SWS-KEY加密關鍵字KW而獲得加密關鍵字。用戶端110接著將加密關鍵字傳送至遠端伺服器120(步驟S320)。遠端伺服器120以該加密關鍵字搜尋全域搜尋索引而獲得所有含該加密關鍵字之加密第二文件,並將其回傳給用戶端。用戶端用第二金鑰SWS-KEY將這些加密第二文件解密,以獲得原關鍵字所對應的所在頁面資訊(索引資訊)(步驟S330),並向遠端伺服器120要求提取這些加密頁面,遠端伺服器120從儲存於資料庫的該些加密頁中取得其中至少一個目標加密頁(步驟S340)。然後,遠端伺服器120將所述目標加密頁傳送至用戶端110(步驟S350)。請注意,步驟S350是將原文字文件的部分加密頁回傳給用戶端110,而不是將文字文件的全部加密頁回傳給用戶端110。
用戶端110從遠端伺服器120取得目標加密頁後,用戶端110使用第一金鑰CPS-KEY解密該目標加密頁(步驟S360)。在一些實施例中,若圖2的步驟S210曾經壓縮過文件頁後才進行加密,則圖3的步驟S360中用戶端110在對該目標加密頁完成解密後會接著進行解壓縮,以便將該目標加密頁轉換為明文文件(plain text document)。在取得明文文件頁後,用戶端110變可以進行後階段的資料處理(例如細部搜尋)。
綜上所述,本實施例中用戶端110使用不同金鑰CPS-KEY與SWS-KEY分別加密文件頁與第二文件(標誌字集與索引資訊),然後將加密後的文件頁與加密第二文件傳送至遠端伺服器120儲存。由於遠端伺服器120沒有金鑰CPS-KEY與SWS-KEY,因此遠端伺服器120無法解密文件頁與第二文件。再者,加密文件頁的金鑰CPS-KEY與加密第二文件的金鑰SWS-KEY二者並不相同,因此提升了儲存於遠端伺服器120中文件的資訊安全。
再者,用戶端110事先將資料量較大的文件頁的加密標誌字提取出來而製成資料量較小的加密第二文件,使得遠端伺服器120可以依照用戶端110的各種處理需求(例如搜尋關鍵字等需求)而在加密域(Encryption-Domain)中對資料量較小的加密第二文件進行對應的處理,而不需從資料庫中搜尋資料量龐大的這些加密頁。因此,遠端伺服器120的操作效率可以明顯提升。另外,遠端伺服器120是將文字文件的部分加密頁回傳給用戶端110,而不是將整份加密後的文字文件(或全部加密頁)回傳給用戶端110,因此可以有效的節省通訊網路的頻寬資源。
圖4是依照本揭露另一實施例說明用戶端110向遠端伺服器120提出搜尋要求的流程示意圖。圖4所示實施例可以參照圖3的相關說明。在一些實施例中,當用戶端110欲搜尋一關鍵字KW時,若圖2的步驟S215曾經進行字幹擷取,則用戶端110需要進行圖4所示步驟S410,以便對關鍵字KW進行字幹擷取而獲得其字根。在獲得關鍵字KW的字根後,用戶端110以第二金鑰SWS-KEY加密該字根而獲得一加密關鍵字(步驟S420)。用戶端110接著將該加密關鍵字傳送至遠端伺服器120(步驟S320)。
在遠端伺服器120獲得加密關鍵字後,遠端伺服器120以該加密關鍵字搜尋該加密第二文件,也就是搜尋全域搜尋索引,以獲得該加密關鍵字所對應的多個候選索引資訊(步驟S430)。加密關鍵字所對應的這些索引資訊構成一索引資訊集,其中所述索引資訊集包含指出多個候選加密標誌字與多個候選索引資訊。遠端伺服器120會將該索引資訊集傳送至用戶端110(步驟S440)。
在一些實施例中,遠端伺服器120會統計用戶端110或其他用戶端上傳至遠端伺服器120的加密關鍵字的出現次數。因此,遠端伺服器120可以在步驟S440中,依照遠端伺服器120的該加密第二文件中最頻繁出現關鍵字(most frequently occurring keyword),也就是依照該標誌字集(全域搜尋索引)中被檢索命中的頻率或次數,而遠端伺服器120排序該索引資訊集,然後排序後的該索引資訊集傳送至用戶端110。
用戶端110以第二金鑰SWS-KEY解密該些候選加密標誌字而獲得多個解密候選字(步驟S450),以供使用者從該些解密候選字中選擇一個目標標誌字。在使用者選定目標標誌字後,用戶端110將該些候選索引資訊中該目標標誌字所對應的目標索引資訊傳送至遠端伺服器120(步驟S460)。
依據用戶端110所上傳的該目標索引資訊,遠端伺服器120從儲存於資料庫的該些加密頁中取得對應的目標加密頁(步驟S470),然後將該目標加密頁從該遠端伺服器120傳送至用戶端110(步驟S350)。用戶端110接著以第一金鑰CPS-KEY解密該目標加密頁(步驟S360)。
圖5是依照本揭露另一實施例說明一種文件處理方法的流程示意圖。圖5所示實施例可以參照圖2的相關說明。不同於圖2所示實施例之處,在於圖5所示實施例還包括步驟S510~S530。請參照圖1與圖5,用戶端110在完成步驟S215後還會進行步驟S510。在步驟S510中,用戶端110擷取步驟S215的該些標誌字中部分字元而獲得多個相關字。例如,步驟S510可能包括:定義一常用字集;以及擷取該些標誌字中屬於該常用字集的字元,而獲得該些相關字,且多個相關字便形成高度相關字集。在一些實施例中,用戶端110從步驟S215的該些標誌字中選擇出代表樣本(representative sample),而這些字元很可能出現在大部分的查詢中(most of the queries)。
在本實施例中,用戶端110使用英文字彙(English vocabulary)中最常用的字元(most repeated words)定義為常用字集,然後從步驟S215的該些標誌字中擷取英文字彙中最常用的字元,而獲得該些相關字(步驟S510)。例如,將所有英文字彙依照常用性排序,然後取前1%的最常用字元定義為常用字集。接下來,用戶端110擷取該些標誌字中屬於該常用字集的字元,而獲得該些相關字。依照常用字集內的字元數量,用戶端110可以控制步驟S510中該些相關字的數量。舉例而言,一個10000字的文件可以藉由步驟S215的進行而從該文件中擷取出500個標誌字,然後可以藉由步驟S510的進行而從此500個標誌字進一步擷取出50個相關字。
接下來,用戶端110以第三金鑰MRWS-KEY個別加密該高度相關字集而獲得加密高度相關字集(步驟S520)。其中,第三金鑰MRWS-KEY不同於第一金鑰CPS-KEY與第二金鑰SWS-KEY。使用者可以利用標準開放原始碼(open source)金鑰產生公用程式(key generation utilities產生第一金鑰CPS-KEY、第二金鑰SWS-KEY與第三金鑰MRWS-KEY。利用金鑰產生公用程式,用戶端110可以使用一個密語(passphrase)來產生三個密鑰(keys)CPS-KEY、SWS-KEY與MRWS-KEY。
在完成加密高度相關字集的建立後,用戶端110進行步驟S530,以便將步驟S210的該些加密頁、步驟S225的該加密第二文件以及步驟S520的加密高度相關字集從用戶端110傳送至遠端伺服器120儲存。在將加密後的第二文件(含加密標誌字集與所在頁面資訊)以及加密高度相關字集傳送至遠端伺服器120的過程中,用戶端110不需要讓遠端伺服器120明確知道哪一個是加密標誌字集而哪一個是加密高度相關字集。遠端伺服器120無法察覺哪一個索引資訊是屬於加密標誌字集或加密高度相關字集。對於遠端伺服器120而言,所述加密標誌字集或加密高度相關字集看起來是相似的。所以遠端伺服器120在回應用戶端時,標誌字集或高度相關字集之間亦無差別。只有用戶端110知道此資訊,因為用戶端110具有第三金鑰MRWS-KEY。
在其他實施例中,用戶端110更可以防止遠端伺服器120獲取任何消息(knowledge)。例如,用戶端110週期性地傳送假加密高度相關字集(dummy MRWS),以便確定遠端伺服器120無法嘗試去配對(pairing)標誌字集與加密高度相關字集的內容。基於相同理由,在查詢搜尋(query search)期間,用戶端110將先以第二金鑰SWS-KEY對關鍵字進行加密然後傳送以便進行搜尋。接下來在傳送此等請求的數個隨機數(random number)後,用戶端110使用第三金鑰MRWS-KEY進行加密然後傳送以便進行查詢。所以用戶端110無法立刻進行搜尋結果的子集合確認。
遠端伺服器120在接收該些加密頁後,遠端伺服器120將該些加密頁儲存至資料庫中。遠端伺服器120在接收加密過的第二文件以及加密高度相關字集後,遠端伺服器120會將第二文件中每一個加密標誌字與對應的索引資訊登錄/加入遠端伺服器120的全域搜尋索引中,以及將加密高度相關字集中每一個加密相關字加入遠端伺服器120的全域搜尋索引中。在全域搜尋索引中的每一個加密字元被映射(mapped)至其對應文件ID(document ID),而此文件ID指出可以找到關鍵字元(given word)的加密頁。文件ID是一個檔名(file name)與在該檔中頁差距值(page offset)的組合,二者被混合(combined)與加密(encrypted)。使用一些標準開放原始碼公用程式(例如來自Apache的Lucene)可以實現全域搜尋索引。
藉由將加密標誌字集與加密高度相關字集混合儲存於全域搜尋索引中,可以防止大部分統計攻擊(statistical attacks),因為攻擊者無法在字元使用頻率(frequency of words used)上取得資訊。在其他實施例中,用戶端110還可以在加密高度相關字集中的隨機點(random points)處插入無效關鍵字(null keywords),以助於防止任何統計攻擊。在一些實施例中,再由所述多個標誌字中擷取部分字並以第三金鑰MRWS-KEY加密而得加密高度相關字集(Most Relevant Word Set)。將該些加密頁、加密第二文件(含標誌字集與索引資訊)與該加密高度相關字集送至遠方伺服器儲存。當用戶使用關鍵字搜尋文件時,以第二金鑰SWS-KEY、第三金鑰MRWS-KEY將關鍵字加密後分別送出兩個查詢(query)。解密第一查詢結果後,可得原文件中含有查詢關鍵字的頁面。解密第二查詢結果後,比對此結果是否為第一查詢結果之子集合,可用以偵測非忠誠執行(unfaithful execution)之行為。
圖6是依照本揭露再一實施例說明用戶端110向遠端伺服器120提出搜尋要求的流程示意圖。當用戶端110欲搜尋某一個關鍵字KW時,用戶端110會進行步驟S605以便使用第二金鑰SWS-KEY對關鍵字進行加密而獲得一第一加密關鍵字,以及進行步驟S610以便使用第三金鑰MRWS-KEY對同一個關鍵字進行加密而獲得一第二加密關鍵字。完成加密後,用戶端110會進行步驟S615以便將第一加密關鍵字與第二加密關鍵字從用戶端110傳送至遠端伺服器120。由於相同關鍵字KW使用不同金鑰SWS-KEY與MRWS-KEY進行加密,因此遠端伺服器120無法區別(distinguished)加密標誌字集與加密高度相關字集這兩個索引。
遠端伺服器120以該第一加密關鍵字搜尋該加密第二文件,以獲得該第一加密關鍵字所對應的一第一搜尋結果(步驟S620)。另外,遠端伺服器120以該第二加密關鍵字搜尋該加密高度相關字集,以獲得該第二加密關鍵字所對應的一第二搜尋結果(步驟S625)。在將加密標誌字集與加密高度相關字集混合儲存於全域搜尋索引的實施例中,遠端伺服器120可以用該第一加密關鍵字搜尋該全域搜尋索引而獲得第一搜尋結果,以及用該第二加密關鍵字搜尋該全域搜尋索引而獲得第二搜尋結果。完成搜尋後,遠端伺服器120會進行步驟S630以便將第一搜尋結果與第二搜尋結果從遠端伺服器120傳送至用戶端110。
通常,用戶端110可以使用多個關鍵字對遠端伺服器120提出搜尋請求。用戶端110可能想要知道與這些關鍵字最相關(most relevant)的檔案。遠端伺服器120藉由使用多個關鍵字的任意組合(arbitrary combination)來最佳化第一搜尋結果中多個回傳文件ID集合。遠端伺服器120還可以藉由使用基於關鍵字的排序系統(keyword based ranking system)進行最佳化。例如,遠端伺服器120可以依照文件ID的升冪順序安排所述第一搜尋結果。再例如,遠端伺服器120可以依照在單一文件中含有這些關鍵字的數量來安排所述第一搜尋結果中文件ID的次序。又例如,遠端伺服器120可以依照這些關鍵字涉及次數(referred times)來安排所述第一搜尋結果中文件ID的次序。舉例來說,該全域搜尋索引有1000個加密字元(加密關鍵字與/或加密相關字)指向文件A,而有500個加密字元(加密關鍵字與/或加密相關字)指向文件B,則在所述第一搜尋結果中文件A的次序會被安排在文件B之前。
遠端伺服器120合併多個查詢結果且回傳統一的結果,此結果已依照遠端伺服器120加密索引中最頻繁出現關鍵字(most frequently occurring keyword)進行排序。此作法可以使用戶端110進行更快速且更有效率的分析。由於關鍵字KW已被在根本上加密,更重要的是在字幹擷取(stemming)以及刪除基本文法字元(basic grammar words)後,加密的索引中(即加密第二文件)只有特定的給定字元,因此可以避免統計攻擊(Statistical attacks)。
在其他實施例中,為了防止遠端伺服器120獲取任何消息(knowledge),在查詢搜尋期間,用戶端110將先以第二金鑰SWS-KEY對關鍵字進行加密而獲得第一加密關鍵字,然後傳送第一加密關鍵字給遠端伺服器120以便進行搜尋。遠端伺服器120依照第一加密關鍵字搜尋加密後的第二文件與加密高度相關字集,以獲得對應於第一加密關鍵字的第一搜尋結果。遠端伺服器120將第一搜尋結果傳送至用戶端110。接下來,用戶端110將以第三金鑰MRWS-KEY對同一個關鍵字進行加密而獲得第二加密關鍵字,然後傳送第二加密關鍵字給遠端伺服器120以便進行搜尋。遠端伺服器120依據第二加密關鍵字搜尋加密標誌字集與加密高度相關字集,以獲得對應於第二加密關鍵字的第二搜尋結果。遠端伺服器120將第二搜尋結果傳送至用戶端110。
接下來,用戶端110可以使用第二金鑰SWS-KEY與第三金鑰MRWS-KEY對第一搜尋結果與第二搜尋結果解密,然後比較解密後的第一搜尋結果與第二搜尋結果(步驟S635)。由於加密高度相關字集是標誌字集的子集合,因此在正常情況下,第二搜尋結果應該是第一搜尋結果的子集合。若步驟S635判斷第二搜尋結果是第一搜尋結果的子集合,則用戶端110可以進行步驟S640,以便將第一搜尋結果中該關鍵字KW所對應的目標索引資訊傳送至遠端伺服器120。
依據用戶端110所上傳的目標索引資訊,遠端伺服器120從儲存於資料庫的該些加密頁中取得對應的目標加密頁(步驟S645),然後將該目標加密頁從遠端伺服器120傳送至用戶端110(步驟S650)。需注意的是,遠端伺服器120是將文字文件的部分加密頁回傳給用戶端110,而不是將整份加密後的文字文件(或全部加密頁)回傳給用戶端110,因此可以有效的節省通訊網路的頻寬資源。
當一個搜尋查詢(search query)要求關鍵字KW所對應的文件頁時,文件處理系統智慧地只從遠端伺服器120處取得該文件中被要求的最少頁數至本地客戶端110。根據接收到的加密頁,用戶端110接著以第一金鑰CPS-KEY解密該目標加密頁,以便將該目標加密頁轉換成明文文件(plain text document)(步驟S655)。用戶端110解密且解壓縮該文件頁後,本地客戶端110接著可以進行後階段的詳細搜尋或資料處理。因此,網路頻寬被最佳化利用。
若步驟S635判斷該第二搜尋結果不是該第一搜尋結果的子集合,則遠端伺服器120被確認進行了不忠實查詢處理(unfaithful query processing)(步驟S660)。在一些實施例中,步驟S660會進行適當動作(suitable actions),例如發出聲/光警示,或是將此一事件記錄於系統日誌檔(log file)中。藉由使用兩個搜尋索引:加密標誌字集與加密高度相關字集,以確認資料儲存伺服器(data storage servers,即遠端伺服器120)所處理的不忠實的請求。當以相同關鍵字同時搜尋加密標誌字集與加密高度相關字集時,若該關鍵字可以在加密高度相關字集找到卻在加密標誌字集找不到,則遠端伺服器120被確認進行了不忠實查詢處理。
然而,加密第二文件與加密高度相關字集二者的回傳內容可能都是0。加密高度相關字集所回傳的空集合(NULL set)確實是標誌字集所回傳空集合的子集合,因此即使遠端伺服器120也許有不忠實操作,用戶端110卻無法發現。為了解決這個問題,用戶端110可以進行下述操作。用戶端110建立具有多個已知關鍵字(known keywords)的一個測試文檔,然後將其儲存於記憶裝置(例如硬碟)。藉由上述圖5的步驟S205、S210、S215、S220、S225、S510、S520來處理此測試文檔會和其他多個文件,以獲得加密第二文件與加密高度相關字集的內容。接著傳送加密第二文件與加密高度相關字集給遠端伺服器120(即圖5的步驟S530)。稍後,用戶端110將使用一些關鍵字(包含該測試文檔的已知關鍵字)進行查詢。顯然地,標誌字集與高度相關字集的搜尋結果應該包含所述已知關鍵字。若遠端伺服器120的回傳內容是0(空集合),則用戶端110可以輕易地判斷遠端伺服器120曾進行了不忠實操作。
由於使用三個不同的金鑰CPS-KEY、SWS-KEY、MRWS-KEY去加密相同的關鍵字,使得文件處理系統更為強健(robust)。即使假設遠端伺服器120知道整個文件處理系統的結構(scheme),遠端伺服器120仍然無法分析資料庫中的該些加密頁以及全域搜尋索引中的加密第二文件(加密標誌字集)與加密高度相關字集。加密頁、加密第二文件、加密高度相關字集這三者看起來是完全不同的,因為他們各自使用不同的金鑰進行加密。所以,除非遠端伺服器120有這三把金鑰CPS-KEY、SWS-KEY、MRWS-KEY,否則遠端伺服器120無法對儲存資料進行任何分析。
基於上述,本實施例中用戶端110使用不同金鑰CPS-KEY、SWS-KEY、MRWS-KEY分別對文件頁、第二文件與高度相關字集進行加密,然後將加密文件頁、加密第二文件與加密高度相關字集傳送至遠端伺服器120儲存。由於遠端伺服器120沒有金鑰,因此遠端伺服器120無法解密加密文件頁、加密標誌字集與加密高度相關字集。再者,加密文件頁、加密標誌字集與加密高度相關字集三者的金鑰並不相同,因此提升了儲存於遠端伺服器120中文件的資訊安全。再者,用戶端110事先將文件頁的部份字元提取出來而製成加密標誌字集與加密高度相關字集,使得遠端伺服器120可以依照用戶端110的各種處理需求(例如搜尋關鍵字等需求)而在加密域(Encryption-Domain)中進行對應的處理。
雖然本揭露已以實施例揭露如上,然其並非用以限定本揭露,任何所屬技術領域中具有通常知識者,在不脫離本揭露之精神和範圍內,當可作些許之更動與潤飾,故本揭露之保護範圍當視後附之申請專利範圍所界定者為準。
10...通訊網路
110...用戶端
120...遠端伺服器
S205~S230、S310~S360、S410~S470、S510~S530、S605~S660...步驟
圖1是依照本揭露實施例說明一種文件處理系統的功能方塊示意圖。
圖2是依照本揭露實施例說明一種文件處理方法的流程示意圖。
圖3是依照本揭露實施例說明用戶端向遠端伺服器提出搜尋要求的流程示意圖。
圖4是依照本揭露另一實施例說明用戶端向遠端伺服器提出搜尋要求的流程示意圖。
圖5是依照本揭露另一實施例說明一種文件處理方法的流程示意圖。
圖6是依照本揭露再一實施例說明用戶端向遠端伺服器提出搜尋要求的流程示意圖。
S205~S230...步驟
Claims (23)
- 一種文件處理方法,包括:於一用戶端將至少一文件分為多個文件頁;於該用戶端以一第一金鑰個別加密該些文件頁而獲得多個加密頁;於該用戶端擷取該些文件頁中部分字元而獲得多個標誌字;於該用戶端記錄該些標誌字與其所在頁面資訊;於該用戶端以不同於該第一金鑰的一第二金鑰個別加密該些標誌字與其所在頁面資訊而獲得加密第二文件;於該用戶端擷取該些標誌字中部分字元而獲得多個相關字;於該用戶端記錄該些相關字後形成一高度相關字集;於該用戶端以不同於該第一金鑰與該第二金鑰的一第三金鑰加密該高度相關字集而獲得加密高度相關字集;將該些加密頁、該加密第二文件以及該加密高度相關字集從該用戶端傳送至一遠端伺服器儲存;於該用戶端以該第二金鑰加密一關鍵字而獲得一第一加密關鍵字;於該用戶端以該第三金鑰加密該關鍵字而獲得一第二加密關鍵字;將該第一加密關鍵字與該第二加密關鍵字從該用戶端傳送至該遠端伺服器; 於該遠端伺服器以該第一加密關鍵字搜尋該加密第二文件,以獲得該第一加密關鍵字所對應的一第一搜尋結果;於該遠端伺服器以該第二加密關鍵字搜尋該加密高度相關字集,以獲得該第二加密關鍵字所對應的一第二搜尋結果;將該第一搜尋結果與該第二搜尋結果從該遠端伺服器傳送至該用戶端;以及於該用戶端比較該第一搜尋結果與該第二搜尋結果,其中若該第二搜尋結果不是該第一搜尋結果的子集合,則該遠端伺服器被確認進行了不忠實查詢處理。
- 如申請專利範圍第1項所述之文件處理方法,其中所述加密該些文件頁的步驟包括:個別地壓縮該些文件頁而獲得多個壓縮頁;以及以該第一金鑰加密該些壓縮頁而獲得該些加密頁。
- 如申請專利範圍第1項所述之文件處理方法,其中該些標誌字的所在頁面資訊包括該文件的檔名與在該文件中頁差距值。
- 如申請專利範圍第1項所述之文件處理方法,其中所述擷取該些文件頁中部分字元的步驟包括:於該用戶端移除該些文件頁中冠詞以及基本文法字元而獲得該些標誌字。
- 如申請專利範圍第4項所述之文件處理方法,更包括: 當該用戶端欲搜尋一關鍵字時,於該用戶端以該第二金鑰加密該關鍵字而獲得一加密關鍵字;將該加密關鍵字從該用戶端傳送至該遠端伺服器;於該遠端伺服器以該加密關鍵字搜尋該加密第二文件,以獲得該加密關鍵字所對應的所在頁面資訊;於該遠端伺服器依據該加密關鍵字所對應的所在頁面資訊從該些加密頁中取得一目標加密頁;將該目標加密頁從該遠端伺服器傳送至該用戶端;以及於該用戶端以該第一金鑰解密該目標加密頁。
- 如申請專利範圍第1項所述之文件處理方法,其中所述擷取該些文件頁中部分字元的步驟包括:於該用戶端移除該些文件頁中冠詞以及基本文法字元而獲得多個原始字;以及於該用戶端對該些原始字進行字幹擷取而獲得該些標誌字。
- 如申請專利範圍第6項所述之文件處理方法,更包括:當該用戶端欲搜尋一關鍵字時,於該用戶端對該關鍵字進行字幹擷取而獲得一字根;於該用戶端以該第二金鑰加密該字根而獲得一加密關鍵字;將該加密關鍵字從該用戶端傳送至該遠端伺服器; 於該遠端伺服器以該加密關鍵字搜尋該加密第二文件,以獲得該加密關鍵字所對應的一索引資訊集,其中所述索引資訊集包含指出多個候選加密標誌字與多個候選索引資訊;將該索引資訊集從該遠端伺服器傳送至該用戶端;於該用戶端以該第二金鑰解密該些候選加密標誌字而獲得多個解密候選字,以供使用者從該些解密候選字中選擇一目標標誌字;將該些候選索引資訊中該目標標誌字所對應一目標索引資訊從該用戶端傳送至該遠端伺服器;於該遠端伺服器依據該目標索引資訊從該些加密頁中取得一目標加密頁;將該目標加密頁從該遠端伺服器傳送至該用戶端;以及於該用戶端以該第一金鑰解密該目標加密頁。
- 如申請專利範圍第7項所述之文件處理方法,其中所述將該索引資訊集從該遠端伺服器傳送至該用戶端之步驟包括:依照該遠端伺服器的該加密第二文件中最頻繁出現關鍵字,於該遠端伺服器排序該索引資訊集;以及將排序後的該索引資訊集從該遠端伺服器傳送至該用戶端。
- 如申請專利範圍第1項所述之文件處理方法,其中所述擷取該些標誌字中部分字元的步驟包括: 定義一常用字集;以及擷取該些標誌字中屬於該常用字集的字元,而獲得該些相關字。
- 如申請專利範圍第1項所述之文件處理方法,更包括:於該遠端伺服器將該些加密頁儲存至一資料庫;以及將該加密第二文件中該些加密標誌字與該些所在頁面資訊登錄於該遠端伺服器的一全域搜尋索引中。
- 如申請專利範圍第10項所述之文件處理方法,其中該全域搜尋索引包括一鍵欄與一值欄,該鍵欄記錄該些加密標誌字,而該值欄記錄該些所在頁面資訊。
- 一種文件處理系統,包括:一遠端伺服器;以及一用戶端,經由一通訊網路耦接至該遠端伺服器,其中該用戶端將至少一文件分為多個文件頁,以一第一金鑰個別加密該些文件頁而獲得多個加密頁,擷取該些文件頁中部分字元而獲得多個標誌字,記錄該些標誌字與其所在頁面資訊,以不同於該第一金鑰的一第二金鑰個別加密該些標誌字與其所在頁面資訊而獲得一加密第二文件,又擷取該些標誌字中部分字元而獲得多個相關字,記錄該些標誌字而形成一高度相關字集,以不同於該第一金鑰與該第二金鑰的一第三金鑰加密該高度相關字集而獲得一加密高度相關字集後,將該些加密頁、該加密第二文件以及該加密高度相關字集傳送至該遠端伺服器儲存,其中 該用戶端以該第二金鑰加密一查詢關鍵字而獲得一第一加密關鍵字,以該第三金鑰加密該查詢關鍵字而獲得一第二加密關鍵字,將該第一加密關鍵字與該第二加密關鍵字傳送至該遠端伺服器;該遠端伺服器以該第一加密關鍵字搜尋該加密第二文件,以獲得該第一加密關鍵字所對應的一第一搜尋結果,以該第二加密關鍵字搜尋該加密高度相關字集,以獲得該第二加密關鍵字所對應的一第二搜尋結果,將該第一搜尋結果與該第二搜尋結果傳送至該用戶端;以及該用戶端比較該第一搜尋結果與該第二搜尋結果,其中若該第二搜尋結果不是該第一搜尋結果的子集合,則該遠端伺服器被確認進行了不忠實查詢處理。
- 如申請專利範圍第12項所述之文件處理系統,其中該用戶端個別地壓縮該些文件頁而獲得多個壓縮頁,以及該用戶端以該第一金鑰加密該些壓縮頁而獲得該些加密頁。
- 如申請專利範圍第12項所述之文件處理系統,其中所述所在頁面資訊包括該文件的檔名與在該文件中頁差距值。
- 如申請專利範圍第12項所述之文件處理系統,其中該用戶端移除該些文件頁中冠詞以及基本文法字元而獲得該些標誌字。
- 如申請專利範圍第15項所述之文件處理系統,其中當該用戶端欲搜尋一關鍵字時,該用戶端以該第二金鑰 加密該關鍵字而獲得一加密關鍵字,並將該加密關鍵字從該用戶端傳送至該遠端伺服器;該遠端伺服器以該加密關鍵字搜尋該加密第二文件以獲得該加密關鍵字所對應的一所在頁面資訊,並依據該所在頁面資訊從該些加密頁中取得一目標加密頁,然後將該目標加密頁從該遠端伺服器傳送至該用戶端;以及該用戶端以該第一金鑰解密該目標加密頁。
- 如申請專利範圍第12項所述之文件處理系統,其中該用戶端移除該些文件頁中冠詞以及基本文法字元而獲得多個原始字,以及該用戶端對該些原始字進行字幹擷取而獲得該些標誌字。
- 如申請專利範圍第17項所述之文件處理系統,其中當該用戶端欲搜尋一關鍵字時,該用戶端對該關鍵字進行字幹擷取而獲得一字根;該用戶端以該第二金鑰加密該字根而獲得一加密關鍵字;該用戶端將該加密關鍵字傳送至該遠端伺服器;該遠端伺服器以該加密關鍵字搜尋該加密第二文件,以獲得該加密關鍵字所對應的一索引資訊集,其中所述索引資訊集包含指出多個候選加密標誌字與多個候選索引資訊;該遠端伺服器將該索引資訊集傳送至該用戶端;該用戶端以該第二金鑰解密該些候選加密標誌字而獲得多個解密候選字,以供使用者從該些解密候選字中選擇一目標標誌字;該用戶端將該些候選索引資訊中該目標標誌字所對應一目標索引資訊傳送至該遠端伺服器;該遠端伺服器依據該目標索引資訊從該些加密頁中取得一 目標加密頁;該遠端伺服器將該目標加密頁傳送至該用戶端;以及該用戶端以該第一金鑰解密該目標加密頁。
- 如申請專利範圍第18項所述之文件處理系統,其中該遠端伺服器依照該加密第二文件中最頻繁出現關鍵字排序該索引資訊集。
- 如申請專利範圍第12項所述之文件處理系統,其中該用戶端定義一常用字集;以及該用戶端擷取該些標誌字中屬於該常用字集的字元,而獲得該些相關字。
- 如申請專利範圍第20項所述之文件處理系統,其中該文件包括一測試文檔,該測試文檔包含至少一已知關鍵字,以及該查詢關鍵字包含該已知關鍵字。
- 如申請專利範圍第12項所述之文件處理系統,其中該遠端伺服器將該些加密頁儲存至一資料庫;以及該遠端伺服器將該加密第二文件中該些加密標誌字與該些所在頁面資訊登錄於該遠端伺服器的一全域搜尋索引中。
- 如申請專利範圍第22項所述之文件處理系統,其中該全域搜尋索引包括一鍵欄與一值欄,該鍵欄記錄該些加密標誌字,而該值欄記錄該些所在頁面資訊。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101104417A TWI467411B (zh) | 2011-12-20 | 2012-02-10 | 文件處理方法與系統 |
US13/454,103 US8819408B2 (en) | 2011-12-20 | 2012-04-24 | Document processing method and system |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/330,721 US9197613B2 (en) | 2011-12-20 | 2011-12-20 | Document processing method and system |
TW100149298 | 2011-12-28 | ||
TW101104417A TWI467411B (zh) | 2011-12-20 | 2012-02-10 | 文件處理方法與系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201327262A TW201327262A (zh) | 2013-07-01 |
TWI467411B true TWI467411B (zh) | 2015-01-01 |
Family
ID=49225059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101104417A TWI467411B (zh) | 2011-12-20 | 2012-02-10 | 文件處理方法與系統 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI467411B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200640209A (en) * | 2005-04-22 | 2006-11-16 | Gerard Lin | Deliver-upon-request secure electronic message system |
US20100146299A1 (en) * | 2008-10-29 | 2010-06-10 | Ashwin Swaminathan | System and method for confidentiality-preserving rank-ordered search |
US7869591B1 (en) * | 2001-03-23 | 2011-01-11 | Nagel Robert H | System and method for secure three-party communications |
US20110137921A1 (en) * | 2009-12-09 | 2011-06-09 | International Business Machines Corporation | Method, computer system, and computer program for searching document data using search keyword |
-
2012
- 2012-02-10 TW TW101104417A patent/TWI467411B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7869591B1 (en) * | 2001-03-23 | 2011-01-11 | Nagel Robert H | System and method for secure three-party communications |
TW200640209A (en) * | 2005-04-22 | 2006-11-16 | Gerard Lin | Deliver-upon-request secure electronic message system |
US20100146299A1 (en) * | 2008-10-29 | 2010-06-10 | Ashwin Swaminathan | System and method for confidentiality-preserving rank-ordered search |
US20110137921A1 (en) * | 2009-12-09 | 2011-06-09 | International Business Machines Corporation | Method, computer system, and computer program for searching document data using search keyword |
Also Published As
Publication number | Publication date |
---|---|
TW201327262A (zh) | 2013-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8819408B2 (en) | Document processing method and system | |
US9197613B2 (en) | Document processing method and system | |
US10013574B2 (en) | Method and apparatus for secure storage and retrieval of encrypted files in public cloud-computing platforms | |
CN107480163B (zh) | 一种云环境下支持隐私保护的高效密文图像检索方法 | |
Yuan et al. | SEISA: Secure and efficient encrypted image search with access control | |
US9275250B2 (en) | Searchable encryption processing system | |
WO2019095416A1 (zh) | 信息推送方法、装置、终端设备及存储介质 | |
CN103049466B (zh) | 一种基于分布式密文存储的全文检索方法及系统 | |
US10721058B2 (en) | Ultra-secure blockchain enabled analytics | |
CN109858263B (zh) | 数据存储检索方法、装置、电子设备及存储介质 | |
JP2012164031A (ja) | データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム | |
CN107820614B (zh) | 隐私增强的个人搜索索引 | |
Fu et al. | Semantic keyword search based on trie over encrypted cloud data | |
CN103970889A (zh) | 一种中英文关键词模糊搜索的安全云盘 | |
Ma et al. | EnDAS: efficient encrypted data search as a mobile cloud service | |
CN112685753A (zh) | 一种用于加密数据存储的方法及设备 | |
CN109213731A (zh) | 云环境中基于迭代加密的多关键词密文检索方法 | |
WO2023103928A1 (zh) | 基于esop系统的数据查询方法、装置、介质及设备 | |
US20210224242A1 (en) | Systems and methods for indexing and searching data | |
TWI467411B (zh) | 文件處理方法與系統 | |
WO2023019762A1 (zh) | 加密文档的存储和相似检索方法、装置、设备及介质 | |
Handa et al. | An efficient approach for secure information retrieval on cloud | |
Sunny et al. | Synonym based ranked secure search over encrypted data | |
CN114417109B (zh) | 一种基于安全网关的密文搜索方法、装置及其系统 | |
GOPI et al. | Dynamic Multi-Keyword Ranked Searchable Security Algorithm Using CRSA and B-Tree |