算术编码c语言实现图像压缩,基于算术编码的图像压缩加密方法与流程

编程入门 行业动态 更新时间:2024-10-24 05:19:01

<a href=https://www.elefans.com/category/jswz/34/1747979.html style=算术编码c语言实现图像压缩,基于算术编码的图像压缩加密方法与流程"/>

算术编码c语言实现图像压缩,基于算术编码的图像压缩加密方法与流程

本发明涉及图像压缩加密技术领域,具体涉及一种基于算术编码的图像压缩加密方法。

背景技术:

随着社会科学的进步,多媒体技术,信息存储技术的飞速发展,以及网络普及率的提升,越来越多的数字图像得以在网络上传输,并逐步称为人们获取信息的主要途径,因此,对图像的安全保密以及存储大小有了更高的要求。例如,图像数据所有者在Internet上传输他所拥有的图像时,为了保护自身利益,就需要对发送的图像通过可靠的加密技术进行处理,同时为了能够更快的传输图像并更好的利用网络流量,这时就需要传输的加密后的密文所占用的空间能够越小越好。

传统的加密方法有很多,如DES和AES,其安全性基于计算复杂度,对图像进行逐位的加密,速度慢,浪费大量存储空间,不能满足如今这个高效社会的需求。现有的图像加密的算法,主要是基于空间域和频率域的置乱、扩散、异或操作。在传统的结合图像压缩的加密方法中,通常是将加密过程和压缩过程分开进行的,这样的做法速度慢、计算量大,也无法满足实时性的需求。联合压缩与加密的方法是指在压缩过程中引入图像加密,保证了高效性,增强了安全性,能够很好的满足现在数字图像传输的要求。

目前,常见的图像压缩标准包括JPEG、JPEG2000,它们分别利用离散余弦变换(Discrete Cosine Transform, DCT)、离散小波变换(Discrete Wavelet Transform, DWT)将图像从空间域变换到频率域,这会导致图像的压缩过程是有损压缩。算术编码是一种无损的压缩算法,压缩效率高。但是不能够进行加密。

技术实现要素:

本发明为了克服以上技术的不足,提供了一种加密和解密效果好、安全性高的基于算术编码的图像压缩加密方法。

本发明克服其技术问题所采用的技术方案是:

一种基于算术编码的图像压缩加密方法,包括如下步骤:

a)利用计算机对输入的图像进行像素置乱,选择混沌置乱法与Arnold置乱法分别进行像素置乱,将混沌置乱法及Arnold置乱法的使用顺序作为第一组密钥;

b)利用计算机对置乱操作后的图像的像素值进行算术编码,在算术编码的概率模型中使用混沌系统生成混沌序列,根据生成的混沌序列去改变待编码像素值的概率区间,将其作为第二组密钥,得到加密后的概率模型;

c)对步骤b)中加密后的概率模型中使用新的混沌系统生成新的混沌序列,该序列为0-1之间的随机数,设置阀值为0.5,当新的混沌序列的当前值大于等于0.5时,对概率模型进行概率区间的交换,如果当新的混沌序列的当前值小于0.5时,对概率模型不进行任何操作;

d)计算机将步骤b)及步骤c)加密后的概率模型中的像素值进行算术编码,编码完成后,重复步骤b)和步骤c),得到对应的其余将要编码像素值的概率模型,之后对其进行编码,得到新的概率模型,直至对所有像素完成编码;

e)对新的概率模型解密过程中,先输入步骤b)和步骤c)中生成的第一组密钥和第二组密钥进行解密解压缩操作,解密后得到步骤a)置乱后的图像的像素值,再输入步骤a)中的第一组密钥,最终得到原始图像。

还包括如下步骤:

a-1)所述步骤a)中对输入的图像使用混沌模型产生混沌序列,混沌序列的第1000至1029数值进行截取,设置阀值为0.5;

a-2)将截取的序列中第1000个数值与阀值0.5进行比较,当其大于等于0.5时,对图像的像素值进行Arnold置乱,当小于0.5时,对像素值进行混沌置乱;

a-3)将截取的序列中第1001至1029共29个数值分别重复步骤a-2),完成30次置乱;

a-4)根据混沌序列中选择第1000至1029数值的混沌置乱和Arnold置乱的两者的使用次序不同,将置乱算法的使用顺序作为第一组密钥。

步骤b)中混沌序列的值,随机的更改待编码像素值的概率模型。

步骤c)中的概率区间的交换的方式为中心置换法,将图像中从0-255像素值对应的概率区间以水平中心为基准进行翻转,形成像素值为255-0对应的概率区间。

本发明的有益效果是:通过本基于算术编码的图像压缩加密方法对图像进行压缩加密,其密文安全强度高并且数据量小,无法从密文中获取与原文图像中任何相关的信息。能够无误差的恢复出细节信息,加密和解密的效果好,安全性高。

附图说明

图1为概率区间的变换的对比图;

图1中a为变换前的示意图,b为变换后的示意图。

图2为概率区间的交换的对比图;

图2中a为交换前的示意图,b为交换后的示意图。

具体实施方式

下面对本发明做进一步说明。

一种基于算术编码的图像压缩加密方法,包括如下步骤:

a) 利用计算机对输入的图像进行像素置乱,选择混沌置乱法与Arnold置乱法分别进行像素置乱,将混沌置乱法及Arnold置乱法的使用顺序作为第一组密钥。使用混沌置乱的过程是首先通过logistic混沌模型生成混沌序列,并对得到的序列进行排序,其中得到的排序序号就是对像素值进行置乱的顺序,在解密的时候,只需要使用同样的密钥生成混沌序列,得到最初置乱的排序序号,就可以恢复原始像素排序。根据混沌序列选择混沌置乱和Arnold置乱,两者的使用次序不同,最终的置乱结果也会出现很大差别,因此,我们将置乱算法的使用顺序作为第一组密钥。

b) 利用计算机对置乱操作后的图像的像素值进行算术编码,在算术编码的概率模型中使用混沌系统生成混沌序列,根据生成的混沌序列去改变待编码像素值的概率区间,将其作为第二组密钥,得到加密后的概率模型。算术编码算法的一个特点就是编码和概率模型是相互分开的,因此,此特点给实现压缩的同时进行加密提供了可能。对于灰度图,共有256个灰度级,因此在初始化概率模型的时候,只需要256个存储单元用于存储每个灰度级出现的概率。初始化每个像素值的概率为1/256,我们根据生成的混沌系列(由于序列值是0-1,大于初始化的各个像素的概率,因此,我们将得到的序列值都除以1000,使之满足概率区间的要求),来决定符号概率上下限的改变的大小,从而达到加密的效果,很明显,当我们对概率区间进行改变,在解密时,如果还是按照原来的概率模型去解码,那么一定会出错,而且随着不断的解码,出现的错误积聚越来越大,越来越严重,直至无法解码,当然,我们需要注意的是,由于概率区间的上下限是有界的,因此对于最初和最末尾的字符其概率是发生了较小变化的,但是因为变化的只是两个字符,而其余的字符概率没有发生变化,因此这种问题对整体系统压缩效率的影响是可以接受的。

c) 对步骤b)中加密后的概率模型中使用新的混沌系统生成新的混沌序列,该序列为0-1之间的随机数,设置阀值为0.5,当新的混沌序列的当前值大于等于0.5时,对概率模型进行概率区间的交换,如果当新的混沌序列的当前值小于0.5时,对概率模型不进行任何操作。

d) 计算机将步骤b)及步骤c)加密后的概率模型中的像素值进行算术编码,编码完成后,重复步骤b)和步骤c),得到对应的其余将要编码像素值的概率模型,之后对其进行编码,得到新的概率模型,直至对所有像素完成编码。换句话说,本加密算法使用的算术编码是自适应的,这样能进一步的提高压缩效率;系统不断重复更新概率模型和编码过程,最终完成对整幅图像的加密和压缩操作并输出密文。

e) 对密文解密过程中,先输入步骤b)和步骤c)中生成的第二组密钥和第三组密钥进行解密解压缩操作,解密后得到步骤a)置乱后的图像的像素值,再输入步骤a)中的第一组密钥,最终得到原始图像。由于算术编码算法是无损压缩,而且,像素置乱算法也不会改变各个像素的大小,因此,本系统能够无误差的恢复原始图像。

通过本基于算术编码的图像压缩加密方法对图像进行压缩加密,其密文安全强度高并且数据量小,无法从密文中获取与原文图像中任何相关的信息。能够无误差的恢复出细节信息,加密和解密的效果好,安全性高。

还包括如下步骤:a-1)所述步骤a)中对输入的图像使用混沌模型产生混沌序列,混沌序列的第1000至1029数值进行截取,设置阀值为0.5;a-2)将截取的序列中第1000个数值与阀值0.5进行比较,当其大于等于0.5时,对图像的像素值进行Arnold置乱,当小于0.5时,对像素值进行混沌置乱;a-3)将截取的序列中第1001至1029共29个数值分别重复步骤a-2),完成30次置乱;a-4)根据混沌序列中选择第1000至1029数值的混沌置乱和Arnold置乱的两者的使用次序不同,将置乱算法的使用顺序作为第一组密钥。像素值置乱的次数是可以人为决定的,在本发明,我们选择的随机置乱次数是30次。

步骤b)中概率区间的变换是基于混沌系统的,根据混沌系统生成的混沌值,决定对当前概率区间的改变量。如图1,a是原始的概率模型,b是经过区间变换之后的概率模型。可以看出经过区间变换后,中间像素值对应的概率间隔大小没有发生变化,只是在第一个和最后一个概率区间发生较小变化。

步骤c)中的概率区间的交换的方式为中心置换法,将图像中从0-255像素值对应的概率区间以水平中心为基准进行翻转,形成像素值为255-0对应的概率区间。通过图1可以看出在解密的时候,如果仍然按照原本的概率模型去解密解压缩的时候,会出现错误,因为这时概率模型已经发生了变化。需要说明的是,一般的灰度图,相邻的像素值之间的可能概率变换是比较小的,如果简单的选择相邻符号概率区间进行置换的话,会对系统的加密效果产生不利的影响,因此为了避免类似的问题,我们选择的置换方式是中心对称置换,这样能够较大程度的提高系统的加密性能。

更多推荐

算术编码c语言实现图像压缩,基于算术编码的图像压缩加密方法与流程

本文发布于:2024-02-27 08:54:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1705939.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:算术   图像   流程   语言   方法

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!