本發明屬于數據加密認證技術領域,尤其涉及一種基于cpk認證的數據加密與存儲方法及裝置。
背景技術:
cpk即(combinedpublickey組合公鑰)密鑰體系,cpk組合公鑰提供了將現存的公鑰體制變為基于標識的公鑰體制的一種通用方法。只有基于標識的公鑰體制,才能將密鑰生成和密鑰分發有機統一起來,大大簡化了密鑰管理,同時為防止量子計算的窮舉攻擊提供了可能。
隨著計算機技術的發展,人們越來越多的日常生活及工作交流都通過計算機來完成,同時通過網絡進行溝通,這使得數據的加密與存儲安全變得舉足輕重。
越來越多的加密技術和加密軟件應用于數據加密與儲存領域,但是常用的加密軟件或者加密技術對文件加密強度不夠,可以被逆向或者暴力破解,同時加密后的文件一般存儲于本地硬盤,易于丟失。
為提高加密強度,在一些加密領域使用pki技術進行加密(publickeyinfrastructure公鑰基礎設施),pki是基于傳統公鑰密碼的證書認證體系進行加密認證,其加密強度高,即使截獲了加密數據,由于沒有私鑰,也難于破解,但是pki認證體系需要第三方信任中心的支持,同時其認證效率低,建設維護成本高。
因此,現有技術還有待發展。
技術實現要素:
本發明實施例提供一種基于cpk認證的數據加密與存儲方法及裝置,旨在解決現有常用的加密軟件或者加密技術對文件加密強度不夠,可以被逆向或者暴力破解,加密文件存儲于本地硬盤易于丟失,同時pki認證體系需要第三方信任中心的支持,認證效率低,建設維護成本高的問題。
本發明實施例是這樣實現的,一種基于cpk認證的數據加密與存儲方法,其中,所述方法包括下述步驟:
連接智能設備與具有存儲介質的終端設備,所述終端設備內存儲有基于cpk技術的加密軟件;
所述加密軟件獲取所述終端設備內預先存儲的用戶標識并將所述用戶標識發送至云端服務器或本地證書管理中心進行cpk驗證,所述用戶標識包括智能設備硬盤id、終端設備id、用戶登錄賬戶名和密碼、用戶手機號或者用戶郵箱;
cpk驗證通過則可在所述智能設備的存儲介質或終端設備的存儲介質中建立、刪除、查看、及讀寫虛擬磁盤;當所述加密軟件關閉時,所述虛擬磁盤自動隱藏;
將待加密文件數據存儲至所述虛擬磁盤,所述加密軟件對寫入所述虛擬磁盤的待加密文件數據采用cpk技術進行加密,同時上傳所述加密后的文件至云端服務器。
進一步的,所述用戶標識發送至云端服務器進行cpk驗證包括下述步驟:
獲取用戶標識,以及從標識公鑰矩陣和標識私鑰矩陣中獲取對應公鑰和私鑰,將所述用戶標識、公鑰、私鑰通過cpk技術生成密態的用戶數字證書,并存儲于終端設備;
將所述用戶數字證書發送至云端服務器或本地的證書管理中心,所述證書管理中心對所述用戶數字證書進行cpk技術解密,比對所述用戶登錄賬戶名及密碼信息;
當解密后的用戶登錄賬戶名及密碼與預存的用戶數字證書中的賬戶名及密碼相同,則驗證通過。
進一步的,所述加密軟件對寫入所述虛擬磁盤的待加密文件數據采用cpk技術進行加密過程包括下述步驟:
由隨機數發生器產生一個隨機數作為第一文件密鑰;
對待加密文件數據通過所述第一文件密鑰進行對稱加密,得到密態數據;
通過本地設備標識從標識公鑰矩陣中獲取對應的第一標識公鑰;
采用所述第一標識公鑰對所述第一文件密鑰進行非對稱加密,得到第一密鑰文件;
將所述第一密鑰文件和密態數據進行數據打包,得到數據包,存儲于本地設備的存儲空間;
將所述數據包上傳至云端服務器的存儲中心,并同步更新本地設備存儲空間內的數據包。
進一步的,將所述密鑰文件和密態數據進行數據打包,得到數據包,具體包括下述步驟:
獲取所述待加密文件數據的第一hash值;
將所述第一hash值上傳至所述存儲中心,以使所述存儲中心根據所述第一hash值判斷其是否存在相同的存儲文件數據;
接收所述存儲中心發送的反饋數據;
在所述反饋數據表征不存在相同的存儲文件數據時,通過所述第一hash值對所述文件密鑰進行加密,得到第一hash密鑰,再將所述密鑰文件、密態數據、第一hash密鑰和第一hash值進行數據打包,得到所述數據包;
在所述反饋數據表征存在相同的存儲文件數據時,從所述反饋數據中獲取所述相同的存儲文件數據對應的第二hash密鑰,通過所述第一hash值對所述第二hash密鑰進行解密,得到第二文件密鑰,再采用所述第一標識公鑰對所述第二文件密鑰進行非對稱加密,得到第二密鑰文件,將文件名稱及所述第二密鑰文件進行數據打包,得到所述數據包。
進一步的,所述智能設備包括本地計算機或者智能手機。
本發明實施還提供一種基于cpk認證的數據加密與存儲裝置,其中,所述裝置包括:
連接模塊,用于連接智能設備與具有存儲介質的終端設備,所述終端設備內存儲有基于cpk技術的加密軟件;
驗證模塊,用于所述加密軟件獲取所述終端設備內預先存儲的用戶標識并將所述用戶標識發送至云端服務器進行cpk驗證,所述用戶標識包括智能設備硬盤id、終端設備id、用戶登錄賬戶名和密碼、用戶手機號或者用戶郵箱;
虛擬磁盤操作模塊,用于cpk驗證通過則可在所述智能設備的存儲介質或終端設備的存儲介質中建立、刪除、查看、及讀寫虛擬磁盤;當所述加密軟件關閉時,所述虛擬磁盤自動隱藏;
文件加密模塊,用于將待加密文件數據存儲至所述虛擬磁盤,所述加密軟件對寫入所述虛擬磁盤的待加密文件數據采用cpk技術進行加密,同時上傳所述加密后的文件至云端服務器。
進一步的,所述驗證模塊包括:
數字證書生產模塊,用于獲取用戶標識,以及從標識公鑰矩陣和標識私鑰矩陣中獲取對應公鑰和私鑰,將所述用戶標識、公鑰、私鑰通過cpk技術生成密態的用戶數字證書,并存儲于終端設備;
賬戶信息解密模塊,用于將所述用戶數字證書發送至云端服務器或本地的證書管理中心,所述證書管理中心對所述用戶數字證書進行cpk技術解密,比對所述用戶登錄賬戶名及密碼信息;
賬戶信息驗證模塊,用于當解密后的用戶登錄賬戶名及密碼與預存的用戶數字證書中的賬戶名及密碼相同,則驗證通過。
進一步的,所述文件加密模塊包括:
密鑰產生模塊,用于由隨機數發生器產生一個隨機數作為第一文件密鑰;
對稱加密模塊,用于對待加密文件數據通過所述第一文件密鑰進行對稱加密,得到密態數據;
公鑰獲取模塊,用于通過本地設備標識從標識公鑰矩陣中獲取對應的第一標識公鑰;
非對稱加密模塊,用于采用所述第一標識公鑰對所述第一文件密鑰進行非對稱加密,得到第一密鑰文件;
數據打包模塊,用于將所述第一密鑰文件和密態數據進行數據打包,得到數據包,存儲于本地設備的存儲空間;
數據上傳模塊,用于將所述數據包上傳至云端服務器的存儲中心,并同步更新本地設備存儲空間內的數據包。
進一步的,所述數據打包模塊包括:
hash值獲取模塊,用于獲取所述待加密文件數據的第一hash值;
判斷模塊,用于將所述第一hash值上傳至所述存儲中心,以使所述存儲中心根據所述第一hash值判斷其是否存在相同的存儲文件數據;
接收模塊,用于接收所述存儲中心發送的反饋數據;
第一數據打包模塊,用于在所述反饋數據表征不存在相同的存儲文件數據時,通過所述第一hash值對所述文件密鑰進行加密,得到第一hash密鑰,再將所述密鑰文件、密態數據、第一hash密鑰和第一hash值進行數據打包,得到所述數據包;
第二數據打包模塊,用于在所述反饋數據表征存在相同的存儲文件數據時,從所述反饋數據中獲取所述相同的存儲文件數據對應的第二hash密鑰,通過所述第一hash值對所述第二hash密鑰進行解密,得到第二文件密鑰,再采用所述第一標識公鑰對所述第二文件密鑰進行非對稱加密,得到第二密鑰文件,將文件名稱及所述第二密鑰文件進行數據打包,得到所述數據包。
進一步的,所述智能設備包括本地計算機或者智能手機。
本發明實施例的基于cpk認證的數據加密與存儲方法,將cpk技術應用于數據的加密領域,采用帶有cpk加密技術的存儲介質如u盤與計算機或者手機連接后,使用u盤內的cpk加密軟件在計算機或者手機內建立一虛擬磁盤,使用者將待加密的文件放入虛擬磁盤,軟件自動對放入虛擬磁盤內的文件進行cpk加密,使用者可對虛擬磁盤內的文件進行正常的讀寫編輯操作,加密軟件退出后虛擬磁盤自動隱藏,即使其他人得到該u盤,如未通過cpk驗證則無法看到有虛擬磁盤,同時因虛擬磁盤內的文件通過cpk加密,即使通過特殊工具得到虛擬磁盤內的文件,也無法通過暴力破解得到虛擬磁盤內文件的明文,使得使用者的文件加密可靠性非常高,同時采用cpk加密認證,使得認證效率高,認證系統建設成本和維護成本低,而且由于能同步上傳至云端服務器,具有同步備份功能,防止數據的丟失。
附圖說明
圖1是本發明實施例提供的基于cpk認證的數據加密與存儲方法的實現硬件環境圖;
圖2是本發明實施例提供的基于cpk認證的數據加密與存儲方法的流程圖;
圖3是本發明實施例提供的用戶標識發送至云端服務器進行cpk驗證的流程圖;
圖4是本發明實施例提供的加密軟件對寫入所述虛擬磁盤的待加密文件數據采用cpk技術進行加密的流程圖;
圖5是本發明實施例提供的將所述密鑰文件和密態數據進行數據打包的流程圖;
圖6是本發明實施例提供的基于cpk認證的數據加密與存儲裝置的結構圖;
圖7是本發明實施例提供的基于cpk認證的數據加密與存儲裝置驗證模塊的結構圖;
圖8是本發明實施例提供的基于cpk認證的數據加密與存儲裝置文件加密模塊的結構圖;
圖9是本發明實施例提供的基于cpk認證的數據加密與存儲裝置數據打包模塊的結構圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
圖1示出了本發明實施例提供的基于cpk認證的數據加密與存儲方法的實現硬件環境,
其中20為智能設備,智能設備設置在本地,包括本地計算機21,平板電腦22、智能手機23等智能設備,10為具有存儲介質的終端設備,該設備內設置有基于cpk技術的加密軟件,包括u盤、智能手表、智能手環等終端設備,終端設備10與智能設備20之間的通信可以是有線連接方式或者是無線連接方式如藍牙通信等方式,30為云端服務器,云端服務器內設置有存儲中心、證書管理認證中心以及用戶的加密文件數據的備份等。
圖2示出了本發明實施例提供的基于cpk認證的數據加密與存儲方法的實現流程,
在步驟s201中,連接智能設備與具有存儲介質的終端設備,所述終端設備內存儲有基于cpk技術的加密軟件;
在本發明實施例中,智能設備包括本地計算機或者智能手機,具有存儲介質的終端設備包括u盤或者智能手表,終端設備內預先存儲有加密軟件,加密軟件采用cpk技術對待保護的文件進行加密,本發明實施例中,智能設備和終端設備之間采用有線或者無線方式連接。
在步驟s202中,所述加密軟件獲取所述終端設備內預先存儲的用戶標識并將所述用戶標識發送至云端服務器或本地證書管理中心進行cpk驗證,所述用戶標識包括智能設備硬盤id、終端設備id、用戶登錄賬戶名和密碼、用戶手機號或者用戶郵箱;
用戶登錄賬戶名和密碼通過在初次使用終端設備的加密軟件時注冊獲取,初次注冊時,加密軟件同時獲取與其連接后的智能設備如計算機或者智能手機的硬盤id,并將此信息與用戶注冊的賬戶信息、用戶手機號或者用戶郵箱作為識別用戶的唯一標識存儲于u盤等終端設備,用戶注冊后,再次使用該加密軟件時,軟件將用戶標識信息發送至云端服務器或本地證書管理中心進行cpk驗證,在有網絡連接時,發送至云端服務器進行cpk驗證,在無網絡連接時,發送至本地證書管理中心進行本地cpk驗證,使得cpk的驗證既能在線上也能在線下驗證,適應于有網絡或者無網絡的使用環境。
在本發明實施例中,對用戶標識進行cpk驗證包括先對用戶標識信息進行cpk加密,再對用戶標識信息進行cpk解密,用戶標識信息進行cpk解密可在本地計算機上完成或者在云端服務器上完成。利用cpk技術對用戶進行驗證,使得用戶的賬戶名和密碼信息得到高強度的加密保障,其他人即使通過暴力破解u盤上存儲的用戶信息數據,也不能得到進cpk加密后用戶信息明文,保障了用戶賬戶信息的安全,同時采用cpk認證系統,相對于傳統的pki認證系統來說,cpk認證系統不需要第三方信任中心,系統的建設維護成本低,cpk認證步驟相對pki認證步驟少,提高了認證的效率,同時,cpk認證的安全性不隨用戶數量的增加而降低,而pki認證在用戶數量達到一定規模后安全性會減弱。
在步驟s203中,cpk驗證通過則可在所述智能設備的存儲介質或終端設備的存儲介質中建立、刪除、查看、及讀寫虛擬磁盤;當所述加密軟件關閉時,所述虛擬磁盤自動隱藏;
cpk驗證賬戶名和密碼通過后,用戶即可使用加密軟件在計算機或者u盤上建立一個或多個虛擬磁盤,或者對已有的虛擬磁盤進行查看、刪除、以及復制本地計算機的文件到虛擬磁盤或者讀出虛擬磁盤內的文件至本地計算機,同時,當退出該加密軟件時,在本地計算機或者u盤上建立的虛擬磁盤會自動隱藏,當需要查看虛擬磁盤時,必須使用該u盤等終端設備連接該計算機,并啟動加密軟件,使用賬戶名和密碼登陸經過cpk驗證成功后方可查看,虛擬磁盤的自動隱藏技術進一步加強的數據的加密保護功能,一般的用戶無法發現u盤或者計算上有加密文件存儲于虛擬磁盤內。
在步驟s204中,將所述待加密文件數據存儲至所述虛擬磁盤,所述加密軟件對寫入所述虛擬磁盤的待加密文件數據采用cpk技術進行加密,同時上傳所述加密后的文件至云端服務器。
用戶將待加密文件復制或者移動至虛擬磁盤內時,加密軟件自動對文件進行cpk加密,并將加密好的文件數據存儲于虛擬磁盤內,用戶登錄加密軟件并經過cpk驗證成功后,在虛擬磁盤內看到的是文件的明文形式,可對文件進行常規的編輯讀寫操作,同時加密軟件將加密好的文件數據上傳至云端服務器進行存儲備份,防止數據的丟失,即使用戶的本地計算機或者手機內存儲的加密文件丟失,也可以在云端服務器找回,同時,對文件采用cpk加密,其他用戶即使獲取虛擬磁盤內的文件,也無法通過暴力破解獲取經過cpk加密后文件的明文,防止數據的泄密,保證了數據的安全性。
圖3示出了本發明實施例提供的用戶標識發送至云端服務器進行cpk驗證的實現流程,
在步驟s301中,獲取用戶標識,以及從標識公鑰矩陣和標識私鑰矩陣中獲取對應公鑰和私鑰,將所述用戶標識、公鑰、私鑰通過cpk技術生成密態的用戶數字證書,并存儲于終端設備;
在本發明實施例中,用戶標識包括智能設備硬盤id、終端設備id、用戶登錄賬戶名和密碼、用戶手機號或者用戶郵箱等。
在步驟s302中,將所述用戶數字證書發送至云端服務器或本地的證書管理中心,所述證書管理中心對所述用戶數字證書進行cpk技術解密,比對所述用戶登錄賬戶名及密碼信息;
在本發明實施例中,用戶數字證書的cpk解密和比對既可以在云端服務器也可以在本地智能設備的證書管理中心進行。
在步驟s303中,當解密后的用戶登錄賬戶名及密碼與預存的用戶數字證書中的賬戶名及密碼相同,則驗證通過。
數字證書中的賬戶名和密碼進行cpk驗證,數字證書中的公鑰、私鑰用戶對數字證書以及用戶待保護的文件進行加密和解密,公鑰用于加密,私鑰用于解密,驗證通過后用戶可通過加密軟件在本機計算機或者u盤上建立虛擬磁盤,并對虛擬磁盤進行常規的讀寫操作。
圖4示出了本發明實施例提供的所述加密軟件對寫入所述虛擬磁盤的待加密文件數據采用cpk技術進行加密的實現流程,
在步驟s401中,由隨機數發生器產生一個隨機數作為第一文件密鑰;
在步驟s402中,對待加密文件數據通過所述第一文件密鑰進行對稱加密,得到密態數據;
在步驟s403中,通過本地設備標識從標識公鑰矩陣中獲取對應的第一標識公鑰;
在步驟s404中,采用所述第一標識公鑰對所述第一文件密鑰進行非對稱加密,得到第一密鑰文件;
在步驟s405中,將所述第一密鑰文件和密態數據進行數據打包,得到數據包,存儲于本地設備的存儲空間;即存儲于本地計算機或者u盤上的虛擬磁盤內。
在步驟s406中,將所述數據包上傳至云端服務器的存儲中心,并同步更新本地設備存儲空間內的數據包,同步更新能防止用戶數據的丟失,保證用戶數據存儲的可靠性。
圖5示出了本發明實施例提供的將所述密鑰文件和密態數據進行數據打包,得到數據包的實現流程:
在步驟s501中,獲取所述待加密文件數據的第一hash值;
在步驟s502中,將所述第一hash值上傳至所述存儲中心,以使所述存儲中心根據所述第一hash值判斷其是否存在相同的存儲文件數據;
在步驟s503中,接收所述存儲中心發送的反饋數據;
在步驟s504中,在所述反饋數據表征不存在相同的存儲文件數據時,通過所述第一hash值對所述文件密鑰進行加密,得到第一hash密鑰,再將所述密鑰文件、密態數據、第一hash密鑰和第一hash值進行數據打包,得到所述數據包;
在步驟s505中,在所述反饋數據表征存在相同的存儲文件數據時,從所述反饋數據中獲取所述相同的存儲文件數據對應的第二hash密鑰,通過所述第一hash值對所述第二hash密鑰進行解密,得到第二文件密鑰,再采用所述第一標識公鑰對所述第二文件密鑰進行非對稱加密,得到第二密鑰文件,將文件名稱及所述第二密鑰文件進行數據打包,得到所述數據包。
圖6示出了本發明實施例提供的基于cpk認證的數據加密與存儲裝置的結構,包括:
連接模塊61,用于連接智能設備與具有存儲介質的終端設備,所述終端設備內存儲有基于cpk技術的加密軟件;
驗證模塊62,用于所述加密軟件獲取所述終端設備內預先存儲的用戶標識并將所述用戶標識發送至云端服務器進行cpk驗證,所述用戶標識包括智能設備硬盤id、終端設備id、用戶登錄賬戶名和密碼、用戶手機號或者用戶郵箱;
虛擬磁盤操作模塊63,用于cpk驗證通過則可在所述智能設備的存儲介質或終端設備的存儲介質中建立、刪除、查看、及讀寫虛擬磁盤;當所述加密軟件關閉時,所述虛擬磁盤自動隱藏;
文件加密模塊64,用于將所述待加密文件數據存儲至所述虛擬磁盤,所述加密軟件對寫入所述虛擬磁盤的待加密文件數據采用cpk技術進行加密,同時上傳所述加密后的文件至云端服務器。
圖7示出了本發明實施例提供的驗證模塊的結構,包括:
數字證書生產模塊71,用于獲取用戶標識,以及從標識公鑰矩陣和標識私鑰矩陣中獲取對應公鑰和私鑰,將所述用戶標識、公鑰、私鑰通過cpk技術生成密態的用戶數字證書,并存儲于終端設備;
賬戶信息解密模塊72,用于將所述用戶數字證書發送至云端服務器或本地的證書管理中心,所述證書管理中心對所述用戶數字證書進行cpk技術解密,比對所述用戶登錄賬戶名及密碼信息;
賬戶信息驗證模塊73,用于當解密后的用戶登錄賬戶名及密碼與預存的用戶數字證書中的賬戶名及密碼相同,則驗證通過。
圖8示出了本發明實施例提供的文件加密模塊的結構,包括:
密鑰產生模塊81,用于由隨機數發生器產生一個隨機數作為第一文件密鑰;
對稱加密模塊82,用于對待加密文件數據通過所述第一文件密鑰進行對稱加密,得到密態數據;
公鑰獲取模塊83,用于通過本地設備標識從標識公鑰矩陣中獲取對應的第一標識公鑰;
非對稱加密模塊84,用于采用所述第一標識公鑰對所述第一文件密鑰進行非對稱加密,得到第一密鑰文件;
數據打包模塊85,用于將所述第一密鑰文件和密態數據進行數據打包,得到數據包,存儲于本地設備的存儲空間;
數據上傳模塊86,用于將所述數據包上傳至云端服務器的存儲中心,并同步更新本地設備存儲空間內的數據包。
圖9示出了本發明實施例提供的數據打包模塊的結構,包括:
hash值獲取模塊851,用于獲取所述待加密文件數據的第一hash值;
判斷模塊852,用于將所述第一hash值上傳至所述存儲中心,以使所述存儲中心根據所述第一hash值判斷其是否存在相同的存儲文件數據;
接收模塊853,用于接收所述存儲中心發送的反饋數據;
第一數據打包模塊854,用于在所述反饋數據表征不存在相同的存儲文件數據時,通過所述第一hash值對所述文件密鑰進行加密,得到第一hash密鑰,再將所述密鑰文件、密態數據、第一hash密鑰和第一hash值進行數據打包,得到所述數據包;
第二數據打包模塊855,用于在所述反饋數據表征存在相同的存儲文件數據時,從所述反饋數據中獲取所述相同的存儲文件數據對應的第二hash密鑰,通過所述第一hash值對所述第二hash密鑰進行解密,得到第二文件密鑰,再采用所述第一標識公鑰對所述第二文件密鑰進行非對稱加密,得到第二密鑰文件,將文件名稱及所述第二密鑰文件進行數據打包,得到所述數據包。
本發明實施例提供的基于cpk認證的數據加密與存儲方法及裝置,將cpk技術應用于數據的加密領域,采用帶有cpk加密技術的存儲介質如u盤與計算機或者手機連接后,使用u盤內的cpk加密軟件在計算機或者手機內建立一虛擬磁盤,使用者將待加密的文件放入虛擬磁盤,軟件自動對放入虛擬磁盤內的文件進行cpk加密,使用者可對虛擬磁盤內的文件進行正常的讀寫編輯操作,加密軟件退出后虛擬磁盤自動隱藏,即使其他人得到該u盤,如未通過cpk驗證則無法看到有虛擬磁盤,同時因虛擬磁盤內的文件通過cpk加密,即使通過特殊工具得到虛擬磁盤內的文件,也無法通過暴力破解得到虛擬磁盤內文件的明文,使得使用者的文件加密可靠性非常高,同時采用cpk加密認證,使得認證效率高,認證系統建設成本和維護成本低,而且由于能同步上傳至云端服務器,具有同步備份功能,防止數據的丟失。
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護范圍之內。