欢迎来到知嘟嘟! 联系电话: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为图像块熵编码的个数,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、交流系数分组:

找出第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,记为交流系数为零的分组 否则,记为交流系数非零的分组将所有的交流系数非零的分组 依次拼接,得到交流系数非零的分组序列其中r’为交流系数非零的分组 的序号,

r1为交流系数非零的分组 的个数;

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

将所有的交流系数为零的分组 依次拼接,得到交流系数为零的分组序列其中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个交流系数的扩展位密文ACA"进行依次重组,得到系数置乱熵编码ECS′n中第i个交流系数熵编码密文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″中的图像块熵编码密文EC S ″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}。