使用SM4算法加密LUKS格式磁盘

简介: 本文介绍了在Anolis 8操作系统使用cryptsetup对磁盘进行分区、加密和挂载的过程。采用SM4加密算法。具体步骤包括:初始化加密卷、解锁加密分区、格式化并挂载设备。最后,展示了如何取消挂载并关闭加密卷以确保数据安全。整个过程确保了磁盘数据的安全性和隐私保护。

ECS服务器操作系统版本

uname -a
Linux Anolis8 5.10.134-16.2.an8.x86_64 #1 SMP Mon Mar 4 16:14:16 CST 2024 x86_64 x86_64 x86_64 GNU/Linux

额外挂载一块磁盘,用gdisk做分区,但不要格式化。

image.png

cryptsetup简介

cryptsetup是与dm-crypt交互的命令行工具,用于创建、访问和管理加密设备。它在大多数主流Linux发行版中都是内置的软件包。通过cryptsetup可以方便地设置LUKS(Linux Unified Key Setup)格式的加密分区或卷,从而实现对磁盘数据的安全保护。

下面对刚创建的分区使用SM4加密算法加密。

cryptsetup --cipher sm4-xts-plain64 --key-size=256 --hash sm3 luksFormat /dev/vdb1
#根据提示输入大写的YES,并输入密码。
~~~~~~~~~~~~~~~以下是命令参数详解:~~~~~~~~~~~~~~~~
--cipher sm4-xts-plain64:指定了加密算法为SM4,使用XTS模式,且区块大小为64位。SM4是中国国家密码管理局发布的分组加密算法。
--key-size=256:指定密钥大小为256位。因为XTS模式需要两个独立的密钥,所以这里指的是总共的密钥长度。
--hash sm3:指定了哈希算法为SM3,这是中国国家标准的密码散列函数,用于保护数据完整性。
luksFormat /dev/vdb1:对 /dev/vdb1 分区进行LUKS格式化,将其初始化为一个新的加密卷。
执行此命令后,系统会提示您输入并确认一个用于加密分区的新密码。之后,该磁盘或分区上的所有数据都将被加密,并且在未提供正确密码的情况下不可访问。请确保在此之前备份重要数据,因为一旦格式化完成,原有数据将无法恢复。

image.png

解锁刚刚创建的luks分区

[root@Anolis8 ~]#cryptsetup luksOpen /dev/vdb1 diskluks
[root@Anolis8 ~]# cryptsetup status diskluks  
[root@Anolis8 ~]# lsblk -fp
NAME                     FSTYPE      LABEL UUID                                 MOUNTPOINT
/dev/vda
├─/dev/vda1
├─/dev/vda2              vfat              9B5A-4235                            /boot/efi
└─/dev/vda3              ext4        root  d9dd46c5-8041-4c35-a62d-07cc68ebba5a /
/dev/vdb
└─/dev/vdb1              crypto_LUKS       dabe7f11-68c3-41b9-9589-3e5ecd78eabf
  └─/dev/mapper/diskluks

image.png

接下来可以格式化(如果尚未格式化)并挂载这个解密后的设备。

mkfs.ext4 /dev/mapper/diskluks
mount /dev/mapper/diskluks /mnt/

image.png

之后就可以正常使用已挂载的磁盘。

[root@Anolis8 mnt]# cat xxhh.txt
this is a  text

取消挂载并改名博加密存储卷

umount /mnt
cryptsetup luksClose diskluk
#cryptsetup luksClose diskluks 这条命令用于关闭一个已经打开的 LUKS 加密卷。具体来说,它会卸载与 diskluks 关联的映射设备,使得系统不再能够访问这个加密卷,直到再次使用 cryptsetup luksOpen 命令重新打开。
这条命令执行后,加密卷中的数据仍然存在并且保持加密状态,只是无法直接访问而已。如果需要重新访问该加密卷,则必须提供正确的密码或密钥文件来解锁它。

image.png

此时磁盘为加密状态,无法访问。如想重新访问的话,按照上面的步骤先解锁再挂载。

相关文章
|
5月前
|
数据安全/隐私保护
sm4加密工具类
sm4加密工具类
72 3
|
4月前
|
算法 安全 物联网
关于SM2、SM3、SM4、SM9这四种国密算法
本文介绍了四种国密算法——SM2、SM3、SM4和SM9。SM2是一种基于椭圆曲线的非对称加密算法,用于数据加密和数字签名;SM3是哈希算法,用于数字签名和消息完整性验证;SM4是对称加密算法,用于数据加密和解密;SM9是基于标识的非对称密码算法,适用于物联网环境中的数据安全和隐私保护。
1868 0
|
7月前
|
算法 安全 数据安全/隐私保护
Android经典实战之常见的移动端加密算法和用kotlin进行AES-256加密和解密
本文介绍了移动端开发中常用的数据加密算法,包括对称加密(如 AES 和 DES)、非对称加密(如 RSA)、散列算法(如 SHA-256 和 MD5)及消息认证码(如 HMAC)。重点讲解了如何使用 Kotlin 实现 AES-256 的加密和解密,并提供了详细的代码示例。通过生成密钥、加密和解密数据等步骤,展示了如何在 Kotlin 项目中实现数据的安全加密。
284 1
|
6月前
|
存储 算法 安全
超级好用的C++实用库之国密sm4算法
超级好用的C++实用库之国密sm4算法
198 0
|
7月前
|
算法 安全 数据安全/隐私保护
Android经典实战之常见的移动端加密算法和用kotlin进行AES-256加密和解密
本文介绍了移动端开发中常用的数据加密算法,包括对称加密(如 AES 和 DES)、非对称加密(如 RSA)、散列算法(如 SHA-256 和 MD5)及消息认证码(如 HMAC)。重点展示了如何使用 Kotlin 实现 AES-256 的加密和解密,提供了详细的代码示例。
141 2
|
7月前
|
算法 JavaScript 前端开发
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
481 1
|
16天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于生物地理算法的MLP多层感知机优化matlab仿真
本程序基于生物地理算法(BBO)优化MLP多层感知机,通过MATLAB2022A实现随机数据点的趋势预测,并输出优化收敛曲线。BBO模拟物种在地理空间上的迁移、竞争与适应过程,以优化MLP的权重和偏置参数,提升预测性能。完整程序无水印,适用于机器学习和数据预测任务。
|
7天前
|
算法 数据安全/隐私保护 异构计算
基于LSB最低有效位的音频水印嵌入提取算法FPGA实现,包含testbench和MATLAB对比
本项目展示了一种基于FPGA的音频水印算法,采用LSB(最低有效位)技术实现版权保护与数据追踪功能。使用Vivado2019.2和Matlab2022a开发,完整代码含中文注释及操作视频。算法通过修改音频采样点的最低有效位嵌入水印,人耳难以察觉变化。然而,面对滤波或压缩等攻击时,水印提取可能受影响。该项目运行效果无水印干扰,适合实时应用场景,核心逻辑简单高效,时间复杂度低。
|
7天前
|
算法 数据安全/隐私保护
基于GA遗传算法的拱桥静载试验车辆最优布载matlab仿真
本程序基于遗传算法(GA)实现拱桥静载试验车辆最优布载的MATLAB仿真,旨在自动化确定车辆位置以满足加载效率要求(0.95≤ηq≤1.05),目标是使ηq尽量接近1,同时减少车辆数量和布载耗时。程序在MATLAB 2022A版本下运行,展示了工况1至工况3的测试结果。通过优化模型,综合考虑车辆重量、位置、类型及车道占用等因素,确保桥梁关键部位承受最大荷载,从而有效评估桥梁性能。核心代码实现了迭代优化过程,并输出最优布载方案及相关参数。
|
11天前
|
机器学习/深度学习 存储 算法
基于MobileNet深度学习网络的活体人脸识别检测算法matlab仿真
本内容主要介绍一种基于MobileNet深度学习网络的活体人脸识别检测技术及MQAM调制类型识别方法。完整程序运行效果无水印,需使用Matlab2022a版本。核心代码包含详细中文注释与操作视频。理论概述中提到,传统人脸识别易受非活体攻击影响,而MobileNet通过轻量化的深度可分离卷积结构,在保证准确性的同时提升检测效率。活体人脸与非活体在纹理和光照上存在显著差异,MobileNet可有效提取人脸高级特征,为无线通信领域提供先进的调制类型识别方案。

热门文章

最新文章