一种基于m序列的图像加解密方法与流程

文档序号:12826141阅读:539来源:国知局
一种基于m序列的图像加解密方法与流程

本发明涉及数字图像加解密领域,尤其涉及一种基于m序列的图像加解密方法。



背景技术:

网络通信、大数据处理和计算机技术的飞速发展,为人们获得有价值的信息提供了极大的便利。图像信息因其具有较强的综合性和直观性,并且能够形象地传递信息而日益受到人们的青睐,成为数字信息中应用最广泛的一种信息表达形式,也正因此,数字图像的安全问题已经成为人们关注的焦点问题[1]

图像加密主要有以下几种方法:基于矩阵变换/像素置换的图像加密算法、基于密钥分割与秘密共享的图像加密算法、基于现代密码体制的图像加密算法和基于混沌理论的图像加密算法。

图像加密技术目前的发展主要有以下几方面:

(1)基于混沌理论的图像加密技术:通过logistic(逻辑)、rossler(罗斯勒)映射等生成具有较高随机性和长周期的密钥序列,对图像进行加密,随着技术的不断发展,正逐步由低维向高维混沌系统甚至超混沌系统的图像加密算法方向发展[2]

(2)基于密码学的数字图像加密算法:利用fibonacci(斐波纳契)数列良好的均匀性,对标准des(dataencryptionstandard,数据加密标准)算法的初始置换表进行改进,用于图像加密[3];基于椭圆曲线加密体制进行图像加密的算法,具有一定的实用性[4]

(3)基于新的变换方法的图像置乱加密算法:易开祥等人提出基于混沌序列的图像置乱算法,在离散余弦变换域内对图像进行置乱加密[5];丁玮等应用位操作、幻方、fass曲线(space-filling、self-avoiding、self-similar、simple,充满空间、非自交、自相似、简单的曲线)、gray(格雷)码变换、生命游戏和三角函数变换给出了新颖的数字图像置乱算法[6]

(4)应用新的理论和工具研究图像加密技术[7]:利用混沌系统产生二进制序列来设定神经网络的权值和阈值,对每个像素进行加密运算;利用混沌映射的随机性以及不可预测性,产生混沌序列矩阵对小波变换矩阵系数进行调整,再对系数进行置乱处理,然后利用信息隐藏技术对密钥进行隐藏。

上述数字图像加密技术目前面临的主要挑战为:图像加密算法结构复杂性与抗攻击性之间的彼此制约,难以实现加解密效率高、安全性能好、计算复杂度低的数字图像加密系统。



技术实现要素:

本发明提供了一种基于m序列的图像加解密方法,本发明避免了传统加解密算法的复杂结构与低效率,提高了抗攻击性,详见下文描述:

一种基于m序列的图像加解密方法,所述图像加解密方法包括以下步骤;

通过序列的初始状态与本原多项式构造出与各子带大小相同的m序列作为密钥序列;

采用基于比特平面的加密算法和基于不重要比特平面的加密算法按照分辨率渐进的顺序对各子带进行加密,实现对数字图像的完全加密和保留轮廓信息的选择性加密;

采用基于比特平面的解密算法和基于不重要比特平面的解密算法对加密后的图像进行解密,通过小波逆变换重建原始图像。

所述图像加解密方法还包括:

采用daubechies9/7提升小波算法对图像进行三级小波分解,得到一系列不同方向、不同尺度的子带。

所述采用基于比特平面的加密算法和基于不重要比特平面的加密算法按照分辨率渐进的顺序对各子带进行加密,实现对数字图像的完全加密和保留轮廓信息的选择性加密的步骤具体为:

基于比特平面的加密算法在各子带中,从最大比特平面开始,将密钥序列与子带图像数据进行异或运算,实现对图像的整体加密;

基于不重要比特平面的加密算法通过寻找小波分解后各子带中最大的比特位为1的比特平面,按照比特平面由高到低的顺序,进行异或运算来实现对图像的部分加密。

所述采用基于比特平面的解密算法和基于不重要比特平面的解密算法对加密后的图像进行解密,通过小波逆变换重建原始图像的步骤具体为:

基于比特平面的解密算法从输出码流stream中读取各系数的符号位;

基于不重要比特平面的解密算法按照分辨率渐进的顺序对子带进行解密:设置比特平面子带阈值threshold,对子带中数据进行扫描,从输出码流stream中读取出与threshold比特位相同的小波系数及其符号位;

2种解密算法均按照比特平面由高到低的顺序,依次将码流stream与密钥序列key进行异或运算,并将结果存放入数组data;将整型数组data反量化为浮点型数组coef;通过三级daubechies9/7提升小波逆变换,将分解后的图像子带重构出原始图像。

本发明提供的技术方案的有益效果是:采用m序列作为密钥序列,使得算法结构简单,易于实现;所提出的方法具有很强的适应性,可以用于处理灰度图像的加解密问题。

附图说明

图1为一种基于m序列的图像加解密方法的流程图;

图2为n级lfsr(linearfeedbackshiftregister,线性反馈移位寄存器)结构图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面对本发明实施方式作进一步地详细描述。

实施例1

为了解决以上问题,需要设计出加解密效率高、安全性能好的数字图像加密方法。研究表明:m序列[9]是目前应用最广泛的伪随机序列之一,具有长周期、良好的统计特性、易于用代数方法进行实现等优点。本发明实施例提出了一种基于m序列的图像加解密方法,参见图1,详见下文描述:

101:通过序列的初始状态与本原多项式构造出与各子带大小相同的m序列作为密钥序列;

102:采用基于比特平面的加密算法和基于不重要比特平面的加密算法,按照分辨率渐进的顺序对各子带进行加密,实现对数字图像的完全加密和保留轮廓信息的选择性加密;

103:采用基于比特平面的解密算法和基于不重要比特平面的解密算法对加密后的图像进行解密,通过小波逆变换重建原始图像。

其中,在步骤101之前,该图像加解密方法还包括:

采用daubechies9/7提升小波算法对图像进行三级小波分解,得到一系列不同方向、不同尺度的子带。

综上所述,本发明实施例通过上述步骤101-步骤103避免了传统加解密算法的复杂结构与低效率,可以应用于解决所有灰度图像加解密问题。

实施例2

下面结合图2、具体的计算公式对实施例1中的方案进行进一步地介绍,详见下文描述:

201:采用daubechies9/7(多贝西,法国学者)提升小波算法对图像进行三级小波分解,得到不同方向、不同尺度的子带{ll1,lh1,hl1,hh1,lh2,hl2,hh2,lh3,hl3,hh3};

其中,ll1子带为在水平和垂直方向上都经过低通滤波后得到的上级子图在本级尺度上的平滑近似;lh1、lh2、lh3子带分别为经过一级、二级、三级小波变换后垂直方向上的高频分量;hl1、hl2、hl3子带分别为经过一级、二级、三级小波变换后水平方向上的高频分量;hh1、hh2、hh3子带分别为经过一级、二级、三级小波变换后对角线方向上的高频分量。

提升小波变换算法的基本思想是建立在双正交小波和完全可恢复滤波器组的理论基础上,在保持小波双正交特性的条件下,通过提升过程,逐步构建出一个具有更加良好性质的新的小波,以满足各种应用的需要。

提升格式主要由三部分组成:分裂(split)、预测(prediction)和更新(update)。对于图像序列x(n),(n=0,1,2,…,n-1),daubechies9/7提升小波变换[8]的具体实现步骤如下:

分裂是将图像序列x(n)分为两个互不相交子集。通常采用lz(lazywavelet,懒小波,也称之为基本小波)分割法,即按其序号奇偶性将图像序列x(n)分为奇数序列x(2n+1)和偶数序列x(2n):

{x(2n),x(2n+1)}=spilt(x(n))

预测是在基于原始数据相关性的基础上,用偶数序列去预测奇数序列,更新的基本思想是找出一个更好的子集数据,使之保持原数据集的一些尺度特性。具体地,

(1)第一次预测:y(2n+1)←x(2n+1)+α×[x(2n)+x(2n+2)]

(2)第一次更新:y(2n)←x(2n)+β×[y(2n-1)+y(2n+1)]

(3)第二次预测:y(2n+1)←y(2n+1)+γ×[y(2n)+y(2n+2)]

(4)第二次更新:y(2n)←y(2n)+δ×[y(2n-1)+y(2n+1)]

(5)系数缩放:y(2n+1)←-k×y(2n+1)y(2n)←(1/k)×y(2n)

其中,参数α,β,γ,δ,k的值分别为:

α=1.586134342,β=0.052980118,γ=0.882911075

δ=0.442506852,k=1.230174105

其中,x(2n+2)为图像序列中偶数序列;y(2n)为奇数序列预测出的偶数序列;y(2n+1)为偶数序列预测出的奇数序列。

利用小波变换对数字图像进行分解,首先对输入序列按行进行处理,行数据经过水平滤波后进行抽取分解出沿水平方向上的低频和高频分量;接着对经过行处理后的数据按列进行垂直滤波和抽取。

经过一级分解,两次抽取,上一级图像序列分解为四个尺寸分别为原来的四分之一的子图,对应于四个子频带。在水平和垂直方向上都经过低通滤波得到的是上级子图在本级尺度上的平滑近似,称为ll子带;经过水平低通和垂直高通的序列保留的是垂直方向上的细节信息,称为lh子带;经过水平高通和垂直低通的序列保留的是水平方向上的细节信息,称为hl子带;经过水平高通和垂直高通的序列反映了对角线方向的细节信息,称为hh子带。

每次处理数据时,釆用二维小波变换将低频子带分解成4个更低一级的子带,图像经过三级daubechies9/7提升小波分解后得到不同方向、不同尺度的子带:

{ll1,lh1,hl1,hh1,lh2,hl2,hh2,lh3,hl3,hh3}

其中,低频部分分辨率高,高频部分细节突出,便于后续的图像处理。

202:通过图像序列的初始状态regis={a1,a2,...,an}与本原多项式gen={c1,c2,...,cm}构造出与各子带大小相同的m序列作为密钥序列key={k1,k2,...,kl};

其中,m序列是最长线性反馈移位寄存器序列[9](linearfeedbackshiftregister,lfsr)的简称,它是由带线性反馈的移位寄存器产生的周期最长的一种序列。n级移位寄存器的初始状态为a-1a-2…a-n,经过一次移位后,状态变为a0a-1a-2…a-n+1,经过n次移位后,状态变为an-1an-2…a1a0,再移位一次时,移位寄存器左端得到新得到的输入an,如图2所示。

其中,反馈系数ci等于0或1,反馈形式表示模2相加法。移位寄存器中存储器的个数n为移位寄存器的级数,相应地,移位寄存器存储的数据ai为寄存器的状态,最左边为最高位,最右边为最低位。在任意时刻,所有寄存器内容的组合构成lfsr的一个状态,总共2n个可能的状态,每个状态对应于一个n维向量,并用an-1an-2…a1a0表示。

移位运算可表示为:

ai(t+1)=ai+1(t),i=0,1,2,…,n-1

其中,ai+1(t)表示t时刻第i+1个移位寄存器中的内容,ai(t+1)表示t+1时刻第i个移位寄存器中的内容。

线性反馈运算可表示为:

其中,c1,c2,...,cn为反馈系数,反馈系数ci的取值决定了移位寄存器的反馈连接和序列的结构,其特征多项式表示为:p(x)=c0+c1x+c2x2+…+cn-1xn-1+cnxn

特征多项式是表征该线性移位寄存器结构特征的数学模型,与寄存器组输出的序列有密切的关系,当特征多项式p(x)为本原多项式时,寄存器组能够产生m序列key={k1,k2,...,kl}。

203:采用基于比特平面的加密算法和基于不重要比特平面的加密算法,按照分辨率渐进的顺序对各子带进行加密,实现对数字图像的完全加密和保留轮廓信息的选择性加密;

基于比特平面的加密算法,是通过在各子带中,从最大比特平面开始,将密钥序列与子带图像数据进行异或运算,实现对图像的整体加密。

具体地,读取原始图像像素值并存放入一维数组img_raw中,为进行小波变换,将整型数组强行转换为浮点型数组coef,利用提升算法对图像进行三级小波变换,将图像分解为不同大小的子带;将浮点型数组coef量化为无符号整型数组data;确定量化后各子带中系数的最大绝对值max,进而确定最大的比特平面,即位平面的个数max_space,并将其存放入数组max_bit。

此外,为存储各系数的符号,将各系数值的符号位输出到码流stream中;各子带中,从最大比特平面开始,按照比特平面由高到低的顺序,依次将量化后的图像小波系数data与密钥序列key进行异或运算,并将结果输出到码流stream中。

把数字图像分解为位平面,高比特平面数据包含了视觉需要的主要数据,反映对象的主要特征,而低比特平面描述的是图像中微小的细节,是图像的不重要比特平面。基于不重要比特平面的加密算法,是通过寻找各子带中最大的比特位为1的比特平面,按照比特平面由高到低的顺序,进行异或运算来实现对图像的部分加密。

具体地,设置比特平面子带阈值threshold,扫描子带数据,寻找相应比特位为1的小波系数,输出系数的比特位及符号位到码流stream中;按照比特平面由高到低的顺序,将量化后的图像小波系数data与密钥序列key进行异或运算,并将结果一起输出到码流stream中,完成对图像数据保留轮廓信息的部分加密。

204:采用基于比特平面的解密算法和基于不重要比特平面的解密算法,对加密后的图像进行解密,通过小波逆变换重建原始图像。

基于比特平面的解密算法,是按照分辨率渐进的顺序对子带进行解密,各子带中,首先从输出码流stream中读取出各系数的符号位,然后经由序列的初始状态regis与本原多项式gen构造出与子带大小相同的m序列key,作为密钥序列;从数组max_bit中取出各子带的最大比特平面,按照比特平面由高到低的顺序,依次将码流stream与密钥序列key进行异或运算,并将结果存放入数组data;为进行小波逆变换,需将整型数组data反量化为浮点型数组coef;通过三级daubechies9/7提升小波逆变换,将分解后的图像子带重构出原始图像。

daubechies9/7提升小波逆变换具体实现步骤如下:

(1)系数缩放:x(2n)←k×y(2n)x(2n+1)←-(1/k)×y(2n+1)

(2)第一次反更新:x(2n)←x(2n)-δ×[x(2n-1)+x(2n+1)]

(3)第一次反预测:x(2n+1)←x(2n+1)-γ×[x(2n)+x(2n+2)]

(4)第二次反更新:x(2n)←x(2n)-β×[x(2n-1)+x(2n+1)]

(5)第二次反预测:x(2n+1)←x(2n+1)-α×[x(2n)+x(2n+2)]

其中,参数α,β,γ,δ,k的值分别为:

α=1.586134342,β=0.052980118,γ=0.882911075

δ=0.442506852,k=1.230174105

基于不重要比特平面的解密算法,是按照分辨率渐进的顺序对子带进行解密:设置比特平面子带阈值threshold,对子带中数据进行扫描,首先从输出码流stream中读取出与threshold比特位相同的小波系数及其符号位,按照比特平面由高到低的顺序,依次将码流stream与密钥序列key进行异或运算,并将结果存放入数组data;将整型数组data反量化为浮点型数组coef;通过三级daubechies9/7提升小波逆变换,将分解后的图像子带重构出原始图像。

综上所述,本发明实施例通过上述步骤201-步骤204避免了传统加解密算法的复杂结构与低效率,可以应用于解决所有灰度图像加解密问题。

参考文献:

[1]vaidyanathanp,malhotran,nayakj.anewencryptiontechniqueforthesecuredtransmissionandstorageoftextinformationwithmedicalimages[j].engineeringreview,2012,32(1):57-63.

[2]maoy,cheng,lians.anovelfastimageencryptionschemebasedon3dchaoticbakermaps[j].internationaljournalofbifurcationandchaos.2004,14(10):3613-3624

[3]孙劲光,汪洁,孟祥福.改进的fibonacci双置乱图像加密算法[j].计算机科学,2012,39(11):249-253.

[4]时向勇,李先华,郑成建.基于椭圆曲线密码体制的遥感图像加密算法[j].武汉大学学报(信息科学版),2010,11:1309-1313.

[5]易开祥,孙鑫,石教英.一种基于混沌序列的图像加密算法[j].计算机辅助设计与图形学学报,2000,09:672-676.

[6]丁玮,齐东旭.基于arnold变换的数字图像置乱技术.计算机辅助设计与图形学学报,2001,13(4):338-341.

[7]蔡俊,陈昕,向旭东.一种基于混沌的代换-置换结构图像加密算法[j].计算机科学,2014,09:158-164.

[8]acohen,idaubechies,jcfeauveau,biorthogonalbasesofcompactlysupportedwavelets[j],commpureandappliedmath,1992,(45):485~560.

[9]张雪锋,范九伦.基于线性反馈移位寄存器和混沌系统的伪随机序列生成方法[j].物理学报,2010,04:2289-2297.

本领域技术人员可以理解附图只是一个优选实施例的示意图,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1