本發明涉及扇區加密解密,尤其涉及一種基于安全存儲的扇區加密方法、解密方法和裝置。
背景技術:
1、隨著企業信息化應用技術逐步完善,信息量大量的積累和廣泛的流通,各種造成商業機密和技術機密泄露的渠道無處不在,迫切需要簡單、方便、快捷的信息安全防護產品。
2、現有技術中,在扇區加密技術中,當數據被寫入磁盤時,加密算法會先對數據進行加密,然后再將其放置到磁盤的相應扇區中。相反,當需要讀取這些數據時,系統會自動解密扇區中的數據,使其成為可讀的明文形式。這種加密方式發生在操作系統和存儲設備的低級別交互中,對上層的應用程序和用戶通常是透明的,即用戶在訪問文件時不會感覺到加密和解密的過程。這種加密方法一般是軟件加密方法,如果加密算法存在漏洞或被破解,或者密鑰管理不善,那么加密的扇區數據就可能面臨泄露的風險,安全性不佳;軟件加密扇區塊數據通常需要編寫復雜的代碼來實現,增加了開發和維護的難度和成本。同時,對于雙控存儲管理系統,數據需要同步,二者被加密的數據相同,這就導致如果系統中一方的數據被破解,則另一方的數據也被破解,安全性不佳。
技術實現思路
1、為了解決現有技術中存在的上述問題,本發明提供了一種基于安全存儲的扇區加密方法、解密方法和裝置、電子設備及存儲介質。本發明要解決的技術問題通過以下技術方案實現:
2、本發明實施例第一方面提供一種基于安全存儲的扇區加密方法,包括以下步驟:
3、響應于寫入數據請求,從數據庫中獲取基于密碼卡創建的扇區加密卷密鑰;其中,所述扇區加密卷密鑰包括:扇區號密鑰和數據密鑰;
4、根據待寫入數據的長度確定至少一個待寫入扇區的扇區號;
5、將每個扇區號通過所述扇區號密鑰調用所述密碼卡進行加密,得到每個扇區號的扇區號密文;
6、將所述扇區號密文進行有限域乘法運算,得到運算結果;
7、將所述運算結果與對應的所述待寫入扇區的待寫入數據進行按位異或運算,得到明文異或數據;
8、使用所述數據密鑰調用所述密碼卡對所述明文異或數據進行加密,得到加密數據;
9、將所述加密數據與對應的所述運算結果進行按位異或運算,得到密文數據。
10、在本發明的一個實施例中,所述方法還包括:
11、創建扇區加密卷,并調用密碼卡生成扇區加密卷密鑰;
12、通過系統保護密鑰對所述扇區加密卷密鑰進行加密,將得到的加密卷密鑰密文存儲至數據庫中。
13、在本發明的一個實施例中,所述將每個扇區號通過所述扇區號密鑰調用所述密碼卡進行加密,得到每個扇區號的扇區號密文,包括:
14、將每個扇區號通過所述扇區號密鑰調用所述密碼卡的對稱加密算法進行加密,得到每個扇區號的扇區號密文;其中,所述扇區號密文為16字節。
15、在本發明的一個實施例中,所述將所述扇區號密文進行有限域乘法運算,得到運算結果,包括:
16、將所述扇區號密文與2j進行有限域乘法運算得到512字節的運算結果;
17、其中,j表示扇區內的分組序號,每個扇區內以16字節進行平均分組,j的取值范圍為1-32。
18、本發明實施例第二方面提供一種基于安全存儲的扇區解密方法,包括以下步驟:
19、響應于讀取數據請求,從數據庫中獲取基于密碼卡創建的扇區加密卷密鑰;其中,所述扇區加密卷密鑰包括:扇區號密鑰和數據密鑰;
20、根據待讀取數據的長度確定待讀取扇區的扇區號;
21、將每個扇區號通過所述扇區號密鑰調用所述密碼卡進行加密,得到每個扇區號的扇區號密文;
22、將所述扇區號密文進行有限域乘法運算,得到運算結果;
23、將所述運算結果與對應的所述待讀取扇區的密文數據進行按位異或運算,得到密文異或數據;
24、使用所述數據密鑰調用所述密碼卡對所述密文異或數據進行解密,得到解密數據;
25、將所述解密數據與對應的所述運算結果進行按位異或運算,得到明文數據。
26、在本發明的一個實施例中,所述響應于讀取數據請求,獲取加密卷密鑰,包括:
27、響應于讀取數據請求,從數據庫中獲取所述加密卷密鑰密文,通過所述系統保護密鑰進行解密,得到所述加密卷密鑰。
28、在本發明的一個實施例中,所述使用所述數據密鑰調用所述密碼卡對所述密文異或數據進行解密,得到解密數據,包括:
29、使用所述數據密鑰調用所述密碼卡內的對稱解密算法對所述密文異或數據進行解密,得到解密數據。
30、在本發明的一個實施例中,包括:所述將所述扇區號密文進行有限域乘法運算,得到運算結果,包括:
31、將所述扇區號密文與2j進行有限域乘法運算得到512字節的運算結果;
32、其中,j表示扇區內的分組序號,每個扇區內以16字節進行平均分組,j的取值范圍為1-32。
33、本發明實施例第三方面提供一種基于安全存儲的扇區加密裝置,包括:
34、獲取模塊,用于響應于寫入數據請求,從數據庫中獲取基于密碼卡創建的扇區加密卷密鑰;其中,所述扇區加密卷密鑰包括:扇區號密鑰和數據密鑰;
35、確定模塊,用于根據待寫入數據的長度確定至少一個待寫入扇區的扇區號;
36、扇區號加密模塊,用于將每個扇區號通過所述扇區號密鑰調用所述密碼卡進行加密,得到每個扇區號的扇區號密文;
37、第一運算模塊,用于將所述扇區號密文進行有限域乘法運算,得到運算結果;
38、第二運算模塊,用于將所述運算結果與對應的所述待寫入扇區的待寫入數據進行按位異或運算,得到明文異或數據;
39、加密模塊,用于使用所述數據密鑰調用所述密碼卡對所述明文異或數據進行加密,得到加密數據;
40、加密運算模塊,用于將所述加密數據與對應的所述運算結果進行按位異或運算,得到密文數據。
41、本發明實施例第四方面提供一種基于安全存儲的扇區解密裝置,包括:
42、獲取模塊,用于響應于讀取數據請求,從數據庫中獲取基于密碼卡創建的扇區加密卷密鑰;其中,所述扇區加密卷密鑰包括:扇區號密鑰和數據密鑰;
43、確定模塊,用于根據待讀取數據的長度確定待讀取扇區的扇區號;
44、扇區號加密模塊,用于將每個扇區號通過所述扇區號密鑰調用所述密碼卡進行加密,得到每個扇區號的扇區號密文;
45、第一運算模塊,用于將所述扇區號密文進行有限域乘法運算,得到運算結果;
46、第二運算模塊,用于將所述運算結果與對應的所述待讀取扇區的密文數據進行按位異或運算,得到密文異或數據;
47、解密模塊,用于使用所述數據密鑰調用所述密碼卡對所述密文異或數據進行解密,得到解密數據;
48、解密運算模塊,用于將所述解密數據與對應的所述運算結果進行按位異或運算,得到明文數據。
49、本發明的有益效果:
50、本發明的加密卡能夠生成無法被預測或復制的隨機數作為密鑰,而且通過加密卡加密扇區塊數據在物理層面實現加密,其密鑰管理和加密操作在都在加密卡中進行,這使得它更難以受到外部攻擊和破解。而且加密操作不受操作系統漏洞、病毒或惡意軟件的影響,因此更為安全可靠。而且,通過扇區號密鑰和數據密鑰對數據進行雙重加密處理,提高了數據加密的安全性,同時,對于雙控存儲管理系統,相同的數據寫入不同的扇區,由于扇區號不同,則加密后的數據不同,提高了雙控存儲管理系統數據加密的安全性。
51、本發明的其它特征和優點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發明而了解。本發明的目的和其他優點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現和獲得。
52、下面通過附圖和實施例,對本發明的技術方案做進一步的詳細描述。