一种加密档案文件格式方案的设计思路

来源:互联网 发布:中金金网交易软件 编辑:程序博客网 时间:2024/05/01 00:15

 

该方案是围绕加密档案的管理进行加解密等操作的,因此加密档案的文件格式设计至关重要。我们参考了ZIP文件格式标准,对加密档案的文件格式进行了设计。

l 文件格式概览

一个加密档案由以下三个部分数序排列组成:加密档案数据区、加密档案目录区、加密档案总控区。

clip_image002

其中,加密档案数据区存储加密后的密文区块,加密档案目录区存储加密后的虚拟目录体系,加密档案总控区存储加密档案的概要信息。

l 加密档案总控区的数据格式

加密档案总控区位于档案的末尾,它包含了该加密档案的总体信息,在打开加密档案时,首先是通过总控区获取文档的基本信息。

同时,总控区还包含了指向目录区起始位置的偏移量、目录区的目录项数、目录区所占字节数等信息,用以进一步对目录区进行定位及访问。

加密档案总控区的数据格式如下:

clip_image004

l 加密档案目录区的数据格式

加密档案目录区的目录项用来对档案内部的虚拟目录结构进行管理,每一个目录项均指向档案数据区的一个数据区块,加解密时就是根据目录项对数据区的对应数据进行操作的。目录区的结构如图所示。

clip_image006

l 加密档案数据区的数据格式

加密档案的数据区除了密文之外没有过多的信息,该区是被档案目录区的目录项划分为区块并索引、管理的,该区的结构如下:

clip_image008

l 加密档案文件格式使用示意

该方案在操纵加密档案时,首先将总控区及目录区装载到系统的档案管理对象体系中,之后对档案的操作(加解密、目录维护、备注修改)都是根据操作所需的数据,从总控区索引到目录区,再从目录区索引到数据区。

clip_image010

    l 加密档案管理流程

clip_image002[4]

该方案对档案的管理采取虚拟目录的方式,即在加密档案中允许建立并维护档案内部的目录结构。处理要点如下:

l 在打开加密档案时,系统载入档案的控制信息,包括负责总控的总控区和负责虚拟目录的目录区,并在内存中形成对应的对象型数据结构。数据区只有在需要操作档案内的文件条目时,才根据需要以流(Stream)的方式载入(详细情况参考加密解密流程),并且载入一个条目的数据,处理之后释放,然后才载入下一个条目。这会提高系统的处理效率并降低内存资源的占用,也利于系统处理较大的文件。

l 后继对档案操作(加密/解密)时,将同时维护内存的控制区数据结构(包括档案总控区和目录区),并根据目录区更改相应的更改磁盘上数据区所保持的加密数据。

l 保存档案时,因数据区已经在操作时不断相应更新,因此只需写回更改后的控制区即可完成。

(摘自协助友人指导学生的参赛作品)

原创粉丝点击