用于对数据进行压缩和加密的方法及系统技术方案

技术编号:7976446 阅读:154 留言:0更新日期:2012-11-16 01:47
本发明专利技术提供一种对数据进行压缩和加密的方法和系统。该方法包括:接收原始数据;对所述原始数据进行第一压缩,以获得第一压缩结果;仅对第一压缩结果中的字面部分进行加密,以获得加密后的第一压缩结果。本发明专利技术的具体实施方式通过只对压缩结果的字面部分进行加密而较大程度地提高了压缩+加密过程的效率。

【技术实现步骤摘要】

本专利技术总体上涉及信息处理
,特别地,涉及一种对数据进行压缩和加密的方法及系统。
技术介绍
目前,有大量信息数据在信息节点中进行传输。对于虚拟专用网(VisualPrivateNetwork,简称VPN),当人们从单位之外通过互联网访问单位内部资源时,通常需要对数据进行压缩和加密,这样通过压缩可以减少数据流量,加快网速,并减少网络拥塞,而通过加密可以增加安全性,避免单位数据和个人数据泄密。再例如在云存储环境中,由于云存储的存储器通常被很多人使用,因此需要对数据进行加密,为减少数据流量,数据在存到网络存储服务器上之前,用户可以先进行压缩再进行加密,这样在减少磁盘空间的同时还增强了 安全性。另外普通的对安全有要求、并对带宽有一定要求的网络传输,也需要进行压缩和加密。也就是说,对数据进行压缩以减少数据流量同时又对数据进行加密以保证其私密性的应用场景是非常广泛的。图I示出了传统压缩和加密同时进行的算法在压缩阶段,首先对原始数据进行压缩,例如使用压缩(Deflate)算法,生成一个压缩后数据,然后对这个新数据进行加密,例如AES块加密算法,最终生成压缩加密的最终数据。其中通常的文本压缩算法,例如Deflate算法,包含两个步骤,分别为滑动窗口字典式编码压缩算法如LZ77和哈夫曼编码压缩算法(Huffman)。LZ77利用数据重复进行压缩,即生成源字符和二元组,其中二元组的两个成分是地址和长度。Huffman编码则是利用数据出现频率不同进行压缩编码。LZ77算法和Huffman编码,都是工业界广泛应用的压缩算法,为节省篇幅,在此不作详细介绍。目前的压缩加密算法技术存在着压缩加密时间过长,效率不高的缺陷。因此需要一种具有较高效率的对数据进行压缩和加密的方法及系统
技术实现思路
本专利技术一方面提供一种对数据进行压缩和加密的方法,包括接收原始数据;对所述原始数据进行第一压缩,以获得第一压缩结果;仅对第一压缩结果中的字面部分进行加密,以获得加密后的第一压缩结果。本专利技术另一方面提供一种对数据进行压缩和加密的系统,包括接收装置,被配置为接收原始数据;第一压缩装置,被配置为对所述原始数据进行第一压缩,以获得第一压缩结果;加密装置,被配置为仅对第一压缩结果中的字面部分进行加密,以获得加密后的第一压缩结果。本专利技术的具体实施方式通过只对压缩结果的字面部分进行加密而较大程度地提高了压缩+加密过程的效率。附图说明为了对本专利技术实施例的特征和优点进行详细说明,将参照以下附图。如果可能的话,在附图和描述中使用相同或者类似的参考标号以指代相同或者类似的部分。其中图I示出了现有的对数据的压缩和加密方法;图2示出了现有压缩加密技术中加密耗时的比重;图3示出了本专利技术对数据进行压缩和加密的方法的第一具体实施方式;图4示出了本专利技术对数据进行压缩和加密的方法的第二具体实施方式;图5示出了本专利技术的一个具体应用示例;图6示出了运用本专利技术的相关具体实施方式的效果; 图7示出了本专利技术对数据进行压缩和加密的系统的结构示意图;图8示意性示出了可以实现根据本专利技术的实施例的计算设备的结构方框图。具体实施例方式现在将参考本专利技术的示例性实施例进行详细的描述,在附图中图解说明了所述实施例的示例,其中相同的参考数字始终指示相同的元件。应当理解,本专利技术并不限于所公开的示例实施例。还应当理解,并非所述方法和设备的每个特征对于实施任一权利要求所要求保护的本专利技术都是必要的。此外,在整个公开中,当显示或描述处理或方法时,方法的步骤可以以任何顺序或者同时执行,除非从上下文中能清楚一个步骤依赖于先执行的另一步骤。此外,步骤之间可以有显著的时间间隔。申请人:在研究解决现有压缩和加密技术的缺陷中发现,如图2所示,其中横轴表示被压缩和加密的样本从网络下载的电子文档(前6个文件)和部分网页(后4个文件),纵轴表示在整个“压缩+加密”过程中所占时间百分比重。而采用示例性的RSA加密算法,在整个“压缩+加密”过程中,图2显示加密的过程是占绝大部分的比重,因此如果能够改善加密的效率且不降低加密的级别,显然是能够有效地改善现有“压缩+加密”的技术。而数据加密时间与数据量大小成正比,因此当减少压缩数据量时,可以提高整体“压缩+加密”的性能。基于上述的数据分析发现,申请人提出如图3所示的本专利技术对数据进行压缩和加密的方法的第一具体实施方式。在步骤301中,接收原始数据。优选地,所述原始数据包括文本数据或二进制数据中至少之一;在步骤303中,对所述原始数据进行第一压缩,以获得第一压缩结果。本领域技术人员基于本申请,可以采用任何适用的能够生成字面部分的压缩算法,例如LZ77、LZ78、LZW等。字面(literal)部分是指应用LZ77或者其它类似算法的过程中,某一部分原始数据直到输出保持不变的那一部分数据,字面(literal)部分是本领域技术人员常用的术语。在步骤305中,仅对第一压缩结果中的字面部分进行加密,以获得加密后的第一压缩结果。对于LZ77等类似算法,可以通过查找历史字典确定当前生成的是字面(Literal)部分还是其它数据部分(比如二元组),并且知道该字面部分在整个第一压缩结果中的位置。当然也可以通过采用标记的方法来在生成的压缩文件中标记文本部分。本领域技术人员基于本申请,可以采用任何适用的能够对字面部分进行加密的算法,包括流加密算法或者块加密算法,例如RC4流加密算法(具体可参见http://en. wikipedia.org/wiki/RC4)、AES 或 DES 块加密算法(具体可参见 http://en. wikipedia. org/wiki/Advanced_Encryption_Standard 和 http://en. wikipedia. org/wiki/Data_Encryption_Standard)、RSA 或 ECC 块力口密算法(具体可参见 http: //en. wikipedia. org/wiki/RSA和http://en. wikipedia. org/wiki/ECC)中白勺至少一种。优选地,还可以包括步骤307中,对加密后的第一压缩结果的至少一部分进行第二压缩(比如只是对字面部分的压缩结果进行第二压缩),以获得第二压缩结果。本领域技术人员基于本申请,可以采用任何适用的能够对字面部分进行压缩的第二压缩算法,例如Huffman编码,香农范诺编码(Shannon-Fano)等。采用上述方法,可以保证在不降低保密级别时,较大程度地减少加密过程的所耗费的时间,从而能够大大地提高用户的体验。图4示出了本专利技术对数据进行压缩和加密的方法的第二具体实施方式。该第二具体实施方式包括三个阶段 I.第一压缩阶段在该阶段中,接收包括文本数据的原始数据,并采用LZ77压缩算法对该原始数据进行压缩。经过LZ77压缩算法压缩后,原始数据就形成了如图4所示的第一压缩结果。第一压缩结果会包括了字面部分LI、L2、L3......等,和二元组Tuplel、Tuple2.......,所述二元组表征距离和长度,距离通常指该二元组所表征的之前的串数据的头与当前位置的距离,长度指该二元组所表征的串长度,一旦二者确定,那么一个二元组所表征的串将被确定。表I示出了在不同原始数据来源中经过LZ7本文档来自技高网
...

【技术保护点】
一种对数据进行压缩和加密的方法,包括:接收原始数据;对所述原始数据进行第一压缩,以获得第一压缩结果;仅对第一压缩结果中的字面部分进行加密,以获得加密后的第一压缩结果。

【技术特征摘要】
1.一种对数据进行压缩和加密的方法,包括 接收原始数据; 对所述原始数据进行第一压缩,以获得第一压缩结果; 仅对第一压缩结果中的字面部分进行加密,以获得加密后的第一压缩結果。2.一种如权利要求I所述的方法,还包括 对加密后的第一压缩结果的至少一部分进行第二压缩,以获得第二压缩結果。3.—种如权利要求I所述的方法,其中第一压缩采用LZ77压缩算法。4.一种如权利要求I所述的方法,其中,如果采用块加密算法,则采用源块缓存器缓存所述第一压缩结果中的字面部分,采用目标块缓存器缓存所述字面部分的加密結果。5.—种如权利要求I所述的方法,其中所述加密采用的算法至少包括RC4流加密算法、AES块加密算法、RSA块加密算法中的至少ー种。6.一种如权利要求I所述的方法,其中所述字面部分为文本数据和ニ进制数据中的至少之一。7.—种如权利要求I所述的方法,其中该方法被运用于云存储或虚拟专用网中的至少ー种。8.—种对数据进行压缩和加密的系统,包括 接收装置,被配置为...

【专利技术属性】
技术研发人员:常晓涛谷春亮邹琼戈弋王鲲
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1