您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 信息隐藏-实验十一-LSB信息隐藏的RS分析
LSB信息隐藏的RS分析一,实验目的:了解RS隐写分析的原理,掌握一种图像LSB隐写算法的分析方法,设计并实现一种基于图像的LSB隐写的RS隐写分析算法。二,实验环境(1)Windows7操作系统;(2)MATLABR2012b版本软件;(3)图像文件lena.bmp;(4)S-Tools工具;三,实验原理1.RS隐写分析原理RS主要是针对采用伪随机LSB嵌入算法进行攻击的一种方法。RS方法不但能检测出图像是否隐藏信息,而且还能比较准确地估算出隐藏的信息长度。RS隐写分析算法考虑图像各个位平面之间具有一定的非线性相关性,当利用LSB隐写算法隐藏秘密信息后,这种相关性就会破坏。只要能找出衡量这一相关性的方法,并对隐藏秘密信息前后的情况加以对比,就有可能设计出隐写分析方法。RS隐写分析方法的理论核心是:任何经过LSB隐写的图像,其最低比特位分布满足随机性,即0、1的取值概率均为1/2,而未经过隐写的图像不存在此特性。对于一个MN像素的图片,设各个像素的值取自集合P,例如一个8bit的灰度图像,{0,1,2,,255}P。将这些像素分为有着n个相邻像素的子集,例如n可以取值为4,记为1234(,,,)Gxxxx。进一步利用如下函数表示图像块的空间相关性,即112311(,,,,)nniiifxxxxxx(1)函数f使得每一个集合G都对应一个实数。G中的噪声越大,函数f的值越大。f的值越小,说明图像相邻像素之间的起伏越小,而图像块的空间相关性越强。然后,定义集合P上的3个函数:(1)交换函数1F:221,01,23,,254255nn。(2)偏移函数1F:221,10,12,,255256nn。(3)恒等变换0F:0(),FxxxP。复杂度分辨函数f和三种变换函数F定义以下三种类型的元素组,,RSU。(1)RegularG:(())()GRfFGfG,也就是说对G中的元素进行变换之后增大了元素之间的差别程度,R表示正则组。(2)SingularG:(())()GSfFGfG,也就是说对G中的元素进行变换之后减小了元素之间的差别程度,S表示奇异组。(3)UnusableG:(())()GUfFGfG,也就是对G中的元素进行变换之后元素之间的差别程度不变,G表示无用组。引入伪装M,它的取值范围是-1、0、1。对应着1F、0F、1F三个变换函数。记对于伪装M的R组的数量为MR,类似的S组记为MS。例如G=(27,28,26,25),M=(1,0,1,0),则-M=(-1,0,-1,0)。于是就得到()MFG=(26,28,27,25),()MFG=(28,28,25,25)。对于一个原始不包含隐藏信息的载体来说具有下面的规律:MMMMRRSS(2)但是当在载体中嵌入了秘密信息,就会有下面的式子成立:MMMMRSRS(3)也就是说对于一个待检测的载体,只需要得到上述的统计量,然后通过对比这四个统计参数之间的大小关系就能够判断出载体中是否含有秘密信息。RS算法不但能够判断载体是否含有秘密信息,RS隐写分析算法还能够估计出隐写容量。上面算出的一组MR、MS、MR、MS是在比例为/2p(p为隐写率)的样点值已经作了一次1F变换情况下得到的。将该隐写体的所有样点值应用1F变换,相对于原始载体则有比例为(1-/2p)的样点值作了1F变换,计算此时的MR、MS、MR、MS值。如下图1所示,得到的是两组统计量的数据。图1RS曲线与像素更改比率间的关系示意图具体步骤如下:将待检测图像分成若干大小相等的图像块,通常定义n=4,对每个小图像块定义一个掩膜算法函数,通常为M(0,1,1,0),即01121304()((),(),(),())MFGFxFxFxFx,判断此图像小块属于Regular或Singular,遍历整幅图像,得到(/2)MRp,(/2)MSp。(/2)MRp,(/2)MSp定义为:(/2)/4MMRRpbufsize(4)(/2)/4MMSSpbufsize(5)改变掩膜算法函数,令M为(0,-1,-1,0)重复上一步操作得到(/2)MRp和(/2)MSp。将图像数据的lSB位取反,用获得的数据重复上述操作得到(1/2)MRp,(1/2)MSp以及(1/2)MRp,(1/2)MSp。结合如下方程:210010012()30ddxdddxdd(6)其中:0101(/2)(/2),(1/2)(1/2)(/2)(/2),(1/2)(1/2)MMMMMMMMdRpSpdRpSpdRpSpdRpSp解方程式(6),取绝对值较小的x,计算嵌入概率p为:/(1/2)pxx。2.S-Tools工具简介S-Tools是一个时(空)域数字水印软件,支持WAV格式的音频文件、GIF和BMP格式的图像文件,下面介绍基于音频文件的隐藏原理和使用方法。WAV格式的音频文件在Windows中存储为8位或16位值,对于8位样本,这意味着取值范围介于0和255之间。16位的样本取值范围介于0和65535之间。S-Tools在WAV格式的音频文件中隐藏信息时,首先用密码加密,然后根据密码决定要嵌入信息的位置,采用LSB(leastsignificantbits)方法,把秘密信息代替载体音频文件的最不重要比特位。例如,假设一个音频文件有以下8个字节的信息,分别为1321341371411211017438二进制表示为10000100100001101000100110001101011001010100101000100110如果要隐藏二进制字节11010101(213)在这个序列里。简单地取代了音频文件的LSB(最低有效位)进行信息隐藏。因此上述顺序将变更为1331351361411201017439用二进制表示为10000101100001111000100010001101011110000100101000100111这样,秘密信息就隐藏在载体音频文件中,音频文件在听觉效果上和原始文件几乎没有区别。四,实验分析1.隐藏信息并分析源代码RS.m如下:clc,clearallorg=imread('lena.bmp');org=double(org);org=org(:)';[rowsample_len]=size(org);rs=zeros(2,4);cor=zeros(1,3);m=floor(sample_len/4);M=randsrc(4,1,[01]);tmp=zeros(4,1);%使用LSB,准备待检测图像,隐写率为40%msg_len=floor(sample_len*0.4);msg=randsrc(msg_len,1,[01;0.50.5]);stg=org;fori=1:msg_lenstg(i)=bitset(stg(i),1,msg(i));end%对待检测图像应用非负和非正翻转,统计翻转前后的空间相关性i=1;forj=1:mtmp=stg((j-1)*4+1:j*4);%把图像分为四个像素一组cor(1)=SpaceCor(tmp);cor(2)=SpaceCor(fpos(tmp,M));cor(3)=SpaceCor(fneg(tmp,M));ifcor(2)cor(1)%Rmrs(i,1)=rs(i,1)+1;endifcor(2)cor(1)%Smrs(i,2)=rs(i,2)+1;endifcor(3)cor(1)%R-mrs(i,3)=rs(i,3)+1;endifcor(3)cor(1)%S-mrs(i,4)=rs(i,4)+1;endend%对待检测图像所有像素应用正翻转stg=fpos(stg,ones(sample_len,1));%对待检测图像应用非负和非正翻转,统计翻转前后的空间相关性i=2;forj=1:mtmp=stg((j-1)*4+1:j*4);cor(1)=SpaceCor(tmp);cor(2)=SpaceCor(fpos(tmp,M));cor(3)=SpaceCor(fneg(tmp,M));ifcor(2)cor(1)%Rmrs(i,1)=rs(i,1)+1;end;ifcor(2)cor(1)%Smrs(i,2)=rs(i,2)+1;end;ifcor(3)cor(1)%R-mrs(i,3)=rs(i,3)+1;end;ifcor(3)cor(1)%S-mrs(i,4)=rs(i,4)+1;end;end;rs=rs/m;%J.Fridrih方法计算隐写率,并判断待检测图像lena.bmp是否经过LSB替换隐写%d0=Rm(p/2)-Sm(p/2),d1=Rm(1-p/2)-Sm(1-p/2)dpz=rs(1,1)-rs(1,2);dpo=rs(2,1)-rs(2,2);%d-0=R-m(p/2)-S-m(p/2),d-1=R-m(1-p/2)-S-m(1-p/2)dnz=rs(1,3)-rs(1,4);dno=rs(2,3)-rs(2,4);%判定待检测图像lena.bmp是否经过LSB替换隐写P=2.5*1e-2;%设定门限值,对于RS分析一般为2%-3%ifdnz0&&dpo0%用于判断Rm是否大于Sm,R-m是否大于S-mdisp('待检测图像lena.bmp中没有经过LSB替换隐写!');endifdnz-dpoP%用于判定R-m-S-mRm-Smdisp('待检测图像lena.bmp经过LSB替换隐写!');end%getrootsofpolynomialC=[2*(dpo+dpz),(dnz-dno-dpo-3*dpz),(dpz-dnz)];z=roots(C);p=z./(z-0.5);fprintf(1,'FridrihAlgorithm:expectiveembeddingrateis%f\n',p(2));运行上述代码,得到隐写率p为0.476476。由于模板M是随机产生的,对此可以采取多次执行代码,依据所得结果计算平均隐写率。具体结果如下表1所示。图7代码执行结果判定待检测图像是否经过LSB替换隐写表1多次执行代码后的隐写率估算值与误差分析执行次数初始设定隐写率p值隐写率p估算值相对误差(%)平均误差(%)平均隐写率p10.40.47647619.1219.800.47920720.40.49598324.0030.40.44368510.9240.40.50226325.5750.40.47297518.2460.40.48385720.96依据表1所示结果,可以发现:经过多次执行代码后,运用RS分析方法对载体隐写率进行估算的平均误差约为19.80%,即估算正确率为80.20%,近似达到了估算准确度要求。这也就表明RS方法在分析低隐写率的载体图像时,其检测误差较大,所得结果的可靠性较低。为进一步研究RS分析方法能否比较正确地判断载体是否进行LSB替换隐写,在实验中继续修改原设定的隐写率(分别设定隐写率为3%、5%、10%、20%、30%、40%、50%、60%、70%、80%、90%、100%),分析不同设定隐写率下利用RS方法所估算的载体嵌入率误差,所得结果如下表2、图8所示。表2不同设定隐写率下利用RS方法得到的隐写率估算值与误差分析初始设定隐写率p值隐写率p估算值相对误差(%)平均误差(%)0.030.04078635.959.190.050.06740534.810.100.1078027.800.200.2171888.590.300.35971519.910.400.47647619.120.500.5215294.310.600.599674-0.050.700.7155602.220.800.702172-12.230.900.811252-9.861.000.996865-0.312.利用S-Tools工具在原始载体中隐藏秘密信息隐藏的秘密信
本文标题:信息隐藏-实验十一-LSB信息隐藏的RS分析
链接地址:https://www.777doc.com/doc-5210831 .html