信息隐藏期末总复习资料.docx
- 文档编号:10080002
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:26
- 大小:63.97KB
信息隐藏期末总复习资料.docx
《信息隐藏期末总复习资料.docx》由会员分享,可在线阅读,更多相关《信息隐藏期末总复习资料.docx(26页珍藏版)》请在冰点文库上搜索。
信息隐藏期末总复习资料
第一章概论
1.1什么是信息隐藏
掌握四个问题
问题1:
为什么多媒体数据可以隐藏信息?
•多媒体信息存在很大的冗余性,添加少数信息不会影响其使用
–从信息论的角度看,未压缩的多媒体信息的编码效率很低
•人眼或人耳对某些信息具有一定的掩蔽效应
–人眼对灰度的分辨率只有几十个灰度级,对边附近的信息不敏感等
问题2:
信息隐藏的目的?
•传递秘密数据
•证实该载体信息的所有权归属与数据完整性
问题3:
信息隐藏算法的特点?
①不可感知性(透明性、隐蔽性)--载体对象是正常的,不会引起怀疑
②鲁棒性----对伪装对象的正常处理,不应破坏隐藏的信息
③安全性---算法自身的安全性;各种攻击情况下的安全性
问题4:
信息隐藏和加密的区别是什么?
①保护的内容不同
㈠加密是将信息本身进行了保密,而信息的传递过程是暴露的,加密后的信息是一堆无法看懂的杂乱信息,直接引导窃密者发现哪些是他的攻击对象,相当于直接将目标暴露在窃密者眼前。
㈡信息隐藏是将信息的传递过程进行了掩盖,目的就是为了掩盖机密信息存在的事实。
②保护的有效范围不同
加密的信息,解密后保护消失;隐藏的信息则永远存在
1.2信息隐藏技术的发展历程
掌握两个问题
问题1:
信息隐藏技术的分支?
古典隐写术:
技术性隐写术、语言学中的隐写术、用于版权保护的隐写术
现代隐写术:
隐秘通信、数字水印
问题2:
隐密通信和数字水印的区别?
隐秘通信:
研究内容就是如何利用信息隐藏技术在载体对象中隐藏机密信息,即在传统的密码技术之外添加一层保护,以此来提高信息传输的安全性。
其本质是通过各种技术增强机密信息的破译难度。
数字水印:
数字水印通过在数字产品中嵌入隐藏的版权信息,为数字产品打上了一个永久性的版权烙印,这为从技术角度解决数字产品版权问题提供了一种思路。
①隐密通信更关注秘密信息
所要发送的秘密信息是主体,是重点保护对象,而用什么载体对象进行传输无关紧要。
②数字水印更关注数字产品
载体对象即通常所说的数字产品是版权保护的对象,而所嵌入的信息只是与该产品相关的版权标识或其它信息。
③应用不同,技术融合
第二章信息隐藏基础
图像处理基础
㈠表示:
图像由基本显示单元“像素”构成;像素由若干个二进制位进行描述;二进制位代表图像颜色的数量
㈡分类:
①灰度图像(intensityimages)(每像素8bits)
–灰度图像用二维矩阵表示,矩阵中的每个元素对应图像中每个像素,取值[0,255],代表一个量化的灰度级,没有彩色信息
②二值图像(binaryimages)(每像素1bits)
–特殊的灰度图像,图像的每个像素只能是黑或者白,又称为黑白图像,图像矩阵取值为0或1
③彩色图像(RGBimages)
–彩色图像是指每个像素的信息由RGB三原色构成的图像,其中RGB是由不同的灰度级来描述的
彩色图像分类:
⑴真彩色(每像素24bits)
–真彩色是指在组成一幅彩色图像的每个像素值中,有R,G,B三个基色分量,每个基色分量直接决定显示设备的基色强度,这样产生的彩色称为真彩色。
⑵伪彩色
–每个像素的颜色不是由每个基色分量的数值直接决定,而是把像素值当作颜色查找表的索引值,去查找一个显示图像时使用的R,G,B强度值,用查找出的R,G,B强度值产生的彩色称为伪彩色。
⑶调色板
–建立一个颜色查找表,表中的每一行记录一种颜色的R、G、B值。
–实际像素的值用来指定该点颜色在查找表中的索引值,这样就可以大大缩小存储量。
㈢颜色模型
①对于显示设备来说,可以用红、绿、蓝磷光体的发光量来描述颜色(RGB颜色模型)
②对于打印设备来说,可以使用青色、品红、黄色和黑色颜料的用量来指定颜色(CMYK颜色模型)
③对于人来说,可以通过色调、饱和度和明度来定义颜色(HSI颜色模型)
④在视频图像和数字图像时常采用YCbCr颜色模型(Y是亮度,Cb和Cr共同描述图像的色调(色差),其中Cb、Cr分别为蓝色分量和红色分量相对于参考值的坐标)
㈣变换
•图像变换是一种为了达到某种目的(通常是从图像中获取某种重要信息)而对图像使用的一种数学技巧,经过变换后的图像将更为方便、容易地处理和操作
•常用图像变换
–离散余弦变换DCT
DCT变换后,信号的能量主要集中在少数几个变换系数上,采用量化和熵编码可有效地压缩其数据;
DCT变换计算复杂度适中;
DCT算法是对称的;
DCT系数相关性很小。
–离散傅立叶变换DFT
–离散小波变换DWT
五、函数
真彩色到灰度:
I=rgb2gray(RGB);真彩色到二值图像:
BW=im2bw(RGB,level);灰度图像到二值图像:
BW=im2bw(I,level);
level是归一化阈值,取值在[0,1]之间;ycbcr与rgb之间的转换:
rgb2ycbcr(I),ycbcr2rgb(I)
六、文件格式
BMP图像文件格式
•特点
–每个文件只能存放一幅图像
–只能存储四种图像数据:
单色、16色、256色、真彩色
–图像数据有压缩(无损压缩)或不压缩两种处理方式,用户可根据需要决定是否压缩
–红、绿、蓝三原色的排列顺序与其他图像文件格式相反(BGR)
BMP图像文件格式
①位图文件头
结构的长度是固定的,为14个字节
文件大小:
3~6字节;数据相对于文件头的起始偏移地址:
11~14字节
②位图信息头(从第15个字节开始,一般为40字节)
图像宽度(像素):
19~22字节;图像高度(像素):
23~26字节;每个像素所占位数:
29,30字节(通常取1、4、8、24);图像压缩:
31~34字节(通常取值0、1、2、3,代表四种不同的压缩方式);图像大小(字节):
35~38字节
③调色板
•真彩色BMP图像文件内没有调色板数据
•调色板实际上是一个数组,共有biClrUsed个元素(如果该值为零,则有2的biBitCount次方个元素)。
数组中每个元素的类型是一个RGBQUAD结构,占4个字节。
定义如下:
•typedefstructtagRGBQUAD{
BYTErgbBlue;/*指定蓝色分量*/
BYTErgbGreen;/*指定绿色分量*/
BYTErgbRed;/*指定红色分量*/
BYTErgbReserved;/*保留,指定为0*/
}RGBQUAD;
④实际的位图数据
•图像数据由底向上、从左到右存储
•对于用到调色板的位图,图像数据就是该像素颜色在调色板中的索引值
–对于2色位图,用1位就可以表示该像素的颜色(一般0表示黑,1表示白),所以一个字节可以表示8个像素
–对于16色位图,用4位可以表示一个像素的颜色,所以一个字节可以表示2个像素
–对于256色位图,一个字节刚好可以表示1个像素
•对于真彩色图,图像数据就是实际的R,G,B值
–对于真彩色图,三个字节才能表示1个像素
在实际存储时,BMP图像的宽度(以字节为单位)必须是4的整数倍,倘若不到4的倍数则必须补足
第三章数字水印原理(笔记没有记全,等老师ppt)
•定义
数字水印(digitalwatermark)是永久镶嵌在其他数据(宿主数据)中具有可鉴别性的数字信号或模式,并且不影响宿主数据的可用性
不同的应用对数字水印的要求不尽相同
•特点
不可感知性(透明性)
•感官上不可感知
•从人类视觉角度看,嵌入水印数据与原始数据完全一样
•统计上不可感知
•大量使用同一方法经水印处理过的数字产品,即使采用统计方法也无法确定水印是否存在
鲁棒性(健壮性/稳健性)
•数字水印应该难以被擦除,任何试图完全破坏水印的努力将对载体的质量产生严重破坏
•好的水印算法应该对信号处理、几何变形、恶意攻击等具有稳健性
安全性
•数字水印难以被发现、篡改或伪造,同时,要有较低的虚警率(实际不存在水印但却检测到水印)
可证明性
•数字水印应能为宿主数据的产品归属问题提供完全和可靠的证据
•一个好的水印算法应该能够提供没有争议的版权证明
•模型
数字水印结构
•根据水印的实现方式和应用场合
•伪随机序列
•有意义字符序列
•图像
水印嵌入模型
•
设I为载体数据,W为水印信号,K为密钥,处理后的水印为
•水印嵌入过程:
设水印嵌入函数E,原始载体I和水印,嵌入水印后的载体数据为
水印提取模型
•水印提取过程:
设水印提取函数D,水印提取的两种形式:
–提取原始水印
–0-1判决:
判定水印存在与否
•分类
•从载体上分类
•图像水印
•图像是使用最多的一种多媒体数据,也是经常引起版权纠纷的一类载体
•彩色/灰度图像,卡通,设计图,二值图像(徽标、文字)等
•音频水印
•保护MP3、CD、广播电台的节目内容等
•视频水印
•保护视频产品和节目制作者的合法利益
•文档水印(文档图像)
•利用文档特点添加水印,保护文档数据所有者的版权
•从加载方式上分类
•空间域水印:
直接在载体数据上加载水印信息
•LSB方法
•拼凑方法
•文档结构微调方法
•变换域水印:
载体数据经过变换后添加水印信息
•DCT变换,傅立叶变换,小波变换等
•从检测方法上分类
•私有水印和公开水印
•私有水印(非盲水印):
水印检测时需要原始载体
•公开水印(盲水印):
水印检测时无需原始载体
•私钥水印和公钥水印
•私钥水印:
水印加载和检测使用同一密钥
•公钥水印:
水印加载和检测使用不同的密钥
•从水印特性上分类
•鲁棒性/健壮性数字水印
•要求水印能够经受各种常用的操作,包括无意的或恶意的处理
•只要载体信号没有被破坏到不可使用的程度,都应该能够检测出水印信息
•脆弱性数字水印(完全脆弱性/半脆弱性)
•要求水印对载体的变化很敏感,根据水印的状态来判断数据是否被篡改过
•特点:
载体数据经过很微小的处理后,水印就会被改变或毁掉
•主要用于完整性保护
•与鲁棒性水印的要求相反
•从使用目的上分类
•版权标识水印
•基于数据源的水印
•水印信息标识作者、所有者、发行者等,并携带有版权保护信息和认证信息,用于发生版权纠纷时的版权认证,还可用于隐藏标识、防拷贝
•数字指纹水印
•基于数据目的的水印
•包含关于本件产品的版权信息,以及购买者的个人信息,可以用于防止数字产品的非法拷贝和非法传播
第四章数字水印技术
—空间域算法
•基于图像数据隐藏信息
–算法一:
最低比特位替换(LeastSignificantBit)
–算法二:
位图法
–算法三:
图像降级
–算法四:
调色板图像法
•基于图像格式隐藏信息
–算法五:
BMP文件格式法
LSB程序:
(LSB算法要看懂,考题会改变参数)
嵌入水印
%文件名:
lsbhide.m
%函数功能:
本函数将完成顺序嵌入水印的LSB算法,载体选用灰度图像,水印选用二值图像(行数列数相同)
function[row,col]=randinterval(I,count,key)
%生成随机序列
rand('seed',key);
X=rand(1,count);
%设定k,p
[m,n]=size(I);
k=floor(m*n/count)+1;
p=k-2;
ifp==0
error('载体太小不能将秘密信息隐藏进去!
');
end
%初始化
address=1;
row=zeros([1count]);
col=zeros([1count]);
row(1,1)=1;
col(1,1)=1;
%寻找嵌入位置像素行列坐标
fori=2:
count
ifX(i)>0.5
address=address+k;
else
address=address+p;
end
row(1,i)=floor(address/n)+1;
col(1,i)=mod(address,n);
ifcol(1,i)==0
row(1,i)=row(1,i)-1;
col(1,i)=n;
end
end
%格式:
[ste_cover,len]=lsbhide(cover,wm)
%参数说明:
%cover:
载体图像矩阵
%wm:
水印图像矩阵
%ste_cover:
含水印的图像矩阵
%len:
水印长度即水印容量
function[ste_cover,len]=lsbhide(cover,wm)
%读入图像矩阵,进行数据类型转换
ste_cover=double(cover);
%读入水印wm,进行数据类型转换
wm=double(wm);
%判断水印图像是否符合要求(行数列数相同)
[m,n]=size(wm);
ifm~=n
error('水印图像不符合要求');
end
%将水印矩阵转化为一维序列
fori=1:
m
forj=1:
n
msg((i-1)*n+j)=wm(i,j);
end
end
%判断嵌入消息量是否过大
len=m*n;
[m,n]=size(ste_cover);
iflen>m*n
error('嵌入水印过大,请更换图像');
end
p=1;%p作为水印嵌入位数计数器
%在图像像素的LSB嵌入水印
fori=1:
m
forj=1:
n
ste_cover(i,j)=ste_cover(i,j)-mod(ste_cover(i,j),2)+msg(p);
ifp==len
break;
end
p=p+1;
end
ifp==len
break;
end
end
%得到含水印图像矩阵
ste_cover=uint8(ste_cover);
LSB程序:
提取水印
%文件名:
lsbget.m
%函数功能:
本函数将完成提取隐秘于LSB的水印。
%格式:
result=lsbget(test,len)
%参数说明:
%test:
待测图像矩阵
%len:
水印长度
%result:
提取水印矩阵
functionresult=lsbget(test,len)
%读入图像矩阵
ste_cover=double(test);
[m,n]=size(ste_cover);
%p作为水印嵌入位数计数器
p=1;
fori=1:
m
forj=1:
n
ifbitand(ste_cover(i,j),1)==1
wm(p)=1;
else
wm(p)=0;
end
ifp==len
break;
end
p=p+1;
end
ifp==len
break;
end
end
%将提取出的一维水印序列转化为二维矩阵
fori=1:
sqrt(len)
forj=1:
sqrt(len)
result(i,j)=wm((i-1)*sqrt(len)+j);
end
end
•性能分析
–水印嵌入容量
•大
–水印不可见性
•好
–水印鲁棒性
•差
•任何改变像素点的攻击都可能使水印无法检测
随机嵌入位置选择:
随机间隔法
•思想:
利用随机数的大小控制前后两个嵌入位的距离
•利用密钥产生一个长为N的随机序列X,N大于等于秘密信息message的长度,取第一个嵌入位为1,伪C代码:
inbedingaddress=1;
for(i=2;i<=length(message);i++)
{
if(Xi>0.5)
imbedingaddress+=k;
else
imbedingaddress+=p;
}
•定义k和p
–total=图像载体像素点个数
–quantity=要选择的像素点个数
functionresult=patchdetect(test,key,threshold)
%读取图像数据
im=imread(test);
im=doubel(im)/256;
%定义像素对的个数
[m,n]=size(im);
q=floor(m*n/16);
%调用伪随机置换函数,确定水印嵌入位置
[row,col]=randinterval(im,2*q,key);
%求和
sum=0;
fori=1:
q
sum=sum+im(row(i),col(i))-im(row(2*i),col(2*i));
end
%与阈值进行比较
cmpvalue=abs(sum/q)-1/128;
ifcmpvalue>threshold
result=1;
disp(‘图像含有水印信号’);
else
result=0;
disp(‘图像不含有水印信号’);
end
–p=k-2p!
=0
位图法-嵌入算法(实验一)
•信息提取是把隐藏的信息从伪装媒体中读取出来,其过程正好与信息嵌入相反:
1、判断BMP文件图像数据部分每个字节的奇偶性,若字节中“1”的个数为偶数,则输出“0”;若字节中“1”的个数为奇数,则输出“1”。
2、每判断8个字节,便将输出的8位数组成一个二进制数(先输出的为高位)。
3、经过上述处理,得到一系列8位二进制数,便是隐藏信息的代码,将代码转换成隐藏的信息。
第五章
评价理论和测试基准
•问题一:
对于某一个水印算法,其性能如何评价?
•水印不可见性的评估
•评价含水印图像是否降质
•水印鲁棒性的评估
•评价水印算法的抗攻击能力
•对含水印图像进行某种攻击,判断在经攻击后的图像中能否正确提取水印
•主观评价
•让观察者根据一些事先规定的评价尺度或自己的经验,比较原始图像与嵌入水印图像的差异,按视觉效果提出质量判断,并给出质量分数,对所有观察者给出的分数进行加权平均。
这种方法称为平均意见分(MOS)方法
特点
•直接反映人对图像质量的感受,比较准确,对最终评价有实际意义
•易受观察者本身的知识背景、情绪和疲劳程度等因素影响
•需要做大量的观察实验,可重复性差,处理起来较困难
•客观评价(不可见性最常用,信噪比,峰值信噪比)
•通过公式计算来获取原始图像和嵌入水印图像的相似度,值越高,水印的不可见性越好
•特点
•计算简单,可重复性强,得到的结果不依赖于主观评价,在实际中已被普遍地采用。
客观度量可以反映两个图像像素间的差别,其对图像质量的度量结果能否与主观度量始终保持一致?
水印鲁棒性评估
•建立与人的感官系统相联系的失真度量方法
•基于人类视觉特性建模
•Watson基于DCT的视觉模型
•评价结果越精确,算法的复杂度也就越高
水印鲁棒性评估:
•在给定水印不可见性的条件下,对不同的嵌入水印图像(尺寸相同,特性不同,一般选自USC-SIPI图像数据库),实施各种攻击来实现对水印鲁棒性的评估。
•若嵌入水印图像在经受某种攻击后,仍能基本正确地恢复水印,则认为该水印算法对这种攻击是鲁棒的。
水印攻击的分类(见第六章)
问题二:
有哪些因素会影响水印算法的性能?
影响水印性能的因素
•载体数据的大小和种类:
直接影响水印的鲁棒性
•水印容量:
载体可嵌入信息的数量,一般来讲,嵌入的信息越多,水印的不可见性越差
•水印嵌入强度:
高鲁棒性需要更强的嵌入,反过来增大了水印的可见性
•密钥
–
水印测评基准
Stirmark
Cheekmark
Optimark
密钥空间足够大,使穷举攻击不可行
–非对称
–增强了水印的破译难度
•速度:
一些应用需要实时的嵌入和检测,应尽量降低算法的复杂度
•统计不可检测性
问题三:
如何对多个水印算法进行统一测评?
为了进行合理的性能评价,应该控制测试环境,使得一些量固定,一些量变化
第六章
攻击方法和对抗策略
•水印(盾):
保护数字产品不被盗用、篡改、仿冒
•水印攻击(矛):
试图通过各种方法,使得水印无效
•设计性能好的、实用的水印算法,就必须了解各种可能的攻击,设计针对具体应用的能够抵抗各种攻击的水印算法。
水印攻击的分类
•去除攻击:
试图削弱载体中的水印强度,或破坏载体中的水印存在(不损害原载体质量)
•表示攻击:
试图使水印检测失效(并没有去除水印,而是使之检测不到)
•解释攻击:
通过伪造水印来达到目的
•法律攻击:
利用相关法律上的漏洞
方式一:
去除攻击(破坏水印)
•常用的图像处理操作(原理、实现方法)
–压缩:
JPEG压缩
–滤波:
空域滤波:
平滑、锐化、中值滤波
–加噪
模拟噪声生成函数imnoise
功能
对图像添加噪声
格式
J=imnoise(I,type,parameter)
说明
函数返回对图像I添加典型噪声后的有噪图像J;参数type和parameter用于确定噪声的类型和相应的参数
调用实例
I=imread('rice.jpg');
J=imnoise(I,'gaussian',0,0.02);
方式二:
表示攻击
•imrotate
–功能:
图像旋转函数
–格式:
J=imrotate(I,angle,method)
•imresize
–功能:
图像大小改变函数
–格式:
J=imresize(I,M,method)M:
缩放比例
•imcrop
–功能:
图像裁剪函数
–格式:
J=imcrop(I,rect)
rect:
[xminyminwidthheight]
方式三:
解释攻击
•解释攻击属于协议层的攻击,它以设计出一种情况来阻止版权所有者对所有权的断言为目的
•一种通用的方法是分析水印算法并逆其道而行。
攻击者先设计出一个自己的水印信号,然后从水印图像中减去这个水印(不是指代数减,而是插入过程的逆),这样就制造出一个虚假的原始图像,然后他出示虚假的原始图像和捏造出的水印,声称他是图像的拥有者。
当然,攻击者必须能够得到水印算法的细节并捏造出一个合理的水印。
抵抗解释攻击
•发现大多数不可见、需原图的数字水印方案主要有下面三方面的不足:
•大多数水印方案没有提供本质的方法来检测两个水印中哪一个是先加上去的;
•由于水印注册时仅仅对水印序列进行了注册,而没有对原作品进行注册,使得攻击者可以伪造原作品;
•由于水印嵌入方案具有可逆性,为伪造水印提供了条件。
第七章数字水印技术
—变换域算法
•变换域算法:
NEC算法(考试重点)
•在DCT变换域嵌入水印
•考查DCT变换域中什么位置适合嵌入水印?
•从水印不可见性考虑
•将水印嵌入DCT变换域的AC高频系数
•从水印鲁棒性考虑
•将水印嵌入DCT变换域的DC系数或AC低频系数
•水印的产生
•将1bit水印扩展成能量小的水印序列
•产生一个长度为N的随机序列W作为水印信息
•水印的嵌入
•对图像数据进行二维DCT变换
•寻找最大的N个DCT系数X
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息 隐藏 期末 复习资料