一种支持分离存储管理的文件分区隐藏系统及其方法转让专利

申请号 : CN201510624898.4

文献号 : CN105279453B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 崔小乐李大刚林信南

申请人 : 南京伍安信息科技有限公司

摘要 :

本发明公开了一种支持分离存储管理的文件分区隐藏系统及方法,包括主计算机、至少两个支持分离存储的存储设备、用户认证模块和分离存储管理系统;存储设备包括公共分区和用户分区,在公共分区支持一般文件写操作,在用户分区进行文件写操作的用户被用户认证模块认证为合法用户时、支持分离存储,在被认证为非法用户时、写操作停止。本发明中合法用户只能看到公共分区和自己私有的用户分区,无法看到其它用户的私有用户分区,对其它合法用户的文件操作无法有效察觉,保证高密级文件的高安全性。

权利要求 :

1.一种支持分离存储管理的文件分区隐藏系统,其特征在于:包括

主计算机;

至少两个接入所述主计算机的存储设备,其存储空间包括管理信息区、公共分区和用户分区,每个所述存储设备的管理信息区存储有与其唯一对应的存储设备标识符和合法用户表,合法用户表写入有用户分区的访问地址以及支持在该用户分区进行唯一分离存储操作用户的用户标识符;

用户认证模块、加装在所述主计算机上,读取在用户分区进行写文件操作用户的用户标识符,与该用户分区所在存储设备的合法用户表相比对,比对成功的用户认证为合法用户,其他用户认证为非法用户;

分离存储管理系统、加装在所述主计算机上,包括文件分离存储流程控制器软件模块和用户注册模块,所述用户注册模块设有设备列表和用户管理列表,设备列表写入有支持分离存储操作存储设备的存储设备标识符,用户管理列表写入有合法用户的登录账户和用户标识符,该用户标识符与所述存储设备合法用户表内的用户标识符相对应;所述文件分离存储流程控制器软件模块用于读取当前用户的写文件操作,在向公共分区进行写入时,执行一般文件写操作,在向用户分区进入写入时,调用所述用户认证模块,对于合法用户执行分离存储写操作,对于非法用户停止写文件操作。

2.根据权利要求1所述的支持分离存储管理的文件分区隐藏系统,其特征在于:所述存储设备分为一个支持文件分拆和文件碎片存储的主文件分离存储设备和仅支持文件碎片存储的次文件分离存储设备。

3.根据权利要求1所述的支持分离存储管理的文件分区隐藏系统,其特征在于:所述存储设备包括外接所述主计算机的存储设备和安装在所述主计算机本地的存储设备。

4.根据权利要求1所述的支持分离存储管理的文件分区隐藏系统,其特征在于:所述存储设备采用磁盘、U盘、移动硬盘中任一种作为存储介质。

5.根据权利要求4所述的支持分离存储管理的文件分区隐藏系统,其特征在于:采用U盘作为存储介质的存储设备包括USB控制芯片、分离还原处理芯片和闪存芯片。

6.根据权利要求1所述的支持分离存储管理的文件分区隐藏系统,其特征在于:所述存储设备的管理信息区存储有存储设备静态信息、存储设备动态信息,公共分区描述符指针、用户分区描述符指针、公共分区描述符、用户分区描述符;所述存储设备静态信息包括:存储设备的总存储容量、最大公共分区数、最大用户分区数、最大公共分区容量、最大用户分区容量、存储设备标识符,所述存储设备动态信息包括:存储设备当前可用存储容量、当前可用公共分区数、当前可用用户分区数、当前公共分区首地址列表、当前用户分区首地址列表、存储设备中当前可用公共分区存储容量、存储设备中当前可用用户分区存储容量、公共分区的目录文件指针、用户分区的目录文件指针、当前合法用户列表、合法用户与用户分区对应表,所述公共分区描述符指针指向公共分区描述符表的首地址,所述用户分区描述符指针指向用户分区描述符表的首地址,所述公共分区描述符表包括:公共分区标识号、公共分区容量大小、公共分区首地址、当前可用存储容量、用户权限,所述用户分区描述符表包括:用户分区标识号、用户分区容量大小、用户分区首地址、当前可用存储容量、合法用户号、合法用户认证密码指针、用户权限。

7.基于上述权利要求2所述系统进行支持分离存储管理的文件分区隐藏方法,其特征在于,文件写操作包括如下步骤:S1:文件分离存储流程控制器软件模块获取当前用户的写文件操作,对于写入空间为存储设备的公共分区时,执行一般文件写操作,对于写入空间为存储设备的用户分区时,执行步骤S2;

S2:用户认证模块读取进行写文件操作用户的用户标识符,与该用户分区所在存储设备的合法用户表相比对,若比对成功,则该用户认证为合法用户、执行步骤S3,若比对不成功,则该用户认证为非法用户、写文件操作停止;

S3:文件被文件分离存储流程控制器软件模块标记为“分离”类型,指定负责文件分拆的存储设备为主文件分离存储设备、仅负责文件碎片存储的存储设备为次文件分离存储设备,根据文件的目录信息在主文件分离存储设备和次文件分离存储设备中创建或更新文件的索引信息,对文件及其索引信息进行加密生成文件密文;

S4:将文件密文发送至主文件分离存储设备,主文件分离存储设备根据文件索引信息将文件密文分拆成文件碎片,将文件碎片在主文件分离存储设备和次文件分离存储设备中逐一进行写操作,并维护其文件目录信息;

S5:若文件碎片均被写入相应的存储设备,则本次写文件操作完成。

8.根据权利要求7所述的支持分离存储管理的文件分区隐藏方法,其特征在于,所述步骤S2中认证结果为新用户,通过如下步骤注册成为合法用户:S21:文件分离存储流程控制器软件模块读取存储设备的存储设备标识符,查看该存储设备标识符是否在设备列表中,若不在,执行步骤S22,若在、执行步骤S23;

S22:将设备名、设备标识符、设备类型、设备操作函数列表首地址写入设备列表,并初始化存储设备的总存储容量、最大公共分区数、最大用户分区数,然后执行步骤S23;

S23:查看主计算机管理员是否允许注册,若不允许,注册过程停止;若允许,弹出用户登录界面,用户登录界面设有用户名输入文本框和密码输入文本框以及申请“注册新用户”链接按钮,该链接按钮链接的界面设有用户名输入文本框、密码输入文本框、用户分区大小输入文本框;

S24:获取用户登录界面输入的用户名和密码或者“注册新用户”输入的用户名、密码和用户分区大小,文件分离存储流程控制器软件模块查看存储设备的管理信息区,若当前可用用户分区数小于最大用户分区数且当前可用用户分区存储容量小于最大用户分区容量,则将用户名、密码写入主计算机的用户管理列表,并为其分配用户标识符;将用户标识符写入主计算机和存储设备的当前合法用户列表中;否则,用户注册失败。

9.根据权利要求7所述的支持分离存储管理的文件分区隐藏方法,其特征在于,将分离存储的文件进行读操作包括如下步骤:S61:获取读文件操作指向的存储位置,若存储位置为公共分区,读文件操作与一般文件读操作相同;若存储位置为用户分区,则对进行读文件操作的用户进行认证,若认证结果为合法用户,则执行S62,若认证结果为非法用户,则读文件操作停止;

S62:文件分离存储流程控制器软件模块根据文件索引信息,分别调用相应的文件分离存储设备驱动程序、读取文件碎片,然后调用主文件存储设备驱动程序,将所有文件碎片送到主文件分离存储设备中;

S63:主文件分离存储设备将文件碎片恢复成文件密文,并发送至主计算机;

S64:主计算机在内存中将文件密文解密还原成文件明文,提交给合法用户使用。

10.根据权利要求7所述的支持分离存储管理的文件分区隐藏方法,其特征在于,所述S3中文件分拆过程包括如下步骤:S31:按照文件的索引信息,产生与主文件分离存储设备、次文件分离存储设备数量之和相等的随机数三元组(R1i、R2i、R3i),其中R1i为抽取信息的数量,R2i为抽取信息位置数组,R3i为回填值数组,数组R2i和R3i的大小等于R1i的值;

S32:根据R1i和R2i的值,从主计算机的文件密文的随机位置抽取随机数量的信息;

S33:将抽取出来的信息及抽取数量、抽取位置合并为一个文件,进行加密后保存在主文件分离存储设备中;

S34:使用回填值数组R3i中的随机数,根据R2i的指示填充文件密文中的抽取位置,生成新的文件碎片i,文件碎片i的大小与文件密文的大小相等;

S35:重复步骤S32-S34,直到所有随机数三元组用完;

S36:将新产生的所有文件碎片送入主计算机内存的文件缓冲区。

说明书 :

一种支持分离存储管理的文件分区隐藏系统及其方法

技术领域

[0001] 本发明涉及信息安全技术领域,具体涉及一种支持分离存储管理的文件分区隐藏系统及其方法。

背景技术

[0002] 现有电子文档存储的安全性主要依靠加密与访问控制手段来保证。然而文件的密文仍保留了信息的完整性,随着计算机性能的不断增强,加密文档被更大计算能力的计算机解密的机会不断增大。由于认证所需的信息可能被解密,加密环节的失败也对身份认证系统的有效性构成较大威胁。因此出现了将电子文档分解为多个碎片,并将多个碎片分别存储在多个不同的存储设备的分离存储技术。

发明内容

[0003] 发明目的:针对信息安全传输需求,本发明提供一种网络化的分离存储系统及方法,能够有效防止黑客通过侦听、非法访问等手段窃取秘密;同时易于实施和普及。
[0004] 技术方案:本发明所述的支持分离存储管理的文件分区隐藏系统,主计算机;至少两个接入所述主计算机的存储设备,其存储空间包括管理信息区、公共分区和用户分区,每个所述存储设备的管理信息区存储有与其唯一对应的存储设备标识符和合法用户表,合法用户表写入有用户分区的访问地址以及支持在该用户分区进行唯一分离存储操作用户的用户标识符;用户认证模块、加装在所述主计算机上,读取在用户分区进行写文件操作用户的用户标识符,与该用户分区所在存储设备的合法用户表相比对,比对成功的用户认证为合法用户,其他用户认证为非法用户;分离存储管理系统、加装在所述主计算机上,包括文件分离存储流程控制器软件模块和用户注册模块,所述用户注册模块设有设备列表和用户管理列表,设备列表写入有支持分离存储操作存储设备的存储设备标识符,用户管理列表写入有合法用户的登录账户和用户标识符,该用户标识符与所述存储设备合法用户表内的用户标识符相对应;所述文件分离存储流程控制器软件模块用于读取当前用户的写文件操作,在向公共分区进行写入时,执行一般文件写操作,在向用户分区进入写入时,调用所述用户认证模块,对于合法用户执行分离存储写操作,对于非法用户停止写文件操作。每个存储设备设有至少一个公共分区和一个用户分区,通过合法用户表将每个用户分区的地址与该用户分区唯一可以访问用户的用户标识符相对应,使得该用户分区仅被该合法用户可见。
[0005] 进一步完善上述技术方案,所述存储设备分为一个支持文件分拆和文件碎片存储的主文件分离存储设备和仅支持文件碎片存储的次文件分离存储设备。主文件分离存储设备指负责进行文件分拆的存储设备,通常有负责进行文件分拆功能的软硬件实体;次文件分离存储设备仅具有文件碎片的存储功能,不具有文件分拆功能;在一个系统中,只有一个主文件存储设备,可以有一个或多个次文件分离存储设备。
[0006] 进一步地,所述存储设备包括外接所述主计算机的存储设备和安装在所述主计算机本地的存储设备。
[0007] 进一步地,所述存储设备采用磁盘、U盘、移动硬盘中任一种作为存储介质。
[0008] 进一步地,采用U盘作为存储介质的存储设备包括USB控制芯片、分离还原处理芯片和闪存芯片;其地址空间分为管理信息、公共分区和用户分区。
[0009] 进一步地,所述存储设备的管理信息区存储有存储设备静态信息、存储设备动态信息,公共分区描述符指针、用户分区描述符指针、公共分区描述符、用户分区描述符;所述存储设备静态信息以存储设备的总存储容量、最大公共分区数、最大用户分区数、最大公共分区容量、最大用户分区容量、存储设备标识符为存储单位,所述存储设备动态信息以存储设备当前可用存储容量、当前可用公共分区数、当前可用用户分区数、当前公共分区首地址列表、当前用户分区首地址列表、存储设备中当前可用公共分区存储容量、存储设备中当前可用用户分区存储容量、公共分区的目录文件指针、用户分区的目录文件指针、当前合法用户列表、合法用户与用户分区对应表为存储单位,所述公共分区描述符指针指向公共分区描述符表的首地址,所述用户分区描述符指针指向用户分区描述符表的首地址,所述公共分区描述符表以公共分区标识号、公共分区容量大小、公共分区首地址、当前可用存储容量、用户权限为存储单位,所述用户分区描述符表以用户分区标识号、用户分区容量大小、用户分区首地址、当前可用存储容量、合法用户号、合法用户认证密码指针、用户权限为存储单位。
[0010] 基于上述系统进行支持分离存储管理的文件分区隐藏方法,包括如下步骤:
[0011] S1:文件分离存储流程控制器软件模块获取当前用户的写文件操作,对于写入空间为存储设备的公共分区时,执行一般文件写操作,对于写入空间为存储设备的用户分区时,执行步骤S2;
[0012] S2:用户认证模块读取进行写文件操作用户的用户标识符,与该用户分区所在存储设备的合法用户表相比对,若比对成功,则该用户认证为合法用户、执行步骤S3,若比对不成功,则该用户认证为非法用户、写文件操作停止;
[0013] S3:文件被文件分离存储流程控制器软件模块标记为“分离”类型,指定负责文件分拆的存储设备为主文件分离存储设备、仅负责文件碎片存储的存储设备为次文件分离存储设备,根据文件的目录信息在主文件分离存储设备和次文件分离存储设备中创建或更新文件的索引信息,对文件及其索引信息进行加密生成文件密文;文件的目录信息包括文件名、文件存储地址、文件所有者及其权限、文件授权使用者及其权限、文件长度、文件属性、文件的建立、修改、访问时间等信息,与操作系统中所提供的文件目录无异;文件的索引信息是文件目录中的一部分,包括文件名、文件存储地址、文件大小等信息;
[0014]  S4:将文件密文发送至主文件分离存储设备,主文件分离存储设备根据文件索引信息将文件密文分拆成文件碎片,将文件碎片在主文件分离存储设备和次文件分离存储设备中逐一进行写操作,并维护其文件目录信息;
[0015] S5:若文件碎片均被写入相应的分离存储设备,则本次写文件操作完成。
[0016] 进一步完善上述技术方案,所述步骤S2中认证结果为新用户(非法用户无法自行通过注册过程成为合法用户),通过如下步骤注册成为合法用户:
[0017] S21:文件分离存储流程控制器软件模块读取存储设备的存储设备标识符,查看该存储设备标识符是否在合法存储设备列表中,若不在,执行步骤S22,若在、执行步骤S23;
[0018] S22:将设备名、设备标识符、设备类型、设备操作函数列表首地址写入合法存储设备列表,并初始化存储设备的总存储容量、最大公共分区数、最大用户分区数,然后执行步骤S23;
[0019] S23:查看主计算机管理员(主计算机管理员负责管理用户列表,可以对用户相关信息进行读写操作,具有维护用户信息的权限,主计算机管理员可以是分离存储功能的合法用户,也可以是分离存储功能的非法用户,是否为分离存储功能的合法用户由该用户是否在合法用户列表中决定)是否允许注册,若不允许,注册过程停止;若允许,弹出用户登录界面,用户登录界面设有用户名输入文本框和密码输入文本框以及申请“注册新用户”链接按钮,该链接按钮链接的界面设有用户名输入文本框、密码输入文本框、用户分区大小输入文本框;
[0020] S24:获取用户登录界面输入的用户名和密码或者“注册新用户”输入的用户名、密码和用户分区大小,文件分离存储流程控制器软件模块查看存储设备的存储设备管理信息,若当前可用用户分区数小于最大用户分区数且当前可用用户分区存储容量小于最大用户分区容量,则将用户名、密码写入主计算机的用户管理列表,并为其分配用户标识符;将用户标识符写入主计算机和存储设备的当前合法用户列表中;否则,用户注册失败。
[0021] 将分离存储的文件进行读操作包括如下步骤:
[0022] S61:获取读操作指向文件的存储位置,若存储位置为公共分区,读文件操作与普通文件读操作相同;若存储位置为用户分区,则对进行读文件操作的用户进行认证,若认证结果为该用户分区与本次发起读操作的用户相匹配时,则执行S62,若认证结果为非法用户,则读文件操作停止;
[0023] S62:文件分离存储流程控制器软件模块根据文件索引信息,分别调用相应的次文件分离存储设备驱动程序、读取文件碎片,然后调用主文件存储设备驱动程序,将所有文件碎片送到主文件分离存储设备中;
[0024] S63:主文件分离存储设备将文件碎片恢复成文件密文,并发送至主计算机;
[0025] S64:主计算机在内存中将文件密文解密还原成文件明文,提交给合法用户使用。
[0026] 所述S3中文件分拆过程包括如下步骤:
[0027] S31:按照文件的索引信息,产生与主文件分离存储设备、次文件分离存储设备数量之和相等的随机数三元组(R1i、R2i、R3i),其中R1i为抽取信息的数量,R2i为抽取信息位置数组,R3i为回填值数组,数组R2i和R3i的大小等于R1i的值;
[0028] S32:根据R1i和R2i的值,从主计算机的文件密文的随机位置抽取随机数量的信息;
[0029] S33:将抽取出来的信息及抽取数量、抽取位置按照文件形式生成文件密文保存在主文件分离存储设备中;
[0030] S34:使用回填值数组R3i中的随机数,根据R2i的指示填充文件密文中的抽取位置,生成新的文件碎片i,文件碎片i的大小与文件密文的大小相等;
[0031] S35:重复步骤S32-S34,直到所有随机数三元组用完;
[0032] S36:将新产生的所有文件碎片送入主计算机操作系统内核缓冲区。
[0033] 有益效果:与现有技术相比,本发明的优点:
[0034] 1、对于分离存储的文件,从空间上看,文件明文只存在于主计算机的内存中,其它存储设备上不存在文件明文,只有合法用户访问其私有用户分区时,方可获取文件的有效读写结果;从时间上看,文件明文只在主文件分离存储设备接入主计算机且该文件为活动文件过程中存在,该文件关闭后,内存中的该文件所使用的内存区域将被写入随机值。
[0035] 2、在对高密级文件进行操作时,需将主文件分离存储设备接入主计算机,采用分离文件读写操作方式,主文件分离存储设备脱离主计算机后,主计算机内存中的文件明文消失;此时,无论是主文件分离存储设备还是次文件分离存储设备中的文件被窃取,其中均只包含部分加密文件信息,只有主文件分离存储设备和所有次文件分离存储设备中的文件均被攻击者获得,且成功接入主计算机,方有机会获取文件明文信息;同时由于非法用户无法看到存储设备中的用户分区内容,较难发现该存储设备是支持分离存储方式的存储设备;合法用户也只能看到公共分区和自己私有的用户分区,无法看到其它用户的私有用户分区,对其它合法用户的文件操作无法有效察觉;因此本发明提供的方案可保证高密级文件的高安全性。

附图说明

[0036] 图1为本发明的存储设备分区方案示意图。
[0037] 图2为实施例中特制U盘的结构示意图。
[0038] 图3为文件读写流程图。

具体实施方式

[0039] 下面对本发明技术方案进行详细说明。
[0040] 实施例1:本发明提供的支持电子文档分离存储的文件分区隐藏方法,当有对支持分离存储的存储设备进行访问时,操作系统首先检查用户身份。若该用户为已认证合法用户,则该存储设备可用的存储空间包括公共分区及该用户私有的用户分区,在用户分区中的文件操作,均采用分离存储文件操作方式进行,在公共分区中的文件操作与一般文件操作相同。若该用户为未经认证的非法用户,则可用的存储空间仅为公共分区,所有用户分区对非法用户不可见,文件操作与一般文件操作相同。从文件访问角度,即便了解分离存储系统原理,非法用户也无法判断本存储设备是普通存储设备还是支持分离存储的存储设备。除已创建给某合法用户的用户分区外,其它用户分区对该合法用户不可见,避免多用户之间的访问安全性问题。
[0041] 本发明设计的支持分离存储的存储设备分区整体方案如图1所示,存储介质可以为磁盘、U盘、移动硬盘等中任意类型。
[0042] 公共分区1 m:m个公共分区,公共分区可以由所用用户共同访问,所有用户看到的~公共分区信息相同,共同分区上的文件操作与普通存储分区上的操作相同;每个公共分区的大小均可以进行调整,但公共分区所占存储空间大小不得超过上限m。
[0043] 用户分区1 n:n个私有分区,每个用户分区由一个合法注册用户私有,其他用户无~法看到该合法注册该用户私有的用户分,用户分区上的文件操作采用分离存储文件操作方式进行,用户分区数量不得超过上限n。
[0044] 存储设备管理信息,具体包括以下信息:
[0045] (1)存储设备静态信息:包括存储设备的总存储容量,最大公共分区数,最大用户分区数,最大公共分区容量,最大用户分区容量,存储设备标识符,存储设备供应商信息等内容。
[0046] (2)存储设备动态信息:包括存储设备当前可用存储容量,当前公共分区数,当前用户分区数,当前公共分区首地址列表,当前用户分区首地址列表,存储设备中当前可用公共分区存储容量,存储设备中当前可用用户分区存储容量,公共分区的目录文件指针,用户分区的目录文件指针,当前合法用户列表,合法用户与用户分区的对应表。
[0047] (3)公共分区描述符指针:指向公共分区描述符表的首地址。
[0048] (4)用户分区描述符指针:指向用户分区描述符表的首地址。
[0049] (5)公共分区描述符,包括如下信息:公共分区标识号,公共分区容量大小,公共分区首地址,当前可用存储容量,用户权限。
[0050] (6)用户分区描述符,包括如下信息:用户分区标识号,用户分区容量大小,用户分区首地址,当前可用存储容量,合法用户号,合法用户认证密码指针,用户权限。
[0051] 支持分离存储的主计算机在操作系统的基础上加装分离存储管理系统,包括文件分离存储流程控制器软件模块,负责分离存储的读写控制、用户管理、设备管理等功能,维护合法的存储设备列表、合法的用户列表;没有该分离存储管理系统的主计算机无法支持分离存储功能。具体实现方式为,当支持文件分离存储的存储设备接入主计算机后,激活主计算机操作系统内核中的文件分离存储流程控制器软件模块,该软件模块只响应合法用户的操作申请,对非法用户的操作申请不予响应。
[0052] 合法存储设备列表包括以下信息:设备名、设备标识符设备类型、设备操作函数列表首地址、分区状况列表、分区性质等,其中用户分区的性质缺省值为invisible、即隐藏状态,只有当用户分区被其对应的合法用户访问时,才将其用户分区的性质改为Visible,即可见状态;公共分区的性质缺省值为Visible。
[0053] 合法用户列表包括以下信息:用户名、密码、用户标识符,对应用户分区标识符等。
[0054] 分离存储系统用户注册流程:新用户希望成为分离存储系统的合法用户时,需要进行用户注册。将支持分离存储的存储设备接入授权的支持分离存储的计算机系统,操作系统的分离存储管理系统与用户的交互过程如下:
[0055] (1)操作系统的分离存储管理系统首先进行存储设备的认证,确认存储设备的合法性,读取存储设备的存储设备标识符,查看该存储设备标识符是否在合法存储设备列表中;若在,则视其为合法的支持分离存储的存储设备,执行步骤(3);若不在,则需启动设备注册过程,执行步骤(2)。
[0056] (2)设备注册过程如下:将设备名、存储设备标识符、设备类型、设备操作函数列表首地址等信息写入合法存储设备列表,并初始化存储设备的总存储容量,最大公共分区数,最大用户分区数等内容。
[0057] (3)若该存储设备为合法的,则查看主计算机管理员是否允许新用户注册,若不允许,则注册过程停止;若允许,则弹出用户登录界面,请用户输入用户名和密码、或申请注册新用户,操作系统的分离存储管理系统依靠用户列表中的用户名、用户密码、用户标识符三者的对应关系认证合法用户;其中,用户名和用户密码仅存储于主计算机的操作系统的分离存储管理系统中,而用户标识符则保存于主计算机和存储设备两处,当用户申请注册新用户后,则界面引导用户输入用户名、用户密码、用户分区大小;操作系统的分离存储管理系统检查分离存储设备的存储设备管理信息,若当前可用用户分区数小于最大用户分区数、且存储设备中当前可用用户分区存储容量小于最大用户分区容量,则将用户名、用户密码写入分离存储管理系统的用户管理列表,并为其分配用户标识符;最后将用户标识符写回存储设备的当前合法用户列表中;至此,用户注册过程完成。
[0058] 分离存储文件的写流程:
[0059] 在文件分离存储流程控制器软件模块工作期间,主计算机的操作系统创建和打开文件,均会在主计算机内存中为该文件建立一片存储区域。当用户实施文件保存操作、文件存储区出现自动换页操作时,操作系统内核中的文件分离存储流程控制器软件模块记录应用层传来的写文件请求,记录文件名、文件目录信息;接着读取将写入的存储设备分区相关信息。当存储分区为公共分区时,按照正常文件写操作完成写文件过程;当存储分区为用户分区,通过比对用户标识符检查用户的合法性。若为非法用户,写操作流程停止。
[0060] 若为合法用户,则将写文件类型标志为“分离”类型,接着根据文件目录信息分别在主文件分离存储设备和次文件分离存储设备中创建或更新文件索引;然后对文件及其文件索引信息进行加密,通过设备驱动程序将文件密文发送至主文件分离存储设备;主文件分离存储设备收到上述信息后,根据文件索引信息中的文件索引数量对文件进行分拆,并在自身的分离文件存储区中保存一份文件碎片,然后将其它文件碎片回传至主计算机;主计算机的文件分离存储流程控制器软件模块进而调用相应的驱动程序,将各文件碎片写入各次文件分离存储设备,并维护其文件目录内容。至此,文件的分离存储完成。
[0061] 从上述写流程可以看出,用户的写文件操作在时间上只能发生在文件分离存储流程控制器软件模块工作期间,在空间上只能发生在存储设备的公共分区或该用户私有的用户分区上,不能写入其它合法用户的私有用户空间。公共分区上的写操作为普通文件写操作,用户分区上的写操作为分离存储写操作。
[0062] 分离存储文件的读流程:
[0063] 在文件分离存储流程控制器软件模块工作期间,合法用户可发起读操作申请。当读操作文件所在位置为存储设备的公共分区时,读操作与普通文件读操作相同。当读文件碎片所在位置为存储设备的用户分区,且该文件分区与本次发起读操作的用户相匹配时,文件分离存储流程控制器软件模块根据文件索引信息,分别调用相应的次文件存储设备的驱动程序,读取碎片文件,然后调用主文件分离存储设备的驱动程序,将所有碎片文件送到主文件分离存储设备中。主文件分离存储设备将碎片文件恢复成密文文件,并发送给主计算机。在主计算机的内存中解密文件,将明文提交给操作系统的应用层使用。
[0064] 以上读文件操作的特点在于,所有合法用户均可读取存储设备公共分区中的文件,但仅能读取属于自己的私有用户分区中的文件碎片。
[0065] 上述文件分拆与恢复过程均在主文件分离与存储设备中进行。
[0066] 分拆过程如下:
[0067] (1)按照索引信息,产生与次文件分离存储设备数量相等的随机数三元组(R1i,R2i,R3i),其中R1i指示抽取信息的数量,R2i为抽取信息位置数组,R3i为回填值数组,数组R2i和R3i的大小等于R1i的值。(2)根据R1i和R2i的值,从主计算机发来的文件密文的随机位置抽取随机数量的信息。(3)将抽取出来的信息及抽取数量、抽取位置按照文件形式保存在主文件分离存储设备中。(4)使用R3i数组中的随机数,根据R2i的指示填充文件密文中的抽取位置,生成新的碎片文件i。碎片文件i的文件大小与密文文件大小相等。(5)重复步骤(2-4),直到所有随机数三元组用完。(6)将新产生的所有碎片文件送入主计算机操作系统内核的缓冲区。
[0068] 恢复过程是分拆过程的逆过程,使用与分拆过程中相同的随机三元组指导恢复过程。
[0069] 下面以一个主分离存储设备、一个次分离存储设备为例进行具体说明:
[0070] 主计算机采用普通PC机,安装Windows操作系统。主文件分离存储设备采用特制的U盘,该特制U盘由USB控制芯片,分离还原处理芯片,闪存芯片组成,如图2所示。次文件分离存储设备采用主计算机中的硬盘。
[0071] 设计文件分离存储流程控制器软件模块smc( )模块,作为windows内核程序模块挂接在操作系统的文件系统中。smc()模块中维护以下数据结构。
[0072]  支持分离存储的合法存储设备描述符,每个合法存储设备对应一个描述符:
[0073] struct device_sep_struct {
[0074] const char * name; /*指向设备名字符串*/
[0075] in tdev_ID; /*存储设备标识符*/
[0076] int number; /* 0表示主分离存储设备,不为0表示次分离存储设备*/[0077] int Max_pub_sections; /* 最大公共分区数量*/
[0078]  int Max_pri_sections; /* 最大用户分区数量*/
[0079] struct Table_sections section_table [Max_Sections]; /*分区状况列表*/[0080] struct file_operations_pub *fops_pub; /* 指向公共分区文件操作函数的指针*/
[0081] struct file_operations_pri *fops_pri; /* 指向用户分区文件操作函数的指针*/
[0082] };
[0083] 分区描述符,
[0084] strcut Table_section {
[0085] int section_number; /* 分区标识号*/
[0086] int section_address/* 分区号首地址*/
[0087] int section_capacity; /* 分区容量大小*/
[0088] boolean sep; /* 分区号性质,pub or pri */
[0089] struct user[Max_users]; /* 分区合法用户*/
[0090] struct user current_user; /* 分区当前用户*/
[0091] boolean show; /*显示属性 visiable or invisible*/
[0092] }
[0093] 用户描述符:
[0094] Struct user {
[0095] Char * user_name;/*指向用户名字符串*/
[0096] Char * user_password; /*指向用户密码字符串*/
[0097] Boolean legal;/*是否操作系统的合法用户*/
[0098] Boolean sep_legal; /*是否分离存储设备的合法用户*/
[0099] Int user_ID;/*用户号*/
[0100] Int power;/*用户操作权限*/
[0101] }
[0102] 支持分离存储的存储设备管理信息。
[0103] Dev_sep_man {
[0104]  struct device_sep_struct [Max_Dev];
[0105] }
[0106] 支持分离存储的U盘容量为4GB,其地址空间分为三个部分:管理信息、公共分区、用户分区。初始状态下,公共分区和用户分区数量分别为1个。公共分区初始状态为visible,用户分区初始状态为invisible。管理信息所占地址固定为4K,位于相对地址0x00000000开始的位置。公共分区开始于4G-4k+1的地址,最大容量3Gb。剩下的地址用于用户分区。
[0107] 管理信息的数据结构如下:
[0108] #define int Max_pub_sections 4; /* 最大公共分区数量*/
[0109] #define int Max_pri_sections 8; /* 最大用户分区数量*/
[0110] struct device_sep_usb_struct {
[0111] const int vandor; /*U盘设备供应商号*/
[0112] int dev_ID; /*存储设备标识符*/
[0113] Boolean sep; /* 0表示主分离存储设备,1表示次分离存储设备*/[0114] struct Table_sections section_table_pub [Max_pub_sections]; /*公共分区状况列表*/
[0115] struct Table_sections section_table_pri [Max_pri_sections]; /*公共分区状况列表*/
[0116] struct file_operations_pub *fops_pub; /* 指向公共分区文件操作函数的指针*/
[0117] struct file_operations_pri *fops_pri; /* 指向用户分区文件操作函数的指针*/
[0118] }
[0119] strcut Table_section_usb {
[0120] int section_number; /* 分区号*/
[0121] int section_address/* 分区号起始地址*/
[0122] int section_capacity; /* 分区大小*/
[0123] boolean sep; /* 分区号性质,pub or pri */
[0124] struct user[8]; /* 分区合法用户*/
[0125] struct user current_user; /* 分区当前用户*/
[0126] boolean show; /*显示属性 visiable or invisible*/
[0127] }
[0128] Struct user_usb {
[0129] Int user_ID; /*用户号*/
[0130] boolean legal;/*是否操作系统的合法用户*/
[0131] Boolean sep_legal; /*是否分离存储设备的合法用户*/
[0132] Int power;/*用户操作权限*/
[0133] }
[0134] 操作系统启动时,smc()模块无需立刻驻留内存。当特制U盘物理接入计算机,操作系统读取特制U盘中的管理信息。若device_sep_usb_struct中的vandor值符合约定,且dev_ID值在约定值范围内,则进行设备注册,启动smc()模块,为该设备创建设备描述符device_sep_struct结构体,并用device_sep_usb_struct中的静态信息的写入由smc()管理的对应数据结构。
[0135] 然后弹出用户登录界面,要求用户输入用户名、密码或进行新用户申请。
[0136] 若为用户输入用户名及密码,则smc()模块检查user结构体中的user_name和user_password的值是否与输入值匹配。若不匹配,则拒绝用户登录申请。若匹配,则将user结构体中的legal值设置为1,表明其为本计算机的合法用户。通过user_ID读取存储设备管理信息中的user_usb结构体中的sep_legal信息,若对所有已创建的分区,该值均为0,则表明该用户并非分离存储系统的合法用户,只能访问特制U盘中的公共分区。若找到sep_legal = 1的用户分区,则表明此用户为分离存储系统的合法用户之一,可访问特制U盘的公共分区和与之对应的用户分区,设置该用户分区的current_user为此用户。用户登录完成。
[0137] 若申请新用户,则由用户键入用户名、密码、用户分区大小等信息。Smc()模块若发现分区表中的当前注册用户数等于Max_pri_sections,则拒绝新用户申请。否则,smc()模块比较剩余用户空间是否大于用户申请的用户分区大小,若小于,则拒绝新用户申请,否则,当前注册用户数加1,用户分区数加1,更新分区表的信息,并将此用户作为新建用户分区的current_user,实现用户与用户分区的绑定。然后,将相应信息写入特制U盘的管理信息中的相应位置,实现信息同步。至此,用户注册过程完成,该用户可访问其用户分区和公共分区中的文件。
[0138] 当特制U盘设备在操作系统中注销成功后,该模块推出后台运行。此功能通过特制U盘驱动程序中的钩子句柄实现。
[0139] 文件读写基本流程如图3所示,每次文件读写访问均需进行用户身份认证和访问合法性的检查。文件系统中的分离/还原控制模块即为Smc()模块,主要包括“访问监视”、“文件读写”子模块和“工作表”。
[0140] “访问监视”的原理是在文件系统中监视和截获合法用户对特制U盘用户分区的文件操作,从而自动对特制U盘内置分离区中的文件发出分离和还原操作指令;
[0141] “文件读写”是Smc()模块的核心功能,完成文件的DES加/解密以及操作系统文件读写标准接口功能。
[0142] 文件保存时,若该操作是合法用户对其用户分区中文件的写操作,则对文件内容进行分块调用,分离算法通过调用特制U盘内置分离还原处理芯片实现,分块返回的“抽离信息”写入特制U盘的内置分离区,“主体信息”根据需要写入指定的终端硬盘专用区域,若文件位于公共分区,则按照一般文件写操作处理,分离存储功能不激活。
[0143] 文件读取时,若该操作是合法用户对其用户分区中文件的读操作,将存放在特制U盘内置分离区的“抽离信息”和指定终端硬盘专用区域的“主体信息”分别读出后执行相反的还原操作,还原后得到文件明文内容并返回应用程序;若所读文件位于公共分区,则按照一般文件读操作处理,分离存储功能不激活。
[0144] “工作表”针对合法用户对其用户分区的文件操作。所有打开的特制U盘的内置分离区文件记录在“工作表”中,以保证文件分离和还原操作的完整性。监视对用户区包括读、写、新建在内的所有访问。所有的读操作都会转化为对专用文件夹和特制U盘上内置分离区的读操作,读操作返回的是还原之后的内容;与之对应,所有的写操作也会转化为对终端硬盘专用区域写操作和对特制U盘的写操作,转化之后的写操作内容是经过分离之后的内容。
[0145] 当特制U盘不慎丢失时,若将其接入为加装smc()模块的计算机,其表现为一个普通的U盘,仅公共分区部分可用,用户分区不可用。
[0146] 如上所述,尽管参照特定的优选实施例已经表示和表述了本发明,但其不得解释为对本发明自身的限制。在不脱离所附权利要求定义的本发明的精神和范围前提下,可对其在形式上和细节上作出各种变化。