面向类Linux系统的内核级虚拟聚合并行加密方法技术方案

技术编号:9143451 阅读:197 留言:0更新日期:2013-09-12 05:00
本发明专利技术公开了一种面向类Linux系统的内核级虚拟聚合并行加密方法,要解决的技术问题是在Linux内核驱动加密卡实现文件的并行加密。技术方案是改进eCryptfs加密文件系统原有的密钥管理模块、数据加解密模块,并设计实现虚拟聚合模块。虚拟聚合模块中,密钥端口映射表负责存放所有加密卡的密钥端口状态,任务调度模块分配加密卡及密钥端口,密钥加载模块完成向密钥端口中导入密钥。改进后的密钥管理模块及数据加解密模块利用虚拟聚合模块分配的加密卡及密钥端口,调用加密卡的编程接口,完成并行文件加解密。采用本发明专利技术可以在任何支持eCryptfs的类Linux计算机上,使用多块加密卡进行文件并行加解密,减轻系统CPU的运算压力,提高加密速度和安全性。

【技术实现步骤摘要】

【技术保护点】
一种面向类Linux系统的内核级虚拟聚合并行加密方法,其特征在于包括以下步骤:第一步:改进eCryptfs加密文件系统,方法是:1.1改进密钥状态结构体,在密钥状态结构体中增加last_port字段,用以存放最近一次使用的密钥端口映射表表项的编号;1.2设计虚拟聚合模块,该模块由密钥端口映射表、任务调度模块以及密钥加载模块组成,密钥端口映射表用于存放所有加密卡的密钥端口状态;任务调度模块通过查询密钥端口映射表,为密钥管理模块及数据加解密模块的调用请求均匀地分配加密卡及密钥端口;密钥加载模块通过加密卡驱动程序提供的编程接口向加密卡的密钥存储单元中导入文件加密密钥FEK:1.2.1设计密钥端口映射表ports_map,建立所有加密卡密钥端口与密钥端口映射表之间的映射关系;系统中所有加密卡的总数表示为Dcount,单个加密卡包含的密钥端口数量为N,N为正整数,ports_map包含的表项数为Dcount*N,表示为Pcount,每个表项包括下列域:序号id、加密卡的编号card、加密卡密钥端口号index、端口空闲标识avail以及用于存放FEK的fek区;序号id的范围为0到Pcount?1,card的范围为0到Dcount?1,index的范围为1到N,avail可有EMPTY和BUSY两种取值,EMPTY表示空闲,BUSY表示已占用,fek通常是一段字符数据,存放FEK;1.2.2设计虚拟聚合模块中的任务调度模块,任务调度模块与密钥管理模块、数据加解密模块以及密钥端口映射表相连,在密钥管理模块及数据加解密模块请求使用加密卡时,任务调度模块通过查询密钥端口映射表,根据加密卡及密钥端口的状态执行任务调度,为操作请求分配加密卡及密钥端口;1.2.3设计虚拟聚合模块中的密钥加载模块,密钥加载模块与密钥管理模块、数据加解密模块、任务调度模块、密钥端口映射表及加密卡驱动相连,在密钥管理模块及数据加解密模块请求进行数据加解密操作前,查询密钥端口映射表,与加密卡驱动程序交互,调用加密卡LoadFileKey接口,向任务调度模块分配的加密卡及密钥端口中导入密钥,并更新密钥端口映射表ports_map;1.3修改eCryptfs的密钥管理模块,密钥管理模块与虚拟聚合模块以及加密卡驱动程序相连,由虚拟聚合模块分配可用的加密卡及密钥端口,并与加密卡驱动程序交互,使用加密卡相应的接口,完成FEK的产生及FEK的加解密;1.4修改数据加解密模块,将原来调用内核密码接口进行数据加解密的方式改为调用 加密卡接口进行数据加解密;数据加解密模块与虚拟聚合模块以及加密卡驱动程序相连,由虚拟聚合模块分配可用的加密卡及密钥端口,与加密卡的驱动程序交互,调用加密卡提供的数据加解密接口SymEncrypt/SymDecrypt进行数据加解密;第二步:使用改进后的eCryptfs加密文件系统进行文件数据加解密,方法是:2.1初始化密钥端口映射表,建立密钥端口映射表与加密卡密钥端口之间的映射关系;2.2eCryptfs的文件服务层接收应用程序操作请求,并判断操作请求的类型,根据操作请求的类型,如果是打开文件,转2.2.1,如果是写文件,转2.2.2,如果是读文件,转2.2.3;2.2.1如果文件不存在,执行2.2.11,如果文件已存在,执行2.2.1.2。2.2.1.1文件不存在时,执行如下步骤:2.2.1.1.1eCryptfs的文件服务层执行创建文件函数创建新文件;2.2.1.1.2密钥管理模块采用加密卡驱动程序提供的GetFileKey函数产生FEK;2.2.1.1.3任务调度模块从保留密钥端口映射表reserved_ports_map中获取可用的保留加密卡及密钥端口;2.2.1.1.4密钥管理模块调用加密卡加密FEK,得到EFEK即加密后的FEK;2.2.1.1.5密钥管理模块将EFEK存放到新创建文件的头部;2.2.1.1.6密钥管理模块将FEK存入到新创建文件的密钥状态结构体中,转2.3步;2.2.1.2文件已存在,执行如下步骤:2.2.1.2.1密钥管理模块从已存在文件头部读取EFEK;2.2.1.2.2任务调度模块采用步骤2.2.1.1.3的方法从保留密钥端口映射表中获取可用的保留加密卡及密钥端口;2.2.1.2.3密钥管理模块调用加密卡接口解密EFEK,得到FEK;2.2.1.2.4将FEK缓存至打开文件的密钥状态结构体中,转2.3步;2.2.2写操作请求执行步骤如下:2.2.2.1任务调度模块分配加密卡及密钥端口,方法是:2.2.2.1.1初始化last...

【技术特征摘要】

【专利技术属性】
技术研发人员:汪黎吴庆波戴华东孔金珠文云川彭勇肖先霞
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1