邓 敏,王 晶,唐建波,丁 晨,杨学习,刘慧敏,刘宝举
(中南大学地球科学与信息物理学院, 湖南 长沙 410083)
高分辨率遥感影像作为一类重要的基础地理信息数据,具有高度敏感性,在国民经济和国防建设中发挥了重要作用。随着传感器技术和图像处理技术的发展,高分辨率遥感影像的大规模获取、分享和传输更加快捷,使用更加广泛,随之而来的数据安全隐患问题也日益突出[1]。针对遥感影像数据安全问题,国家从法律层面制定并颁发了一系列文件约束不法行为[2],相关学者也从版权保护、数据追责等角度开展了大量的研究工作[3-4],但涉密遥感影像数据泄露、非法窃取和传播等问题仍然严峻。为此,如何从数据本身角度对遥感影像进行加密保护至关重要,也是当前测绘与地理信息服务领域的一个研究热点[4]。
遥感影像数据相比于普通图像数据,具有数据量大、覆盖范围广和纹理特征复杂等特点,传统图像加密方法在应用于遥感影像数据加密时存在计算复杂度高、数据访问慢等问题[5]。针对遥感影像数据加密,国内外学者提出了一些经典方法,主要可以分为:基于压缩的加密方法、基于置乱的加密方法、基于频率域变换的加密方法和混合的加密方法。基于压缩的加密方法首先对遥感影像进行冗余压缩,减少数据量,进而对压缩后的数据进行加密。如文献[6]提出一种基于数据压缩和混沌系统的遥感影像加密方法,该方法在提升网络传输效率的同时保障了遥感影像数据的安全,但是该类方法基于采样后数据进行加密,可能会存在一定的信息丢失。基于置乱的加密方法的主要思想是对遥感影像的空间位置或属性值进行置乱,破坏数据的邻近相关性,形成无序序列。文献[7—8]针对低维混沌系统密钥空间小等问题,改进一维混沌系统产生的随机序列对遥感影像像素进行置乱和扩散加密。文献[9]采用混沌神经元与Tent混沌系统进行遥感影像的多轮置乱和扩散加密。基于频率域变换的加密方法是运用数学变换(如小波变换等)将原始影像从空间域变换到频率域,然后对频率域系数进行加密后再逆变换至空间域以达到影像加密目的[4]。如文献[10]通过小波包变换和自适应分类方法分离出高分辨率遥感影像的主体信息与不同层次的纹理信息,进而对信号分量特征进行置乱加密,再进行小波包逆变换实现遥感影像数据加密。为了进一步提升加密算法的安全性与性能,学者们结合不同加密策略的优势,提出了一些混合的遥感影像加密算法。如文献[11]通过引入混沌系统改进文献[12]中基于AES的图像分组加密方法,将影像序列和混沌系统产生的随机序列分别分组并转换为固定长度的大整数,实现AES的分组加密,是一种对称遥感影像数据加密方法。文献[13—15]针对遥感影像数据采用同一加密方式容易被破解、加密算法安全性不高和效率低的问题,分别提出了基于布尔交叉置乱和半张量积扩散的加密算法、对称加密算法和基于混沌系统和DNA编码的并行遥感图像加密算法。
综上所述,现有遥感影像加密方法大多采用全局加密策略对遥感影像整个区域进行加密,未充分考虑遥感影像纹理特征的区域差异性,即不同区域所蕴含的敏感信息量存在显著差异,导致全局加密方法很难做到“因地适宜”,在安全性和加密效率方面很难进行兼顾。为此,本文结合遥感影像的特征,将区域多级授权思想[16]引入到遥感影像数据加密中,在保证海量遥感影像数据分区域快速加密的同时,根据不同区域的内容或纹理信息差异自适应地选择不同密级的加密算法进行局部区域分级加密,以期在一定程度上兼顾遥感影像数据的安全性和加密效率。
考虑遥感影像纹理特征的区域差异性,本文提出一种基于纹理特征复杂度分级的遥感影像数据分区域多密级加密方法。方法的技术流程如图1所示。
图1 本文方法技术流程
遥感影像纹理特征越复杂,表明其细节信息越丰富,图像所蕴含的信息量越大,则在加密过程中应给予更多保护(如图2所示)。同时,为了提升海量遥感影像数据处理的效率,先对遥感影像进行分块处理,再对纹理特征复杂度不同的子图像块进行分级加密处理。
图2 遥感影像数据纹理特征的区域差异性
设原始遥感影像为I,其大小为M×N,依据设定的分块子图像块大小m×n,将原始遥感影像划分为子图像块集合ImgSet={I1,I2,…,IS},其中S为子图像块的数目。进一步,本文采用信息熵[17]度量子图像块的纹理特征复杂度,公式为
(1)
式中,HIt为子图像块It的信息熵;L为图像灰度等级;pi表示It中像素值为i的概率。对于L=256的遥感影像而言,HIt的取值范围为[0, 8],HIt越大表征子图像块含有的信息量越大,图像的纹理特征也可能相对越复杂。
进而,根据子图像块信息熵进行分级。采用等间距分类方法,将HIt∈[0, 2.67)的子图像块定义为简单类型,HIt∈[2.67, 5.34)的子图像块定义为中等类型,HIt∈[5.34, 8]的子图像块定义为复杂类型。
混沌系统由于其伪随机性、非周期性和初值敏感性等特点,在图像数据加密领域中得到广泛应用[18-21]。混沌系统可分为一维混沌系统和多维混沌系统,一维混沌系统结构简单、速度快,但密钥空间相对较小;多维混沌系统相比于一维混沌系统具有更多的变量和参数,其结构复杂、计算复杂度较高,但密钥空间大、抗攻击性强[21]。基于此,本文采用一维、二维和三维混沌系统生成的随机序列,分别加密简单、中等和复杂子图像块。本文用到的混沌系统如下。
(1)一维Logistic-Tent混沌系统(1D LTS)是将Logistic和Tent映射函数组合生成的一维新混沌系统,表达式[19]为
(2)
式中,μ为系统控制参数,μ∈(0, 4];xk为系统第k次迭代生成的随机变量,xk∈[0, 1];mod为取模运算。其中,μxk(1-xk)为Logistic映射函数,当3.569 945<μ≤4时,系统进入混沌状态。
(2)二维Logistic-Adjusted-Sine Map(2D LASM)是将Logistic和Sine映射函数组合生成的二维新混沌系统,表达式[20]为
(3)
式中,μ∈[0, 1];xk和yk的取值范围均为[0, 1]。当μ∈[0.37, 0.38]∪[0.4, 0.42]∪[0.44, 0.93]∪{1}时,系统具有混沌行为,且当μ∈[0.44, 0.93]时,系统具有超混沌行为。
(3)三维Lorenz混沌系统是一种三维连续混沌系统,结构更加复杂,轨迹更加难以预测,其微分方程表达式[22]为
(4)
式中,x、y、z为系统变量;a、b、c为控制参数。当a=10,b≥28,c=8/3时,系统进入混沌状态。
为保障遥感影像加密的安全性和密钥的敏感性,本文将各子图像块It的像素值之和取余256的值(记为PSt)、遥感影像所有像素值之和取余256的值(记为PSall)以及加密口令(Password)作为参数,采用基于口令的密钥派生算法PBKDF[23]获得派生密钥DK,再通过DK计算It加密所采用的混沌系统的初始参数,即根据参数取值范围从DK中截取一定长度的字节序列,将其转化为数值类型进行参数赋值。
进一步,提取子图像块It的R、G、B分量矩阵ItR、ItG、ItB。对于各分量矩阵,首先进行以下对应类别的加密处理得到分量密文矩阵;然后将各分量密文矩阵合并得到密文子图像块It-c。为了保证混沌系统输出序列的随机性,避免瞬态效应,各混沌系统取迭代K(K>1000)次后的随机数生成随机序列对子图像块进行加密。
(1)简单子图像块加密:以ItR为例,首先,将ItR按列转换为一维图像向量I′tR=[p1p2…pm×n](pi表示第i个像素的R分量的取值);然后,根据PSt、PSall和Password得到1D LTS的初始参数;进而根据式(2)生成随机矩阵X1=[x1x2…x(m×n)];进一步,根据式(5)对X1进行处理得到X1′,并按照式(6)将I′tR与X1′异或得到一维向量I″tR;最后,将I″tR转换为二维R分量密文矩阵ItR-c。公式为
X1′i= ⎣X1i×109」 mod 256
(5)
I″tRi=I′tRi⊕X1′i
(6)
式中,⎣·」表示向下取整,mod表示取模运算,⊕表示矩阵元素异或运算,i=1, 2, …,m×n。
(2)中等子图像块加密:以ItR为例,处理得到I′tR和2D LASM的初始参数;然后,根据式(3)得到两个一维随机矩阵X2=[x1x2…x(m×n)]、Y2=[y1y2…ym×n];进而,将Y2升序排列得到索引矩阵Y2′,并通过式(5)对X2处理得到X2′;进一步,根据式(7)对I′tR进行像素位置置乱和像素值异或得到一维向量I″tR;最后,将I″tR转换为二维R分量密文矩阵ItR-c。公式为
I″tRi=I′tRY2′i⊕X2′i
(7)
(3)复杂子图像块加密:首先处理得到三维Lorenz的初始参数,根据式(4)得到3个m×n的二维随机数矩阵X3、Y3和Z3;然后,对矩阵X3、Y3和Z3分别按列升序排列得到索引矩阵X3′、Y3′和Z3′,采用文献[24]提出的混沌魔术变换方法根据X3′、Y3′和Z3′分别置乱矩阵ItR、ItG、ItB得到I′tR、I′tG、I′tB;进一步,根据式(8)对I′tR、I′tG、I′tB分别进行像素值异或得到分量密文矩阵ItR-c、ItG-c、ItB-c。公式为
ItR-c(i,j)=(⎣X3(i,j)×109」 mod 256)⊕I′tR(i,j)
(8)
式中,i=1, 2, …,m;j=1, 2, …,n。
1.3.1 遥感影像数据加密
步骤1:读取遥感影像I,根据2.1对遥感影像进行分块和分级,计算PSt和PSall,并将各子图像块的类型和像素值信息分别记录在信息矩阵Q和W中。
步骤2:根据Password,采用PBKDF算法生成派生密钥DK,其中盐值Salt根据PSt和PSall利用国密SM3哈希算法计算得到,迭代次数为1024,派生密钥长度设为256,再根据DK得到每个子图像块的初始参数,并选择对应类型的加密方法进行子图像块加密,得到密文子图像块It-c。
步骤3:根据It-c的分块序号t按顺序拼接成整个密文图像I′,并将Q和W分别拼接至I′的最右侧,得到拼接后的密文图像I″。
步骤4:为了增强安全性,进一步采用Logistic映射函数产生的随机矩阵X4对整体密文图像I″进行异或加密,得到最终的密文遥感影像Ic。其中,Logistic映射函数的初始参数根据口令Password和PBKDF生成的派生密钥计算获得,PBKDF算法的参数Salt=SM3(random(128)),其他参数同步骤2。
1.3.2 遥感影像数据解密
步骤1:读取密文遥感影像Ic,利用Logistic产生的随机矩阵X4对矩阵Ic异或得到I′(初始参数的计算同步骤4),分离I′的最右侧两列得到信息矩阵Q、W和新的图像矩阵I″。
步骤2:对I″进行分块,根据Q和W计算每个子图像块的初始参数(同加密步骤2),选择对应类型加密方法的逆过程进行解密得到解密子图像块。
步骤3:根据每个解密后子图像块的分块序号按顺序拼接,得到最终的解密遥感影像I。
采用不同大小的遥感影像进行加解密试验分析(Password=“lasdjfoiwahfkashjfdsadfasd”),结果如图3所示。图2(a)—(d)分别为大小为256×256、512×512、1024×1024和2048×2048像素的原始遥感影像I1、I2、I3和I4;图3(e)—(h)分别为对应的密文遥感影像I1c、I2c、I3c和I4c。从密文遥感影像中可以发现,原始遥感影像加密后是一幅完全随机且无意义的图像,从视觉上无法获取任何有价值的信息,并且本文方法是一种可逆的加密方法,在知道正确用户口令的前提下可以还原出原始遥感影像, 如图3(q)—(t)所示。图3(i)—(l)为原始遥感影像的直方图;图3(m)—(p)为密文遥感影像的直方图。从直方图中可以看出,原始遥感影像的直方图具有明显的聚集统计分布特征,而密文遥感影像的直方图像素值分布呈均匀随机分布,表明本文方法加密后的遥感影像能够很好地隐藏原始数据信息和特征,在一定程度上可以抵御统计攻击。
图3 遥感影像加解密结果与图像直方图对比
为了检验本文方法在加密效率方面的优势,对目前基于混沌系统的遥感影像加密方法进行了对比分析,并分别比较了采用简单的一维Logistic-Tent混沌系统(1D TLS)和复杂的三维Lorenz混沌系统(3D Lorenz)的全局加密方法。不同加密方法的运行时间对比见表1。从表中可以发现,相比于其他几种加密方法,本文方法针对数据量较大的遥感影像数据具有更快的加密效率。当数据量较小时,基于简单混沌系统(1D TLS)的全局加密方法的效率最高;而当数据量较大时,由于本文方法采用了分块分级加密策略,可以有效利用并行处理和分级加密的优势,在加密效率上会比其他全局加密方法表现更优。
表1 遥感影像加密时间比较 ms
密钥空间是指加密过程中所有密钥取值范围之积,为了抵抗暴力攻击,混沌加密方案的密钥空间应该大于2100[25]。本文密钥主要包含如下参数:①变量PSt、PSall、Password、DK;②初始参数x0、y0、z0、μ、b,K(a=10,c=8/3)。假设计算机的浮点数精度为10-14,则混沌系统初始参数最小空间为1042,而1042远大于2100,若再加上其他参数的范围,则密钥空间将更大,因此,本文方法的密钥空间满足安全要求,能够抵抗穷举攻击。
差分攻击是一种选择明文攻击,由于遥感影像加密算法大多是采取相同的密钥加密,因此,首先攻击者可对原始遥感影像进行细微的改变获得多幅遥感影像,通过追踪每幅遥感影像的微小变化对密文遥感影像的影响,尝试找到明文和密文之间的联系,然后利用建立的联系使得攻击者在不需要知道密钥的情况下就可以解密密文图像。抗差分攻击的能力可以利用像素变化率(NPCR)和统一平均变化强度(UACI)进行评价。假设P1、P2表示两幅具有细微差别的原始遥感影像,C1、C2分别表示P1、P2加密后的遥感影像,则NPCR表示C1、C2之间像素点变化的比例,UACI表示C1、C2之间像素值的平均变化率,这两个指标的定义为
(9)
(10)
(11)
式中,M、N分别为遥感影像的宽和高;H=M×N;g为遥感影像P1和P2中所有像素值的最大值。
根据文献[26]中提出的NPCR和UACI标准检测方法,从表2可以看出本文方法加密具有较高的防御差分攻击的能力,很好地实现了对原始遥感影像数据的信息隐藏和安全保护。
表2 不同大小遥感影像的NPCR/UACI结果 (%)
针对现有图像加密方法对遥感影像加密时存在的计算复杂度高、适用性弱的问题,本文提出了一种顾及纹理特征复杂度的遥感影像分区域多密级加密方法,可以根据遥感影像覆盖区域内的纹理特征或内容,自适应地选择不同加密算法进行加密。试验结果表明,本文方法具有很好的信息隐藏效果,同时具有较高的加密效率,在海量遥感影像数据加密和安全传输应用领域具有重要的潜在应用价值。进一步工作将考虑引入机器学习方法对遥感影像子图像块进行分级和分类,发展基于内容或高阶语义的遥感影像数据加密方法,实现对遥感影像更准确、更安全的数据加密保护。