一种基于数字摘要的文件分割方法转让专利

申请号 : CN201610244263.6

文献号 : CN105790928B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈伟王燚刘鑫忠

申请人 : 电子科技大学

摘要 :

本发明公开了一种基于数字摘要的文件分割提取方法,该算法主要包括数字摘要模块、文件分割模块和文件重组模块三个模块,分别完成提取并转换文件的数字摘要、将文件顺序地变换成大小相同的若干文件块以及将不同的文件块重组为两个文件,其中数字摘要作为文件提取的依据。本方法可以高效地保证数据机密性并能实现数据完整性验证,适用于文件外包存储的应用场景。

权利要求 :

1.一种基于数字摘要的文件分割方法,其特征在于,包括以下步骤:步骤1:生成文件的数字摘要;

步骤2:将十六进制数字摘要值变换成二进制串;

步骤3:按照固定大小将文件分解成大小相同的若干个文件块,并顺序地为所有文件块标号;

步骤4:以二进制数字摘要为依据,选取步骤3中形成的文件块中的一部分文件块,形成两个文件块组;

步骤:5:合并两个文件块组,形成两个新的文件。

说明书 :

一种基于数字摘要的文件分割方法

技术领域

[0001] 本发明涉及数据安全领域,具体涉及一种提取文件的方法。

背景技术

[0002] 随着大数据时代的来临,以及移动互联网的兴起和移动智能终端的广泛使用,企业和个人用户的存储需求不断扩张,逐渐超出了企业和个人用户的存储能力。基于云计算的外包存储服务为用户的存储需求缺口提供了理想的解决方案。然而外包存储的数据或文件脱离了用户的直接控制,从而使其安全性和隐私受到了严峻的威胁。为了保护用户外包存储数据的安全和隐私,通常需要对外包存储的数据或文件实施加密保护,并进行严格的访问控制。为了便于数据或文件的分享,目前外包存储数据或文件的访问控制通常基于公钥或属性基密码体制来构造。然而,公钥和属性基等密码体制一般是基于数学困难问题的,往往具有较大的计算开销,尤其是在涉及的数据或文件比较大的情况下,从而使得基于它们构造的访问控制性能低下。
[0003] 文献《基于属性加密的组合文档安全自毁方案》发表于《电子学报》2014年2月第二期(366-375),在该文献中,作者采用了拉格朗日插值多项式来提取文件,并设计了一个门限,利用DHT自动丢弃节点的功能来实现文档分量的删除,从而实现文档的安全自毁。该方案中采用的拉格朗日插值多项式,是门限秘密共享的基础,但对于较大文件的提取,效率上存在一定的不足。
[0004] 专利2015108308693中,给出了一种基于随机矩阵的密文提取方法。在该方案中,需要设定一个随机矩阵,在数据共享的应用场景下,需要一个可信的第三方来保存该矩阵。此外,该方案不能实现数据完整性验证。
[0005] 在云计算外包存储的应用场景下,数据的机密性和完整性必须得到保证。基于数据机密性的考虑,将密钥或者小部分密文实施对称加密;为了实现数字签名、访问控制等复杂功能,引入公钥体制的加密算法,但外包存储的文件相对较大,因此算法性能难以得到保证;基于完整性考虑,引入哈希算法来实现完整性验证。
[0006] 为了高效地保证数据机密性并能实现数据完整性验证,设计一种基于数字摘要的文件分割方法。

发明内容

[0007] 本发明的目的是要提供一种具有验证功能的文件分割算法。本发明针对文件包存储场景中,基于非对称加密体质访问控制的效率问题,通过将文件不规则地分为大小两个分量,再小分量上实施访问控制以提高效率。针对较大数据量的非对称加密中存在的效率问题,在充分保护数据的机密性的前提下,实现数据完整性分割重组验证:通过对本发明的实施,可以将一个将要被外包存储的文件,通过乱序的方式分割成为大小两个部分,充分保证数据的机密性;计算文件的数字摘要值,作为重组的依据,并会被一并外包存储,用作数据完整性验证;此外,数字摘要会记录文件提取的位置,可以保证原始文件会被正确地恢复。
[0008] 为了实现上述目的,本发明设计数字摘要模块、文件分割模块和文件重组模块三个模块,分别完成提取并转换文件的数字摘要、将文件顺序地变换成大小相同的若干文件块以及将不同的块按照数字摘要的内容重组为两个文件。
[0009] 本发明的主要工作步骤如下:
[0010] 步骤1:生成文件的数字摘要值,并将其转化为二进制串;
[0011] 步骤2:设定分割粒度(0.5KB),按照分割粒度大小将密文分割成若干个文件块;
[0012] 步骤3:为步骤2中输出的文件按顺序标号;
[0013] 步骤:4:将已标号的文件块进行分组,分成128组;
[0014] 步骤5:128位的二进制数字摘要值分别对应步骤4中的128个组,若二进制位为1,则取出该组的第一个文件块,若为0,则比较下一位,依次进行,输出两组文件块;
[0015] 步骤6:分别合并步骤5中输出的两个文件块,形成提取文件和封装文件。
[0016] 本发明首先计算要保护文件的哈希值,然后基于该哈希值对该文件进行提取,从而将原文件分割为一个很小的分量文件和较大的余量文件。将该算法应用于外包存储时,首先对外包存储数据或文件经对称加密后的密文进行提取,生成密文分量文件和密文余量文件,然后仅将密文余量文件进行外包存储,而少量的密文分量文件则可以由用户自行存储或进行二次加密以实施访问控制。这样,在对数据或文件实施机密性保护的同时,还通过破坏外包存储的数据或文件的完整性对其增加了一层保护,即使攻击者能够解密外包存储的密文余量文件,由于该文件是不完整,所以攻击者也不能获取外包存储数据或文件的完整信息。如果通过二次加密实施访问控制时,由于仅对少量的密文分量文件实施加解密,因此所带来的计算和时间开销将大大降低,从而提高访问控制的效率。
[0017] 本发明将数据或文件的哈希值作为文件分割提取的依据,在合法用户获取文件进行重组后,再次计算数据或文件的哈希值,通过将分割提取前数据或文件的哈希值与重组后的哈希值进行比对,可以验证外包存储文件的完整性。
[0018] 本发明的有益效果是能高效地保证数据机密性,并能实现数据完整性验证:通过文件的数字摘要实现数据完整性验证,并且数字摘要用作文件提取的依据,保证数据可以被正确的恢复;通过置换改变文件的组织顺序,使得提取的两部分文件不可读或者读到其内容也无法解释其意义,保证了数据的机密性;为了对原始文件实施如访问控制的保护措施,需要对文件进行非对称加密,加密可以实施于较小的提取文件,从而保证非对称加密算法的效率。

附图说明

[0019] 图1基于数字摘要的文件分割方法的工作流程
[0020] 图2文件的加密存储过程
[0021] 图3文件的解密验证过程
[0022] 图中1.原始文件,2.原始文件哈希值,3.提取文件,4.封装文件,5.云服务器,6.保护对象,7.取回文件的哈希值。

具体实施方式

[0023] 以下提供本发明一种基于数字摘要的文件分割方法的具体实施方式,共提供1个实施例,但本发明不限于所提供的实施例。
[0024] 实施例1
[0025] 步骤1:选取MD5哈希算法对文件实施一次哈希,得到128位的文件二进制哈希值;
[0026] 步骤2:将文件分成大小相同的若干块,文件块的大小固定为0.5KB,文件块的数目由待发送文件的大小确定:假设文件大小为N,文件数目为m,则m=2N;然后对分解出的小文件块以命名的方式进行标号;
[0027] 步骤3:将已标号的文件块分成128组,则每组个数为g=m/128,根据哈希内容对小文件块进行提取:若该位为1,则取出该组的第一个元素;若该位为0,则不取出。经过上述过程,将会形成两个分别放有不同文件块的集合;分别合并这两个集合,将会得到较大的封装文件和较小的提取文件。
[0028] 步骤4:封装文件可以直接存储在云服务器中,因为分割提取已经破坏了其原有的结构,攻击者不能识别其内容。提取文件在非对称加密后,与原始文件的Hash值封装在一起,形成提取对象上传至云服务器,既保证了加密效率,又可以保护外包到云服务器中的数据的安全性,提取文件在云服务器中将会受到保护,只有获得了解密私钥的用户才可以解密该文件,进而恢复原始文件。因此,原始文件在云服务器中的存储就得到了保护。上述过程如图2所示;
[0029] 步骤5:分别从云服务器中取回封装文件和保护对象,利用从授权中心得到的用户私钥,对保护对象进行解密,得到提取文件,剥离保护对象中存放的哈希值,得到原始文件的哈希值;由于过程3中所述的提取过程是可逆的,根据所得到的哈希值,可以将提取文件和封装件合成成取回文件;将得到的取回文件再做一次数字摘要,得到的哈希值与从服务器中取回的原始文件哈希值进行比对:若相同,则说明文件在云服务器中没有被篡改或植入木马病毒;若不同,则说明文件已被篡改。上述过程如图3所示。