隐写算法(DE: Diamond Encoding)

1. DE直译过来为钻石编码,以下称钻石编码。其模型公式

S_{k}(p,q)=\left \{ (a,b) | \left | p-a \right | + \left\ | q-b \right\ | \leq k \right\}

根据上面的公式可以得到钻石编码模型的图形大致如下:

2. 钻石编码编码的进制确定l=|S_{k}|=2k^{2}+2k+1,则

|S_{1}(p,q)|=5, |S_{2}(p,q)|=13

 

3. 钻石特征值的计算公式(DCV):f(p,q)=((2k+1)\times p + q)mod\,\, l

 

4. 列举,秘密信息s_{t}与钻石特征值的距离:d_{t} = (s_{t} - f(p,q)) mod \,\, l,其中d_{t}决定着选择的位置,若d_{t}=4,则秘密信息嵌入的在D1,D2,D3中对应的位置如下图红色方框所示。

于是相应的像素值的改为如下:D_{1}(p,q)\rightarrow p,q-1D_{2}(p,q)\rightarrow p+1,q-1D_{3}(p,q)\rightarrow p-3,q

其中(p,q)为两个连续的像素值,通过嵌入密码信息得到像素对为(p^{'},q^{'})

5. 秘密信息的提取还是通过钻石特征值DCV:f(p^{'},q^{'})=((2k+1)\times p^{'} + q^{'})mod\,\, l

 

钻石编码的Matlab代码实现源https://github.com/YMilton/steganography/blob/master/DE.m

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章