System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机存储,特别是一种基于文件级加密的块级去重方法、系统及存储介质。
技术介绍
1、数据去重又称重复数据删除,是指在一个数据集合中,找出重复的数据并将其删除,只保存唯一的数据单元。在删除的同时,要考虑数据重建,虽然文件的部分内容被删除,但当需要时,仍然将完整的文件内容重建出来,即数据去重不影响文件的正常操作。数据去重技术可以显著减少存储空间的使用,特别是在存储大量重复数据的情况下。按照数据去重的粒度不同,主要可以分为文件级去重和块级去重。
2、文件级去重是以文件为基本单位的数据去重技术,通过算法(例如哈希算法)将文件内容转换成一段对应的字符,相同的文件通过这个算法应该输出相同的结果;通过比较不同文件间的输出结果,可以判断出文件是否重复,随后对重复的文件进行去重处理。而块级去重将数据分成固定大小的块,对不同的块进行比较和去重。和文件级去重类似,通过算法处理每个块的内容,输出对应的结果;再比较不同块的输出结果,来判断块是否重复。
3、块级去重相比文件级去重更节省存储空间,减少存储成本。文件级去重基于文件执行重复数据删除,两个相似但不完全相同的文件,文件级去重会完整地存储两个文件,但块级去重可以去除大部分相同的数据块。块级去重的缺点是需要大量的计算资源来比较和去重数据块。另外如果数据块的大小太小,去重的效果可能不太明显。并且当数据块的内容发生改变时需要重新计算并存储数据块,这可能会带来一些额外的开销。
4、现有的块级去重技术工作在块设备层,上层的文件读写操作会下发请求到块设备层,在块设
技术实现思路
1、本专利技术的目的就是提供一种基于文件级加密的块级去重方法、系统及存储介质。用于解决现有技术中在开启文件级加密的环境中使用块级去重失效的问题。
2、一种基于文件级加密的块级去重方法,具体步骤为:
3、s1:获取待写入的原始数据块并加密,获得加密数据;
4、s2:计算原始数据块的指纹值,并根据原始数据块的指纹值以及密钥描述符进行数据去重。
5、作为优选,步骤s1中对原始数据块进行加密的具体步骤为:
6、s1.1:获取待写入的原始数据块;
7、s1.2:根据目录树的主密钥以及文件的随机数nonce生成加密密钥;
8、s1.3:将初始化向量由逻辑块号改为固定值;
9、s1.4:使用加密密钥加密原始数据块,获得加密数据。
10、作为优选,步骤s2中对数据进行去重的具体步骤为:
11、s2.1:在文件系统层接收到写请求时,计算原始数据块的指纹值;
12、s2.2:从指纹表中搜索原始数据块指纹值是否存在:
13、若指纹值不存在,则将原始数据块的该指纹值、块地址、随机数nonce以及密钥描述符插入指纹表中,继续写操作;
14、若指纹值存在,则判断密钥描述符是否相等,并进行数据去重。
15、作为优选,步骤s2.2中判断密钥描述符是否相等,并进行数据去重的具体方法为:
16、判断密钥描述符是否相等:
17、若密钥描述符不相等,则将原始数据块的该指纹值、块地址、随机数nonce以及密钥描述符插入指纹表中,继续写操作;
18、若密钥描述符相等,将指纹表中对应的块地址替换当前数据块的地址,并将引用计数表中该数据块对应的计数器加1,结束写操作。
19、作为优选,步骤s1.2中生成加密密钥的具体方法为:
20、通过fscrypt技术向文件系统中添加一个密钥文件,称为主密钥,返回一个密钥描述符,称为identifier,使用密钥描述符可以在文件系统中获取对应的主密钥,使用该主密钥给目录树设置加密策略,获得加密目录树;
21、在加密目录树下创建文件,fscrypt为该文件生成一串的随机数,称为nonce,根据目录树的主密钥以及文件的随机数nonce生成加密密钥,将nonce和密钥描述符保存在文件的inode中。
22、作为优选,步骤s2.1中所述的指纹值为通过xxhash算法计算的原始数据块哈希值。
23、一种基于文件级加密的块级去重系统,包括:
24、加密模块:用于获取待写入的原始数据块并加密,获得加密数据;
25、去重模块:用于计算原始数据块的指纹值,并根据原始数据块的指纹值以及其对应的密钥描述符进行数据去重。
26、作为优选,加密模块对原始数据块进行加密的具体步骤为:
27、s1.1:获取待写入的原始数据块;
28、s1.2:根据目录树的主密钥以及文件的随机数nonce生成加密密钥;
29、s1.3:将初始化向量由逻辑块号改为固定值;
30、s1.4:使用加密密钥加密原始数据块,获得加密数据。
31、作为优选,去重模块对数据进行去重的具体步骤为:
32、s2.1:在文件系统层接收到写请求时,计算原始数据块的指纹值;
33、s2.2:从指纹表中搜索原始数据块指纹值是否存在:
34、若指纹值不存在,则将原始数据块的该指纹值、块地址、随机数nonce以及密钥描述符插入指纹表中,继续写操作;
35、若指纹值存在,则转至步骤s2.3;
36、s2.3:判断密钥描述符是否相等:
37、若密钥描述符不相等,则将原始数据块的该指纹值、块地址、随机数nonce以及密钥描述符插入指纹表中,继续写操作;
38、若密钥描述符相等,将指纹表中对应的块地址替换当前数据块的地址,并将引用计数表中该数据块对应的计数器加1,结束写操作。
39、一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,所述一个或多个处理器执行上述一种基于文件级加密的块级去重方法中的步骤。
40、由于采用了上述技术方案,本专利技术具有如下的优点:
41、1、本申请通过去重模块与加密模块,在开启文件级加密的同时实现块级文件去重,降低外存的存储空间占用。
42、2、本申请消除文件加密对块级去重的影响;安全地保护去重过程中使用的文件密钥,防止数据泄露或被破解,去重粒度低,去重效果好。
43、本专利技术的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本专利技术的实践中得到教导。本专利技术的目标和其他优点可以通过下面的说明书和权利要求书来实现和获得。
本文档来自技高网...【技术保护点】
1.一种基于文件级加密的块级去重方法,其特征在于,具体步骤为:
2.如权利要求1所述的一种基于文件级加密的块级去重方法,其特征在于,步骤S1中对原始数据块进行加密的具体步骤为:
3.如权利要求1所述的一种基于文件级加密的块级去重方法,其特征在于,步骤S2中对数据进行去重的具体步骤为:
4.如权利要求3所述的一种基于文件级加密的块级去重方法,其特征在于,步骤S2.2中判断密钥描述符是否相等,并进行数据去重的具体方法为:
5.如权利要求2所述的一种基于文件级加密的块级去重方法,其特征在于,步骤S1.2中生成加密密钥的具体方法为:
6.如权利要求3所述的一种基于文件级加密的块级去重方法,其特征在于,步骤S2.1中所述的指纹值为通过xxHash算法计算的原始数据块哈希值。
7.一种基于文件级加密的块级去重系统,其特征在于,包括:
8.如权利要求7所述的一种基于文件级加密的块级去重系统,其特征在于,加密模块对原始数据块进行加密的具体步骤为:
9.如权利要求7所述的一种基于文件级加密的块级去重系统
10.一种存储有计算机指令的计算机可读存储介质,其特征在于,当所述计算机指令被一个或多个处理器执行时,所述一个或多个处理器执行如权利要求1-6任一项所述一种基于文件级加密的块级去重方法中的步骤。
...【技术特征摘要】
1.一种基于文件级加密的块级去重方法,其特征在于,具体步骤为:
2.如权利要求1所述的一种基于文件级加密的块级去重方法,其特征在于,步骤s1中对原始数据块进行加密的具体步骤为:
3.如权利要求1所述的一种基于文件级加密的块级去重方法,其特征在于,步骤s2中对数据进行去重的具体步骤为:
4.如权利要求3所述的一种基于文件级加密的块级去重方法,其特征在于,步骤s2.2中判断密钥描述符是否相等,并进行数据去重的具体方法为:
5.如权利要求2所述的一种基于文件级加密的块级去重方法,其特征在于,步骤s1.2中生成加密密钥的具体方法为:
6.如权利要求3所述的一种基于文件...
【专利技术属性】
技术研发人员:陈咸彰,黄辉,刘铎,谭玉娟,任骜,
申请(专利权)人:重庆大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。