國密算法在分布式存儲中的應(yīng)用

分布式存儲是一種數(shù)據(jù)存儲技術(shù),簡單來說就是將數(shù)據(jù)分散存儲在不同的節(jié)點(diǎn)上,其目的是為了提高系統(tǒng)的可擴(kuò)展性、可靠性以及性能。分布式存儲的安全性是至關(guān)重要的,下面我們就來了解一下國密算法在分布式存儲中的應(yīng)用。

國密算法在分布式存儲中的應(yīng)用

分布式加密存儲方案的整體框架包括客戶端、管理設(shè)備及存儲設(shè)備,各設(shè)備通過互聯(lián)網(wǎng)進(jìn)行聯(lián)結(jié)和交互。管理設(shè)備的密鑰管理單元、各存儲設(shè)備的數(shù)據(jù)加解密單元協(xié)同完成了數(shù)據(jù)寫入、讀取前的加解密工作。

根據(jù)分布式存儲系統(tǒng)的結(jié)構(gòu)特性、擴(kuò)展特性及數(shù)據(jù)的一致性,可以采用非對稱加密算法管理對稱加密算法的密鑰,采用對稱加密算法加密數(shù)據(jù),這樣既保證了較快的加密速度,也滿足了密鑰管理的安全、便捷需求。

國密算法

密鑰管理單元

密鑰管理單元由密鑰分發(fā)單元、密鑰加密密鑰管理單元及密鑰庫三部分組成。密鑰分發(fā)單元用于生成、分發(fā)密鑰;密鑰加密密鑰管理單元用于存儲、加解密密鑰;密鑰庫用于存儲供非對稱加密算法使用的公私鑰對。

密鑰分發(fā)單元

密鑰分發(fā)單元包括密鑰生成模塊、索引模塊和分發(fā)模塊。

密鑰生成模塊用于生成加/解密數(shù)據(jù)所需的密鑰,即供SM4算法使用的密鑰,該模塊利用密鑰擴(kuò)展算法將產(chǎn)生的隨機(jī)數(shù)轉(zhuǎn)化為密鑰供數(shù)據(jù)加解密單元使用。

索引模塊建立了數(shù)據(jù)標(biāo)識、加密后的密鑰及密鑰存儲位置三者間的映射關(guān)系,在數(shù)據(jù)加密前建立映射列表,在數(shù)據(jù)解密時(shí)輔助數(shù)據(jù)加解密單元找到所需的密鑰。

分發(fā)模塊用于分發(fā)或轉(zhuǎn)發(fā)密鑰,實(shí)現(xiàn)了數(shù)據(jù)加解密單元與密鑰加密密鑰管理單元間的密鑰信息互傳。交互的數(shù)據(jù)信息涉及數(shù)據(jù)標(biāo)識、密鑰、加密后的密鑰、密鑰請求及密鑰存儲位置信息。

國密算法

密鑰加密密鑰管理單元

密鑰加密密鑰管理單元包括密鑰加/解密模塊、密鑰緩存區(qū)及索引模塊。

密鑰加/解密模塊運(yùn)用SM2算法對加/解密數(shù)據(jù)的密鑰進(jìn)行加、解密操作,該模塊用獲取到的公鑰進(jìn)行加密、用獲取到的私鑰進(jìn)行解密。

加密過程中,密鑰加/解密模塊首先計(jì)算出各橢圓曲線點(diǎn)(其中包括密文字段1),隨后利用密鑰派生函數(shù)計(jì)算出密文字段2,利用密碼雜湊函數(shù)計(jì)算出密文字段3,最終將密文字段1、2、3拼接后得到原始數(shù)據(jù)的密文;解密過程則是將密文字段1、密文字段3還原為橢圓曲線點(diǎn),由此計(jì)算出相關(guān)參數(shù)值,隨后密文字段2及相關(guān)參數(shù)值經(jīng)密鑰派生函數(shù)運(yùn)算后得到最初的明文數(shù)據(jù)。

密鑰緩存區(qū)主要用來緩存私鑰,為解密過程提供便利;索引模塊為加/解密數(shù)據(jù)的密鑰、公私鑰對及公私鑰對在密鑰庫內(nèi)的存儲位置建立映射關(guān)系,并將關(guān)系列表存放在索引模塊的映射表存儲子模塊中,當(dāng)密鑰加/解密模塊執(zhí)行解密操作時(shí),索引模塊的檢索子模塊迅速檢索出相應(yīng)的私鑰供密鑰加/解密模塊使用。

密鑰庫

密鑰存儲模塊是密鑰庫的核心模塊,主要用來存儲供SM2算法使用的公私鑰對。密鑰庫采用了雙機(jī)熱備的冗余機(jī)制,保證密鑰供給不間斷。

國密算法

數(shù)據(jù)加解密單元

數(shù)據(jù)加解密單元包括加/解密模塊和密鑰存儲模塊。

加/解密模塊運(yùn)用SM4算法對寫入或讀取的數(shù)據(jù)進(jìn)行加、解密操作,加密過程所使用的密鑰是密鑰分發(fā)單元生成的密鑰。加/解密模塊以字為單位對數(shù)據(jù)進(jìn)行加密運(yùn)算,明文數(shù)據(jù)與密鑰經(jīng)輪函數(shù)F迭代運(yùn)算后生成密文數(shù)據(jù)。

SM4算法的加、解密變換結(jié)構(gòu)一致,唯一不同的是密鑰的使用順序,加密時(shí)密鑰以正序使用,解密時(shí)密鑰以逆序使用。

密鑰存儲模塊主要用來存放加密后的密鑰,當(dāng)加/解密模塊執(zhí)行解密操作時(shí),密鑰存儲模塊為加/解密模塊提供相應(yīng)的解密密鑰。

每個(gè)數(shù)據(jù)加解密單元就是一個(gè)獨(dú)立的存儲節(jié)點(diǎn),每個(gè)存儲節(jié)點(diǎn)內(nèi)存放著多個(gè)加密后的密鑰,當(dāng)黑客入侵系統(tǒng)時(shí),很難大面積掌握這些密鑰,從而有效避免了數(shù)據(jù)面臨的安全威脅。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪稿。