一种安全灵活的数字档案压缩与加密方案

    焦阳+赵嵩

    

    

    

    摘 要:针对数字档案安全存储需求,提出了一种灵活有效的数据压缩和加密方案。首先比较了主流压缩算法,选取适合于档案保存的无损压缩方法。然后利用前反馈非线性动力学滤波器产生伪随机序列结合自适应随机算术编码对SPIHT分类的位进行编码,获得压缩加密的比特流,实现在不同需求级别的完全加密和选择性加密方案。实验结果表明,该方案具有良好的加密安全性,不影响压缩效率,兼容多种文档类型,适合于各类数字档案保存需要。

    关键词:数字档案;文件加密;数据压缩

    1 引言

    随着各种图像采集设备的广泛应用,当今的网络数据以及档案数据中,数字图像所占比例正在不断增长。相比传统文本文件,图像文件的数据往往是海量的。面对越来越多的多媒体文档,档案存储的技术方式需要改进。本文提出一种针对数字档案文件存储的压缩结合加密方法。

    2 数字档案的安全保存特点与需求

    2.1 数据量巨大,有效的压缩可以提高存储的效率。相比实时场景图像压缩方法对于时效性的极高需求,数字档案存储可以在实时性和压缩效率上实现灵活的平衡,因此一些更先进更复杂的算法可以引入数据压缩过程中。

    2.2 数字档案文档中,文本、数据、图像往往混合交替出现。每一种类型的文档的数据特点各不相同,它们的码率、原始编码格式、无损压缩极限对压缩编码器提出了不同要求,因此编码器应当能够自适应调整编码方式,实现速率可控的压缩编码。

    2.3 数字档案具有较高的安全性需求。档案安全的重要性自不待言,然而传统的加密方案如DES和AES等不适合应用在高计算复杂性的图像加密中。另一方面,一些加密方案比如基于秘密分割或盲源分离算法,对空间域中的像素进行扩散,得到良好加密安全性,但加密后的密文文档会产生远大于明文的数据量[1]。如果一套档案存储方案中先后使用了压缩与加密方法,那么加密带来的冗余数据将抵消掉压缩编码的效果。因此在压缩域同时实现加密是有必要的,最近的研究已开始重视在压缩过程中集成加密算法[2]。

    3 压缩编码的选择

    为了确定适合于数字档案文件压缩的方法,我们分析和测试目前主流的无损压缩算法,包括基于变换的方法:JPEG、JPEG2000以及基于SP的变换编码方法;基于预测的无损压缩算法:LJPEG,CALIC;基于字典的压缩方法:PNG和RAR;以及SPIHT方法。

    JPEG2000,是一个ISO/ITU-T标准的图像编码方法,它基于离散小波变换(DWT)、标量量化、上下文建模、算术编码和压缩后的速率分配等方法。

    SPIHT,根据变换系数的量级来将它们从最高有效位传输到最低有效位平面,采用重要信息确定树形结构,算法的执行取决于零树结构。

    S+P变换,使用简单的金字塔多分辨率方法,通过预测编码增强,它的计算量小,只使用整数增补和位移,解决了有限精度的问题。

    无损JPEG (L-JPEG),使用三个最近的邻居(上,左,左上方),熵编码用于预测误差,无损JPEG在医疗成像方面有一定的知名度。

    PNG,便携式网络图形是W3C推荐作为替代GIF的编码方法,它是基于预测方法的熵编码。该熵编码用于深受欢迎的Zip文件压缩程序。

    WinRAR,是一款共享的文件归档和数据压缩工具,它完全支持RAR、ZIP、TAR、GZ、BZ2、JAR、ISO、7Z和Z文件。这些算法都基于一般的文本压缩字典。

    使用香港理工大学的标准数据库进行对比实验,选取7000幅图像作为实验样本,测试平台为Pentium处理器(2.66 GHz),4GB内存,Windows 7操作系统和Visual C++6.0开发环境。所有无损压缩程序均在Win7的VC环境中重新编译。我们衡量压缩R=(原始图像大小)/(压缩图像大小),较大的R值表明更好的压缩性能。

    图1给出的压缩方法的时间/压缩比,是数据库中全部7000次样本测试运行结果的平均值。标准JPEG(B+ECT)方法的压缩率比较低。S+P的压缩比很高,但此方法有较长的运行时间。LJPEG和PNG得到了几乎相同的压缩比。而Winrar软件仅适合用于压缩文本文件,不适合用于压缩多媒体文件,如视频、图像或音频文件。CALIC虽然是压缩率最高的算法,但是SPIHT在压缩率和压缩速度上找到了最佳的平衡。因此,对于数字图像档案文档数据压缩的大多数情况下优先推荐SPIHT方法。

    4 结合SPIHT和RAC方法在压缩域实现文档加密

    最近的研究表明,信息熵编码方法在加密的同时仍然可以保留明文的压缩性能。混沌系统具有许多重要的性质,比如对初始条件和控制参数具有高度敏感性,适合用于加密方案。基于混沌系统随机算术编码(RAC)已经应用于图像加密,混沌系统作为伪随机位生成器(PRBG)。前反馈非线性动力学滤波器(FFNDF)可以产生具有均匀分布的n阶混沌信号并被成功的应用于构造哈希函数,它可以用来产生更安全的伪随机序列。通常算术编码(AC)是信源编码的最后阶段,它可以做到对图像、文本等各种类型文档实现数据压缩,而RAC方法可以提供安全性且不影响压缩性能。上文中已经证明,SPIHT算法是有效的图像压缩算法,在SPIHT算法中应用RAC方法可以得到灵活的保护机制,实现完全加密或选择性加密。

    SPIHT算法根据变换系数的大小将它们从最高有效位传输到最低有效位平面。SPIHT采用重要信息集确定树形结构,算法的执行取决于零树结构,即使在编码器数据开始阶段出现极小的重要信息误差,算法都不能正确地解码图像。这种敏感特性使得它适合于实现加密。压缩算法产生的许多不同类型的位(符号位,细化位,重要位,重要集合)。解压缩算法必须解释每一位在上下文中的正确意义。错误的重要位将导致后续位错误,而细化位则不会。本文提出的算法框架如图2所示,首先,原始数据通过小波变换得到变换系数;随后采用SPIHT进行分类,决定重要映射。根据阈值给出的重要系数,不重要的空间方向树和孤立的不重要系数重新排序,得到重要位和符号位;接下来是细化阶段,获得重要系数的附加细化位;最后,使用FFNDF生成伪随机位序列,控制对符号位与比特流进行异或运算,实现自适应的二进制RAC对量化的符号流进行数据压缩和加密。

    在SPIHT编码阶段,重要系数的坐标隐藏在重要位中。由于SPIHT的预测性和可变长度编码,解码不仅取决于当前的位,而且取决于重要位。一个重要位错误会导致严重的错误传播。而标志位和细化位不能提供足够的视觉信息。所以,如果想实现选择性加密,标志位和细化位可以不必被加密,从而获得更快的加密速度。如果我们想保护信息的全部内容,就需要加密所有的位。因此,根据应用的情形,我们可以灵活地将编码算法分为全部加密和选择性加密。由于SPIHT方法针对图像的空间冗余,而RAC针对熵冗余,所以该加密方法是文件格式兼容的,文本、图像和任意文档都可以使用此算法进行加密和压缩。

    5 实验结果和安全性分析

    实验采用国际标准图像goldhill(512*512),压缩比为0.25bpp(比特每像素),二阶FFNDF的产生密钥和仿真条件为:反馈系数为3.57和4.0,转换系数为5.70和7.0,初始值是0.7238。状态值分别是0.3552和0.8421,控制参数是分段线性映射0.35。所有的仿真采用双浮点运算IEEE754浮点标准。

    (a)原始图像;(b)图像的小波域;(c)全加密和压缩的图像;(d)仅细化阶段加密的图像;(e)仅系数加密的图像;(f)使用错误密钥解密后的图像

    图3给出了原始图像以及变换过程和加密解密结果,完全加密可以获得良好的安全性,但是仅使用细化位或系数参与加密运算则只改变了图像的亮度/对比度,实现有限的保护。

    优秀的加密系统需要有极敏感的密钥保证系统能够抵御暴力破解。FFNDF对于初始值和控制参数非常敏感,根据图6(f),与初始密钥差别在10-15量级的错误密钥解密后的图像完全不可读取。系统对初始密钥值的敏感度达到了的10-15,而其他参数的敏感度是10-16,密钥空间为 ,这足以抵抗密钥搜索破解。

    6 结束语

    本文提出的基于FFNDF加密并结合SPIHT和RAC的方法可以有效对各类数字化档案文档进行压缩和加密,提供了灵活的可选择加密方案。从密码学角度的理论分析和实验结果表明,该方案是安全可靠的,并且计算复杂度可根据需要调整,适用范围广。