《信息隐藏实验十一LSB信息隐藏的RS分析 .doc》由会员分享,可在线阅读,更多相关《信息隐藏实验十一LSB信息隐藏的RS分析 .doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、LSB信息隐藏的RS分析一, 实验目的:了解RS隐写分析的原理,掌握一种图像LSB隐写算法的分析方法,设计并实现一种基于图像的LSB隐写的RS隐写分析算法。二, 实验环境(1)Windows 7操作系统;(2)MATLAB R2012b版本软件;(3)图像文件;(4)S-Tools工具;三, 实验原理1. RS隐写分析原理RS主要是针对采用伪随机LSB嵌入算法进行攻击的一种方法。RS方法不但能检测出图像是否隐藏信息,而且还能比较准确地估算出隐藏的信息长度。RS隐写分析算法考虑图像各个位平面之间具有一定的非线性相关性,当利用LSB隐写算法隐藏秘密信息后,这种相关性就会破坏。只要能找出衡量这一相关
2、性的方法,并对隐藏秘密信息前后的情况加以对比,就有可能设计出隐写分析方法。RS隐写分析方法的理论核心是:任何经过LSB隐写的图像,其最低比特位分布满足随机性,即0、1的取值概率均为1/2,而未经过隐写的图像不存在此特性。对于一个像素的图片,设各个像素的值取自集合,例如一个8bit的灰度图像,。将这些像素分为有着个相邻像素的子集,例如可以取值为4,记为。进一步利用如下函数表示图像块的空间相关性,即 (1)函数使得每一个集合都对应一个实数。中的噪声越大,函数的值越大。的值越小,说明图像相邻像素之间的起伏越小,而图像块的空间相关性越强。然后,定义集合上的3个函数:(1)交换函数:。(2)偏移函数:。
3、(3)恒等变换:。复杂度分辨函数和三种变换函数定义以下三种类型的元素组。(1)Regular :,也就是说对中的元素进行 变换之后增大了元素之间的差别程度,表示正则组。(2)Singular :,也就是说对中的元素进行 变换之后减小了元素之间的差别程度,表示奇异组。(3)Unusable :,也就是对中的元素进行变 换之后元素之间的差别程度不变,表示无用组。引入伪装,它的取值范围是-1、0、1。对应着、三个变换函数。记对于伪装的组的数量为,类似的组记为。例如=(27,28,26,25),=(1,0,1,0),则-=(-1,0,-1,0)。于是就得到=(26,28,27,25),=(28,28,
4、25,25)。对于一个原始不包含隐藏信息的载体来说具有下面的规律: (2)但是当在载体中嵌入了秘密信息,就会有下面的式子成立: (3)也就是说对于一个待检测的载体,只需要得到上述的统计量,然后通过对比这四个统计参数之间的大小关系就能够判断出载体中是否含有秘密信息。RS算法不但能够判断载体是否含有秘密信息,RS隐写分析算法还能够估计出隐写容量。上面算出的一组、是在比例为(为隐写率)的样点值已经作了一次变换情况下得到的。将该隐写体的所有样点值应用变换,相对于原始载体则有比例为(1-)的样点值作了变换,计算此时的、值。如下图1所示,得到的是两组统计量的数据。图 1 RS曲线与像素更改比率间的关系示意
5、图具体步骤如下:将待检测图像分成若干大小相等的图像块,通常定义 = 4,对每个小图像块定义一个掩膜算法函数,通常为(0,1,1,0),即,判断此图像小块属于Regular或Singular,遍历整幅图像,得到,。,定义为: (4) (5)改变掩膜算法函数,令为(0,-1,-1,0)重复上一步操作得到和。将图像数据的lSB位取反,用获得的数据重复上述操作得到,以及,。结合如下方程: (6)其中:解方程式(6),取绝对值较小的,计算嵌入概率为:。2. S-Tools工具简介S-Tools是一个时(空)域数字水印软件,支持WAV格式的音频文件、GIF和BMP格式的图像文件,下面介绍基于音频文件的隐藏
6、原理和使用方法。WAV格式的音频文件在Windows中存储为8位或16位值,对于8位样本,这意味着取值范围介于0和255之间。16位的样本取值范围介于0和65535之间。S-Tools在WAV格式的音频文件中隐藏信息时,首先用密码加密,然后根据密码决定要嵌入信息的位置,采用LSB(least significant bits)方法,把秘密信息代替载体音频文件的最不重要比特位。例如,假设一个音频文件有以下8个字节的信息,分别为132 134 137 141 121 101 74 38二进制表示为 如果要隐藏二进制字节(213)在这个序列里。简单地取代了音频文件的LSB(最低有效位)进行信息隐藏。
7、因此上述顺序将变更为133 135 136 141 120 101 74 39用二进制表示为 这样,秘密信息就隐藏在载体音频文件中,音频文件在听觉效果上和原始文件几乎没有区别。四, 实验分析1. 隐藏信息并分析源代码RS.m如下:clc,clear allorg = imread();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,
8、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) = bitset(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) = Sp
9、aceCor(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)% R-m 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)% R-m rs(i, 3) = rs(i, 3) + 1; end; if cor(3) 0 & dpo 0 %用于判断Rm是否大于Sm,R-m是否大于S-
10、m disp(待检测图像中没有经过LSB替换隐写!);判定待检测图像是否经过LSB替换隐写endif dnz - dpo P %用于判定R-m - S-m Rm - Sm disp(待检测图像经过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);运行上
11、述代码,得到隐写率为0.476476。由于模板是随机产生的,对此可以采取多次执行代码,依据所得结果计算平均隐写率。具体结果如下表1所示。图 7 代码执行结果表 1 多次执行代码后的隐写率估算值与误差分析执行次数初始设定隐写率值隐写率估算值相对误差(%)平均误差(%)平均隐写率10.40.47647619.12 19.800.47920720.40.49598324.00 30.40.44368510.92 40.40.50226325.57 50.40.47297518.24 60.40.48385720.96 依据表1所示结果,可以发现:经过多次执行代码后,运用RS分析方法对载体隐写率进行估
12、算的平均误差约为19.80%,即估算正确率为80.20%,近似达到了估算准确度要求。这也就表明RS方法在分析低隐写率的载体图像时,其检测误差较大,所得结果的可靠性较低。为进一步研究RS分析方法能否比较正确地判断载体是否进行LSB替换隐写,在实验中继续修改原设定的隐写率(分别设定隐写率为3%、5%、10%、20%、30%、40%、50%、60%、70%、80%、90%、100%),分析不同设定隐写率下利用RS方法所估算的载体嵌入率误差,所得结果如下表2、图8所示。表 2 不同设定隐写率下利用RS方法得到的隐写率估算值与误差分析初始设定隐写率值隐写率估算值相对误差(%)平均误差(%)0.030.0
13、4078635.95 9.190.050.06740534.81 0.100.1078027.80 0.200.2171888.59 0.300.35971519.91 0.400.47647619.12 0.500.5215294.31 0.600.599674-0.050.700.7155602.22 0.800.702172-12.230.900.811252-9.861.000.996865-0.312. 利用S-Tools工具在原始载体中隐藏秘密信息隐藏的秘密信息文件为,载体图像为。(1)把载体图像拖入S-Tools界面,并隐藏秘密信息(图9所示)。图 9 利用S-Tools工具隐藏
14、秘密信息(2)隐藏后,出现原始图片(图10示)和携密图像(图11示),将携密图像另存为。 图 10 原始图片 图 11 携密图片由上图10与图11,可以发现:利用S-Tools工具在载体图像文件中加载隐秘信息后,携密图片在视觉上和原始图片几乎无差别。通过查看携密图片文件信息,将隐秘信息提出出来,保存为,利用UltraCompare工具比较隐秘信息文件和提取的含有隐秘信息的文件,所得结果如下图12所示。表明两个文件相同,无差异图 12 原始隐秘信息文件与提取的含有隐秘信息文件的比较3. 利用上述算法估计隐写率源代码RS1.m如下:clc,clear all;org=imread();org=do
15、uble(org);org=org(:);row sample_len=size(org);stg =org;rs = zeros(2, 4);cor = zeros(1, 3);m = floor(sample_len / 4);M = randsrc(4, 1, 0 1);tmp = zeros(4, 1);% 对待检测图像应用非负和非正翻转,统计翻转前后的空间相关性i = 1;for j = 1 : m tmp = stg(j - 1) * 4 + 1 : j * 4); %把图像分为四个像素一组 cor(1) = SpaceCor(tmp); cor(2) = SpaceCor(fpo
16、s(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)% R-m 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)% R-m rs(i, 3) = rs(i, 3) + 1; end; if cor(3) 0 & dpo 0 %用于判断Rm是否大于Sm,R-m是否大于S-m disp(待
17、检测图像中没有经过LSB替换隐写!); 判断待检测图像是否经过LSB替换隐写endif dnz - dpo P %用于判定R-m - S-m Rm - Sm disp(待检测图像经过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);运行上述代码,可以得
18、到载体图像的隐写率为0.048006。图 13 代码执行结果为降低模板M的随机性对检测结果的影响,本次实验采取多次执行代码,计算隐写率的平均值并将此作为RS方法的分析结果。表 3 多次执行代码后的隐写率估算值与误差分析执行次数隐写率估算值平均隐写率10.0480060.04916820.03766130.04800640.04917350.06123260.05433670.04974880.04917390.045173100.049173五, 实验结果完成实验之后,可以得出如下结论:1. RS隐写分析算法可以用来分析在LSB位嵌入隐秘信息的图像文件,判断图像中是否嵌入了隐秘信息,并可据此计算图像文件的隐写率。2. 利用S-Tools工具可以很方便地在WAV格式的音频文件、BMP格式和GIF格式的图像文件中加载隐秘信息,并可通过查看携密图片的文件信息,提取出所加载的隐秘信息。