原文题目:《A self-embedding secure fragile watermarking scheme with high quality recovery》
学习笔记:
应用场景
为了确保图像在传输过程中不被损坏,在将原始图像发送到云端之前,将用于篡改检测和恢复的水印嵌入到原始图像中,并对带有水印的图像执行加密的操作。在这种情况下,云接收到的只是一幅类似噪声的水印图像,无法获得原始图像的任何信息。只有经过授权的人才能解密水印图像并提取水印以获得原始图像。如果水印图像不幸受到攻击,还可以根据预先嵌入的篡改检测水印和恢复水印定位和恢复篡改区域。
图2的描述:用户对原始图像嵌入水印后加密上传云端,云端首先对上传的图像进行检测(一级检测),如果图像在传输的过程中被篡改,那么像用户返回被篡改的区域,并将被篡改图像返还给用户,以便用户恢复或重新上传。如果图像没有被篡改,将图像存储到云端。用户下载图像,拿到带有水印的加密图像后可以进行二级篡改监测,如果下载的加密图像被篡改或被破坏可以定位篡改的位置 并恢复原始图像。
算法简介(进介绍水印嵌入过程)
1将大小为m × n的原始图像Io分成2 × 2不重叠的块Bi,j,
2 计算每个块Bi,j的平均值,取高5位作为恢复水印Ri,j。
3 基于key1对Io置乱,得到I2,将I2划分为成2 × 2不重叠的块B2i,j,
4. 计算每个块B2 i,j的平均值,并转换为二进制Mi,j。一级篡改检测水印WD1 = (p(i,j),q(i,j), v(i,j)),
5使用键k2和LLS打乱Ri,j得到打乱的恢复水印R ’ i,j 。将R ’ i,j与一级篡改检测水印WD1 i,j拼接到I2的9,10位,最后得到嵌入一级水印的10位图像I3。
6对10位的I3进行两次POB操作,得到7位的I4。在这个过程中, 在10位图像和8位图像中每个像素中的1的数量分别记为键k3和k4。
7 将I4分为2×2不重叠块B3i,j ,然后将每个块B3 i,j中的4个像素转换为7位二进制,并组合成28位序列hi,j,基于k5对hi,j置乱得到Hij, Hij,作为SHA512的输入得到32比特16进制序列
8 将S(I,j,1)和S(I,j,2)转换位二进制并XOR,将XOR的结果转换为十进制得到Qi,j。然后进行模4运算,得到2位二进制水印a1 i,j和a2 i,j。取S(i,j,31)和S(i,j,32)执行相同的操作,得到a3 i,j和a4 i,j,最后将4位水印进行组合,生成二级检测水印WD2 i,j。
9. 将WD2 i,j拼接到自己的块中,得到8位图像I5,如图5所示。
附图
像素POB压缩示例:
水印嵌入位置示例图:
总结
密文域脆弱水印是脆弱水印中的前沿领域,可以保护密文图像在传输或者存储过程中被篡改或破坏。
该文的一个缺陷是POB压缩过程中秘钥太大,如何传输秘钥是一个问题。