一种基于ext2文件系统的加密文件系统、加密方法及解密方法

文档序号:7868712阅读:214来源:国知局
专利名称:一种基于ext2文件系统的加密文件系统、加密方法及解密方法
技术领域
本发明涉及文件系统存储数据安全技术,尤其涉及一种基于EXT2文件系统的加密文件系统、加密方法及解密方法。
背景技术
文件系统是一种存储和组织文件和数据的方法,它使得对其访问和查找变得容易。文件系统通常使用SD卡、U盘、硬盘、SPI FLASH,NOR FLASH、NANDFLASH这样的存储设备,并维护文件在设备中的物理位置。目前很多文件系统只有管理文件和数据功能,没有文件和数据安全保护功能。如果产品使用透明文件系统,当产品遗失,产品中宝贵数据有可能被非法使用。比如,常用于嵌入式领域的EXT2文件系统提供存储和组织文件和数据管理,文件和数据透明方式存储,其不能对文件进行加密,导致其数据安全性不高。因此,如何解决EXT2文件系统中的数据安全的问题,已成为当前急需解决的技术问题之一。

发明内容
本发明的目的是提供一种基于EXT2文件系统的加密文件系统。为解决本发明的技术问题,本发明公开一种基于EXT2文件系统的加密文件系统,其包括多个块组,每个块组包括如下数据对应的存储空间超级块、块组描述表、块位图、文件与目录索引节点位图、文件与目录索引节点表、和多个数据块;所述块组描述表对应的存储空间中存有多个块组描述 表;其中,所述块组进一步包括位于文件与目录索引节点表之后的密钥索引节点位图和密钥索引节点表对应的存储空间,所述块组描述表对应的存储空间中进一步存有文件系统数字证书。其中,所述文件或目录索引节点表项中进一步包括“加密标志”和“密钥索引编号”数据项,“加密标志”表示文件或目录是否加密,如果加密,根据“密钥索引节点编号”的值能找到相应“密钥索引节点表项”、“密钥索引节点表项”中具有文件或目录解密相关信息。其中,密钥索引节点位图用于管理、跟踪密钥索引节点表的使用情况。其中,所述密钥索引节点表由密钥索引节点表项数组组成,每一个密钥索引节点表项由魔数、版本号、AES模式、摘要算法模式、AES密钥、AES初始向量、加密内容的明文摘要、保留位(填充零)、随机数填充位组成。本发明还公开一种基于EXT2文件系统的加密方法,其包括
步骤Sll :先根据AES密钥与AES初始向量生成规则算法,生成AES密钥与AES初始向
量;
步骤S12 :根据用户配置摘要算法模式,计算文件或目录内容的摘要;
步骤S13 :根据AES密钥、AES初始向量、用户配置AES模式,加密文件或目录;步骤S14 :把魔数、版本号、AES模式、摘要算法模式、AES密钥、AES初始向量、加密内容的明文摘要的信息组合成明文“密钥索引节点表项”;
步骤S15 :从文件系统存储设备中读取“文件系统数字证书”到内存中,验证“文件系统数字证书”的有效性;如果“文件系统数字证书”有效,则提取“文件系统数字证书”中的公钥信息;
步骤S16 :把步骤S14的明文“密钥索引节点表项”用公钥以RSA加密算法方式加密成密文“密钥索引节点表项”;
步骤S17 :根据“密钥索引节点位图”信息寻找一个空闲“密钥索引节点表项”,获得相应“密钥索引编号”信息;
步骤S18 :更新“文件或目录索引节点表项”中“加密标志”和“密钥索引节点编号”的数据,根据“密钥索引节点编号”把内存中密文“密钥索引节点表项”写到文件系统存储设备中。步骤Sll中,AES的128位密钥的开始8位的值为0x53,后120位通过随机数模块生成;AES的128位初始向量的开始8位的值为0x4D,后120位通过随机数模块生成。步骤S12中,用户配置摘要算法模式采用SHAl或SHA256。步骤S13中,当用户配置AES模式为电子密码本(ECB)模式,用AES密钥对文件或目录分块成128位数据分别加密;当用户配置AES模式为密码分组链(CBC)模式,用AES密钥、AES初始向量对文件或目录分块成128位数据以分组链方式加密。

本发明还提供一种基于EXT2文件系统的解密方法,其特征在于包括
步骤S21 :根据访问“文件或目录索引节点表项”中“加密标志”和“密钥索引节点编号”的数据,读取相应密文“密钥索引节点表项”数据到内存中;
步骤S22、把内存中的密文“密钥索引节点表项”数据用私钥以RSA解密算法方式解密成明文“密钥索引节点表项”;
步骤S23、根据明文“密钥索引节点表项”中AES密钥、AES初始向量、AES模式信息解密文件或目录。所述基于EXT2文件系统的解密方法,进一步包括
步骤S24:根据明文“密钥索引节点表项”中摘要算法类型,重新计算解密后明文的文件或目录的摘要;
步骤S25 :比较步骤S24中重新计算出的摘要与明文“密钥索引节点表项”中的摘要值是否一致,如果比较结果一致,则说明解密过程正确,如果比较结果不一致,则说明解密文件或目录过程失败,提示异常。与现有技术相比,由于本发明的基于EXT2文件系统的加密文件系统在EXT2文件系统的基础上增加了文件系统数字证书、密钥索引节点位图和密钥索引节点表,采用本发明提供的文件和目录加密及解密方法即可对文件或目录进行加密或解密,提高了 EXT2文件系统的安全性。


图1是EXT2文件系统结构图。图2是本发明的基于EXT2文件系统的加密文件系统结构图。
图3是密钥索引表结构图。图4是文件系统加密流程图。图5是AES密钥生成结构图。图6是AES初始向量生成结构图。图7是文件或目录内容摘要计算结构图。图8是文件或目录内容加密结构图。图9是文件系统解密流程图。图10是文件或目录内容解密结构图。
具体实施例方式
如图1所示,为EXT2文件系统在存储设备上组织数据的结构图。在格式化时,先根据存储设备容量划分多个块组,然后在每个块组都包括独立的超级块、块组描述表、块位图、文件与目录索引节点位图、文件与目录索引节点表、和多个数据块。文件或目录索引节点表项的内容记录文件或目录的属性及文件或目录实际数据的放置数据块地址。具体记录信息为存取模式、拥有者与群组、容量大小、创建或状态改变的时间、最近一次的读取时间、最近修改的时间等。如图2所示,为本发明的基于EXT2文件系统的加密文件系统在存储设备上组织数据的结构图。其在每个块组中增加安全加密解密相关信息。在块组描述表中增加“文件系统数字证书”;在文件与目录索引节点表之后增加“密钥索引节点位图”、“密钥索引节点表”。为了满足公钥基础设施基于安全要求,文件系统数字证书使用一般数字证书的格式,便于验证数字证书的有效性。“密钥索引节点表”中每个表项的数据结构,如图3所示,其包含内容有魔数、版本号、AES模式、摘要算法模式、AES密钥、AES初始向量、加密内容的明文摘要,总长度为2048位。在文件或目录索引节点表项中增加“加密标志”与“密钥索引节点编号”数据项。“加密标志”表示文件或目录是否加密,如果加密,根据“密钥索引节点编号”的值能找到相应“密钥索引节点表项”。“密钥索引节点表项”中具有文件或目录解密相关信息。EXT2加密文件系统加密文件或目录过程,如图4所示。具体步骤如下
步骤SI1、当文件或目录需要加密,先根据AES密钥与AES初始向量生成规则算法,生成AES密钥与AES初始向量。AES的128位密钥开始8位的值为0x53 (State单词中S的ASCII码,作为对称密钥识别信息),后120位通过随机数模块生成,如图5所示。AES的128位初始向量开始8位的值为0x4D (Micro单词中M的ASCII码’作为初始向量识别信息),后120位通过随机数模块生成,如图6所示。步骤S12、根据用户配置摘要算法模式,计算文件或目录内容的摘要。如图7所示,当用户配置摘要算法模式为SHAl时,摘要结果长度为160位(向前对齐,后面不足补零)。当用户配置摘要算法模式为SHA256时,摘要结果长度为256位。步骤S13、根据AES密钥、AES初始向量、用户配置AES模式,加密文件或目录,如图8所示。当用户配置AES模式为电子密码本(ECB)模式,用AES密钥对文件或目录分块成128位数据分别加密。当用户配置AES模式为密码分组链(CBC)模式,用AES密钥、AES初始向量对文件或目录分块成128位数据以分组链方式加密。对于文件或目录的长度不是128位的整数倍时,最后一块尾数据以明文形式直接加入前一组密文后面。步骤S14、把魔数、版本号、AES模式、摘要算法模式、AES密钥、AES初始向量、加密内容的明文摘要的信息组合成明文“密钥索引节点表项”。“密钥索引节点表项”的结构,如图3所示。步骤S15、从文件系统存储设备中读取“文件系统数字证书”到内存中,验证“文件系统数字证书”的有效性。具体有效性的检查方面验证证书信任链,确认证书是有效的;查证书吊销列表CRL (Certificate Revocation List),又称黑名单,检查证书是否吊销。如果“文件系统数字证书”无效,报异常,停止后续文件系统操作。如果“文件系统数字证书”有效,提取“文件系统数字证书”中公钥信息。提高运行效率,加载文件系统时,执行一次。步骤S16、把步骤S14的明文“密钥索引节点表项”用公钥以RSA加密算法方式加密成密文“密钥索引节点表项”。步骤S17、根据“密钥索引节点位图”信息寻找一个空闲“密钥索引节点表项”。如果没有找到,“密钥索引节点表项”已用完,报异常,这次加密文件或目录过程失败。如果找至IJ,获得相应“密钥索引编号”信息。步骤S18、更新“文件或目录索引节点表项”中“加密标志”和“密钥索引节点编号”的数据。根据“密钥索引节点编号”把内存中密文“密钥索引节点表项”写到文件系统存储设备中。EXT2加密文件系统解密文件或目录过程,如图9所示。

具体步骤如下
步骤S21、根据访问“文件或目录索引节点表项”中“加密标志”和“密钥索引节点编号”的数据,读取相应密文“密钥索引节点表项”数据到内存中。步骤S22、把内存中准备好、密文“密钥索引节点表项”数据用私钥以RSA解密算法方式解密成明文“密钥索引节点表项”。验证明文“密钥索引节点表项”魔数是否有效,如果魔数无效,可能私钥数据有问题;报异常,停止文件系统解密过程。如果魔数有效,明文“密钥索引节点表项”的数据也是有效的。步骤S23、根据明文“密钥索引节点表项”中AES密钥、AES初始向量、AES模式信息解密文件或目录,如图10所示。当AES模式是电子密码本(ECB)模式,用AES密钥对文件或目录分块成128位数据分别解密。当AES模式是密码分组链(CBC)模式,用AES密钥、AES初始向量对文件或目录分块成128位数据以分组链方式解密。对于文件或目录的长度不是128位的整数倍时,最后一块尾数据就是明文,不需要处理。步骤S24、根据明文“密钥索引节点表项”中摘要算法类型,重新计算解密后明文的文件或目录的摘要,如图7所示。当摘要算法模式是SHAl时,摘要结果长度为160位。当摘要算法模式是SHA256时,摘要结果长度为256位。步骤S25、比较步骤S24重新计算出摘要与明文“密钥索引节点表项”中摘要值比较是否一致。如果比较结果一致,则解密过程正确;如果比较结果不一致,则解密文件或目录过程失败,报异常,数据可能被破坏。综上所述,由于本发明的基于EXT2文件系统的加密文件系统在EXT2文件系统的基础上增加了文件系统数字证书、密钥索引节点位图和密钥索引节点表,采用本发明提供的文件和目录加密及解密方法即可对文件或目录进行加密或解密,提高了 EXT2文件系统的安全性 。
权利要求
1.一种基于EXT2文件系统的加密文件系统,其包括多个块组,每个块组包括如下数据对应的存储空间超级块、块组描述表、块位图、文件与目录索引节点位图、文件与目录索引节点表、和多个数据块;所述块组描述表对应的存储空间中存有多个块组描述表; 其特征在于,所述块组进一步包括位于文件与目录索引节点表之后的密钥索引节点位图和密钥索引节点表对应的存储空间,所述块组描述表对应的存储空间中进一步存有文件系统数字证书。
2.根据权利要求1所述的基于EXT2文件系统的加密文件系统,其特征在于,所述文件或目录索引节点表项中进一步包括“加密标志”和“密钥索引编号”数据项,“加密标志”表示文件或目录是否加密,如果加密,根据“密钥索引节点编号”的值能找到相应“密钥索引节点表项”、“密钥索引节点表项”中具有文件或目录解密相关信息。
3.根据权利要求1所述的基于EXT2文件系统的加密文件系统,其特征在于,密钥索引节点位图用于管理、跟踪密钥索引节点表的使用情况。
4.根据权利要求1所述的基于EXT2文件系统的加密文件系统,其特征在于,所述密钥索引节点表由密钥索引节点表项数组组成,每一个密钥索引节点表项由魔数、版本号、AES模式、摘要算法模式、AES密钥、AES初始向量、加密内容的明文摘要、保留位(填充零)、随机数填充位组成。
5.一种基于EXT2文件系统的加密方法,其特征在于包括 步骤Sll :先根据AES密钥与AES初始向量生成规则算法,生成AES密钥与AES初始向量; 步骤S12 :根据用户配置摘要算法模式,计算文件或目录内容的摘要; 步骤S13 :根据AES密钥、AES初始向量、用户配置AES模式,加密文件或目录; 步骤S14 :把魔数、版本号、AES模式、摘要算法模式、AES密钥、AES初始向量、加密内容的明文摘要的信息组合成明文“密钥索引节点表项”; 步骤S15 :从文件系统存储设备中读取“文件系统数字证书”到内存中,验证“文件系统数字证书”的有效性;如果“文件系统数字证书”有效,则提取“文件系统数字证书”中的公钥信息; 步骤S16 :把步骤S14的明文“密钥索引节点表项”用公钥以RSA加密算法方式加密成密文“密钥索引节点表项”; 步骤S17:根据“密钥索引节点位图”信息寻找一个空闲“密钥索引节点表项”,获得相应“密钥索引编号”信息; 步骤S18 :更新“文件或目录索引节点表项”中“加密标志”和“密钥索引节点编号”的数据,根据“密钥索引节点编号”把内存中密文“密钥索引节点表项”写到文件系统存储设备中。
6.根据权利要求5所述的基于EXT2文件系统的加密方法,其特征在于,步骤Sll中,AES的128位密钥的开始8位的值为0x53,后120位通过随机数模块生成;AES的128位初始向量的开始8位的值为0x4D,后120位通过随机数模块生成。
7.根据权利要求5所述的基于EXT2文件系统的加密方法,其特征在于,步骤S12中,用户配置摘要算法模式采用SHAl或SHA256。
8.根据权利要求5所述的基于EXT2文件系统的加密方法,其特征在于,步骤S13中,当用户配置AES模式为电子密码本(ECB)模式,用AES密钥对文件或目录分块成128位数据分别加密;当用户配置AES模式为密码分组链(CBC)模式,用AES密钥、AES初始向量对文件或目录分块成128位数据以分组链方式加密。
9.一种基于EXT2文件系统的解密方法,其特征在于包括 步骤S21 :根据访问“文件或目录索引节点表项”中“加密标志”和“密钥索引节点编号”的数据,读取相应密文“密钥索引节点表项”数据到内存中; 步骤S22、把内存中的密文“密钥索引节点表项”数据用私钥以RSA解密算法方式解密成明文“密钥索引节点表项”; 步骤S23、根据明文“密钥索引节点表项”中AES密钥、AES初始向量、AES模式信息解密文件或目录。
10.根据权利要求9所述的基于EXT2文件系统的解密方法,其特征在于,进一步包括 步骤S24:根据明文“密钥索引节点表项”中摘要算法类型,重新计算解密后明文的文件或目录的摘要; 步骤S25 :比较步骤S24中重新计算出的摘要与明文“密钥索引节点表项”中的摘要值是否一致,如果比较结果一致,则说明解密过程正确,如果比较结果不一致,则说明解密文件或目录过程失败,提示异常。
全文摘要
本发明公开一种基于EXT2文件系统的加密文件系统,其包括多个块组,每个块组包括如下数据对应的存储空间超级块、块组描述表、块位图、文件与目录索引节点位图、文件与目录索引节点表、和多个数据块;所述块组描述表对应的存储空间中存有多个块组描述表;其中,所述块组进一步包括位于文件与目录索引节点表之后的密钥索引节点位图和密钥索引节点表对应的存储空间,所述块组描述表对应的存储空间中进一步存有文件系统数字证书。本发明的基于EXT2文件系统的加密文件系统提高了EXT2文件系统的安全性。本发明还提供一种基于EXT2文件系统的加密方法和解密方法。
文档编号H04L9/30GK103067170SQ201210543698
公开日2013年4月24日 申请日期2012年12月14日 优先权日2012年12月14日
发明者陈金强 申请人:深圳国微技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1