[发明专利]面向类Linux系统的内核级虚拟聚合并行加密方法有效

专利信息
申请号: 201310188826.0 申请日: 2013-05-21
公开(公告)号: CN103294958A 公开(公告)日: 2013-09-11
发明(设计)人: 汪黎;吴庆波;戴华东;孔金珠;文云川;彭勇;肖先霞 申请(专利权)人: 中国人民解放军国防科学技术大学
主分类号: G06F21/60 分类号: G06F21/60
代理公司: 国防科技大学专利服务中心 43202 代理人: 郭敏
地址: 410073 湖*** 国省代码: 湖南;43
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种面向类Linux系统的内核级虚拟聚合并行加密方法,要解决的技术问题是在Linux内核驱动加密卡实现文件的并行加密。技术方案是改进eCryptfs加密文件系统原有的密钥管理模块、数据加解密模块,并设计实现虚拟聚合模块。虚拟聚合模块中,密钥端口映射表负责存放所有加密卡的密钥端口状态,任务调度模块分配加密卡及密钥端口,密钥加载模块完成向密钥端口中导入密钥。改进后的密钥管理模块及数据加解密模块利用虚拟聚合模块分配的加密卡及密钥端口,调用加密卡的编程接口,完成并行文件加解密。采用本发明可以在任何支持eCryptfs的类Linux计算机上,使用多块加密卡进行文件并行加解密,减轻系统CPU的运算压力,提高加密速度和安全性。
搜索关键词: 面向 linux 系统 内核 虚拟 聚合 并行 加密 方法
【主权项】:
一种面向类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,存放待加密文件的密钥状态结构体stat的last_port字段的值;2.2.2.1.2判断ports_map表第last项即last_entry的avail字段是否为EMPTY,如果不是,转2.2.2.1.4,否则转2.2.2.1.3;2.2.2.1.3判断ports_map第last_entry项的fek字段的值是否与stat存放的fek字段的 值相等,如果不相等,转2.2.2.1.4,如果相等,转2.2.2.1.8;2.2.2.1.4令循环变量i=0;2.2.2.1.5判断ports_map表第(last+i)%Pcount项的id字段是否小于Dcount,如果小于,转2.2.2.1.7;否则,执行2.2.2.1.6;第(last+i)%Pcount项称为new_entry,“%”为运算符“取模”;2.2.2.1.6判断ports_map表第new_entry项的avail字段是否为EMPTY,如果不是,转2.2.2.1.7,如果是,转2.2.2.1.9;2.2.2.1.7令i=i+1,若i
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201310188826.0/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

tel code back_top