

算法 5.1最低比特位替换的嵌入过程
for i =1,…,l (c) do
Si←ci
end for
for i =1,…,l (m) do
计算存放第i个消息位的指针 ji
S ji ←ch mi
end for
算法 5.2最低比特位的提取过程
for i =1,...,l(m) do
计算存放第 i个消息位的指针 ji
m i←LSB(ch)
end for
为了能解出秘密信息,接收者必须能获得嵌入过程中使用的索引序列。在最简单的情况下,发送者从第一个元素开始,使用所有的伪装载体元素进行信息传送。通常由于秘密信息比特数比l(c)小,嵌入处理在载体末尾很长一段之前就结束了。这种情况下,剩下的载体元素保持不变。但是这导致了严重的安全问题,载体的第一部分与第二部分,也就是修改的部分和没有修改的部分,具有不同的统计特性。为了解决这个问题,比如共享程序PGMStealth中使用了随机序列来延长秘密信息,使得 l(c)=l(M),因而对载体的开始和结尾产生了一致的随机修改。结果是,嵌入过程更改了比传送秘密信息所需要的更多的元素,从而增大了攻击者对秘密通信的怀疑的可能性。
较复杂的方法是,使用伪随机数发生器以相当随机的方式来扩展秘密信息,一个流行的方法是随机间隔法。如果通信双方使用同一个伪装密钥 k作随机数发生器的种子,那么它们能生成一个随机序列 k1,…,kl(m),并且把它们和索引一起按下列方式生成隐藏
信息位置来进行信息传送:
j1=k1
j i=j i1+k I i≥2(5.1)
从而,可以伪随机地决定两个嵌入位的距离。由于接收者能获得种子 k和随机数发生器的信息,因此他能重构 k i,进一步获得整个元素的索引序列 j i。这种技术在流载体中尤其有效。见算法 5.3和 5.4所示,它们是算法 5.1和 5.2的特殊情况。
| 各省软考办 | ||||||||||