利索能及
我要发布
收藏
专利号: 2016110401642
申请人: 陕西师范大学
专利类型:发明专利
专利状态:已下证
更新日期:2025-10-27
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于无权值向量的改进EMD图像密写嵌入方法,其特征在于包括以下步骤:第1步:记分辨率为M×N的p比特载体图像为C=(ci,j)M×N,ci,j∈{0,1,…,2p-1},记秘密信息对应为长度为l的2进制比特位串序列为B,记剩余秘密信息序列为Blast,初始化Blast=B,将C扫描为1维载体元素序列S=(si)MN,记S的剩余序列为Slast,初始化Slast=S,记Sembedded为已嵌入秘密信息的载体元素序列,初始化Sembedded=Φ;

第2步:由用户给定的系统参数μ∈[3.57,4]和初始值x0∈(0,1)迭代生成随机数,为消除暂态效应,将迭代产生的前IT个随机数抛弃,IT>0;

第3步:由连续生成的4个随机数分别为xt,xt+1,xt+2,xt+3和由用户给定嵌密元素数量n的最大值nmax,生成截取的嵌密元素数量n和嵌密元素中最多改变的元素数m,其中,t≥IT,nmax>0,n∈{1,2,…,nmax},m∈{1,2,…,n};

第4步:计算n个嵌密元素最多改变m个嵌密元素所能嵌入的秘密信息组合数Vkind;

第5步:由xt,xt+1,xt+2,xt+3生成Vkind×n维嵌密元素调整表 t≥IT;

第6步:记 其中llast为剩余秘密信息序列的长度,确定当前截取的2进制位串序列的长度lcurrent,从Blast中截取长度为lcurrent的比特位串Bcurrent,并对Blast进行更新;

第7步:将取出的lcurrent个2进制位串序列转换为对应的10进制数d作为待嵌入的秘密信息;

第8步:记 其中l′last为剩余S的长度,从Slast中取前n个元素作为Scurrent并更新Slast;

第9步:记T′adjust第d行为 tdi∈{-1,0,1},记载体元素序列Scurrent=(si)n,对Scurrent依据 调整为S′current=(s′i);

第10步:将S′current添加到Sembedded中;

第11步:反复执行第3步到第10步,直至llast=0,由Sembeded重构秘密图像C′=(c′i,j)M×N并输出。

2.如权利要求1所述的一种基于无权值向量的改进EMD图像密写嵌入方法,其特征在于:在第1步中将载体图像C扫描为1维载体元素序列S=(si)MN的具体方法为式(1):siN+j=ci,j,i=0,1,…,M-1,j=0,1,…,N-1                   (1);

在第2步中由用户给定的系统参数μ∈[3.57,4]和初始值x0∈(0,1)迭代生成随机数的具体方法为将μ,x0代入式(2)迭代生成随机数:xi+1=μxi(1-xi)                 (2);

在第3步中由连续生成的4个随机数分别为xt,xt+1,xt+2,xt+3和由用户给定嵌密元素数量n的最大值nmax,生成截取的嵌密元素数量n和嵌密元素中最多改变的元素数m的具体方法为将xt按式(3)映射为参数n,并由xt+1和n按式(4)确定参数m:式(3)和式(4)中, 为向下取整函数;

在第4步:计算n个嵌密元素最多改变m个嵌密元素所能嵌入的秘密信息组合数Vkind的具体方法为:式(5)中, 表示n个嵌密元素仅改变i个元素所对应的组合数,2i表示被改变的i个元素进行±1调整的全部情况。

3.如权利要求1所述的一种基于无权值向量的改进EMD图像密写嵌入方法,其特征在于:在第5步中由xt,xt+1,xt+2,xt+3生成Vkind×n维嵌密元素调整表 的具体方法为在于包括以下步骤,其中,t≥IT:

第5.1步:初始化全0的Vkind×n维嵌密元素调整表第5.2步:初始化计数变量j=0,k=0;

第5.3步:将j按3进制数进行表示,并用长度为n的1维向量V=(vi)n进行存储,其中vi∈{0,1,2},i=0,1,…n-1对应为j的第i位3进制位,将V映射为V′=(v′i)n,v′i∈{-1,0,1},j=j+1;

第5.4步:统计V′中的非零元素数量nnz,若nnz≤m,则将V′嵌入到Tadjust的第k行,置k=k+

1;

第5.5步:反复执行第5.3步和第5.4步,直至k=Vkind第5.6步:将Tadjust置乱为T′adjust。

4.如权利要求3所述的一种基于无权值向量的改进EMD图像密写嵌入方法,其特征在于:在第5.3步中将V映射为V′=(v′i)n,v′∈{-1,0,1}的具体方法为式(6):在第5.6步中,将Tadjust置乱为T′adjust的具体方法为将Tadjust按式(7)行置乱为T′adjust;

T′adjust=scramblerow(Tadjust,a,b)               (7);

式(7)中,a,b为同余置乱参数分别由xt+2,xt+3映射得到,函数scramblerow()执行的功能如式(8)所示,即将Tadjust第i行作为T′adjust第i′行;

i'=(ai+b)mod Vkind;i=0,1,…,Vkind-1                    (8);

式(7)中同余参数a的具体生成规则为将xt+2,xt+3按式(9)映射为x′t+2∈[3.57,4],将xt+2,xt+3按式(10)映射为x′t+3,将x′t+2和x′t+3分别作为式(2)的系统参数和初始值,将式(2)产生的随机数R,按式(11)量化R′,反复执行式(2)直至R′和Vkind互质,将R′作为a,为消除暂态效应,将迭代产生的前IT个随机数抛弃,IT>0;

x′t+3=0.5(xt+2+xt+3)                  (10);

式(7)中同余参数b的具体生成规则如式(12)所示:

5.如权利要求1所述的一种基于无权值向量的改进EMD图像密写嵌入方法,其特征在于:在第6步中确定当前截取的2进制位串序列的长度lcurrent的具体方法为式(13)在第6步中从Blast中截取长度为lcurrent的比特位串Bcurrent的具体方法为式(14):Bcurrent=truncate(Blast,0,lcurrent-1)                (14);

式(14)中,函数truncate()表示截取函数,即从索引0位置开始到lcurrent-1结束截取Blast中对应的2进制位串;

在第6步中对Blast进行更新的具体方法为式(15):Blast=truncate(Blast,lcurrent,llast-1)               (15)。

6.如权利要求1所述的一种基于无权值向量的改进EMD图像密写嵌入方法,其特征在于:在第7步中将取出的lcurrent个2进制位串序列转换为对应的10进制数d的具体方法为式(16):式(16)中,bi表示lcurrent个2进制位串中的第i个比特;

在第8步中从Slast中取前n个元素作为Scurrent的具体方法为式(17):Scurrent=truncate(Slast,0,n-1)                                (17)在第8步中更新Slast的具体方法为:

Slast=truncate(Slast,n,l′last-1)                             (18);

在第9步中,对Scurrent依据 调整为S′current=(s′i)的具体方法为式(19):式(19)中,overflow()为溢出避免函数,用于避免s′i<0|s′i>255,overflow(v)具体执行的功能如式(20)所示:在第10步中,将S′current添加到Sembedded中的具体方法为式(21):Sembedded=Sembedded||S′current                               (21);

在第11步中由Sembeded重构秘密图像C′=(c′i,j)M×N的具体方法为式(22):c′i,j=esiN+j,i=0,1,…,M-1,j=0,1,…,N-1                       (22)。

7.一种基于无权值向量的改进EMD图像密写提取方法,其特征在于包括以下步骤:第1步:输入原始的载体图像C=(ci,j)M×N,ci,j∈{0,1,…,2p-1}和载密图像C′=(c′i,j)M×N,ci,j∈{0,1,…,2p-1},由用户给定系统参数μ∈[3.57,4],初始值x0∈(0,1)和消除暂态效应的迭代次数参数IT,IT>0以及嵌密元素数量n的最大值nmax,nmax>0,记Bfetched为已提取的秘密信息序列,初始化Bfetched=Φ,将C和C′扫描为1维元素序列S=(sk)MN和S′=(s′k)MN,记S和S′的剩余序列分别为Slast和S′last,初始化Slast=S,S′last=S′,由μ,x0生成随机数,抛弃前IT个随机数;

第2步:由连续生成的4个随机数xt,xt+1,xt+2,xt+3和nmax,计算嵌密元素数量n和嵌密向量中最多改变的元素数m,计算n个嵌密元素最多改变m个嵌密元素所能嵌入的秘密信息组合数Vkind,并生成Vkind×n维嵌密元素调整表 其中,t≥IT;

第3步:分别从Slast和S′last中提取前n个元素作为Scurrent和S′current,并更新Slast和S′last;

第4步:由Scurrent=(s′i)n,Scurrent=(si)n计算 tdi∈{-1,0,1};

第5步:从T′adjust中搜索出 对应的行号d并转换为对应的2进制序列bi∈{0,1};

第6步:将Bcurrent连接到Bfetched尾部;

第7步:反复执行第2步到第6步,直到Slast=Φ。

8.如权利要求7所述的一种基于无权值向量的改进EMD图像密写提取方法,其特征在于:在第1步中将C和C′扫描为1维载体元素序列S=(sk)MN和S′=(s′k)MN的具体方法为式(1):siN+j=ci,j,i=0,1,…,M-1,j=0,1,…,N-1                        (1);

在第1步中由μ,x0生成随机数的具体方法为将μ,x0代入式(2)迭代生成随机数xi+1=μxi(1-xi)                               (2);

在第2步中由连续生成的4个随机数xt,xt+1,xt+2,xt+3和nmax,计算嵌密元素数量n和嵌密向量中最多改变的元素数m的具体方法为式(3)和式(4)计算出嵌密元素数量n和嵌密向量中最多改变的元素数m,其中,t≥IT:xi+1=μxi(1-xi)                              (3);

式(3)和式(4)中, 为向下取整函数;

在第2步中计算n个嵌密元素最多改变m个嵌密元素所能嵌入的秘密信息组合数Vkind的具体方法为式(5):式(5)中, 表示n个嵌密元素仅改变i个元素所对应的组合数,2i表示被改变的i个元素进行±1调整的全部情况;

在第2步中生成Vkind×n维嵌密元素调整表 的具体方法在于包括以下步骤:

第2.1步:初始化全0的Vkind×n维嵌密元素调整表第2.2步:初始化计数变量j=0;

第2.3步:将Vj=3j按3进制数进行表示,并用长度为n的1维向量V=(vi)n进行存储,其中vi∈{0,1,2},i=0,1,…n-1对应为Vj的第i位3进制位,将V映射为V′=(v′i)n,v′∈{-1,0,

1};

第2.4步:统计V′中的非零元素数量nnz,若nnz≤m,则将V′嵌入到Tadjust的第k行,置k=k+

1;

第2.5步:反复执行第2.3步和第2.4步,直至k=Vkind第2.6步:将Tadjust置乱为T′adjust。

9.如权利要求8所述的一种基于无权值向量的改进EMD图像密写提取方法,其特征在于:在第2.3步中将V映射为V′=(v′i)n,v′∈{-1,0,1}的具体方法为式(6):在第2.6步中,将Tadjust置乱为T′adjust的具体方法为将Tadjust按式(7)行置乱为T′adjust;

T′adjust=scramblerow(Tadjust,a,b)                                (7);

式(7)中,a,b为同余置乱参数分别由xt+2,xt+3映射得到,函数scramblerow()执行的功能如式(8)所示,即将Tadjust第i行作为T′adjust第i′行;

i'=(ai+b)mod Vkind;i=0,1,…,Vkind-1                          (8);

式(7)中同余参数a的具体生成规则为将xt+2,xt+3按式(9)映射为x′t+2∈[3.57,4],将xt+2,xt+3按式(10)映射为x′t+3,将x′t+2和x′t+3分别作为式(2)的系统参数和初始值,将式(2)产生的随机数R,按式(11)量化R′,反复执行式(2)直至R′和Vkind互质,将R′作为a,为消除暂态效应,将迭代产生的前IT个随机数抛弃,IT>0;

x′t+3=0.5(xt+2+xt+3)                                  (10);

式(7)中同余参数b的具体生成规则如式(12)所示:

在第3步中从Slast和S′last中提取前n个元素作为Scurrent和S′current的具体方法为式(23):在第3步中更新Slast和S′last的具体方式为式(24),其中llast是Slast的长度:Slast=truncate(Slast,n,llast-1)                              (24)。

S′last=truncate(S′last,n,llast-1)

10.如权利要求7所述的一种基于无权值向量的改进EMD图像密写提取方法,其特征在于:在第4步中由Scurrent=(s′i)n,Scurrent=(si)n计算 tdi∈{-1,0,1}的具体方法为式(25):式(25)中,fetch()为提取函数,其执行的具体功能如式(26)所示,式(26)中overflow′()为提取溢出函数,用于避免tdi=2|tdi=-2,将2和-2分别转换为-1和1;

在第5步中从T′adjust中搜索出 对应的行号d并转换为对应的2进制序列bi∈{0,1}的具体方法为式(27),其中

在第6步中将Bcurrent连接到Bfetched尾部的具体方法为式(28):Bfetched=Bfetched||Bcurrent                                (28)。