《信息隐藏实验十一LSB信息隐藏的RS分析.doc》由会员分享,可在线阅读,更多相关《信息隐藏实验十一LSB信息隐藏的RS分析.doc(13页珍藏版)》请在金锄头文库上搜索。
1、信息隐藏实验十一LSB信息隐藏的RS分析LSB信息隐藏的RS分析一, 实验目的:了解RS隐写分析的原理,掌握一种图像LSB隐写算法的分析方法,设计并实现一种基于图像的LSB隐写的RS隐写分析算法.二, 实验环境(1)Windows 7操作系统;(2)MATLAB R2012b版本软件;(3)图像文件lena。bmp;(4)S-Tools工具;三, 实验原理1。 RS隐写分析原理RS主要是针对采用伪随机LSB嵌入算法进行攻击的一种方法。RS方法不但能检测出图像是否隐藏信息,而且还能比较准确地估算出隐藏的信息长度。RS隐写分析算法考虑图像各个位平面之间具有一定的非线性相关性,当利用LSB隐写算法隐
2、藏秘密信息后,这种相关性就会破坏.只要能找出衡量这一相关性的方法,并对隐藏秘密信息前后的情况加以对比,就有可能设计出隐写分析方法。RS隐写分析方法的理论核心是:任何经过LSB隐写的图像,其最低比特位分布满足随机性,即0、1的取值概率均为1/2,而未经过隐写的图像不存在此特性。对于一个像素的图片,设各个像素的值取自集合,例如一个8bit的灰度图像,。将这些像素分为有着个相邻像素的子集,例如可以取值为4,记为。进一步利用如下函数表示图像块的空间相关性,即 (1)函数使得每一个集合都对应一个实数。中的噪声越大,函数的值越大.的值越小,说明图像相邻像素之间的起伏越小,而图像块的空间相关性越强。然后,定
3、义集合上的3个函数:(1)交换函数:。(2)偏移函数:.(3)恒等变换:.复杂度分辨函数和三种变换函数定义以下三种类型的元素组。(1)Regular :,也就是说对中的元素进行 变换之后增大了元素之间的差别程度,表示正则组。(2)Singular :,也就是说对中的元素进行 变换之后减小了元素之间的差别程度,表示奇异组。(3)Unusable :,也就是对中的元素进行变 换之后元素之间的差别程度不变,表示无用组。引入伪装,它的取值范围是-1、0、1。对应着、三个变换函数.记对于伪装的组的数量为,类似的组记为。例如=(27,28,26,25),=(1,0,1,0),则=(-1,0,-1,0)。于
4、是就得到=(26,28,27,25),=(28,28,25,25).对于一个原始不包含隐藏信息的载体来说具有下面的规律: (2)但是当在载体中嵌入了秘密信息,就会有下面的式子成立: (3)也就是说对于一个待检测的载体,只需要得到上述的统计量,然后通过对比这四个统计参数之间的大小关系就能够判断出载体中是否含有秘密信息.RS算法不但能够判断载体是否含有秘密信息,RS隐写分析算法还能够估计出隐写容量.上面算出的一组、是在比例为(为隐写率)的样点值已经作了一次变换情况下得到的。将该隐写体的所有样点值应用变换,相对于原始载体则有比例为(1)的样点值作了变换,计算此时的、值.如下图1所示,得到的是两组统计
5、量的数据.图 1 RS曲线与像素更改比率间的关系示意图具体步骤如下:将待检测图像分成若干大小相等的图像块,通常定义 = 4,对每个小图像块定义一个掩膜算法函数,通常为(0,1,1,0),即,判断此图像小块属于Regular或Singular,遍历整幅图像,得到,。,定义为: (4) (5)改变掩膜算法函数,令为(0,-1,1,0)重复上一步操作得到和。将图像数据的lSB位取反,用获得的数据重复上述操作得到,以及,。结合如下方程: (6)其中:解方程式(6),取绝对值较小的,计算嵌入概率为:。2. STools工具简介STools是一个时(空)域数字水印软件,支持WAV格式的音频文件、GIF和B
6、MP格式的图像文件,下面介绍基于音频文件的隐藏原理和使用方法。WAV格式的音频文件在Windows中存储为8位或16位值,对于8位样本,这意味着取值范围介于0和255之间。16位的样本取值范围介于0和65535之间。STools在WAV格式的音频文件中隐藏信息时,首先用密码加密,然后根据密码决定要嵌入信息的位置,采用LSB(least significant bits)方法,把秘密信息代替载体音频文件的最不重要比特位.例如,假设一个音频文件有以下8个字节的信息,分别为132 134 137 141 121 101 74 38二进制表示为10000100 10000110 10001001 10
7、001101 01100101 01001010 00100110如果要隐藏二进制字节11010101(213)在这个序列里。简单地取代了音频文件的LSB(最低有效位)进行信息隐藏。因此上述顺序将变更为133 135 136 141 120 101 74 39用二进制表示为10000101 10000111 10001000 10001101 01111000 01001010 00100111这样,秘密信息就隐藏在载体音频文件中,音频文件在听觉效果上和原始文件几乎没有区别。四, 实验分析1. 隐藏信息并分析源代码RS。m如下:clc,clear allorg = imread(lena.bm
8、p);org = double(org);org = org(:);row sample_len = size(org);rs = zeros(2, 4);cor = zeros(1, 3);m = floor(sample_len / 4);M = randsrc(4, 1, 0 1);tmp = zeros(4, 1); 使用LSB,准备待检测图像,隐写率为40% msg_len = floor(sample_len * 0。4);msg = randsrc(msg_len, 1, 0 1; 0。5 0。5);stg =org;for i = 1 : msg_len stg(i) = bi
9、tset(stg(i), 1, msg(i));end 对待检测图像应用非负和非正翻转,统计翻转前后的空间相关性i = 1;for j = 1 : m tmp = stg(j 1) * 4 + 1 : j * 4); %把图像分为四个像素一组 cor(1) = SpaceCor(tmp); cor(2) = SpaceCor(fpos(tmp, M)); cor(3) = SpaceCor(fneg(tmp, M)); if cor(2) cor(1) Rm rs(i, 1) = rs(i, 1) + 1; end if cor(2) cor(1)% Sm rs(i, 2) = rs(i, 2
10、) + 1; end if cor(3) cor(1) Rm rs(i, 3) = rs(i, 3) + 1; end if cor(3) cor(1)% Rm rs(i, 1) = rs(i, 1) + 1; end; if cor(2) cor(1)% Sm rs(i, 2) = rs(i, 2) + 1; end; if cor(3) cor(1) Rm rs(i, 3) = rs(i, 3) + 1; end; if cor(3) cor(1) S-m rs(i, 4) = rs(i, 4) + 1; end;end;rs = rs / m; J. Fridrih方法计算隐写率,并判断
11、待检测图像lena。bmp是否经过LSB替换隐写% d0 = Rm(p/2)-Sm(p/2), d1=Rm(1-p/2)Sm(1p/2)dpz = rs(1, 1) rs(1, 2); dpo = rs(2, 1) - rs(2, 2); d-0 = Rm(p/2)-S-m(p/2), d-1=R-m(1p/2)-S-m(1p/2)dnz = rs(1, 3) - rs(1, 4); dno = rs(2, 3) rs(2, 4);%判定待检测图像lena.bmp是否经过LSB替换隐写P = 2。5 1e-2; 设定门限值,对于RS分析一般为23if dnz 0 & dpo 0 %用于判断Rm
12、是否大于Sm,R-m是否大于Sm disp(待检测图像lena.bmp中没有经过LSB替换隐写!);判定待检测图像是否经过LSB替换隐写endif dnz - dpo P 用于判定R-m Sm Rm - Sm disp(待检测图像lena.bmp经过LSB替换隐写!);end get roots of polynomialC = 2 (dpo + dpz), (dnz - dno - dpo 3 * dpz), (dpz dnz);z = roots(C);p = z 。/ (z 0。5);fprintf(1, Fridrih Algorithm:expective embedding rate is %fn, p(2));运行上述代码,得到隐写率为0.476476。由于模板是随机产生的,对此可以采取多次执行代码,依据所得结果计算平均隐写率。具体结果如下表1所示。图 7 代码执行结果表 1 多次执行代码后的隐写率估算值与误差分析执行次数初始设定隐写率值隐写率估算值相对误差()平均误差()平均隐写率10.40。47647619.12