本發明涉及計算機技術領域,特別涉及數據加密方法、加密方設備及數據解密方法、解密方設備。
背景技術:
隨著科技和互聯網技術的飛速發展,在帶給人們便利的同時,也存在著很多安全隱患。在如今社會,信息安全已成為人們密切關注的問題,涉及到私人敏感數據、技術、財務、軍工等機密數據。
目前,為了防止用戶個人信息等敏感數據被竊取,產生了大量的加密軟件,對需要保護的數據進行加密。在加密過程中,通過加密算法和加密密鑰將明文轉變為密文,而在解密算法中解密則是通過解密算法和解密密鑰將密文恢復為明文。
然而,在密鑰已經確定時,明文與密碼是一一對應的關系,可以采用窮舉法等暴力方式進行破解,造成目標數據泄露。因此,被加密的目標數據的安全性較低。
技術實現要素:
本發明實施例提供了數據加密方法、加密方設備及數據解密方法、解密方設備,能夠提高被加密的目標數據的安全性。
本發明實施例提供了一種數據加密方法,該方法可以應用于加密方設備,可以包括以下步驟:
創建硬件密鑰,將所述硬件密鑰與所述加密方設備綁定;
根據所述硬件密鑰,創建所述硬件密鑰的子密鑰;
利用所述硬件密鑰加密所述子密鑰,生成第一文件;
創建軟件加密密鑰;
利用所述軟件加密密鑰加密目標數據,生成第二文件;
利用所述子密鑰加密所述軟件加密密鑰,生成第三文件。
優選的,所述創建硬件密鑰,將所述硬件密鑰與所述加密方設備綁定,包括:
利用安裝于所述加密方設備的TPM(Trusted Platform Module,可信賴平臺模塊)安全芯片創建所述硬件密鑰,利用所述TPM安全芯片保存所述硬件密鑰。
優選的,所述創建硬件密鑰,包括:
根據公式一確定密鑰長度;
其中,所述公式一為:n=q×p;
其中,q用于表征第一預設質數、p用于表征第二預設質數、n用于表征所述密鑰長度;
根據所述密鑰長度和公式二,確定小于等于所述密鑰長度的數中與所述密鑰長度互質的數的第一數量;
其中,所述公式二為:
其中,為所述第一數量;
確定隨機一個與所述第一數量互質的第一目標數,且所述第一目標數為小于所述第一數量的正數;
根據所述第一數量、所述第一目標數和公式三,確定第二目標數;
其中,所述公式三為:
其中,e為所述第一目標數,d為所述第二目標數;
根據所述第一目標數、所述第二目標數和所述密鑰長度,確定所述硬件密鑰包括:私鑰和公鑰,其中所述私鑰為(n,d),所述公鑰為(n,e);
所述利用所述硬件密鑰加密所述子密鑰,生成第一文件,包括:
根據公式四和所述公鑰,加密所述子密鑰,生成第一文件,其中,所述公式四為:
C≡M^emod n;
其中,C為所述第一文件,M為所述子密鑰。
優選的,在所述利用所述子密鑰加密所述軟件加密密鑰之后,進一步包括:
判斷利用所述子密鑰加密所述軟件加密密鑰是否成功,若是,則刪除所述軟件加密密鑰,生成所述第三文件;否則,利用所述軟件加密密鑰,解密所述第二文件,獲取所述目標數據。
本發明實施例提供了一種加密方設備,該加密方設備可以包括:加密硬件單元和加密軟件單元,其中,
所述加密硬件單元,用于創建硬件密鑰,將所述硬件密鑰與所述加密方設備綁定,根據所述硬件密鑰,創建所述硬件密鑰的子密鑰,利用所述硬件密鑰加密所述子密鑰,生成第一文件,以及利用所述子密鑰加密軟件加密密鑰,生成第三文件;
所述加密軟件單元,用于創建所述軟件加密密鑰,利用所述軟件加密密鑰加密目標數據,生成第二文件。
優選地,所述加密硬件單元,在執行所述創建硬件密鑰時,用于:根據公式一確定密鑰長度;根據所述密鑰長度和公式二,確定小于等于所述密鑰長度的數中與所述密鑰長度互質的數的第一數量;確定隨機一個與所述第一數量互質的第一目標數,且所述第一目標數為小于所述第一數量的正數;根據所述第一數量、所述第一目標數和公式三,確定第二目標數;根據所述第一目標數、所述第二目標數和所述密鑰長度,確定所述硬件密鑰,所述硬件密鑰包括:私鑰和公鑰;
其中,所述私鑰為(n,d),所述公鑰為(n,e);e為所述第一目標數,d為所述第二目標數;
所述公式一為:n=q×p;
q用于表征第一預設質數、p用于表征第二預設質數、n用于表征所述密鑰長度;
所述公式二為:
為所述第一數量;
其中,所述公式三為:
所述加密硬件單元,在執行所述利用所述硬件密鑰加密所述子密鑰,生成第一文件時,用于:根據公式四和所述公鑰,加密所述子密鑰,生成第一文件,其中,所述公式四為:
C≡M^emod n;
其中,C為所述第一文件,M為所述子密鑰。
優選的,所述加密硬件單元,包括:TPM安全芯片,其中,
所述TMP安全芯片,安裝于所述加密方設備中,具體用于創建所述硬件密鑰,并保存所述硬件密鑰。
優選的,所述加密硬件單元,在執行所述利用所述子密鑰加密所述軟件加密密鑰之后,進一步用于判斷利用所述子密鑰加密所述軟件加密密鑰是否成功,若是,則刪除所述軟件加密密鑰,生成所述第三文件,否則,向所述加密軟件單元輸出加密失敗信號;
所述加密軟件單元,進一步用于在接收到所述加密硬件單元輸出的所述加密失敗信號后,利用所述軟件加密密鑰,解密所述第二文件,獲取所述目標數據。
本發明實施例提供了一種數據解密方法,該方法可以應用于解密方設備,可以包括以下步驟:
利用與所述解密方設備綁定的硬件密鑰,解密所述第一文件,獲取所述硬件密鑰的子密鑰;
利用所述子密鑰,解密所述第三文件,獲取軟件加密密鑰;
利用所述軟件加密密鑰,解密所述第二文件,獲取目標數據。
優選的,在所述利用與所述解密方設備綁定的硬件密鑰,解密所述第一文件之前,進一步包括:
從安裝于所述解密方設備的TPM安全芯片獲取所述硬件密鑰;
和/或,
所述利用與所述解密方設備綁定的硬件密鑰,解密所述第一文件,獲取所述硬件密鑰的子密鑰,包括:
根據公式五和所述硬件密鑰,解密所述第一文件,獲取所述硬件密鑰的子密鑰,其中,所述公式五為:
M≡C^dmod n;
其中,C為所述第一文件,M為所述子密鑰,(n,d)為所述硬件密鑰中的私鑰,n為密鑰長度。
本發明實施例提供了一種解密方設備,該解密方設備可以包括解密硬件單元和解密軟件單元,其中,
所述解密硬件單元,用于利用與所述解密方設備綁定的硬件密鑰,解密所述第一文件,獲取所述硬件密鑰的子密鑰,以及利用所述子密鑰,解密所述第三文件,獲取軟件加密密鑰;
所述解密軟件單元,用于利用所述軟件加密密鑰,解密所述第二文件,獲取目標數據。:
優選的,所述解密硬件單元,包括:TPM安全芯片,其中,
所述TMP安全芯片,安裝于所述解密方設備中,保存有所述硬件密鑰;
所述TMP安全芯片,用于在所述利用與所述解密方設備綁定的硬件密鑰,解密所述第一文件之前,進一步用于獲取保存的所述硬件密鑰。
優選的,所述解密硬件單元,在執行所述利用與所述解密方設備綁定的硬件密鑰,解密所述第一文件,獲取所述硬件密鑰的子密鑰時,用于:根據公式五和所述硬件密鑰,解密所述第一文件,獲取所述硬件密鑰的子密鑰,其中,所述公式五為:
M≡C^d mod n;
其中,C為所述第一文件,M為所述子密鑰,(n,d)為所述硬件密鑰中的私鑰,n為密鑰長度。
本發明實施例提供了數據加密方法、加密方設備及數據解密方法、解密方設備,通過創建硬件密鑰,并且將該硬件密鑰與加密方設備綁定,再由該硬件密鑰,創建該硬件密鑰的子密鑰,并且利用該硬件密鑰加密子密鑰,與此同時創建軟件加密密鑰,利用該軟件加密密鑰加密目標數據,最后利用子密鑰加密軟件加密密鑰。由于將硬件密鑰與加密方設備綁定,然后使用硬件密鑰的子密鑰對軟件密鑰進行加密,即使采用窮舉法等暴力方式對軟件密鑰進行破解,獲取到軟件密鑰也不能夠解密出目標數據,從而能夠提高被加密的目標數據的安全性。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發明一個實施例提供的一種數據加密方法的流程圖;
圖2是本發明一個實施例提供的一種加密方設備的結構示意圖;
圖3是本發明一個實施例提供的另一種加密方設備的結構示意圖;
圖4是本發明一個實施例提供的一種數據解密方法的流程圖;
圖5是本發明一個實施例提供的又一種解密方設備的結構示意圖;
圖6是本發明一個實施例提供的再一種解密方設備的結構示意圖;
圖7是本發明一個實施例提供的一種從數據加密到數據解密的方法的流程圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例,基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動的前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
如圖1所示,本發明實施例提供了一種數據加密方法,該方法可以應用于加密方設備,可以包括以下步驟:
步驟101:創建硬件密鑰,將所述硬件密鑰與所述加密方設備綁定。
步驟102:根據所述硬件密鑰,創建所述硬件密鑰的子密鑰。
步驟103:利用所述硬件密鑰加密所述子密鑰,生成第一文件。
步驟104:創建軟件加密密鑰。
步驟105:利用所述軟件加密密鑰加密目標數據,生成第二文件。
步驟106:利用所述子密鑰加密所述軟件加密密鑰,生成第三文件。
在圖1所示的實施例中,通過創建硬件密鑰,并且將該硬件密鑰與加密方設備綁定,再由該硬件密鑰,創建該硬件密鑰的子密鑰,并且利用該硬件密鑰加密子密鑰,與此同時創建軟件加密密鑰,利用該軟件加密密鑰加密目標數據,最后利用子密鑰加密軟件加密密鑰。由于將硬件密鑰與加密方設備綁定,然后使用硬件密鑰的子密鑰對軟件密鑰進行加密,即使采用窮舉法等暴力方式對軟件密鑰進行破解,獲取到軟件密鑰也不能夠解密出目標數據,從而能夠提高被加密的目標數據的安全性。
在本發明一個實施例中,為了提高硬件密碼的安全性,所述創建硬件密鑰,將所述硬件密鑰與所述加密方綁定,包括:
利用安裝于所述加密方設備的TPM安全芯片創建所述硬件密鑰,利用所述TPM安全芯片保存所述硬件密鑰。
值得說明的是,TPM安全芯片是指符合TPM標準的安全芯片,它能有效地保護PC、防止非法用戶訪問。在該實施例中,通過TPM安全芯片創建硬件密碼,而該硬件密碼由TPM安全芯片中隨機數計算而出,從而無法導出到TPM安全芯片外,因此TPM安全芯片生成的密鑰只能由該TPM安全芯片使用。又由于該TPM安全芯片與加密方設備綁定,因此除該加密方設備以外的任何物理設備均無法獲取該硬件密鑰,從而提高了硬件密碼的安全性,進一步提高了被加密的目標數據的安全性硬件密碼的安全性。
在該實施例中,創建硬件密鑰需要使用TPM創建根密鑰命令,該命令須獲取TPM安全芯片所有者的授權值,才能正常使用;同時也要獲取創建的根密鑰的授權值,才可以創建根密鑰;創建根密鑰的子密鑰時需輸入根密鑰的授權值。根密鑰創建完畢后,以及創建子密鑰后,需要對根密鑰和子密鑰進行加。而在加載過程中,可能存在TPM安全芯片中的句柄未使用完畢的情況,從而造成無法加載新的密鑰的問題,因此引起加載失敗,故在加載失敗后須返回TPM安全芯片加載失敗的錯誤提示信息。
在本發明一個實施例中,為了確保硬件密鑰的安全性,所述創建所述硬件密鑰,包括:
根據公式一確定密鑰長度;
其中,所述公式一為:n=q×p;
其中,q用于表征第一預設質數、p用于表征第二預設質數、n用于表征所述密鑰長度;
根據所述密鑰長度和公式二,確定小于等于所述密鑰長度的數中與所述密鑰長度互質的數的第一數量;
其中,所述公式二為:
其中,為所述第一數量;
確定隨機一個與所述第一數量互質的第一目標數,且所述第一目標數為小于所述第一數量的正數;
根據所述第一數量、所述第一目標數和公式三,確定第二目標數;
其中,所述公式三為:
其中,e為所述第一目標數,d為所述第二目標數;
根據所述第一目標數、所述第二目標數和所述密鑰長度,確定所述硬件密鑰,所述硬件密鑰包括:私鑰和公鑰,其中,所述私鑰為(n,d),所述公鑰為(n,e);
所述利用所述硬件密鑰加密所述子密鑰,生成第一文件,包括:
根據公式四和所述公鑰,加密所述子密鑰,生成第一文件,其中,所述公式四為:
C≡M^emod n;
其中,C為所述第一文件,M為所述子密鑰。
值得說明的是,n的長度用于表征密鑰長度。例如:在一個密鑰中,n=3233,若將n寫成二進制形式就是110010100001,一共有12位,所以這個密鑰就是12位。而密鑰的長度也可以是1024位,重要場合也可以是2048位。歐拉函數是指小于等于n的數中與n互質的數的數目。表示e與互質,其中表示e和d的乘積被除的余數為1。同樣可以使用上述方法創建硬件密鑰的子密鑰,使子密鑰的安全性更高。
例如:p=61,q=53,則n=61×53=3233;則其中e為任意小于且與互質的數,這里取e=17,則d=2753。因此,得到一對非對稱密鑰(3233,17)和(3233,2753),其中公鑰是(3233,17),私鑰是(3233,2753)。
在該實施例中,對于子密鑰的加密,可以將子密鑰比特串分組,并且使每個分組對應的十進制數小于n,然后對子密鑰的每個分組M,利用公式四進行加密。其中,公式四表征M的e次方除以n的余數是C。
在本發明一個實施例中,在所述利用所述子密鑰加密所述軟件加密密鑰之后,進一步包括:
判斷利用所述子密鑰加密所述軟件加密密鑰是否成功,若是,則刪除所述軟件加密密鑰,生成所述第三文件;否則,利用所述軟件加密密鑰,解密所述第二文件,獲取所述目標數據。
在該實施例中,使用硬件密鑰子密鑰加密軟件加密密鑰時,可能會出現當前獲取的當前授權值與創建硬件密碼是獲取的授權值不用,而導致加密失敗的情況,因此需要判斷硬件密鑰子密鑰加密軟件加密密鑰是否成功。
如圖2所示,本發明實施例提供了一種加密方設備,該物理設備可以包括:加密硬件單元201和加密軟件單元202,其中,
所述加密硬件單元201,用于創建硬件密鑰,將所述硬件密鑰與所述加密方設備綁定,根據所述硬件密鑰,創建所述硬件密鑰的子密鑰,利用所述硬件密鑰加密所述子密鑰,生成第一文件,以及利用所述子密鑰加密軟件加密密鑰,生成第三文件;
所述加密軟件單元202,用于創建所述軟件加密密鑰,利用所述軟件加密密鑰加密目標數據,生成第二文件。
在本發明一個實施例中,所述加密硬件單元,在執行所述創建硬件密鑰時,用于:根據公式一確定密鑰長度;根據所述密鑰長度和公式二,確定小于等于所述密鑰長度的數中與所述密鑰長度互質的數的第一數量;確定隨機一個與所述第一數量互質的第一目標數,且所述第一目標數為小于所述第一數量的正數;根據所述第一數量、所述第一目標數和公式三,確定第二目標數;根據所述第一目標數、所述第二目標數和所述密鑰長度,確定所述硬件密鑰,所述硬件密鑰包括:私鑰和公鑰;
其中,所述私鑰為(n,d),所述公鑰為(n,e);e為所述第一目標數,d為所述第二目標數;
所述公式一為:n=q×p;
q用于表征第一預設質數、p用于表征第二預設質數、n用于表征所述密鑰長度;
所述公式二為:
為所述第一數量;
其中,所述公式三為:
所述加密硬件單元,在執行所述利用所述硬件密鑰加密所述子密鑰,生成第一文件時,用于:根據公式四和所述公鑰,加密所述子密鑰,生成第一文件,其中,所述公式四為:
C≡M^emod n;
其中,C為所述第一文件,M為所述子密鑰。
如圖3所示,在本發明一個實施例中,為了提高硬件密碼的安全性,所述加密硬件單元,包括:TPM安全芯片301,其中,
所述TMP安全芯片301,安裝于所述加密方設備中,具體用于創建所述硬件密鑰,并保存所述硬件密鑰。
值得說明的是,TPM安全芯片是指符合TPM標準的安全芯片,它能有效地保護PC、防止非法用戶訪問。在該實施例中,通過TPM安全芯片創建硬件密碼,而該硬件密碼由TPM安全芯片中隨機數計算而出,從而無法導出到TPM安全芯片外,因此TPM安全芯片生成的硬件密鑰只能由該TPM安全芯片使用。又由于該TPM安全芯片與加密方設備綁定,因此除該加密方設備以外的任何物理設備均無法獲取該硬件密鑰,從而提高了硬件密碼的安全性,進一步提高了被加密的目標數據的安全性硬件密碼的安全性。
在本發明一個實施例中,為了確保加密硬件單元對加密軟件單元加密成功,所述加密硬件單元,在執行所述利用所述子密鑰加密所述軟件加密密鑰之后,進一步用于判斷利用所述子密鑰加密所述軟件加密密鑰是否成功,若是,則刪除所述軟件加密密鑰,生成所述第三文件,否則,向所述加密軟件單元輸出加密失敗信號;
所述加密軟件單元,進一步用于在接收到所述加密硬件單元輸出的所述加密失敗信號后,利用所述軟件加密密鑰,解密所述第二文件,獲取所述目標數據。
在該實施例中,加密成功后刪除軟件加密密鑰,能夠有效保護軟件密鑰不被盜取泄露;而在加密失敗后恢復獲取目標數據,能有效防止目標數據的丟失。
上述設備內的各單元之間的信息交互、執行過程等內容,由于與本發明方法實施例基于同一構思,具體內容可參見本發明方法實施例中的敘述,此處不再贅述。
如圖4所示,本發明實施例提供了一種數據解密方法,該方法可以應用于解密方設備,可以包括以下步驟:
步驟401:利用與所述解密方設備綁定的硬件密鑰,解密所述第一文件,獲取所述硬件密鑰的子密鑰。
步驟402:利用所述子密鑰,解密所述第三文件,獲取軟件加密密鑰。
步驟403:利用所述軟件加密密鑰,解密所述第二文件,獲取目標數據。
在該實施例中,一個密鑰由一個公鑰和一個私鑰組成,使用公鑰通過加密算法加密數據后,需要使用相應的私鑰進行解密。
在本發明一個實施例中,為了能夠成功解密數據,在所述利用與所述解密方設備綁定的硬件密鑰,解密所述第一文件之前,進一步包括:
從安裝于所述解密方設備的TPM安全芯片獲取所述硬件密鑰。
值得說明的是,TPM安全芯片是指符合TPM標準的安全芯片,它能有效地保護PC、防止非法用戶訪問。在該實施例中,通過TPM安全芯片創建硬件密碼,而該硬件密碼由TPM安全芯片中隨機數計算而出,從而無法導出到TPM安全芯片外,因此TPM安全芯片生成的密鑰只能由該TPM安全芯片使用。而對于想解密該TPM安全芯片加密的數據,也只能使用該TPM安全芯片獲取硬件密鑰進行解密。
在本發明一個實施例中,為了能夠獲取到硬件密鑰的子密鑰,所述利用與所述解密方設備綁定的硬件密鑰,解密所述第一文件,獲取所述硬件密鑰的子密鑰,包括:
根據公式五和所述硬件密鑰,解密所述第一文件,獲取所述硬件密鑰的子密鑰,其中,所述公式五為:
M≡C^dmod n;
其中,C為所述第一文件,M為所述子密鑰,(n,d)為所述硬件密鑰中的私鑰,n為密鑰長度。
在該實施例中,通過公式五,能夠順利的將包含有子密鑰的密文轉換為明文,從而獲取到硬件密鑰的子密鑰。其中,公式五表征C的d次方除以n的余數為M。
如圖5所示,本發明實施例提供了一種解密方設備,該設備可以包括:解密硬件單元501和解密軟件單元502,其中,
所述解密硬件單元501,用于利用與所述解密方設備綁定的硬件密鑰,解密所述第一文件,獲取所述硬件密鑰的子密鑰,以及利用所述子密鑰,解密所述第三文件,獲取軟件加密密鑰;
所述解密軟件單元502,用于利用所述軟件加密密鑰,解密所述第二文件,獲取目標數據。
如圖6所示,在本發明一個實施例中,為了能夠成功解密被加密數據,所述解密硬件單元,包括:TPM安全芯片601,其中,
所述TMP安全芯片601,安裝于所述解密方設備中,保存有所述硬件密鑰;
所述TMP安全芯片601,用于在所述利用與所述解密方設備綁定的硬件密鑰,解密所述第一文件之前,進一步用于獲取保存的所述硬件密鑰。
值得說明的是,TPM安全芯片是指符合TPM標準的安全芯片,它能有效地保護PC、防止非法用戶訪問。在該實施例中,通過TPM安全芯片創建硬件密碼,而該硬件密碼由TPM安全芯片中隨機數計算而出,從而無法導出到TPM安全芯片外,因此TPM安全芯片生成的密鑰只能由該TPM安全芯片使用。而對于想解密該TPM安全芯片加密的數據,也只能使用該TPM安全芯片獲取硬件密鑰進行解密。
在本發明一個實施例中,為了能夠順利的獲取到硬件密鑰的子密鑰,所述解密硬件單元,在執行所述利用與所述解密方設備綁定的硬件密鑰,解密所述第一文件,獲取所述硬件密鑰的子密鑰時,用于:根據公式五和所述硬件密鑰,解密所述第一文件,獲取所述硬件密鑰的子密鑰,其中,所述公式五為:
M≡C^dmod n;
其中,C為所述第一文件,M為所述子密鑰,(n,d)為所述硬件密鑰中的私鑰,n為密鑰長度。
上述設備內的各單元之間的信息交互、執行過程等內容,由于與本發明方法實施例基于同一構思,具體內容可參見本發明方法實施例中的敘述,此處不再贅述。
下面以TMP安全芯片為硬件加密單元為例,對從數據加密到數據解密的方法進行詳細說明。
如圖7所示,本發明實施例提供了一種從數據加密到數據解密的方法,該方法可以包括以下步驟:
步驟701:利用安裝于加密方設備的TPM安全芯片創建硬件密鑰,并利用TPM安全芯片保存硬件密鑰。
在該步驟中,TPM安全芯片采用存儲加密的方式保存密鑰,即每一個密鑰的私鑰都由其父密鑰加密保護,該結構的最頂層為根密鑰,也就是本實施例中的硬件密鑰。根密鑰根據TPM安全芯片中隨機數計算而出,無法導出到TPM芯片外,因此該TPM安全芯片生成的密鑰的私鑰只能由該TPM使用。
步驟702:根據硬件密鑰,創建硬件密鑰的子密鑰。
在該步驟中,根密鑰創建完畢后,根據根密鑰由上述給出的公式創建子密鑰,并對所創建的所有密鑰進行加載。在加載密鑰時可能存在TPM安全芯片中的句柄未使用完畢的情況,造成無法加載新的密鑰的問題,故創建密鑰并加載失敗后,須返回TPM安全芯片錯誤提示信息。
步驟703:利用硬件密鑰加密子密鑰,生成第一文件。
在該步驟中,硬件密鑰創建并加密子密鑰后,會將明文轉換為密文,也就是生成第一文件。
步驟704:創建軟件加密密鑰。
在該步驟中,使用OpenSSL(Open Secure Sockets Layer,開放式安全套接層協議)創建AES(Advanced Encryption Standard,高級加密標準)對稱密鑰。使用OpenSSL中的AES_set_encrypt_key接口生成密鑰,進行軟件加密密鑰的創建。
步驟705:利用軟件加密密鑰加密目標數據,生成第二文件。
在該步驟中,使用OpenSSL創建的AES對稱密鑰對目標數據進行加密,通過使用AES_cbc_encrypt接口加密目標數據,將公鑰和目標數據加密成密文,生成第二文件。
步驟706:利用子密鑰加密軟件加密密鑰,判斷利用子密鑰加密軟件加密密鑰是否成功,若是,則執行步驟707;否則,執行步驟708。
在該步驟中,使用TPM安全芯片創建的密鑰加密OpenSSL創建的軟件加密密鑰。
步驟707:刪除軟件加密密鑰,生成第三文件。
在該步驟中,將軟件加密密鑰刪除,可以有效的防止軟件加密密鑰被竊取而泄露。
步驟708:利用軟件加密密鑰,解密第二文件,獲取目標數據。
在該步驟中,在加密失敗時,利用軟件加密密鑰恢復目標數據,能夠有效的防止目標數據丟失的情況。
步驟709:從安裝于解密方設備的TPM安全芯片獲取硬件密鑰。
在該步驟中,由于硬件密鑰是由TPM安全芯片中隨機數計算而出,無法導出到該TPM安全芯片外,因此在解密過程中,使用同一個TPM安全芯片才能夠獲取到硬件密鑰。
步驟710:利用硬件密鑰,解密第一文件,獲取硬件密鑰的子密鑰。
在該步驟中,使用硬件密鑰將第一文件,也就是子密鑰的密文轉換為明文,獲取硬件密鑰的子密鑰。
步驟711:利用子密鑰,解密第三文件,獲取軟件加密密鑰。
在該步驟中,使用子密鑰將第三文件,也就是軟件加密密鑰的密文轉換為明文,從而獲取軟件加密密鑰。
步驟712:利用軟件加密密鑰,解密第二文件,獲取目標數據。
在該步驟中,使用軟件加密密鑰將第二文件,也就是包含有目標數據的密文轉換為明文,從而獲取目標數據。
綜上,本發明的實施例至少具有以下有益效果:
1、在本發明的實施例中,通過創建硬件密鑰,并且將該硬件密鑰與加密方設備綁定,再由該硬件密鑰,創建該硬件密鑰的子密鑰,并且利用該硬件密鑰加密子密鑰,與此同時創建軟件加密密鑰,利用該軟件加密密鑰加密目標數據,最后利用子密鑰加密軟件加密密鑰。由于將硬件密鑰與加密方設備綁定,然后使用硬件密鑰的子密鑰對軟件密鑰進行加密,即使采用窮舉法等暴力方式對軟件密鑰進行破解,獲取到軟件密鑰也不能夠解密出目標數據,從而能夠提高被加密的目標數據的安全性。
2、在本發明的實施例中,通過使用TPM安全芯片創建硬件密鑰,而該硬件密碼由TPM安全芯片中隨機數計算而出,從而無法導出到TPM安全芯片外,因此TPM安全芯片生成的密鑰只能由該TPM安全芯片使用。又由于該TPM安全芯片與加密方設備綁定,因此除該加密方設備以外的任何物理設備均無法獲取該硬件密鑰,從而提高了硬件密碼的安全性,進一步提高了被加密的目標數據的安全性硬件密碼的安全性。
3、在本發明的實施例中,通過使用公式一、公式二以及公式三創建硬件密鑰,并且根據硬件密鑰創建和加密硬件密鑰的子密鑰,使硬件密鑰和子密鑰的安全性更高。
4、在本發明的實施例中,通過判斷子密鑰加密軟件加密密鑰是否成功,一方面,子密鑰加密軟件加密密鑰成功,刪除軟件加密密鑰,可以保證軟件加密密鑰的安全;另一方面,子密鑰加密軟件加密密鑰不成功,恢復目標數據,可以防止目標數據的丟失。
需要說明的是,在本文中,諸如第一和第二之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個〃·····”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同因素。
本領域普通技術人員可以理解:實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲在計算機可讀取的存儲介質中,該程序在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質中。
最后需要說明的是:以上所述僅為本發明的較佳實施例,僅用于說明本發明的技術方案,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內所做的任何修改、等同替換、改進等,均包含在本發明的保護范圍內。