本發(fā)明涉及數(shù)據(jù)安全技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)安全存儲方法及用戶設(shè)備。
背景技術(shù):
隨著云存儲應(yīng)用的推廣,越來越多的用戶開始使用云存儲系統(tǒng)存放數(shù)據(jù).云存儲系統(tǒng)能夠為用戶提供數(shù)據(jù)備份、數(shù)據(jù)共享、數(shù)據(jù)同步以及用戶間協(xié)同工作等功能。
然而,近年來頻發(fā)的云存儲系統(tǒng)安全問題說明:現(xiàn)有的云存儲系統(tǒng)存在著一些漏洞,導(dǎo)致用戶數(shù)據(jù)的私密性、完整性受到一定的威脅。
一些云存儲系統(tǒng)僅采用用戶名和pin碼保護強度不夠,只是設(shè)置了一個訪問控制,很容易突破、被繞行,而通過盜用該用戶名和密碼的方式入侵系統(tǒng),接管控制權(quán)限。
并且,一些云存儲系統(tǒng)雖然以密文的形式存放數(shù)據(jù),但服務(wù)器擁有用戶的所有密鑰,仍然能夠隨時訪問或篡改用戶數(shù)據(jù);
另外,一些云存儲系統(tǒng)雖然以密文形式存放數(shù)據(jù),但是所有數(shù)據(jù)采用同一個密鑰,一旦這個密鑰被破解或發(fā)生泄漏,云上的所有數(shù)據(jù)都存在泄密風(fēng)險。
技術(shù)實現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種數(shù)據(jù)安全存儲方法及一種用戶設(shè)備。
依據(jù)本發(fā)明的第一個方面,提供了一種數(shù)據(jù)安全存儲方法,所述方法包括:
由隨機數(shù)發(fā)生器產(chǎn)生一個隨機數(shù)作為第一文件密鑰;
對存儲文件數(shù)據(jù)通過所述第一文件密鑰進行對稱加密,得到密態(tài)數(shù)據(jù);
通過本地設(shè)備標(biāo)識從標(biāo)識公鑰矩陣中獲取對應(yīng)的第一標(biāo)識公鑰;
采用所述第一標(biāo)識公鑰對所述第一文件密鑰進行非對稱加密,得到第一密鑰文件;
將所述第一密鑰文件和密態(tài)數(shù)據(jù)進行數(shù)據(jù)打包,得到數(shù)據(jù)包;
將所述數(shù)據(jù)包上傳至存儲中心。
可選地,所述方法還包括:
接收從存儲中心下載的數(shù)據(jù)包;
對所述數(shù)據(jù)包進行數(shù)據(jù)解包,得到第一密鑰文件和密態(tài)數(shù)據(jù);
通過本地設(shè)備的第一標(biāo)識私鑰對所述第一密鑰文件進行解密,得到第一文件密鑰;
通過所述第一文件密鑰對所述密態(tài)數(shù)據(jù)進行解密,得到存儲文件數(shù)據(jù)的明文。
可選地,所述將所述密鑰文件和密態(tài)數(shù)據(jù)進行數(shù)據(jù)打包,得到數(shù)據(jù)包,具體包括:
獲取所述存儲文件數(shù)據(jù)的第一HASH值;
將所述第一HASH值上傳至所述存儲中心,以使所述存儲中心根據(jù)所述第一HASH值判斷其是否存在相同的存儲文件數(shù)據(jù);
接收所述存儲中心發(fā)送的反饋數(shù)據(jù);
在所述反饋數(shù)據(jù)表征不存在相同的存儲文件數(shù)據(jù)時,通過所述第一HASH值對所述文件密鑰進行加密,得到第一HASH密鑰,再將所述密鑰文件、密態(tài)數(shù)據(jù)、第一HASH密鑰和第一HASH值進行數(shù)據(jù)打包,得到所述數(shù)據(jù)包;
在所述反饋數(shù)據(jù)表征存在相同的存儲文件數(shù)據(jù)時,從所述反饋數(shù)據(jù)中獲取所述相同的存儲文件數(shù)據(jù)對應(yīng)的第二HASH密鑰,通過所述第一HASH值對所述第二HASH密鑰進行解密,得到第二文件密鑰,再采用所述第一標(biāo)識公鑰對所述第二文件密鑰進行非對稱加密,得到第二密鑰文件,將文件名稱及所述第二密鑰文件進行數(shù)據(jù)打包,得到所述數(shù)據(jù)包。
可選地,所述方法還包括:
從存儲中心獲取待分享存儲文件數(shù)據(jù)的第三密鑰文件;
通過本地設(shè)備的第一標(biāo)識私鑰對所述第三密鑰文件進行解密,得到第三文件密鑰;
根據(jù)待分享用戶ID查找對應(yīng)的待分享用戶設(shè)備標(biāo)識;
通過所述待分享用戶設(shè)備標(biāo)識從標(biāo)識公鑰矩陣中獲取對應(yīng)的第二標(biāo)識公鑰;
采用所述第二標(biāo)識公鑰對所述第三文件密鑰進行非對稱加密,得到第四密鑰文件;
將所述第四密鑰文件、待分享用戶ID和所述分享存儲文件數(shù)據(jù)的文件地址進行數(shù)據(jù)打包,得到第一文件分享數(shù)據(jù)包;
將所述第一文件分享數(shù)據(jù)包發(fā)送至管理中心,以使所述管理中心根據(jù)所述待分享用戶ID將所述第一文件分享數(shù)據(jù)包轉(zhuǎn)發(fā)至所述待分享用戶設(shè)備。
可選地,所述方法還包括:
接收管理中心發(fā)送來的第二文件分享數(shù)據(jù)包;
對第二文件分享數(shù)據(jù)包進行解包,得到第五密鑰文件和所述待分享存儲文件數(shù)據(jù)的文件地址;
根據(jù)本地設(shè)備的第一標(biāo)識私鑰對所述第五密鑰文件進行解密,得到第五文件密鑰;
根據(jù)所述待分享存儲文件數(shù)據(jù)的文件地址從所述存儲中心獲取對應(yīng)的密態(tài)數(shù)據(jù);
根據(jù)所述第五文件密鑰對獲取的密態(tài)數(shù)據(jù)進行解密,得到所述待分享存儲文件數(shù)據(jù)的明文。
依據(jù)本發(fā)明的第二個方面,提供了一種用戶設(shè)備,所述用戶設(shè)備包括:
密鑰產(chǎn)生單元,用于由隨機數(shù)發(fā)生器產(chǎn)生一個隨機數(shù)作為第一文件密鑰;
對稱加密單元,用于對存儲文件數(shù)據(jù)通過所述第一文件密鑰進行對稱加密,得到密態(tài)數(shù)據(jù);
第一公鑰獲取單元,用于通過本地設(shè)備標(biāo)識從標(biāo)識公鑰矩陣中獲取對應(yīng)的第一標(biāo)識公鑰;
第一非對稱加密單元,用于采用所述第一標(biāo)識公鑰對所述第一文件密鑰進行非對稱加密,得到第一密鑰文件;
第一數(shù)據(jù)打包單元,用于將所述第一密鑰文件和密態(tài)數(shù)據(jù)進行數(shù)據(jù)打包,得到數(shù)據(jù)包;
數(shù)據(jù)上傳單元,用于將所述數(shù)據(jù)包上傳至存儲中心。
可選地,所述用戶設(shè)備還包括:
第一數(shù)據(jù)接收單元,用于接收從存儲中心下載的數(shù)據(jù)包;
第一數(shù)據(jù)解包單元,用于對所述數(shù)據(jù)包進行數(shù)據(jù)解包,得到第一密鑰文件和密態(tài)數(shù)據(jù);
第一密鑰解密單元,用于通過本地設(shè)備的第一標(biāo)識私鑰對所述第一密鑰文件進行解密,得到第一文件密鑰;
第一數(shù)據(jù)解密單元,用于通過所述第一文件密鑰對所述密態(tài)數(shù)據(jù)進行解密,得到存儲文件數(shù)據(jù)的明文。
可選地,所述第一數(shù)據(jù)打包單元,具體用于獲取所述存儲文件數(shù)據(jù)的第一HASH值;將所述第一HASH值上傳至所述存儲中心,以使所述存儲中心根據(jù)所述第一HASH值判斷其是否存在相同的存儲文件數(shù)據(jù);接收所述存儲中心發(fā)送的反饋數(shù)據(jù);在所述反饋數(shù)據(jù)表征不存在相同的存儲文件數(shù)據(jù)時,通過所述第一HASH值對所述文件密鑰進行加密,得到第一HASH密鑰,再將所述密鑰文件、密態(tài)數(shù)據(jù)、第一HASH密鑰和第一HASH值進行數(shù)據(jù)打包,得到所述數(shù)據(jù)包;在所述反饋數(shù)據(jù)表征存在相同的存儲文件數(shù)據(jù)時,從所述反饋數(shù)據(jù)中獲取所述相同的存儲文件數(shù)據(jù)對應(yīng)的第二HASH密鑰,通過所述第一HASH值對所述第二HASH密鑰進行解密,得到第二文件密鑰,再采用所述第一標(biāo)識公鑰對所述第二文件密鑰進行非對稱加密,得到第二密鑰文件,將文件名稱及所述第二密鑰文件進行數(shù)據(jù)打包,得到所述數(shù)據(jù)包。
可選地,所述用戶設(shè)備還包括:
文件獲取單元,用于從存儲中心獲取待分享存儲文件數(shù)據(jù)的第三密鑰文件;
第二密鑰解密單元,用于通過本地設(shè)備的第一標(biāo)識私鑰對所述第三密鑰文件進行解密,得到第三文件密鑰;
標(biāo)識查找單元,用于根據(jù)待分享用戶ID查找對應(yīng)的待分享用戶設(shè)備標(biāo)識;
第二公鑰獲取單元,用于通過所述待分享用戶設(shè)備標(biāo)識從標(biāo)識公鑰矩陣中獲取對應(yīng)的第二標(biāo)識公鑰;
第二非對稱加密單元,用于采用所述第二標(biāo)識公鑰對所述第三文件密鑰進行非對稱加密,得到第四密鑰文件;
第一數(shù)據(jù)打包單元,用于將所述第四密鑰文件、待分享用戶ID和所述分享存儲文件數(shù)據(jù)的文件地址進行數(shù)據(jù)打包,得到第一文件分享數(shù)據(jù)包;
數(shù)據(jù)發(fā)送單元,用于將所述第一文件分享數(shù)據(jù)包發(fā)送至管理中心,以使所述管理中心根據(jù)所述待分享用戶ID將所述第一文件分享數(shù)據(jù)包轉(zhuǎn)發(fā)至所述待分享用戶設(shè)備。
可選地,所述用戶設(shè)備還包括:
第二數(shù)據(jù)接收單元,用于接收管理中心發(fā)送來的第二文件分享數(shù)據(jù)包;
第二數(shù)據(jù)解包單元,用于對第二文件分享數(shù)據(jù)包進行解包,得到第五密鑰文件和所述待分享存儲文件數(shù)據(jù)的文件地址;
第三密鑰解密單元,用于根據(jù)本地設(shè)備的第一標(biāo)識私鑰對所述第五密鑰文件進行解密,得到第五文件密鑰;
數(shù)據(jù)獲取單元,用于根據(jù)所述待分享存儲文件數(shù)據(jù)的文件地址從所述存儲中心獲取對應(yīng)的密態(tài)數(shù)據(jù);
第二數(shù)據(jù)解密單元,用于根據(jù)所述第五文件密鑰對獲取的密態(tài)數(shù)據(jù)進行解密,得到所述待分享存儲文件數(shù)據(jù)的明文。
本發(fā)明實現(xiàn)了一文一密的加密策略,在出現(xiàn)用戶使用不當(dāng)導(dǎo)致某文件泄密的情況下,也不會影響其他密文的安全,從而提高了數(shù)據(jù)安全性。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1是本發(fā)明一種實施方式的數(shù)據(jù)安全存儲方法的流程圖;
圖2是密鑰生產(chǎn)的流程示意圖;
圖3是本發(fā)明另一種實施方式的數(shù)據(jù)安全存儲方法的流程圖;
圖4是本發(fā)明再一種實施方式的數(shù)據(jù)安全存儲方法的流程圖;
圖5是本發(fā)明又一種實施方式的數(shù)據(jù)安全存儲方法的流程圖;
圖6是本發(fā)明還一種實施方式的數(shù)據(jù)安全存儲方法的流程圖;
圖7是本發(fā)明一種實施例的數(shù)據(jù)安全存儲方法的流程圖;
圖8是本發(fā)明一種實施例的文件去重流程圖;
圖9是本發(fā)明一種實施例的用戶設(shè)備A的密態(tài)文件分享流程圖;
圖10是本發(fā)明一種實施例的管理中心的密態(tài)文件分享流程圖;
圖11是本發(fā)明一種實施例的用戶設(shè)備B的密態(tài)文件分享流程圖;
圖12是本發(fā)明一種實施方式的用戶設(shè)備的結(jié)構(gòu)框圖。
具體實施方式
下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式作進一步詳細描述。以下實施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
圖1是本發(fā)明一種實施方式的數(shù)據(jù)安全存儲方法的流程圖;參照圖1,所述方法包括:
S101:由隨機數(shù)發(fā)生器產(chǎn)生一個隨機數(shù)作為第一文件密鑰。
需要說明的是,本實施方式的方法的執(zhí)行主體為用戶設(shè)備,所述用戶設(shè)備可為PC機、筆記本電腦、平板電腦或智能手機等設(shè)備,本實施方式對此不加以限制。
可理解的是,由于本實施方式中采用產(chǎn)生的隨機數(shù)作為信道密碼,使得信道密碼為動態(tài)密碼,從而提高了數(shù)據(jù)的安全性。
在具體實現(xiàn)中,所述隨機數(shù)可采用偽隨機數(shù),也可優(yōu)選采用真隨機數(shù),本實施方式對此不加以限制。
S102:對存儲文件數(shù)據(jù)通過所述第一文件密鑰進行對稱加密,得到密態(tài)數(shù)據(jù)。
需要說明的是,對存儲文件數(shù)據(jù)通過所述第一文件密鑰進行對稱加密,即可得到密態(tài)數(shù)據(jù),也就是說,所述密態(tài)數(shù)據(jù)是對所述存儲文件數(shù)據(jù)進行對稱加密后的數(shù)據(jù)。
S103:通過本地設(shè)備標(biāo)識從標(biāo)識公鑰矩陣中獲取對應(yīng)的第一標(biāo)識公鑰。
可理解的是,所述用戶設(shè)備中設(shè)有產(chǎn)品或用戶數(shù)字證書,所述數(shù)字證書包括:標(biāo)識公鑰矩陣和本地設(shè)備的第一標(biāo)識私鑰。
為便于生成所述數(shù)字證書,本實施方式中,參照圖2,可預(yù)先通過專用研制的密鑰生產(chǎn)系統(tǒng)生產(chǎn)出標(biāo)識私鑰矩陣和標(biāo)識公鑰矩陣,將產(chǎn)品或用戶標(biāo)識(即用于反映產(chǎn)品身份的標(biāo)識,或用于反映用戶身份的標(biāo)識)作為用戶設(shè)備標(biāo)識,并HASH到標(biāo)識私鑰矩陣通過模N整數(shù)運算生成本地設(shè)備的第一標(biāo)識私鑰,然后連同標(biāo)識公鑰矩陣一起生成產(chǎn)品或者用戶數(shù)字證書。
在本實施方式中,所述本地設(shè)備即指代用戶設(shè)備。
當(dāng)然,所述數(shù)字證書可采用密態(tài)軟件數(shù)據(jù)形式直接寫入到產(chǎn)品中使用,或者寫入到標(biāo)識USBKEY內(nèi)發(fā)放給用戶使用。
所述標(biāo)識USBKEY包括但不限于TF卡KEY和SIM卡KEY,均由對符合國密認證并許可的專用安全芯片(例如:HS08K、HS32U2、Z8D64、Z8168或Z32)作進一步研制生產(chǎn)而成,并在產(chǎn)品和用戶應(yīng)用過程中完成對產(chǎn)品或者用戶標(biāo)識和數(shù)據(jù)、指令等信息的數(shù)字簽名和加密。
所述數(shù)字證書或標(biāo)識密鑰符合組合公鑰密碼體制的證書規(guī)范。
S104:采用所述第一標(biāo)識公鑰對所述第一文件密鑰進行非對稱加密,得到第一密鑰文件。
可理解的是,所述第一標(biāo)識公鑰為與本地設(shè)備標(biāo)識對應(yīng)的標(biāo)識公鑰,也就是說,所述第一標(biāo)識公鑰與本地設(shè)備標(biāo)識之間存在一一對應(yīng)關(guān)系。
需要說明的是,采用所述第一標(biāo)識公鑰對所述第一文件密鑰進行非對稱加密,即可得到第一密鑰文件,也就是說,所述第一密鑰文件是對所述第一文件密鑰進行非對稱加密后的文件。
S105:將所述第一密鑰文件和密態(tài)數(shù)據(jù)進行數(shù)據(jù)打包,得到數(shù)據(jù)包。
可理解的是,將所述第一密鑰文件和密態(tài)數(shù)據(jù)進行數(shù)據(jù)打包,即可得到數(shù)據(jù)包,也就是說,所述數(shù)據(jù)包是將所述第一密鑰文件和密態(tài)數(shù)據(jù)進行數(shù)據(jù)打包后的數(shù)據(jù)。
在具體實現(xiàn)中,可將所述第一密鑰文件和密態(tài)數(shù)據(jù)通過私有協(xié)議算法進行數(shù)據(jù)打包。
S106:將所述數(shù)據(jù)包上傳至存儲中心。
需要說明的是,可通過有線、無線等通信方式將所述數(shù)據(jù)包上傳至存儲中心。
本實施方式實現(xiàn)了一文一密的加密策略,在出現(xiàn)用戶使用不當(dāng)導(dǎo)致某文件泄密的情況下,也不會影響其他密文的安全,從而提高了數(shù)據(jù)安全性。
圖3是本發(fā)明另一種實施方式的數(shù)據(jù)安全存儲方法的流程圖;參照圖3,所述方法包括:
S301:由隨機數(shù)發(fā)生器產(chǎn)生一個隨機數(shù)作為第一文件密鑰。
S302:對存儲文件數(shù)據(jù)通過所述第一文件密鑰進行對稱加密,得到密態(tài)數(shù)據(jù)。
S303:通過本地設(shè)備標(biāo)識從標(biāo)識公鑰矩陣中獲取對應(yīng)的第一標(biāo)識公鑰。
S304:采用所述第一標(biāo)識公鑰對所述第一文件密鑰進行非對稱加密,得到第一密鑰文件。
S305:將所述第一密鑰文件和密態(tài)數(shù)據(jù)進行數(shù)據(jù)打包,得到數(shù)據(jù)包。
S306:將所述數(shù)據(jù)包上傳至存儲中心。
需要說明的是,步驟S301~S306與圖1所示的實施方式的步驟S101~S106相同,在此不再贅述。
可理解的是,本實施方式的方法的執(zhí)行主體同樣為用戶設(shè)備。
S307:接收從存儲中心下載的數(shù)據(jù)包;
在具體實現(xiàn)中,在將所述數(shù)據(jù)包上傳至存儲中心后,在需要讀取所述存儲文件數(shù)據(jù)時,需要先接收從存儲中心下載的數(shù)據(jù)包。
S308:對所述數(shù)據(jù)包進行數(shù)據(jù)解包,得到第一密鑰文件和密態(tài)數(shù)據(jù);
可理解的是,由于所述數(shù)據(jù)包是將所述第一密鑰文件和密態(tài)數(shù)據(jù)進行數(shù)據(jù)打包獲得,故而,在對所述數(shù)據(jù)包進行數(shù)據(jù)解包后,可得到第一密鑰文件和密態(tài)數(shù)據(jù)。
S309:通過本地設(shè)備的第一標(biāo)識私鑰對所述第一密鑰文件進行解密,得到第一文件密鑰;
可理解的是,所述第一密鑰文件由用戶設(shè)備采用與第一標(biāo)識私鑰所對應(yīng)的標(biāo)識公鑰(即上述的“第一標(biāo)識公鑰”)進行非對稱加密,故而,可通過所述第一標(biāo)識私鑰對所述第一密鑰文件進行解密。
當(dāng)然,所述第一標(biāo)識私鑰與第一標(biāo)識公鑰之間存在對應(yīng)關(guān)系,也就是說,所述第一標(biāo)識私鑰與第一標(biāo)識公鑰之間可相互進行加解密。
S310:通過所述第一文件密鑰對所述密態(tài)數(shù)據(jù)進行解密,得到存儲文件數(shù)據(jù)的明文。
需要說明的是,所述密態(tài)數(shù)據(jù)是對所述存儲文件數(shù)據(jù)通過所述第一文件密鑰進行對稱加密后的數(shù)據(jù),故而,可通過所述第一文件密鑰對所述密態(tài)數(shù)據(jù)進行解密,從而得到存儲文件數(shù)據(jù)的明文。
圖4是本發(fā)明再一種實施方式的數(shù)據(jù)安全存儲方法的流程圖;參照圖4,所述方法包括:
S401:由隨機數(shù)發(fā)生器產(chǎn)生一個隨機數(shù)作為第一文件密鑰。
S402:對存儲文件數(shù)據(jù)通過所述第一文件密鑰進行對稱加密,得到密態(tài)數(shù)據(jù)。
S403:通過本地設(shè)備標(biāo)識從標(biāo)識公鑰矩陣中獲取對應(yīng)的第一標(biāo)識公鑰。
S404:采用所述第一標(biāo)識公鑰對所述第一文件密鑰進行非對稱加密,得到第一密鑰文件。
需要說明的是,步驟是S401~S404與圖1所示的實施方式的步驟S101~S104相同,在此不再贅述。
可理解的是,本實施方式的方法的執(zhí)行主體同樣為用戶設(shè)備。
S405:獲取所述存儲文件數(shù)據(jù)的第一HASH值。
可理解的是,為了防止數(shù)據(jù)的重復(fù)上傳,導(dǎo)致數(shù)據(jù)流量浪費以及網(wǎng)絡(luò)資源占用,本實施方式中,會先獲取所述存儲文件數(shù)據(jù)的第一HASH值。
S406:將所述第一HASH值上傳至所述存儲中心,以使所述存儲中心根據(jù)所述第一HASH值判斷其是否存在相同的存儲文件數(shù)據(jù)。
需要說明的是,在獲取所述第一HASH值后,可將所述第一HASH值上傳至所述存儲中心,當(dāng)然,所述存儲中心中存儲有已上傳存儲文件數(shù)據(jù)的HASH值,在所述存儲中心接收到所述第一HASH值后,可將所述第一HASH值與已上傳存儲文件數(shù)據(jù)的HASH值進行比較,由于相同數(shù)據(jù)的HASH值也相同,故而,若存儲文件數(shù)據(jù)中存在與第一HASH值相同的HASH值,則認定所述存儲中心存在相同的存儲文件數(shù)據(jù),反之,若存儲文件數(shù)據(jù)中不存在與第一HASH值相同的HASH值,則認定所述存儲中心不存在相同的存儲文件數(shù)據(jù)。
S407:接收所述存儲中心發(fā)送的反饋數(shù)據(jù)。
可理解的是,所述存儲中心在進行HASH值比較后,為向所述用戶設(shè)備反饋其判斷結(jié)果,所述存儲中心會向所述用戶設(shè)備發(fā)送反饋數(shù)據(jù)。
S408:在所述反饋數(shù)據(jù)表征不存在相同的存儲文件數(shù)據(jù)時,通過所述第一HASH值對所述文件密鑰進行加密,得到第一HASH密鑰,再將所述密鑰文件、密態(tài)數(shù)據(jù)、第一HASH密鑰和第一HASH值進行數(shù)據(jù)打包,得到所述數(shù)據(jù)包。
需要說明的是,在所述反饋數(shù)據(jù)表征不存在相同的存儲文件數(shù)據(jù)時,可直接按照正常的上傳過程,也就是說,通過所述第一HASH值對所述文件密鑰進行加密,得到第一HASH密鑰,再將所述密鑰文件、密態(tài)數(shù)據(jù)、第一HASH密鑰和第一HASH值進行數(shù)據(jù)打包,得到所述數(shù)據(jù)包。
S409:在所述反饋數(shù)據(jù)表征存在相同的存儲文件數(shù)據(jù)時,從所述反饋數(shù)據(jù)中獲取所述相同的存儲文件數(shù)據(jù)對應(yīng)的第二HASH密鑰,通過所述第一HASH值對所述第二HASH密鑰進行解密,得到第二文件密鑰,再采用所述第一標(biāo)識公鑰對所述第二文件密鑰進行非對稱加密,得到第二密鑰文件,將文件名稱等信息及所述第二密鑰文件進行數(shù)據(jù)打包,得到所述數(shù)據(jù)包。
可理解的是,在所述反饋數(shù)據(jù)表征存在相同的存儲文件數(shù)據(jù)時,所述反饋數(shù)據(jù)中還包括所述相同的存儲文件數(shù)據(jù)對應(yīng)的第二HASH密鑰,并且,通過所述第一HASH值對所述第二HASH密鑰進行解密,得到第二文件密鑰,再采用所述第一標(biāo)識公鑰對所述第二文件密鑰進行非對稱加密,得到第二密鑰文件,將文件名稱等信息及所述第二密鑰文件進行數(shù)據(jù)打包,得到所述數(shù)據(jù)包,也就是說,無需上傳密態(tài)數(shù)據(jù)。
S410:將所述數(shù)據(jù)包上傳至存儲中心。
需要說明的是,步驟S410與圖1所示的實施方式的步驟S106相同,在此不再贅述。
圖5是本發(fā)明又一種實施方式的數(shù)據(jù)安全存儲方法的流程圖;參照圖5,所述方法包括:
S501:由隨機數(shù)發(fā)生器產(chǎn)生一個隨機數(shù)作為第一文件密鑰。
S502:對存儲文件數(shù)據(jù)通過所述第一文件密鑰進行對稱加密,得到密態(tài)數(shù)據(jù)。
S503:通過本地設(shè)備標(biāo)識從標(biāo)識公鑰矩陣中獲取對應(yīng)的第一標(biāo)識公鑰。
S504:采用所述第一標(biāo)識公鑰對所述第一文件密鑰進行非對稱加密,得到第一密鑰文件。
S505:將所述第一密鑰文件和密態(tài)數(shù)據(jù)進行數(shù)據(jù)打包,得到數(shù)據(jù)包。
S506:將所述數(shù)據(jù)包上傳至存儲中心。
需要說明的是,步驟S501~S506與圖1所示的實施方式的步驟S101~S106相同,在此不再贅述。
可理解的是,本實施方式的方法的執(zhí)行主體同樣為用戶設(shè)備。
S507:從存儲中心獲取待分享存儲文件數(shù)據(jù)的第三密鑰文件。
可理解的是,為了將待分享存儲文件數(shù)據(jù)分享至另一用戶設(shè)備,可先從存儲中心獲取待分享存儲文件數(shù)據(jù)的第三密鑰文件,所述待分享存儲文件數(shù)據(jù)可以為步驟S501~S506所上傳的存儲文件數(shù)據(jù),此時,第三密鑰文件即為第一密鑰文件,當(dāng)然,所述待分享存儲文件數(shù)據(jù)也可以為之前上傳存儲中心的存儲文件數(shù)據(jù),本實施方式對此不加以限制。
S508:通過本地設(shè)備的第一標(biāo)識私鑰對所述第三密鑰文件進行解密,得到第三文件密鑰。
需要說明的是,由于所述存儲中心可能存在所述用戶設(shè)備的多個存儲文件數(shù)據(jù)對應(yīng)的數(shù)據(jù)包,在進行存儲文件數(shù)據(jù)分享時,需要先將所述第三密鑰文件進行解密。
可理解的是,由于所述待分享存儲文件數(shù)據(jù)也是由所述用戶設(shè)備上傳至所述存儲中心的,故而,所述第三密鑰文件也是由所述用戶設(shè)備通過第一標(biāo)識公鑰進行非對稱加密的,因此,可通過第一標(biāo)識私鑰對所述第三密鑰文件進行解密。
S509:根據(jù)待分享用戶ID查找對應(yīng)的待分享用戶設(shè)備標(biāo)識。
需要說明的是,由于用戶ID與用戶設(shè)備存在對應(yīng)關(guān)系,故而,可根據(jù)待分享用戶ID查找對應(yīng)的待分享用戶設(shè)備(即對應(yīng)上述的“另一用戶設(shè)備”)標(biāo)識。
S510:通過所述待分享用戶設(shè)備標(biāo)識從標(biāo)識公鑰矩陣中獲取對應(yīng)的第二標(biāo)識公鑰。
可理解的是,所述第二標(biāo)識公鑰為與待分享用戶設(shè)備標(biāo)識對應(yīng)的標(biāo)識公鑰,也就是說,所述第二標(biāo)識公鑰與待分享用戶設(shè)備標(biāo)識之間存在一一對應(yīng)關(guān)系。
S511:采用所述第二標(biāo)識公鑰對所述第三文件密鑰進行非對稱加密,得到第四密鑰文件。
需要說明的是,采用所述第二標(biāo)識公鑰對所述第三文件密鑰進行非對稱加密,即可得到第四密鑰文件,也就是說,所述第四密鑰文件是對所述第三文件密鑰進行非對稱加密后的文件。
S512:將所述第四密鑰文件、待分享用戶ID和所述分享存儲文件數(shù)據(jù)的文件地址進行數(shù)據(jù)打包,得到第一文件分享數(shù)據(jù)包。
S513:將所述第一文件分享數(shù)據(jù)包發(fā)送至管理中心,以使所述管理中心根據(jù)所述待分享用戶ID將所述第一文件分享數(shù)據(jù)包轉(zhuǎn)發(fā)至所述待分享用戶設(shè)備。
為保證所述管理中心與所述用戶設(shè)備之間的數(shù)據(jù)安全,可在數(shù)據(jù)傳輸之前,先進行安全認證,約定信道密鑰,從而采用約定的信道密碼對傳輸?shù)臄?shù)據(jù)進行加解密,當(dāng)然,不同的用戶設(shè)備與管理中心之間可約定不同的信道密鑰。
圖6是本發(fā)明還一種實施方式的數(shù)據(jù)安全存儲方法的流程圖;參照圖6,所述方法包括:
S601:由隨機數(shù)發(fā)生器產(chǎn)生一個隨機數(shù)作為第一文件密鑰。
S602:對存儲文件數(shù)據(jù)通過所述第一文件密鑰進行對稱加密,得到密態(tài)數(shù)據(jù)。
S603:通過本地設(shè)備標(biāo)識從標(biāo)識公鑰矩陣中獲取對應(yīng)的第一標(biāo)識公鑰。
S604:采用所述第一標(biāo)識公鑰對所述第一文件密鑰進行非對稱加密,得到第一密鑰文件。
S605:將所述第一密鑰文件和密態(tài)數(shù)據(jù)進行數(shù)據(jù)打包,得到數(shù)據(jù)包。
S606:將所述數(shù)據(jù)包上傳至存儲中心。
需要說明的是,步驟S601~S606與圖1所示的實施方式的步驟S101~S106相同,在此不再贅述。
可理解的是,本實施方式的方法的執(zhí)行主體同樣為用戶設(shè)備。
S607:接收管理中心發(fā)送來的第二文件分享數(shù)據(jù)包。
可理解的是,在圖5所示的實施方式中,用戶設(shè)備是將其存儲文件數(shù)據(jù)分享給另一用戶設(shè)備,但所述用戶設(shè)備也可能接收到其他用戶設(shè)備所分享過來的存儲而文件數(shù)據(jù),該過程可理解為與數(shù)據(jù)分享相反的逆向過程,先接受管理中心發(fā)送來的第二文件分享數(shù)據(jù)包。
S608:對第二文件分享數(shù)據(jù)包進行解包,得到第五密鑰文件和所述待分享存儲文件數(shù)據(jù)的文件地址。
需要說明的是,文件分享數(shù)據(jù)包通常是由密鑰文件、文件地址和用戶ID所組成,但由于用戶ID通常用于文件分享數(shù)據(jù)包的轉(zhuǎn)發(fā),故而,本步驟在進行解包時,只需要獲得所述五密鑰文件和所述待分享存儲文件數(shù)據(jù)的文件地址即可。
S609:根據(jù)本地設(shè)備的第一標(biāo)識私鑰對所述第五密鑰文件進行解密,得到第五文件密鑰。
需要說明的是,根據(jù)本地設(shè)備的第一標(biāo)識私鑰對所述第五密鑰文件進行解密,即可得到第五文件密鑰,也就是說,所述第五文件密鑰是對所述第五密鑰文件進行解密后的密鑰。
S610:根據(jù)所述待分享存儲文件數(shù)據(jù)的文件地址從所述存儲中心獲取對應(yīng)的密態(tài)數(shù)據(jù)。
S611:根據(jù)所述第五文件密鑰對獲取的密態(tài)數(shù)據(jù)進行解密,得到所述待分享存儲文件數(shù)據(jù)的明文。
參照圖7,上傳數(shù)據(jù)通過隨機數(shù)生成的對稱密鑰加密得到A密態(tài)數(shù)據(jù),然后與經(jīng)過A標(biāo)識公鑰非對稱加密的對稱密碼打包上傳到存儲中心,存儲中心將此密態(tài)數(shù)據(jù)包作為文件保存。下載的流程與上傳過程相反,對稱密碼(即對應(yīng)上述的“文件密鑰”)是通過A標(biāo)識私鑰對A密鑰文件進行非對稱解密得到的。
由圖7可以看出針對每個文件都會生成一個隨機數(shù)對稱密鑰,通過這個方法實現(xiàn)了對文件的一文一密保護。
需要指出的是每次文件上傳前會首先判斷此文件是否已被其他用戶或自己上傳到存儲中心,如果未上傳則執(zhí)行圖7所示的上傳流程,如果已上傳則執(zhí)行去重上傳操作,如下面所描述。
密態(tài)文件去重的基本原理為:當(dāng)不同用戶擁有同樣的文件時,這個文件的HASH值是一樣的,在保存密態(tài)文件時,同時保存此文件的HASH值和經(jīng)HASH值加密得到的文件HASH密鑰(如圖7所示)。當(dāng)用戶設(shè)備N上傳文件時,首先判斷存儲中心是否具有與欲上傳文件同樣HASH值得文件,如果有,則將此文件的HASH密鑰返回給這個用戶設(shè)備,用戶設(shè)備通過文件的HASH值解密此HASH密鑰得到文件的加密密鑰,而后使用用戶設(shè)備N的標(biāo)識公鑰非對稱加密此文件密鑰得到密鑰文件,將此密鑰文件與文件路徑等信息打包上傳到存儲中心。通過這個流程用戶設(shè)備N只需要生成文件對應(yīng)的密鑰文件,而無需再次上傳密鑰文件本身。這樣就實現(xiàn)了文件的去重上傳,整個流程如圖8所示。
加密云盤需要解決的一個問題是文件分享問題,本實施例基于標(biāo)識密鑰體系很好的解決了這個問題。圖9~11,顯示了用戶設(shè)備A分享文件給用戶設(shè)備B的流程。
由圖9~11可以看出文件分享的基本流程為(以用戶設(shè)備A分享文件給用戶設(shè)備B為例):
(1)用戶設(shè)備A由存儲中心下載欲分享文件的密鑰文件,采用A標(biāo)識私鑰解密后得到文件加密的對稱密鑰,然后將此密鑰采用B標(biāo)識公鑰加密得到B密鑰文件,將此密鑰文件、接收人ID、文件地址等信息打包,通過信道密鑰A加密,然后發(fā)送到管理中心。
(2)管理中心接收到用戶設(shè)備A發(fā)送來的文件分享請求,會先通過信道密鑰A解密數(shù)據(jù)包,并提取接收人ID,查找匹配到用戶設(shè)備B,然后將此分享請求發(fā)送到用戶設(shè)備B。
(3)用戶設(shè)備B接收到文件分享消息,先通過信道密鑰解密數(shù)據(jù)包,從中提取出B密鑰文件和文件地址等信息,通過非對稱解密得到分享文件的對稱密鑰,通過文件地址由存儲中心下載得到文件密態(tài)數(shù)據(jù),然后通過對稱密鑰解密得到分享的文件明文。
與現(xiàn)有技術(shù)的方式相比,上述各實施例具有以下至少一種優(yōu)點:
1、采用Pin碼驗證和標(biāo)識密鑰雙因子身份驗證,提高安全級別;
2、采用隨機數(shù)產(chǎn)生文件加密的對稱密碼,可以做到一文一密;
3、使用非對稱算法對對稱密碼進行加密,提高了對稱密碼的安全。
4、對加密后的文件再次利用加密者的標(biāo)識私鑰進行數(shù)字簽名,確保了數(shù)據(jù)在傳輸途中的安全性,防篡改。
5、把密鑰文件和密文數(shù)據(jù)合并,方便了文件的傳遞。
6、基于標(biāo)識密鑰體系分享密態(tài)文件,確保文件的安全性,又提供了非常便利的分享方式、
7、在每個端,都通過其自己的數(shù)字證書,基于用戶標(biāo)識提取該標(biāo)識公鑰,實現(xiàn)了離線方式的本地密鑰交換,極大的方便了系統(tǒng)的應(yīng)用和高強度安全保障。
8、構(gòu)建了整個云存儲系統(tǒng)的信息數(shù)據(jù),指令在任何平臺和模式下都是全密態(tài)傳輸和交互的體系。
圖12是本發(fā)明一種實施方式的用戶設(shè)備的結(jié)構(gòu)框圖;參照圖12,所述用戶設(shè)備包括:
密鑰產(chǎn)生單元1201,用于由隨機數(shù)發(fā)生器產(chǎn)生一個隨機數(shù)作為第一文件密鑰;
對稱加密單元1202,用于對存儲文件數(shù)據(jù)通過所述第一文件密鑰進行對稱加密,得到密態(tài)數(shù)據(jù);
第一公鑰獲取單元1203,用于通過本地設(shè)備標(biāo)識從標(biāo)識公鑰矩陣中獲取對應(yīng)的第一標(biāo)識公鑰;
第一非對稱加密單元1204,用于采用所述第一標(biāo)識公鑰對所述第一文件密鑰進行非對稱加密,得到第一密鑰文件;
第一數(shù)據(jù)打包單元1205,用于將所述第一密鑰文件和密態(tài)數(shù)據(jù)進行數(shù)據(jù)打包,得到數(shù)據(jù)包;
數(shù)據(jù)上傳單元1206,用于將所述數(shù)據(jù)包上傳至存儲中心。
在本發(fā)明一種可選實施例中,所述用戶設(shè)備還包括:
第一數(shù)據(jù)接收單元,用于接收從存儲中心下載的數(shù)據(jù)包;
第一數(shù)據(jù)解包單元,用于對所述數(shù)據(jù)包進行數(shù)據(jù)解包,得到第一密鑰文件和密態(tài)數(shù)據(jù);
第一密鑰解密單元,用于通過本地設(shè)備的第一標(biāo)識私鑰對所述第一密鑰文件進行解密,得到第一文件密鑰;
第一數(shù)據(jù)解密單元,用于通過所述第一文件密鑰對所述密態(tài)數(shù)據(jù)進行解密,得到存儲文件數(shù)據(jù)的明文。
在本發(fā)明一種可選實施例中,所述第一數(shù)據(jù)打包單元,具體用于獲取所述存儲文件數(shù)據(jù)的第一HASH值;將所述第一HASH值上傳至所述存儲中心,以使所述存儲中心根據(jù)所述第一HASH值判斷其是否存在相同的存儲文件數(shù)據(jù);接收所述存儲中心發(fā)送的反饋數(shù)據(jù);在所述反饋數(shù)據(jù)表征不存在相同的存儲文件數(shù)據(jù)時,通過所述第一HASH值對所述文件密鑰進行加密,得到第一HASH密鑰,再將所述密鑰文件、密態(tài)數(shù)據(jù)、第一HASH密鑰和第一HASH值進行數(shù)據(jù)打包,得到所述數(shù)據(jù)包;在所述反饋數(shù)據(jù)表征存在相同的存儲文件數(shù)據(jù)時,從所述反饋數(shù)據(jù)中獲取所述相同的存儲文件數(shù)據(jù)對應(yīng)的第二HASH密鑰,通過所述第一HASH值對所述第二HASH密鑰進行解密,得到第二文件密鑰,再采用所述第一標(biāo)識公鑰對所述第二文件密鑰進行非對稱加密,得到第二密鑰文件,將文件名稱及所述第二密鑰文件進行數(shù)據(jù)打包,得到所述數(shù)據(jù)包。
在本發(fā)明一種可選實施例中,所述用戶設(shè)備還包括:
文件獲取單元,用于從存儲中心獲取待分享存儲文件數(shù)據(jù)的第三密鑰文件;
第二密鑰解密單元,用于通過本地設(shè)備的第一標(biāo)識私鑰對所述第三密鑰文件進行解密,得到第三文件密鑰;
標(biāo)識查找單元,用于根據(jù)待分享用戶ID查找對應(yīng)的待分享用戶設(shè)備標(biāo)識;
第二公鑰獲取單元,用于通過所述待分享用戶設(shè)備標(biāo)識從標(biāo)識公鑰矩陣中獲取對應(yīng)的第二標(biāo)識公鑰;
第二非對稱加密單元,用于采用所述第二標(biāo)識公鑰對所述第三文件密鑰進行非對稱加密,得到第四密鑰文件;
第一數(shù)據(jù)打包單元,用于將所述第四密鑰文件、待分享用戶ID和所述分享存儲文件數(shù)據(jù)的文件地址進行數(shù)據(jù)打包,得到第一文件分享數(shù)據(jù)包;
數(shù)據(jù)發(fā)送單元,用于將所述第一文件分享數(shù)據(jù)包發(fā)送至管理中心,以使所述管理中心根據(jù)所述待分享用戶ID將所述第一文件分享數(shù)據(jù)包轉(zhuǎn)發(fā)至所述待分享用戶設(shè)備。
在本發(fā)明一種可選實施例中,所述用戶設(shè)備還包括:
第二數(shù)據(jù)接收單元,用于接收管理中心發(fā)送來的第二文件分享數(shù)據(jù)包;
第二數(shù)據(jù)解包單元,用于對第二文件分享數(shù)據(jù)包進行解包,得到第五密鑰文件和所述待分享存儲文件數(shù)據(jù)的文件地址;
第三密鑰解密單元,用于根據(jù)本地設(shè)備的第一標(biāo)識私鑰對所述第五密鑰文件進行解密,得到第五文件密鑰;
數(shù)據(jù)獲取單元,用于根據(jù)所述待分享存儲文件數(shù)據(jù)的文件地址從所述存儲中心獲取對應(yīng)的密態(tài)數(shù)據(jù);
第二數(shù)據(jù)解密單元,用于根據(jù)所述第五文件密鑰對獲取的密態(tài)數(shù)據(jù)進行解密,得到所述待分享存儲文件數(shù)據(jù)的明文。
對于裝置實施方式而言,由于其與方法實施方式基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施方式的部分說明即可。
應(yīng)當(dāng)注意的是,在本發(fā)明的裝置的各個部件中,根據(jù)其要實現(xiàn)的功能而對其中的部件進行了邏輯劃分,但是,本發(fā)明不受限于此,可以根據(jù)需要對各個部件進行重新劃分或者組合。
本發(fā)明的各個部件實施方式可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本裝置中,PC通過實現(xiàn)因特網(wǎng)對設(shè)備或者裝置遠程控制,精準(zhǔn)的控制設(shè)備或者裝置每個操作的步驟。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,并且程序產(chǎn)生的文件或文檔具有可統(tǒng)計性,產(chǎn)生數(shù)據(jù)報告等。應(yīng)該注意的是上述實施方式對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施方式。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
以上實施方式僅用于說明本發(fā)明,而并非對本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護范圍應(yīng)由權(quán)利要求限定。