图像加密方法

2024-12-02

图像加密方法(精选7篇)

图像加密方法 篇1

摘要:针对移动互联网智能终端的图像加密需求,在对传统的图像像素位置置乱以及像素灰度值变换加密等方法的分析与实验基础上,提出移动终端图像加密方法的四项选择原则,并按此原则设计Arnold变换和混沌序列加密相结合的图像双重密钥双重置乱加密算法。同时,为了提高加解密运算速度,实现移动终端快速图像加解密工作,在基于对Arnold变换的周期性验证和理论推导,得出移动终端的图像加解密矩阵的快速查表法。应用证明,该算法能满足事务处理对移动终端图像加密的需求。

关键词:移动,终端,图像,加密,算法

0 引 言

随着移动互联网技术的快速发展,智能手机已成为人们的日常生活和办公必不可少的工具。如何有效保护各类移动智能设备上的敏感信息,特别是一些隐私图片的防泄密措施是当前移动终端应用中急需解决的技术问题。

近年来有关桌面系统的图像加密技术研究已趋成熟,然而直接将传统的桌面图像加密方法直接应用于移动终端,则将遇到如下问题。首先,移动终端与传统台式机相比,其可配置硬件设备的空间受限太多,造成移动终端的CPU性能不如传统台式机强劲; 其次,移动终端的内存容量有限,可扩充余地小,造成快速计算能力无法与台式机相比; 第三,由于移动终端的主要应用场景是碎片化事务处理,操作切换频繁,因此用户的体验要求远高于台式机。

基于上述分析,对图像加密而言,若简单地把台式机的加密算法程序直接应用于移动终端是不现实的,这也是当前移动终端图像加密成为热门课题的原因之一。移动终端中的图像加密涉及三个方面基本需求: ( 1) 在移动设备中的本地存储加密; ( 2) 图像的无线网络传输过程加密; ( 3) 移动终端接收第三方传输过来的加密图像的解密。同时,移动终端图像加密最为关键的是应用方便性,即用户体验的需求。上述四个问题构成了移动设备图像处理的基本需求。如何满足移动设备中图像加密的需求,本文为此进行了相关实验和研究。

从用户体验需求出发,如采用传统台式机的文件加密形式, 用数据加密标准DES( Data Encryption Standard) 等,按文件方式对图像进行加密,但由于加密后不再是图像文件,这对普通移动用户会带来体验度较差的感觉。因此,移动终端中图像加密后应该还是图像文件,以便于用户识别,通常采用空域和频域加密方法,因为加密后仍然是图像文件。

由于移动终端通常属于个人使用物品,其隐私性突出,对其中存储的信息私密性要求高。若仍采用传统意义安全保密措施,极有可能影响移动终端的使用便利性,从而失去移动终端特有的优势,如处理公务的移动办公和个人移动阅读交叉进行的碎片化时间利用等新行为。可能因为顾虑信息安全而被放弃, 失去了移动终端应有的优势,这显然是因咽废食的举措。因此, 研究保护移动终端的信息安全的新措施、新方法是近年来移动信息安全领域的热门课题,也是本文作者在实际应用中遇到的新需求。

一般来说,频域加密比空域加密的效果更安全,特别是在抗JPEG压缩方面的稳健性更好些,但空域加密方法因算法直观、 简单而得到更广泛应用。对于移动终端上使用的图像加密措施而言,用户可能更关注的是在相当加密措施下的操作方便性,即更注重对加密效率的追求。

为此,基于对移动设备中的图像加密安全等级和加密效率综合考虑,本文提出一种快速空域置乱和序列加密方法,以实现移动终端中图像的无损加、解密。

1 图像加密方法概述

图像加密方法原理主要有像素置乱加密及用密钥流进行异或运算的序列加密两种主流方法。常用的空域置乱是对图像的像素坐标按某种规则进行变化,使其表现出伪随机混乱,当需要解密时又能完全恢复其原像素坐标。若对上述置乱变换或映射产生的规则序列进行异或运算,就称之为序列加密。目前常用的图像加密都采用混合方式,以实现一次一密,Shannon在理论上已证明,一次一密的方法是最安全的方法[1]。

1. 1 Arnold 图像置乱算法

图像的像素坐标置乱方法现已比较成熟的有混沌、幻方和Arnold等多种变换方法。Arnold变换是其中最常用的图像置乱算法[2],该算法只适用于像素点为N × N的图像,其最大特点是具有周期性。当采用Arnold算法对像素坐标经过若干次变换后,图像又恢复到原始状态。目前尚未从数学上证明其周期性依据,但可用实践证明其周期性是显著和有规律的,变换周期只与像素N的大小有关。

Arnold变换的算法原理是构造一个两行两列的变换矩阵A,用A与原坐标点( x,y) 相乘得到变换后的中间坐标点( m,n) , 再通过取模运算,得变换后到的坐标点( x',y') 在原图像坐标范围内,该模为最大像素数N 。Arnold变换的定义及数学表达式如下:

对任意N × N矩阵中点D( x,y) ,其中x、y为矩阵点元素D的初始下标,经过Arnold变换后为点D'( x',y') ,且满足下式:

对于数字图像来说,可以将其像素点排列看作是个矩阵。每个像素点由灰度值或R、G、B三个分量值组成。R红色,G绿色, B蓝色。对图像坐标置乱其实是对像素的灰度值或RGB值位置进行移动,即将原来的灰度值或RGB值的坐标 ( x,y) 移到另一个坐标点( x',y') 上,且移动后的坐标应该在原图像坐标范围内。

对于M × N( M ≠ N) 图像而言,Arnold变换将会产生超出或不满足一一映射关系,以3 × 2图像为例,点( 0,0) 和( 2,1) 映射为同一点( 0,0) ,因此标准的Arnold变换不适合宽高不等的图像[3],必须将其裁切成若干各正方形图形才能进行该变换。 实际上Arnold变换可看作是对图像的拉伸、压缩、折叠及拼接的过程。

1. 2 图像序列加密算法

在传统的迭代乘积密码系统中,如Arnold变换矩阵的主要任务就是对图像数据块中的元素进行置乱,使得加密图像看起来是随机产生的。但由于置换矩阵是预先确定的,则特别容易受到差分密码分析的攻击,其保密性不高。最关键是不符合现代密码体制的柯克霍夫斯( Kerckhoffs) 准则[4]。该准则认为: 一个安全保护系统的安全性不是建立在它的算法对于对手来说是保密的,而是应该建立在它所选择的密钥对于对手来说是保密的,即使密码系统中的算法为密码分析者所知,也难以从截获的密文推导出明文或密钥。一句话: “一切秘密寓于密钥之中”。

基于混沌动力学系统的图像加密技术[5]近年来得到快速发展,其原理是将文件数据流的加密方法与图像置乱技术相结合,利用混沌信号来对图像数据流进行加密,对Arnold变换产生的序列进行异或运算,是加密图像具有很好的混沌分布特性, 且完全满足Kerckhoffs以及一次一密准则。

以Arnold变换算法为例,记Z[k]( k = 1,2,…) 为某个加密序列,则式( 1) 、式( 2) 可改写为如下表达式:

基于密钥的序列加密与置乱加密相混合对图像进行处理, 其产生的文件仍然是图像文件,但图像加密排列的安全性会有极大提高。以密钥作为参数能够唯一地确定排列的性质,且基于密钥的排列即可在空域实现,也可在频域进行,排列变换可以是局部或是全局的。

2 移动终端的图像置乱加密

对目前大多数移动用户而言,图像加密的安全性和性能是并重的,为此,本文提出的移动终端图像加密方法四项选择原则是: 1从原理出发,应符合Kerckhoffs以及一次一密准则; 2从效果来看,加密的安全性能抵抗绝大多数普通黑客的解密技术; 3从应用角度而言,能满足用户的方便、快捷加解密使用体验; 4对加密工具制造者来说,选用的加密算法是公开并经过实践检验的,且易于实现。

基于上述四项选择原则,本文对空域和频域的各种置乱和序列加密方法进行比较,如正交拉丁方、幻方、Conway游戏、以及Logistic、Chebyshev、DCT等混沌映射及置乱方法进行比较,目的是选择适合移动终端使用的图像加密方法。

在各种方法测试过程中发现,像混沌变换、仿射变换的空域加密算法实现较为简单,不需要进行空域到频域的变换,计算量相对较少,虽然频域算法比空域的局部随机置乱效果更好。因此得出在移动设备的图像加密采用计算量较小的空域置乱算法。在各种空域置乱算法中,为了提高加解密速度,经试验认为Arnold变换的周期性是提高解密性能的可利用特点,据此设计了基于Arnold变换与混沌序列置乱相结合的移动终端图像加密工具。

目前移动终端获取和保存的相片大多数都为彩色图像,对于文字稿转换过来的图像文件用灰度值表现也足以满足识别需求,且在移动办公业务中占有相当大比例。因此,当用手机或平板电脑将文稿拍成照片保存的彩色图像,可以用图像彩色转灰度的心理学公式[6]:

实际工程应用中对计算系数采用取整后也足以满足实际需要,如下式:

采用式( 6) 对彩色文稿图像进行灰度处理后,由于将RGB三色值转换为单个灰度值,可以简单认为提高2 /3的加解密速度,且可同比例减少图像的传输流量。在移动终端单纯采用Arnold变换由于不符合Kerckhoffs准则,故在实际应用中对式 ( 1) 和式( 2) 进行改进,加入密钥 ( ku,kv) 后的算法公式如下:

采用具有密钥的Arnold变换可以实现置乱算法与密钥分离。该方法直观简便,密钥取值范围大,抗攻击性强,安全性大大提高。对于彩色照片的处理,方法上与黑白照片是相同的,不再一一赘述。

在实际应用中,对于N阶Arnold置乱的第n次变换矩阵为An见下式:

对应解密的n次逆矩阵A - n求解比较麻烦,在此可以利用Arnold变换周期的庞加莱回复性[7],图像经一定次数的Arnold变换会恢复原图。如一幅256 × 256数字图像的Arnold变换的周期为192,对此图像先做92次的Arnold变换后得到加密图像。再对加密图像做100次的Arnold变换就会恢复原图,如图1 - 图3所示。

Arnold变换的周期T与阶数N关系[8]如表1所示。

因此,对Arnold变换的n次逆矩阵A- n求解可以利用周期性,计算逆矩阵A- n等同于计算矩阵N此矩阵,即如下式所示:

推导过程如下: 设Arnold变换的单位阵为:

由上述推导可知: A- n= AT - n,即对求逆矩阵A- n可转化为求正向矩阵AT - n。同时可知,在变换置乱加解密过程中,并不需要每次都对实际图像逐次进行运算,加密只需用矩阵An对像素点进行置乱运算,且只需对图像进行AT - n运算即可得到复原图像。由于矩阵An和AT - n都可以通过预先计算后存入数据表中, 在实际应用中只要查表即可得知置乱和解密矩阵,由此实现了移动终端快速图像加解密工作。

3 图像快速加密实验与分析

3. 1 图像加密算法实验过程简介

本次移动终端的图像加解密实验过程如下: 首先在台式计算机上进行图像像素位置点置乱的传统Arnold算法实验,以此验证Arnold加解密变换周期的庞加莱回复性; 其次进行基于Logistic混沌序列映射的图像灰度值加解密技术实验,以此验证一次一密的可操作性; 接着进行基于像素位置点置乱和像素灰度值混合应用的图像加解密实验。在完成上述试验后,将图像加解密程序移植到移动终端的Android操作系统上进行实验, 最后采用本文提出的改进算法完成在移动终端上的实验,取得了实验成功,具体实验过程分析如下。

图1 - 图3即为Arnold算法加解密变换周期的测试结果, 实验验证了Arnold算法的庞加莱回复性。从图2中可以看出, 加密后图像的均匀性较差,明显带有斜格纹路。对于图像加密效果而言,加密后的图像灰度直方图越均匀,安全性效果越好。 而实验结果证明,仅对图像像素位置变换的Arnold算法不能满足移动终端的图像加解密要求,为此接着对图像像素灰度值,以及图像像素位置和灰度值混合进行了Logistic混沌序列加解密的实验。限于篇幅,本文省略了对纯图像像素灰度值的加解密实验分析,直接介绍和分析图像像素位置和灰度值混合加解密实验过程。

基于Logistic混沌序列加密算法的原理是等同于文件的一次一密的序列加解密方法,将一个密钥序列与图像的参数值进行异或运算,图像参数主要指像素位置和色度值两部分,这两个参数值的混沌加密可以采用如下式表达:

其中,G'( x,y) 和G( x,y) 分别是序列加密图与原图在点( x,y) 位置处的灰度值,同理对彩色RGB图像也成立。解密算法做相同的对称异或,如下式:

举例,若在点 ( x,y) 位置处的像素灰度值为8位的二进制值DE( 1101,1110) ,设同为8位的序列值FF( 1111,1111) ,经加密式( 11) 运算,异或结果值为21( 0010,0001) 。用式( 12) 对21和FF进行异或解密运算,则恢复原值DE。依据式( 11) 和式 ( 12) ,对图1像素位置和灰度值参数进行序列加密运算,序列异或操作后得到的图像如图4所示。

对比图2与图4中的加密图像部分,可以看到,图4中加密后的图像混沌效果均匀,没有明显斜格纹路。由此可以得知,图像像素位置和灰度值混合的加密方法优于图像单一参数值的加密算法。以上实验结果是在台式机进行的,然后将此算法移植到移动终端上进行实验,加密效果与图4效果相同。

在移动终端进行的像素位置和灰度值混合的图像加密实验后得知,虽然从加密后的图像均匀度上能得到较为满意的结果, 从效率上也能满足移动用户的体验要求,但由于受到图像参数值大小的制约和移动终端设备内存配置的制约,密钥量不能过大,在计算机运算速度飞速发展的当下,其抗遍历穷举破译能力是相当弱的。若加大密钥序列长度,又将造成图像数据量增大, 占用移动终端有限的内存及消耗过多的通信流量。为此,需要改进这一算法以提高加密效率。

3. 2 提高图像加密效率方法的分析

在移动终端上对Logistic映射图像加密技术的实验发现,其具有密钥敏感性强、可抵抗各种攻击、安全性高等优点。但也发现存在一些缺点,当像素值和位置的置乱分步实施时,加密时间上会相对比较长。这对于在移动终端的用户体验效果不很理想,且传统的Logistic混沌序列加解密的算法在像素位置置乱时,需要在移动设备中开辟了3倍的图像像素总数的内存数组。 其中,像素置乱需要原图像的一倍内存,然后再进行像素位置置乱又需要一倍内存才能实现加密图像功能,传统logistic映射图像加密流程如图5所示。

这对于在移动终端设备中加密一张高密度像素点的图像而言,发生内存溢出的可能性很大。因此基于传统的台式计算机上采用的混沌Logistic映射图像加密算法未经改进直接在移动终端上实施几乎不可行。

且对实验过程分析中发现,加密的时间效率与算法执行顺序有关,实验中的像素值和位置的两步置乱算法影响了加密效率。为此进行算法优化,把像素和位置的两步置乱流程合并为一步进行,将原需3倍图像像素总数的数组内存压缩为1倍的数组内存。

由于数字图像的每个像素点都是由ARGB组成。而透明度值A通常整个图像都相同,范围为0 ~ 255。由此可选取透明度值A作为像素位置置乱过了的标识,若经混沌置乱,则A变为AT。采用如此设标志位算法,即不需要同单独开辟数组内存来做标识,以实现节省移动终端内存开销的效果。基于混沌的Logistic映射图像加密技术的改进算法流程如图6所示。

3. 3 图像加密效率的改进算法

基于上述对提高图像加密算法效率的分析,具体实验中的改进加密算法步骤如下所述:

( 1) 对于一幅M × N的数字图像进行加密,需要把这M × N个像素点放入一维的数组A中待后续的处理。

( 2) 由于每幅图像的透明度值是一样的,所以任意获取一个像素的透明度值赋给alpha变量作为像素点位置已置乱过的标志位。

( 3) 对于一维数组A中的像素A[i]而言,首先判断其透明度值是否为alpha。如果等于alpha,则此像素点之前未进行位置的置乱,对其进行步骤( 4) ,如果不等于alpha,则跳过它,对A[i + 1]进行上述操作。

( 4) 对于一维数组A中的像素A[i]并且透明度值为alpha而言,需要通过Logistic映射出一个置乱的位置x( m) 。如果A[x( m) ]的透明度值为alpha并且x( m) 不等于i,则A[i] 与A[x( m) ]进行位置交换。

( 5) 在位置交换后,通过Logistic映射出值y( n) 一并对A[i]和A[x( m) ] 进行像素值异或置乱,在置乱后还要改变A[i]与A[x( m) ]的透明度值不为alpha。

( 6 ) 若A[x( m) ]的透明度值不为alpha或者x( m) 等于i , 则继续通过Logistic映射出一 个置乱的 位置x( m) ,直到A[x( m) ]满足上述的要求。

通过上述反复迭代算法,实现了一倍数组内存的移动设备中的图像像素值与位置的双重置乱加密。

3. 4 图像加密改进算法实验结果分析

在移动设备实现改进后的图像加密算法实验中得知,在不失加密步骤完整性的情况下,由于整个加密改进算法过程中只增开了一个一维数组A ,大大减少了内存的消耗。整个算法一步就完成了像素值与位置的双重置乱,相对于之前的两步运算, 减少了移动设备的CPU运算时间,以及加解密算法所需的内存空间,由此提高了移动图像加密效率,改善了移动终端的用户体验。

此实验选择在一款国产品牌低端手机上进行,双核1. 2 GB,内存为1 GB。不同性能的移动终端结果会有所不同。实验表明,改进后的算法大大减少了对移动终端的空间和时间需求, 更适合在移动终端的应用。

具体实验结果见表2。改进前,设图像像素为N ,需要内存空间为像素点的3倍; 改进后,内存空间只需像素点的1倍内存空间。改进后算法与未改进算法在图像大小N与加密时间T的实验结果对比如表2所示。

单位: ms

从上述实验中可以清楚的看到,改进后的算法更适合在移动设备上使用,特别是能满足各种性能手机的应用。目前该算法已实际应用于电子政务等对安全性能有一定要求的场合,接下来将进一步推广至普通消费群体。

上面对移动终端上使用的Logistic映射图像加密技术的改进算法进行了介绍,对于在移动终端上接收加密图像的加解密方法在此仅做一简介。

按照“一次一密”以及密文与密钥分开原则,本文技术上采用后台加密图像服务器与密钥文件服务器分开管理,通过不同的通信方式和移动终端的接收渠道,获取加密图像和密钥,以符合Kerckhoffs准则。

由于在移动终端和后台服务器端,图像均为加密状态,且在无线或有线网络传输过程中,图像也均以加密形式传输,以实现图像信息的本质安全目的。

4 结 语

图像加密技术发展已经有许多年了,但对近年来快速发展起来的移动互联网智能终端的图像加密技术应用领域的研究还刚开始,为此本文做了一些尝试和探索,明确提出了移动终端图像加密方法的四项选择原则,并按此原则选择了适用的加密算法并作出改进。同时进行了加密软件的开发、实验和应用。经初步测试,用于移动终端的图像双重密钥双重置乱算法基本满足了日常生活和事务需求。然而这仅是开始,还有许多工作要做,特别应用于公务应用方面还须经有关权威部门验证。目前, 对于移动智能设备的性能指标实验和理论计算工作还在不断进行,本实验仅在Android系统中进行实验,还有待于在IOS 、 Windows等操作系统中进一步完善和改进。

图像加密方法 篇2

关键词:离散混沌系统,连续混沌系统,图像加密,信息安全

1. 引言

自1997年J.Fridrich首次提出利用混沌加密图像[1]。利用混沌加密图像成为图像加密的一个热点,先后出现了利用Logistic映射、改进的Logistic映射、Henon映射和Chebyshev映射等离散混沌系统和lorenz、Chen、Lü等连续混沌系统,以及这些系统与M序列、传统加密方法的组合来产生用于加密图像的密钥流[2,3,4,5,6,7,8,9,10,11]。其中,Logistic映射、Henon映射,特别是Logistic映射是目前研究最广泛的混沌系统。随着研究的深入,利用单一Logistic映射加密的系统安全性受到了质疑[12,13,14],这主要是由于Logistic映射属于低维混沌系统,存在分布不均匀以及现有混沌序列发生器存在有限精度引起的退化为周期信号等原因引起的[4,15,16]。因此,寻找高维、性态复杂、分布均匀的混沌系统,从而获得大周期或非周期密钥流成为混沌加密图像的一个研究新动向。目前,大多采用多种混沌组合、超混沌、常规加密方法与混沌多级加密的方法来获得大周期或非周期密钥流。如文献17构造了一个超混沌Henon映射用于加密图=像;文献18将Lorenz、Chen、Lü三个三维连续混沌系统组合生成密钥流;文献19给出了利用Logistic、Cubic、Cat三个映射的组合来加密图像的例子;文献20则给出了将Logistic映射和Chebyshev映射组合形成密钥流的介绍。

混沌加密方法属于对称加密体制的范畴。这种加密体制的安全性取决于密钥流发生器所产生的信号与随机数的近似程度[21],密钥流越接近随机数,安全性越高,反之则容易被破译。本文介绍了一种基于离散和连续的混合混沌系统的图像加密方法,利用该方法加密的保密性能主要取决于混沌序列本身而不是传统的运算复杂度。该方法与现代密码体制的要求是一致的,即系统的保密性不依赖于对加密、解密算法和系统的保密,而仅仅依赖于密钥的保密性[22],这是本方法的最大特点。

2. 混合混沌序列的生成

混合混沌序列的生成模型如图1所示:

将两个离散混沌系统产生的混沌信号经一定的比例混合得到一个驱y'=动信y号+p(t),然后y'=再利y用+p(t)驱动连续混沌系统,从而得到系统的初始值,通过不断的迭代,得到一个新的混沌序列。该混沌序列在相图上与原连续混沌系统相似,但实际却又是完全不同的两个混沌序列,这样可以抵御基于相空间重构的攻击。

本文中,离散混沌系统I、II分别选用二维超混沌Logistic映射和Henon映射,连续混沌系统选用Lorenz系统。其系统方程如下:

1.超混沌Logistic映射:

2.Henon映射:

3.Lorenz系统:

上面各式中参数如下:图1中,

其中,L x(t)为Logistic系统,H x(t)为Henon映射,h为混合比例因子。参数h的选择以生成新的序列是否仍具有混沌性质,有无周期性为原则。本文中,经过实验验证,h取1.0,既可以满足新的序列呈现混沌特性,又能使新系统的相图和单纯的Lorenz系统相似,从而增加了破译的难度。

将式(4)代入连续混沌系统(3)得:

其中,x'=x+p(t),y'=y+p(t),z'=z+p(t)。式(5)中,

当二维Logistic映射的初值取x=00.2 y=,00.3,Henon映射的初值取x=00.65,y=00.85,Lorenz系统的初值分别取(x1,y1,z1)(=-15.0,-10.0,3.0),得到的数值模拟结果如图2所示。图2(a)为未加入驱动y'信=号y平+p(t)时,x'=方x向+的p(频t)谱图。图2(b)为加入驱y'动=信y号+p(t)时,x'=方x向+的p(频t)谱图。由图示可知,利用本方法产生的混沌序列非常接近白噪声的宽谱特性,这是本文采用Logistic映射、Henon映射和Lorenz系统组合的重要原因。限于篇幅,Logistic映射、Henon映射的频谱图没有给出,实际上它比Lorenz系统的频谱还要窄。图2(c)为加入驱动y'=信y号+p(t)时,新系统的x-z方向的相图。必须指出的是,改变混合比例因子的大小可改变该系统的相h图形状,甚至退化为周期序列,如图2(d)所示,混合比例因子h=5.0时的相图。

3. 混合混沌序列在图像加解密中的应用

由混沌序列转换为加密因子的原则是让加密因子序列尽量保持原混沌序列的伪随机性,同时适于加密算法的操作。目前,该变换大体上可以分为实数值序列、位序列和二值序列三种[17]。本文采用的方法是将混沌实数序列按256个等级线性等分,然后映射得到8位二进制序列,将该序列作为加密因子序列。对图像进行加密时,将该加密因子序列,依次对图像的每一个像素值进行异或运算(模2加)便可得到加密图像。这种算法简单、计算速度快,且易于实现。解密过程与之相逆。图3为利用混合混沌序列中的x方向的数值进行加密、解密的实验结果。

4. 本方法的特点

加密算法的安全性主要依赖密钥的安全性,而密钥的安全性则与密钥空间的大小,密文对密钥的敏感性以及算法的复杂性都有很大的关系[23]。下面我们通过理论分析和实验结果来评估该系统加密的安全性。

4.1 密钥空间

混合混沌系统的参数a1,a2,a3,a4,a5,a6,h,σ,ρ,b和各系统的初始值都可以包含在密钥空间中。若运算精度按照10-16考虑,那么Lorenz系统的初始条件组成的空间大小至少为1016×1016×1016=1048。Logistic二维离散超混沌映射和Henon映射的初始值又可以组成至少是1016×1016×1016=1048的空间。另外还有a1,a2,a3,a4,a5,a6,h,σ,ρ,b等参数都可以作为密钥。因此,本系统具有非常巨大的密钥空间,要进行穷尽攻击是很难的。

4.2 加密图像对初始条件的敏感性

一个好的加密算法应该实现密文对密钥的敏感性,即密钥的微小差别可以对密文造成很大的变化。密文对密钥越敏感,密文中包含的密钥信息量就越少,使得基于唯密文的攻击越困难,因为从密文的变化中很难得出密钥的变化情况。图3(c)是密钥一致时的解密结果,图3(d)是密钥值相差10-14时的解密结果,可见,加密图像对密钥是非常敏感的。

4.3 算法抵抗基于统计分析攻击的能力

直方图是反映像素分布的一个重要指标,在此,将原始图像的直方图和加密后图像的直方图进行比较。从图4(a)和图4(b)可知,加密图像的直方图具有更好的均匀特性。再来看加密图像相邻像素的相关性分析。我们通过计算原图像和加密图像水平、垂直和对角相邻像素的相关系数来分析。图4(c)给出了加密前后图像的水平方向相邻像素的相关系数。可以看出,加密后相关性大大下降。实验结果表明,该方法对图像具有较好的扩散和混淆能力,能抵抗统计分析的攻击。

5. 结论

图像加密方法 篇3

图像信息加密作为研究图像信息安全的重要内容之一, 近十年来, 国内的研究取得了长足的进步。从图像像素位置的置乱, 到图像像素的值置换, 从图像的空间作用域到频域[1,2,3], 粗略地统计一下, 最近2年研究它们的文献就有近百篇。根据已查阅的文献, 现将图像加密的过程和方法归纳如下:

未加密图像→各类图像存储格式→图像加密的作用域 (空间域、频域、空间域及频域复合、频域及频域复合) →图像像素或图像频域数据的处理方法 (位置置乱、值的置换、位置的置乱及数值的置换复合) →各种置乱与置换的算法→加密图像。

对于图像加密方法的加密效果, 以运算速度快、加密强度高、抗干扰能力强、工程应用软、硬件实现简单为追求目标。目前, 由于没有一个统一的对图像加密方法评估标准或体系, 再加上考虑实际应用中不同状况下的用户对加密的实际需求, 可以说没有一种加密方法能适应各层次需求的图像信息保密。也很难说加密算法简单就不好, 算法复杂就一定好。

24位位图以其图像信息保留完整并能表现人类视力所能感知的所有颜色, 一直被普遍使用着, 具有不可替代的地位。本文在文献[5]工作的基础上, 针对24位BMP格式的真彩图像, 结合混沌理论, 利用双重异或的算法, 对图像的像素数值采用置换的策略, 进行图像加密。

1 混沌序列

混沌现象是在非线性动力系统中出现的确定性的、类似随机的过程。

对混沌动力学的研究指出, 混沌由于对初始条件的高度的敏感性和高度的随机性, 产生的混沌序列具有非周期不收敛, 又具有均匀的不变分布和δ函数的相关特性, 其序列的遍历统计特性等同于白噪声。因此混沌序列可以用来对信息进行加密。同时, 它又是确定性的, 由非线性系统的映射及参数、初始条件完全决定, 只要系统参数和初始条件相同, 就能完全重构出来, 来实现对信息的解密。这个加解密的过程也很好地符合了Kerckhoffs准则, 即密钥与算法公开, 算法公开不决定安全性。

目前, 用于图像加密的非线性动力系统具有代表性的有三种:分别是一维的Logistic映射, 定义为式 (1) 。二维的Henon映射, 定义为式 (2) 。三维的为Lorenz映射, 定义为式 (3) 。混沌动力学的研究也指出了它们进入混沌状态时参数的取值。

xk+1=μxk (1-xk) (1)

其中0≤μ≤4, xk∈ (0, 1) 。当3.569 945 6…≤μ≤4时, 式 (1) 处于混沌工作状态。式 (1) 通过变量代换可以在区间 (-1, 1) 上定义。

xk+1=1-μxk2

其中0≤μ≤2, xk∈ (-1, 1) , 取μ=2时, 映射可以工作在混沌状态。

其中a=1.4, b=0.3时。式 (2) 处于混沌工作的状态。

其中保持σ=10, b=8/3不变, 当r>24.74时, 式 (3) 工作在混沌状态。

三维的混沌系统可以分解成驱动、响应两个低维的子系统, 其特点是:响应系统的行为取决于驱动系统, 而驱动系统的行为与响应系统无关[4]。例如式 (3) , 以它后面的两个方程为驱动系统, x为驱动变量y, z代表响应系统的变量。

每种非线性动力系统产生的混沌序列都可以用来进行图像信息的加密与解密, 使用中各有优缺点。很明显, 低维的混沌序列算法简单、运算速度快。相比于低维混沌序列的高维混沌序列, 其算法复杂、运算速度慢、密钥空间大。关于密钥空间, 从理论上讲, 就式 (1) 混沌映射来说, μ的取值为从3.569 945 6…到4之间的无穷多个实数, 初始值x0取值为从0到1之间的无穷多个实数。

一般说来, 高维混沌序列的保密性优于低维混沌序列, 高维的混沌映射常有复杂的系统结构, 产生的混沌序列更难预测, 输出的多维混沌序列也使得应用更加灵活。在实际应用中, 由于计算机字长的限制, 使用低维混沌序列会退化为周期序列, 这样很容易受到混沌模型重构方法的攻击, 而高维混沌序列运算掩盖了其中混沌子序列的分布特性, 改变了子混沌系统的动力学行为[3], 有效地抵制了模型重构攻击算法。

至于选择哪种混沌序列进行图像信息的加密, 应综合考虑各方面的因素。需要强调的是, 在很多情况下, 由于混沌映射产生的原始混沌序列中的数据不便直接用来进行运算, 所以根据需要, 还要做各种变换。另外混沌序列的初始部分往往不具有混沌特征, 实验证明, 式 (1) 和式 (2) 至少应取20个以后的数据。式 (3) 初始部分与其后数据的性质相差不明显。

本文根据24位BMP图像的特点, 选用Lorenz映射作为混沌序列的产生。BMP图像的RGB数据空间正好对应Lorenz映射的xyz数据空间, 并期望发挥高维混沌序列的优势, 同时避免了多次使用一维Logistic混沌映射或改进的一维Logistic混沌映射。如果用3个Logistic混沌映射做改进, 增加的复杂度会具有一定的重复性。

应该明确, Lorenz映射相比于Logistic映射, 在产生的原始混沌序列上面, 还是有一点缺憾, 关键在于其系统输出的实值混沌序列xyz的值域各不相同, 相差较大, 而且局部取值有呈现单调性的现象。也有文献在这方面做了研究, 使用式 (4) 把xyz的值域进行了归一化处理[6], 且至少保留有原序列的混沌特性。

其中XYZ为归一化后的实数值混沌序列, k为移位控制参数, ξ (·) 为高斯函数, ε为转换因子, i为原混沌序列的序号。取k=1, εx=εy=εz=0.5, xyz可以映射到 (0, 1) 区间。

2 算法的设计与实现

数字图像可以看成一个矩阵。本文把图像与置换矩阵按位异或运算, 然后, 把图像的RGB分量再进行一次自异或运算, 最后合成最终的加密图像。下面是实现过程。

(1) 加密

设未加密的24位真彩图像为PH×W的矩阵。加密后的图像为IH×W。由P→I。

Step1 用龙格库塔法求解微分方程的方法, 对式 (3) 迭代求解, 产生混沌序列xyz。每个序列的长度大于等于H×W + LL为混沌序列初始部分的长度。

Step2 使用式 (4) 将产生的混沌序列的值域进行归一化处理, 映射到 (0, 1) 区间。得到MxMyMz序列, 长度为H×W

Step3 分别对MxMyMz序列进行排序。原来标示序列的每个实数位置的序号, 也随之重新排序, 实验证明, 这个由排序后的序号构成的一维非线性序列也具有混沌序列的特性, 而且是整数序列。用NxNyNz表示, 长度为H×W。对于每个序列的元素Nij∈[1, 2, …, H×W], 且Nij=Nkl, 当且仅当 i=k, j=l

Step4 对NxNyNz整数序列映射到[0, 255]区间。用一维非线性序列构成二维置换矩阵, 分别是Qx= Nx mod CQy=Qy mod CQz= Qz mod C, 其中C=255。对于每个矩阵的元素Qi j∈[0, 255], 1≤iH, 1≤jW

Step5 得到图像P的三个分量, PRPGPB

Step6 对P的每个分量与对应的置换矩阵进行按位异或运算。IR=Γ[PR, Qx ], IG=Γ[PG, Qy], IB=Γ[PB, Qz]。Γ[·]为按位异或运算。

Step7 Γ[ IR, IG ], Γ[ IG, IB ], Γ[ IB, IV ], IV=Γ[ Qx, Qy], 进行自异或运算。

Step8 合成加密后的图像I

(2) 解密

IP, 就是上面的逆向运算。解密过程不需要加密过程中产生的中间数据。

3 实验仿真

选取大小为246×256的24位真彩图像Lena作为实验对象。利用MATLAB 7编程实现算法。选取密钥σ=10, b=8/3, r=28。初值x0=0.5143978026、y0=0.3246981507、z0=0.7021364589。Lorenz方程迭代次数n≥80000次。从第100个数据以后取数据。

图1是原始的Lena的图像的效果图。图2是只加密R分量的效果图。图3是只加密R、G分量的效果图。图4是加密R、G、B的效果图, 也是最终加密的效果图。

图5为原始图像的灰度直方图。图6为R、G、B加密后的直方图。图7为正确解密后的图像效果图。图8为保持其他参数值不变, y0=0.324698150700001时解密时的效果图。图9为剪切后解密的图像。

4 实验结果分析

4.1 相关性分析

加密的效果之一是尽可能地降低相邻像素的相关性。本文采用式 (5) 计算本文算法中原图像和加密图像的相关系数[7]。

fxy=cov (x, y) D (x) D (y) (5)

其中:cov (x, y) =1Νi=1Ν (xi-E (x) ) (yi-E (y) )

D (x) =1Νi=1Ν (xi-E (x) ) 2E (x) =1Νi=1Νxi

原图与加密图三个分量的相关系数分别为:

fxyR = 0.0016 fxyG=0.0077 fxyB=-0.0008

4.2 置乱度分析

加密图像相对于原图像的扰乱程度, 也是加密效果的一个体现。采用式 (6) 方法来计算加密图像的置乱度[8]:

SΜ (Ρ, X) =i=1mj=1n (xij-x) 2i=1mj=1n (xij-rij) 2 (6)

R={rij}m×n, 是图像P经过标准幻方置乱后的图像。以置乱500次为基准。三个分量的置乱度分别为:

SMR=1.6229 SMG=1.6147 SMB=1.6102

随着幻方置乱次数的增加, 这些数值会呈周期性的变化。

4.3 保密性分析

实验证明, 当初始值y0的误差为10-15也不能正确解密图像, 这完全符合混沌理论的特点:结果对初始值的极端依赖性。这个结论也和已知文献对相关问题的结论相同。相关系数很小, 可有效防御破坏统计攻击。比500次幻方置乱效果好, 唯密文攻击将面临着巨大的工作量。采用双重异或算法, 增加了已知明文攻击或选择明文攻击的难度。直方图与图像是一对多的关系, 比较图5和图6, 本文算法改变了原图像的直方图, 这样通过分析加密图像的直方图来恢复原图像可能性极小。密钥空间很大, 就初始值来说, 就是3个 (0, 1) 的所有实数的空间。

4.4 抗干扰分析

图像的抗干扰主要包括:压缩、噪声、几何变换、剪切等。本算法经过实验, 除了未被剪切部分, 对其他干扰表现不好, 这也是空间域图像加密普遍存在的现象。另外, 本文异或算法对图像的数据没有造成损失。

4.5 其 他

异或运算改变了像素之间的相关性, 这对压缩会有一定的影响。仅从压缩这个角度出发, 本文也对加密后的图像进行了JPEG压缩, 压缩比是4.8, 而原图像的是16.1。

分析文献[5]的算法, 存在边界问题及加密后的图像有方块效应现象。使用本文算法, 没有边界问题和方块效应。

5 结 论

把混沌理论应用到图像的加密, 是一个很有效的手段。本文利用 Lorenz混沌映射, 采用双重异或算法对真彩图像进行了加密, 达到了预期的效果。通过实验及结果的分析, 为图像加密的工程应用方面又提供了一个算法选择。空间域的加密方法以其运算快、效率高不乏在工程应用中使用, 虽然, 这些加密方法有很多改进的地方, 特别是在抗干扰方面, 这也说明空间域加密算法还有很大的研究空间。

摘要:总结图像加密的过程和方法, 系统分析了图像加密中常用的混沌映射。结合24位位图的结构特点, 运用Lorenz混沌序列, 在空间域, 采用双重异或值置换的策略, 完成了对真彩图像的加密, 并全面、客观地分析了所用算法的效果, 为一定层次的工程应用又提供了一种图像加密方法。

关键词:24位位图,真彩,Lorenz混沌序列,双重异或,加密

参考文献

[1]丁玮, 齐东旭.数字图像变换及信息隐藏与伪装技术[J].计算机学报, 1998, 21 (9) :838-843.

[2]孙鑫, 易开祥, 孙优贤.基于混沌系统的图像加密算法[J].计算机辅助设计与图形学学报, 2002, 14 (2) :136-139.

[3]高飞, 李兴华.基于混沌序列的位图像加密研究[J].北京理工大学学报, 2005, 25 (5) :447-450.

[4]邓浩, 华一满, 倪皖荪.混沌伪随机序列和数字语音保密通信[J].通讯学报, 1999, 20 (4) :29-35.

[5]赵怀勋, 王晓然, 郑敏.一种彩色图像的混沌加密算法[J].计算机应用与软件, 2008, 25 (10) :252-254.

[6]王英, 郑德玲, 鞠磊.Lorenz混沌序列的改进[J].数据采集与处理, 2006, 21 (2) :179-183.

[7]Chen Guanrong, Mao Yaobin, Chui Charles K.A symmetric image en-cryption scheme based on 3D chaotic cat maps[J].Chaos, Solitons andFactals, 2004, 2l (3) :749-761.

图像加密方法 篇4

关键词:超混沌系统,二值序列,图像隐藏,图像加密

以Internet为先锋的网络化浪潮席卷全球, 为数字化信息产品提供了快速廉价的传输手段。由于图像信息形象生动, 因而为我们大家所广泛使用, 但同时也带来了安全隐患问题。为了保护数据所有者自身的利益, 同时也基于个人隐私、版权等安全原因, 对于某些图像数据必须要采用可靠的加密技术[1]。混沌系统是一种高度复杂的非线性动力系统, 具有对初始值的高度敏感性, 系统输出的不可预测性及区间的遍历性。这些特征非常适合于信息的安全保密。20世纪60年代人们发现了一种特殊的自然现象———混沌, 并且混沌同步在保密通讯、信号处理和生命科学中有着广泛的应用[2]。与此同时由于, 混沌是一种非线性动力学规律控制的行为, 混沌序列具有原理简单、对初始条件敏感, 以及伪随机性等特点, 可以利用混沌序列来实现对图像的隐藏、加密[3,4]。

本文应用离散混沌动力系统, 针对图像数据的存储特点, 设计了一种图像隐藏加密算法。所有的密钥都由离散混沌映射产生, 因此算法没有因为增加密钥设置而影响加密/解密的效率和速度。由于利用了混沌映射, 增加了破译难度, 提高了安全性, 仿真结果表明该算法能够有效地实现对数字图像数的加密和解密。

1 混沌序列量化

在一般的混沌密码系统中, 最常用的混沌动力系统方程是Logistic虫口模型。该动力系统形式简单易于实现。但是其缺陷是密钥空间太小, 选择了一种新的混沌动力系统模型来实现混沌序列的生成。

在ZengqiangChen等人在文献[5]中, 提到了一个如下的新的混沌动力方程。混沌系统有6个参数, 分别是a, b, c, d, e, k;如方程 (1) 。

该系统中, 选择a=35, c=25, d=5, e=35时, 分别对k和b进行变换得到的Lypunov指数变化影响如下表1、表2。

经过分析可以看出以该混沌动力系统生成加密混沌序列的优点在于:一、其结构较低维混沌系统复杂, 产生的实数值序列更不可预测;二、系统的四个初始值和b, k两个参数都可以作为生成加密混沌序列的种子密钥, 产生的密钥空间大大高于低维混沌系统;三、对系统输出的实值混沌序列进行处理, 可采用单变量或多变量组合的加密混沌序列, 这样序列密码的设计更灵活。因此采用该超混沌系统可产生性能很强的伪随机序列。

在如今的图像加密过程中, 我们往往是针对相应的类似于存储图像灰度值这样的状态矩阵进行处理, 而其矩阵元素数值范围一般在0-256之间。由Shannon定理可知, 安全的密钥要求具有足够的大小和尽可能高的熵值[6]。为了保证信息的安全, 要求所选择的密钥具有足够的长度、高度的随机性、独立性和不可预测性。所以对于生成的混沌序列, 用我们在文献[7]提出的思路将其分区二值化。我们给定参数a=35, b=4.9, c=25, d=5, e=35, k=100, 并在试验中随机选定初值x=10.880 6, y=6.286 7, z=-4.9, u=-51.167 3。采用4阶Runge-Kutta法进行求解, 步长选取为0.01, 迭代n步生成四组混沌序列, 以下分别称四组序列为X, Y, Z, U。

(1) 选择序列X, Z, 其长度分别为n。

(2) 定义函数f将X和Z划分为32个区间, 并且每个区间进行标号分别从0-31。相应区间对应的二进制值为0000-1111。如区间16对应二进制序列1000, 区间7对应二进制序列0111。

(3) 将混沌序列值分别按照 (2) 中划分规则投射到相应区间并生成二值序列XM、ZM, 其长度分别为原混沌序列长度的4倍。

(4) 在同一步内产生的混沌序列经过上述步骤产生的二值序列值按照 (X (i) , Z (i) ) 的顺序分别映射到密钥序列的相应位置, 生成最终的密钥序列, 其序列长度为8n。

2 图像隐藏加密处理

2.1 密钥生成

对于已有序列生成方法, 由固定参数和相应的四个初值带入混沌方程从而得到相应的混沌序列用于生成混沌密钥序列。对此, 我们用如表3的一种16位密码形式生成相应实际运用中的密钥。可以选用0-9为实际运用中的密码。

对于不同密码所产生的二值序列进行比较后, 不同密码产生的二值密钥序列的位变化率达到了49.59%~50.13%, 在这种变化率下不同的密码不可能产生过于相近的密钥影响加密解密的唯一性。选取初始密码为8806286790001673在参数a=35, b=4.9, c=25, d=5, e=35, k=100, 的情况下进行了试验分析。对该密码进行了微小改动得到了错误密码8806286790001672和8806286790001674。

根据 (1) 式迭代n步生成四组混沌序列, 以下分别称四组序列为X, Y, Z, U。

2.2 原始图像的预处理

数字图像由图像像素的灰度值来描述, 对图像进行加密, 就通过对像素位置置乱或灰度值的置换来实现的。为了增强本文所给隐藏加密算法的安全性, 应用混沌序列先对原始图像进行预处理加密, 相应的预处理算法描述如下。

2.2.1 预处理加密算法

对图象信息的加密其基本思想可分为三类::纯位置移动置换;灰度值变换;前两者的组合。灰度值变换算法变换原图像的灰度值, 纯位置移动置换算法置乱原图像像素点的位置, 而它们的组合形式是将原图像像素点的灰度值和位置都变换[8]。在这里我们才用一种基于混沌序列的加密置换算法来完成图象的加密。

利用式1生成超混沌序列并将其中X, Z量化成相应二值序列L1 (M×N×K) , Y, U量化成相应二值序列L2 (M×N×K) 该序列用来产生置乱矩阵。这里提出一种新的魔方置乱算法如下:

设有以深度为1大小为M×N×K的BMP图片。

步骤1利用式 (1) 生成的超混沌序列并将其中X, Z量化成相应二值密钥序列L1 (M×N×K) , Y, U量化成相应二值序列L2 (M×N) 该序列用来产生置乱矩阵。先对原始图像的每个像素做进制变换, 即将十进制像素值转换为相应的K位二进制序列。

步骤2利用已经生成的二值序列L1, 每次取K个不同的值对每个像素的二进制序列异或运算。

步骤3由步骤2得到初始加密序列C={C1, C2, C3, …, CM×N×K}并将其转换格式存储为图片矩阵格式并得到相应的图象数据阵列, 并以一维形式定义为:I={I1, I2, …, IM×N}其中I表示每个象素点的在文件中的地址。

步骤4设当前待处理的位置为Ii, 并建立函数F (x, y) 功能为取x/y的余数, 令h=M×N其中i, j=1, 2, 3, …, h替换规则为:

若L2i=0, L2i+1=0;Ii保持原位不动;

若L2i=0, L2i+1=1;Ii与Ij替换, 其中j=F (i, h/4) +h/4;

若L2i=1, L2i+1=0;Ii与Ij替换, 其中j=F (i, h/4) +h/2;

若L2i=1, L2i+1=1;Ii与Ij替换, 其中j=F (i, h/4) + (3×h/4) 。

步骤5重复步骤4, 运行h/4步完成操作。保存图象信息。

通过对以上置乱矩阵生成算法分析可知, 该算法的时间复杂度是线性的, 并且在置乱每个图像二进制位的同时也相当于置换了图像的每个像素值, 所以具有较高的加密效率。该算法的解密过程与加密过程相似, 只是在步骤4中应该先从最后一位开始恢复。

2.3 图像隐藏加密

在预处理图像的基础上, 从像素的角度考虑, 在待隐藏图像和载体图像对应像素的灰度值之间进行位运算, 实现图像的隐藏。文献[9]提出一种基于多幅图像的机密图像隐藏算法, 把待隐藏图像分散到几幅图像中。这里提出一种新的图像隐藏算法, 利用图像的最低比特位进行图像隐藏。

2.3.1 原理

我们知道, 在现代计算机系统中, 对于图像的保存是基于由其灰度值组成的数字图像矩阵。灰度值范围在0-255 (十进制) 之间, 相应的二进制范围为0-1111 1111。在这种情况下, 我们对于每一个像素点的灰度值进行改动时, 如果对其最后两位进行操作其灰度值改动范围在-3至+3之间。

比如:某像素点原始像素值为128, 对应二进制1000 0000。其最后两位为00。对其改动后, 范围最大改动为11即1000 0011, 转化为十进制为131。

对于人眼来说, 这种范围内的变动几乎无法察觉。所以可以利用这个特点来进行相应的对二进制信息的数字化图像隐藏。

2.3.2 具体步骤

步骤1任意选取一幅大小与待隐藏图像大小相同 (M×N×K) 的载体图像, 获取其深度值, 并将每幅载体图像的数据阵列转换为K位二进制序列;

步骤2将待隐藏图像头文件部分和数据阵列部分分别转换成二进制序列并分别记为T={T1, T2, …, TE}和I={I1, I2, …, IM×N×K}。增加载体图片深度为S并提取其数据阵列并转化为一维二进制序列I。S的大小可由公式 (4.2) 计算得出:

步骤3设目前为第i次运算, 将序列T和I联合序列中的第j和j+1位比特位依次分别与序列I中第k和k+1两位比特位做异或运算;其中j和k的取值由式 (3) 、式 (4) 确定。

步骤4将所得的结果转换为载体图片的数据阵列部分, 恢复图像格式。

这样就完成了对图像的隐藏。具体如图4、图5所示。图4为原始图像, 图5为加入了隐藏数据后的图象, 两者之间的变化, 肉眼几乎无法察觉。

3 实验结果及分析

为了验证以上方法的隐藏效果, 本文采用Matlab7.0平台对其进行仿真实验。

3.1 图像隐藏和恢复效果衡量标准

为了对图像隐藏的效果进行衡量, 利用峰值信噪比 (PSNR) 和均方根误差 (PMSE) 来衡量载体图像和混合图像之间的客观保真度[10,11,12]。设载体图像大小为M×N, 深度为S, 对于载体图像G和混合图像F的峰值信噪比和均方根误差的进行了计算, 如式 (5) 、式 (6) 。

峰值信噪比越大, 说明两个图像的客观保真度越好。均方根误差越小, 说明两个图像越相似, 其基本评价值为31db。

3.2 隐藏加密效果

通过在matlab上的试验我们得到了以下实际效果对比图。图1为原始图像和其乱加密后的图像对比;图2, 图3为用于隐藏预处理图像的载体图像和加入了隐藏数据后的混合图像对比, 两者之间的变化, 肉眼几乎无法察觉;图4为, 正确解密后的预处理和初始图像;图5为错误密码情况下的解密图像。其中5.a为密码为8806286790001672时的解密图象5.b为密码为8806286790001674解密图象而正确密码为8806286790001673。

3.3 效果分析

得出了多组对比数据的PSNR和PMSE的数值并将其汇总后展示在表4中。这其中包括了原始图像与加密后图像的对比, 载体图像和混和图像的对比, 以及解密错误时候图像与原始图像的对比等。

由以上实验和计算结果可知, 无论是载体图像和混合图像, 还是恢复图像与预处理图像, 它们之间的PSNR均大于31dB, 所得RMSE的值也较小。有此可以看出, 在加密置换的加密解密中, 加密图像和原始图像之间的相似度很低而解密后的图像和原始图像相比却十分接近, 这期间的微小差距产生的原因是由于计算机计算精度而带来的。对于载体图像和混和图像来说, 从肉眼上无法分辨其差异, 仅仅能从数据角度看出两者之间存在的变化。同时, 我们还可以看出对密码进行微小的改动将会带来因为密码错误而引起的解密失败, 从而说明了方法整体在实际应用中的安全性。可以说该系列隐藏加密方法的实验结果表明了该方法的可行性。

5 结论及展望

在本章中我们给出的一种基于图像最低比特位和混沌序列的图像隐藏方法。此方法采用由超混沌序列产生的两组二值序列作为加密和置换序列, 在对以BMP图片为例的图像数据阵列中象素点数据加密后再利用另外一组密钥序列对初始加密后的图像文件进行了混沌置换处理。在基于数字图像的加密置换运算后, 再进行了图像的隐藏, 使得加密效果更好, 安全性更高。在图像的隐藏算法的介绍中, 将以多幅图片为基础实现隐藏的方法改进为以一副图片为载体进行隐藏, 提高了加密效率减少了密钥空间。在最后本章还对密码的敏感性进行了实际验证。试验结果表明, 本章给出的图像隐藏加密方法是可行的, 隐藏和加密效果均良好, 安全性较高, 无论是在加密过程还是隐藏过程中, 都是对图像像素的二进制比特位进行操作, 方便实现。同时, 可以将该方法应用到其他类型文件的隐藏加密中, 提高重要的信息资料在传统媒介以及互联网传播中的安全级数, 保障数字化信息的安全。

参考文献

[1] Diffie W, Hellman M.New direction in cryptography.IEEE Trans onInformation Theory, 1976;22 (6) :644—654

[2]姚洪兴, 张学兵, 耿霞.Rucklidge系统的同步及其在保密通讯中的应用.江苏大学学报, 2006; (02) :185—188

[3] Zhang Yonghong, Kang Baosheng, Zhang Xuefeng.Image encryptionalgorithm based on chaotic sequence.The 16th International Confer-ence on Artificial and Reality and Telexistence-workshops (ICAT’06) , Hangzhou, China, 2006:221—223

[4]张贵仓, 王让定, 章毓晋.基于迭代混合的数字图像隐藏技术.计算机学报, 2003;26 (5) :569—574

[5] Chen Zengqiang, Yang Yong, Qi Guoyuan, et al.A novel hyperchaossystem only with one equilibrium.Science Diret Physics Letters A, 2007;360:696—701

[6]冯登国, 裴定一.密码学引论.北京:科学出版社, 1999

[7]姚洪兴, 李萌, 杜贤利.一种基于超混沌的二值序列生成方法.科学技术与工程, 2008; (13) :3508—3512

[8]陈刚, 冯志刚, 陈历红.一种新的图象加密方法, 江苏大学学报, 2004;25 (6) :549—552

[9] Wolfram S.Theory and application of cellular automata.Singapore:World Scientific, 1986:18—59

[10] Chang C C, Hwang R J.Anewscheme to protect confidential image.2004 IEEE Proceeding of the 18th International Conferenceon AINA’04, 2004:158—163

[11] Zhang Jiashu, Tian Lei, Tai Hengming.A new watermarkingmethodbased on chaotic maps.IEEE International Conference onMutimediaand Expo, Taipei, Taiwan, 2004:939—942

图像加密方法 篇5

近年来,图像加密技术成了信息安全领域研究的热点之一,人们也相继提出了许多图像加密的方法[1—8]。文献[1]提出了一种基于像素扰乱的图像加密方法,即对图像的行和列进行置乱,这也是目前用的最广泛的一种图像加密方法;文献[2]利用斜帐篷映射对初值的敏感及其随机性的特点提出了一种高效的图像加密算法,由于其逆变换简单,故易于解码;文献[3]结合数字改良逻辑映射和线性反馈移位寄存器,提出了一种随机性较高安全二进制算术编码,该算法保证了很好的计算开销;文献[4,5]提出了一种新的基于扩散策略的像素间置换的快速图像加密算法,证明了两个像素异或之后,其分布更均匀,从而保证了加密过程的高随机性;文献[6]利用耦合映像格子产生的密钥生成两个简单的扩散序列,设计了一种时间复杂度较低图像加密算法,通过该算法生成的密钥流,其密钥空间大且随机性很高。综上文献所述,图像加密过程中一般会考虑两点:①计算开销是否在可接受的范围之内;②随机性是否满足要求。本文提出了一种新的密钥流的生成方法,结合耦合映像格子和SBox,通过一个对称矩阵变换(SMT)生成SBox系数,然后与初始密钥异或,循环迭代N次,得到一串密钥流,再通过该密钥流分别对原始图像的行、列进行置乱,最后对扰乱后的像素进行列处理,即每一列与等长度的密钥流进行异或,同时为了保证随机性,从第二列开始每一列密文都与前一列的密文异或。

1 密钥流发生器

基于耦合映像格子(CML)提出了一种新的密钥流生成方法,框图如图1所示。CML采用二维动态映射[6]:

式(1)中,ε是耦合映像格子的耦合强度,f是混沌映射函数。f1是下帐篷映射:

式(2)中,x是系统初始状态,x∈(0,1];p是系统的控制参数,p∈(0,1)。f2是逻辑映射:

式(3)中,a是控制参数,a取3.999 73。

生成密钥流的具体流程如下:

(1)给定一组初始值(x0,y0),x0,y0∈(0,1],CML输出(x,y);

(2)用SMT变换将(x,y)的初始区间(0,1)变换到指定的区间,即SMT的输出x',y'∈(0,15],具体变换如下:

(1)令对称矩阵

②取x',y'的下限作为SMT的输出,即floor(x'),floor(y'),将其作为初始密钥流。

(3)分别提取x0,y0的前8位,记为x1_b,y1_b,令c1=floor(x'),d1=floor(y'),则

其中,SBox是一个16×16的二维表,对应有16×16个(0,255)的十进制数,通过下标c1,d1可以找到SBox中对应的数,将其作为SBox的输出;

(4)从第二列开始,xi_b,y1_b,i=2,3,…,n分别是前一个密钥的输出左移3bit、右移3bit得到,则最终密钥流φ(i)=SBox(ci,di)⊕xi_b⊕yi_b。

2 加密与解密

传统的图像加密方案有两种[7—15]:①结合置乱和扩散操作,置乱即对图像的像素进行扰乱处理,扩散是对图像像素值进行改变;②先对图像进行分块,然后对每一块进行编码。本文结合这两种加密方案对图像进行加密,整体加密流程图如图2所示:

2.1 置乱

假设输入为一个大小为M×N的灰度图像,用CML产生的一组密钥流,即(xi,yi),i∈max{M,N},作为循环移位的密钥。对于xi,取i=M,x1,x2,…,xM组成一个一维数组(x1,x2,…,xM),然后对这个一维数组的数值进行E-R处理,即扩值取整,记为Rshift=floor[N(x1,x2,…,,xM)],用Rshitf对该灰度图像的行进行移位,即数组第一个参数控制图像第一行右移的位数,第二个参数控制图像第二行右移的位数,依次类推;同理,对于yi,取i=N,y1,y2,…,yN组成一个一维数组(y1,y2,…,yN),对其数值进行E-R处理,记为Cshift=floor[M(y1,y2,…,yN)],用Cshif对灰度图像的每一列进行下移位。

2.2 扩散和分块编码

经过置乱后的图像还是大小为M×N的图像,对置乱后的图像进行分块处理,即对图像像素进行列处理,如图3所示。令置乱后第i(i=1,2,…,N)列的像素值为Pi(j)(j=1,2,…,M),扩散后的像素值为Ci(j),前一个扩散的像素值为Ci(j-1)。编码过程如下:

Step1:第1列的像素值与密钥流异或,记为

Step2:第2列采用同样的方法编码,即,然后用第1列的密文与第2列进行异或,即

Step3:同理,每一列像素值与密钥流进行异或后再与前一列密文进行异或

2.3 解密过程

是加密过程的逆过程,即先提取密文序列,对每一块密文序列进行编号,从第N列开始每一列与前一列异或;然后恢复加密过程中使用的密钥流,分别与(1)中的每一列异或,异或的结果组成一个M×N的矩阵;最后利用2.1节中的两个一维数组,即Rshift、Cshif,分别对矩阵的列、行进行移位,移位后的结果即为原始图像。

3 实验结果与分析

为了分析该算法的可行性,做了以下实验。输入图像为256×256的Lena灰度图像,密钥系统的初始值选取x0=0.27,y0=0.837 0,p=0.7,a=3.999 73。

3.1 密钥空间分析

一种加密算法密钥空间的大小代表该算法可用于加密的不同密钥的总个数。本文算法密钥系统有四个初始值,x0,y0,p∈(0,1),a∈(3.57,4)。根据IEEE 754标准,64位双精度数的精确度为10-15,则该算法的密钥空间可以大至2197。因此,该密钥空间可以很好地抵抗暴力攻击。

3.2 信源熵

信源熵是用来描述信源符号随机出现程度的指标。信源熵可定义为

式(4)中,P(mi)为信源符号mi出现的概率。对于一副理想的随机图像,其信源熵理论上可以达到8。原图像和加密图像的信息熵如表1所示。

3.3 直方图分析

直方图是反映一幅图像在同一灰度级的像素的分布情况。一个好的加密系统,其加密图的直方图应该呈统一分布,以抵抗外界的数学统计攻击。本文的原图和加密图的直方图如图4所示。直方图显示,加密前的图像的直方图呈不规则变化,而加密后的图像的直方图基本呈统一分布,这说明密文不能为非法用户提供有效信息,从而可以有效地抵抗外界的统计攻击。

3.4 像素相关性分析

对于一幅普通的图像来说,其相邻像素,包括水平、垂直、对角线方向,理论上是高度相关的。加密图像相邻像素的相关性是衡量一个加密系统的一个重要指标,相邻像素相关性越低,其加密效果更好。本文选取了5 000对相邻像素点测试其相邻像素的相关性,原图像和加密图像的相关性如图5所示。像素相关性rxy的计算公式如下:

式中,x、y为图像相邻像素的灰度值。原图和加密图的相关系数如表2所示。

3.5 差分攻击分析

差分攻击是一种选择明文类攻击,为了抵抗这类攻击,则要求输入图像中少数像素点变化会导致密文大量像素的改变。像素个数改变率(NPCR)和统一平均变化强度(UACI)经常用来作为该类特性的分析指标,NPCR值越接近100,UACI值越接近34,其加密效果越好。NPCR和UACI的定义如下:

式中,C1、C2分别为两幅只有一个像素差别的密文图像,C1(r,c)、C2(r,c)分别为C1、C2在点(r,c)处的像素值,size(D)为对应图像的大小。该算法的NPCR和UACI的仿真结果如表3所示.可以看出,本文算法经过一轮加密就基本可以达到较为理想的效果,两轮迭代之后可以保证NPCR>0.996和UA-CI>33.4,而要得到同样的效果,其他两种算法至少要迭代两次以上才能实现。

4 结束语

图像加密算法的发展现状 篇6

随着互联网络的日益开放壮大, 人们在享受信息、资料方便易寻的同时, 也受到了它所带来的不可忽视的问题—信息安全, 尤其以军事, 金融等行业对于信息的安全性要求会很高, 这样图像加密算法受到很多研究人员的关注。目前, 常用的图像加密方法有自适应图像加密, 基于混沌系统的加密算法、盲源分离图像加密方法和常用于银行、电子商务的数字水印算法。本文介绍了几种不是单独运用某一种图像加密算法, 而是把其中某两种的算法结合在一起进行图像加密的算法, 以提高图像加密的效果。

1 图像加密算法现状

图像加密最早源于经典的文本加密理论和经典的密码体制, 它的目的是在于可以把想要加密的图像完全的遮盖住, 以防非法接收者很容易的可以获得其中的信息。而接收方, 通过事先拥有的有关信息或者解密方法可以方便的解密出原有信息。

图像加密算法主要有以下几种:

1.1 基于自适应和混沌理论的图像加密算法

众所周知, 混沌系统是一个非线性动力系统。它对初始情况和系统参数都是很敏感的。它具有白噪声、伪随机序列和间隔遍历性等混沌序列的统计特性, 所以常常被应用于加密算法中。而自适应算法是通过改变图像既有的某些顺序, 把像素根据一些进行排列操作, 形成类似噪声图像以达到加密效果。

基于自适应和混沌理论的图像加密算法是首先运用Logistic混沌映射 (如式1) 系统, 生成2组混沌序列, 其中的一个序列决定的图像每行像素移动的时间, 另一个序列决定列移动时间;通过矩阵移动使得图像置乱得到图像I, 左后图像I通过AES加密标准中的S盒进行图像置乱。这样得到的图片已经完成了三次图像置乱[1]。

然后对图片再进行自适应的处理, 即最上面的一行和其他行异或, 最左面的一列和其他列异或[1]。所以最后得到的图像无论是像素位置还有数值都改变了, 这就达到了加密的效果。

1.2 基于混合混沌和独立分量的加密算法

1.3 基于盲源分离的小波域多重音频水印方法

该算法基于BSS理论, 提出一种小波域的多重音频水印方法, 为了解决当多水印嵌入时所呈现出的顺序问题和确定性;首先, 把两个初始二值数字水印图像做Ar no l d进行置乱然后维数减少, 获得两个一维信号wm1, wm2, 之后将一路等长的混沌序列k1与上面两路混合, 一路作为水印信息w, 另一路作为密k2[3]。其混合过程为:

其中A1为一个秩为2的矩阵。为了保证鲁棒性, A1中的各分量要满足

2 图像加密算法的发展前景

由于自适应算法仅限于图像自身的像素, 所以该算法的加密速度很快, 但是如过仅仅应用这一种算法, 对于非法攻击是很不安全的;而混沌系统所产生的数列几乎类似于伪随机序列, 而且它对初始值非常敏感, 是要稍作修改, 所生成的序列就完全不一样, 这对于图像加密来说如果一次一密的话会变得很安全;近年来, 基于盲源分离的图像加密算法也逐渐成为研究的热门, 它不仅可以同时加密多幅图像, 且它们之间通过混合矩阵还会互相遮盖, 然而在接收端不需要接收者事先对图片信息有过多的了解, 只要通过独立分量的算法就可以恢复出原有的信号;最后, 数字水印的嵌入技术可以与上面三种典型的加密算法相结合, 用于需要做标记的图像中, 以方便识别。所以, 以上的三种加密方式, 都是运用两种加密方法结合的方式, 而不是只运用其中的某一种, 这样既可以使每种加密方法的优点得到充分的应用, 又可以弥补各自的不足, 使得加密的复杂性得以提高, 从而提高了图像传输的可靠性这也是我们今后图像加密的一个发展方向。

3 结语

目前, 我国的加密技术与国外还有一些差距, 新的加密技术也在不断地涌现, 图像加密技术还有很大的发展空间让我们去探究, 我们要找到适用于不同领域的图像加密技术, 在现有的基础理论上吸收国内外经验, 创造出属于我们自己的完整的图像加密体系。

摘要:伴随着优秀科学技术的不断衍生, 数字图像在传输过程中受到的威胁也越来越多。而图像加密是保证其能够安全的发送到接受者的有效方法之一。本文介绍了现今几种先进的图像加密算法, 分析了当前图像加密算法的研究现状及发展趋势。

关键词:图像加密,自适应加密,混合混沌加密,盲源分离加密

参考文献

[1]Zhang Hong-ye, Image Encryption Algorithm based on self-adaptive and Chaos Theory[J], Key Engineering Materials.2011, Vols467~469, 231~235

[2]Wei Ching Chen, Secure Communicationg based on a hybrid of Choas and ICA Encryptions[J], International Journal of Modern Physics B World Scientific Publishing Company, 2008, 8

[3]马晓红, 孙长富, 基于盲源分离的小波域多重音频水印方法[J], 电子信息学报, 2008, 30 (10) :2307~2310

混沌图像加密系统分析与设计 篇7

加密技术是信息安全保护的重要手段之一, 采用混沌加密方法对图像信息进行加密保护是保证信息安全的一种有效措施, 设计了一种混沌图像加密系统, 并对总体功能结构和关键技术进行了总结分析。

1 系统功能结构

混沌图像加密系统主要功能是完成对数字图像的加解密处理, 因此整个系统模块划分如下:

图像密文接收模块:向本系统输入待加解密的数字图像, 可以直接从网络中直接获取, 也可以用打开图像文件的方式获取, 获取后进行一定的预处理。如果获得的数字图像是待加密的明文图像, 则系统调用加密模块进行加密;如果获得的是密文图像, 则调用解密模块进行解密。

图像加密模块:对接收的数字图像进行加密处理, 并判断图像是否要求进行压缩处理, 从而选择不同的加密方式。这是本系统的核心功能部分。

图像解密模块:对接收的数字图像进行解密, 同样可根据不同的图像格式选择是否要求进行解压缩处理。

图像密文发送模块:对加密处理后的图像进行直接存储或者通过网络进行发送。

2 模块功能设计

为了提高软件的通用性和灵活性, 系统采用模块化设计思路。加解密功能部分主要包括以下几个模块:用户界面、数据预处理模块、文件加解密模块、密钥映射模块和混沌密钥生成模块。

(1) 主控模块。此模块用于与用户进行交互, 采用多线程技术将用户界面过程与加密过程分离开来执行, 可实现定时底层工作线程的工作状态和进度的查询功能, 以及向用户报告功能。

(2) 数据预处理模块。数据预处理包括待加密的数字图像数据处理函数 (Image Pro) 和密钥映射函数 (Key Map) 。输入的数字图像存在不同的文件格式和不同的大小, 在进行加密之前通过ImagePro函数对其转换或分割, 以满足加密函数所要求的图像形式。

密钥映射函数设定混沌系统所需的参数和初值, 并进行参数的检查, 以确保这参数的取值在合法的范围内。检验合法后将其转换成混沌系统的参数和初始值, 提供给混沌序列生成模块, 用以生成混沌序列。[1]

(3) 文件加密/解密模块。该模块包括两个动态链接库文件:加密 (Encry File.dll) 和解密 (DencryFile.dll) 文件, 分别提供函数Encrypt F (加密文件函数) 和Dencrypt (解密文件函数) 。通过这两个接口, 向主控模块提供了一定程度的抽象功能。

同时由主控程序定义几个标准的错误代码。在算法中发生错误时。算法可以返回标准错误代码以及自己特定的错误信息码。错误码的格式为DWORDi Error。其中高十六位为标准错误代码, 主控程序可以用HIWORD提取。而低十六位为算法自定义的错误信息码。

(4) 混沌序列生成模块。该模块同样对于主控模块是透明的, 而且它也是混沌序列文件加密/解密模块的通用模块。用户提供密钥后, 经过数据预处理模块的函数Key Map后, 映射出混沌系统所需的参数和初始值, 本模块中把这两者作为入口, 接收到这些值, 作为全局变量保存起来, 经过混沌系统的生成函数Seq Map后产生混沌序列, 因此, 模块的出口返回值是一个序列。为了保证加密的高度安全性, 不会简单使用一般的混沌系统来产生混沌序列, 而是通过一定的安全性分析, 改进现有方法, 并验证安全后才作为图像加密的加密序列。

混沌序列加密方法属于流密码[2], 加密的关键在于加解密时序列的同步, 因此在加、解密二模块中都是调用相同的混沌序列生成模块 (Chaos Seq.dll) 。

3 结论

从系统开发的角度看, 开发混沌图像加密系统的关键在于构造性能良好混沌特性的混沌序列和设计安全、高效的图像加密算法。

参考文献

[1]李昌刚, 韩正之, 张浩然.图像加密技术综述[J].计算机研究与发展, 2002, 10.[1]李昌刚, 韩正之, 张浩然.图像加密技术综述[J].计算机研究与发展, 2002, 10.

上一篇:物质第一下一篇:药品供应保障