(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 CN 107579985 A(43)申请公布日 2018.01.12
(21)申请号 201710844911.6(22)申请日 2017.09.19
(71)申请人 杭州安恒信息技术有限公司
地址 310051 浙江省杭州市滨江区通和路
68号浙江中财大厦15层(72)发明人 叶章龙 范渊 吴鸣旦 (74)专利代理机构 杭州中成专利事务所有限公
司 33212
代理人 周世骏(51)Int.Cl.
H04L 29/06(2006.01)H04L 29/08(2006.01)
权利要求书2页 说明书5页 附图2页
(54)发明名称
一种基于碎片加密的大文件传输保护方法(57)摘要
本发明涉及互联网数据传输保护技术,旨在提供一种基于碎片加密的大文件传输保护方法。该种基于碎片加密的大文件传输保护方法包括步骤:传输前进行碎片加密操作,对大文件进行保护;传输完成后进行碎片解密操作,对大文件进行解密使用。本发明不仅仅在传输过程中进行了加密保护,而且接收到文件后也一样有保护效果,只有正常解密后才可以正常的使用;同时在传输过程中不再需要加密,也明显的提高了传输性能。
CN 107579985 ACN 107579985 A
权 利 要 求 书
1/2页
1.一种基于碎片加密的大文件传输保护方法,其特征在于,具体包括下述步骤:步骤(1):传输前进行碎片加密操作,对大文件进行保护,具体包括下述子步骤:步骤A:获取大文件的文件大小,以字节为统计单位;步骤B:根据步骤A中获取到的文件大小,对大文件以一定的拆分单位进行拆分,如果最后一份剩余的碎片不够拆分单位的大小,则直接成为一份碎片,获得大文件拆分而成的碎片;
步骤C:根据步骤B的拆分结果,对拆分结果进行碎片位置和碎片长度的计算,即从第一份碎片开始先获取一个碎片位置,再在拆分单位长度的1%到2%的范围内随机取一个值作为碎片长度;依次获取步骤B拆分结果中所有碎片的碎片位置和碎片长度;
步骤D:根据步骤C的计算结果,从大文件中抽取相应位置和长度的碎片数据,并在大文件相应的位置使用和碎片数据等长的随机数据进行填充;
步骤E:将步骤D中抽取的所有碎片数据拼接在一起后,进行加密处理,形成碎片加密结果;
步骤F:将步骤E获得的碎片加密结果,与步骤D获得的被用随机数据填充过后的大文件,进行合并形成最终的结果文件;
步骤G:传输步骤F获得的最终的结果文件;步骤(2):传输完成后进行碎片解密操作,对大文件进行解密使用,具体包括下述子步骤:
步骤H:获取到传输过来的加密文件;步骤I:将步骤H获取到的加密文件进行拆分,获取碎片加密结果和被用随机数据填充过后的大文件;
步骤J:对步骤I获取的碎片加密结果进行解密,获取所有碎片的位置及相关的碎片数据;
步骤K:根据步骤J获取的碎片数据及位置,对步骤I中获取的被随机数据填充过后的大文件进行还原处理,还原的结果即为所需的原始文件。
2.根据权利要求1所述的一种基于碎片加密的大文件传输保护方法,其特征在于,所述步骤E中对碎片数据进行拼接的方法,具体包括下述步骤:
步骤a:将步骤D中获取的所有碎片位置及对应的信息,以位置和信息成对拼接,中间以“::”作为分隔符进行分隔,获得碎片位置与对应碎片信息组合的碎片对;每个碎片对即为“碎片位置::碎片信息”的碎片对字符串;
步骤b:将步骤a中获取的所有拼接完成的碎片对进行拼接,并以“:::”作为分隔符进行分隔,获得碎片对组合字符串;
步骤c:对步骤b获得的碎片对组合字符串进行加密处理,形成碎片加密结果。3.根据权利要求2所述的一种基于碎片加密的大文件传输保护方法,其特征在于,所述步骤F中,将碎片加密结果与被用随机数据填充过后的大文件进行合并的方法,具体包括下述步骤:
步骤d:计算步骤E中形成的碎片加密结果的长度;步骤e:用字节来保存步骤d中获得的碎片加密结果长度;步骤f:将步骤e生成的字节的碎片加密结果长度信息,拼接到碎片加密结果尾部形
2
CN 107579985 A
权 利 要 求 书
2/2页
成碎片加密结果完整信息块;
步骤g:将步骤f生成的碎片加密结果完整信息块,拼接到被用随机数据填充过后的大文件的尾部,形成最终的结果文件。
4.根据权利要求3所述的一种基于碎片加密的大文件传输保护方法,其特征在于,所述步骤I中,对加密文件进行拆分的方法具体为:截取加密文件最后的个字节,获取碎片加密结果的长度;从步骤h中已经截取了最后个字节的加密文件尾部截取碎片加密结果,截取了碎片加密结果后的剩余文件即为被用随机数据填充过后的大文件。
5.根据权利要求4所述的一种基于碎片加密的大文件传输保护方法,其特征在于,所述步骤J具体通过下述步骤实现:
步骤h:使用与步骤c中进行加密处理相同的密钥,对碎片加密结果进行解密,得到解密结果;
步骤i:将解密结果以其中的“:::”进行分隔,获得“碎片位置::碎片信息”结构的碎片对;
步骤j:将步骤i获得的所有碎片对,以其中的“::”进行分隔,拆分出碎片位置和碎片信息。
6.根据权利要求5所述的一种基于碎片加密的大文件传输保护方法,其特征在于,所述步骤K具体通过下述步骤实现:
步骤k:根据步骤J中获取到的碎片位置,在被用随机数据填充过后的大文件中找到相应的碎片位置;
步骤l:在步骤k中找到的碎片位置,将该碎片位置相应的碎片信息填充到该位置;步骤m:重复步骤k和步骤l,直到对步骤J中获取到的所有碎片位置和碎片信息进行相同的处理;
步骤n:完成步骤m后,即还原出了原始大文件。
3
CN 107579985 A
说 明 书
一种基于碎片加密的大文件传输保护方法
1/5页
技术领域
[0001]本发明是关于互联网数据传输保护技术领域,特别涉及一种基于碎片加密的大文件传输保护方法。
背景技术
[0002]大文件传输保护主要包括了两个方面,一个是传输过程的保护,另外一个就是当被未知的人下载后不能够正常使用。针对该两个方面,当前的大文件传输保护技术主要有基于信道的保护,比如https协议传输和基于文件的保护,就是对文件进行完整加密或是加壳后进行传输。但是该两种技术都存在了明显的缺陷。[0003]基于信道保护的加密方式,只保护了文件传输过程中不会被盗取,但是在传输完成后就没有办法保证该文件是否被未经许可的人进行使用。另外,该种方式相当于对所有通过该信道进行传输的内容都进行了加密,所以必然会影响文件传输速度。[0004]而基于全文件加密加壳的方式进行保护,是可以有效的保护了文件的安全包括在传输中和传输完成后,而且也不需要通过加密信道进行传输。但是因为现在文件越来越大,特别是一些文件可能达到了几十上百GB,要对这个的文件进行全加密处理。一个是加密时间会很长,另外一个是获取到文件后要对文件解密后才能够使用,这样对于使用者和内容发布者来说处理都会很浪费时间。
发明内容
[0005]本发明的主要目的在于克服现有技术中的不足,提供一种基于碎片加密的大文件传输保护技术。为解决上述技术问题,本发明的解决方案是:[0006]提供一种基于碎片加密的大文件传输保护方法,具体包括下述步骤:[0007]步骤(1):传输前进行碎片加密操作,对大文件进行保护,具体包括下述子步骤:[0008]步骤A:获取大文件的文件大小,以字节为统计单位;[0009]步骤B:根据步骤A中获取到的文件大小,对大文件以一定的拆分单位(这里使用50,000,000字节作为拆分单位)进行拆分,如果最后一份剩余的碎片不够拆分单位的大小,则直接成为一份碎片,获得大文件拆分而成的碎片;[0010]步骤C:根据步骤B的拆分结果,对拆分结果进行碎片位置和碎片长度的计算,即从第一份碎片开始先获取一个碎片位置(从0到48,000,000字节中随机获取一个位置),再在拆分单位长度的1%到2%的范围内随机取一个值作为碎片长度;依次获取步骤B拆分结果中所有碎片的碎片位置和碎片长度;[0011]步骤D:根据步骤C的计算结果,从大文件中抽取相应位置和长度的碎片数据,并在大文件相应的位置使用和碎片数据等长的随机数据进行填充;[0012]步骤E:将步骤D中抽取的所有碎片数据拼接在一起后,进行加密处理(采用DES加密算法),形成碎片加密结果;[0013]步骤F:将步骤E获得的碎片加密结果,与步骤D获得的被用随机数据填充过后的大
4
CN 107579985 A
说 明 书
2/5页
文件,进行合并形成最终的结果文件;[0014]步骤G:传输步骤F获得的最终的结果文件;[0015]步骤(2):传输完成后进行碎片解密操作,对大文件进行解密使用,具体包括下述子步骤:
[0016]步骤H:获取到传输过来的加密文件;[0017]步骤I:将步骤H获取到的加密文件进行拆分,获取碎片加密结果和被用随机数据填充过后的大文件;[0018]步骤J:对步骤I获取的碎片加密结果进行解密,获取所有碎片的位置及相关的碎片数据;
[0019]步骤K:根据步骤J获取的碎片数据及位置,对步骤I中获取的被随机数据填充过后的大文件进行还原处理,还原的结果即为所需的原始文件。[0020]在本发明中,所述步骤E中对碎片数据进行拼接的方法,具体包括下述步骤:[0021]步骤a:将步骤D中获取的所有碎片位置及对应的信息,以位置和信息成对拼接,中间以“::”作为分隔符进行分隔,获得碎片位置与对应碎片信息组合的碎片对;每个碎片对即为“碎片位置::碎片信息”的碎片对字符串;[0022]步骤b:将步骤a中获取的所有拼接完成的碎片对进行拼接,并以“:::”作为分隔符进行分隔,获得碎片对组合字符串(即最终形成“碎片位置::碎片信息:::碎片位置::碎片信息:::碎片位置::碎片信息”的结果,这里只举例了三个碎片对拼接,真实结果与具体的碎片对数量有关);[0023]步骤c:对步骤b获得的碎片对组合字符串进行加密处理(采用DES加密算法),形成碎片加密结果。
[0024]在本发明中,所述步骤F中,将碎片加密结果与被用随机数据填充过后的大文件进行合并的方法,具体包括下述步骤:[0025]步骤d:计算步骤E中形成的碎片加密结果的长度;[0026]步骤e:用字节来保存步骤d中获得的碎片加密结果长度;[0027]步骤f:将步骤e生成的字节的碎片加密结果长度信息,拼接到碎片加密结果尾部形成碎片加密结果完整信息块;[0028]步骤g:将步骤f生成的碎片加密结果完整信息块,拼接到被用随机数据填充过后的大文件的尾部,形成最终的结果文件。[0029]在本发明中,所述步骤I中,对加密文件进行拆分的方法具体为:截取加密文件最后的个字节,获取碎片加密结果的长度;从步骤h中已经截取了最后个字节的加密文件尾部截取碎片加密结果,截取了碎片加密结果后的剩余文件即为被用随机数据填充过后的大文件。
[0030]在本发明中,所述步骤J具体通过下述步骤实现:[0031]步骤h:使用与步骤c中进行加密处理相同的密钥,对碎片加密结果进行解密,得到解密结果;
[0032]步骤i:将解密结果以其中的“:::”进行分隔,获得“碎片位置::碎片信息”结构的碎片对;
[0033]步骤j:将步骤i获得的所有碎片对,以其中的“::”进行分隔,拆分出碎片位置和碎
5
CN 107579985 A
说 明 书
3/5页
片信息。
[0034]在本发明中,所述步骤K具体通过下述步骤实现:[0035]步骤k:根据步骤J中获取到的碎片位置,在被用随机数据填充过后的大文件中找到相应的碎片位置;[0036]步骤l:在步骤k中找到的碎片位置,将该碎片位置相应的碎片信息填充到该位置;[0037]步骤m:重复步骤k和步骤l,直到对步骤J中获取到的所有碎片位置和碎片信息进行相同的处理;[0038]步骤n:完成步骤m后,即还原出了原始大文件。[0039]与现有技术相比,本发明的有益效果是:[0040]1、本发明与基于信道的保护方法相比,不仅仅在传输过程中进行了加密保护,而且接收到文件后也一样有保护效果,只有正常解密后才可以正常的使用;同时在传输过程中不再需要加密,也明显的提高了传输性能。[0041]2、本发明与全文件加密加壳的方法相比,本发明在传输前加密处理及,收到文件后的解密处理上的时间上都有明显的减少,这样可以更加高效的进行使用,减少这两个过程中的时间浪费。
附图说明
[0042]图1为传输前对大文件进行碎片加密的流程图。[0043]图2为接收到文件后对文件进行碎片解密的流程图。
具体实施方式
[0044]首先需要说明的是,本发明涉及大文件传输保护技术,是计算机技术在互联网技术领域的一种应用。在本发明的实现过程中,会涉及到多个软件功能模块的应用。申请人认为,如在仔细阅读申请文件、准确理解本发明的实现原理和发明目的以后,在结合现有公知技术的情况下,本领域技术人员完全可以运用其掌握的软件编程技能实现本发明,凡本发明申请文件提及的均属此范畴,申请人不再一一列举。
[0045]下面结合附图与具体实施方式对本发明作进一步详细描述:[0046]一种基于碎片加密的大文件传输保护方法,传输前进行碎片加密操作对大文件进行保护,传输完成后进行碎片解密操作对大文件进行解密使用。[0047]首先如图1所示,传输前对文件进行碎片加密处理,具体如下:[0048]步骤A:获取大文件的文件大小,以字节为统计单位。[0049]步骤B:根据步骤A中获取到的文件大小,我们以50,000,000字节作为拆分单位进行长度等分,如果最后一份不够等分,则直接成为一份。[0050]步骤C:根据步骤B拆分结果,对每一份拆分结果进行碎片位置和碎片长度的计算。从第一份开始先获取碎片位置,从0到48,000,000字节中随机获取一个位置,再根据单位长度的1%到2%的范围内随机一个碎片长度。依次获取步骤B所有拆分每一份结果都进行以上的计算获取相应的碎片位置及碎片长度。[0051]步骤D:根据C的计算结果从大文件中抽取相应位置和长度的碎片数据,并在大文件相应的位置使用和碎片数据等长的随机数据进行填充。
6
CN 107579985 A[0052]
说 明 书
4/5页
步骤E:将步骤D中获取的所有碎片的拼接一起后的结果进行DES加密处理,形成碎
片加密结果。[0053]其中,碎片信息及位置的拼接方法,具体包括下述步骤:[0054]步骤a:将步骤D中获取的所有碎片位置及对应的信息,以位置和信息成对拼接,中间以“::”作为分隔符进行分隔。最终每个碎片对形成“碎片位置::碎片信息”的碎片对字符串。所述碎片对为,碎片位置与对应碎片信息组合。[0055]步骤b:将步骤a中获取的所有拼接完成的碎片对进行拼接,并以“:::”作为分隔符进行分隔。最终形成“碎片位置::碎片信息:::碎片位置::碎片信息:::碎片位置::碎片信息”的结果,这里只列出了三个,真实结果与具体的碎片对数量有关。[0056]步骤c:对步骤b中的碎片对组合字符串进行DES加密,形成碎片加密结果。[0057]步骤F:将步骤D处理获取的碎片加密结果与被用随机数据填充过后的大文件进行合并形成最终的结果文件。所述被用随机数据填充过后的大文件为通过步骤D将相应的碎片位置的碎片信息被随机数据替换后的大文件。[0058]其中,将碎片加密结果与被用随机数据填充过后的大文件进行合并,具体包含下述步骤:
[0059]步骤d:计算由步骤E形成的碎片加密结果的长度。[0060]步骤e:用字节来保存步骤d中获取的碎片加密结果长度。[0061]步骤f:将步骤e生成的字节的碎片加密结果长度信息拼接到碎片加密结果尾部形成碎片加密结果完整信息块。[0062]步骤g:将步骤f生成的碎片加密结果完整信息块拼接到被用随机数据填充过后的大文件的尾部,形成最终的结果文件。[0063]步骤G:使用步骤F处理过的文件进行传输。[00]然后如图2所示,在接收到文件后进行碎片解密,具体如下:[0065]步骤H:获取到传输过来的加密文件。[0066]步骤I:将步骤H获取到的加密文件进行拆分,获取碎片加密结果及被随机数据填充过后的大文件。具体实现如下:[0067]步骤h:从步骤H获取到的文件截取最后的个字节。[0068]步骤i:根据步骤h获取到的字节,获取碎片加密结果长度。[0069]步骤j:根据步骤i中获取的碎片加密结果长度,从步骤h中已经截取了最后的个字节的文件的尾部截取碎片加密结果。[0070]步骤k:通过步骤j截取了碎片加密结果后的文件为被随机数据填充过后的大文件。
[0071]步骤J:对步骤I中获取的碎片加密结果进行解密,获取所有碎片的位置及相关的碎片数据。具体实现如下:[0072]步骤l:将碎片加密结果使用与步骤c中进行DES加密相同的密钥进行解密。[0073]步骤m:将步骤l的解密结果以“:::”进行分隔,形成“碎片位置::碎片信息”结构的碎片对。
[0074]步骤n:将步骤m的所有碎片对,再以“::”进行分隔拆分出碎片位置和碎片信息。[0075]步骤K:根据步骤J获取的碎片数据及位置,对步骤I中获取的被随机数据填充过后
7
CN 107579985 A
说 明 书
5/5页
的大文件进行还原处理。具体实现如下:[0076]步骤o:根据步骤J中获取到的碎片位置,在被随机数据填充过后的大文件找到相应的碎片位置。[0077]步骤p:在步骤o中找到的碎片位置将相应的碎片信息填充到该位置。[0078]步骤q:重复步骤o和步骤p对步骤J中获取到的所有碎片位置和碎片信息进行相同的处理。
[0079]步骤r:完成步骤q后将还原出原始大文件。[0080]步骤L:步骤K还原的结果就为最终的原始文件。[0081]最后,需要注意的是,以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有很多变形。本领域的普通技术人员能从本发明公开的内容中直接导出或联想到的所有变形,均应认为是本发明的保护范围。
8
CN 107579985 A
说 明 书 附 图
1/2页
图1
9
CN 107579985 A
说 明 书 附 图
2/2页
图2
10