zoukankan      html  css  js  c++  java
  • 基于图像块分组的加密域可逆信息隐藏-实现

    原始方案

    介绍 

    该方案主要关注加密域可逆信息隐藏,即内容所有者在发送前先将原始载体加密,加密后的载体经数据隐藏者获取并嵌入信息后发送给接收者,接收者根据相应密钥进行解密及信息提取. 由于在某些场合下内容所有者并不信任数据隐藏者,即内容所有者担心载体内容被数据隐藏者泄露,因此,需要一种加密域的可逆信息隐藏方案. 

    现有的加密域可逆信息隐藏方法 

    1) 加密前不做任何处理,通过简单修改部分密文数据以嵌入信息; 

    2) 将密文数据压缩以腾出空间容纳额外信息; 

    3) 加密图像前先进行预处理,预留出空间以便于信息嵌入; 

    4) 用公钥机制加密载体数据,利用加密技术的同态性嵌入信息. 

    论文实现方案 

    方案整体结构如图所示内容所有者利用加密密钥对原始图像进行加密,得到加密图像;数据隐藏者将加密图像分块,利用信息嵌入密钥将图像块分组,在每组中嵌入多比特信息,之后将含有秘密信息的加密图像发送给接收者. 接收者先利用加密密钥将密文图像解密,得到1 幅与原始图像近似的解密图像,之后根据自然图像空间相关性与信息嵌入密钥提取秘密信息并恢复原始图像. 

     

    方案结构图 

    即:内容所有者:  

    • 首先,用加密密钥将原始图像加密  

    • 然后,将加密图像分块并分组  

    数据隐藏者:  

    • 最后,通过修改每组图像块中的1块来嵌入秘密信息  

    接收者:  

    • 将含有秘密信息的加密图像解密后,得到1幅与原始图像近似的解密图像  

    • 再根据自然图像的空间相关性恢复图像并提取秘密信息  

    图像加密 

    对于未经压缩的灰度图像,任意1 个图像像素pi,j的取值范围为[0,255],(i, j)表示像素在块中的位置pi,j 可用8 bit 来表示,设各像素的比特位为bi,j,0,bi,j,1,…,bi,j,7,则 

     

    其中·表示向下取整. 内容所有者利用加密密钥产生个伪随机比特流ri,j,k ,与图像像素各比特位bi,j,k逐位进行异或运算 

     

    所得到的Bi,j,k即图像像素pi,j加密的结果,之后将加密图像传送给数据隐藏者. 

    信息嵌入 

    数据隐藏者获得加密图像后,在不知道原始图像内容情况下,也能执行秘密信息嵌入操作.首先将加密图像分块,再将图像块分组,修改每组图像块中1 个嵌入信息. 具体步骤如下: 

    1. 将图像分块,每块大小s *s. 设图像大小为*N,则共有n 个图像块:

    1. k 个图像块分为1 组(k≤n),记为H1,H2,…,Hk ,各组互不重叠,则共有

      组.图像块的分组方式由信息嵌入密钥决定,即由信息嵌入密钥决定图像块的排列顺序,按此顺序每k 个块分为1 组. 对每组通过修改k 个图像块中1 个块来嵌入信息. 修改方式如步骤3 所示. 由于k 个图像块对应了数据修改时的k 种可能,因此,在每组中可嵌入t 比特二进制信息(
    1. 将加密后的比特二进制信息转换为十进制数m (0≤m≤2- 1≤k - 1),修改第m + 1个图像块Hm +1,即在当前组中嵌入了t 比特信息.Hm +1的修改方式如图2 所示,将图像块按棋盘格方式划分,之后将绿色部分所代表像素的第L 位取(1≤L≤8),即通过翻转绿色部分像素的第L 位实现秘密信息嵌入. 

     

    图像块中的像素分布 

    1. 对各组均按步骤嵌入信息即完成信息嵌入操作. 

    由于图像共分为组,每组嵌入t 比特信息. 因此信息嵌入容量为 

     

    图像解密 

    将密文图像像素用8 bit 表示:b’i ,j,0,b’i ,j,1,…,b’i ,j,7,利用加密密钥产生1 个伪随机比特流ri,j,k ,并bi ,j,k逐位进行异或运算 

     

    所得到的B’i ,j,k为像素各比特的解密结果,则解密像素灰度值为 

     

    解密图像内容与原始图像近似,由信息嵌入过程可知,包含额外信息的解密图像相对于原始图像的最小均方误差MSE (mean square error)为 

     

    则解密图像的峰值信噪比PSNR (peak signal to noise ratio)为 

     

    根据式(8)对应不同参数L、k,解密图像峰值信噪比的理论值如表所示不难看出,设置合适的参数可获得质量较高的解密图像.。在本实验中,参数选择用k=8,L=4 

     

    信息提取及图像恢复 

    接收者用加密密钥将密文图像解密后,得到与原始图像大致相同的解密图像. 此时,可根据信息嵌入密钥恢复原始图像并提取秘密信息. 每组图像块中有且仅有个被修改,则接收者只需找出每组图像块中被修改的块即可恢复图像并提取信息. 

    由于自然图像具有空间相关性,因此,图像被修改后的平滑度小于修改前. 对于被修改的图像块,其平滑度较小,将其以相同方式再次修改后便返回到未修改状态,此时平滑度较大. 被修改的图像块经二次修改后平滑度变大,而未被修改的图像块经二次修改后平滑度变小. 据此便可找出每组图像块中被修改的块. 衡量图像块平滑度的公式为 

     

    式中:pu,v为块中对应的像素值,(u,v)为像素在块中的位置; d1 反映了中心像素与其预测值的差异;d2反映了相邻像素的差异;d3 表示边沿像素与其预测值的差异; f 为衡量当前块的平滑度,f 越大表示平滑度越小. 

    信息提取及图像恢复的具体步骤如下: 

    1. 将图像按照与发送端相同方式分块并分组,对每组按步骤2 恢复图像并提取信息. 

    1. 对当前组的k 个图像块H1,H2,…,Hk按式(9) ~ (12)分别计算f 值,记为f1, f2,…, fk .按图所示方式,将此k 个图像块中黑色部分所代表像素的第位取反,得到k 个新图像块H’1,H’2,,H’k ,再按式(9) ~ (12)分别计算f 值,记为f’1,f’2,…, f’k . 

    A = fa - f忆a (1 ≤ a ≤ k),分别计算各图像块所对应的A 值,记为A1,A2,…,Ak . 对于未经修改的图像块,fa <f’a ;而对于被修改的图像块,fa >f’a . 即被修改图像块的值最大设Aw = max{A1,A2,…,Ak },(1 ≤ w ≤ k),则认为第w 个图像块被修改,将H1,H2,…,H’w ,…,Hk 作为恢复的图像块,w -1 作为当前组提取的十进制数,转换为二进制后即为提取的秘密信息. 

    1. 对各组均重复步骤即得到秘密信息与恢复图像. 

    原始实验结果 

    参数设置: 

    M*N:256*256 

    s*s:8*8 

    k:4 

    t:2 

    L:4 

    C:Users杨旭东AppDataLocalMicrosoftWindowsINetCacheContent.Wordlena_g.bmp 

    (1)原始图像  

    C:Users杨旭东AppDataLocalMicrosoftWindowsINetCacheContent.Word加密图像.bmp C:Users杨旭东AppDataLocalMicrosoftWindowsINetCacheContent.Word加密图像_隐藏信息.bmp 

    (2)加密图像 (3)带有水印的加密图像 

    C:Users杨旭东AppDataLocalMicrosoftWindowsINetCacheContent.Word解密图像_隐藏信息.bmp C:Users杨旭东AppDataLocalMicrosoftWindowsINetCacheContent.Word恢复图像.bmp 

    (4)带有水印的解密图像(5)去除水印恢复原图 

     

    (6)嵌入的水印信息 

     

    (7)从水印提取的信息 

     

    分别计算(1)和(5)与(1)和(4)的最小均方误差和峰值信噪比,可以看出解密后带有水印的图像的峰值信噪比为40多,而去除后的图像的峰值信噪比为无穷,也就是说完美恢复为原图像。而水印信息也完美提取出来了。 

    方案改进 

    1. 原始方案只对灰度图片有效改进方案增加对彩色图片的支持 

    1. 原始方案在提取图像时需要遍历所有的像素块,改进方案遍历的像素块减少,这是因为原始方案利用了一个改变参数,在每组中最大值所对应的块为隐藏信息快,而实际上根据计算公式可以得出最大值是正数而其他值是负数,所以不需要在整组中作比较只需要在计算后与0相比即可得出,而之后的也就没意义了 

    1. 原始方案在信息嵌入时分块大小是确定的,改进方案根据需要嵌入的信息长度动态变化分块大小,以达到嵌入更多信息的目的 

    1. 原始方案在信息嵌入时选择以一种方式改变图像,改进方案以两种方式改变,可将嵌入信息长度增加一倍 

     

    1. 原始方案只改变一层像素(不管是灰度还是彩色),改进方案对于彩色图片可以在每一层嵌入不同的信息,增加嵌入信息容量改进结果 

    改进结果 

    参数设置: 

    M*N:256*256 

    s*s:8*8 

    k:8 

    t:3 

    L:4 

    C:Users杨旭东AppDataLocalMicrosoftWindowsINetCacheContent.Wordlena.bmp 

    (1)原始图像  

    C:Users杨旭东AppDataLocalMicrosoftWindowsINetCacheContent.Word加密图像.bmp C:Users杨旭东AppDataLocalMicrosoftWindowsINetCacheContent.Word加密图像_隐藏信息.bmp 

    (2)加密图像 (3)带有水印的加密图像 

    C:Users杨旭东AppDataLocalMicrosoftWindowsINetCacheContent.Word解密图像_隐藏信息.bmp C:Users杨旭东AppDataLocalMicrosoftWindowsINetCacheContent.Word恢复图像.bmp 

    (4)带有水印的解密图像(5)去除水印恢复原图 

     

    (6)嵌入的水印信息 

     

    (7)从水印提取的信息 

     

    分别计算(1)和(5)与(1)和(4)的最小均方误差和峰值信噪比,可以看出解密后带有水印的图像的峰值信噪比为40多,而去除后的图像的峰值信噪比为无穷,也就是说完美恢复为原图像。而水印信息也完美提取出来了。而彩色图像的峰值信噪比要比灰度图像高,具有更好的隐藏效果。 

    GUI界面 

     

    可以看到嵌入368bit信息时,图像的PSNR值是非常好的,由于加解密用的异或,速度比较快,且提取信息后的图像与原图像NC值为1,说明无损提取,完全加密域可逆信息隐藏 

    总结

    问题 

    对于上述的改进方案还是有些问题的,上述改进只是在理论上通过,实验中还没全部验证,比如嵌入容量是否会提升很多,利用嵌入信息的长度自动设置组数k,这样做是否会提升容量;还有利用图像的平滑度去找到修改的图像块,正确性是否有待保证,是都每次能保证每次都能找到等,还需后续继续学习探索。 

    参考文献 

    [1]程航王子驰张新鹏基于图像块分组的加密域可逆信息隐藏[J]. 北京工业大学学报, 2016, 42(5):722-728. 

    作者: Pam

    出处: https://www.cnblogs.com/pam-sh/>

    关于作者:网安在读

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(mir_soh@163.com)咨询.

  • 相关阅读:
    pycharm 使用pip3更新插件已经更新时报错
    剑指Offer系列之题11~题15
    剑指Offer系列之题1~题5
    个人hexo博客(静态,无后台)搭建
    设计模式之单例模式
    Hibernate实现limit语句效果
    Springboot项目中 前端展示本地图片
    eclipse报错:problems during content assist
    python中open与with open的区别
    修改Jenkins目录
  • 原文地址:https://www.cnblogs.com/pam-sh/p/15244943.html
Copyright © 2011-2022 走看看