基于信息熵更新密钥的感兴趣区域医学图像混沌加密方法与流程

文档序号:18601754发布日期:2019-09-03 22:43阅读:345来源:国知局
基于信息熵更新密钥的感兴趣区域医学图像混沌加密方法与流程

本发明涉及图像信息安全技术领域,具体涉及一种基于信息熵密钥更新方法的感兴趣区域医学图像混沌加密解密方法。



背景技术:

“互联网+”时代的不断发展,让各行各业都进入了信息化发展进程。在这样的时代背景下,为了满足不同地区不同人群的不同需求“互联网+医疗”应运而生。其为解决人们与日俱增的对医疗需求和医疗技术发展不平衡之间的矛盾,以互联网为载体利用日益更新的技术手段,实现了远程医疗、在线问诊和电子健康档案等多种模式的医疗服务。而与此同时这种模式的运营也带来了信息安全问题,面对互联网这种复杂的环境,电子医疗文档在远程传输时总会遇到信息泄露、被窃取、被修改等安全问题。而在信息传输中,医学图像由于其直观显示病人病情,包含信息内容丰富,在电子文档中占据了相当大的比重。为防止其他人通过技术手段非法获取病人信息,需要在信息在传输之前进行加密,以保障图像安全。然而,由于医学图像具有数据量大、格式复杂和相邻像素间的相关性强的特征,传统的加密方法,诸如des,aes,idea,rsa等的加密性能存在着安全性差、效率低以及等缺点不适合医学图像加密。

混沌系统所具有的优良特性使其特别适合应用于加密,众学者利用混沌序列对医学图像进行混淆和扩散,实现保护图像信息的目的。与普通数字图像不同,医学图像具有较强的识别性,其通常由包含所有有用信息的感兴趣区域(roi)和包含无关信息的背景区域组成,全局加密的方案加密效率较低。



技术实现要素:

本发明为解决现有医学图像加密技术加密效率低,无法抵抗已知明文和选择明文攻击的安全缺陷,提供一种基于信息熵密钥更新方法的感兴趣区域医学图像混沌加密解密方法。

步骤一、选择m×n的灰度医学图像作为原始图像pimg;

步骤二、将原始图像pimg分为大小为n×n的图像块bs,获得m×n/(n×n)个图像块,s=1,2,3,...,m×n/(n×n),其中n为用户根据需求所划分的图像块大小;

步骤三、计算步骤二所述图像块bs内所有像素灰度值的平均值

步骤四、感兴趣区域判别,判别方法如下:

当平均值时,则图像块bs为感兴趣区域roibr,设置对应的第s个感兴趣区域标志位roi_flags为1;

当平均值时,则该图像块bs为非感兴趣区域roni,设置对应的第s个感兴趣区域标志位roi_flags为0;

其中t为感兴趣区域阈值,r为图像感兴趣区域编号,r=1,2,…,sum(roi_flags);sum(roi_flags)为pimg中所有被判别为感兴趣区域的图像块的个数;

步骤五、将步骤四所述r个感兴趣区域roibr进行矩阵重排,变形为长度为n×n的感兴趣区域序列sroibr;

步骤六、将步骤五获得的r个感兴趣区域序列sroibr按照从上向下的顺序组合成矩阵,获得大小为(n×n)×sum(roi_flags)感兴趣区域矩阵roi_m;

步骤七、对步骤六所述感兴趣区域矩阵roi_m进行二维离散小波变换,获得四个小波子带,分别为低频子带roica,高频子带roich、高频子带roicv和高频子带roicd;

步骤八、对步骤七获得的低频子带roica转换为带符号十六位整数,然后进行混沌加密,获得低频子带密文矩阵enroica,具体加密方法如下:

步骤八一、由用户设定x0,y0,z0,u0,ω0的值作为低频子带加密密钥;

步骤八二、将大小为ll×lh的低频子带roica变形为一维低频子带矩阵sroica;计算所述一维低频子带矩阵sroica的信息熵h(sroica);采用下式进行信息熵初值的更新,获得混沌系统初值:

q0=(h(sroica)+1)/(1+h(sroica)+x0+y0)

式中q0为混沌系统初值;

步骤八三、采用步骤八二所述的q0作为混沌映射系统初值,将混沌映射系统迭代time1次,生成混沌序列q;time1的值大于ll×lh;

舍弃所述混沌序列q的前t1个迭代结果,从第t1+1个值开始顺序选取ll×lh个值作为低频子带置乱序列q2;

并将所述低频子带置乱序列q2升序排序,并记录索引值,组成索引序列t;

步骤八四、将步骤八二中所述的一维低频子带序列sroica按照步骤八三获得的索引序列t进行置乱,获得置乱后的低频子带置乱序列csroica;

步骤八五、采用高维超混沌系统生成混沌扩散序列y,舍弃混沌扩散序列y的前t2个值,从t2+1开始顺序选取ll×lh个值作为低频子带密钥流k,并对k做如下处理:

k=int16(mod(floor(k×104),256))

式中,mod为取模函数,floor为向下取整,int16为将矩阵内数值转换为带符号的16位整数;

将所述低频子带密钥流k进行下式操作,生成低频子带扩散密钥流k2:

k2=bitxor(k(i1),k)

其中i1=1,2,…,ll×lh;

步骤八六、将步骤八五获得的低频子带扩散密钥流k2与步骤八二所述的一维低频子带矩阵sroica进行按位异或运算,获得低频子带加密序列k3:

将所述低频子带加密序列k3与步骤八四中获得置乱后的低频子带置乱序列csroica进行按比特异或操作,获得低频子带密文序列c;

步骤八七、将步骤八六获得的低频子带密文序列c变形,变成大小为ll×lh的低频子带密文矩阵enroica,用下式表示为:

enroica=reshape(c,ll,lh)

步骤九、将低频子带密文矩阵enroica与步骤七中所述高频子带roich,roicv,roicd进行拼接,获得感兴趣区域roi2;拼接方法如下式:

roi2=[enroica,roicv;roich,roicd];

将所述感兴趣区域roi2进行混沌加密,获得加密后的感兴趣区域密文enroi;

步骤十、将步骤九所述感兴趣区域密文enroi归一化处理,获得归一化感兴趣密文normal_enroi,将所述归一化感兴趣密文normal_enroi转换成16位无符号整数类型,生成16位无符号整数感兴趣区域密文enroi2;

步骤十一、将步骤十所述的16位无符号整数感兴趣区域密文enroi2,按照步骤四所述判别为感兴趣区域标志位roi_flags为1的块位置放回,获得最终加密图像enimg。

本发明的有益效果:本发明提出的基于信息熵更新密钥的感兴趣区域医学图像混沌加密解密方法,本发明利用小波变换对医学图像的感兴趣区域进行处理,实现了图像的频域加密。同时,使用超混沌系统来置乱扩散医学图像的感兴趣区域,从而实现图像在空间域的保护。此外,本发明设计信息熵密钥更新方法,使密钥不仅与混沌系统的参数有关,而且与明文图像有关,从而能够抵抗已知明文攻击或者选择明文攻击。

附图说明

图1为本发明所述基于信息熵更新密钥的感兴趣区域医学图像混沌加密方法流程图;

图2为本发明所述基于信息熵更新密钥的感兴趣区域医学图像混沌解密方法流程图;

图3为本发明所述基于信息熵更新密钥的感兴趣区域医学图像混沌加密解密方法效果图:其中图a为“胸部最大密度投影”灰度医学图像原始图像,图b为“胸部最大密度投影”灰度医学图像加密图像,图c为“胸部最大密度投影”灰度医学图像解密图像;

具体实施方式

具体实施方式一、结合图1至图3说明本实施方式,基于信息熵更新密钥的感兴趣区域医学图像混沌加密方法,该方法由以下步骤实现:

步骤一、取大小为512×512的“胸部最大密度投影”灰度医学图像,如附图3a)所示,作为原始图像pimg。

步骤二、将原始图像pimg分为大小为2×2的图像块bs,共得65536个图像块,其中s为图像块b的编号,s=1,2,…,65536。

步骤三、根据公式(1)依次计算步骤二所述图像块bs内所有像素灰度值的平

其中mean2()表示矩阵均值函数。

步骤四、感兴趣区域判别,判别方法如下:

时,则该图像块bs为感兴趣区域roibr。设置对应的感兴趣区域标志位roi_flags为1。

时,则该图像块bs为非感兴趣区域roni。设置对应的感兴趣区域标志位roi_flags为0。

其中t为感兴趣区域阈值,为用户根据加密安全需求设定。其中r为图像感兴趣区域编号,r=1,2,…,sum(roi_flags)。其中roi_flags为对应的第s个感兴趣区域的标志位,sum(roi_flags)为pimg中所有被判别为感兴趣区域的图像块的个数。在本实施例中,t=0,thoraxmip灰度医学图像的中sum(roi_flags)即感兴趣区域的总数量为37259。

步骤五、将步骤四所述r个感兴趣区域roibr进行矩阵重排,变形为长度为2×2的感兴趣区域序列sroibr。

步骤六、将步骤五所述的r个感兴趣区域序列sroibr按照从上向下的顺序组合成矩阵,得到大小为(2×2)×37259感兴趣区域矩阵roi_m,操作方法如公式(2)下所示:

roi_m=[sroib1,sroib2,…,sroib37259](2)

步骤七、对步骤六所述感兴趣区域矩阵roi_m根据公式(3)进行二维离散小波变换。得四个小波子带,分别为低频子带roica,高频子带roich、roicv和roicd。

其中liftwave表示小波基的种类,int2int表示整数变换;lwt2是二维离散小波整数变换函数,double是将矩阵数据类型转为double类型的函数,本实例中选用‘haar’小波基,即小波变换的母函数。

步骤八、对步骤七得到的低频子带roica转换为带符号十六位整数,然后进行混沌加密,得密文低频子带enroica,具体加密方法如下:

8a、由用户设定x0,y0,z0,u0,ω0的值作为低频子带加密密钥,在本实施例中x0=10,y0=10,z0=10,u0=10,ω0=10;

8b、将大小为2×18630的低频子带roica根据公式(4)变形为一维低频子带矩阵sroica:

sroica=reshape(roica,1,[])(4)

其中reshape()表示矩形变形函数。

8c、计算一维低频子带矩阵sroica的信息熵,求信息熵的公式如下

其中pi表示像素i的概率,h(sroica)为一维低频子带矩阵sroica的信息熵,本实例中一维低频子带矩阵信息熵为7.371715144230266。

8d、采用公式(6)所示方法进行信息熵初值更新方法生成混沌系统初值:

q0=(h(sroica)+1)/(1+h(sroica)+x0+y0)(6)

其中q0表示混沌系统初值,本实例中q0为0.295072578505454。

8e、选择tent映射生成混沌序列,tent混沌状态方程如公式(7)所示:

其中μ为tent映射的控制参数,在本实例中μ=1.99999,q0为tent映射的系统初值,

将公式(7)所示tent混沌系统迭代3×(2×18630)次,生成混沌序列q=[q1,q2,…,q111780]。

8f、舍弃步骤8e所述混沌序列q的前9999个迭代结果,从第10000个值开始顺序选取37260个值作为低频子带置乱序列q2。

8g、将q2按照公式(8)升序排序,并记录其索引值为t。

[q_sorted,t]=sort(q2)(8)

其中sort()表示排序函数,q_sorted表示q2升序排序后的序列,t表示排序后q_sorted的数值在q2中位置信息。

8h、将步骤8b所述的一维低频子带序列sroica,按照步骤8g)得到的索引序列t进行置乱得到低频子带置乱序列csroica,置乱公式如下:

csroica=sroica(t)(9)

8i、选择五维超混沌系统生成混沌序列,混沌方程如公式(10)所示:

其中a,b,c为常数参数,h,p1,p2为控制参数,在本实施例中a=10,b=8/3,c=28,h=-2,m1=0.4,m2=8,使用步骤(8a)所述加密密钥x0,y0,z0,u0,ω0作为混沌系统的初始参数,迭代60000次,得到五维混沌矩阵a,

将五维混沌矩阵a按照公式(11)所示方法转换为混沌扩散序列y。

y=reshape(a,1,[]);(11)

8j、从步骤8i中生成的混沌扩散序列y的第10000个值开始顺序选取37260个值作为低频子带密钥流k,并对k做如下处理:

k=int16(mod(floor(k×104),256))(12)

其中mod为取模函数,floor为向下取整,int16为将矩阵内数值转换为带符号的16位整数。

8k、将低频子带密钥流k进行公式(13)所示的操作,生成低频子带扩散密钥流k2:

k2=bitxor(k(i1),k)(13)

其中i1=1,2,…,37260。

8l、将低频子带扩散密钥流k2与步骤8b所述一维低频子带矩阵sroica执行公式(14)所述操作,得到低频子带加密序列k3:

k3(j)=bitxor(k2(j),sroica(j-1));j=2,3,4,...,37260(14)

8m、将步骤8k所述的低频子带加密序列k3和步骤8g中得到的低频子带置乱序列csroica进行按比特异或操作得到低频子带密文序列c,方法如下

c=bitxor(k3,csroica)(15)

8n、将低频子带密文序列c变形,变成大小为2×18630的低频子带密文矩阵enroica,方法如公式(16)所示:

enroica=reshape(c,2,18630)(16)

步骤九、将密文低频子带密文矩阵enroica与步骤七中所述高频子带roich,roicv,roicd进行拼接。拼接方法如公式(17)所示,得感兴趣区域roi2:

roi2=[enroica,roicv;roich,roicd];(17)

步骤十、将步骤九所述感兴趣区域roi2进行混沌加密,得加密后的感兴趣区域密文enroi。

10a、选择x'0=10,y'0=11,z'0=10,u'0=10,ω'0=10作为感兴趣区域加密密钥;

10b、将大小为4×37259的感兴趣区域roi2变形为一维感兴趣区域矩阵sroi,公式如下:

sroi=reshape(roi2,1,[])(18)

10c、选择tent映射生成混沌序列,q'0为tent映射的系统初值,采用公式(19)方法进行初值更新

q'0=1/(1+x'0+y'0)(19)

其中,本实例中q'0=0.04545455。将公式(5)所示tent映射混沌系统迭代3×(4×37259)次,生成混沌序列q'=[q1',q'2,…,q'447108]。

10d、舍弃步骤10c所述混沌序列q'的前9999个迭代结果,从第10000个值开始顺序选取149036个值作为感兴趣区域置乱序列q'2。

10e、将q'2按照公式(20)升序排序,并记录索引值,组成索引序列t2。

[q'2_sorted,t2]=sort(q'2)(20)

其中sort()表示排序函数,q'2_sorted表示q'2升序排序后的序列,t2表示排序后q'2_sorted的数值在q'2中的位置信息。

10f、将步骤10b所述一维感兴趣区域sroi,按照步骤10e)得到的索引序列t2进行置乱得到感兴趣区域置乱序列csroi,置乱公式如下:

csroi=sroi(t2)(21)

10g、使用五维超混沌系统生成混沌序列,混沌方程如公式(10)所示,其中a,b,c为常数参数,h,p1,p2为控制参数,在本实施例中a=10,b=8/3,c=28,h=-2,m1=0.4,m2=8,使用步骤10a)所述感兴趣区域加密密钥x'0,y'0,z'0,u'0,ω'0作为混沌系统的初始值,迭代60000次,生成五维混沌矩阵w,

将五维混沌矩阵按照公式(22)所示方法转换为一维混沌序列,记为x。

x=reshape(w,1,[])(22)

10h、从步骤10g中生成的混沌序列x的第10000个值开始顺序选取149036个值作为感兴趣区域密钥流k4,并对k4做如下处理:

k4=int16(mod(floor(k4×104),256));(23)

其中mod为取模函数,floor为向下取整,int16为将矩阵内数值转换为带符号的16位整数。

10i、将感兴趣区域密钥流k4进行扩散生成感兴趣区域扩散密钥流k5,具体公式如下:

k5=bitxor(k4(i2),k4)(24)

其中i2=1,2…,149036。

10j、将感兴趣区域扩散密钥流k5与步骤10b)所述一维感兴趣区域矩阵sroi执行公式(25)所述操作,得到感兴趣区域加密序列k6

k6(k)=bitxor(k5(k),sroica(k-1));k=2,3,4,...,149036(25)

10k、将步骤10j中得到的感兴趣区域加密序列k6和步骤10f)中得到的感兴趣区域置乱序列csroi进行按比特异或操作得到感兴趣区域密文序列c2,具体步骤如下

c2=bitxor(k6,csroi)(26)

10l、将感兴趣区域密文序列c2变形,变成大小为4×37259的感兴趣区域密文enroi,变形公式如下:

enroi=reshape(c2,4,37259)(27)

步骤十一、将步骤十所述感兴趣区域密文enroi归一化处理,得到归一化感兴趣密文normal_enroi,用下式表示为:

[normal_enroi,ps]=mapminmax(enroi,0,1)(28)

其中mapminmax为归一化函数,ps表示映射前矩阵相关参数的结构体。

步骤十二、将步骤十一所述的归一化感兴趣密文normal_enroi转换成16位无符号整数类型,生成16位无符号整数感兴趣区域密文enroi2,公式如下:

enroi2=im2uint16(normal_enroi)(29)

其中im2uint16表示将图像数组转换成unit16类型函数。

步骤十三、将步骤十二所述16位无符号整数感兴趣区域密文enroi2,按照步骤四所述判别为感兴趣区域标志位roi_flags为1的块位置放回,得最终加密图像enimg。

具体实施方式二、结合图2和图3说明本实施方式,本实施方式为具体实施方式一所述的基于信息熵更新密钥的感兴趣区域医学图像混沌加密方法的解密方法,具体过程为:

步骤a、取大小为512×512的灰度医学密文图像enimg作为加密图像。

步骤b、将加密图像enimg分为大小为2×2的图像块b2s,共得65536个图像块,其中s为图像块b2的编号,s=1,2,…,65536。

步骤c、根据公式(30)依次计算步骤二所述图像块b2s内所有像素灰度值的平均值

其中mean2()表示矩阵均值函数。

步骤d、加密图像的加密区域判别,判别方法如下:

时,则该图像块b2s为加密区域enroibk。设置对应的加密区域标志位enroi_flagk为1。

时,则该图像块b2s为非加密区域。设置对应的加密区域标志位enroi_flagk为0。

其中t为加密过程中的感兴趣区域阀值,其中k为图像加密区域编号,k=1,2,…,sum(enroi_flagk)。其中enroi_flagk为对应的第k个加密区域的标志位,sum(enroi_flagk)为enimg中所有被判别为加密区域的图像块的个数。在本实施例中,密文图像的中sum(enroi_flagk)即加密区域的总数量为37259。

步骤e、将步骤四所述k个加密区域enroibk进行矩阵重排,变形为长度为2×2的加密区域序列senroibk。

步骤f、将步骤五所述的k个加密区域序列senroibk按照从上向下的顺序组合成矩阵,得到大小为(2×2)×37259加密区域矩阵enroi3,操作方法如公式(31)下所示:

enroi3=[senroib1,senroib2,…,senroib37259](31)

步骤g、将步骤六所述加密区域矩阵enroi3进行归一化处理,得到归一化加密区域矩阵normal_enroi3,公式如下:

normal_enroi3=mat2gray(enroi3);(32)

其中mat2gray表示归一化处理函数。

步骤h、将步骤七所述归一化加密区域矩阵normal_enroi3进行反归一化处理,得到反

归一化加密区域矩阵enroi4,操作方法如公式(33)所示:

enroi4=mapminmax('reverse',normal_enroi3,ps)(33)

其中mapminmax为归一化函数,reverse表示执行反归一化操作,ps表示映射前矩阵相关参数的结构体;

步骤i、对步骤八所述的反归一化加密区域矩阵enroi4转换为带符号十六位整数,然后进行解密,得到解密区域deroi,具体解密方法如下:

步骤i1、选择x'd0=10,y'd0=11,z'd0=10,u'd0=10,ω'd0=10作为加密区域解密密钥;

步骤i2、将大小为4×37259的反归一化加密区域矩阵enroi4变形为一维加密区域序列senroi,公式如下:

senroi=reshape(enroi3,1,[])(34)

步骤i3、使用五维超混沌系统生成混沌序列,混沌方程如公式(10)所示,其中a,b,c为常数参数,h,p1,p2为控制参数,在本实施例中a=10,b=8/3,c=28,h=-2,m1=0.4,m2=8,使用步骤i1所述加密区域解密密钥x'd0,y'd0,z'd0,u'd0,ω'd0作为混沌系统的初始值,迭代60000次,生成五维混沌矩阵dw,

将五维混沌矩阵按照公式(35)所示方法转换为一维混沌序列,记为dx。

dx=reshape(dw,1,[]);(35)

步骤i4、从步骤i3中生成的混沌序列dx的第10000个值开始顺序选取149036个值作为加密区域解密密钥流dk,并对dk做如下处理:

dk=int16(mod(floor(dk×104),256));(36)

其中mod为取模函数,floor为向下取整,int16为将矩阵内数值转换为带符号的16位整数。

步骤i5、将加密区域解密密钥流dk进行逆扩散操作,生成加密区域逆扩散解密密钥流dk2,具体公式如下:

dk2=bitxor(dk(i2),dk)(37)

其中i2=1,2…,149036。

步骤i6、将步骤i5所述加密区域逆扩散解密密钥流dk2与步骤7b)中一维加密区域序列senroi执行公式(38)得到置乱后的一维解密序列cderoi,方法如下:

其中i3=2,3,…,149036

步骤i7、使用tent映射生成混沌序列,q'd0为tent映射的系统初值,采用公式(39)方法进行初值更新

q'd0=1/(1+x'd0+y'd0)(39)

本实例中,q'd0=0.04545455,将公式(7)所示tent映射混沌系统迭代3×(4×37259)次,生成混沌序列dq'=[q'd1,q'd2,…,q'd447108]。

步骤i8、舍弃步骤i7所述混沌序列dq'的前9999个迭代结果,从第10000个值开始顺序选取149036个值作为感兴趣区域置乱序列dq'2。

i9、将dq'2按照公式(40)升序排序,并记录索引值,组成索引序列dt2。

[dq'2_sorted,dt2]=sort(dq'2);(40)

其中sort()表示排序函数,dq'2_sorted表示dq'2升序排序后的序列,dt2表示排序后dq'2_sorted的数值在dq'2中的位置信息。

步骤i10、将步骤i6所述置乱后的一维解密序列cderoi与步骤i9索引值dt2执行公式(41)进行逆置乱,得到一维逆置乱解密序列c3

c3(dt2)=cderoi(41)

步骤i11、将一维逆置乱解密序列c3变形,变成大小为4×37259的解密矩阵deroi,变形公式如下:

deroi=reshape(c3,4,37259)(42)

步骤j、对步骤七所述解密矩阵deroi根据公式(43)进行二维离散小波变换。得四个小波子带,分别为密文低频子带roica2,密文高频子带roich2、roicv2和roicd2。

其中liftwave表示小波基的种类,int2int表示整数变换;lwt2是二维离散小波整数变换函数,double是将矩阵数据类型转为double类型的函数,本实例中选用‘haar’小波基,即小波变换的母函数。

步骤k、根据公式(44)得到密文低频子带roica2矩阵的大小

[m,n]=size(roica2);(44)

其中size()为求矩阵大小的函数,本实例中m=2,n=18630。

步骤l、根据步骤九得到的m,n通过公式(45)计算出解密矩阵deroi中低频子带加密区域enroica2,和高频子带解密矩阵deroich、deroicv和deroicd;

步骤m、对步骤十二所述的低频子带加密区域enroica2,然后进行解密,得到低频子带解密矩阵deroica,具体解密方法如下:

步骤m1、选择xd0=10,yd0=10,zd0=10,ud0=10,ωd0=10作为低频子带加密区域解密密钥;

步骤m2、将大小为2×18630的加密区域enroica2变形为一维低频子带加密序列senroi2,公式如下:

senro2=reshape(enroica2,1,[])(46)

步骤m3、选择五维超混沌系统生成混沌序列,混沌方程如公式(10)所示,其中a,b,c为常数参数,h,p1,p2为控制参数,在本实施例中a=10,b=8/3,c=28,h=-2,m1=0.4,m2=8,使用步骤m1所述加密密钥xd0,yd0,zd0,ud0,ωd0作为混沌系统的初始参数,迭代60000次,得到五维混沌矩阵da,

将五维混沌矩阵da按照公式(47)所示方法转换为混沌扩散序列dy。

dy=reshape(da,1,[])(47)

步骤m4、从步骤m3中生成的混沌扩散序列dy的第10000个值开始顺序选取37260个值作为低频子带解密密钥流dk3,并对dk3做如下处理:

dk3=int16(mod(floor(dk3×104),256))(48)

其中mod为取模函数,floor为向下取整,int16为将矩阵内数值转换为带符号的16位整数。

m5、将低频子带解密密钥流dk3进行公式(49)所示的操作,生成低频子带逆扩散解密密钥流dk4:

dk4=bitxor(dk3(i3),dk3)(49)

其中i3=1,2,…,37260。

m6、将低频子带逆扩散解密密钥流dk4与步骤m2所述一维低频子带加密序列senroi2执行公式(50)所述操作,得到置乱后的一维低频子带解密序列cderoi2

其中i4=1,2,…,37260。

m7、计算步骤m6所述置乱后的一维低频子带解密序列cderoi2的信息熵,求信息熵的公式如下

其中pi表示像素i的概率,h(cderoi2)为一维低频子带解密序列cderoi2的信息熵,在本实例中值为7.371715144230266。

m8、采用公式(52)所示方法进行信息熵初值更新方法生成混沌系统初值:

qd0=(h(cderoi2)+1)/(1+h(cderoi2)+xd0+yd0)(52)

其中qd0表示混沌系统初值,本实例中qd0为0.295072578505454。

m9、选择tent映射生成混沌序列,tent混沌状态方程如公式(7)所示,其中μ为tent映射的控制参数,在本实例中μ=1.99999,qd0为tent映射的系统初值,将公式(7)所示tent混沌系统迭代3×(2×18630)次,生成混沌序列dq=[qd1,qd2,…,qd111780]。

m10、舍弃步骤m9所述混沌序列dq的前9999个迭代结果,从第10000个值开始顺序选取37260个值作为感兴趣区域置乱序列dq2。

m11、将dq2按照公式(53)升序排序,并记录索引值,组成索引序列dt;

[dq2_sorted,dt]=sort(dq2);(53)

其中sort()表示排序函数,dq2_sorted表示dq2升序排序后的序列,dt表示排序后dq2_sorted的数值在dq2中的位置信息。

m12、将步骤m6所述置乱后的一维低频子带解密序列cderoi2与步骤m11索引值dt执行公式(54)进行逆置乱,得到一维低频子带逆置乱解密序列c4;

c4(dt)=cderoi2(54)

m13、将一维低频子带逆置乱解密序列c4变形,变成大小为2×18630的解密矩阵deroica,变形公式如下:

deroica=reshape(c4,2,18630)(55)

步骤n、将步骤m所述低频子带解密矩阵deroica和步骤十所述高频子带解密矩阵deroich、deroicv和deroicd执行公式(56)进行二维离散小波变换重构,得到解密矩阵deroi2

其中liftwave表示小波基的种类,int2int表示整数变换;ilwt2()二维离散小波变换重构函数,uint8()是将矩阵数据类型转为无符号8bit整数的函数,本实例中选用‘haar’小波基,即小波变换的母函数。

步骤o、将解密后的感兴趣区域明文deroi2,按照步骤d所述判别为加密区域标志位enroi_flagk为1的块位置放回,得最终解密图像deimg。

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