本发明涉及磁盘加密,具体涉及磁盘分块加密方法。
背景技术:
1、在信息技术飞速发展的时代,数据安全越来越重要,企业也越来越关注,保证数据安全的关键就是磁盘数据加密技术。
2、luks(linux unified key setup)是linux下一种比较流行的磁盘加密技术。它是基于linux内核设备映射子系统的dm-crypt模块的块设备加密技术。设备映射子系统是linux内核中提供的一种将物理块设备映射虚拟(逻辑)块设备的框架机制,在该机制下,开发者可以很方便的根据自己的需要制定实现存储资源的管理策略,比如dm-crypt磁盘加密。dm-crypt是设备映射构架中用于块设备加密的模块。dm-crypt通过设备映射虚拟一个块设备,并在bio(linux内核中通用块层的一个核心数据结构,用于数据传输)转发的时候将数据加密后存储来实现块设备的加密,而这些对于应用层是透明的。也就是说,通过将块设备读取的数据写入块设备映射的虚拟设备就可以实现加密。
3、块设备加密是在文件系统之下对块设备上的所有数据进行加密,包括文件元数据(如文件大小、文件数据量、目录树布局等)、可用空间、硬盘分区表信息等。块设备加密后,磁盘上的数据全部数据为密文,因此数据更安全。
4、luks基于块设备进行磁盘加密,在文件系统之下,虽然数据比较安全,但是不论磁盘上存储多少文件,磁盘加密都需要对整个块设备进行读写。对整个磁盘分区进行加密的时间与磁盘分区大小成正比,磁盘分区越大,加密时间越长,而与磁盘分区存储多少用户数据无关。因此,在磁盘分区只存储少量用户数据时,加密效率是非常低的。
5、因此,如何提高磁盘加密效率,改善用户体验是本领域技术人员目前需要解决的技术问题。
技术实现思路
1、为解决已有技术存在的不足,本发明提供了一种磁盘分块加密方法,包括如下步骤:
2、步骤s1:获取磁盘分区文件系统类型及磁盘空间使用情况;
3、步骤s2:根据磁盘分区文件系统类型及磁盘空间使用情况确定是否需要分块加密:若需要,则执行步骤s3,若不需要,则执行步骤s4;
4、步骤s3:创建磁盘分区的映射设备,并设置加密密钥,获取磁盘分区的块使用位图,得到需要加密的区块,顺次将需要加密的区块数据写到映射设备相应位置,完成区块内数据的加密,并将加密后的数据写回到磁盘分区中相应位置,完成所有需要加密的区块的加密;
5、步骤s4:创建磁盘分区的映射设备,并设置加密密钥,读取磁盘分区中的所有扇区,将扇区数据写到映射设备相应位置,完成扇区内数据的加密,并将加密后的数据写回到磁盘分区中相应位置,完成磁盘内数据的加密。
6、其中,所述步骤s1至步骤s2中,在磁盘空间使用率大于预定值且磁盘分区文件系统类型属于可解析类型时,确定磁盘需要分块加密。
7、其中,所述步骤s3中,通过磁盘的区块位图得到磁盘分区的块使用位图,进而得到磁盘中需要加密的区块。
8、本发明提供了一种linux高效磁盘加密方法,用户可根据磁盘分区的使用情况,选择不同的加密模式。如果在磁盘分区使用率比较低的情况下,大幅提升磁盘加密效率,缩短加密时间,改善用户体验。
1.磁盘分块加密方法,其特征在于包括如下步骤:
2.如权利要求1所述的磁盘分块加密方法,其特征在于:所述步骤s1至步骤s2中,在磁盘空间使用率大于预定值且磁盘分区文件系统类型属于可解析类型时,确定磁盘需要分块加密。
3.如权利要求1所述的磁盘分块加密方法,其特征在于:所述步骤s3中,通过磁盘的区块位图得到磁盘分区的块使用位图,进而得到磁盘中需要加密的区块。