分布式存储是一种数据存储技术,简单来说就是将数据分散存储在不同的节点上,其目的是为了提高系统的可扩展性、可靠性以及性能。分布式存储的安全性是至关重要的,下面我们就来了解一下国密算法在分布式存储中的应用。

国密算法在分布式存储中的应用

分布式加密存储方案的整体框架包括客户端、管理设备及存储设备,各设备通过互联网进行联结和交互。管理设备的密钥管理单元、各存储设备的数据加解密单元协同完成了数据写入、读取前的加解密工作。

根据分布式存储系统的结构特性、扩展特性及数据的一致性,可以采用非对称加密算法管理对称加密算法的密钥,采用对称加密算法加密数据,这样既保证了较快的加密速度,也满足了密钥管理的安全、便捷需求。

国密算法

密钥管理单元

密钥管理单元由密钥分发单元、密钥加密密钥管理单元及密钥库三部分组成。密钥分发单元用于生成、分发密钥;密钥加密密钥管理单元用于存储、加解密密钥;密钥库用于存储供非对称加密算法使用的公私钥对。

密钥分发单元

密钥分发单元包括密钥生成模块、索引模块和分发模块。

密钥生成模块用于生成加/解密数据所需的密钥,即供SM4算法使用的密钥,该模块利用密钥扩展算法将产生的随机数转化为密钥供数据加解密单元使用。

索引模块建立了数据标识、加密后的密钥及密钥存储位置三者间的映射关系,在数据加密前建立映射列表,在数据解密时辅助数据加解密单元找到所需的密钥。

分发模块用于分发或转发密钥,实现了数据加解密单元与密钥加密密钥管理单元间的密钥信息互传。交互的数据信息涉及数据标识、密钥、加密后的密钥、密钥请求及密钥存储位置信息。

国密算法

密钥加密密钥管理单元

密钥加密密钥管理单元包括密钥加/解密模块、密钥缓存区及索引模块。

密钥加/解密模块运用SM2算法对加/解密数据的密钥进行加、解密操作,该模块用获取到的公钥进行加密、用获取到的私钥进行解密。

加密过程中,密钥加/解密模块首先计算出各椭圆曲线点(其中包括密文字段1),随后利用密钥派生函数计算出密文字段2,利用密码杂凑函数计算出密文字段3,最终将密文字段1、2、3拼接后得到原始数据的密文;解密过程则是将密文字段1、密文字段3还原为椭圆曲线点,由此计算出相关参数值,随后密文字段2及相关参数值经密钥派生函数运算后得到最初的明文数据。

密钥缓存区主要用来缓存私钥,为解密过程提供便利;索引模块为加/解密数据的密钥、公私钥对及公私钥对在密钥库内的存储位置建立映射关系,并将关系列表存放在索引模块的映射表存储子模块中,当密钥加/解密模块执行解密操作时,索引模块的检索子模块迅速检索出相应的私钥供密钥加/解密模块使用。

密钥库

密钥存储模块是密钥库的核心模块,主要用来存储供SM2算法使用的公私钥对。密钥库采用了双机热备的冗余机制,保证密钥供给不间断。

国密算法

数据加解密单元

数据加解密单元包括加/解密模块和密钥存储模块。

加/解密模块运用SM4算法对写入或读取的数据进行加、解密操作,加密过程所使用的密钥是密钥分发单元生成的密钥。加/解密模块以字为单位对数据进行加密运算,明文数据与密钥经轮函数F迭代运算后生成密文数据。

SM4算法的加、解密变换结构一致,唯一不同的是密钥的使用顺序,加密时密钥以正序使用,解密时密钥以逆序使用。

密钥存储模块主要用来存放加密后的密钥,当加/解密模块执行解密操作时,密钥存储模块为加/解密模块提供相应的解密密钥。

每个数据加解密单元就是一个独立的存储节点,每个存储节点内存放着多个加密后的密钥,当黑客入侵系统时,很难大面积掌握这些密钥,从而有效避免了数据面临的安全威胁。

免责声明:素材源于网络,如有侵权,请联系删稿。