欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2018110407065
申请人: 西南交通大学
专利类型:发明专利
专利状态:已下证
专利领域: 电通信技术
更新日期:2024-01-05
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种JPEG图像比特流加密域可逆数据隐藏方法,包括如下步骤:A、JPEG比特流加密:

A1、交流系数置乱:

A1.1、比特流数据读取:

用户读取大小为H×W的JPEG格式的图像X,获得图像X的原始比特流J,J={SOI,JH,ECS1,ECS2,...,ECSn,...,ECSN,EOI},其中:SOI为图像开始标记符,JH为JPEG头文件,EOI为图像结束标记符;

ECSn为图像中的第n个图像块熵编码,N为图像块熵编码的个数, H为图像X的行数、W为图像X的列数;

ECSn={DCC ,ACC ,ACC ,...,ACC ,...ACC ,EOB};DCC 是第n个图像块熵编码的直流系数熵编码,ACC是ECSn中第i个交流系数熵编码,EOB是图像块熵编码结束标记符,I为交流系数熵编码的个数;

A1.2、交流系数解码:

对原始比特流J中的第n个图像块熵编码ECSn中所有的交流系数熵编码ACC,根据JPEG解码标准进行熵解码,得到第n个图像块熵编码ECSn的交流系数Cn,Cn={ACn,1,ACn,2,...,ACn,t,...,ACn,63},其中ACn,t为第n个图像块熵编码ECSn的交流系数Cn中的第t个交流系数,t=1,2,...,63;

A1.3、AC系数分组:

找出第n个图像块熵编码ECSn的交流系数Cn中最后一个非零交流系数,记为ACn,T,其序号为T;用户对第n个图像块熵编码ECSn的交流系数Cn中的前T个交流系数ACn,t依次进行分组:如果交流系数ACn,t连续为0,则将这些交流系数ACn,t构成一个分组 否则,一个交流系数ACn,t独立构成一个分组 然后,将这些分组 依次拼接,得到第n个图像块熵编码ECSn的系数分组序列Bn, 其中r为第n个图像块熵编码ECSn的交流系数分组 的序号,Rn为第n个图像块熵编码ECSn的交流系数分组 的个数;

A1.4、交流系数分组序列置乱:

在第n个图像块熵编码ECSn的交流系数分组序列Bn中,对前Rn-1个交流系数分序列进行分类,如果交流系数分组 中的交流系数全为0,记为交流系数为零的分组 否则,记为交流系数非零的分组将所有的交流系数非零的分组 依次拼接,得到交流系数非零的分组序列Bn,1,其中r’为交流系数非零的分组 的序号,r1为交流系数非零的分组 的个数;

然后,根据加密密钥K1对交流系数非零的分组序列Bn,1进行伪随机置乱生成交流系数非零的置乱分组序列 其中, 为交流系数非零的置乱分组序列 中的第r’个交流系数非零的置乱分组;

将所有的交流系数为零的分组 依次拼接,得到交流系数为零的分组序列Bn,0,其中 为第r”个交流系数为零的置乱分组,r0为交流系数为零的置乱分组 的个数;r0+r1=Rn-1;r0≤r1;

然后,根据加密密钥K1对交流系数为零的分组序列Bn,0进行伪随机置乱生成交流系数为零的置乱分组序列将交流系数为零的置乱分组序列 中的交流系数为零的置乱分组 与交流系数非零的置乱分组序列 中前r0个交流系数非零的置乱分组 依次交替拼接,再与置乱交流系数非零的分组序列 中后r1-r0个置乱交流系数非零的分组 和系数分组序列Bn中最后一个系数分组 依次拼接,得到生成置乱交流系数分组序列其中r”’为置乱交流系数分组 的序号;

A1.5、置乱交流系数生成:

最后,用户将置乱交流系数分组序列 中所有的交流系数与63-T个0,依次拼接,生成伪随机置乱系数 并通过下式得到置乱交流系

数C′n;

A2、系数置乱比特流生成:

对置乱交流系数C ′n进行熵编码,得到置乱交流系数熵编码并将第n个图像块熵编码ECSn中直流系数的熵编码DCC与置乱交流系数熵编码 拼接,组成第n个系数置乱熵编码ECS′n,将图像开始标记符SOI,JPEG头文件JH,所有的系数置乱熵编码ECS′n以及图像结束标记符EOI依次拼接,得到系数置乱比特流J′,J′={SOI,JH,ECS′1,ECS′2,...,ECS′N,EOI};

A3、系数置乱熵编码异或加密:

在系数置乱比特流J′的第n个系数置乱熵编码ECS′n中,ECS′n={DCC,ACC′,ACC′,...ACC′,EOB},直流系数置乱的熵编码DCC,DCC=[DCH,DCA]由直流系 数置乱霍夫曼编码DCH 和直流系数置乱扩展位DCA 组成;交流系数置乱熵编码ACC′ ,ACC′=[ACH′,ACA′],由交流系数置乱霍夫曼编码ACH和交流系数置乱扩展位ACA组成,i=1,2,...,I;

第n个系数置乱熵编码ECS′n中,提取直流系数置乱熵编码DCC的扩展位DCA和所有交流系数置乱熵编码ACC′的扩展位ACA′,组成第n个块扩展位Ln,Ln={DCA,ACA′,ACA′,...,ACA′};

然后,将所有的块扩展位Ln依次拼接得到比特流扩展位L,L={L1,L2,...,Ln,...LN};用户使用加密密钥K1对比特流扩展位L按位异或加密,生成比特流扩展位密文L′,L′={L′1,L′2,...,L′n,...,L′N};

A4、比特流密文生成:

将第n个系数置乱熵编码ECS′n中的直流系数置乱霍夫曼编码DCH和第n个块扩展位密 文L′n,L′n={DCA′ ,ACA″ ,ACA″ ,...,ACA″ ,...ACA″ }中的直流系数置乱扩展位密文DCA′进行拼接,得到第n个系数置乱熵编码ECS′n中直流系数熵编码密文DCC′,DCC′=[DCH,DCA′];

然后,将系数置乱熵编码ECS′n中的交流系数的霍夫曼编码ACH和块扩展位密文L′n中第i个AC系数的扩展位密文ACA″ 进行依次重组,得到系数置乱熵编码ECS′n中第i个AC系数熵编码密文ACC″,ACC″=[ACH,ACA″],i=1,2,...,I;

最后,将第n个系数置乱熵编码ECS′n中直流系数熵编码密文DCC′和I个交流系数熵编码密文ACC″依次拼接,得到第n个图像块熵编码密文ECS″n,ECS″n={DCC′,ACC″ ACC″ ,...ACC″ ,EOB};所有的图像块熵编码密文ECS″n依次拼接组成熵编码密文序列E″,E″={ECS″1,ECS″2,...,ECS″N};

将图像开始标记代码SOI,JPEG头文件JH,熵编码密文序列E″以及图像结束标记代码EOI依次拼接,得到比特流密文J″,J″={SOI,JH,ECS″1,ECS″2,...,ECS″N,EOI};

A5、图像块熵编码密文置乱:

在比特流密文J″中,用户根据加密密钥K1对熵编码密文序列E″中的图像块熵编码密文E CS ″n 进 行 伪随 机 置 乱 得到 初 始 块 置 乱熵 编 码 密 文 序列 E * ,并将图像开始标记符SOI,JPEG头文件JH,块置乱熵编码密文序列E*以及图像结束标记*

符EOI依次拼接,得到初始块置乱比特流J,A6、块置乱比特流生成:

在初始块置乱比 特流J*中 ,将 第n 个初始块置乱熵编码数据中的直流系数熵编码DCC

*进行熵解码,得到第n个初始块置乱熵编码数据 的直流系数Dn;

将所有初始块置乱熵编码数据 的直流系数Dn依次拼接,得到初始块置乱比特流J*的直流系数序列D,D={D1,D2,...,Dn,...DN};然后,对直流系数序列D进行差分脉冲调制编码,得到差分脉冲调制编码直流系数序列Dc,然后,将差分脉冲调制编码序列Dc中的直流系数 进行熵编码,得到初始块置乱直流*

系数熵编码 并替换初始块置乱熵编码数据 中的直流系数熵编码DCC ,得到块置乱熵编码 所

有的块置乱熵编码 依次拼接组成块置乱熵编码序列E1,最后,将图像开始标记代码SOI,JPEG头文件JH,块置乱熵编码序列E1以及图像结束标记代码EOI依次拼接,得到块置乱比特流J1, 并上传到云端;

B、信息隐藏:

在上传到云端的块置乱比特流J1中,云端根据直方图平移方法,将额外信息U分段在块置乱熵编码 中的交流系数 中,从前至后依次进行信息隐藏;分段隐藏额外信息后的块置乱熵编码 记为携密图像块熵编码

最后,将图像开始标记代码SOI,JPEG头文件JH,所有的携密图像块熵编码 以及图像结束标记代码EOI依次拼接,得到携密比特流Jm,C、信息提取:

在携密比特流Jm中,云端进行B步骤中的直方图平移方法的逆操作,提取出额外信息U,对携密比特流Jm中的交流系数进行恢复,得到置乱比特流J1;最后,云端将置乱比特流J1发送给接收者;

D、JPEG比特流解密:

D1、初始块置乱比特流恢复:

接收者首先在块置乱比特流J1中提取第n个块置乱熵编码 中的直流系数熵编码并进行熵解码,得到第n个块置乱熵编码数据 的直流系数然后,将所有的块置乱熵编码 的直流系数 进行拼接,得到块置乱比特流J1的差分脉冲调制编码直流系数序列Dc;

对差分脉冲调制编码直流系数序列Dc进行差分脉冲调制解码,得到初始块置乱比特流*

J的直流系数序列D,D={D1,D2,...,Dn,...DN};将第n个初始块置乱熵编码数据 的直流系数Dn进行熵编码,得到第n个初始块置乱熵编码数据 的直流系数熵编码DCC*,并替换块置乱熵编码数据 中的直流系数熵编码 得到初始块置乱熵编码数据将所有的初始块置乱熵编码数据 进行拼接,得到初始块置乱熵编码密文序列E*,

最后,将图像开始标记符SOI,JPEG头文件JH,初始块置乱熵编码密文序列E*以及图像结*束标记符EOI依次拼接,得到初始块置乱比特流J;

D2、置乱恢复比特流密文:

接收者根据加密密钥K1对初始块置乱比特流J*中初始熵编码密文序列E*,进行置乱恢复,得到图像块熵编码密文序列E″,E″={ECS″1,ECS″2,...,ECS″N};

并将图像开始标记符SOI,JPEG头文件JH,图像块熵编码密文序列E″以及图像结束标记符EOI依次拼接,恢复得到比特流密文J″,J″={SOI,JH,ECS″1,ECS″2,...,ECS″N,EOI};

D3、图像块熵编码密文异或解密:

在第n个图像块熵编码密文ECS″n中,将其中的直流系数的扩展位DCA′和交流系数的扩展位ACA″,组成第n个图像块熵编码密文ECS″n的块扩展位密文L′n;然后,将比特流密文J″中的所有块扩展位密文L′n依次拼接,得到比特流扩展位密文L′,L′={L′1,L′2,...,L′N};

接收者使用加密密钥K1对比特流扩展位密文L′按位异或解密,得到比特流扩展位L;

D4、系数置乱比特流恢复:

将第n个图像块熵编码密文ECS″n的直流系数的霍夫曼编码DCH 和块扩展位Ln中直流系数的扩展位DCA进行重组,得到第n个图像块熵编码ECS′n中直流系数的熵编码DCC,DCC=[DCH,DCA];

然后,将第n个图像块熵编码密文ECS″n的交流系数的霍夫曼编码ACH和块扩展位Ln中交流系数的扩展位ACA′ 进行重组,得到第n个图像块熵编码ECS′n中第i个交流系数的熵编码ACC′,ACC′=[ACH,ACA′],i=1,2,...,I;最后将直流系数的熵编码DCC和I个交流系数的熵编码ACC′依次拼接,得到图像块熵编码ECS′n;

最后,将图像开始标记代码SOI,JPEG头文件JH,所有的图像块熵编码ECS′n以及图像结束标记代码EOI依次拼接,得到系数置乱比特流J′,J′={SOI,JH,ECS′1,ECS′2,...,ECS′N,EOI};

D5、交流系数置乱恢复:

将系数置乱比特流J′,J′={SOI,JH,ECS′1,ECS′2,...,ECS′N,EOI}替换为原始比特流J,J={SOI,JH,ECS1,ECS2,...,ECSn,...,ECSN,EOI},将替换后的原始比特流J进行A1.2步骤至A1.5步骤的操作得到第n个置乱交流系数C′n,最后,将第n个置乱交流系数C′n替换为第n个图像块熵编码ECSn的交流系数Cn;

D6、原始比特流恢复:

将D5步骤得到的第n个图像块熵编码ECSn的交流系数Cn进行霍夫曼编码,得到第n个图像块熵编码ECSn中交流系数的原始编码 并与第n个图像块熵编码ECSn中直流系数的熵编码DCC组成原始图像块熵编码ECSn;

将图像开始标记符SOI,JPEG头文件JH,所有的原始图像块熵编码ECSn以及图像结束标记符EOI依次拼接,得到原始比特流J,J={SOI,JH,ECS1,ECS2,…,ECSN,EOI}。