论文简述Reversible Data Hiding in Encrypted Images with Two-MSB Prediction加密图像可逆信息隐藏算法

一 误差预测所用方法

1.中值预测器

使用中值预测器MED(Median Edge Detector),对图中x的左、上和左上三个相邻像素,预测出x的预测值px。

2.根据预测误差产生的位图(Location binary map)

位图(Location binary map),可以理解为记录错误位置的图/能找到预测错误位置的地图。

此处的位图标记原始值x和预测值px前两位MSB的预测错误。

用数学详细来讲就是:

粘贴论文来源不同,注意这个p其实和上文中的px是同样的意思,都是指预测值

 然后查看x^{MSB} 与p^{MSB}是否相等,相同则位图标记为0否则标记为1。

二 图像加密原理

1.图像加密原理

对单个像素:

像素位置为(i, j)。

首先将0到255范围的像素转化为二进制。用数学表示就是:

 下括号表示向下取整,mod表示取余。

然后用加密密匙生成伪随机序列r^k_{(i,j)},长度算得出来,对于大小为(M, N)的单通道灰度图片,随机序列长度为8MN

用加密序列与图像进行异或,得到加密图像e^k_{(i,j)}

ⓧ表示按位异或

不用说,加密图像的十进制表示可以计算出来。

 2.初学建议采用 Logistic混沌加密

直接贴代码:

def crypt(im, miu, x0):
    '''
    logistic混沌加密
    :param im: 待加密图像
    :param miu: μ参数
    :param x0: x0参数
    :return: 返回密文图像
    '''
    h, w = im.shape
    c_ = np.zeros_like(im)
    c_[0][0] = x0
    c=[]
    c.append(x0)
    result = np.zeros_like(im)
    result[0][0] = (x0 * pow(2, 48)) % 256
    for x in range(1, h * w):
        i = x // w
        j = x % w
        c.append(miu * c[x - 1] * (1 - c[x - 1]))
        c_[i][j] = (c[x] * pow(2, 48)) % 256
    for i in range(h):
        for j in range(w):
            result[i][j] = im[i][j] ^ c_[i][j]
    return result

简单讲一下要注意的:

要保证加密效果,miu参数和x0参数得在一下范围:

0 < X_0 < 1

3.5699456...< \mu <=4

三 嵌入分块原则与错误标记方法

因为图像是用预测的方式压缩信息,那么可以想到最简单的方法就是在预测正确之处进行信息嵌入,在预测错误之处标记错误并等待算法处理,以便后续的图像无损恢复工作的开展。对于正确之处与错误之处的界限位置的识别,就可以使用分块的方法来处理。事实上,这篇文章就是这样做的。

分块:扫描顺序为从左到右、从上到下,扫描时4个像素为一组。

错误标记:出现了预测错误,则对错误位置前后分块进行处理,前后块4个像素的8个MSB都置1,如图:

这样,碰到同样块,出错的几率是1/2^{8}

四 嵌入过程

用图像加密密匙K_e加密,得到加密后的图像E^{'},其中每个像素为e^{'}_{(i,j)},然后根据位图中的tags决定是否是可嵌入的块,可嵌入则嵌入该块中4像素的8个MSB。嵌入公式如下:

注意,由于我们使用了中值预测器,所以第一行和第一列不嵌入信息。

 五 信息提取与图像无损恢复

3种情况:

1.只有图像加密密匙K_e,则你只能无损恢复图像

首先用图像加密密匙生成解密序列,然后按位与图像进行异或操作,总之就是反照图像加密的原理来操作。具体数学公式如下:

ⓧ表示按位异或

 相比原图,只有嵌入了秘密信息和标记错误的地方会不同。

嵌入秘密信息的部分,既然能嵌入那自然是没有预测误差,直接按中值预测的结果嵌入其2位MSB就行。

标记了错误的地方,就根据标记的情况进行更改就行。

2.只有信息隐藏密匙K_w,那么你只能提取秘密信息

按分块扫描除了第一行、第一列的所有像素,再按错误标记的原则识别错误处,其余地方作为秘密信息提取出来。

然后用你已有的信息隐藏密匙K_w对提取的信息处理,得到解密后可读的秘密信息。

3.两个密匙K_eK_w都有,那么你既可以无损恢复图像,还可以提取完整秘密信息。具体步骤参照上方。

猜你喜欢

转载自blog.csdn.net/m0_46948660/article/details/129838056