时军事图像文件加密是确保军事图像安全常用的方法,但加密算法中的长密钥存在记忆困难、不易保管等问题。针对以上问题,我们提出一种基于虹膜特征密钥与AES结合的军事图像加密算法。该加密算法在虹膜图像预处理基础上,应用2D Haar小波对虹膜有效区域进行三层分解,提取第三层细节系数并编码生成375位的虹膜特征码;从虹膜特征码中随机选取128位密钥,采用AES加密算法对军事信息进行加密。
一、虹膜特征密钥生成
1、虹膜图像预处理
虹膜预处理包括图像采集、虹膜定位、归一化步骤,其目的是提取有效虹膜区域供特征提取之用。采集的原始虹膜图像除虹膜外,还包括瞳孔、眼睑和睫毛,所以需要虹膜定位提取虹膜环状纹理,并且去除睫毛、眼睑和光斑等干扰。为克服瞳孑L缩放、虹膜旋转等因素引起的差异,便于比对,将虹膜图像归一化为固定大小的矩形图像。图1示意了虹膜预处理过程。虹膜定位采用的基于行列扫描的快速定位算法,睫毛、眼睑和光斑干扰检测采用的加密算法,归一化采用了“橡皮板”模型。
2、虹膜特征提取及密钥生成
对图2(a)虹膜归一化图像分析,R1区域受上眼睑和睫毛干扰较严重,R2区域受下眼睑干扰,且虹膜纹理主要集中在靠近瞳孔的区域,所以选择归一化图像的右上部R3区域为特征提取区域,归一化图像分辨率取100×400。R3区域大小一般不小于归一化图像大小的1/6,这里取40×2000现有大多文献采用Gabor/Jx波提取虹膜特征,为了提高编码效率,本文采用2D Haar小波提取特征,同时Haar小波具有正交性、紧致性及广义线性相位clqfit点。对R3区域利用图2(b)所示2D Haar小波进行三级分解,得到低频系数LL3,水平高频系数LH={LH1,LH2,LH3}、垂直高频系数HL={HL1,HL2,HL3}和对角高频系数HH={HH1,HH2,HH3},如图2(c)所示。
虹膜纹理信息主要集中在高频段系数上,如果把第一或第二层的高频系数作为特征,将导致特征空间过大,会影响编码效率和识别速度,经过大容量样本实验,发现提取第三层的高频系数LH3,HL3和HH3作为特征较合适,每个高频系数大小为(40×200)/(23×23)=125,三个方向的高频分量大小共为125×3=3750对这375个小波系数分析,有正有负,而小波系数表示小波与分解信号的相似程度,正小波系数与负小波系数描述的相似程度截然不同II啦,故利用该性质对375个特征系数进行二进制编码。设C={LH3,HL3,HH3)为虹膜特征空间,特征空间元素C(i)的编码规则为:
通过以上编码方式,共形成375bits的虹膜特征码,如图3所示,与Daugman的2048bits虹膜特征码相比,特征空间比较紧凑,节省了存储空间。
对375bit虹膜特征码进行编码生成128bit,充当AES加密算法的密钥。
三、AES对图像及文本文件的加密和解密
1.AES加密和解密过程
AES加密算法是一种明文分组长度和密钥长度均可变的分组加密算法,同时也是对称加密算法,其加密和解密使用的密钥相同。其分组长度和密钥长度都分别可为128位、192位或256位。令Nb等于明文分组长度的字数(1字-4字节=32位),Nk为密钥长度的字数,则加密轮数Nr与Nh和Nk的关系如表1所示。
AES加密算法加、解密过程如图4所示。Addroun-dkey为密钥加操作,SubBytes为字节替换操作,ShiftRows为行移位操作,MixColumns为列混淆操作,解密过程中Inv为相应的逆操作。
2、AES对图像文件的加密
彩色图像最常用的是RGB模型,可以看成是由三幅灰度图像叠加形成的,当将其输送到彩色监视器的红、绿、蓝输入端时,便产生了一幅彩色图像,所以对灰度图像文件加密方法也适用于彩色图像。
设一幅灰度数字图像可用矩阵f(i,j)表示,图1象的大小为MxN,其中0≤i≤M -1,0≤j≤N-1。 f(i,j)表示图像在第i行第j列处像素的灰度值,共有2的8次方=256个灰度等级,取值范围是[o-255]。由于AES加密算法中的明文输入是以字节为元素的16字节矩阵,矩阵元素的取值范围也是[o-255],这与灰度图像像素的灰度值范围一致。因此,本文将AES加密算法中的密钥异或、字节代换、行移位和列混淆应用到数字图像文件加密中,主要包括三部分内容:
(1)利用密钥异或实现图像像察变换;
(2)利用字节代换来完成图像像素的替代,起到混乱的作用;
(3)采用行移位和列混淆来完成图像像素的置换,起到混乱之上的高度扩散。
四、实验结果与分析
利用所提取的128位二进制位充当AES密钥对导弹图像文件加密,明文分组为128位(16字节),对于图像就是以16像素为加密分组,实验平台为Matlabo实验结果如图5所示。图像大小为450×240。加密时间约为11.6秒,图像共分成(450×240)/16=6750分组,平均每组加密时间为1.72毫秒。
小知识之虹膜
虹膜属于眼球中层,位于血管膜的最前部,在睫状体前方,有自动调节瞳孔的大小,调节进入眼内光线多少的作用。位于血管膜的最前部,虹膜中央有瞳孔。在马、牛瞳孔的边缘上有虹膜粒。