一种基于LBP编码自适应划分的图像加密方法及装置

未命名 07-29 阅读:102 评论:0

一种基于lbp编码自适应划分的图像加密方法及装置
技术领域
1.本发明属于图像加密技术领域,具体及一种基于lbp编码自适应划分的图像加密方法及装置。


背景技术:

2.随着互联网技术的发展,越来越多的信息尤其是图像数据在网络中广泛传播,也愈容易遭到人为的非法攻击导致隐私信息的泄露,高效的图像加密算法是主动保护图像信息的有效手段之一。
3.当前,根据图像安全场景的不同,图像加密算法分为完整图像的加密以及部分图像的加密两种。完全图像加密是对图像所有的数据进行加密操作以获得较高的安全性,而部分图像加密,又叫选择图像加密,即选择图像部分数据进行保护。选择性加密技术背后的核心思想是从图像中识别重要和不重要的区域或像素,然后对重要数据进行加密。如khan等人将原图像分块,通过子块自相关系数并设置阈值选择图像块进行加密。然而其对阈值的选取则没有推导或证明,即缺乏可信有效的图像重要信息划分方法。目前已有的选择加密方法中,对于图像重要信息即感兴趣区域的识别准确性和合理性不足。因此,在图像实时传输应用的环境下,准确有效的图像感兴趣区域划分和安全高效的加密方法成为当前面临的问题之一。


技术实现要素:

4.本发明的目的在于提供一种基于lbp编码自适应划分的图像加密方法及装置,通过对图像进行局部二值模式(local binary pattern,lbp)编码,根据lbp纹理特征提取重要图像块,对重要图像块进行扩散操作后合并图像块整体置乱扩散,提高加密性能。
5.为达到上述目的,本发明采用的技术方案如下:
6.本发明提供一种基于lbp编码自适应划分的图像加密方法,包括:
7.对原始图像p进行lbp编码得到lbp纹理谱图plbp;
8.计算所述lbp纹理谱图plbp中像素点的跳变次数为2的像素点个数占整幅lbp纹理谱图plbp总像素点个数的比例u_lbp,以及,将所述lbp纹理谱图plbp分成大小相同的子块,计算每个子块中像素点的跳变次数为2的像素点个数占子块总像素点个数的比例u_block;所述跳变次数是指,lbp纹理谱图plbp中所对应的循环二进制数从0到1或从1到0的变化换次数;
9.基于所述子块计算的比例u_block与整幅lbp纹理谱图plbp计算的比例u_lbp进行比较,识别重要子块,以及,将重要子块添加到矩阵pa,将未识别为重要子块的子块添加到矩阵pb;
10.对所述矩阵pa进行扩散得到矩阵tc;
11.将所述矩阵tc与所述矩阵pb进行合并,并转化为原始图像大小的图像q;
12.对所述图像q进行自适应变长的约瑟夫置乱操作,得到置乱图像d;
13.对所述置乱图像d进行块级闭环扩散,得到最终密文图像c。
14.进一步的,将所述lbp纹理谱图plbp分成大小相同的子块,包括:
15.将所述lbp纹理谱图plbp分成大小为16
×
16的子块,子块总个数c为:
16.其中,m
×
n为原始图像p的大小。
17.进一步的,基于所述子块计算的比例u_block与整幅图像计算的比例u_lbp进行比较,识别重要子块,包括:
18.将各子块计算的比例u_block与u_lbp进行比较,若u_block≥u_lbp,则该子块是重要子块,否则,不是重要子块。
19.进一步的,对所述矩阵pa进行扩散得到矩阵tc,包括:
20.选取初始值,采用2d-lscm混沌系统迭代生成长为256
×
count的混沌序列s,其中count为重要子块的个数;
21.对所述混沌序列s采用sort函数进行升序排序,得到索引序列o;
22.将所述矩阵pa采用reshape函数转化为一维序列t,并结合所述索引序列o,进行扩散得到一维序列tc:
[0023][0024]
其中,tci表示一维序列tc中的第i个元素,ti表示一维序列t中的第i个元素,表示异或操作,t
o(i)
表示一维序列t中的第o(i)个元素,o(i)表示索引序列o中的第i个元素,si表示混沌序列s中的第i个元素,f是明文图像中允许的像素值数量,运算符是得到小于或等于x的最大整数;
[0025]
将所述一维序列tc采用reshape函数转化成16
×
16count的矩阵tc。
[0026]
进一步的,对所述图像q进行自适应变长的约瑟夫置乱操作,得到置乱图像d,包括:
[0027]
步骤s21、生成长度、宽度方向的初始位置和步长参数;
[0028]
步骤s22、基于长度方向的初始位置和步长参数生成长度为m的约瑟夫序列row;
[0029]
步骤s23、基于宽度方向的初始位置和步长参数生成大小为m
×
n的约瑟夫矩阵col;
[0030]
步骤s24、将图像q的第i行像素按照如下方式进行重新排列:
[0031]
index(i,:)={(row(col(i,1))+i,col(i,1)),

,(row(col(i,k))+i,col(i,k)),
[0032]
(row(col(i,k+1))+i,col(i,k+1)),

,(row(col(i,n))+i,col(i,n))}
[0033]
如果row(col(i,k))+i》m,则,
[0034]
row(col(i,k))+i=mod(row(col(i,k))+i,m);
[0035]
步骤s25、重复步骤s23到步骤s24,直到所有像素完成行列同步置乱操作,得到置乱图像d。
[0036]
进一步的,所述生成长度、宽度方向的初始位置和步长参数,包括:
[0037]
mp=mod(sum,m),mstep=mod(sumlbp,m);
[0038]
np=mod(sumlbp,n),nstep=mod(sum,n);
[0039]
其中,mp和np分别为长度、宽度方向的初始位置,mstep为长度方向的步长,nstep为宽度方向的步长,sum为原始图像p的所有像素之和,sumlbp为lbp纹理谱图plbp的所有像素之和。
[0040]
进一步的,所述基于长度方向的初始位置和步长参数生成长度为m的约瑟夫序列row,包括:
[0041]
步骤221:初始化向量a=[1,2,

,m];
[0042]
步骤222:设置row(1)=mp并从a中删除row(1),其中row(1)是指row中的第一个元素;
[0043]
步骤223:从删除的位置开始,循环移位mstep步并将当前值分配给row(2);
[0044]
步骤224:更新步长为:mstep=mstep+1;
[0045]
步骤225:重复步骤223和224直到a中所有的值全都被分配给row。
[0046]
进一步的,所述基于宽度方向的初始位置和步长参数生成大小为m
×
n的约瑟夫矩阵col,包括:
[0047]
步骤231:对于第i行,初始化向量b=[1,2,

,n];
[0048]
步骤232:设置col(i,1)=np并从b删除col(i,1);col(i,1)表示矩阵col的第i行第1列元素;
[0049]
步骤233:从删除的位置开始,循环移位nstep步并将当前值b(j)分配给col(i,2);
[0050]
步骤234:更新步长为:
[0051]
步骤235:重复步骤233和234直到b中所有的值全都被分配给col(i,:);
[0052]
步骤236:更新np为:np=col(i,n)。
[0053]
进一步的,对所述置乱图像d进行块级闭环扩散,得到最终密文图像c,包括:
[0054]
选取初始值,使用2d-lscm混沌系统生成两个大小为的混沌矩阵z和w,基于z和w生成混沌块g、u、v,如下:
[0055][0056][0057][0058]
其中,1≤k≤16,1≤l≤16,{e,f}表示g中混沌块元组的索引,k和l分别表示每个混沌块内的行索引和列索引,以及g中的索引都对应于当前明文块d中需要扩散的索引;
[0059]
将置乱图像d分成16
×
16的小块,表示为:
[0060][0061]
按照下列公式进行块级扩散:
[0062][0063]
采用混沌块v、块级扩散的第一个密文块和最后一个密文块更新第一个密文块进
行闭环扩散,得到最终的密文图像c,第一个密文块c{1,1}更新方式如下:
[0064][0065]
本发明还提供一种基于lbp编码自适应划分的图像加密装置,用于实现前述的基于lbp编码自适应划分的图像加密方法,所述装置包括:
[0066]
编码模块,用于对原始图像p进行lbp编码得到lbp纹理谱图plbp;
[0067]
计算模块,用于计算所述lbp纹理谱图plbp中像素点的跳变次数为2的像素点个数占整幅lbp纹理谱图plbp总像素点个数的比例u_lbp,以及,将所述lbp纹理谱图plbp分成大小相同的子块,计算每个子块中像素点的跳变次数为2的像素点个数占子块总像素点个数的比例u_block;所述跳变次数是指,lbp纹理谱图plbp中所对应的循环二进制数从0到1或从1到0的变化换次数;
[0068]
识别模块,用于基于所述子块计算的比例u_block与整幅lbp纹理谱图plbp计算的比例u_lbp进行比较,识别重要子块,以及,将重要子块添加到矩阵pa,将未识别为重要子块的子块添加到矩阵pb;
[0069]
扩散模块,用于对所述矩阵pa进行扩散得到矩阵tc;
[0070]
合并模块,用于将所述矩阵tc与所述矩阵pb进行合并,并转换为原始图像大小的图像q;
[0071]
置乱模块,用于对所述图像q进行自适应变长的约瑟夫置乱操作,得到置乱图像d;
[0072]
加密模块,用于对所述置乱图像d进行块级闭环扩散,得到最终密文图像c。
[0073]
与现有技术相比,本发明的有益效果是:
[0074]
1、本发明提供一种基于lbp编码自适应划分的图像加密方法,在像素级下,根据图像纹理特征对图像信息量进行度量,依据信息量的大小提取重要块并加以扩散,然后合并图像块进行整体的约瑟夫置乱和块级闭环扩散,相比于选择部分图像加密的方法安全性更高,是一种安全且高效的加密方案。
[0075]
2、本发明所述的lbp编码的自适应划分方法适用于各种图像类型,使用lbp纹理特征进行图像块划分,相比于随机选择块的方法更加精确。
[0076]
3、本发明所述的图像加密方法对每张图的划分方法不同,在面向海量图像数据加密场景下,相比随机选择块的加密算法,整体的加密性能有所提升。
附图说明
[0077]
图1为本发明提供的一种基于lbp编码自适应划分的图像加密方法流程图;
[0078]
图2为本发明实施例中原始图像插入0值示例;
[0079]
图3为本发明实施例中lbp编码计算示例;
[0080]
图4为本发明实施例中原始图像及经过lbp编码生成的纹理图像;
[0081]
图5为现有的约瑟夫序列生成过程示例;
[0082]
图6为本发明实施例提供的自适应变长约瑟夫置乱过程示例。
具体实施方式
[0083]
下面对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0084]
本发明提供一种基于lbp编码自适应划分的图像加密方法,如图1所示,包括:
[0085]
对原始图像p进行lbp编码得到lbp纹理谱图plbp;
[0086]
计算lbp纹理谱图plbp中像素点的跳变次数为2的像素点个数占整幅lbp纹理谱图plbp总像素点个数的比例u_lbp,以及,将lbp纹理谱图plbp分成大小相同的子块,计算每个子块中像素点的跳变次数为2的像素点个数占子块总像素点个数的比例u_block;
[0087]
基于各子块计算的比例u_block与整幅图像计算的比例u_lbp进行比较,识别重要子块,以及,将重要子块添加到矩阵pa,将未识别为重要子块的子块添加到矩阵pb;
[0088]
对矩阵pa进行扩散得到矩阵tc;
[0089]
将矩阵tc与矩阵pb进行合并,得到图像q;
[0090]
对图像q进行自适应变长的约瑟夫置乱操作,得到置乱图像d;
[0091]
对置乱图像d进行块级闭环扩散,得到最终密文图像c。
[0092]
本发明的一个实施例中,对原始图像进行lbp编码前,还包括:
[0093]
lbp编码需要3
×
3的窗口,为了计算原始图像的第一行、第一列、最后一行、最后一列的lbp值,在原始图像p的四周插入0值得到图像p’,个数为2m+2n+4,如图2所示。其中,原始图像p的大小为m
×
n。
[0094]
本发明的一个实施例中,对原始图像p进行lbp编码得到lbp纹理谱图plbp,具体实现过程如下:
[0095]
lbp算子定义在一个3
×
3的窗口内,以中心像素为阈值,与相邻的8个像素的灰度值比较,若周围的像素值大于中心像素值,则该位置被标记为1,否则标记为0。如此可以得到一个8位二进制数,将其转换为十进制,即得到最终的lbp码,将这个值作为窗口中心像素点的lbp值,以此来表示这个区域的纹理信息。lbp值的取值范围为[0,255],计算公式如下:
[0096][0097][0098]
其中,ic表示中心像素(xc,yc)的灰度值,in是其8个邻点的灰度值,s(x)为像素点x的lbp编码值,计算示例如图3所示,图4显示了一副原始图像及经lbp编码后的纹理谱图。
[0099]
lbp码对任何单调的灰度变换具有不变性,即变换前后保持局部邻域的二进制码不变。
[0100]
本发明的一个实施例中,计算跳变次数如下:
[0101]
lbp测度是0-1变换次数的度量,即lbp编码所对应的循环二进制数从0到1或从1到0跳变次数,可以定义为:
[0102][0103]
其中,ic表示中心像素(xc,yc)的灰度值,in是邻点n的灰度值,s(i
n-ic)为位置点n的标记值。
[0104]
本发明的一个实施例中,将lbp纹理谱图plbp分成大小为16
×
16的子块,总个数为
[0105]
本发明的一个实施例中,基于各子块计算的比例u_block与整幅图像计算的比例u_lbp进行比较,识别重要子块,具体实现过程为,
[0106]
将各子块计算的比例u_block与u_lbp进行比较,若u_block≥u_lbp,则该子块是重要子块,否则,不是重要子块。
[0107]
本发明的一个实施例中,将重要子块添加到矩阵pa,将未识别为重要子块的子块添加到矩阵pb,具体实现过程如下:
[0108]
将重要子块通过pa=[pa x]添加到矩阵pa,x代表重要子块,大小为16
×
16,个数为count,则pa的大小为16
×
16count;
[0109]
同理将未识别为重要子块的子块添加到矩阵pb,大小为16
×
16(c-count)。
[0110]
本发明的一个实施例中,对矩阵pa进行扩散得到矩阵tc,具体实现过程如下:
[0111]
步骤s11、以x0,y0,r0为初值,使用2d-logistic-sine-coupling-map(2d-lscm)混沌系统迭代生成长为256
×
count的混沌序列,即s;
[0112]
2d-lscm的定义为:
[0113][0114]
其中,r是控制参数,且r∈(0,1)。
[0115]
步骤s12、对生成的混沌序列s采用sort函数进行升序排序,得到索引序列o;
[0116]
步骤s13、将矩阵pa采用reshape函数转化为一维序列t,长度为256
×
count,按如下公式进行扩散得到一维序列tc:
[0117][0118]
其中,tci表示一维序列tc中的第i个元素,count是重要子块的个数,表示异或操作,t
o(i)
表示一维序列t中的第o(i)个元素,o(i)表示索引序列o中的第i个元素,si表示混沌序列s中的第i个元素,f是明文图像中允许的像素值数量,例如当p是8位灰度级图像时f=256,运算符是得到小于或等于x的最大整数。
[0119]
步骤s14、将一维序列tc采用reshape函数转化成16
×
16count的矩阵tc。
[0120]
本发明的一个实施例中,将矩阵tc与矩阵pb合并成矩阵q,具体为,
[0121]
将矩阵tc和矩阵pb通过q=[tc pb]合并成矩阵q,大小为16
×
16c;
[0122]
再通过reshape函数转化大小为m
×
n的图像q。
[0123]
本发明的一个实施例中,对图像q进行自适应变长的约瑟夫置乱操作,得到置乱图像d,具体实现过程如下:
[0124]
约瑟夫问题是说,对于在圆中放置一定数量的元素,可以从指定的元素开始,将其从圆中移除,然后循环移动固定数量的元素,以找出当前元素。下一个迭代从当前的迭代开始。重复此操作,直到使用最后一个元素为止。最后,根据要从圆中去除的元素的顺序,可以得到一个序列,即约瑟夫序列。约瑟夫的序列可以被描述为:
[0125]
q=js(n,s,k);
[0126]
其中,n为元素总数,s表示起始位置,k为移位数,q为产生的约瑟夫序列。
[0127]
为了更好地解释约瑟夫序列,以一个在等式中使用n=8、s=2、k=3为例,图5显示
了约瑟夫序列的生成过程。
[0128]
约瑟夫序列可以随机改变一维阵列的位置。然而,一个数字图像是一个二维矩阵。考虑到二维矩阵的性质,本实施例设计了可以同时打乱行和列位置的自适应变长约瑟夫置乱算法,具体操作如下:
[0129]
步骤s21、生成初始位置和步长参数,如下:
[0130]
步骤211:计算原始图像p的所有像素之和sum,计算公式如下:
[0131][0132]
其中,p(i,j)表示原始图像p中位置(i,j)的像素值;
[0133]
步骤212:计算lbp纹理谱图plbp的所有像素之和sumlbp,计算公式如下:
[0134][0135]
其中,plbp(i,j)表示lbp纹理谱图plbp中位置(i,j)的像素值;
[0136]
步骤213:设置mp=mod(sum,m),mstep=mod(sumlbp,m);
[0137]
步骤214:设置np=mod(sumlbp,n),nstep=mod(sum,n);
[0138]
其中,mp和np分别为长、宽方向的初始位置,mstep为长度方向的步长,nstep为宽度方向的步长;
[0139]
步骤s22、生成长度为m的约瑟夫序列row,如下:
[0140]
步骤221:初始化向量a=[1,2,

,m];
[0141]
步骤222:设置row(1)=mp并从a中删除row(1),row(1)是指row中的第一个元素;
[0142]
步骤223:从先前删除的位置开始,循环移位mstep步并将当前值分配给row(2);
[0143]
步骤224:mstep=mstep+1;
[0144]
步骤225:重复步骤223和224直到a中所有的值全都被分配给row;
[0145]
步骤s23、生成大小为m
×
n的约瑟夫矩阵col,如下:
[0146]
步骤231:对于第i行,初始化向量b=[1,2,

,n];
[0147]
步骤232:设置col(i,1)=np并从b删除col(i,1);col(i,1)表示矩阵col的第i行第1列元素;
[0148]
步骤233:从先前删除的位置开始,循环移位nstep步并将当前值b(j)分配给col(i,2);
[0149]
步骤234:
[0150]
步骤235:重复步骤233和234直到b中所有的值全都被分配给col(i,:);
[0151]
步骤236:设置np=col(i,n);
[0152]
步骤s24、将图像q的第i行像素按照位置序列index(i,:)进行重新排列,
[0153]
index(i,:)={(row(col(i,1))+i,col(i,1)),

,(row(col(i,k))+i,col(i,k)),
[0154]
(row(col(i,k+1))+i,col(i,k+1)),

,(row(col(i,n))+i,col(i,n))}
[0155]
特别地,如果row(col(i,k))+i》m,
[0156]
则取row(col(i,k))+i=mod(row(col(i,k))+i,m)。
[0157]
步骤s25、重复步骤s23到步骤s24,直到所有像素完成行列同步置乱操作,得到置乱图像d。
[0158]
以4
×
4的矩阵为例,自适应变长的约瑟夫置乱过程如图6所示,说明如下:
[0159]
步骤1、生成初始位置和步长参数,如下:
[0160]
计算明文图像q的所有像素之和
[0161]
计算纹理谱图qlbp的所有像素之和
[0162]
设置mp=mod(75,4)=3,mstep=mod(1034,4)=2;
[0163]
设置np=mod(1034,4)=2,nstep=mod(75,4)=3;
[0164]
步骤2、生成长度为m的约瑟夫序列row,如下:
[0165]
初始化向量a=[1,2,3,4],row(1)=3,从a中删除3,此时a=[1,2,4];
[0166]
mstep=2,循环移位2步,row(1)=1,从a中删除1,此时a=[2,4];
[0167]
mstep=3,循环移位3步,row(1)=4,从a中删除4,此时a=[2];
[0168]
mstep=4,循环移位4步,row(1)=2,从a中删除2,此时a=[];
[0169]
则row=[3,1,4,2];
[0170]
步骤3、生成大小为m
×
n的约瑟夫序列col,如下:
[0171]
对于第一行i=1,初始化向量b=[1,2,3,4],col(1,1)=2,从b中删除2,此时b=[1,3,4];
[0172]
nstep=3,循环移位3步,col(1,2)=1,从b中删除1,此时b=[3,4];
[0173]
nstep=2,循环移位2步,col(1,3)=4,从b中删除4,此时b=[3];
[0174]
nstep=3,循环移位3步,col(1,4)=3,从b中删除3,此时b=[];
[0175]
则col(1,:)=[2,1,4,3];
[0176]
对于第二行i=2,初始化向量b=[1,2,3,4],col(2,1)=col(1,4)=3,从b中删除3,此时b=[1,2,4];
[0177]
nstep=1,循环移位1步,col(2,2)=4,从b中删除4,此时b=[1,2];
[0178]
nstep=2,循环移位2步,col(2,3)=2,从b中删除2,此时b=[1];
[0179]
nstep=1,循环移位1步,col(2,4)=1,从b中删除1,此时b=[];
[0180]
则col(2,:)=[3,4,2,1];
[0181]
对于第三行i=3,初始化向量b=[1,2,3,4],col(3,1)=col(2,4)=1,从b中删除1,此时b=[2,3,4];
[0182]
nstep=3,循环移位3步,col(3,2)=4,从b中删除4,此时b=[2,3];
[0183]
nstep=3,循环移位3步,col(3,3)=2,从b中删除2,此时b=[3];
[0184]
nstep=4,循环移位4步,col(3,4)=3,从b中删除3,此时b=[];
[0185]
则col(3,:)=[1,4,2,3];
[0186]
对于第四行i=4,初始化向量b=[1,2,3,4],col(4,1)=col(3,4)=3,从b中删除3,此时b=[1,2,4];
[0187]
nstep=3,循环移位3步,col(4,2)=2,从b中删除2,此时b=[1,4];
[0188]
nstep=2,循环移位2步,col(4,3)=1,从b中删除1,此时b=[4];
[0189]
nstep=1,循环移位1步,col(4,4)=4,从b中删除4,此时b=[];
[0190]
则col(4,:)=[3,2,1,4];
[0191]
则col=[2,1,4,3;3,4,2,1;1,4,2,3;3,2,1,4]。
[0192]
本发明的一个实施例中,对置乱图像d进行块级闭环扩散,得到密文图像c,具体实现过程如下:
[0193]
步骤s31、以x1,y1,r1为初值,使用2d-lscm混沌系统迭代生成两个大小为的混沌矩阵,即z和w,基于z和w生成用于扩散的混沌块g、u、v,如下:
[0194][0195][0196][0197]
其中,1≤k≤16,1≤l≤16,{e,f}表示g中混沌块元组的索引,k和l分别表示每个混沌块内的行索引和列索引,以及g中的索引都对应于当前明文块d中需要扩散的索引。
[0198]
特别地,u、v大小为16
×
16,用于生成第一个密文块和更新第一个密文块。
[0199]
步骤s32、将置乱图像d分成16
×
16的小块,可以表示为:
[0200][0201]
按照下列公式进行块级扩散:
[0202][0203]
步骤s33、当所有子块按照步骤s32的方式扩散完成后,使用混沌块v、上述块级扩散的第一个密文块和最后一个密文块来更新第一个密文块实现闭环扩散,得到最终的密文图像c,第一个密文块c{1,1}更新方式如下:
[0204][0205]
本发明还提供一种基于lbp编码自适应划分的图像加密装置,用于实现前述的基于lbp编码自适应划分的图像加密方法,所述装置包括:
[0206]
编码模块,用于对原始图像p进行lbp编码得到lbp纹理谱图plbp;
[0207]
计算模块,用于计算所述lbp纹理谱图plbp中像素点的跳变次数为2的像素点个数占整幅lbp纹理谱图plbp总像素点个数的比例u_lbp,以及,将所述lbp纹理谱图plbp分成大小相同的子块,计算每个子块中像素点的跳变次数为2的像素点个数占子块总像素点个数的比例u_block;所述跳变次数是指,lbp纹理谱图plbp中所对应的循环二进制数从0到1或从1到0的变化换次数;
[0208]
识别模块,用于基于所述子块计算的比例u_block与整幅lbp纹理谱图plbp计算的比例u_lbp进行比较,识别重要子块,以及,将重要子块添加到矩阵pa,将未识别为重要子块的子块添加到矩阵pb;
[0209]
扩散模块,用于对所述矩阵pa进行扩散得到矩阵tc;
[0210]
合并模块,用于将所述矩阵tc与所述矩阵pb进行合并,并转换为原始图像大小的图像q;
[0211]
置乱模块,用于对所述图像q进行自适应变长的约瑟夫置乱操作,得到置乱图像d;
[0212]
加密模块,用于对所述置乱图像d进行块级闭环扩散,得到最终密文图像c。
[0213]
值得指出的是,该装置实施例是与上述方法实施例对应的,上述方法实施例的实现方式均适用于该装置实施例中,并能达到相同或相似的技术效果,故不在此赘述。
[0214]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0215]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0216]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0217]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0218]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

技术特征:
1.一种基于lbp编码自适应划分的图像加密方法,其特征在于,包括:对原始图像p进行lbp编码得到lbp纹理谱图plbp;计算所述lbp纹理谱图plbp中像素点的跳变次数为2的像素点个数占整幅lbp纹理谱图plbp总像素点个数的比例u_lbp,以及,将所述lbp纹理谱图plbp分成大小相同的子块,计算每个子块中像素点的跳变次数为2的像素点个数占子块总像素点个数的比例u_block;所述跳变次数是指,lbp纹理谱图plbp中所对应的循环二进制数从0到1或从1到0的变化换次数;基于所述子块计算的比例u_block与整幅lbp纹理谱图plbp计算的比例u_lbp进行比较,识别重要子块,以及,将重要子块添加到矩阵pa,将未识别为重要子块的子块添加到矩阵pb;对所述矩阵pa进行扩散得到矩阵tc;将所述矩阵tc与所述矩阵pb进行合并,并转化为原始图像大小的图像q;对所述图像q进行自适应变长的约瑟夫置乱操作,得到置乱图像d;对所述置乱图像d进行块级闭环扩散,得到最终密文图像c。2.根据权利要求1所述的一种基于lbp编码自适应划分的图像加密方法,其特征在于,将所述lbp纹理谱图plbp分成大小相同的子块,包括:将所述lbp纹理谱图plbp分成大小为16
×
16的子块,子块总个数c为:其中,m
×
n为原始图像p的大小。3.根据权利要求2所述的一种基于lbp编码自适应划分的图像加密方法,其特征在于,基于所述子块计算的比例u_block与整幅图像计算的比例u_lbp进行比较,识别重要子块,包括:将各子块计算的比例u_block与u_lbp进行比较,若u_block≥u_lbp,则该子块是重要子块,否则,不是重要子块。4.根据权利要求3所述的一种基于lbp编码自适应划分的图像加密方法,其特征在于,对所述矩阵pa进行扩散得到矩阵tc,包括:选取初始值,采用2d-lscm混沌系统迭代生成长为256
×
count的混沌序列s,其中count为重要子块的个数;对所述混沌序列s采用sort函数进行升序排序,得到索引序列o;将所述矩阵pa采用reshape函数转化为一维序列t,并结合所述索引序列o,进行扩散得到一维序列tc:其中,tc
i
表示一维序列tc中的第i个元素,t
i
表示一维序列t中的第i个元素,

表示异或操作,t
o(i)
表示一维序列t中的第o(i)个元素,o(i)表示索引序列o中的第i个元素,s
i
表示混沌序列s中的第i个元素,f是明文图像中允许的像素值数量,运算符是得到小于或等于x的最大整数;将所述一维序列tc采用reshape函数转化成16
×
16count的矩阵tc。5.根据权利要求4所述的一种基于lbp编码自适应划分的图像加密方法,其特征在于,
对所述图像q进行自适应变长的约瑟夫置乱操作,得到置乱图像d,包括:步骤s21、生成长度、宽度方向的初始位置和步长参数;步骤s22、基于长度方向的初始位置和步长参数生成长度为m的约瑟夫序列row;步骤s23、基于宽度方向的初始位置和步长参数生成大小为m
×
n的约瑟夫矩阵col;步骤s24、将图像q的第i行像素按照如下方式进行重新排列:index(i,:)={(row(col(i,1))+i,col(i,1)),

,(row(col(i,k))+i,col(i,k)),(row(col(i,k+1))+i,col(i,k+1)),

,(row(col(i,n))+i,col(i,n))}如果row(col(i,k))+i>m,则,row(col(i,k))+i=mod(row(col(i,k))+i,m);步骤s25、重复步骤s23到步骤s24,直到所有像素完成行列同步置乱操作,得到置乱图像d。6.根据权利要求5所述的一种基于lbp编码自适应划分的图像加密方法,其特征在于,所述生成长度、宽度方向的初始位置和步长参数,包括:mp=mod(sum,m),mstep=mod(sumlbp,m);np=mod(sumlbp,n),nstep=mod(sum,n);其中,mp和np分别为长度、宽度方向的初始位置,mstep为长度方向的步长,nstep为宽度方向的步长,sum为原始图像p的所有像素之和,sumlbp为lbp纹理谱图plbp的所有像素之和。7.根据权利要求6所述的一种基于lbp编码自适应划分的图像加密方法,其特征在于,所述基于长度方向的初始位置和步长参数生成长度为m的约瑟夫序列row,包括:步骤221:初始化向量a=[1,2,...,m];步骤222:设置row(1)=mp并从a中删除row(1),其中row(1)是指row中的第一个元素;步骤223:从删除的位置开始,循环移位mstep步并将当前值分配给row(2);步骤224:更新步长为:mstep=mstep+1;步骤225:重复步骤223和224直到a中所有的值全都被分配给row。8.根据权利要求6所述的一种基于lbp编码自适应划分的图像加密方法,其特征在于,所述基于宽度方向的初始位置和步长参数生成大小为m
×
n的约瑟夫矩阵col,包括:步骤231:对于第i行,初始化向量b=[1,2,...,n];步骤232:设置col(i,1)=np并从b删除col(i,1);col(i,1)表示矩阵col的第i行第1列元素;步骤233:从删除的位置开始,循环移位nstep步并将当前值b(j)分配给col(i,2);步骤234:更新步长为:步骤235:重复步骤233和234直到b中所有的值全都被分配给col(i,:);步骤236:更新np为:np=col(i,n)。9.根据权利要求5所述的一种基于lbp编码自适应划分的图像加密方法,其特征在于,对所述置乱图像d进行块级闭环扩散,得到最终密文图像c,包括:选取初始值,使用2d-lscm混沌系统生成两个大小为的混沌矩阵z和w,基于z和w生成混沌块g、u、v,如下:
其中,1≤k≤16,1≤l≤16,{e,f}表示g中混沌块元组的索引,k和l分别表示每个混沌块内的行索引和列索引,以及g中的索引都对应于当前明文块d中需要扩散的索引;将置乱图像d分成16
×
16的小块,表示为:按照下列公式进行块级扩散:采用混沌块v、块级扩散的第一个密文块和最后一个密文块更新第一个密文块进行闭环扩散,得到最终的密文图像c,第一个密文块c{1,1}更新方式如下:10.一种基于lbp编码自适应划分的图像加密装置,其特征在于,用于实现权利要求1至9任意一项所述的基于lbp编码自适应划分的图像加密方法,所述装置包括:编码模块,用于对原始图像p进行lbp编码得到lbp纹理谱图plbp;计算模块,用于计算所述lbp纹理谱图plbp中像素点的跳变次数为2的像素点个数占整幅lbp纹理谱图plbp总像素点个数的比例u_lbp,以及,将所述lbp纹理谱图plbp分成大小相同的子块,计算每个子块中像素点的跳变次数为2的像素点个数占子块总像素点个数的比例u_block;所述跳变次数是指,lbp纹理谱图plbp中所对应的循环二进制数从0到1或从1到0的变化换次数;识别模块,用于基于所述子块计算的比例u_block与整幅lbp纹理谱图plbp计算的比例u_lbp进行比较,识别重要子块,以及,将重要子块添加到矩阵pa,将未识别为重要子块的子块添加到矩阵pb;扩散模块,用于对所述矩阵pa进行扩散得到矩阵tc;合并模块,用于将所述矩阵tc与所述矩阵pb进行合并,并转换为原始图像大小的图像q;置乱模块,用于对所述图像q进行自适应变长的约瑟夫置乱操作,得到置乱图像d;加密模块,用于对所述置乱图像d进行块级闭环扩散,得到最终密文图像c。

技术总结
本发明公开了一种基于LBP编码自适应划分的图像加密方法及装置,该方法包括对原始图像进行LBP编码得到LBP纹理谱图,将纹理谱图进行分块,计算整幅图像以及各子块中像素点的LBP测度U,统计U=2的像素点个数分别占整幅图像和子块总像素点个数的比例,对所计算的比例进行比较,划分重要块并对重要块进行像素级扩散;将重要块的扩散结果和其余块合并成原始图像大小,进行整体的行列同步的自适应约瑟夫置乱,对置乱结果进行块级扩散,用最后一个块的扩散结果更新第一个块的扩散结果实现闭环,最终得到密文图像。本发明方法安全性更高,是一种安全且高效的加密方案。种安全且高效的加密方案。种安全且高效的加密方案。


技术研发人员:顾君 吕鑫 曾涛 高晟凯 周思琪 王鑫元 李鑫 徐振楠 吴采凤 陈佳乐 于洁 王玮
受保护的技术使用者:河海大学
技术研发日:2023.03.30
技术公布日:2023/7/28
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐