本發(fā)明屬于數(shù)據(jù)加密,具體涉及一種基于可信計算模塊的數(shù)據(jù)加解密方法、系統(tǒng)、設備及存儲介質(zhì)。
背景技術(shù):
1、國密sm4算法是一種分組密碼算法,是國家密碼管理局發(fā)布的商用密碼算法標準之一。隨著信息技術(shù)的飛速發(fā)展,數(shù)據(jù)安全問題日益凸顯,尤其是在金融、政府、軍事等關(guān)鍵領域,數(shù)據(jù)的安全性和保密性至關(guān)重要。因此,國密sm4算法的出現(xiàn)和應用,對于保障信息安全具有重要意義。
2、國密sm4算法采用對稱加密的方式,具有高效、安全、易于實現(xiàn)等特點。其采用128位分組長度和128位密鑰長度,通過32輪非線性迭代結(jié)構(gòu)實現(xiàn)加密和解密過程。sm4算法具有如下優(yōu)勢:(1)高安全性:sm4算法采用128位密鑰長度,經(jīng)過廣泛的安全性分析和評估,并通過了多個密碼學標準的驗證,具有較高的安全性和抗攻擊性。它能夠有效抵抗多種已知的密碼攻擊手段,確保數(shù)據(jù)的機密性和完整性。(2)高效性:sm4算法在硬件和軟件實現(xiàn)上都具有高效性能,能夠快速地進行加密和解密操作,尤其適合于資源受限的環(huán)境,如物聯(lián)網(wǎng)設備等。與國際上的加密算法如aes相比,sm4算法在某些情況下可能具有更高的執(zhí)行效率。(3)簡單性:sm4算法的設計相對簡單,代碼量較小,易于理解和使用。這有助于降低實現(xiàn)和維護的復雜度,減少出錯的可能性。(4)標準化:sm4算法是一種密碼算法標準,得到了廣泛的應用和認可。它已成為國際上公認的密碼算法之一,有助于促進國際間的互操作性和兼容性。(5)廣泛支持:sm4算法在各種平臺和編程語言中都有支持和實現(xiàn),包括go、java、c/c++等。這使得它可以在不同的系統(tǒng)和環(huán)境中進行跨平臺的應用和部署。(6)可擴展性:sm4算法支持不同的工作模式和填充方式,可以根據(jù)具體需求進行靈活配置。它可以與其他密碼算法結(jié)合使用,提供更高級別的安全保護。
3、可信計算模塊(trusted?computing?module,簡稱tpm)是一種基于硬件的安全模塊,它提供了安全存儲、安全計算和安全通信等功能,可以確保數(shù)據(jù)的機密性、完整性和可用性。tcm通常集成在計算機主板上,具有獨立的處理器、存儲器和通信接口,可以獨立于操作系統(tǒng)和應用程序運行。tpm使用符合標準規(guī)定的密碼算法(如sm4算法),對外提供非對稱密鑰生成運算、非對稱算法加解密運算、雜湊函數(shù)運算、數(shù)字簽名運算和隨機數(shù)產(chǎn)生運算等功能。tpm內(nèi)部存儲了多種密鑰,包括背書密鑰(ek)、平臺身份證明密鑰(aik)、存儲密鑰(sk)等。這些密鑰用于加密、解密、簽名和驗證等操作,確保數(shù)據(jù)傳輸和存儲的安全性。
4、然而,現(xiàn)有的sm4加密密鑰通常是存儲在一個可信計算模塊,一旦該可信計算模塊中的密鑰泄露,將會導致信息泄密,不能很好的起到保密的作用。為此,有研究人員對密鑰進行拆分,進而進行分布式加密和存儲,提升密鑰的解密難度,從而提高安全性。但是,目前的分布式密鑰存儲方案,每個可信計算模塊單獨計算分片密鑰,這種方式存在各個分片密鑰不匹配的風險,導致無法形成有效的整體密鑰。
技術(shù)實現(xiàn)思路
1、為了解決上述現(xiàn)有技術(shù)的問題,本發(fā)明提供一種數(shù)據(jù)加解密方法、系統(tǒng)、設備及存儲介質(zhì),可以克服分片密鑰不匹配的問題,保證形成有效整體密鑰以用于數(shù)據(jù)加密或解密。
2、本發(fā)明通過以下技術(shù)方案實現(xiàn):
3、本發(fā)明提供一種數(shù)據(jù)加解密方法,包括:
4、s1,從密鑰管理小組內(nèi)的成員讀取分片密鑰;所述密鑰管理小組的成員分別存儲有分片密鑰并通過區(qū)塊鏈的智能合約管理分片密鑰;所述密鑰管理小組內(nèi)的成員為可信計算模塊;
5、s2,將讀取到的若干個分片密鑰進行組合,生成整體密鑰;
6、s3,利用整體密鑰對數(shù)據(jù)進行加密或解密。
7、優(yōu)選的,在s1之前,還包括:
8、s0,利用多臺設備分別讀取零信任密鑰;利用讀取到零信任密鑰的設備從成員數(shù)據(jù)庫讀取密鑰管理小組的成員名單;所述成員數(shù)據(jù)庫存儲有密鑰管理小組的成員名單;
9、s1中,利用讀取到零信任密鑰的設備從密鑰管理小組內(nèi)的成員讀取分片密鑰。
10、優(yōu)選的,所述密鑰管理小組內(nèi)的每個成員配置有對稱密鑰的實現(xiàn)算法,以在需要時允許成員進行分片密鑰的重新發(fā)送。
11、優(yōu)選的,所述對稱密鑰的實現(xiàn)算法為sm4算法、aes算法、des算法、3des算法、blowfish算法、chacha20算法、salsa20算法、idea算法或rc系列算法。
12、優(yōu)選的,分片密鑰的形成方法包括:
13、選擇若干個可信計算模塊組成密鑰管理小組;
14、采用加密算法生成整體密鑰;
15、通過對整體密鑰的拆分,形成若干個分片密鑰;
16、將分片密鑰分別存儲在密鑰管理小組的各成員中,密鑰管理小組的每個成員保存一個分片密鑰。
17、進一步的,密鑰管理小組的成員選擇原則:將所有可信計算模塊按照網(wǎng)速從快到慢的順序進行排序,從前面選擇若干個可信計算模塊作為組成密鑰管理小組的成員。
18、進一步的,采用sm4加密算法生成整體密鑰。
19、本發(fā)明提供一種數(shù)據(jù)加密系統(tǒng),包括:
20、分片密鑰讀取模塊,用于從密鑰管理小組內(nèi)的成員讀取分片密鑰;所述密鑰管理小組的成員分別存儲有分片密鑰并通過區(qū)塊鏈的智能合約管理分片密鑰;所述密鑰管理小組內(nèi)的成員為可信計算模塊;
21、組合模塊,用于將讀取到的若干個分片密鑰進行組合,生成整體密鑰;
22、加解密模塊,用于利用整體密鑰對數(shù)據(jù)進行加密或解密。
23、本發(fā)明提供一種計算機設備,其特征在于,包括存儲器、處理器以及存儲在所述存儲器中并可在所述處理器上運行的計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)如上所述數(shù)據(jù)加解密方法的步驟。
24、本發(fā)明提供一種計算機可讀存儲介質(zhì),其特征在于,所述計算機可讀存儲介質(zhì)存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如上所述數(shù)據(jù)加解密方法的步驟。
25、與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:
26、本發(fā)明的數(shù)據(jù)加解密方法,將整體密鑰進行拆分,將拆分后形成的分片密鑰分別存儲在密鑰管理小組的各成員中,每個成員存儲一個分片密鑰,從而能對整體密鑰進行更好的保護,從而密鑰的不可篡改和可追溯;若干分片密鑰組合生成整體密鑰,確保密鑰的容錯性,提高密鑰的安全性,從而提升數(shù)據(jù)加密解密的門檻。同時,本發(fā)明所述密鑰管理小組的成員通過區(qū)塊鏈的智能合約管理分片密鑰,因此各分片密鑰符合統(tǒng)一的智能合約,使得各分片密鑰能組合形成一個整體的密鑰,避免各成員采用不同的密鑰管理方法造成各分片密鑰無法組合形成一個整體的密鑰。
27、進一步的,本發(fā)明在獲取分片密鑰之前,對獲取分片密鑰的設備進行驗證,因此,進一步提高了密鑰的安全性。
28、進一步的,本發(fā)明為所述密鑰管理小組內(nèi)的每個成員配置有對稱密鑰的實現(xiàn)算法,在密鑰失效之后,可以補發(fā)密鑰,在密鑰丟失之后,可以換發(fā)密鑰,新密鑰可以解密舊密鑰的數(shù)據(jù),使所有的成員數(shù)據(jù)可讀,不需要更新所有成員的本地密鑰,從而大大提高了密鑰的可靠性。