基于猫映射的图像灰度值加密

2021-04-20 14:07李珊珊张红丽
计算机应用 2021年4期
关键词:明文密文像素点

李珊珊,赵 莉,张红丽

(长安大学信息工程学院,西安 710064)

0 引言

智能手机和移动互联网的发展,使得图像信息的获取与发布日益便捷,图像内容的安全性也受到越来越多的关注。包含有私人、商业、军事或医用信息的图像内容需要保密,而当这些图像通过公共信道传播时,易被恶意第三方获取,造成隐私内容泄漏,危害信息安全。图像加密通过方法隐藏视觉信息,保护数据安全,使无权限者无法得到图像的内容,而有权限者通过解密能得到图像的具体内容和全部细节,是保护图像安全和隐私最常用的途径。

从20世纪90年代起,图像加密就吸引了图像处理和信息安全领域研究者的兴趣。随着多媒体和互联网技术的发展,近年来,国内外许多研究团队利用不同工具探索各种图像加密方法。一幅有意义的图像,其邻近像素点间具有很强的相关性。图像加密一般采取破坏这种相关性的原则,将原本内容有意义的明文信号加密后转换为无意义的类噪声信号。常用的方法可分为空域加密和变换域系数加密两种类别,其中空域加密又可以分为像素值变换和像素位置扰乱两种处理方式。

像素值变换将每个像素点的取值作为明文进行加密,邻近像素的密文差异变大,从而消除明文间的相关性,使原本有意义的信号失去意义。像素值变换过程可以逐像素点进行,也可以先分块再对每个区块进行。像素位置扰乱打乱像素排列的顺序,使原本邻近的像素变得不再相邻,从而失去明文像素间的相关性[1]。变换域加密选用明文的变换域系数为加密对象。变换域个别系数的加密在时域会引起几乎每个像素值的变化,破坏原有的相关性。常用的变换域有离散小波变换域、离散傅里叶变换域、离散余弦函数变换域,以及分数维傅里叶变换域等[2]。

在以上三种传统图像加密方法的基础上,为了扩大密钥空间,提高密文的混乱程度,混沌序列被引入产生密钥序列。

混沌系统具有初始状态敏感性、拓扑混合性和周期轨道稠密性。初值敏感性是指系统的状态完全取决于初始值的选取,初始条件非常微小的变动也会导致状态的巨大差别。对于加密方法来说,混沌系统的初值敏感性能够有效地提高整个加密方法的安全性,初始值较大的取值范围能够提供足够大的密钥空间。

基于混沌序列的图像加密,可以利用混沌映射的类随机性,通过计算机迭代产生混沌序列,处理后对图像进行加密操作。常用的混沌映射有logistic 映射、Baker 映射、standard 映射、circle 映射等[3-4]。其他系统例如神经网络、脱氧核糖核酸(DeoxyriboNucleic Acid,DNA)[5]和物理混沌电路也具有混沌特性,因此也能够用于图像加密。

根据香农理论,强加密方法都是基于混淆(confusion)和扩散(diffusion)两种本原操作[6],前者是使密钥和密文之间的关系尽可能模糊的加密操作,常用方法是替换;后者是将一个明文符号的影响扩散到多个密文的加密操作。仅仅执行混淆的密码是不安全的,两者结合才能构建强壮的加密方案。

本文提出一种新的空间域图像加密方法,利用混沌序列对混淆图像像素值和像素点位置,通过双向扩散操作提高方法的安全性能:一个混沌序列用于产生广义猫映射的控制系数,再利用广义猫映射同时加密两个像素点的值;另一个混沌序列用于置乱图像像素点位置。这种加密方法易于实现,密钥空间大,安全性能好。

1 猫映射

猫映射最早是由俄国数学家Vladimir 提出的一个离散混沌模型,因为经常使用一张猫脸演示而得名。这种映射拥有简洁直观的混沌性能。猫映射能够扰乱图像像素位置,使整幅图像混乱化。然而,在经过足够多的迭代之后,原始图像将会被恢复[7]。最经典的猫映射工作于大小为N×N的图像平面,在该图像平面中的每个点唯一地被变换为另一个点。其方程为:

其中:(xn+1,yn+1)为映射后的像素点坐标;(xn,yn)为映射之前的像素点坐标。

猫映射可以被推广为最一般的二维可逆保面积映射:

其中a、b、c、d为映射系数,为正整数,并且满足关系:

将图像数据作为初始值利用广义猫映射进行迭代加密时,需要先指定三个独立映射参数。任意三个整数并不一定能够满足限制条件式(3),因此常用文献[8]提出的方法,依次令a=1,b=1,c=1,d=1,相应地产生4 个映射系数矩阵,每个取法所在公式包含两个独立参数,这种方法易于程序处理:

由于猫映射的保面积性,因此图像加密通常采用猫映射来置乱像素点位置。大多数利用猫映射的图像加密方案都基于这个原则。猫映射可以被扩展到三维,再结合随机扫描来置乱像素点位置[9]。文献[10]利用广义猫映射结合灰度扩散对像素块进行二维空间变换;而文献[11]先利用二维广义猫映射对图像像素位置进行置乱变换,再对置乱后的2 × 2区域内像素点采用四维猫映射进行像素值扩散变换。这种加密方案需要进行k轮以保证像素值尽可能多地扩散。

本文提出加密方案与传统基于猫映射的加密方案最大的区别,在于采用二维广义猫映射对像素灰度值进行变换,每次加密的广义猫映射的控制系数都不同。生成猫映射的控制系数的序列和用于像素位置置乱的序列产生自coupled logistic映射。在像素灰度值变换和像素点位置置乱处理之后,所有像素灰度值进行双向扩散。本文方案只需要进行一轮加密就可以取得良好的加密效果。

2 基于猫映射的图像灰度值加密

本文提出的图像加密方法一共有四个主要步骤:二维混沌序列的产生,像素灰度值变换,像素点位置置乱,灰度值双向扩散。混沌序列的初始值、猫映射系数选自对应混沌序列元素的位数、灰度值双向扩散的两个初始值组成整个系统的密钥,由用户输入。整个方法的流程如图1所示。

图1 本文方法流程Fig.1 Flowchart of proposed method

2.1 混沌序列的产生

本文提出的加密方法采用coupled logistic 映射[12]来产生二维混沌序列。设要加密的灰度图像尺寸为R×M,灰度级一共为L级,用户输入的初始值为(s0,t0)。迭代式(5)总共R×M+200次,从而获得二维混沌序列。

其中:(μ1,μ2,γ1,γ2)为控制系数。为了保证式(5)产生的序列是混沌的,需要满足以下要求:2.75 <μ1≤3.4,2.7 <μ2≤3.45,0.15 <γ1≤0.21,0.13 <γ2≤0.15,且0 <s0,t0<1。为了保证用于加密的序列足够混乱,迭代产生的两个序列前200项弃之不用。

由这一步产生的两个长度为R×M的混沌序列分别被记作T和S。其中T被用于灰度值扰乱,S被用于像素位置置乱。

2.2 基于二维广义猫映射的像素灰度值扰乱

将二维灰度图像拉伸为R×M的一维序列P。用户输入两个整数值(u,v),用于从混沌序列T中选取猫映射的控制系数。具体来讲,对混沌序列T中第i× 2位的元素,选择其小数点后第u位的数值作为二维广义猫映射的第一个控制系数混沌序列T中第i× 2+1位的元素,选择其小数点后第v位的数值作为广义猫映射的第二个控制系数如果u和v大于系统允许的小数总位数D,则控制系数为u或v对D取模的值。从式(4)中选择一种,利用生成二维广义猫映射矩阵C。对一维图像序列中第i× 2位的像素p2i和第i× 2+1位的像素p2i+1,利用式(6)变换其像素值,得到变换后的像素e2i和e2i+1。

重复该过程直到所有的像素点灰度值都被变换,得到变换后的一维序列E。如果像素点的总数为奇数,则在最后一位补上一个0值像素点。

2.3 像素位置置乱

将混沌序列S中的元素按照从小到大的顺序排列,其中的元素在排序前的序列中的序号将形成一个新的混沌序列A,其元素值为从1 到R×M的正整数。例如将序列(0.2,0.6,0.3)升序排列后得到(0.2,0.3,0.6),其中元素在排序前的序列中的序号为(1,2,3),在排序后会形成一个新的混沌序列(1,3,2 )。这个新的序列A被用于置乱一维序列E中的像素位置。对E中的第i个像素,位置改变为置乱后序列G的第A(i)个像素。也就是说

由于A中的元素值是从1到R×M的正整数,而且每个数字都出现且只出现一次,因此式(7)可以保证E中的每个像素唯一地被映射到G中。

2.4 双向扩散

扩散能够将明文中一个像素的改变扩展到密文中的多个像素,是对抗差分攻击最常用的方法。双向扩散[13]能保证明文中任何一个像素的改变扩展到所有密文像素中,能显著提高加密方法的安全性能。扩散操作是将当前的像素灰度值与前一个扩散操作后的结果相加,再对总的灰度级L取模,从而保证扩散后的像素灰度值都在允许的范围内。正向处理完毕后,再逆向扩散一次。

双向扩散结束后,产生的序列G2再经过2.2节中,二维图像拉伸为一维序列的逆过程,还原为二维图像,这个图像就是加密后的图像。

由于对图像的处理是拉伸为一维序列,因此与传统的基于猫映射图像加密方案要求图像的行列数必须相等不同,本文方法对图像的尺寸大小没有要求。

2.5 解密过程

解密过程是加密过程的逆运算。对于密文图像,先将其拉伸为一维序列,利用逆向扩散的初始值解除逆向扩散,利用正向扩散的初始值解除正向扩散;接着输入混沌序列的初始值,迭代式(5),获得二维混沌序列T和S;采取2.3 节中的方法从序列S生成序列A,从而恢复出像素位置置乱前的序列;然后利用序列T生成广义猫映射的逆矩阵,解除像素灰度值的变换;最后将一维序列还原为二维图像,即得到解密后的图像。

3 实验与结果分析

3.1 加密效果图

为了验证新加密方法的有效性,本文对一系列灰度图像进行了实验。实验中coupled logistic 映射的参数选择为(μ1,μ2,γ1,γ2)=(2.93,3.17,0.179,0.139);广义猫映射控制参数矩阵采取式(4)中的第一种形式。图2 是源自CVG-UGR(Computer Vision Group,University of Granada)数据库大小为256×256 的Lena 原图。从图2 可以看出密文图像混乱,无规律,无法从密文图像中看出明文图像内容。此外,加密图像的直方图分布非常接近均匀分布,即无法通过对密文图像的直方图统计获得明文图像的直方图信息。

图2 Lena图像加密前后的对比Fig.2 Comparison before and after encryption of Lena image

密文图像应该尽可能地破坏原图像中,邻域像素之间的相关性。图3(a)是图2 Lena原图在水平方向邻域像素值分布图,图3(b)是图2 加密图像在水平方向邻域像素值分布图。可以看到,明文图像的邻域像素之分布集中于对角线,说明邻域像素的相关性较强,密文图像的邻域像素值分布则毫无规律,说明加密破坏了邻域像素之间的相关性。

图3 加密前后水平方向邻域像素值的分布图Fig.3 Distribution maps of neighborhood pixel values in horizontal direction before and after encryption

3.2 加密效果分析

信息熵反映一个系统的混乱程度。有规律的系统信息熵小,无规律、混乱的系统信息熵大。灰度图像的灰度信息熵通过式(9)计算:

其中:h(i)为灰度值i的概率。

表1 统计了文献[14]对于Cameraman 图像、文献[15]对于Lena 图像及一系列源自CVG-UGR 图片数据库的灰度图像加密前后的灰度信息熵值。其中Lena 和Cameraman 原图像大小为256 × 256,Goldhill 和Peppers 原图像大小为512 × 512,View 原图像大小为640 × 480。实验图像的灰度等级均为L=256。加密前的信息熵值较小,加密后的信息熵值都非常接近于理论上的最大值8,实验数据如表1所示。

表1 加密前后图像的信息熵值Tab.1 Information entropies of images before and after encryption

邻域像素的相关性可以通过邻域像素相关系数的绝对值来定量衡量。相关系数[16]的绝对值越小,意味着邻域像素之间的相关性越小。相关系数通过式(10)计算:

其中:(ai,bi)是一对相邻的像素点,相邻的方向可以为水平、垂直或对角线;B是这些像素对的总数为所有ai的平均值;是所有bi的平均值。

表2 统计了加密前后图像的水平方向邻域像素相关系数。密文图像的相关系数绝对值接近于0,说明加密效果较好。

表2 加密前后图像的水平方向邻域像素相关系数Tab.2 Correlation coefficient of horizontal neighborhood pixels of images before and after encryption

表3 统计了本文与文献[17-19]方法对Lena 图像在水平、垂直和对角方向邻域像素相关系数的对比结果。

表3 几种加密方法对加密前后Lena图像的相关性分析Tab.3 Correlation analysis of Lena image before and after encryption by several encryption methods

3.3 安全性能分析

加密方法应具备足够大的密钥空间以抵抗暴力攻击。本文的方法通过coupled logistic 映射生成用于变换灰度值和置乱像素点位置的混沌序列。日常采用的64 位电脑对于这种二维映射的初始值空间大小为2104,再叠加上生成猫映射控制系数的密钥和双向扩散的初始值,整个系统在双精度、灰度等级为256的条件下,密钥空间可以达到2104× 3082× 28×2。这么大的密钥空间足以抵抗暴力攻击。

除了足够大的密钥空间,加密方法需要对密钥高度敏感,才能更好地抵抗暴力攻击。图4 为对图2 加密图像采用细微不同的密钥进行解密的结果,其中图4(a)为使用正确密钥的解密结果,图4(b)所采用的密钥中,coupled logistic 映射的初始值其中之一有0.000 000 1的差异。可以看到错误的密钥无法解密出原图像,方法对密钥高度敏感。

图4 本文方法的解密结果Fig.4 Decryption result of proposed method

一个安全的加密方案还应该对明文敏感,即原始图像的轻微部分更改会在加密图像中产生很大的更改。像素数目变化率(Number of Pixels Change Rate,NPCR)是指当明文一个像素改变时密文像素数目改变率,其取值范围为0~1。加密图像系统抵抗查分攻击的能力可以通过NPCR指标衡量[20-21],该指标的值越接近1,表明该加密系统的明文敏感性越强,则该加密系统越能抵抗已知明文攻击。当图2中Lena原图的第(3,3) 个像素从161 改变为160 时,加密后的NPCR 值为0.997 5,非常接近于1。也就是说几乎每个密文像素的值都发生了改变。这说明本文方法能抵抗已知明文攻击。

3.4 运行时间

成功的加密方法要求处理速度尽可能快,但因方法所运行的环境具有一定的差异,直接比较运行时间可能不是很准确,但若在相近的软硬件配置下比较运行时间是较为切实可行的性能比较方法。如表4 所示,选用像素256 × 256 的Lena作为测试图像,在相近的软硬件配置下各方法的运行时间。本实验使用的处理器为Intel Core i5-2430M CPU@2.40 GHz,所使用的编程语言软件为Matlab 2012a。从表4 可以看出,本文方法的加密的处理速度比文献[22]方法快,但比文献[15]方法略慢。本文所提的加密方法是对每个像素组使用不同的猫映射系数,用于变换组内每个像素的灰度值,此外,方法采取双向扩散提高安全性能,在加密的效果和时间的复杂度之间有一定的取舍;文献[22]方法改善加密方法对密钥、明文的敏感性以及置乱的随机性达到较好的加密效果,但同时增加了时间的复杂度;文献[15]方法利用广义cat映射对像素点进行迭代和置乱,再用广义Henon 映射产生的混沌序列与置乱后图像进行扩散加密运算。文献[15]方法和本文方法有着更高的置乱随机性,相较于文献[22]方法损失了一定的密钥空间和密钥敏感性,从而提高了加密速率。本文方法相较于文献[15]方法有着略低抵抗熵攻击性能,但比文献[22]方法有着更高抵抗熵攻击性能。因此本文在确保加密效果同时有着较理想的加密时间,基本可以满足用户需求。

表4 不同方法的加密时间对比Tab.4 Comparison of encryption time of different methods

4 结语

本文提出一种基于coupled logistic 映射和猫映射的图像加密方案。密钥空间由混沌序列的初始值、猫映射系数选自对应混沌序列元素的位数、灰度值双向扩散的两个初始值组成,密钥空间足够大,能够抵御暴力攻击。双向扩散保证了加密方案在明文攻击下稳定。实验和分析表明,新方法加密效果好,安全性能高,便于实现。

猜你喜欢
明文密文像素点
一种支持动态更新的可排名密文搜索方案
嵌入式异构物联网密文数据动态捕获方法
一种新的密文策略的属性基加密方案研究
一种抗攻击的网络加密算法研究
一种X射线图像白点噪声去除算法
基于灰度直方图的单一图像噪声类型识别研究
基于canvas的前端数据加密
奇怪的处罚
图像采集过程中基于肤色理论的采集框自动定位