文件訪問及響應文件訪問請求的方法、系統和設備的制作方法
【專利摘要】本發明提供一種文件訪問方法,該方法用動態生成的臨時密鑰加密文件,臨時密鑰保存在接收端并由接收端保存的公鑰加密,在用戶需要離線訪問該文件時,向發送端發送對該文件的訪問請求,接收端獲得發送端返回的訪問響應中包含的用于用戶認證的信息,根據該信息以及用戶輸入的密碼進行用戶認證;在認證通過后才能對臨時密鑰解密,進而對文件進行解密;與現有技術中僅使用密碼進行用戶認證相比,本發明的認證強度更大,從而提高了文件的安全性;并且,本發明采用雙重加密和解密,即使用動態生成的臨時密鑰加密文件、使用保存的公鑰加密臨時密鑰,以及使用訪問響應中的公鑰對臨時密鑰解密、使用解密得到的臨時密鑰對文件解密。
【專利說明】文件訪問及響應文件訪問請求的方法、系統和設備
【技術領域】
[0001]本發明涉及計算機安全領域,尤其涉及一種文件訪問及響應文件訪問請求的方法、系統和設備。
【背景技術】
[0002]隨著網絡技術的普及,信息的訪問、共享和發布變得越來越便捷,但同時也增加了重要信息泄露的危險性。目前,保護重要電子文檔的主要技術包括文檔加密存儲和嚴格的用戶訪問控制,對于離線電子文件(即脫離了文件安全系統的文件,例如脫離了企業安全網絡的電子文件)的安全保護,目前的解決方法是用戶認證和文檔加密存儲。
[0003]現有的離線電子文件的安全保護技術是用戶選擇正確的方法讀取文檔安全客戶端上的電子文檔,該客戶端自動從文檔安全系統服務器下載加密密鑰,并使用臨時密鑰加密電子文檔,從而達到離線電子文檔的安全保護的目的。
[0004]但是,現有技術存在以下缺陷:使用用戶設置的靜態密碼保護離線文件的臨時密鑰,靜態密碼在離線期間不會發生變化,安全性較低,從而容易被破解。
【發明內容】
[0005]本發明實施例提供一種文件訪問及響應文件訪問請求的方法、系統和設備,用于提高接收端上的文件的安全性。
[0006]本發明實施例提供一種文件訪問方法,該方法包括:
[0007]當需要訪問用動態生成的臨時密碼加密的文件時,接收端向發送端發送訪問文件的請求,其中,所述臨時密碼保存在所述加密文件的接收端并由所述接收端保存的公鑰加密;然后接收端接收發送端返回的包含動態生成的公鑰和私鑰的響應,所述發送端返回的公鑰和私鑰由用戶預先設置的靜態密碼加密;
[0008]接收端使用用戶輸入的密碼對所述發送端返回的公鑰和私鑰進行解密,若解密失敗,則認證失敗;若解密成功,則根據解密得到的公鑰與在接收端保存的公鑰確定認證是否通過,若認證失敗,則禁止用戶訪問所述文件;若認證通過,則
[0009]接收端使用解密得到的所述發送端返回的私鑰對所述臨時密碼進行解密,并使用解密得到的臨時密碼對所述文件進行解密;
[0010]接收端用發送端返回的公鑰替換在接收端保存的公鑰,并生成新的臨時密碼;在接收端需要關閉所述文件時,用所述新的臨時密碼對文件進行重新加密,然后使用發送端保存的公鑰對所述新的臨時密鑰進行加密,并用加密后的臨時密碼替換在接收端保存的臨時密碼。
[0011]優選,上述方法中的接收端包括移動用戶終端(例如手機)。可以利用移動用戶終端發送訪問請求和/或接收發送端返回的訪問響應,上述方法中其他的操作可以有傳統的接收端設備(比如電腦)實施。加入移動用戶終端后的實施方式會更安全。
[0012]在本發明的實施方式中,文件用動態生成的臨時密鑰加密,并且臨時密鑰保存在接收端并由接收端保存的公鑰加密,在用戶每次需要離線訪問該文件時,向發送端發送對該文件的訪問請求,接收端獲得發送端返回的訪問響應中包含的用于用戶認證的信息,根據該信息以及用戶輸入的密碼進行用戶認證;在認證通過后才能對臨時密鑰解密,進而對文件進行解密;與現有技術中僅使用密碼進行用戶認證相比,本發明實施方式中的認證強度更大,從而提高了文件的安全性;并且,本方案采用雙重加密和解密,即使用動態生成的臨時密鑰加密文件、使用保存的公鑰加密臨時密鑰,以及使用訪問響應中的公鑰對臨時密鑰解密、使用解密得到的臨時密鑰對文件解密,雙重加密和解密進一步提高了脫離文件安全系統的文件的安全性。[0013]較佳的,在接收端向發送端發送訪問請求之前,進一步包括:
[0014]接收端將用戶設置的所述靜態密碼發送給發送端;
[0015]接收端接收發送端返回的發送端加密所述文件所使用的文件加密密鑰,和接收端對動態生成的臨時密鑰進行加密所使用的公鑰;
[0016]接收端使用接收到的所述文件加密密鑰對所述文件進行解密,得到解密后的文件;
[0017]接收端在使用動態生成的臨時密鑰對文件進行重新加密后,使用所述接收端對動態生成的臨時密鑰進行加密所使用的公鑰,對所述動態生成的臨時密鑰進行加密,將加密后的臨時密鑰和該公鑰進行保存。
[0018]在本發明實施方式中,接收端預先將用戶設置的靜態密碼發送給發送端,然后接收發送端返回的文件加密密鑰和公鑰,接收端能夠使用文件加密密鑰初次解密文件,并在使用動態生成的臨時密鑰對文件重新加密后,能夠使用該公鑰對生成的臨時密鑰進行加
LU O
[0019]較佳的,所述接收端對動態生成的臨時密鑰進行加密所使用的公鑰為發送端使用哈希算法產生的包括從h°(X)到1^(幻的n+1個哈希值的哈希鏈中,η為大于O的整數;所述訪問響應中的公鑰為h1^ (X),所述訪問響應中的私鑰為Shlri+1 (X), s為系統私鑰,i的取值為發送端接收到所述訪問請求的次數;
[0020]所述根據解密得到的公鑰與在接收端保存的公鑰確定認證是否通過,具體包括:
[0021]使用所述哈希算法計算解密得到的公鑰的哈希值,根據計算得到的哈希值與在接收端保存的公鑰的哈希值確定認證是否通過。
[0022]在本發明實施方式中,利用哈希算法產生的哈希鏈中哈希值進行用戶認證,能夠進一步提高用戶認證的安全性。
[0023]本發明實施例還提供一種響應文件訪問請求的方法,該方法包括:
[0024]發送端接收對用動態生成的臨時密鑰加密的文件的訪問請求;其中,所述臨時密鑰保存在接收端并由所述接收端保存的公鑰加密;
[0025]發送端返回包含動態生成的公鑰和私鑰的訪問響應,所述訪問響應中包含的公鑰和私鑰由用戶預先設置的靜態密碼加密。
[0026]本發明實施方式中,發送端在接收對文件的訪問請求后,需要返回用于用戶認證的相關信息,從而保證了接收端上的文件的安全性。
[0027]較佳的,在發送端接收到所述訪問請求之前,進一步包括:
[0028]發送端接收接收端發送的用戶設置的所述靜態密碼;[0029]發送端向接收端返回發送端加密所述文件所使用的文件加密密鑰,和接收端對動態生成的臨時密鑰進行加密所使用的公鑰。
[0030]本發明實施方式中,發送端接收接收端預先發送的靜態密碼,并向接收端返回文件加密密鑰和公鑰,使得接收端能夠使用文件加密密鑰初次解密文件,并在使用動態生成的臨時密鑰對文件重新加密后,能夠使用該公鑰對生成的臨時密鑰進行加密。
[0031]較佳的,所述接收端對動態生成的臨時密鑰進行加密所使用的公鑰為:發送端使用哈希算法產生的包括從h°(x)到hn(X)的n+1個哈希值的哈希鏈,η為大于O的整數;所述訪問響應中的公鑰為h1^ (X),所述訪問響應中的私鑰為Shlri+1 (X), s為系統私鑰,i的取值為發送端接收到所述訪問請求的次數。
[0032]本發明實施方式中,利用哈希算法產生的哈希鏈中哈希值進行用戶認證,能夠進一步提高用戶認證的安全性。
[0033]較佳的,在發送端接收到所述訪問請求之后、返回所述訪問響應之前,進一步包括:
[0034]發送端確定對所述文件的訪問次數是否超過用戶預先設置的訪問次數最大值;
[0035]所述發送端返回包含動態生成的公鑰和私鑰的訪問響應,具體包括:
[0036]所述發送端在確定對所述文件的訪問次數未超過用戶預先設置的訪問次數最大值時,返回包含動態生成的公鑰和私鑰的訪問響應。
[0037]在本發明實施方式中,通過設置對接收端上的文件的訪問次數最大值,使得用戶不能夠無限次訪問文件,從而可以進一步提高文件的安全性。
[0038]本發明實施例提供一種文件訪問系統,該系統包括接收端和發送端,
[0039]其中接收端用于,在向文發送端發送對接收端上用動態生成的臨時密鑰加密的文件的訪問請求后,獲得發送端返回的訪問響應中包含的動態生成的公鑰和私鑰,所述訪問響應中包含的公鑰和私鑰由用戶預先設置的靜態密碼加密;其中,所述臨時密鑰保存在接收端并由所述接收端保存的公鑰加密;
[0040]使用用戶輸入的密碼對所述訪問響應中包含的公鑰和私鑰進行解密,若解密失敗,則認證失敗;若解密成功,則根據解密得到的公鑰與在接收端保存的公鑰確定認證是否通過,若認證失敗,則禁止用戶訪問所述文件;若認證通過,則
[0041]使用解密得到的所述訪問響應中包含的私鑰對所述臨時密鑰進行解密,并使用解密得到的臨時密鑰對所述文件進行解密;
[0042]用解密得到的所述訪問響應中包含的公鑰替換在接收端保存的公鑰,并生成新的臨時密鑰;在接收端需要關閉所述文件時,用該新的臨時密鑰對文件進行重新加密,然后使用接收端保存的公鑰對所述新生成的臨時密鑰進行加密,并用加密后的臨時密鑰替換在接收端保存的臨時S鑰;
[0043]發送端,用于在接收到所述訪問請求后,返回包含動態生成的公鑰和私鑰的訪問響應,所述訪問響應中包含的公鑰和私鑰由用戶預先設置的靜態密碼加密。 [0044]在本發明實施方式中,用動態生成的臨時密鑰加密文件,并且臨時密鑰保存在接收端并由接收端保存的公鑰加密,在用戶每次需要離線訪問該文件時,向發送端發送對該文件的訪問請求,接收端則獲得發送端返回的訪問響應中包含的用于用戶認證的信息,根據該信息以及用戶輸入的密碼進行用戶認證;在認證通過后才能對臨時密鑰解密,進而對文件進行解密;與現有技術中僅使用密碼進行用戶認證相比,認證強度更大,從而提高了文件的安全性;并且,本發明的該實施例采用雙重加密和解密,即使用動態生成的臨時密鑰加密文件、使用保存的公鑰加密臨時密鑰,以及使用訪問響應中的公鑰對臨時密鑰解密、使用解密得到的臨時密鑰對文件解密,雙重加密和解密進一步提高了文件的安全性。
[0045]本發明實施例提供一種接收端,該接收端包括:
[0046]獲得單元,用于在接收端向發送端發送對接收端上用動態生成的臨時密鑰加密的文件的訪問請求后,獲得發送端返回的訪問響應中包含的動態生成的公鑰和私鑰,所述訪問響應中包含的公鑰和私鑰由用戶預先設置的靜態密碼加密;其中,所述臨時密鑰保存在接收端并由所述接收端保存的公鑰加密;
[0047]解密單元,用于使用用戶輸入的密碼對所述訪問響應中包含的公鑰和私鑰進行解密,若解密失敗,則認證失敗;若解密成功,則根據解密得到的公鑰與在接收端保存的公鑰確定認證是否通過,若認證失敗,則禁止用戶訪問所述文件;若認證通過,則
[0048]使用解密得到的所述訪問響應中包含的私鑰對所述臨時密鑰進行解密,并使用解密得到的臨時密鑰對所述文件進行解密;
[0049]用解密得到的所述訪問響應中包含的公鑰替換在接收端保存的公鑰,并生成新的臨時密鑰;在接收端需要關閉所述文件時,用該新的臨時密鑰對文件進行重新加密,然后使用接收端保存的公鑰對所述新生成的臨時密鑰進行加密,并用加密后的臨時密鑰替換在接收端保存的臨時S鑰。
[0050]在本發明實施方式中,接收端上的文件用動態生成的臨時密鑰加密,并且臨時密鑰保存在接收端并由接收端保存的公鑰加密,在用戶每次需要離線訪問該文件時,向發送端發送對該文件的訪問請求,接收端則獲得發送端返回的訪問響應中包含的用于用戶認證的信息,根據該信息以及用戶輸入的密碼進行用戶認證;在認證通過后才能對臨時密鑰解密,進而對文件進行解密;與現有技術中僅使用密碼進行用戶認證相比,認證強度更大,從而提高了文件的安全性;并且,本方案采用雙重加密和解密,即使用動態生成的臨時密鑰加密文件、使用保存的公鑰加密臨時密鑰,以及使用訪問響應中的公鑰對臨時密鑰解密、使用解密得到的臨時密鑰對文件解密,雙重加密和解密進一步提高了文件的安全性。
[0051]本發明實施例提供一種發送端,該發送端包括:
[0052]接收單元,用于接收用戶發送的對用動態生成的臨時密鑰加密的文件的訪問請求;其中,所述臨時密鑰保存在接收端并由所述接收端保存的公鑰加密;
[0053]響應單元,用于返回包含動態生成的公鑰和私鑰的訪問響應,所述訪問響應中包含的公鑰和私鑰由用戶預先設置的靜態密碼加密。
[0054]在本發明實施方式中,發送端在接收到對上述文件的訪問請求后,需要返回用于用戶認證的相關信息,從而保證了文件的安全性。尤其是當文件脫離了安全系統以后(例如當文件已經從企業的安全數據庫中下載到其員工的電腦中時),使用本發明的該實施方式可以限制文件的傳播,保護文件。
[0055]較佳的,該發送端還包括:
[0056]發送單元,用于在接收單元接收所述訪問請求之前,接收用戶設置的所述靜態密碼;并返回發送端加密所述文件所使用的文件加密密鑰,和對動態生成的臨時密鑰進行加密所使用的公鑰。[0057]在本發明實施方式中,發送端接收接收端預先發送的靜態密碼,并向接收端返回文件加密密鑰和公鑰,使得接收端能夠使用文件加密密鑰初次解密文件,并在使用動態生成的臨時密鑰對文件重新加密后,能夠使用該公鑰對生成的臨時密鑰進行加密。
[0058]較佳的,所述發送單元還用于:
[0059]使用哈希算法產生包括從h°(X) IlJhn(X)的n+1個哈希值的哈希鏈,將對應每次的哈希值作為接收端對動態生成的臨時密鑰進行加密所使用的公鑰,η為大于O的整數;
[0060]所述響應單元將h1^⑴作為訪問響應中的公鑰,將Shlri+1⑴作為訪問響應中的私鑰,s為系統私鑰,i的取值為發送端接收到訪問請求的次數。
[0061]在本發明實施方式中,利用哈希算法產生的哈希鏈中哈希值進行用戶認證,能夠進一步提高用戶認證的安全性。
[0062]較佳的,所述響應單元還用于:
[0063]在返回所述訪問響應之前,確定對所述文件的訪問次數是否超過用戶預先設置的訪問次數最大值;在確定對所述文件的訪問次數未超過用戶預先設置的訪問次數最大值時,向接收端返回包含動態生成的公鑰和私鑰的訪問響應。
[0064]在本發明實施方式中,通過設置對接收端上的文件的訪問次數最大值,使得用戶不能夠無限次訪問文件,從而可以進一步提高文件的安全性。
【專利附圖】
【附圖說明】`
[0065]下文將以明確易懂的方式通過對優選實施方式的說明并結合附圖來對本發明上述特性、技術特征、優點及其實施方式予以進一步說明,其中:
[0066]圖1為本發明實施方式的文件訪問方法的流程示意圖;
[0067]圖2為本發明實施方式的響應文件訪問請求方法的流程示意圖;
[0068]圖3為本發明實施方式的接收端與發送端交互的整體流程示意圖;
[0069]圖4為本發明實施方式的文件訪問系統的結構示意圖;
[0070]圖5為本發明實施方式的接收端的結構示意圖;
[0071]圖6為本發明實施方式的發送端的結構示意圖。
【具體實施方式】
[0072]實施例一:
[0073]參見圖1,本實施例的文件訪問方法包括以下步驟:
[0074]步驟10:向發送端發送對用動態生成的臨時密鑰加密的文件的訪問請求后,接收端獲得發送端返回的訪問響應中包含的動態生成的公鑰和私鑰,該訪問響應中包含的公鑰和私鑰由用戶預先設置的靜態密碼加密;其中,動態生成的臨時密鑰保存在接收端并由接收端保存的公鑰加S;
[0075]步驟11:接收端使用用戶輸入的密碼對訪問響應中包含的公鑰和私鑰進行解密,若解密失敗,則到步驟12 ;若解密成功,則到步驟13 ;
[0076]步驟12,確定認證失敗,本流程結束;
[0077]步驟13:根據解密得到的公鑰與在接收端保存的公鑰確定認證是否通過,若認證失敗,則到步驟14,若認證通過,則到步驟15 ;[0078]步驟14:禁止用戶訪問該文件,本流程結束;
[0079]步驟15:使用解密得到的訪問響應中包含的私鑰對所述臨時密鑰進行解密,并使用解密得到的臨時密鑰對該文件進行解密;
[0080]用解密得到的訪問響應中包含的公鑰替換在接收端保存的公鑰,并生成新的臨時密鑰;在接收端需要關閉該文件時,用該新的臨時密鑰對文件進行重新加密,然后使用接收端保存的公鑰對新生成的臨時密鑰進行加密,并用加密后的臨時密鑰替換在接收端保存的臨時密鑰。
[0081]較佳的,在步驟10之前,接收端可以將用戶設置的靜態密碼發送給發送端;接收端接收發送端返回的發送端加密該文件所使用的文件加密密鑰,和接收端對動態生成的臨時密鑰進行加密所使用的公鑰;接收端使用接收到的文件加密密鑰對該文件進行解密,得到解密后的文件;然后接收端在使用動態生成的臨時密鑰對該文件進行重新加密后,使用接收端對動態生成的臨時密鑰進行加密所使用的公鑰,對動態生成的臨時密鑰進行加密,將加密后的臨時密鑰和該公鑰進行保存。
[0082]較佳的,接收端在將用戶設置的靜態密碼k發送給發送端時,還可以同時將用戶設置的訪問次數最大值η發送給發送端。接收端在將靜態密碼k發送給發送端時,還可以同時將該用戶的用戶名、文件名等發送給發送端。
[0083]較佳的,接收端對動態生成的臨時密鑰進行加密所使用的公鑰可以為:發送端使用哈希算法產生的包括從h°(x)到hn(X)的n+1個哈希值的哈希鏈,η為大于O的整數;訪問響應中的公鑰為hn_i (X),訪問響應中的私鑰為shn_i+1(X),s為系統私鑰,i的取值為發送端接收到訪問請求的次數;相應的,步驟13中接收端根據解密得到的公鑰與在接收端保存的公鑰確定認證是否通過,具體實現可以為:使用哈希算法計算解密得到的公鑰的哈希值,根據計算得到的哈希值與在接收端保存的公鑰的哈希值確定認證是否通過。
[0084]在該實施例中,接收端可以是用戶經常使用的電腦,由個人電腦完成接收端的工作。接收端也可以包括用戶使用的電腦和像手機這樣的移動用戶終端。利用手機發送訪問請求并接收發送端返回的訪問響應。組合使用電腦和移動通信終端會更安全。
[0085]實施例二:
[0086]參見圖2,本實施例針對發送端提供的響應文件訪問請求的方法,包括以下步驟:
[0087]步驟20:發送端接收對用動態生成的臨時密鑰加密的文件的訪問請求;其中,該動態生成的臨時密鑰保存在接收端并由接收端保存的公鑰加密;
[0088]步驟21:發送端向用戶終端返回包含動態生成的公鑰和私鑰的訪問響應,所述訪問響應中包含的公鑰和私鑰由用戶預先設置的靜態密碼加密。
[0089]較佳的,在步驟20之前,發送端接收接收端發送的用戶設置的靜態密碼;發送端向接收端返回發送端加密該文件所使用的文件加密密鑰,和接收端對動態生成的臨時密鑰進行加密所使用的公鑰。
[0090]較佳的,接收端對動態生成的臨時密鑰進行加密所使用的公鑰可以為:發送端使用哈希算法產生的包括從h°(x)到hn(X)的n+1個哈希值的哈希鏈,η為大于O的整數;訪問響應中的公鑰為hn_i (X),訪問響應中的私鑰為shn_i+1(X),s為系統私鑰,i的取值為發送端接收到訪問請求的次數。
[0091]較佳的,在發送端接收到訪問請求之后并且返回訪問響應之前,發送端確定對該文件的訪問次數是否超過用戶預先設置的訪問次數最大值;在確定對該文件的訪問次數未超過用戶預先設置的訪問次數最大值時,返回包含動態生成的公鑰和私鑰的訪問響應。
[0092]實施例三:
[0093]參見圖3,本實施例提供的接收端與發送端交互的整體流程,包括以下步驟:
[0094]步驟30:接收端將用戶設置的靜態密碼k發送給發送端;
[0095]步驟31:發送端接收并保存接收端發來的靜態密碼k,將發送端加密文件所使用的文件加密密鑰K和接收端用于對動態生成的臨時密鑰Ki進行加密需要使用的公鑰發送給接收端;這里i的初始值為I (即表示用戶第一次訪問文件);
[0096]步驟32:接收端使用接收到的文件加密密鑰K對文件進行解密,得到解密后的文件;
[0097]步驟33:接收端在使用隨機生成的臨時密鑰Ki對文件進行重新加密后,使用發送端發送的公鑰和非對稱算法對生成的臨時密鑰Ki進行加密,將加密后的臨時密鑰Ki和該公鑰進行保存;
[0098]步驟34:在用戶需要訪問處于離線狀態的接收端上的文件時,可以通過用戶終端向發送端發送訪問請求;用戶終端可以為手機等;
[0099]步驟35:發送端在接收到用戶終端發來的訪問請求后,返回包含動態生成的公鑰hn_i⑴和私鑰shn_i+1⑴的訪問響應,訪問響應中包含的公鑰Fi⑴和私鑰shn_i+1⑴由用戶預先設置的靜態密碼k加密;
[0100]步驟36:在用戶終端接收到發送端發來的訪問響應后,用戶向接收端輸入用于對訪問響
[0101]應中的信息進行解密的密碼、以及訪問響應中包含的使用用戶預先設置的靜態密碼k加密的公鑰hn_i⑴和私鑰shn_i+1⑴;
[0102]步驟37:接收端使用用戶輸入的密碼對使用靜態密碼k加密的公鑰hn_i (X)和私鑰shn_i+1(X)進行解密,若解密失敗,則認證失敗;若解密成功,則根據解密得到的公鑰hn_i (X)與在接收端保存的公鑰確定認證是否通過,若認證失敗,則禁止用戶訪問文件;若認證通過,則使用解密得到的私鑰shn_i+1(X)對保存的加密后的臨時密鑰Ki進行解密,并使用解密得到的臨時密鑰Ki對文件進行解密,得到解密后的文件;
[0103]步驟38:接收端用解密得到的公鑰hn_i (X)替換在接收端保存的公鑰,并隨機生成新的臨時密鑰Ki+1;在接收端需要關閉該文件時,用該新的臨時密鑰Ki+1對文件進行重新加密,然后使用接收端保存的公鑰hn_i(X)對新生成的臨時密鑰Ki+1進行加密,并用加密后的臨時密鑰Ki+1替換在接收端保存的臨時密鑰Ki,在用戶需要再次訪問該文件時,將i的取值加1,并返回步驟34。
[0104]較佳的,步驟30中,接收端在將用戶設置的靜態密碼k發送給發送端時,還可以同時將用戶設置的訪問次數最大值η發送給發送端。那么,在步驟35中發送端接收到訪問請求之后、并且返回訪問響應之前,發送端可以首先確定用戶對文件的訪問次數是否超過該訪問次數最大值;在確定用戶對文件的訪問次數未超過該訪問次數最大值時,返回訪問響應。否則,拒絕本次訪問請求。接收端在將靜態密碼k發送給發送端時,還可以同時將該用戶的用戶名、文件名等發送給發送端。
[0105]較佳的,步驟31中,接收端對生成的臨時密鑰Ki進行加密所使用的公鑰1^(幻可以為:發送端使用哈希算法產生的包括從h°(X)到1^(幻的n+1個哈希值的哈希鏈,η為大于O的整數;步驟35件發送端返回的訪問響應中的公鑰為ITi(X),該訪問響應中的私鑰為shn_i+1(X),s為發送端隨機選擇的系統私鑰,i的取值為發送端接收到訪問請求的次數,例如,若步驟35中發送端是第一次接收到該用戶終端發送的對該文件的訪問請求,則i的取值為1,若步驟35中發送端是第二次接收到該用戶終端發送的對該文件的訪問請求,則i的取值為2,依此類推。這里,η的取值可以為用戶設置的訪問次數最大值。
[0106]相應的,步驟37中根據解密得到的公鑰hn_i (X)與在接收端保存的公鑰確定認證是否通過,具體實現可以如下:接收端使用哈希算法計算解密得到的公鑰Iilri (X)的哈希值,根據計算得到的哈希值與保存的公鑰確定認證通過,否則,認證失敗。
[0107]較佳的,步驟32中,在得到解密后的文件后,可以打開該文件,以供用戶訪問該文件。
[0108]較佳的,步驟33中,接收端可以在用戶完成對該文件的訪問后,例如關閉該文件后,使用生成的臨時密鑰Ki對文件進行重新加密。同時還可以將加密后的臨時密鑰Ki和公鑰保存在文件的擴展文件頭中。
[0109]較佳的,步驟34中,用戶終端發送的訪問請求中可以包含該用戶的用戶名、文件的文件名等信息,以使步驟35中發送端能夠根據該用戶名、文件名找到該用戶針對該文件預先設置的靜態密碼k以及生成的哈希鏈。
[0110]下面以第 一次和第二次使用本實施例中的方法為例說明本實施例是如何實施的。在本實施例中,用戶第一次訪問接收端上的文件,其具體流程如下:
[0111]步驟301:接收端將用戶設置的靜態密碼k發送給發送端;
[0112]步驟311:發送端接收并保存接收端發來的靜態密碼k,將發送端加密文件所使用的文件加密密鑰K和接收端用于對動態生成的臨時密鑰K1進行加密需要使用的公鑰hn(X)發送給接收端;
[0113]步驟321:接收端使用接收到的文件加密密鑰K對文件進行解密,得到解密后的文件;
[0114]步驟331:接收端在使用隨機生成的臨時密鑰K1對文件進行重新加密后,使用發送端發送的公鑰hn(x)和非對稱算法對生成的臨時密鑰K1進行加密,將加密后的臨時密鑰K1和該公鑰!!11 (X)進行保存;
[0115]步驟341:在用戶需要訪問處于離線狀態的接收端上的文件時,可以通過用戶終端向發
[0116]送端發送訪問請求;用戶終端可以為手機等;
[0117]步驟351:發送端在接收到用戶終端發來的訪問請求后,返回包含動態生成的公鑰
[0118]F1⑴和私鑰shlX)的訪問響應,訪問響應中包含的公鑰F1⑴和私鑰Sh1XX)由用戶預先設置的靜態密碼k加密;
[0119]步驟361:在用戶終端接收到發送端發來的訪問響應后,用戶向接收端輸入用于對訪問響應中的信息進行解密的密碼、以及訪問響應中包含的使用用戶預先設置的靜態密碼k加密的公鑰f1⑴和私鑰shlX);
[0120]步驟371:接收端使用用戶輸入的密碼對使用靜態密碼k加密的公鑰IT1 (X)和私鑰Shn(X)進行解密,若解密失敗,則認證失敗;若解密成功,則根據哈希算法計算解密得到的公鑰Iilri(X)的哈希值與接收端保存的公鑰1^(幻確定認證是否通過。如果二者不一致,則確定認證失敗,禁止用戶訪問文件;若二者一致,則確定認證通過,使用解密得到的私鑰Shn(X)對保存的加密后的臨時密鑰K1進行解密,并使用解密得到的臨時密鑰K1對文件進行解密,得到解密后的文件;
[0121]步驟381:接收端用解密得到的公鑰IT1 (X)替換在接收端保存的公鑰hn(X),并隨機生成新的臨時密鑰K2;在接收端需要關閉該文件時,用該新的臨時密鑰K2對文件進行重新加密,然后使用接收端保存的公鑰h11—1 (X)對新生成的臨時密鑰K2進行加密,并用加密后的臨時密鑰K2替換在接收端保存的臨時密鑰K1。
[0122]在用戶需要第二次訪問該文件時,具體流程如下:
[0123]步驟342:用戶可以通過用戶終端向發送端再次發送訪問請求;用戶終端可以為手機等;
[0124]步驟352:發送端在接收到用戶終端發來的訪問請求后,返回包含動態生成的公鑰hn_2⑴和私鑰Shlri⑴的訪問響應,訪問響應中包含的公鑰hn_2⑴和私鑰Shlri (X)由用戶預先設置的靜態密碼k加密;
[0125]步驟362:在用戶終端接收到發送端發來的訪問響應后,用戶向接收端輸入用于對訪問響應中的信息進行解密的密碼、以及訪問響應中包含的使用用戶預先設置的靜態密碼k加密的公鑰hn_2⑴和私鑰Shlri⑴;
[0126]步驟372:接收端使用用戶輸入的密碼對使用靜態密碼k加密的公鑰hn_2(X)和私鑰Shlri(X)進行解密,若解密失敗,則認證失敗;若解密成功,則根據哈希算法計算解密得到的公鑰hn_2(X)的哈希值與接收端保存的公鑰IT1 (X)確定認證是否通過。如果二者不一致,則確定認證失敗,禁止用戶訪問文件;若一致,則確定認證通過,使用解密得到的私鑰Shlri (X)對保存的加密后的臨時密鑰K2進行解密,并使用解密得到的臨時密鑰K2對文件進行解密,得到解密后的文件;
[0127]步驟382:接收端用解密得到的公鑰hn_2 (X)替換在接收端保存的公鑰h11—1 (X),并隨機生成新的臨時密鑰K3;在接收端需要關閉該文件時,用該新的臨時密鑰K3對文件進行重新加密,然后使用接收端保存的公鑰hn_2 (X)對新生成的臨時密鑰K3進行加密,并用加密后的臨時密鑰K3替換在接收端保存的臨時密鑰K2。
[0128]實施例四:
[0129]參見圖4,本實施例提供一種文件訪問系統,該系統包括:
[0130]接收端40,用于向發送端發送對用動態生成的臨時密鑰加密的文件的訪問請求后,獲得發送端返回的訪問響應中包含的動態生成的公鑰和私鑰,所述訪問響應中包含的公鑰和私鑰由用戶預先設置的靜態密碼加密;其中,所述臨時密鑰保存在接收端并由所述接收端保存的公鑰加密;
[0131]使用用戶輸入的密碼對所述訪問響應中包含的公鑰和私鑰進行解密,若解密失敗,則認證失敗;若解密成功,則根據解密得到的公鑰與在接收端保存的公鑰確定認證是否通過,若認證失敗,則禁止用戶訪問所述文件;若認證通過,則
[0132]使用解密得到的所述訪問響應中包含的私鑰對所述臨時密鑰進行解密,并使用解密得到的臨時密鑰對所述文件進行解密;[0133]用解密得到的所述訪問響應中包含的公鑰替換在接收端保存的公鑰,并生成新的臨時密鑰;在接收端需要關閉所述文件時,用該新的臨時密鑰對文件進行重新加密,然后使用接收端保存的公鑰對所述新生成的臨時密鑰進行加密,并用加密后的臨時密鑰替換在接收端保存的臨時S鑰;
[0134]優選接收端40還包括用戶終端41 (例如手機),用于在用戶需要訪問接收端上用動態生成的臨時密鑰加密的文件時,向發送端發送訪問請求;
[0135]發送端42,用于在接收到用戶終端發來的訪問請求后,向用戶終端返回包含動態生成的公鑰和私鑰的訪問響應,該訪問響應中包含的公鑰和私鑰由用戶預先設置的靜態密碼加密。
[0136]進一步的,接收端40還用于:在用戶終端向發送端發送訪問請求之前,將用戶設置的所述靜態密碼發送給發送端;接收發送端返回的發送端加密所述文件所使用的文件加密密鑰,和接收端對動態生成的臨時密鑰進行加密所使用的公鑰;使用接收到的所述文件加密密鑰對所述文件進行解密,得到解密后的文件;在使用動態生成的臨時密鑰對文件進行重新加密后,使用所述接收端對動態生成的臨時密鑰進行加密所使用的公鑰,對所述動態生成的臨時密鑰進行加密,將加密后的臨時密鑰和該公鑰進行保存。
[0137]進一步的,接收端40對動態生成的臨時密鑰進行加密所使用的公鑰為:發送端使用哈希算法產生的包括從h° (X)到1^(幻的n+1個哈希值的哈希鏈,η為大于O的整數;所述訪問響應中的公鑰為h1^ (X),所述訪問響應中的私鑰為Shlri+1 (X), s為系統私鑰,i的取值為發送端接收到所述訪問請求的次數;
[0138]接收端40按照如下方法確定認證是否通過:根據使用所述哈希算法計算解密得到的公鑰的哈希值與在接收端保存的公鑰的哈希值來確定認證是否通過。
[0139]進一步的,發送端42還用于:
[0140]在接收到所述訪問請求之`前,接收接收端發送的用戶設置的所述靜態密碼;向接收端返回發送端加密所述文件所使用的文件加密密鑰、和接收端對動態生成的臨時密鑰進行加密所使用的公鑰。
[0141]進一步的,發送端42還用于:
[0142]在接收到訪問請求之后、并且返回訪問響應之前,確定對所述文件的訪問次數是否超過用戶預先設置的訪問次數最大值;在確定對所述文件的訪問次數未超過用戶預先設置的訪問次數最大值時,向用戶終端返回包含動態生成的公鑰和私鑰的訪問響應。
[0143]優選接收端包括移動用戶終端41,例如手機。通過使用移動通信終端向發送端發送訪問請求(例如以手機短信息的方式)并接收包含動態生成的公鑰和私鑰的訪問響應信息;發送端42也也可以通過短信息的方式返回訪問響應。
[0144]實施例五:
[0145]參見圖5,本實施例提供一種接收端,該接收端包括:
[0146]獲得單元50,用于在移動用戶終端向發送端發送對接收端上用動態生成的臨時密鑰加密的文件的訪問請求后,獲得發送端向移動用戶終端返回的訪問響應中包含的動態生成的公鑰和私鑰,所述訪問響應中包含的公鑰和私鑰由用戶預先設置的靜態密碼加密;其中,所述臨時密鑰保存在接收端并由所述接收端保存的公鑰加密;
[0147]解密單元51,用于使用用戶輸入的密碼對所述訪問響應中包含的公鑰和私鑰進行解密,若解密失敗,則認證失敗;若解密成功,則根據解密得到的公鑰與在接收端保存的公鑰確定認證是否通過,若認證失敗,則禁止用戶訪問所述文件;若認證通過,則
[0148]使用解密得到的所述訪問響應中包含的私鑰對所述臨時密鑰進行解密,并使用解密得到的臨時密鑰對所述文件進行解密;
[0149]用解密得到的所述訪問響應中包含的公鑰替換在接收端保存的公鑰,并生成新的臨時密鑰;在接收端需要關閉所述文件時,用該新的臨時密鑰對文件進行重新加密,然后使用接收端保存的公鑰對所述新生成的臨時密鑰進行加密,并用加密后的臨時密鑰替換在接收端保存的臨時密鑰。
[0150]進一步的,接收端還包括:
[0151]加密單元52,用于將用戶設置的所述靜態密碼發送給發送端;接收發送端返回的發送端加密所述文件所使用的文件加密密鑰、和接收端對動態生成的臨時密鑰進行加密所使用的公鑰;使用接收到的所述文件加密密鑰對所述文件進行解密,得到解密后的文件;在使用動態生成的臨時密鑰對文件進行重新加密后,使用所述接收端對動態生成的臨時密鑰進行加密所使用的公鑰,對所述動態生成的臨時密鑰進行加密,將加密后的臨時密鑰和該公鑰進行保存。
[0152]進一步的,加密單元52對動態生成的臨時密鑰進行加密所使用的公鑰為發送端使用哈希算法產生的包括從h° (X)到hn(X)的n+1個哈希值的哈希鏈,η為大于O的整數;訪問響應中的公鑰為h1^ (X),訪問響應中的私鑰為Shlri+1 (X), s為系統私鑰,i的取值為發送端接收到訪問請求的次數;
[0153]解密單元51用 于:按照如下方法根據解密得到的公鑰與在接收端保存的公鑰確定認證是否通過:使用所述哈希算法計算解密得到的公鑰的哈希值,比較計算得到的哈希值與在接收端保存的公鑰是否一致,若一致,則認證通過,否則,認證失敗。
[0154]實施例六:
[0155]參見圖6,本實施例提供一種發送端,該發送端包括:
[0156]接收單元60,用于接收移動用戶終端發送的對接收端上用動態生成的臨時密鑰加密的文件的訪問請求;其中,所述臨時密鑰保存在接收端并由所述接收端保存的公鑰加密;
[0157]響應單元61,用于向移動用戶終端返回包含動態生成的公鑰和私鑰的訪問響應,所述訪問響應中包含的公鑰和私鑰由用戶預先設置的靜態密碼加密。
[0158]進一步的,該發送端還包括:發送單元62,用于在接收單元接收所述訪問請求之前,接收接收端發送的用戶設置的所述靜態密碼;向接收端返回發送端加密所述文件所使用的文件加密密鑰、和接收端對動態生成的臨時密鑰進行加密所使用的公鑰。
[0159]進一步的,發送單元62使用哈希算法產生包括從h°(X)到hn(X)的n+1個哈希值的哈希鏈,將對應每次的哈希值作為接收端對動態生成的臨時密鑰進行加密所使用的公鑰,η為大于O的整數;
[0160]所述響應單元61將hn1X)作為訪問響應中的公鑰,將Shlri+1⑴作為訪問響應中的私鑰,s為系統私鑰,i的取值為發送端接收到訪問請求的次數。
[0161]進一步的,響應單元61還用于:
[0162]在返回所述訪問響應之前,確定對所述文件的訪問次數是否超過用戶預先設置的訪問次數最大值;在確定對所述文件的訪問次數未超過用戶預先設置的訪問次數最大值時,向移動用戶終端返回包含動態生成的公鑰和私鑰的訪問響應。
[0163]進一步的,響應單元61用于:通過短信息返回訪問響應。
[0164]上文通過附圖和優選實施例對本發明進行了詳細展示和說明,然而本發明不限于這些已揭示的實施例,本領域技術人員從中推導出來的其他方案也在本發明的保護范圍之內。
【權利要求】
1.一種文件訪問方法,其特征在于,該方法包括: 當需要訪問用動態生成的臨時密碼加密的文件時,接收端向發送端發送訪問文件的請求,其中,所述臨時密碼保存在所述加密文件的接收端并由所述接收端保存的公鑰加密;然后接收端接收發送端返回的包含動態生成的公鑰和私鑰的響應,所述發送端返回的公鑰和私鑰由用戶預先設置的靜態密碼加密; 接收端使用用戶輸入的密碼對所述發送端返回的公鑰和私鑰進行解密,若解密失敗,則認證失敗;若解密成功,則根據解密得到的公鑰與在接收端保存的公鑰確定認證是否通過,若認證失敗,則禁止用戶訪問所述文件;若認證通過,則 接收端使用解密得到的所述發送端返回的私鑰對所述臨時密碼進行解密,并使用解密得到的臨時密碼對所述文件進行解密; 接收端用發送端返回的公鑰替換在接收端保存的公鑰,并生成新的臨時密碼;在接收端需要關閉所述文件時,用所述新的臨時密碼對文件進行重新加密,然后使用發送端保存的公鑰對所述新的臨時密鑰進行加密,并用加密后的臨時密碼替換在接收端保存的臨時密碼。
2.如權利要求1所述的方法,其特征在于,在向發送端發送所述訪問請求之前,進一步包括所述加密文件的接收端: 將用戶設置的所述靜態密碼發送給發送端; 接收發送端返回的發送端加密所述文件使用的文件加密密鑰和接收端對所述動態生成的臨時密鑰進行加密所使用的公鑰; 使用接收到的所述文件加密密鑰對所述文件進行解密,得到解密后的文件; 使用動態生成的臨時密鑰對所述文件進行重新加密,再使用接收端對所述動態生成的臨時密鑰進行加密所使用的公鑰對所述動態生成的臨時密鑰進行加密,并保存加密后的臨時密鑰和該公鑰。
3.如權利要求1或2所述的方法,其特征在于,所述接收端對動態生成的臨時密鑰進行加密所使用的公鑰為發送端使用哈希算法產生的包括從h°(X)到1^(幻的n+1個哈希值的哈希鏈,η為大于O的整數;所述發送端返回的響應中的公鑰為hn-1(X),私鑰為Shn_i+1(X),S為系統私鑰,i的取值為發送端接收到所述訪問請求的次數; 所述根據解密得到的公鑰與在接收端保存的公鑰確定認證是否通過具體包括: 使用所述哈希算法計算解密得到的公鑰的哈希值,根據所述計算得到的哈希值與在接收端保存的公鑰的哈希值確定認證是否通過。、
4.如權利要求1或2所述的方法,其特征在于,所述的接收端包括用戶移動終端。
5.—種響應文件訪問請求的方法,其特征在于,該方法包括: 發送端接收接收端發送的對用動態生成的臨時密鑰加密的文件的訪問請求;其中,所述臨時密鑰保存在接收端并由所述接收端保存的公鑰加密; 發送端向接收端返回包含動態生成的公鑰和私鑰的訪問響應,所述訪問響應中包含的公鑰和私鑰由用戶預先設置的靜態密碼加密。
6.如權利要求5所述的方法,其特征在于,在發送端接收所述訪問請求之前,進一步包括: 發送端接收用戶設置的靜態密碼;發送端向接收端返回發送端加密所述文件所使用的文件加密密鑰和接收端用來對動態生成的臨時密鑰進行加密需要使用的公鑰。
7.如權利要求6所述的方法,其特征在于,發送端使用哈希算法產生包括從h°(X)到hn (X) n+1個哈希值的哈希鏈,將對應每次的哈希值作為接收端對動態生成的臨時密鑰進行加密所使用的公鑰,其中η為大于O的整數;發送端返回的所述訪問響應中的公鑰為hn_i(X),所述訪問響應中的私鑰為shn_i+1(X),s為系統私鑰,i的取值為發送端接收到所述訪問請求的次數。
8.如權利要求5或6或7所述的方法,其特征在于,在發送端接收到所述訪問請求之后、并且返回所述響應之前,進一步包括: 發送端確定用戶對所述文件的訪問次數是否超過用戶預先設置的訪問次數最大值; 所述發送端向接收端返回包含動態生成的公鑰和私鑰的訪問響應具體包括: 所述發送端在確定用戶對所述文件的訪問次數未超過用戶預先設置的訪問次數最大值時,返回所述包含動態生成的公鑰和私鑰的響應。
9.一種文件訪問系統,其特征在于,該系統包括接收端和發送端,其中, 在接收端向發送端發送對用動態生成的臨時密鑰加密的文件的訪問請求時,接收端獲得發送端返回的訪問響應中包含的動態生成的公鑰和私鑰,所述訪問響應中包含的公鑰和私鑰由用戶預先設置的靜態密碼加密;其中,所述臨時密鑰保存在接收端并由所述接收端保存的公鑰加密; 接收端使用用戶輸入的密碼對所述訪問響應中包含的公鑰和私鑰進行解密,若解密失敗,則認證失敗;若解密成功,則根據解密得到的公鑰與在接收端保存的公鑰確定認證是否通過,若認證失敗,則禁止用戶訪問所述文件;若認證通過,則 接收端使用解密得到的所述響應中包含的私鑰對所述臨時密鑰進行解密,并使用解密得到的臨時密鑰對所述文件進行解密; 接收端用解密得到的訪問響應中包含的公鑰替換在接收端保存的公鑰,并生成新的臨時密鑰;在需要關閉所述文件時,接收端用該新的臨時密鑰對文件進行重新加密,然后使用接收端保存的公鑰對所述新生成的臨時密鑰進行加密,并用加密后的臨時密鑰替換在接收端保存的臨時密鑰; 發送端用于接收接收端對用動態生成的臨時密鑰加密的文件的所述訪問請求,并在接收到所述訪問請求后,返回所述訪問響應。
10.如權利要求9所述的一種文件訪問系統,其特征在于,所述接收端還包括移動用戶終端,在用戶需要訪問用動態生成的臨時密鑰加密的文件時,通過所述移動用戶終端向發送端發送訪問請求并接收發送端返回的響應。
11.一種接收端,其特征在于,該接收端包括: 獲得單元,用于在向發送端發送對用動態生成的臨時密鑰加密的文件的訪問請求時,接收發送端返回的包含動態生成的公鑰和私鑰的訪問響應,所述訪問響應中包含的公鑰和私鑰由用戶預先設置的靜態密碼加密;其中,所述臨時密鑰保存在接收端并由所述接收端保存的公鑰加密; 解密單元,用于使用用戶輸入的密碼對所述訪問響應中包含的公鑰和私鑰進行解密,若解密失敗,則認證失敗;若解密成功,則根據解密得到的公鑰與在接收端保存的公鑰確定認證是否通過,若認證失敗,則禁止用戶訪問所述文件;若認證通過,則 使用解密得到的所述訪問響應中包含的私鑰對所述臨時密鑰進行解密,并使用解密得到的臨時密鑰對所述文件進行解密; 用解密得到的所述訪問響應中包含的公鑰替換在接收端保存的公鑰,并生成新的臨時密鑰;在接收端需要關閉所述文件時,用所述新的臨時密鑰對文件進行重新加密,然后使用接收端保存的公鑰對所述新的臨時密鑰進行加密,并用加密后的臨時密鑰替換在接收端保存的臨時密鑰。
12.一種發送端,其特征在于,該發送端包括: 接收單元,用于接收接收端對用動態生成的臨時密鑰加密的文件的訪問請求;其中,所述臨時密鑰保存在所述加密文件的接收端并由所述接收端保存的公鑰加密; 響應單元,用于向所述接收端返回包含動態生成的公鑰和私鑰的訪問響應,所述訪問響應中包含的公鑰和私鑰由用戶預先設置的靜態密碼加密。
13.如權利要求12所述的發送端,其特征在于,該發送端還包括: 發送單元,用于在接收單元接收所述訪問請求之前,接收用戶設置的所述靜態密碼;向接收端返回發送端加密所述文件所使用的文件加密密鑰、和所述接收端對動態生成的臨時密鑰進行加密所使用的公鑰。
14.如權利要求13所述的發送端,其特征在于,所述發送單元還用于: 使用哈希算法產生包括從h°(X)到hn(X) n+1個哈希值的哈希鏈,將對應每次的哈希值作為接收端對動態生成的臨時密鑰進行加密所使用的公鑰,其中η為大于O的整數; 所述響應單元將h1^ (X)作為訪問響應中的公鑰,將Shlri+1⑴作為訪問響應中的私鑰,s為系統私鑰,i的取值為發送端接收到訪問請求的次數。
15. 如權利要求12至14中任一項所述的發送端,其特征在于,所述響應單元還用于: 在返回所述訪問響應之前,確定對所述文件的訪問次數是否超過用戶預先設置的訪問次數最大值;在確定對所述文件的訪問次數未超過用戶預先設置的訪問次數最大值時,返回包含動態生成的公鑰和私鑰的訪問響應。
【文檔編號】H04L9/30GK103701596SQ201210366938
【公開日】2014年4月2日 申請日期:2012年9月27日 優先權日:2012年9月27日
【發明者】劉勇, 張勝, 陳世俊 申請人:西門子公司