为实现图像的纠错码加密,解决图像传输中安全和可靠性问题,提出一种基于LDPC码的Rao-Nam体制的图像文件加密方法。

一、加密算法描述

1、LDPC码

LDPC码是线性分组纠错码,它的校验矩阵H是“稀疏”矩阵。一个二元(n,k)LDPC码C是通过(n-k)*n的奇偶校验矩阵H来定义的。

其中n为码长,k为信息位个数,n-k为校验位个数,码率R=k/n。

码长为n的二元LDPC码的校验矩阵H可以表示为(n,q,p)须满足:

1)矩阵每行非零元素个数为p;

2)矩阵每列非零元素个数为q;

3)矩阵的任意两行(或两列)重叠非零元素的个数不超过1;

4)非零元素的位置按行(或列)随机排列,且分布稀疏,即p和q相比行、列数很小。

2、混沌系统

混沌现象是在非线性动力学系统中出现的确定性、伪随机的过程,这种过程对初始条件的高度敏感性和高度随机性,符合Kerck-hoffs准则等特性,具有良好的密码学特性。

(1)Henon映射

Henon映射是二次方型非线性的二维混沌映射,其中参数a,b满足

1.1≤a≤1.5, 0.2≤b≤0.4,

与初值O<xo<l,O<Yo<l构成密钥。

(2)Logistic映射

Logistic映射是一种简单而广泛应用的一维混沌映射,其中3. 5699≤μ≤4,O< zN< 1构成密钥。

3、RatrNam私钥加密体制

设c为二进制[n,k]线性码,G为生成矩阵,S为k×k阶满秩矩阵,P为n×n阶置换矩阵。

设明文m为CF(2)上kbit向量,私钥为G、S、P,则加密变换为:

c=(mSG+z)P,

其中,z为从伴随式错误表中随机选取的错误图样。

解密变换为:

(1)乘P-1:

cp-l =mSG+z;

(2)译码:得到mS,z;

(3)乘s-1,得到m。

二、图像纠错加密方案

1、位平面分解

对于一幅数字图像,可以分解为多个二进制位平面,不同的位平面代表图像不同的信息,高位位平面代表图像轮廓信息,低位代表图像细节信息,中间位代表图像背景信息,对于不同位平面的处理相当于对图像不同信息位置的处理。将一幅JVXN的灰度图像A从高位到低位依次分解为8个MXN的二值位平面,并沿行方向拼接成8MX8N的二值矩阵B。

2、LDPC码设计

构造(N,q,p)的二元LDPC码校验矩阵上H,一般情况下,校验矩阵是随机构造的,因此是非系统化的,在编码时,将校验矩阵H进行高斯消元,则生成矩阵,其中J为单位矩阵,H和G的大小为N×2N。

3、置换矩阵S、P和错误图样E的设计

设定Henon映射初值x0,y0参数a,b根据式(1)迭代M×N次得到x1,y1,然后代入x1和y1作为初值生成长度为MXN的混沌序列Xn和yn,从Xn和yn中任选长度为8×M和2×N的序列分别进行排序,根据排序值生成行/列置乱矩阵S和p,只需将原图像的像素点移至置换矩阵对应位置所表示的新位置处,即达到置乱目的。

设定初值z0,根据式(2)迭代MXN次得到z1,然后代入z1作为初值生成长度为8MX 2N的混沌序列zn,将zn:定义在(0,1)上得到伪随机序列,对其进行非线性离散化得到0、1序列{Ek:k=l,2,…}:

当k=1时,Z1与0.5比较,当小于0.5时,E1=O,否则Ei =l;当k>l时,zk与Zk-l比较,小于Zk-l时,Ek=0,否则E=1。将B转换为8M×2N的二维矩阵生成错误图样E。

4、加密

私钥:S,P,E(由混沌系统控制),G;

加密运算:C为大小8M×2N的二值矩阵,经位平面重构生成M×2N的密文图像。

5、解密

当接收者收到密文图像C后,按照如下步骤计算得到明文图像。

(l)将密文图像经位平面分解得到8M×2N的二值矩阵CT;

(2)根据已知的密钥参数计算得到S,P,E,H;

(3)逆置换:

(4)LDPC码译码得到B+E,减去错误向量即得到B;

(5)将B位平面重构得到解密图像。

三、仿真实验

该算法加密图像大小为原始图像大小的一倍,如果原始图像的大小为M×N,则密文图像的大小为M×2N。

以256×256像素的Lena和Couple图像取初值,及列重为3的校验矩阵H对其进行加密,得到密文图像。密文图像大小为256×512,且完全掩盖了原图像信息,达到了加密的目的。解密结果显示,选取正确的密钥,本算法可以不失真的恢复原图像。

四、实验结果分析

1、统计分析

(1)直方图分析

以Lena和Couple图像为例,如图1原图像和密文图像直方图所示,对比可知,密文图像直方图分布均匀,统计规律与明文完全不同,不带有明文图像的统计信息,从而非法截取者无法过直方图统计分析解密出明文。

(2)相邻像素间相关性分析

图像相邻像素灰度值相关性越小,图像越混乱,所以加密后图像相邻像素间的相关系数应尽可能地小。为验证原图像和加密图像相邻像素的相关性,在图像中随机选取了4000对像素对,分别测试其水平方向、垂直方向和对角方向的像素相关性,应用公式:

进行相关系数的计算,以Lena图像为例,计算原图像、密文图像各方向相关系数,可见加密后图像的相邻像素间相关性显著减少。

对角方向原图像和加密后图像相邻像素的相关关系。可见,经过加密使得像素间的相关性呈现随机的对应关系,说明本算法具有较强的抗统计分析能力。

2、密钥分析

(1)密钥空间分析

本算法通过混沌系统控制Rao-Nam私钥的生成,以混沌系统参数和初值作为外部密钥,混沌映射的初值(xo,yo,zo)和控制参数(a,b,μ)的精度为10-16,其密钥空间为1096,N×2N的校验矩阵有9NX 2N种可能分布,因此该算法密钥空间足够大,可以有效地抵抗穷举攻击。

(2)密钥敏感性分析

针对实验中Lena图像的加密结果,分别选取4组错误密钥进行解密测试,以验证算法对密钥的敏感性。图3(a)为使用:

zo=0.1000001,yo =0.1999999

而其他密钥正确时的解密图像;图3(b)为使用:

zo=0.1000001,a=1.3999999

而其他密钥正确时的解密图像;图3(c)为使用:

b=0.=3140001,p=3.9979999

而其他密钥正确时的解密图像;图3(d)为使用H而其他密钥正确时的解密图像。

由解密实验结果分析可知,任何一个密钥有微小的改变(百万分之一),很难获得正确解密。只有加、解密密钥完全相同,才能正确解密,这说明本算法对密钥具有很强的敏感性。

3、明文敏感性分析

为有效抵抗差分攻击,要求密文对明文高度敏感。一般通过明文微小变化后,密文像素变化率NPCR和平均变化密度UACI来衡量。

令C1(i,j)和C2(i,j)表示两个密文图像在像素点(i,j)的像素值,且Cl和C2所对应的明文仅在一个像素有微小差异。若记:

则NPCR和UACI的定义如下,随机将一个像素的灰度值改变1阶,如将Lena图像像素点(123,231)的值减1,计算可得:

NPCR=99. 6246%,UACI= 33. 5184%

说明有99.6284%的密文像素改变,平均像素值改变33.5184%;将Couple图像像素点(114,225)的值加1,计算得:

NPCR=99.6101%,UACI= 33.54670r4

说明有99. 6101%的密文像素改变,平均像素值改变33. 5467%,说明该算法对明文敏感,抵抗差分攻击能力比较高。

4、对信道的抗干扰能力分析

将Lena的密文图像采用BPSK调制,经信噪比分另0为0. 5dB、ldB、2dB、3dB、5dB、7dB、9dB和lOdB的AWGN信道传输,解密后图像如图4所示。对应的误码率(BER)分别为7.114×lo-l,6. 325×l0-2,4.866×10-2,3.471×10-3,1.896×10-3,2.971×10-4,3.757×l0-5和O,说明该算法在信道信噪比0. 5dB时可以恢复出原图像主要信息,大于3dB时可以清楚的恢复图像,大于lOdB时可以准确无误的恢复原始图像。

5、抗主动攻击分析

密文在传输过程中可能会遭到攻击者擦除、修改或增加噪声对密文进行损坏,为了测试该算法的抗主动攻击能力,对Lena图像的加密图像(图1(b))随机擦除l/8、1/4、1/2、3/4,或对其加入5%、15%、25%、5o%的椒盐噪声,其解密结果如图5所示。实验结果表明,即使密文图像被擦除掉5o%以下的内容,或者加上强度5o%以下的椒盐噪声,该算法仍然能直接或通过后处理较好的恢复出原图像,因此说明该算法具有一定的抗主动攻击能力。

小知识之LDPC码

LDPC码是麻省理工学院Robert Gallager于1962年在博士论文中提出的一种具有稀疏校验矩阵的分组纠错码。几乎适用于所有的信道,因此成为编码界近年来的研究热点。它的性能逼近香农限,且描述和实现简单,易于进行理论分析和研究,译码简单且可实行并行操作,适合硬件实现。