CN105718808A - 一种基于多网盘的文件加密存储系统及方法 - Google Patents
一种基于多网盘的文件加密存储系统及方法 Download PDFInfo
- Publication number
- CN105718808A CN105718808A CN201610031760.8A CN201610031760A CN105718808A CN 105718808 A CN105718808 A CN 105718808A CN 201610031760 A CN201610031760 A CN 201610031760A CN 105718808 A CN105718808 A CN 105718808A
- Authority
- CN
- China
- Prior art keywords
- blocks
- files
- file
- dropbox
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于多网盘的文件加密存储系统及方法。基于多网盘的文件加密存储系统包括“网盘”装置和“文件加密”装置,其中“网盘”装置负责存储文件数据、“文件加密”装置负责文件元数据存储以及加密文件的透明访问。加密文件写方法包括将所要写文件区域转为所要写“文件块”编号序列,并将对应的“文件数据块”采用最新写区域数据覆盖合并,再单独加密并上传至指定“网盘路径”;加密文件读方法包括将所要读文件区域转为所要读“文件块”编号序列,将对应的“加密文件数据块”从指定“网盘路径”下载到本地,并对每个“加密文件数据块”进行解密并从中抽取出所要读文件区域的内容。本发明能够有效地加速基于多网盘的文件加密存储的访问效率。
Description
技术领域
本发明属于计算机领域,主要关注提高基于多网盘的文件加密存储且可高效率访问的装置系统和方法。
背景技术
在公有存储云情况下,基于多网盘的文件存储能够有效防止公有存储云的服务商对用户文件的非法访问,特别是通过对文件加密存储后进一步防止了公有存储云的服务商对用户文件的潜在侵权问题。目前已有的解决方案是用户将文件进行整体加密后存储到不同的网盘上,这种方案的缺点是:即便用户只想读取该文件的部分内容,也需要用户将整个加密文件从网盘上下载到本地,然后再解密整个文件,最后读取该文件的指定部分内容,这种解决方案下对文件的访问效率极低,因为用户不得不下载整个文件。
发明内容
本发明目的是解决现有公有存储云解决方案下对文件的访问效率极低的问题,提供一种基于多网盘的文件加密存储且可高效率访问的装置系统和方法。本发明针对文件进行分块加密并存放到不同网盘上,这样既提高了用户文件的保密性,也提高了用户访问加密文件的访问效率。
本发明给出的基于多网盘的文件加密存储系统至少由一个或多个网盘以及“文件加密”装置组成;本发明给出的基于多网盘的文件加密存储方法,采用对文件先分块再各块独自加密,再上传到多个网盘的方法。
本发明技术方案
1.一种基于多网盘的文件加密存储系统,所述系统包括“网盘”装置和“文件加密”装置,二者通过网络互联;“网盘”装置,主要是用来存储文件数据,“网盘”装置包括各种公有云中的网盘、私有云中的网盘、以及其它能够提供文件存取服务的文件服务器;“文件加密”装置,主要是用来存储管理文件元数据以及加密文件的透明访问,即实现对文件数据分块、数据块加解密、数据块上传下载、以及文件数据块的合成功能,主要包括“文件访问接口”模块、“文件块分解与合成”模块、“文件块索引”模块、“文件块加密解密”模块、“文件块发送接收”模块、“网盘访问”模块以及“本地存储介质”模块;
其中,
“文件访问接口”模块,负责完成调用者的文件访问操作,包括将调用者的文件访问操作所要访问文件区域转化为“文件块”编号序列,将调用者写访问文件区域的新数据合并到所属文件中,以及将调用者读访问文件区域从所属文件中读取到调用者指定空间;
“文件块分解与合成”模块,负责对指定的文件进行“文件块”的分解,以及将“文件块”合成为文件的功能;
“文件块索引”模块,负责对“文件”概要信息、“文件块”概要信息的进行维护管理,以及待访问文件区域与“文件块”的对应关系之间的检索;
“文件块加密解密”模块,负责文件块的密钥产生以及针对“文件块”的加密和解密操作;
“文件块发送接收”模块,负责对“加密文件数据块”上传到指定“网盘路径”,以及将“加密文件数据块”从指定“网盘路径”下载到本地存储介质中;“文件块发送接收”模块直接通过“网盘访问”模块实现所述功能;
“网盘访问”模块,包括“网盘访问统一接口驱动”模块和“网盘驱动”模块;“网盘访问统一接口驱动”模块负责将不同类型的网盘访问接口统一为相同的接口方式;“网盘驱动”模块负责针对特定“网盘”装置的访问;不同类型的“网盘”装置有不同的“网盘驱动”模块,“网盘访问统一接口驱动”模块将根据所要访问的网盘类型来调用不同的“网盘驱动”模块;
“本地存储介质”模块,包括系统配置信息库、文件概要信息库、文件块概要信息库、文件块的本地存储池以及临时存储空间;系统配置信息库包括系统总容量、“文件块”长度策略、默认“文件块”长度和“网盘信息”列表,其中“网盘信息”包括网盘名称、网盘用户名、网盘访问口令、网盘网络地址、网盘用户根目录路径以及网盘容量限制;文件概要信息库包含所有文件的“文件”概要信息;每个“文件”概要信息包括文件名、文件编号、文件长度、“文件块”长度策略、默认“文件块”长度以及“文件块”数目;文件块概要信息库包括所有文件的所有“文件块”概要信息;每个“文件块”概要信息包括“文件块”基本信息和“文件块”详细信息,“文件块”基本信息包括该“文件块”的编号、“文件块”所属文件编号、“文件块”的文件偏移量、“文件块”长度、“文件块”状态;“文件块”状态包括未下载、未解密、已解密、已修改、已上传;“文件块”详细信息包括该“文件块”的编号、“文件块”所属文件编号、“文件块”的“网盘路径”、“本地路径”和“文件块”密钥;“文件块”密钥包括加密算法和密钥值;
“文件访问接口”模块直接调用“文件块索引”模块来完成将调用者的文件访问操作所要访问文件区域转化为“文件块”编号序列;“文件访问接口”模块直接调用“文件块分解与合成”模块来完成指定“文件块”的读操作或者写操作;“文件块分解与合成”模块直接调用“文件块索引”模块来完成查询指定“文件块”的“文件块”文件偏移量和“文件块”长度;“文件块分解与合成”模块直接调用“文件块加密解密”模块来完成“文件块”的加密和解密;“文件块分解与合成”模块直接调用“文件块发送接收”模块来完成“文件块”数据在本地存储与网盘之间的上传下载,而“文件块发送接收”模块直接调用“网盘访问”模块来完成“文件块”数据的网络传输;上述模块所涉及的整个系统以及文件元的信息都存储在“本地存储介质”模块,已下载的“文件块”以及被操作处理的“文件块”可存储在“本地存储介质”模块中的文件块本地存储池,上述模块操作处理中产生的中间数据也可存储在“本地存储介质”模块中的临时存储空间。
所述的文件,文件的数据内容以“文件块”为最小单位存储在多个“网盘”装置中,文件的元信息即“文件”概要信息和“文件块”概要信息存储在“文件加密”装置;同一个文件的不同“文件块”既可以存储在同一个“网盘”装置中,也可以存储在不同的“网盘”装置中;“文件块”长度既可以是固定长度,也可以是变长长度,“文件块”长度由“文件块”长度策略决定;一个文件所包含的所有“文件块”长度由该文件的“文件块”概要信息给出;“文件块”长度策略由包含在系统配置信息和“文件”概要信息的“文件块”长度策略依次决定,“文件块”长度策略包括全局固定长度、全局变长长度、文件固定长度、文件变长长度和自定义长度策略。
所述的“文件块”长度,每个“文件块”长度的具体值由“网盘存储分配算法”根据多级“文件块”长度策略来产生;针对全局变长长度策略和文件变长长度策略,“网盘存储分配算法”按照文件的逻辑内容结构来进行“文件块”的划分;文件的长度、每个“文件块”的文件偏移量以及“文件块”长度最终更新到对应的“文件”概要信息和“文件块”概要信息中。
所述的“网盘存储分配算法”,“网盘存储分配算法”主要负责根据“文件块”长度策略和“网盘信息”列表针对指定文件给出一整套“网盘文件块存储规划”,包括“文件块”划分方案、每个“文件块”的密钥信息、以及每个“文件块”数据的“网盘路径”;“文件块”划分方案包括“文件块”的文件偏移量和“文件块”长度。
所述“文件块”的密钥信息,“文件块”的密钥信息既可以是对称密钥,也可以是非对称密钥;同一个文件的不同“文件块”的密钥信息既可以是相同的,也可以是不同的;“文件块”的密钥信息持久存储在“文件块”概要信息中。
2.一种基于上述多网盘的文件加密存储系统的读方法,所述方法包括具体步骤如下:
第1、“文件访问接口”模块获取调用者“读操作请求”文件的所要读操作区域,即读操作的文件偏移量和长度;
第2、“文件访问接口”模块获取系统配置信息;
第3、“文件访问接口”模块调用“文件块索引”模块将第1步中读操作区域转化为所要读的“文件块”编号序列,具体步骤如下:
第3.1、“文件块索引”模块获取第1步中文件的“文件”概要信息;
第3.2、“文件块索引”模块获取第1步中文件的“文件块”基本信息列表;
第3.3、“文件块索引”模块根据第1步中读操作区域以及第3.2步中“文件块”基本信息列表,计算出第1步中的读操作区域所对应的“文件块”编号序列;
第4、“文件块索引”模块获取第3.3步中“文件块”编号序列所对应的“文件块”详细信息列表;
第5、“文件访问接口”模块调用“文件块分解与合成”模块,“文件块分解与合成”模块针对第4步中的“文件块”详细信息列表,“文件块分解与合成”模块进一步调用“文件块发送接收”模块下载所对应的已“加密文件数据块”序列;若全部下载成功则执行第6步,否则执行第7步;
第6、“加密文件数据块”序列下载全部成功,执行具体步骤如下:
第6.1、针对第5步中已下载“加密文件数据块”序列,“文件块分解与合成”模块根据第4步中每个“文件块”密钥并调用“文件块加密解密”模块对所述已下载“加密文件数据块”进行解密,生成对应的“文件数据块”;
第6.2、“文件访问接口”模块根据第1步中读操作区域从第6.1步中已解密“文件数据块”序列中抽取出所要读操作区域的内容到调用者指定的空间中;
第6.3、设置读操作结果为成功;并执行第8步;
第7、“加密文件数据块”序列下载失败,执行具体步骤如下:
第7.1、在本地存储中删除所有第5步中已下载的“加密文件数据块”;
第7.2、设置读操作结果为失败;并执行第8步;
第8、返回读操作结果,程序执行结束。
3.一种基于上述多网盘的文件加密存储系统的写方法,所述方法包括具体步骤如下:
第1、“文件访问接口”模块获取调用者“写操作请求”文件的所要写操作区域,即写操作的文件偏移量和长度;
第2、“文件访问接口”模块获取系统配置信息库;
第3、“文件访问接口”模块调用“文件块索引”模块将第1步中的写操作区域转化为所要写的“文件块”编号序列,具体步骤如下:
第3.1、“文件块索引”模块获取第1步中文件的“文件”概要信息,并建立“文件”概要信息副本;
第3.2、“文件块索引”模块获取第1步中文件的“文件块”概要信息,并建立“文件块”基本信息副本和“文件块”详细信息副本;
第3.3、“文件块索引”模块根据第1步中写操作区域以及第3.2步中“文件块”信息列表,计算出第1步中的写操作区域所对应的“文件块”编号序列;
第4、“文件访问接口”模块调用“文件块分解与合成”模块,“文件块分解与合成”模块依次遍历第3.3步中“文件块”编号序列,对第3.2步中每个“文件块”编号所对应的已有“文件块”采用第1步中调用者提供的最新写区域数据进行覆盖合并从而生成对应的最新“文件块”;若覆盖合并成功则执行第5步,否则执行第9步;
第5、针对第4步生成的最新“文件块”序列,“文件块索引”模块根据第2步中的“网盘信息”以及“网盘存储分配算法”产生新的“网盘文件块存储规划”,并根据该“网盘文件块存储规划”重新生成“文件块”序列,即称之为“重构文件块”序列;
第6、“文件块分解与合成”模块依次对第5步中“重构文件块”序列进行单独数据加密,具体步骤如下:
第6.1、针对当前“重构文件块”,根据第5步中的“网盘文件块存储规划”获取该“重构文件块”的“文件块”密钥;
第6.2、调用“文件块加密解密”模块采用第6.1步中获取的“文件块”密钥对当前“重构文件块”进行加密,生成“加密文件数据块”;
第7、根据第5步中的“网盘文件块存储规划”,“文件块发送接收”模块分别将第6步中“加密文件数据块”序列的每个“文件块”上传到对应的“网盘路径”;若全部上传成功则执行第8步,否则执行第9步;
第8、“加密文件数据块”全部上传成功,执行具体步骤如下:
第8.1、针对第3步中“加密文件数据块”序列的每个“文件块”,比较第5步中的“网盘文件块存储规划”的“网盘路径”与第3.2步中原有的“网盘路径”,如果不同,则将第3.2步中原有的“网盘路径”中的无效数据删除;
第8.2、将第5步中的“网盘文件块存储规划”信息更新到“本地存储介质”的“文件”概要信息和“文件块”概要信息中;
第8.3、设置写操作结果为成功;并执行第10步;
第9、“加密数据存储块”上传失败,执行具体步骤如下:
第9.1、针对第7步所有已上传的“加密文件数据块”分别删除本地和在对应的“网盘路径”中的数据;
第9.2、设置写操作结果为失败;并执行第10步;
第10、删除第3.1步中“文件”概要信息副本;进一步删除第3.2步中“文件块”基本信息副本和“文件块”详细信息副本;
第11、返回写操作结果,程序执行结束。
所述的“文件访问接口”模块获取系统配置信息库既可以在“文件加密”装置启动时读取,也可以在文件访问操作时读取;所述的“文件块检索”模块获取文件的“文件”概要信息和“文件块”概要信息既可以在文件打开操作时读取,也可以在文件读取、写入访问操作时读取。
所述的“基于多网盘的文件加密存储系统的写方法”中,第4步中采用调用者提供的最新写区域数据进行覆盖合并从而生成对应的最新“文件块”的方法如下:
方法1是首先调用权利要求6所述的“基于多网盘的文件加密存储系统的读方法”,将第3.3步中“文件块”编号序列所对应的“加密文件数据块”全部下载到本地,然后再用调用者提供的最新写区域数据进行覆盖合并;
方法2是首先判断调用者提供的最新写区域所涉及的已有“文件块”是否已被全覆盖,若是已被全覆盖则直接用调用者提供的对应的最新写区域数据覆盖,若已有“文件块”未被全覆盖则调用权利前述的“基于多网盘的文件加密存储系统的读方法”将所对应的“加密文件数据块”下载到本地存储中,然后再用调用者提供的对应的最新写区域数据进行覆盖合并。
本发明所涉及的具体内容及所述术语的含义是:
(1)文件的元信息即“文件”概要信息和“文件”概要信息;“文件”概要信息包括“文件块”基本信息和“文件块”详细信息。
(2)“文件块”是指文件中一段连续区域的数据内容。未加密的“文件块”也称为“文件数据块”,已加密的“文件块”也称为“加密文件数据块”;“文件数据块”和“加密文件数据块”统称为“文件块”。
(3)“重构文件块”序列是指根据该“网盘文件块存储规划”重新生成“文件块”序列。
(4)“网盘路径”是指文件存储在各种公有云和私有云下的具体网盘以及在网盘中具体的文件路径,也可以是其它文件服务器的具体服务器地址以及具体文件路径。
本发明的优点和积极效果:
本发明采用多个网盘存放用户的文件,且对用户文件进行分块加密。用户的任意文件将被划分为若干个文件块,然后针对这些文件块进行单独加密,然后把这些文件块分散在多个网盘中。
本发明提高了用户文件的保密性,用户的任意一个文件均不完整存放在一个网盘中,这样网盘服务商无法获取文件的完整副本;另外一个文件的不同文件块各自进行单独加密,每个文件块选择的密钥可不同,这样即使是在只有一个网盘的情况下,网盘服务商在获得文件完整副本的情况下也很难全部解密所有文件块密文,因此提高了用户文件的保密性。
本发明同时也提高了用户访问加密文件的访问效率,用户访问任意文件时,无需将该文件的全部文件块密文从网盘上下载然后再解密,而只需将想要访问的文件块从网盘上下载然后再解密,这样该文件在用户客户端被打开的时间大大缩短了,因此提高了用户访问加密文件的访问效率。
附图说明
图1是本发明中系统架构示意图。
图2是本发明中一种基于多网盘的文件加密存储的读方法流程图。
图3是本发明中一种基于多网盘的文件加密存储的写方法流程图。
图4是文件1的文件块布局示意图。
图5是文件2的文件块布局示意图。
具体实施方式
本发明提供了一种基于多网盘的文件加密存储系统及读写方法。为能进一步了解本发明的技术内容、特点及功效,兹列举以下应用实例,并配合附图详细说明如下。
一、本发明所提供的基于多网盘的文件加密存储系统包括如下:
“网盘”装置300和“文件加密”装置100,二者通过网络互联200方式连接;
“网盘”装置300,主要是用来存储文件数据,“网盘”装置包括各种公有云中的网盘、私有云中的网盘、以及其它能够提供文件存取服务的文件服务器;
例如:公有云中的网盘包括百度网盘、微软OneDrive、新浪网盘、Dropbox网盘等;私有云中的网盘包括seafile网盘等;文件服务器包括ftp服务器、NFS服务器、sshd服务器等。
“文件加密”装置100,主要是用来存储管理文件元数据以及加密文件的透明访问,即实现对文件数据分块、数据块加解密、数据块上传下载、以及文件数据块的合成功能,主要包括“文件访问接口”模块110、“文件块分解与合成”模块120、“文件块索引”模块150、“文件块加密解密”模块160、“文件块发送接收”模块130、“网盘访问”模块140以及“本地存储介质”模块170;
其中,
“文件访问接口”模块110,负责完成调用者的文件访问操作,包括将调用者的文件访问操作所要访问文件区域转化为“文件块”编号序列,将调用者写访问文件区域的新数据合并到所属文件中,以及将调用者读访问文件区域从所属文件中读取到调用者指定空间;
例如:调用者的文件读访问操作一般为ssize_tread(intfd,void*buf,size_tcount),此时欲读取从当前偏移量指针开始的count个字节;如图4所示,需要将调用者的文件读访问操作转换为读若干个“文件块”的操作。
“文件块分解与合成”模块120,负责对指定的文件进行“文件块”的分解,以及将“文件块”合成为文件的功能;
“文件块索引”模块150,负责对“文件”概要信息、“文件块”概要信息的进行维护管理,以及待访问文件区域与“文件块”的对应关系之间的检索;
“文件块加密解密”模块160,负责文件块的密钥产生以及针对“文件块”的加密和解密操作;
“文件块发送接收”模块130,负责对“加密文件数据块”上传到指定“网盘路径”,以及将“加密文件数据块”从指定“网盘路径”下载到本地存储介质中;“文件块发送接收”模块直接通过“网盘访问”模块实现所述功能;
“网盘访问”模块140,包括“网盘访问统一接口驱动”模块141和“网盘驱动”模块142;“网盘访问统一接口驱动”模块141负责将不同类型的网盘访问接口统一为相同的接口方式;“网盘驱动”模块142负责针对特定“网盘”装置的访问;不同类型的“网盘”装置有不同的“网盘驱动”模块,“网盘访问统一接口驱动”模块141将根据所要访问的网盘类型来调用不同的“网盘驱动”模块;
例如:百度网盘、微软OneDrive、新浪网盘等各自有不同的“网盘驱动”模块。
“本地存储介质”模块170,包括系统配置信息库171、文件概要信息库172、文件块概要信息库173、文件块的本地存储池174以及临时存储空间175;
系统配置信息库171包括系统总容量、“文件块”长度策略、默认“文件块”长度和“网盘信息”列表,其中“网盘信息”包括网盘名称、网盘用户名、网盘访问口令、网盘网络地址、网盘用户根目录路径以及网盘容量限制;
例如:系统配置信息库实例:系统总容量(10TB)、“文件块”长度策略(全局固定长度)、默认“文件块”长度(1MB)、“网盘信息”列表(网盘信息1,网盘信息2,…,网盘信息K);网盘信息实例1(百度网盘,用户名1,访问口令1,http://pan.baidu.com,/data,1TB)。
文件概要信息库172包含所有文件的“文件”概要信息;每个“文件”概要信息包括文件名、文件编号、文件长度、“文件块”长度策略、默认“文件块”长度以及“文件块”数目;
例如:如图4所示,文件1的概要信息:文件名(文件1)、文件编号(1)、文件长度(10MB)、“文件块”长度策略(文件固定长度)、默认“文件块”长度(1MB)、“文件块”数目(10)。
文件块概要信息库173包括所有文件的所有“文件块”概要信息;每个“文件块”概要信息包括“文件块”基本信息和“文件块”详细信息,“文件块”基本信息包括该“文件块”的编号、“文件块”所属文件编号、“文件块”的文件偏移量、“文件块”长度、“文件块”状态;“文件块”状态包括未下载、未解密、已解密、已修改、已上传;“文件块”详细信息包括该“文件块”的编号、“文件块”所属文件编号、“文件块”的“网盘路径”、“本地路径”和“文件块”密钥;“文件块”密钥包括加密算法和密钥值。
例如:如图4所示,文件1包括10个“文件块”,每个“文件块”长度为1MB;第0块“文件块”的基本信息包括:“文件块”的编号(0)、“文件块”所属文件编号(1)、“文件块”的文件偏移量(0)和“文件块”长度(1MB);第1块“文件块”的基本信息包括:“文件块”的编号(1)、“文件块”所属文件编号(1)、“文件块”的文件偏移量(1MB)、“文件块”长度(1MB)、“文件块”状态(未下载);第0块“文件块”的详细信息包括:“文件块”的编号(0)、“文件块”所属文件编号(1)、“文件块”的“网盘路径”(新浪网盘,/data/file_1_0)、“本地路径”(/localdata/lfile_1_0)和“文件块”密钥(算法AES,密钥(123pwd))。
“文件访问接口”模块110直接调用“文件块索引”模块150来完成将调用者的文件访问操作所要访问文件区域转化为“文件块”编号序列;“文件访问接口”模块110直接调用“文件块分解与合成”模块120来完成指定“文件块”的读操作或者写操作;“文件块分解与合成”模块120直接调用“文件块索引”模块150来完成查询指定“文件块”的“文件块”文件偏移量和“文件块”长度;“文件块分解与合成”模块120直接调用“文件块加密解密”模块160来完成“文件块”的加密和解密;“文件块分解与合成”模块120直接调用“文件块发送接收”模块130来完成“文件块”数据在本地存储与网盘之间的上传下载,而“文件块发送接收”模块130直接调用“网盘访问”模块140来完成“文件块”数据的网络传输;上述模块所涉及的整个系统以及文件元的信息都存储在“本地存储介质”模块170,已下载的“文件块”以及被操作处理的“文件块”可存储在“本地存储介质”模块170中的文件块本地存储池174,上述模块操作处理中产生的中间数据也可存储在“本地存储介质”模块170中的临时存储空间175。
所述的文件,文件的数据内容以“文件块”为最小单位存储在多个“网盘”装置300中,文件的元信息即“文件”概要信息和“文件块”概要信息存储在“文件加密”装置;同一个文件的不同“文件块”既可以存储在同一个“网盘”装置中,也可以存储在不同的“网盘”装置中;“文件块”长度既可以是固定长度,也可以是变长长度,“文件块”长度由“文件块”长度策略决定;一个文件所包含的所有“文件块”长度由该文件的“文件块”概要信息给出;“文件块”长度策略由包含在系统配置信息和“文件”概要信息的“文件块”长度策略依次决定,“文件块”长度策略包括全局固定长度、全局变长长度、文件固定长度、文件变长长度和自定义长度策略。
例如:图4中文件1的“文件块”划分为固定长度;图5中文件2的“文件块”划分为变长长度。
所述的“文件块”长度,每个“文件块”长度的具体值由“网盘存储分配算法”根据多级“文件块”长度策略来产生;针对全局变长长度策略和文件变长长度策略,“网盘存储分配算法”按照文件的逻辑内容结构来进行“文件块”的划分;文件的长度、每个“文件块”的文件偏移量以及“文件块”长度最终更新到对应的“文件”概要信息和“文件块”概要信息中。
例如:图5中文件2的“文件块”划分为变长长度,划分算法包括基于内容的CDC算法、滑动块SB算法等。
所述的“网盘存储分配算法”,“网盘存储分配算法”主要负责根据“文件块”长度策略和“网盘信息”列表针对指定文件给出一整套“网盘文件块存储规划”,包括“文件块”划分方案、每个“文件块”的密钥信息、以及每个“文件块”数据的“网盘路径”;“文件块”划分方案包括“文件块”的文件偏移量和“文件块”长度。
所述“文件块”的密钥信息,“文件块”的密钥信息既可以是对称密钥,也可以是非对称密钥;同一个文件的不同“文件块”的密钥信息既可以是相同的,也可以是不同的;“文件块”的密钥信息持久存储在“文件块”概要信息中。
例如:对称加密算法:DES、AES、RC5等;非对称加密算法:RSA、ECC、D-H等。
二、本发明所提供的基于多网盘的文件加密存储系统的读方法,所述方法包括具体步骤如下:
第1、“文件访问接口”模块获取调用者“读操作请求”文件的所要读操作区域,即读操作的文件偏移量和长度;
例如:如图4所示实例,读取文件1的具体读操作read(intfd,void*buf,size_tcount)中count为1048577字节(即1MB+1字节),当前偏移量为0的实例:那么则文件偏移量为0和长度为1048577字节;
第2、“文件访问接口”模块获取系统配置信息;
例如:系统配置信息库实例:系统总容量(10TB)、“文件块”长度策略(全局固定长度)、默认“文件块”长度(1MB)、“网盘信息”列表(网盘信息1,网盘信息2,…,网盘信息K);网盘信息实例1(百度网盘,用户名1,访问口令1,http://pan.baidu.com,/data,1TB)。
第3、“文件访问接口”模块调用“文件块索引”模块将第1步中读操作区域转化为所要读的“文件块”编号序列,具体步骤如下:
第3.1、“文件块索引”模块获取第1步中文件的“文件”概要信息;
例如:如图4所示,文件1的概要信息:文件名(文件1)、文件编号(1)、文件长度(10MB)、“文件块”长度策略(文件固定长度)、默认“文件块”长度(1MB)、“文件块”数目(10)。
第3.2、“文件块索引”模块获取第1步中文件的“文件块”基本信息列表;
例如:如图4所示,文件1包括10个“文件块”,每个“文件块”长度为1MB;第0块“文件块”的基本信息包括:“文件块”的编号(0)、“文件块”所属文件编号(1)、“文件块”的文件偏移量(0)“文件块”长度(1MB)、“文件块”状态(未下载);第1块“文件块”的基本信息包括:“文件块”的编号(1)、“文件块”所属文件编号(1)、“文件块”的文件偏移量(1MB)和“文件块”长度(1MB);第i块“文件块”的基本信息等等。
第3.3、“文件块索引”模块根据第1步中读操作区域以及第3.2步中“文件块”基本信息列表,计算出第1步中的读操作区域所对应的“文件块”编号序列;
例如:第1步中的读操作区域所对应的“文件块”编号序列为:(0,1)即第0块和第1块,因为每个“文件块”长度为1MB,共要读1MB+1B个字节。
第4、“文件块索引”模块获取第3.3步中“文件块”编号序列所对应的“文件块”详细信息列表;
例如:如图4所示,要读取文件1中的“文件块”(0,1即第0块和第1块)的详细信息列表;
第0块“文件块”的详细信息包括:“文件块”的编号(0)、“文件块”所属文件编号(1)、“文件块”的“网盘路径”(新浪网盘,/data/file_1_0)、“本地路径”(/localdata/lfile_1_0)和“文件块”密钥(算法AES,密钥(123pwd));第1块“文件块”的详细信息限于篇幅略去。
第5、“文件访问接口”模块调用“文件块分解与合成”模块,“文件块分解与合成”模块针对第4步中的“文件块”详细信息列表,“文件块分解与合成”模块进一步调用“文件块发送接收”模块下载所对应的已“加密文件数据块”序列;若全部下载成功则执行第6步,否则执行第7步;
例如:“文件块发送接收”模块从“网盘路径”(新浪网盘,/data/file_1_0)下载文件1的第0块“文件块”到本地,此时第0块“文件块”为已加密的“文件块”即“加密文件数据块”;并更改“文件块”状态。
第6、“加密文件数据块”序列下载全部成功,执行具体步骤如下:
第6.1、针对第5步中已下载“加密文件数据块”序列,“文件块分解与合成”模块根据第4步中每个“文件块”密钥并调用“文件块加密解密”模块对所述已下载“加密文件数据块”进行解密,生成对应的“文件数据块”;
例如:对已下载的第0块“加密文件数据块”,根据该块的详细信息,采用AES算法并用密钥(123pwd)进行解密生成第0块“文件数据块”即已解密的第0块“文件块”;同理解密第1块“加密文件数据块”;并更改“文件块”状态。
第6.2、“文件访问接口”模块根据第1步中读操作区域从第6.1步中已解密“文件数据块”序列中抽取出所要读操作区域的内容到调用者指定的空间中;
例如:本案例中从偏移量为0的位置要读取1048577字节(即1MB+1字节),因此要读取已解密的第0块“文件块”全部数据和已解密的第1块“文件块”的第1个字节,将上述1048577字节复制到调用者指定的空间buf中。
第6.3、设置读操作结果为成功;并执行第8步;
第7、“加密文件数据块”序列下载失败,执行具体步骤如下:
第7.1、在本地存储中删除所有第5步中已下载的“加密文件数据块”;
第7.2、设置读操作结果为失败;并执行第8步;
第8、返回读操作结果,程序执行结束。
三、本发明所提供的基于多网盘的文件加密存储系统的写方法,所述方法包括具体步骤如下:
第1、“文件访问接口”模块获取调用者“写操作请求”文件的所要写操作区域,即写操作的文件偏移量和长度;
例如:如图4所示实例,写文件1的具体写操作write(intfd,void*buf,size_tnbyte)中nbyte为1048577字节(即1MB+1字节),当前偏移量为0的实例:那么则文件偏移量为0和长度为1048577字节;
第2、“文件访问接口”模块获取系统配置信息库;
例如:系统配置信息库实例:系统总容量(10TB)、“文件块”长度策略(全局固定长度)、默认“文件块”长度(1MB)、“网盘信息”列表(网盘信息1,网盘信息2,…,网盘信息K);网盘信息实例1(百度网盘,用户名1,访问口令1,http://pan.baidu.com,/data,1TB)。
第3、“文件访问接口”模块调用“文件块索引”模块将第1步中的写操作区域转化为所要写的“文件块”编号序列,具体步骤如下;
第3.1、“文件块索引”模块获取第1步中文件的“文件”概要信息,并建立“文件”概要信息副本;
例如:如图4所示,文件1的概要信息:文件名(文件1)、文件编号(1)、文件长度(10MB)、“文件块”长度策略(文件固定长度)、默认“文件块”长度(1MB)、“文件块”数目(10)。
第3.2、“文件块索引”模块获取第1步中文件的“文件块”概要信息,并建立“文件块”基本信息副本和“文件块”详细信息副本;
例如:如图4所示,文件1包括10个“文件块”,每个“文件块”长度为1MB;
第0块“文件块”的基本信息包括:“文件块”的编号(0)、“文件块”所属文件编号(1)、“文件块”的文件偏移量(0)“文件块”长度(1MB)、“文件块”状态(未下载);第1块“文件块”的基本信息包括:“文件块”的编号(1)、“文件块”所属文件编号(1)、“文件块”的文件偏移量(1MB)和“文件块”长度(1MB);第i块“文件块”的基本信息等等。
第0块“文件块”的详细信息包括:“文件块”的编号(0)、“文件块”所属文件编号(1)、“文件块”的“网盘路径”(新浪网盘,/data/file_1_0)、“本地路径”(/localdata/lfile_1_0)和“文件块”密钥(算法AES,密钥(123pwd));第1块“文件块”的详细信息包括:“文件块”的编号(1)、“文件块”所属文件编号(1)、“文件块”的“网盘路径”(百度网盘,/user1/file_1_1)、“本地路径”(/localdata/lfile_1_1)和“文件块”密钥(算法3DES,密钥(pwd456));第i块“文件块”的详细信息限于篇幅略去。
第3.3、“文件块索引”模块根据第1步中写操作区域以及第3.2步中“文件块”信息列表,计算出第1步中的写操作区域所对应的“文件块”编号序列;
例如:该写案例中写操作区域所对应的“文件块”编号序列可计算得出为(0,1即第0块和第1块)。
第4、“文件访问接口”模块调用“文件块分解与合成”模块,“文件块分解与合成”模块依次遍历第3.3步中“文件块”编号序列,对第3.2步中每个“文件块”编号所对应的已有“文件块”采用第1步中调用者提供的最新写区域数据进行覆盖合并从而生成对应的最新“文件块”;若覆盖合并成功则执行第5步,否则执行第9步;
例如:该写案例中要对第0块和第1块进行覆盖合并改写,因此如果第0块和第1块“文件块”尚未下载到本地,那么先将第0块和第1块“文件块”按照前述的读方法将这些块下载到本地并进行各自解密处理,最终在本地存储介质上有最新的已解密的第0块和第1块“文件块”,并且这些“文件块”已被写操作的最新写区域数据覆盖合并,具体到本案例即将第0块完全覆盖、将第1块的第一个字节覆盖且本块的其余字节保留;并更改“文件块”状态。
第5、针对第4步生成的最新“文件块”序列,“文件块索引”模块根据第2步中的“网盘信息”以及“网盘存储分配算法”产生新的“网盘文件块存储规划”,并根据该“网盘文件块存储规划”重新生成“文件块”序列,即称之为“重构文件块”序列;
例如:针对文件1的第0、1块最新“文件块”,可以采用“网盘存储分配算法”重新产生文件1的“文件块”的划分规划、新密钥信息规划、以及新“网盘路径”规划;本案例中仍可以采用“文件固定长度”的“文件块”划分策略并采用“文件块”长度为1MB的“文件块”划分规划,即与原有的“文件块”划分结果相同。
第6、“文件块分解与合成”模块依次对第5步中“重构文件块”序列进行单独数据加密,具体步骤如下:
第6.1、针对当前“重构文件块”,根据第5步中的“网盘文件块存储规划”获取该“重构文件块”的“文件块”密钥;
第6.2、调用“文件块加密解密”模块采用第6.1步中获取的“文件块”密钥对当前“重构文件块”进行加密,生成“加密文件数据块”;
例如:“文件块”进行重新划分规划后,每个“文件块”将可以采用新密钥信息规划或者依旧采用旧密钥信息;并更改“文件块”状态。
第7、根据第5步中的“网盘文件块存储规划”,“文件块发送接收”模块分别将第6步中“加密文件数据块”序列的每个“文件块”上传到对应的“网盘路径”;若全部上传成功则执行第8步,否则执行第9步;
例如:“文件块”进行重新划分规划后,每个“文件块”将采用新的“网盘路径”,并将已加密“文件块”即“加密文件数据块”上传到新的“网盘路径”;并更改“文件块”状态。
第8、“加密文件数据块”全部上传成功,执行具体步骤如下:
第8.1、针对第3步中“加密文件数据块”序列的每个“文件块”,比较第5步中的“网盘文件块存储规划”的“网盘路径”与第3.2步中原有的“网盘路径”,如果不同,则将第3.2步中原有的“网盘路径”中的无效数据删除;
例如:依据“文件”概要信息副本、“文件块”基本信息副本和“文件块”详细信息副本等信息将原有的“文件块”对应的“网盘路径”的数据删除掉,从而有效使用各个网盘的存储空间。
第8.2、将第5步中的“网盘文件块存储规划”信息更新到“本地存储介质”的“文件”概要信息和“文件块”概要信息中;
第8.3、设置写操作结果为成功;并执行第10步;
第9、“加密数据存储块”上传失败,执行具体步骤如下:
第9.1、针对第7步所有已上传的“加密文件数据块”分别删除本地和在对应的“网盘路径”中的数据;
第9.2、设置写操作结果为失败;并执行第10步;
第10、删除第3.1步中“文件”概要信息副本;进一步删除第3.2步中“文件块”基本信息副本和“文件块”详细信息副本;
第11、返回写操作结果,程序执行结束。
所述的“文件访问接口”模块获取系统配置信息库既可以在“文件加密”装置启动时读取,也可以在文件访问操作时读取;所述的“文件块检索”模块获取文件的“文件”概要信息和“文件块”概要信息既可以在文件打开操作时读取,也可以在文件读取、写入访问操作时读取。
对于系统配置信息的获取一般在“基于多网盘的文件加密存储系统”启动时完成;对于“文件”概要信息以及“文件块”概要信息一般都是在该文件打开操作(open)时完成;这样减少文件读操作、文件写操作的频繁读取“本地存储介质”模块而带来的IO性能损失。
所述的“基于多网盘的文件加密存储系统的写方法”中,第4步中采用调用者提供的最新写区域数据进行覆盖合并从而生成对应的最新“文件块”的方法如下:
方法1是首先调用权利要求6所述的“基于多网盘的文件加密存储系统的读方法”,将第3.3步中“文件块”编号序列所对应的“加密文件数据块”全部下载到本地,然后再用调用者提供的最新写区域数据进行覆盖合并;
例如:该写案例中有10个“文件块”,需要先将这10个“文件块”从各自的“网盘路径”下载到本地并且进行解密,这个方法事实上造成了不必要的处理时间浪费;
方法2是首先判断调用者提供的最新写区域所涉及的已有“文件块”是否已被全覆盖,若是已被全覆盖则直接用调用者提供的对应的最新写区域数据覆盖,若已有“文件块”未被全覆盖则调用权利前述的“基于多网盘的文件加密存储系统的读方法”将所对应的“加密文件数据块”下载到本地存储中,然后再用调用者提供的对应的最新写区域数据进行覆盖合并。
例如:该写案例中要对第0块和第1块进行覆盖合并改写,因此只需先把第0块和第1块“文件块”下载到本地在进行解密;如果第0“文件块”此前已经下载到本地,则不必要重复下载。
覆盖合并的实例:该写案例将第0块完全覆盖、将第1块的第一个字节覆盖且本块的其余字节保留。
考虑到在此公开的对本发明的描述和特例的实施例,本发明的其他实施例对于本领域的技术人员来说是显而意见的。这些说明和实施例仅作为例子来考虑,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于多网盘的文件加密存储系统,其特征在于,所述系统包括“网盘”装置和“文件加密”装置,二者通过网络互联;“网盘”装置,主要是用来存储文件数据,“网盘”装置包括各种公有云中的网盘、私有云中的网盘、以及其它能够提供文件存取服务的文件服务器;“文件加密”装置,主要是用来存储管理文件元数据以及加密文件的透明访问,即实现对文件数据分块、数据块加解密、数据块上传下载、以及文件数据块的合成功能,主要包括“文件访问接口”模块、“文件块分解与合成”模块、“文件块索引”模块、“文件块加密解密”模块、“文件块发送接收”模块、“网盘访问”模块以及“本地存储介质”模块;
其中,
“文件访问接口”模块,负责完成调用者的文件访问操作,包括将调用者的文件访问操作所要访问文件区域转化为“文件块”编号序列,将调用者写访问文件区域的新数据合并到所属文件中,以及将调用者读访问文件区域从所属文件中读取到调用者指定空间;
“文件块分解与合成”模块,负责对指定的文件进行“文件块”的分解,以及将“文件块”合成为文件的功能;
“文件块索引”模块,负责对“文件”概要信息、“文件块”概要信息进行维护管理,以及待访问文件区域与“文件块”的对应关系之间的检索;
“文件块加密解密”模块,负责文件块的密钥产生以及针对“文件块”的加密和解密操作;
“文件块发送接收”模块,负责对“加密文件数据块”上传到指定“网盘路径”,以及将“加密文件数据块”从指定“网盘路径”下载到本地存储介质中;“文件块发送接收”模块直接通过“网盘访问”模块实现所述功能;
“网盘访问”模块,包括“网盘访问统一接口驱动”模块和“网盘驱动”模块;“网盘访问统一接口驱动”模块负责将不同类型的网盘访问接口统一为相同的接口方式;“网盘驱动”模块负责针对特定“网盘”装置的访问;不同类型的“网盘”装置有不同的“网盘驱动”模块,“网盘访问统一接口驱动”模块将根据所要访问的网盘类型来调用不同的“网盘驱动”模块;
“本地存储介质”模块,包括系统配置信息库、文件概要信息库、文件块概要信息库、文件块的本地存储池以及临时存储空间;系统配置信息库包括系统总容量、“文件块”长度策略、默认“文件块”长度和“网盘信息”列表,其中“网盘信息”包括网盘名称、网盘用户名、网盘访问口令、网盘网络地址、网盘用户根目录路径以及网盘容量限制;文件概要信息库包含所有文件的“文件”概要信息;每个“文件”概要信息包括文件名、文件编号、文件长度、“文件块”长度策略、默认“文件块”长度以及“文件块”数目;文件块概要信息库包括所有文件的所有“文件块”概要信息;每个“文件块”概要信息包括“文件块”基本信息和“文件块”详细信息,“文件块”基本信息包括该“文件块”的编号、“文件块”所属文件编号、“文件块”的文件偏移量、“文件块”长度、“文件块”状态;“文件块”状态包括未下载、未解密、已解密、已修改、已上传;“文件块”详细信息包括该“文件块”的编号、“文件块”所属文件编号、“文件块”的“网盘路径”、“本地路径”和“文件块”密钥;“文件块”密钥包括加密算法和密钥值;
“文件访问接口”模块直接调用“文件块索引”模块来完成将调用者的文件访问操作所要访问文件区域转化为“文件块”编号序列;“文件访问接口”模块直接调用“文件块分解与合成”模块来完成指定“文件块”的读操作或者写操作;“文件块分解与合成”模块直接调用“文件块索引”模块来完成查询指定“文件块”的“文件块”文件偏移量和“文件块”长度;“文件块分解与合成”模块直接调用“文件块加密解密”模块来完成“文件块”的加密和解密;“文件块分解与合成”模块直接调用“文件块发送接收”模块来完成“文件块”数据在本地存储与网盘之间的上传下载,而“文件块发送接收”模块直接调用“网盘访问”模块来完成“文件块”数据的网络传输;上述模块所涉及的整个系统以及文件元的信息都存储在“本地存储介质”模块,已下载的“文件块”以及被操作处理的“文件块”可存储在“本地存储介质”模块中的文件块本地存储池,上述模块操作处理中产生的中间数据也可存储在“本地存储介质”模块中的临时存储空间。
2.根据权利要求1所述的基于多网盘的文件加密存储系统,其特征在于,文件的数据内容以“文件块”为最小单位存储在多个“网盘”装置中,文件的元信息即“文件”概要信息和“文件块”概要信息存储在“文件加密”装置;同一个文件的不同“文件块”既可以存储在同一个“网盘”装置中,也可以存储在不同的“网盘”装置中;“文件块”长度既可以是固定长度,也可以是变长长度,“文件块”长度由“文件块”长度策略决定;一个文件所包含的所有“文件块”长度由该文件的“文件块”概要信息给出;“文件块”长度策略由包含在系统配置信息和“文件”概要信息的“文件块”长度策略依次决定,“文件块”长度策略包括全局固定长度、全局变长长度、文件固定长度、文件变长长度和自定义长度策略。
3.根据权利要求2所述的基于多网盘的文件加密存储系统,其特征在于,所述每个“文件块”长度的具体值由“网盘存储分配算法”根据多级“文件块”长度策略来产生;针对全局变长长度策略和文件变长长度策略,“网盘存储分配算法”按照文件的逻辑内容结构来进行“文件块”的划分;文件的长度、每个“文件块”的文件偏移量以及“文件块”长度最终更新到对应的“文件”概要信息和“文件块”概要信息中。
4.根据权利要求1或3所述的基于多网盘的文件加密存储系统,其特征在于,“网盘存储分配算法”主要负责根据“文件块”长度策略和“网盘信息”列表针对指定文件给出一整套“网盘文件块存储规划”,包括“文件块”划分方案、每个“文件块”的密钥信息、以及每个“文件块”数据的“网盘路径”;“文件块”划分方案包括“文件块”的文件偏移量和“文件块”长度。
5.根据权利要求4所述的基于多网盘的文件加密存储系统,其特征在于,所述“文件块”的密钥信息既可以是对称密钥,也可以是非对称密钥;同一个文件的不同“文件块”的密钥信息既可以是相同的,也可以是不同的;“文件块”的密钥信息持久存储在“文件块”概要信息中。
6.一种基于权利要求1所述多网盘的文件加密存储系统的读方法,其特征在于,所述方法包括具体步骤如下:
第1、“文件访问接口”模块获取调用者“读操作请求”文件的所要读操作区域,即读操作的文件偏移量和长度;
第2、“文件访问接口”模块获取系统配置信息;
第3、“文件访问接口”模块调用“文件块索引”模块将第1步中读操作区域转化为所要读的“文件块”编号序列,具体步骤如下:
第3.1、“文件块索引”模块获取第1步中文件的“文件”概要信息;
第3.2、“文件块索引”模块获取第1步中文件的“文件块”基本信息列表;
第3.3、“文件块索引”模块根据第1步中读操作区域以及第3.2步中“文件块”基本信息列表,计算出第1步中的读操作区域所对应的“文件块”编号序列;
第4、“文件块索引”模块获取第3.3步中“文件块”编号序列所对应的“文件块”详细信息列表;
第5、“文件访问接口”模块调用“文件块分解与合成”模块,“文件块分解与合成”模块针对第4步中的“文件块”详细信息列表,“文件块分解与合成”模块进一步调用“文件块发送接收”模块下载所对应的已“加密文件数据块”序列;若全部下载成功则执行第6步,否则执行第7步;
第6、“加密文件数据块”序列下载全部成功,执行具体步骤如下:
第6.1、针对第5步中已下载“加密文件数据块”序列,“文件块分解与合成”模块根据第4步中每个“文件块”密钥并调用“文件块加密解密”模块对所述已下载“加密文件数据块”进行解密,生成对应的“文件数据块”;
第6.2、“文件访问接口”模块根据第1步中读操作区域从第6.1步中已解密“文件数据块”序列中抽取出所要读操作区域的内容到调用者指定的空间中;
第6.3、设置读操作结果为成功;并执行第8步;
第7、“加密文件数据块”序列下载失败,执行具体步骤如下:
第7.1、在本地存储中删除所有第5步中已下载的“加密文件数据块”;
第7.2、设置读操作结果为失败;并执行第8步;
第8、返回读操作结果,程序执行结束。
7.一种基于权利要求1所述多网盘的文件加密存储系统的写方法,其特征在于,所述方法包括具体步骤如下:
第1、“文件访问接口”模块获取调用者“写操作请求”文件的所要写操作区域,即写操作的文件偏移量和长度;
第2、“文件访问接口”模块获取系统配置信息库;
第3、“文件访问接口”模块调用“文件块索引”模块将第1步中的写操作区域转化为所要写的“文件块”编号序列,具体步骤如下:
第3.1、“文件块索引”模块获取第1步中文件的“文件”概要信息,并建立“文件”概要信息副本;
第3.2、“文件块索引”模块获取第1步中文件的“文件块”概要信息,并建立“文件块”基本信息副本和“文件块”详细信息副本;
第3.3、“文件块索引”模块根据第1步中写操作区域以及第3.2步中“文件块”信息列表,计算出第1步中的写操作区域所对应的“文件块”编号序列;
第4、“文件访问接口”模块调用“文件块分解与合成”模块,“文件块分解与合成”模块依次遍历第3.3步中“文件块”编号序列,对第3.2步中每个“文件块”编号所对应的已有“文件块”采用第1步中调用者提供的最新写区域数据进行覆盖合并从而生成对应的最新“文件块”;若覆盖合并成功则执行第5步,否则执行第9步;
第5、针对第4步生成的最新“文件块”序列,“文件块索引”模块根据第2步中的“网盘信息”以及“网盘存储分配算法”产生新的“网盘文件块存储规划”,并根据该“网盘文件块存储规划”重新生成“文件块”序列,即称之为“重构文件块”序列;
第6、“文件块分解与合成”模块依次对第5步中“重构文件块”序列进行单独数据加密,具体步骤如下:
第6.1、针对当前“重构文件块”,根据第5步中的“网盘文件块存储规划”获取该“重构文件块”的“文件块”密钥;
第6.2、调用“文件块加密解密”模块采用第6.1步中获取的“文件块”密钥对当前“重构文件块”进行加密,生成“加密文件数据块”;
第7、根据第5步中的“网盘文件块存储规划”,“文件块发送接收”模块分别将第6步中“加密文件数据块”序列的每个“文件块”上传到对应的“网盘路径”;若全部上传成功则执行第8步,否则执行第9步;
第8、“加密文件数据块”全部上传成功,执行具体步骤如下:
第8.1、针对第3步中“加密文件数据块”序列的每个“文件块”,比较第5步中的“网盘文件块存储规划”的“网盘路径”与第3.2步中原有的“网盘路径”,如果不同,则将第3.2步中原有的“网盘路径”中的无效数据删除;
第8.2、将第5步中的“网盘文件块存储规划”信息更新到“本地存储介质”的“文件”概要信息和“文件块”概要信息中;
第8.3、设置写操作结果为成功;并执行第10步;
第9、“加密数据存储块”上传失败,执行具体步骤如下:
第9.1、针对第7步所有已上传的“加密文件数据块”分别删除本地和在对应的“网盘路径”中的数据;
第9.2、设置写操作结果为失败;并执行第10步;
第10、删除第3.1步中“文件”概要信息副本;进一步删除第3.2步中“文件块”基本信息副本和“文件块”详细信息副本;
第11、返回写操作结果,程序执行结束。
8.根据权利要求6或7所述的方法,其特征在于,所述的“文件访问接口”模块获取系统配置信息库既可以在“文件加密”装置启动时读取,也可以在文件访问操作时读取;“文件块检索”模块获取文件的“文件”概要信息和“文件块”概要信息既可以在文件打开操作时读取,也可以在文件读取、写入访问操作时读取。
9.根据权利要求8所述的方法,其特征在于,所述写方法第4步中采用调用者提供的最新写区域数据进行覆盖合并从而生成对应的最新“文件块”的方法如下:
方法1是首先调用权利要求6所述的“基于多网盘的文件加密存储系统的读方法”,将第3.3步中“文件块”编号序列所对应的“加密文件数据块”全部下载到本地,然后再用调用者提供的最新写区域数据进行覆盖合并;
方法2是首先判断调用者提供的最新写区域所涉及的已有“文件块”是否已被全覆盖,若是已被全覆盖则直接用调用者提供的对应的最新写区域数据覆盖,若已有“文件块”未被全覆盖则调用权利要求6所述的“基于多网盘的文件加密存储系统的读方法”将所对应的“加密文件数据块”下载到本地存储中,然后再用调用者提供的对应的最新写区域数据进行覆盖合并。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610031760.8A CN105718808A (zh) | 2016-01-18 | 2016-01-18 | 一种基于多网盘的文件加密存储系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610031760.8A CN105718808A (zh) | 2016-01-18 | 2016-01-18 | 一种基于多网盘的文件加密存储系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105718808A true CN105718808A (zh) | 2016-06-29 |
Family
ID=56147307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610031760.8A Pending CN105718808A (zh) | 2016-01-18 | 2016-01-18 | 一种基于多网盘的文件加密存储系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105718808A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776953A (zh) * | 2016-12-04 | 2017-05-31 | 国云科技股份有限公司 | 一种在线文件云存储系统的实现方法 |
CN106844548A (zh) * | 2016-12-30 | 2017-06-13 | 深圳天珑无线科技有限公司 | 一种终端文件的存储方法、存储系统及通信终端 |
CN106973080A (zh) * | 2017-02-20 | 2017-07-21 | 绿网天下(福建)网络科技股份有限公司 | 一种局域网大文件分发方法及系统 |
CN111859433A (zh) * | 2020-07-28 | 2020-10-30 | 江西金格科技股份有限公司 | 基于多个智能密钥存储设备的联动加密与解密应用方式 |
CN113273163A (zh) * | 2020-05-26 | 2021-08-17 | 深圳元戎启行科技有限公司 | 文件上传方法、文件下载方法和文件管理装置 |
CN116016553A (zh) * | 2023-03-27 | 2023-04-25 | 天津联想协同科技有限公司 | 一种基于网盘的文件分享方法、装置、网盘及存储介质 |
CN116319990A (zh) * | 2023-05-18 | 2023-06-23 | 南京中孚信息技术有限公司 | 一种支持多种网盘互操作的方法、系统、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103248713A (zh) * | 2013-05-29 | 2013-08-14 | 中国人民解放军理工大学 | 一种同步盘数据安全保护方法 |
CN103442057A (zh) * | 2013-08-27 | 2013-12-11 | 玉林师范学院 | 一种基于用户协作云的云存储系统 |
US20140201541A1 (en) * | 2013-01-14 | 2014-07-17 | Accenture Global Services Limited | Secure online distributed data storage services |
CN104219234A (zh) * | 2014-08-28 | 2014-12-17 | 杭州华澜微科技有限公司 | 一种云存储个人数据安全的方法 |
-
2016
- 2016-01-18 CN CN201610031760.8A patent/CN105718808A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140201541A1 (en) * | 2013-01-14 | 2014-07-17 | Accenture Global Services Limited | Secure online distributed data storage services |
CN103248713A (zh) * | 2013-05-29 | 2013-08-14 | 中国人民解放军理工大学 | 一种同步盘数据安全保护方法 |
CN103442057A (zh) * | 2013-08-27 | 2013-12-11 | 玉林师范学院 | 一种基于用户协作云的云存储系统 |
CN104219234A (zh) * | 2014-08-28 | 2014-12-17 | 杭州华澜微科技有限公司 | 一种云存储个人数据安全的方法 |
Non-Patent Citations (2)
Title |
---|
CHAOWEN CHANG: "Research of Terminal Transparent Encryption Storage Mechanism for Multi-cloud Disks", 《SPRINGER INTERNATIONAL PUBLISHING SWITZERLAND 2015》 * |
张建忠,等: "《计算机网络教程 自顶向下方法》", 31 January 2013 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776953A (zh) * | 2016-12-04 | 2017-05-31 | 国云科技股份有限公司 | 一种在线文件云存储系统的实现方法 |
CN106844548A (zh) * | 2016-12-30 | 2017-06-13 | 深圳天珑无线科技有限公司 | 一种终端文件的存储方法、存储系统及通信终端 |
CN106973080A (zh) * | 2017-02-20 | 2017-07-21 | 绿网天下(福建)网络科技股份有限公司 | 一种局域网大文件分发方法及系统 |
CN113273163A (zh) * | 2020-05-26 | 2021-08-17 | 深圳元戎启行科技有限公司 | 文件上传方法、文件下载方法和文件管理装置 |
WO2021237467A1 (zh) * | 2020-05-26 | 2021-12-02 | 深圳元戎启行科技有限公司 | 文件上传方法、文件下载方法和文件管理装置 |
CN111859433A (zh) * | 2020-07-28 | 2020-10-30 | 江西金格科技股份有限公司 | 基于多个智能密钥存储设备的联动加密与解密应用方式 |
CN116016553A (zh) * | 2023-03-27 | 2023-04-25 | 天津联想协同科技有限公司 | 一种基于网盘的文件分享方法、装置、网盘及存储介质 |
CN116016553B (zh) * | 2023-03-27 | 2023-08-11 | 天津联想协同科技有限公司 | 一种基于网盘的文件分享方法、装置、网盘及存储介质 |
CN116319990A (zh) * | 2023-05-18 | 2023-06-23 | 南京中孚信息技术有限公司 | 一种支持多种网盘互操作的方法、系统、设备及介质 |
CN116319990B (zh) * | 2023-05-18 | 2023-08-22 | 南京中孚信息技术有限公司 | 一种支持多种网盘互操作的方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105718808A (zh) | 一种基于多网盘的文件加密存储系统及方法 | |
CN105678189B (zh) | 加密数据文件存储和检索系统及方法 | |
US9548866B2 (en) | Deletion of content in digital storage systems | |
CN106127075B (zh) | 一种云存储环境下基于隐私保护的可搜索加密方法 | |
US9027149B2 (en) | Secret sharing system, apparatus, and storage medium | |
US7873168B2 (en) | Secret information management apparatus and secret information management system | |
CN103392178B (zh) | 数据库加密系统、方法和程序 | |
CN103931156B (zh) | 具有用户不可知加密文件的服务器侧去重的云文件系统 | |
US11194920B2 (en) | File system metadata protection | |
CN102855452B (zh) | 基于加密组块的快速数据加密策略遵从 | |
WO2010041442A1 (ja) | 情報処理装置、方法、プログラム及び集積回路 | |
US20050278527A1 (en) | Application-based data encryption system and method thereof | |
JPWO2009004732A1 (ja) | 共有暗号ファイルの暗号化、復号処理方法 | |
US20060182281A1 (en) | Storage system, data migration method and management computer | |
GB2512667B (en) | Managing shared data using a virtual machine | |
CN108573176B (zh) | 一种密钥派生加密的移动终端数据安全删除的方法及系统 | |
US20130097430A1 (en) | Encrypting data and characterization data that describes valid contents of a column | |
CN105095785A (zh) | 分布式文件系统的文件访问处理、访问方法及装置 | |
CN110892403B (zh) | 安全地访问数据的方法 | |
Bagci et al. | Codo: Confidential data storage for wireless sensor networks | |
JP2022544484A (ja) | 暗号化されたナレッジ・グラフ | |
CN108763401A (zh) | 一种文件的读写方法及设备 | |
CN114036538A (zh) | 一种基于虚拟块设备的数据库透明加解密实现方法及系统 | |
CN103379133A (zh) | 一种安全可信的云存储系统 | |
CN105208017B (zh) | 一种存储器信息获取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160629 |
|
RJ01 | Rejection of invention patent application after publication |