基于信道编码和Henon映射的图像加密方法就是利用Henon映射对图像像素值扩散、像素位置置乱以及将像素值扩散和像素位置置乱相结合等方式实现对图像的加密,可以达到较好的加密效果。然后将加密图像经纠错编码使其具有纠错能力,如利用低密度奇偶校验码的优良性能,对隐藏信息和数字水印进行保护,实现了无差错传输。但是这种分两步操作方法,增加了系统的复杂性和延时,因而将两步结合而同时实现加密和纠错会使效率更高。
一、加密算法描述
1、位平面分解
数字图像的灰度值可以用8位比特序列表示,若将各像素值的第i个位取出来,得到一幅称为位平面的二值图像。高位位平面代表图像轮廓信息,集中了图像大部分信息,对像素值的影响较大,中间位位平面代表图像的背景信息,低位位平面代表图像的细节信息。
将一幅MXN的灰度图像从高位到低位依次分解为8个MXN的二值位平面,用于编码加密。
2、LDPC编码加密
LDPC码由Gallager博士于1962年提出,是一种性能接近Shannon限的好码,与Turbo码相比,编译码方法更简单。
LDPC码是线性分组纠错码,可以由检验矩阵H唯一定义。由于:
所以构造校验矩阵日是编码的关键,LDPC码的校验矩阵H是一个几乎都是由O组成的,称为稀疏矩阵。Gallager定义的(n,j,k)LDPC码是码长为n,列重为j,行重为k的码字,在有限域GF(2)中,每个校验式均为二元异或运算。
(1)LDPC编码加密原理
将大小为M×N的高两位二值位平面沿行方向拼接成2M×N的二值矩阵K。
构造大小为N×2N的LDPC码的校验矩阵H并消去短环,然后对H通过高斯消元转换为:
从而得到生成矩阵:
针对2M×N大小的矩阵K,其LDPC编码为:
K的每一行为一组信息节点,Q的大小为2M×2N,其每—行为K对应行的LDPC码系统编码,根据高斯消元的变换顺序对Cx进行逆排序,变成非系统码。
将CK分解为4个MXN的二值矩阵,与原图像其他6个位平面进行重构,得到10比特灰度图像。
(2)LDPC译码原理
采用和积迭代译码算法,按照如下译码步骤对CK每一行进行译码。
Step1初始化:对信息比特的先验概率赋初值并设置迭代次数。
Step2水平迭代:按置信传播算法由信息节点的先验概率计算校验节点的后验概率。
Step3垂直迭代:由校验节点的后验概率计算出信息节点的后验概率。
Step4对信息节点的后验概率进行硬判决,得到译码结果仑,如果c×Ht=0,则译码结束。否则跳至Step2,重复迭代,直到满足条件或达到最大迭代次数,得出最终译码结果K。
3、Henon映射加密
Henon映射在非线性动力学系统中出现的确定性、伪随机的过程,这种过程对初始条件的高度敏感性和高度随机性,符合Kerck-hoffs准则等特性,具有良好的密码学特性。
Henon映射是二次方型非线性的二维映射,定义为:
为了适合本文预处理图像的特点,在算法中使用改进的Henon映射,具体形式为:
其中参数a,b满足1.1≤a≤1.5, 0.2≤b≤0.4,并与初值x0和y0构成密钥。
设定初值xo和y0,为了提高算法对明文的敏感度,计算经LDPC编码后的图像矩阵的偏差,除以1024后作为内部密钥屉,并将其与Henon映射初值相加对初值进行修正。根据改进的henon映射迭代M×N次得到x1和y1,然后以劫和M作为初值生成长度为M×N的混沌序列xn和yn.从xn和yn中任选长度为M和N的序列分别进行排序,根据排序值生成行/列置乱矩阵,用于图像像素位置置乱。令:
并将其转换为M×N的矩阵形式,与经过预处理的像素值按位异或进行扩散加密。
二、加密和解密步骤
1、加密步骤
(1)将输人图像进行位平面分割得到8个M×N的二值位平面。
(2)对高两位位平面进行LDPC码编码,得到4个M×N的二值矩阵。
(3)进行位平面重构,得到10比特灰度图像。
(4)计算图像标准差对Henon映射初值进行修正,然后利用Henon映射进行置乱和扩散加密。
(5)分离出高两位位平面作为内部密钥输出,剩余8位位平面构成的密文图像输出。
2、解密步骤
(1)将内部密钥和密文图像经过位平面重构,得到10比特图像。
(2)利用Henon映射得到的扩散矩阵和置乱矩阵分别进行解密。
(3)利用解密后图像的高4位位平面,通过LDPC译码得到2个解码后的位平面。
(4)将解码得到的2个位平面与其他6个位平面重构得到解密图像。
三、仿真实验
以256×256像素的Cameraman和Cell图像为例,如图1(a)和(d)所示,取初值:
对其进行加密,得到密文图像分别如图1(b)和(e)所示,密文图像完全掩盖了原图像信息,达到了加密的目的;解密图像分别如图l(c)和(f)所示,说明选取正确的密钥,本算法可以不失真的恢复原图像。
四、加密效果分析
1、直方图分析
以Cameraman和Cell图像为例,原图像直方图分别如图1(a)和(d)所示,密文图像直方图分别如图l(b)和(e)所示,正确解密图像直方图分别如图l(c)和(f)所示。
对比可知,密文图像直方图与明文图像直方图完全不同,不带有明文图像的统计信息,且密文图像直方图分布均匀,说明每个像素的扩散到整幅图中,从而能够有效抵抗统计分析攻击。
2、抗剪切和抗噪声攻击分析
为了测试该算法的抗剪切攻击和抗噪声攻击能力,验证传输中的可靠性和抗主动攻击性,对Cam-eraman图像的加密图像(图1(b))进行不同情况的剪切和增加不同的噪声,模拟主动攻击测试。
(1)剪切攻击
对密文图像进行不同情况剪切,如图2(a)(b)(c)所示,对应的解密I到像如图2(d)(e)(f)所示。
(2)噪声攻击
对密文图像增加2%和20%的椒盐噪声,对应的解密图像如图3(a)和(b)所示。
由实验结果得出,该加密算法具有良好的抗剪切和噪声的能力,可稚性较高。
3、密钥敏感性测试
以Cameraman图像为例,选取3组错误密钥进行解密测试密钥的敏感性,图4(a)为使用错误初值:
xo =0.0999999,y0=0. 2000001
其他密钥正确的解密图像;图4(b)为使用错误控制参数:
a=1. 399999g,b=0. 3140001
其他密钥正确的解密图像;图4(c)为使用错误校验矩阵H,对密钥矩阵解密错误,其他密钥均正确的解密图像。
由解密实验结果分析可知,任何一个密钥有微小的改变(百万分之一),都不能正确解密。只有加、解密密钥完全相同的情况下,才能正确解密,因此该算法对密钥敏感。
4、密钥空间分析
为了防止穷举攻击,需要设计尽可能大的密钥空间,本算法中,Henon映射的初值(xo,yo)和控制参数(a,b)的精度为10-16,其密钥空间为10-16,而对于N×2N的校验矩阵或生成矩阵,如果穷举攻击,其密钥空间为2N×2N,这对于常见图像而言是非常困难的,从而该算法可以有效地抵抗穷举攻击。
5、相邻像素间相关性分析
相邻像素的相关性取值越小,说明图像相邻像素灰度值关联程度越低,图像越混乱,所以应该让加密后图像相邻像素的相关性系数尽可能地小。为验证原图像和加密图像桐邻像素的相关性,在图像中随机选取了2000个像素对,分别测试其水平方向、垂直方向和对角方向的像素相关性,应用公式:
进行相关系数的计算,其中:
以Cameraman图像为例,计算原图像、密文图像各方向相关系数如表1所示。
由表1可知,加密后图像的栩邻像素问相关性显落减少。
图5所示为对角方向原始图像和加密后图像相邻像素的相关关系。可见,原始图像像素间的相关性呈现明显的线性结构,而加密图像像素间的相关性呈现随机的对应关系,说明本算法具有较强的抗统计分析能力。
6、抵抗差分攻击能力
为了抵抗差分攻击,希望当明文有很小的变化时,密文则发生一半以上的变化。一般通过计算改变一个像素后,相应的密文像素变化率NPCR和平均变化密度UACI来衡量。
令C1(i,j)和C2(i,j)表示两个密文图像在像素点(i,j)的像素值,且C1和C2所对应的明文仅在一个像素有微小差异。若记:
则NPCR和UACI可定义为:
随机将一个像素的灰度值改变1阶,如将Cameraman图像像素点(128,127)的值由13改为12,计算可得NPCR=99. 62%, UACI=33. 34%,说明有99. 62%的密文像素受影响,平均像素值改变33. 45%;将Cell图像像素点(96,69)的值由101改为102,计算得NPCR=99. 60%, UACl=33. 4896,说明有99. 60%的密文像素受影响,平均像素值改变33. 48%。
由此可见,该加密算法对明文敏感,抵抗差分攻击能力比较高。
目前,基于LDPC码的加密算法研究主要集中在对数字水印的保护方面,本文采用LDPC码和Henon映射相结合的加密方法对图像进行复合文件加密,同时解决了图像传输的安全性和鲁棒性问题。
针对数字图像信息主要集中在高位位平面的特点,利用LDPC码对高位位平面数据进行编码加密,实现了高位位平面数据传输的高可靠性,同时由于截取者不知道密文和密钥内部的分离传输关系,不能准确得到内部密钥的编码,并且不知道加密者所采用的LDPC码生成矩阵G和校验矩阵日,因而不能解密得到K,从而不能正确解密。实验结果表明,该方法中明文、密文、密钥之间具有高度的非线性关系,密文对明文高度敏感,明文微小的变化将影响整幅密文图像,能够很好地抵抗差分攻击,且具有较强的抗干扰能力和抗剪切、篡改等攻击能力。
小知识之信道编码
为了与信道的统计特性相匹配,并区分通路和提高通信的可靠性,而在信源编码的基础上,按一定规律加入一些新的监督码元,以实现纠错的编码。