第七章信息隐藏
实验内容
(1)图像载体的基本知识
(2)LSB(最低有效位)隐藏算法
(3)图像信息伪装
(4)DCT(离散余弦变换)隐藏算法
7.1 图像载体的基本知识
7.1.1 实验目的
(1)了解数字图像的类型及存储方式
(2)熟悉Matlab图像处理命令
7.1.2 实验内容
在Matlab中读取并显示4中类型的数字图像,分别是二値图像、灰度图像、索引图像以及RGB 图像,并将不同类型的数字图像进行相互转换;RGB图像的分层及组合。
7.1.3 实验原理
数字图像可以分为两大类:矢量图和位图。矢量图是用数学方法描述的一系列点、线、弧和其他几何形状,位图则是由不同颜色的像素点组成。信息隐藏技术这门课程针对的图像基本上是位图。位图有4中图像类型:灰度图像、二値图像、索引图像和RGB图像。
在Matlab中,灰度图像由一个uint8、uint16或双精度类型的数组来描述,数组的每一个元素对应图像的一个像素点,如果数据矩阵的数值类型是uint8,则元素的数值范围是[0,255],0表示黑色,255表示白色。二値图像即图像像素的取值只有0和1两个值,0表示黑,1表示白,二値图像采用逻辑数组(值为0或1)来存储。
RGB图像又称为24位真彩图像,其像素的颜色由存储在相应位置的红、绿、蓝三个分量共同决定,红、绿、蓝分量分别占用8位,理论上可以包含16M种不同颜色。在Matlab中,RGB图像由一个uint8、uint16或双精度类型的m×n×3数组来存储,m和n分别表示图像的宽度和高度,每个像素的三个颜色分量存储在数组的第三维中。
索引图像有两个分量,即数据矩阵X和调色板矩阵map。数据矩阵X可以是uint8、uint16或双精度类型,调色板矩阵map是一个m×3的双精度类型矩阵,m表示颜色数目,矩阵元素是范围在[0,1]之间的浮点数。map矩阵的每一行定义一个颜色的红、绿、蓝分量。索引图像将数据矩阵X的像素值直接映射到调色板数值,每个像素的颜色由对应的整数矩阵X的值作为指向map的一个指针决定。
不同类型的图像之间可以进行转换,其转换关系如图7-1所示
图7-1 图像类型转换
7.2.4 实验环境和分组
运行Windows2000/XP的PC机,安装Matlab(6.0以上)
每位同学独立编程
7.2.5实验步骤
1图像类型转换
(1)结合Matlab的help文档,学习并掌握Matlab中基本的图像处理函数
(2)利用以上函数,在Matlab的命令窗口进行图像类型的转换
2 RGB图像分层
RGB图像由三个分量图像组合而成,可以将RGB图像分层,修改其中某层的数值,再组合成RGB图像,在Matlab中编写函数文件rgb_separation.m
% 函数功能:RGB图像分层,修改其中某层的数值
% 参数说明:
% input:输入的RGB图像文件
% level:要修改的层,值为1(R层)、2(G层)或3(B层)
% rgb_R:输出变量,存放R层分量图像
% rgb_G:输出变量,存放G层分量图像
% rgb_B:输出变量,存放B层分量图像
% result:输出变量,存放修改分量值后的RGB图像
function [rgb_R, rgb_G, rgb_B, result]=rgb_separation(input,level)
%读入图像文件,并将数值类型由uint8转换成double类型
image=imread(input);
image=double(image)/255;
%图像分层,提取每层分量图像
rgb_R=image(:,:,1);
rgb_G=image(:,:,2);
rgb_B=image(:,:,3);
%显示分量图像
subplot(231),imshow(rgb_R),title('R层分量图像');
subplot(232),imshow(rgb_G),title('G层分量图像');
subplot(233),imshow(rgb_B),title('B层分量图像');
subplot(234),imshow(image),title('原始图像');
%修改level层分量图像的数值
if level==1
rgb_R=rgb_R+0.3;
end
if level==2
rgb_G=rgb_G+0.3;
end
if level==1
rgb_B=rgb_B+0.3;
end
%将分量图像组合成RGB图像
result(:,:,1)=rgb_R;
result(:,:,2)=rgb_G;
result(:,:,3)=rgb_B;
subplot(235),imshow(result),title('修改分量值后的RGB图像');
在Matlab命令窗口调用函数文件rgb_separation.m,例如:
[rgb_R,rgb_G,rgb_B,result]=rgb_separation('kid.jpg',1),查看实验结果。
7.2 LSB(最低有效位)隐藏算法
7.2.1 实验目的
(1)了解时空域信息隐藏的基本原理
(2)掌握LSB隐藏算法的Matlab实现
7.2.2 实验内容
选取载体图像像素点 (顺序选取/随机选取),将其最不重要位(LSB)依次替换成秘密消息,查看隐藏效果,并从隐蔽载体中提取和恢复秘密消息。进一步考察LSB算法的健壮性。
7.2.3 实验原理
1位平面
以灰度图像为例,,采用无符号8位整型(unit8)数组存储,图像像素的8位由低至高组成了8个位平面,第一个位平面由每个像素的最低位组成,第八个位平面由每个像素的最高位组成。如图7.1所示:
图7-2 图像的位平面
所组成的8个位平面在图像中所代表的重要程度是不同的,如图7-2所示:
(a)原始图像(8位灰度jpg图像)
(b)去掉第1个(最低)位平面后的图像和第1个(最低)位平面
(c)去掉第1~2个位平面后的图像和第1~2个位平面组成的图像
(d)去掉第1~3个位平面后的图像和第1~3个位平面组成的图像
(e)去掉第1~4个位平面后的图像和第1~4个位平面组成的图像
(f)去掉第1~5个位平面后的图像和第1~5个位平面组成图像
(g)去掉第1~6个位平面后的图像和第1~6个位平面组成的图像
(h)去掉第1~7个位平面后的图像和第1~7个位平面组成的图像
图7-3 图像位平面所含信息的对比
可以看出,(b)和(c)中,最低两个位平面反映的基本是噪声,没有包含图像的有用信息;加入第3个位平面后,噪声信息显得不均匀,见(d);1至4个位平面所携带的信息有了明显的不均匀,而去掉1~4个位平面的图像已经出现了可见的误差,见(e),去掉1~5个位平面的图像明显失真,见(f);图(g)、(h)则变化越来越明显。因此,图像像素的最低位一般称为LSB(Least Significant Bits),即最不重要位或最低有效位,改变LSB的值对整个图像没有明显的影响,替换LSB,可以达到信息隐藏的目的。
2LSB算法描述
LSB算法的核心是将选取像素点的最不重要位依次替换成秘密信息,嵌入秘密信息过程包括选择图像载体的一个像素点子集{C1,C2……C L(m)},(L(m)为秘密信息的二进制序列长度),然后在子集上执行替换操作:LSB(C i) <- m i,即把像素C i的最不重要位替换成秘密信息m i,m i为秘密信息的比特位,可以是1或0。LSB算法中,也可以替换载体图像像素点的多个比特(如最低两个比特)来嵌入秘密信息,以增加信息的嵌入量。秘密信息提取,找出嵌入信息的像素点子集,将这些像素点的LSB提取出来,恢复出秘密信息。算法描述如下:
嵌入过程: 根据载体图像大小及秘密信息的二进制序列长度,选择像素点{C1,C2……C L(m)} for i=1:L(m)
LSB(C i) <- m i
提取过程:for i=1: L(m)
m i <-LSB(C i)
像素点的选择方法有两种:顺序选择和随机选择
7.2.4 实验环境和分组
运行Windows2000/XP的PC机,安装Matlab(6.0以上)
每位同学独立编程
7.2.5 实验步骤
1 LSB算法——顺序选择像素点
(1)隐藏秘密信息:在Matlab中编写函数文件lsbhide.m
% 函数功能:实现LSB顺序信息隐藏,载体图像为灰度图像
% 参数说明:
% input:原始载体图像文件(灰度图像)
% file:秘密信息,为.txt文件
% output:隐蔽载体图像文件
% s_cover:输出变量,存放隐蔽载体图像
% len:输出变量,存放秘密信息的二进制序列长度
function [s_cover,len]=lsbhide(input,file,output)
%读入原始载体图像文件
cover=imread(input);
s_cover=cover;
s_cover=double(s_cover);
%将秘密信息.txt文件转换成二进制序列
fid=fopen(file,'r');
[msg,len]=fread(fid,'ubit1');
%判断嵌入信息量是否过大
[m,n]=size(s_cover);
if len>m*n
error('嵌入信息量过大,请更换图像');
end
%顺序选择像素点,嵌入秘密信息
p=1;
for j=1:n
for i=1:m
s_cover(i,j)=s_cover(i,j)-mod(s_cover(i,j),2)+msg(p,1);
if p==len
break;
end
p=p+1;
end
if p==len
break;
end
end
s_cover=uint8(s_cover);
%生成隐藏信息后的图像
imwrite(s_cover,output);
%显示实验结果
subplot(121),imshow(cover),title('原图像');
subplot(122),imshow(s_cover),title('隐蔽载体图像');
在Matlab命令窗口调用函数文件lsbhide.m,例如:
[s_cover,len]=lsbhide('gbaboon.bmp','secret.txt','scover.bmp'),实现秘密信息的隐藏。(2)提取秘密信息:在Matlab中编写函数文件lsbget.m
% 函数功能:从隐蔽载体图像中提取秘密信息
% 参数说明:
% output:隐蔽载体图像文件
% len:秘密信息的二进制序列长度
% file:提取出的秘密信息文件
% result:输出变量,存放提取出的秘密信息
function result=lsbget(output,len, file)
%读入隐蔽载体图像文件
s_cover=imread(output);
s_cover=double(s_cover);
[m,n]=size(s_cover);
%打开或创建一个文本文件,保存提取出的秘密信息
fid=fopen(file,'a');
%提取秘密信息,写入到文件中
p=1;
for j=1:n
for i=1:m
if mod(s_cover(i,j),2)==1
fwrite(fid,1,'bit1');
result(p,1)=1;
else
fwrite(fid,0,'bit1');
result(p,1)=0;
end
if p==len
break;
end
p=p+1;
end
if p==len
break;
end
end
fclose(fid);
在Matlab命令窗口调用函数文件lsbget.m,例如:result=lsbget('scover.bmp',56, 'getsecret.txt'),实现秘密信息的提取。
(3)查看秘密信息的嵌入位置,在Matlab中编写函数文件compare.m
% 函数功能:显示原始载体图像与隐蔽载体图像的区别
% 参数说明:
% original:原始载体图像文件
% hided:隐蔽载体图像文件
% F:输出变量,差值矩阵
function F=compare(original,hided)
%读入原始载体图像文件
W=imread(original);
W=double(W);
%读入隐蔽载体图像文件
E=imread(hided);
E=double(E);
%两个图像相减,显示实验结果
F=E-W;
imshow(F,[]);
在Matlab命令窗口调用函数文件compare.m,例如:F=compare('gbaboon.bmp','scover.bmp'),查看秘密信息的嵌入位置。
2 LSB算法——随机选择像素点
(1)随机选择像素点,在Matlab中编写随机间隔函数文件randinterval.m
% 函数功能:利用随机序列进行间隔控制,在载体图像中选择像素点%
% 参数说明:
% matrix:载体图像矩阵
% count:随机选择的像素点个数
% key:密钥,控制随机选择像素点
% row:输出变量,存放随机选择的像素点的行标% col:输出变量,存放随机选择的像素点的列标
function [row,col]=randinterval(matrix,count,key) [m,n]=size(matrix);
% 计算间隔的位数
interval1=floor(m*n/count)+1;
interval2=interval1-2;
if interval2==0
error('载体太小,无法嵌入秘密信息');
end
%生成随机序列
rand('seed',key);
a=rand(1,count);
%初始化
row=zeros([1 count]);
col=zeros([1 count]);
r=1;
c=1;
row(1,1)=r;
col(1,1)=c;
for i=2:count
if a(i)>=0.5
c=c+interval1;
else
c=c+interval2;
end
if c>n
r=r+1;
if r>m
error('载体太小,无法嵌入秘密信息');
end
c=mod(c,n);
if c==0
c=1;
end
end
row(1,i)=r;
col(1,i)=c;
end
(2)隐藏秘密信息:在Matlab中编写函数文件randlsbhide.m(调用随机间隔函数randinterval.m)
% 函数功能:实现LSB随机信息隐藏,载体图像为灰度图像
% 参数说明:
% input:原始载体图像文件(灰度图像)
% file:秘密信息,为.txt文件
% output:隐蔽载体图像文件
% key:随机间隔函数的密钥
% s_cover:输出变量,存放隐蔽载体图像
% len:输出变量,存放秘密信息的二进制序列长度
function [s_cover,len]=randlsbhide(input,file,output,key)
%读入原始图像文件
cover=imread(input);
s_cover=cover;
s_cover=double(s_cover);
%将秘密信息.txt文件转换成二进制序列
fid=fopen(file,'r');
[msg,len]=fread(fid,'ubit1');
%判断嵌入信息量是否过大
[m,n]=size(s_cover);
if len>m*n
error('嵌入信息量过大,请更换图像');
end
%调用随机间隔函数选择像素点
[row,col]=randinterval(s_cover,len, key);
%嵌入秘密信息
for i=1:len
s_cover(row(i),col(i))=s_cover(row(i),col(i))-mod(s_cover(row(i),col(i)),2)+msg(i,1);
end
s_cover=uint8(s_cover);
%生成隐蔽载体图像
imwrite(s_cover,output);
%显示实验结果
subplot(121),imshow(cover),title('原图像');
subplot(122),imshow(s_cover),title('隐蔽载体图像');
在Matlab命令窗口调用函数文件randlsbhide.m,例如:
[s_cover,len]=randlsbhide('gbaboon.bmp','secret.txt','scover.bmp', 2000),实现秘密信息的隐藏。
(3)提取秘密信息:在Matlab中编写函数文件randlsbget.m(调用随机间隔函数randinterval.m)
% 函数功能:从隐蔽载体图像中提取秘密信息
% 参数说明:
% output:隐蔽载体图像文件
% len:秘密信息的二进制序列长度
% file:提取出的秘密信息文件
% key:密钥
% result:输出变量,存放提取出的秘密信息
function result=randlsbget(output,len,file,key)
s_cover=imread(output);
s_cover=double(s_cover);
[m,n]=size(s_cover);
%打开或创建一个文本文件,保存秘密信息
fid=fopen(goalfile,'a');
%提取秘密信息,写入到文件中
[row,col]=randinterval(s_cover,len, key);
for i=1:len
if mod(s_cover(row(i),col(i)),2)==1
fwrite(fid,1,'bit1');
result(i,1)=1;
else
fwrite(fid,0,'bit1');
result(i,1)=0;
end
end
fclose(fid);
在Matlab命令窗口调用函数文件randlsbget.m,例如:
result=randlsbget('scover.bmp',56, 'getsecret.txt',2000),实现秘密信息的提取。
(4)查看秘密信息的嵌入位置,在Matlab中编写函数文件compare.m。参见“1 LSB算法——顺序选择像素点”第3部分。
3 LSB算法——检查算法的健壮性
(1)在隐蔽载体图像中加入噪声,编写加噪函数addnoise.m(以添加高斯噪声为例)
% 函数功能:在隐蔽载体图像中加入噪声
% 参数说明:
% output:隐蔽载体图像文件
% M:高斯噪声的均值
% V:高斯噪声的方差
% noiseoutput:加噪后的隐蔽载体图像文件
function addnoise (output,M,V, noiseoutput )
s_cover=imread(output);
add =imnoise(s_cover,'gaussian',M,V);
subplot(121),imshow(s_cover),title('隐蔽载体图像');
subplot(122),imshow(add),title('加噪后的隐蔽载体图像');
imwrite(add, noiseoutput);
(a)在Matlab命令窗口调用函数文件addnoise.m,例如:addnoise ('scover.bmp',0,0.01, 'noise_scover.bmp' ),生成加有高斯噪声(均值为0,方差为0.01)的隐蔽载体图像文件;
(b)在Matlab命令窗口调用函数文件lsbget.m/randlsbget.m,从加入噪声的隐蔽载体图像文件中提取秘密信息,查看实验结果。
(2)对隐蔽载体图像进行Jpeg压缩,编写压缩函数compress .m
% 函数功能:对隐蔽载体图像进行Jpeg压缩
% 参数说明:
% output:隐蔽载体图像文件
% q:质量因子,在[0,100]之间取值,值越大表示压缩后的图像质量越好
% jpgoutput:压缩后的隐蔽载体图像文件(JPEG格式)
function compress (output,q, jpgoutput )
s_cover=imread(output);
imwrite(s_cover, jpgoutput,'jpg','quality',q);
jpg=imread(jpgoutput);
subplot(121),imshow(s_cover),title('隐蔽载体图像');
subplot(122),imshow(jpg),title('压缩后隐蔽载体图像');
(a)在Matlab命令窗口调用函数文件compress.m,例如:compress ('scover.bmp',90, 'jpgscover.jpg' ),生成生成压缩的隐蔽载体图像文件(质量因子q=90);
(b)在Matlab命令窗口调用函数文件lsbget.m/randlsbget.m,从压缩后的隐蔽载体图像文件中提取秘密信息:查看实验结果。
7.2.6 思考题
(1)结合实验结果,对比两种选择像素点的方法(顺序选择和随机选择),试分析顺序选择像素点嵌入秘密信息的方法存在哪些缺点?
(2)在随机选择像素点的LSB算法中,采用的是随机间隔法,即利用随机数的大小控制前后两个嵌入位的距离,该方法会不会产生“碰撞”现象?除随机间隔法,请考虑是否还有其他方法实现像素点的随机选择。
(3)结合“LSB算法——检查算法的健壮性”的实验结果,分析LSB算法的优缺点。
7.3 图像信息伪装
7.3.1 实验目的
(1) 了解图像信息伪装技术的基本原理
(2) 掌握一种简单的图像信息伪装算法
7.3.2 实验内容
采用4bit替换法将一副秘密图像隐藏到一副载体图像中,查看隐藏效果,并提取出秘密图像7.3.3 实验原理
(1)4bit替换法
图像信息伪装指的是秘密信息和载体都是图像,在对图像质量要求不高的场合,可以采用4bit 替换法将一副秘密图像隐藏到一副载体图像中,即用秘密图像像素值的高4bit去替换载体图像像素值的低4bit,实现隐藏。以灰度图像为例,将其每个像素的低4bit清0,查看效果:
(a)原图像(b)低4位清0后的图像
图7-4 图像对比
由图7-4的对比可以看到,低4bit清0后的图像与原图像相比,在视觉上并没有太大的变化。对载体图像而言,可以认为图像像素的低4bit构成了冗余空间,能够嵌入秘密信息;对秘密图像而言,可以将其每个像素的低4bit舍去,仅隐藏高4bit。如果对秘密图像的质量要求非常高,可以将其每个像素(8bit)分别隐藏在两个载体像素的低4bit上。
(2)算法描述
采用4bit替换法,要求秘密图像的大小≤载体图像的大小,算法描述如下
嵌入过程: 载体图像Cover,秘密图像Secret
Cover的低4bit清0
Secret的低4bit清0,并将高4bit右移4位
for i=1:row
for j =1:column
Cover(i,j)与Secret(i,j)进行按位或运算,完成4bit替换
end
end
其中row,column为Secret(秘密图像)的行数和列数
提取过程:隐蔽载体图像Stego
for i=1:row
for j =1:column
Stego(i,j)与15(00001111)进行按位与运算,保留低4bit,并左移4位end
7.3.4 实验环境和分组
运行Windows2000/XP的PC机,安装Matlab(6.0以上)
每位同学独立编程
7.3.5 实验步骤
1 隐藏秘密图像,在Matlab中编写函数文件imagehide.m
% 函数功能:采用4bit替换实现图像信息伪装,载体图像为RGB图像,秘密图像为灰度图像% 参数说明:
% input:原始载体图像文件(RGB图像)
% file:秘密图像文件(灰度图像)
% output:隐蔽载体图像文件
% level:在载体图像的哪一层嵌入秘密图像,值为1(R层)、2(G层)或3(B层)
% s_cover:输出变量,存放隐蔽载体图像
% row_sec:输出变量,存放秘密图像的行数
% col_sec:,输出变量,存放秘密图像的列数
function [s_cover,row_sec,col_sec]=imagehide(input,file,output,level)
%读入原始载体图像文件
cover=imread(input);
%提取其中的一层嵌入秘密图像
cover1=cover(:,:,level);
[row_cov,col_cov]=size(cover1);
%读入秘密图像
secret=imread(file);
[row_sec,col_sec]=size(secret);
%判断嵌入信息量是否过大
if (row_cov error('秘密图像大于载体图像,请更换载体'); end %载体图像level层隐藏信息的像素低4bit清0 for i=1:row_sec for j=1:col_sec cover1(i,j)=bitand(cover1(i,j),240); end end %秘密图像低4比特清0,并右移4位 s_secret=bitand(secret,240); s_secret=bitshift(s_secret,-4); %将秘密图像隐藏到载体图像中 for i=1:row_sec for j=1:col_sec cover1(i,j)=bitor(cover1(i,j),s_secret(i,j)); end end %生成隐蔽载体图像文件 s_cover=cover; s_cover(:,:,level)=cover1; imwrite(s_cover,output); %显示实验结果% subplot(131),imshow(cover),title('载体图像'); subplot(132),imshow(secret),title('秘密图像'); subplot(133),imshow(s_cover),title('隐蔽载体图像'); 在Matlab命令窗口调用函数文件imagehide.m,例如: [s_cover,row_sec,col_sec]=imagehide('lenna.bmp','fishingboat.jpg','stego.bmp',3),实现秘密图像的隐藏。 2 提取秘密图像,在Matlab中编写函数文件imageget.m % 函数功能:从隐蔽载体图像中提取秘密图像 % 参数说明: % output:隐蔽载体图像文件 % row:秘密图像的行数 % col:秘密图像的列数 % file:提取出的秘密图像文件 % level:从载体图像的哪一层提取秘密图像 % result:输出变量,存放提取出的秘密图像 function result=imageget(output,row,col,file,level) s_cover=imread(output); %取图像的level层进行提取 s_cover=s_cover(:,:,level); for i=1:row for j=1:col s_cover(i,j)=bitand(s_cover(i,j),15); result(i,j)=s_cover(i,j); end end result=bitshift(result,4); imshow(result) imwrite(result,file); 在Matlab命令窗口调用函数文件imageget.m,例如:result=imageget('stego.bmp',200,200,'secret.bmp',1) 实现秘密图像的提取。 7.3.6 思考题 (1)采用4bit替换法将灰度图像隐藏到RGB图像的一层分量图像中,可能会对载体图像造成较大的破坏,试思考几种改进的方法; (2)将秘密图像置乱(如幻方变换)后再隐藏,查看隐藏效果,并分析图像置乱后隐藏的优点。 7.4 DCT(离散余弦变换)隐藏算法 7.4.1 实验目的 (1)了解变换域信息隐藏技术的基本原理 (2)掌握DCT隐藏算法的Matlab的实现 7.4.2 实验内容 对载体图像做8*8分块离散余弦变换,通过调整图像块中两个DCT系数的相对大小实现对秘密消息的嵌入,查看隐藏效果,并从隐蔽载体中提取和恢复秘密消息。进一步考察DCT算法的健壮性。 7.4.3 实验原理 1. 离散余弦变换 离散余弦变换(DCT)是一种实数域变换,其变换核为实数的余弦函数,图像处理运用的是二维离散余弦变换,对图像进行二维DCT,可以使得图像的重要可视信息都集中在DCT的一小部分系数中,如图7-3所示: (a)原始图像(8位灰度bmp图像) (b)DCT系数图像(c)DCT系数矩阵的三维网格图 图7-3图像的DCT变换 在图像DCT系数矩阵中,直流系数和低频系数集中在左上角,高频系数集中在右下角,中间区域为中频系数。由上图可以看出,直流和低频系数的绝对值比较大,这两部分所含有的原始信号成分较多,由其反变换重构图像能够得到原始图像的近似部分,而高频系数都非常接近于零,反映的是原始信号的细节部分。 2.JPEG压缩 JPEG(Joint Photo-graphic Experts Group)是ISO的连续色调静止图像的压缩标准,DCT是JPEG 有损压缩的核心技术,JPEG有损压缩步骤如下: (a)将图像数据进行8*8分块; (b)对每个子块做离散余弦变换(DCT); (c)量化,对子块内的每个DCT系数除以预定义的量化值,量化处理的目的是调整图像中不同频 谱成分的影响,尤其是减小高频系数; (d)对量化后的直流和交流系数分别进行差分和行程编码,最后再进行熵编码。 3. DCT算法描述 DCT隐藏算法能有效的抵抗JPEG压缩,在zhao&koch提出的DCT隐藏算法中,通过调整图像块中两个DCT系数的相对大小嵌入秘密信息,算法描述如下: 嵌入过程:对载体图像做8*8大小的分块DCT,在DCT系数矩阵块中,选择两个系数a,b If (嵌入的秘密信息位为…1?) make a>b Else make a 对嵌入秘密信息后的系数矩阵做8*8大小的分块DCT反变换 提取过程:对隐蔽载体图像做8*8大小的分块DCT,选取嵌入秘密信息的DCT系数矩阵块If a>b 提取秘密信息位…1? Else 提取秘密信息位…0? 注意:应在中频部分选择两个DCT系数,即图7-4中标出的阴影区域。低频系数包含了图像的主要能量,对低频系数的改动容易造成图像质量下降,不利于隐藏不可见性,而高频系数代表图像的噪声部分,对其改动不容易引起察觉,但高频系数容易在压缩中被去掉。选择中频系数嵌入秘密信息,可以在隐藏不可见性及鲁棒性之间做一个很好的折中。 图7-4zig-zag排列后的8*8的DCT系数矩阵 7.4.4 实验环境 运行Windows2000/XP的PC机,安装Matlab(6.0以上) 每位同学独立编程 7.4.5 实验步骤 1 DCT隐藏算法的实现 (1) 隐藏秘密信息:在Matlab中编写函数文件dcthide.m(调用随机间隔函数randinterval.m) % 函数功能:实现DCT信息隐藏,载体图像为彩色RGB图像% 参数说明: % input:原始载体图像文件(RGB图像) % file:秘密信息,为.txt文件 % output:隐蔽载体图像文件 % key:随机间隔函数的密钥 % alpha:控制量,调整两个系数之间的差值 % s_cover:输出变量,存放隐蔽载体图像 % len:输出变量,存放秘密信息的二进制序列长度function [s_cover,len]=dcthide(input,file,output,key,alpha) %读入原始载体图像文件 cover=imread(input); s_cover=cover; s_cover=double(s_cover)/255; %提取图像的一层进行信息隐藏 s_coverg=s_cover(:,:,2); %将秘密信息txt文件转成二进制序列 fid=fopen(file,'r'); [msg,len]=fread(fid,'ubit1'); %对图像做分块DCT% T=dctmtx(8); dctg=blkproc(s_coverg,[8 8],'P1*x*P2',T,T'); %产生随机块,确定图像块的首地址 [row,col]=size(dctg); row=floor(row/8); col=floor(col/8); a=zeros([row col]); [k1,k2]=randinterval(a,len,key); for i=1:len k1(1,i)=(k1(1,i)-1)*8+1; k2(1,i)=(k2(1,i)-1)*8+1; end %信息嵌入 temp=0; for i=1:len if msg(i,1)==0 if dctg(k1(i)+4,k2(i)+1)>dctg(k1(i)+3,k2(i)+2) temp=dctg(k1(i)+4,k2(i)+1); dctg(k1(i)+4,k2(i)+1)=dctg(k1(i)+3,k2(i)+2); dctg(k1(i)+3,k2(i)+2)=temp; 信息隐藏实验十L SB信息隐藏的卡方 分析 实验十 LSB信息隐藏的卡方分析 一,实验目的: 了解什么是隐写分析,隐写分析与信息隐藏和数字水印的关系。掌握基于 图像的LSB隐写的分析方法,设计并实现一种基于图像的LSB卡方隐写分析方法。 二,实验环境 1, Windows XP 操作系统 2, Matlab软件 3, BMP格式图片文件 三,实验原理 隐写术和隐写分析技术是互相矛盾又是相互促进的,隐写分析是指对可疑 的载体信息进行攻击以达到检测、破坏,甚至提取秘密信息的技术,它的主要 目标是为了揭示媒体中隐蔽信息的存在性,甚至只是指出媒体中存在秘密信息 的可疑性。 图像LSB信息隐藏的方法是用嵌入的秘密信息取代载体图像的最低比特 位,原来图像的7个高位平面与代表秘密信息的最低位平面组成含隐蔽信息的 新图像。虽然LSB 隐写在隐藏大量信息的情况下依然保持良好的视觉隐蔽性, 但使用有效的统计分析工具可判断一幅载体图像中是否含有秘密信息。 目前对于图像LSB信息隐藏主要分析方法有卡方分析、信息量估算法、RS 分析法和GPC分析法等。卡方分析的步骤是:设图像中灰度值为j的象素数为hj,其中0≤j≤255。如果载体图像未经隐写,h2i和h2i+1的值会相差很大。秘密信息在嵌入之前往往经过加密,可以看作是0、1 随机分布的比特流,而 且值为0与1的可能性都是1/2。如果秘密信息完全替代载体图像的最低位,那么h2i 和h2i+1的值会比较接近,可以根据这个性质判断图像是否经过隐写。定量分析载体图像最低位完全嵌入秘密信息的情况:嵌入信息会改变直方图的分布,由差别很大变得近似相等,但是却不会改变 h2i+h2i+1的值,因为 样值要么不改变,要么就在h2i 和h2i+1之间改变。令显然这个值在隐写前后是不会变的。 如果某个样值为2i ,那么它对参数q 的贡献为1/2;如果样值为2i+1 ,对参数q 的贡献为-1/2。载体音频中共有 2h2i*个样点的值为2i 或2i+1,若所有样点都包含1比特的秘密信息,那么每个样点为2i 或2i+1的概率就是0.5。当2h2i*较大时,根据中心极限定理,下式成立: 其中->N(0,1)表示近似服从正态分布 所以服从卡方分布。 上式中,k 等于h2i 和h2i+1所组成数字对的数量, h2i*为0的情况不计在内。r 越小表示载体含有秘密信息的可能性越大。结合卡方分布的密度计算函数计算载体被隐写的可能性为: 如果p 接近于1,则说明载体图像中含有秘密信息。 *22122**222(0,1) 2i i i i i i h h h h N h h *2 22*12()k i i i i h h r h 1121021 1 exp()21 2()2r k k t p t dt k 实验报告 课程:管理信息系统 一、实验目的 验证有关概念和理论,加深对概念和知识的理解和认识;熟悉和掌握Visual Basic 6.0 软件的使用方法;初步具备信息管理知识和制作数据字典、系统数据流程图的能力。运用课程讲授的管理信息系统的系统分析方法、模块化系统设计方法以及系统的调试方法进行人事档案管理信息系统的分析、设计、开发、实现与调试。 二、实验方法 面向对象法 三、实验环境及开发工具 1.硬件环境 在最低配置的情况下,系统的性能往往不尽如人意,但现在的硬件性能已经相当的出色,而且价格便宜,因此通常给服务器的配置高性能的硬件。 处理器:Interl Pentium II 266 MX 或更高 内存:64M 硬盘空间:2 GB 显卡:SVGA 显示适配器 显示器:液晶17寸 2.软件环境 操作系统:Windows/98/ME/2000/XP或更高版本 数据库:Microsoft Access 2000 3.实验开发工具:Visual Bisic 6.0程序系统 四、实验内容 (一)、系统分析 1、系统数据流程图 2、数据字典 3、系统中所有实体(包括实体的属性)以及实体之间的联系类型分析 人员的个人资料经过专业的处理部门的处理形成个人档案。档案包括自然情况,工作情况,简历,政治情况等各方面信息,内容比较庞大复杂。将档案信息传送到人员信息库。同时还综合考虑档案管理工作的性质,总结归纳出所需实现的功能。为人事档案进行服务,对人事的变动、人事资料、以及人事资料的查询,统计等功能。总体上说具有编辑,查询,用户管理,图表统计等功能。然后将最终结果提交到人力资源管理部门,由人力资源管理人员进行审查,以便于对职工的调配。 4、典型处理的表达 档案完整添加用户档案到档案库 个人信息成功添加到档案库 修改用户档案信息 档案不完整失败退回用户档案 C entr al South University 信息隐藏 实验报告 学院: 信息科学与工程学院 班级:信息安全1201 学号:0909121724 姓名:吕秋言 时间: 2018年6 月 实验一:基于图像的LSB 信息隐藏 一、 实验目的 该实验为验证性实验。目的是通过实验使学生掌握经典信息隐藏算法,在Matlab 环境下,编写基于图像的LSB 信息隐藏算法程序。用Matlab 函数实现LSB 信息隐藏及提取,并进行分析。b5E2RGbCAP 二、 实验要求 1、实验前要做好充分准备,包括:复习实验所涉及的知识点,掌握Matlab 编程语言和调试环境。 2、实验时注意记录实验过程中产生的数据、出现的问题及解决问题的方法。 3、理论联系实际,认真分析实验结果,回答思考题。 4、实验后完成实验报告,并附相关截图。 三、实验环境 计算机<安装Visual C++ 6.0和Matlab 6.5以上版本) 四、实验原理 隐秘算法核心是将我们选取的像素点的最不重要位依次替换成秘密信息,以达到信息隐秘的目的。嵌入过程包括选择一个图像载体像素点的子集{j1,…,jl(m>},然后在子集上执行替换操作像素 cji←→mi,即把cji的LSB与秘密信息mi进行交换(mi可以是1或0>。一个替换系统也可以修改载体图像像素点的多个比特,例如,在一个载体元素的两个最低比特位隐藏两比特、三比特信息,可以使得信息嵌入量大大增加但同时将破坏载体图像的质量。在提取过程中,找出被选择载体图像的像素序列,将LSB(最不重要位>排列起来重构秘密信息,算法描述如下:p1EanqFDPw 嵌入过程:for(i=1。i<=像素序列个数。i++> si←ci for(i=1。i<=秘密消息长度。i++> //将选取的像素点的最不重要位依次替换成秘密信息 sji←cji←→mi 提取过程:for(i=1。i<=秘密消息长度。i++> { i←→ji//序选取 mi←LSB(cji> 实验一《科达电脑外部设备管理信息系统》、上机实验目的 1.了解使用软件开发一个小型信息系统的过程。 2.掌握使用软件保存数据、按使用者要求对数据进行处理输出信息的方法。 3.掌握查询、统计、输出、宏、打印等功能,能较好地使用软件开发信息系统为管理服 务。 、上机实验基本要求 1?在规定上机时间内完成信息系统的开发任务,由指导老师检查通过系统。 2.按时提交上机实验报告。 3.指出系统的创新之处(学生要说明系统的创新点及意义)。 三、开发系统资料 1.开发背景 科达电脑公司是一个销售电脑外部设备和组装电脑的小公司,但成长很快。该公司成立于1997年,由于销售量增长很快,公司考虑扩展其业务。 目前该公司电脑外部设备零售价格的计算依赖于7%?20%的成本加价率和10%的税率,即 成本价乘以成本加价率为税前价格,税前价格乘以(1+税率)为零售价格,零售价格如果有小 数则四舍五入。 2.开发系统资料 下表是该公司一部分外设的数据清单。 120049 3.系统开发基本需求 科达公司希望为该公司外设销售业务设计一个电脑外部设备管理信息系统,要求系统满足以下要求:(1)能输出销售发票(基于上表所列数据),发票上要有公司名称和地址、税务登记号、发票号码、客户名称和地址、以及日期。发票上还应包括商品明细部分,其内容为:商品编号、 商品名称、销售价格(含税),该部分至少能容纳5个条目(即该发票至少能填写5个商品), 并要给出货款合计数(含税)和税款合计数。 (2)能对电脑外部设备的数据进行添加、删除、修改。 (3)能对电脑外部设备的一些相关数据进行查询。 四、开发任务具体要求 电脑外部设备管理信息系统要分为如下两个子系统。 1.《电脑外部设备数据编辑与查询子系统》 应满足以下要求: (1)有一个完整显示外设清单的数据表,如表1所示。外设清单数据表上应包括公司名称和“电脑外部设备价格表一2005年9月”。 (2)可以在数据表中进行添加、删除、修改数据的操作。 (3)在外设清单数据表中税前价格和零售价格(即最右边的两列)应由系统计算出来,这样可以维护数据的一致性,零售价格还应进行圆整。 (4)所有数据必须格式化,例如增加货币符号和百分号。 (5)未使用的栏目应保持空白,不得出现任何符号如或等。 (6)可以使外设清单数据表按升序排列。 (7)系统应能输出下列查询报告(使用中的自动筛选功能),在外设清单上添加宏操作 按钮,单击按钮可输出上述4个报告。?零售价格小于$500的所有外设 实验四二值图像信息隐藏 一、实验目的 了解二值图像的特点,掌握基于二值图像的信息隐藏原理,读懂两种基于二值图像的信息隐藏方法,并自己设计另一种二值信息隐藏的方法。 二,实验环境 (1)Windows XP操作系统; (2)MATLAB 7.2版本软件; (3)二值图像文件。 三、实验原理 二值图像又称为单色图像或黑白图像,一般用1或0表示黑色或白色像素点,利用二值图像信息隐藏的方法主要是根据图像中黑白像素数量的比较来隐藏信息。 方法一:把一个二值图像分成一系列矩形图像区域B,某个图像区域B中黑色像素的个数大于一半,则表示嵌入0;如果白色像素的个数大于一半,则表示嵌入1。但是当需要嵌入的比特与所选区域的黑白像素的比例不一致时,为了达到希望的像素关系,则需要修改一些像素的颜色。 方法二:采用游程编码方法在二值图像中隐藏信息。秘密信息嵌入时修改二值图像的游程长度,如果秘密信息位是0,则修改该游程长度为偶数;如果为1,则修改游程长度为奇数;如果秘密信息的取值与游程长度的奇偶性相匹配,则不改变游程长度。 方法三:将二值图像分块,使用一个与图像块大小相同的密钥二值图像块,与每一个图像块按像素进行“与”运算,“与”运算的结果可以确定是否在该块中嵌入数据,或嵌入怎样的数据。 四,实验步骤 下面以方法三为原理,进行实验。 1.嵌入秘密信息 主要思想:首先将载体图像分块,块数为秘密信息的二进制码个数,分块大小为载体图像的长和宽分别除以块数;设定一个与图像块大小相同的密钥二值图 像块,具体为一个8×8的数组,其中前4行全为1,后4行全为0;将载体图像块与密钥二值图像块进行“与”运算。经过运算后,参与统计的像素变为前4行。接下来统计“有效”像素黑白的个数,某个图像区域B中黑色像素的个数大于“有效”像素一半,则表示嵌入0;如果白色像素的个数大于“有效”像素一半,则表示嵌入1。但是当需要嵌入的比特与所选区域的黑白像素的比例不一致时,为了达到希望的像素关系,则需要修改一些像素的颜色。 Matlab代码如下: msgfid=fopen('hidden.txt','r');%打开秘密文件 [msg,count]=fread(msgfid); fclose(msgfid); msg = str2bit(msg); msg = msg'; count=count*8; io=imread('hunter.bmp');%读入载体图像 watermarklen=count;%嵌入水印信息长度,也就是载体图像分块的数量值 [row col]=size(io); l1=floor(row/watermarklen);%载体图像分块后的长度 l2=floor(col/watermarklen);%载体图像分块后的宽度 pixelcount=l1*l2;%每个分块总像素的数量值 miyue=[ones(6,8);zeros(2,8)];%密钥二值图像块 percent=24; iw=io; in=io;%存放与运算后的图像信息 %将原图像块与密钥块进行与运算 m=1; while m<=watermarklen i=1; j=1; in(i:(i+l1-1),j:(j+l2-1))=io(i:(i+l1-1),j:(j+l2-1)) & miyue; i=i+8; j=j+8; m=m+1; end inblack(1,watermarklen)=0;%某一个分块中黑色像素的个数 inwhite(1,watermarklen)=0;%某一个分块中白色像素的个数 n=1; while n<=watermarklen for i=l1*(n-1)+1:(l1*n-2) %只计算有效前4行的黑白个数 第一章学校教务管理信息系统项目规划 一、开发背景介绍 信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。这对于正在迅速发展的各大高校而言,同样有着重要意义。现如今高校为适应社会的需求以及自身办学的需要,扩建、扩招已在寻常不过。自然就会有更多的学生信息需要处理。如果只靠人力来完成,必然是一项非常繁琐、复杂的工作,而且还会出现很多意想不到的错误,这不仅会给教学及管理带来了很大的不便,也不益于学校全面快速发展的需要。在高校中,教务管理工作具有举足轻重的地位,教学质量直接取决十教务管理水平。现如今教务管理信息系统的开发与实施可谓日新月异。在数字校园理论逐步应用的过程中,各高校一方面不断投资购建各种硬件、系统软件和网络,另一方面也不断开发实施了各类教学、科研、办公管理等应用系统,形成了一定规模的信息化建设体系。教务管理系统是一个庞大而复杂的系统,它包括对学生信息的注册、修改,学生选课及课程管理和学生的四六级考试及计算机等级考试的管理;对教师课程的管理以及对选课学生评分的管理;和管理员对教师、各类考试的综合管理等主要的功能。教务管理系统运行的状况将直接影响到学校里的主要工作,一旦此系统出错,不仅学校的教学进度安排会受到一定程度的影响,而且还会危及到每一个在校学生的切身利益。所以设计一个功能相对完整、操作简单以及界面友好的教务管理系统变得非常重要。为了提高教务管理的工作效率和服务质量,降低出错率,精简人力、物力的投入,各个高校均建立了自己的教务管理信息系统,为学校的动态管理和分析决策带来了极大的便利。现在的学校的教务管理也逐步从手工转到计算机自动化信息处理阶段。通过这个系统,用户可以方便的对教师信息以及学生信息和学生成绩资料进行添加、修改和删除操作,还可以对学生资料和成绩进行查询操作。除此之外,对用户的添加和删除操作也很方便。教务管理系统是典型的信息管理系统(MIS),它能够实现整体规划教学资源(学生,教师,教室),评估教学质量,制定教学计划,检查教学进度,给学校的教务人员管理教务工作提供了极大的方便。 《管理信息系统》设计报告2014?2015学年第一学期 题目:图书馆管理信息系统 专业班级:物流1132 ___________ 指导教师:刘爱君 学生姓名:_______ 张松________ 2014年11 月26 日 图书馆管理信息系统 1 系统规划 1.1 项目背景 图书馆中的资料、书籍、文献等等是非常多的。图书馆为了更有效的管理日常信息、方便学生对图书馆的借阅、归还、续借、查询,维护好所有图书的信息而提升开发的系统。由于图书的数据的增加导致图书管理系统逐渐出现不稳定的现象,不利于日常图书信息的管理与维护。基于管理者对图书的管理以及对图书的借阅、归还等提供更轻松的管理方式,同时也方便读者用户可以随时借阅、归还等诸多问题,决定开发图书馆管理信息系统。 1.2 项目可行性分析根据调查,图书馆每天的书籍借阅量、书籍归还量是十分大的,以及续借,仅仅依靠人员的登记十分困难的,极难保证登记信息的准确性,又不能即使做到及时性。所以有必要开发一个图书馆管理系信息系统。 1 )必要性分析:通过学生对于建立这一个信息系统的建立的调查,大家一致认为建立这个系统是必须的。 2 )管理的可行性:当今社会是信息化的社会,工作信息化使得很多复杂、烦琐的工作变得简单。我们将要实现的就是为烦琐的图书馆借出入工作以及图书处理工作做的管理信息系统。我们的成品,将可以运用于一些小型的图书馆运营,还可以运用于一些私人租书处,据了解,我校也有这样的私人租书店。不过,其日常图书出入登记都是书面记录的,这样会有很大的安全隐患和操作不便性。本系统就可以用于解决这一类问题,所以管理上有可行性。 3)技术可行性:从技术上讲,现有的网络技术和计算机技术完全能够实现该系统所要求的功能和性能。图书馆管理信息系统的主要任务是在读者和图书馆之间建立一座桥梁,能够互相沟通信息与处理信息。这一特点非常适合计算机技术,只有通过与计算机技术、发挥计算机的传递信息的速度快、准确度高的优势。计算机的硬件与软件技术的飞速发展,为系统的建立提供了技术需求。而且在当今的社会中,大多数人都掌握了一定的计算机知识,建立此系统,不会给人们带来烦恼,相反的,会更让人们理解到此系统的好处,为人们提供了更加方便的选择,所以,开发此系统,在技术上是完全可行的。 2 系统分析 组织结构与功能分析 组织结构图、组织与业务关系分析、业务功能 《管理信息系统》 实验报告 题目:熟悉MIS-速达服装管理系统实验报告学号xxx 姓名xxx 指导教师xxx 成绩 时间:2011 年10 月06 日 1. 在熟悉速达服装管理软件时,要求每个同学以自己学号和姓名的身份建立自己的帐套。请用自己的语言阐述你对“帐套管理”的理解。 答:帐套管理就是一个管理系统,是管理人员进行管理的一个工具,让人更容易更快地了解一个企业的各方面信息。 它可以建立基础档案(部门及职员档案、客户档案和供应商档案、存货信息、存货档案、期初数据等)和日常业务(填制销售订单并进行审核、根据销售合同填制销售发货单并审核、进行销售开票处理等),以及期末工作(月末结账)和账簿查询(查询销售订单执行情况表、销售发货开票款勾对表、销售明细账、销售明细表等) 2. 以你自己完成的实验为例,阐明“数据和信息”的关系(可以画图或截图说明)。 答:数据与信息的关系为: 数据是信息的载体,信息是从数据中提炼出来的,不是所有的数据都是信息。例如0在数学中它所表示的信息是一个数字,但在现实生活中,有时可以表示有意义的信息,而有时则没有任何意义。数据不等于信息,数据只是信息表达方式中的一种。 数据是信息的一种表现形式,数据通过能书写的信息编码表示信息,信息有多种表现形式。由于数据能够书写,因而它能够被记录、存储和处理,以下的“货品-基础资料”中,就是数据被书写,一书写的形式让我们了解到库存商品的编码以及属性价格等信息。 3. 根据所介绍的“系统”概念,结合你对本软件的操作体验,请画图描述速达服装管理系统的基本结构并辅以文字说明。 答:系统是按一定的关系,有条有理的组成的整体。述速达服装管理系统既有横向综合又有纵向综 合的管理系统,从业务导航的纵向综合有进货管理、销售管理等,从横向综合的菜单栏有文件、资进销存等,如下图,系统是由子系统构成的,每一个业务下面都有子系统,也是跟详细的内容,例如:进货管理下面有采购订单、销售订单等。 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 隐写算法隐藏秘密信息后,这种相关性就会破坏。只要能找出衡量这一相关性的方法,并对隐藏秘密信息前后的情况加以对比,就有可能设计出隐写分析方法。 RS 隐写分析方法的理论核心是:任何经过LSB 隐写的图像,其最低比特位分布满足随机性,即0、1的取值概率均为1/2,而未经过隐写的图像不存在此特性。对于一个M N ?像素的图片,设各个像素的值取自集合P ,例如一个8bit 的灰度图像,{0,1,2, ,255}P =。将这些像素分为有着n 个相邻像素的子集,例 如n 可以取值为4,记为1234(,,,)G x x x x =。进一步利用如下函数表示图像块的空间相关性,即 1 12311 (,,, ,)n n i i i f x x x x x x -+==-∑ (1) 函数f 使得每一个集合G 都对应一个实数。G 中的噪声越大,函数f 的值越大。f 的值越小,说明图像相邻像素之间的起伏越小,而图像块的空间相关性越强。然后,定义集合P 上的3个函数: 2009~2010管理信息系统实验(2) 实验名称:管理信息系统-系统分析与设计 2、根据下述业务工作过程,画出业务流程图。 成品库保管员按车间送来的入库登记单登记库存台账。发货时,发货员根据销售科送来的发货通知单将成品出库,并发货,同时填写三份出库单,其中一份交给成品库保管员,由他按此出库单登记库存台账,出库单另外两联分别送销售科和会计科。(其中三份出库单要使用表格分配图) 订货折扣政策决策树 数 7、在酒店管理信息系统中,“折扣”处理过程是:如果某用户的消费额在2000 元以上,用现金结账打八折,记账打八五折;如果消费额在1000元与2000元之间,用现金结账打八五折,记账打九折;如果消费额在1000元以下,用现金结 账打九折,记账不打折。画出反映此方案的决策树(判断树)。 9、某工厂生产多种产品,每种产品又要使用多种零件;一种零件可能装在多种产品上。每种零件由一种材料制造,每种材料可用于不同零件的制作,有关产品、零件、材料的数据字段如下: 产品:产品号(GNO),产品名(GNA),产品单价(GUP) 零件:零件号(PNO),零件名(PNA),单重(UW),单价(UP) 材料:材料号(MNO),材料名(MNA),计量单位(CU),材料单价(MUP)以上各产品需要各种零件数为GQTY,各零件需用的材料量为PQTY。 要求:1)请画出产品、零件、材料的概念结构模型(E-R模型); 2)请将该E-R模型转换为关系数据库逻辑模型; (2) 产品(产品号,产品名,产品单位) 组成(产品号,零件号,零件数) 零件(零件号,零件名,单重,单价,材料号,材料量) 材料(材料号,材料名,计量单位,材料单价) 10、数据库设计应用。现有教师授课管理模型 (1)有若干系,每个系包括如下属性: 系编号、系名、成立时间、组成人数 (2)每个系有若干教师,教师只能属于一个系,包括如下属性:教师编号、姓名、性别、年龄、职称、学历 (3)有若干课程,包括如下属性:课程编号、课程名称、学时、学分(4)每个教师可以讲授多门课程,每门课程可以由多个教师讲授。(5)要求能够公布每门课程的授课教师、授课时间和授课地点。 解题要求: ①做出该系统的概念结构模型(E-R模型)。 ②设计该系统的关系数据库逻辑模型。 ① ② 系(系编号,系名,成立时间,组成人数) 教师(教师编号,姓名,性别,年龄,职称,学历,系编号) 实验十LSB信息隐藏的卡方分析 一,实验目的: 了解什么是隐写分析,隐写分析与信息隐藏和数字水印的关系。掌握基于图像的LSB隐写的分析方法,设计并实现一种基于图像的LSB卡方隐写分析方法。 二,实验环境 1,Windows XP操作系统 2,Mat lab 软件 3,BMP格式图片文件 三,实验原理 隐写术和隐写分析技术是互相矛盾乂是相互促进的,隐写分析是指对可疑的载体信息进行攻击以达到检测、破坏,共至提取秘密信息的技术,它的主要目标是为了揭示媒体中隐蔽信息的存在性,其至只是指出媒体中存在秘密信息的可疑性。 图像LSB信息隐藏的方法是用嵌入的秘密信息取代载体图像的最低比特位,原来图像的7个高位平面与代表秘密信息的最低位平面组成含隐蔽信息的新图像。虽然LSB隐写在隐藏大量信息的情况下依然保持良好的视觉隐蔽性,但使用有效的统计分析工具可判断一幅载体图像中是否含有秘密信息。 目前对于图像LSB信息隐藏主要分析方法有卡方分析、信息量估算法、RS 分析法和GPC分析法等。卡方分析的步骤是:设图像中灰度值为j的象素 数为hj,其中0WJW255。如果载体图像未经隐写,h2i和h2i+l的值会相差很大。秘密信息在嵌入之前往往经过加密,可以看作是0、1随机分布的比特流,而且值为0与1的可能性都是1/2。如果秘密信息完全替代载体图像的最低位,那么h2i和h2i+l的值会比较接近,可以根据这个性质判断图像是否经过隐写。定量分析载体图像最低位完全嵌入秘密信息的情况:嵌入信息会改变直方图的分布,由差别很大变得近似相等,但是却不会改变 h2i+h2i+l的值,因为样值要么不改变,要么就在h2i和h2i+l 之间改变。令显然这个值在隐写前后是不会变的。 如果某个样值为2i,那么它对参数q的贡献为1/2:如果样值为2i+l , 对参数q的贡献为T/2。载体音频中共有2h2i*个样点的值为2i或2i+l, 若所有样点都包含1比特的秘密信息,那么每个样点为2i或2i+l的概率就是0.5。当2h2i*较大时,根据中心极限定理,下式成立:其中->N(0, 1)表示近似服从正态分布所以他厂心》 服从卡方分布。 上式中,k等于h2i和h2i+l所组成数字对的数量,h2i*为0的情况不计在内。r越小表示载体含有秘密信息的可能性越大。结合卡方分布的密度计算函数计算载体被隐写的可能性为: 如果P接近于1,则说明载体图像中含有秘密信息。 四,实验结果 1,原图像 2,直方图由于所有的数据画出的直方图过于密集,所以选取80:99这之间的像素值。 计算机与信息学院 信息隐藏实验报告 专业班级 信息安全13-1班 学生姓名及学号 马骏 2013211869 课程教学班号 任课教师 郑淑丽 实验指导教师 郑淑丽 实验地点 20 ~20 学年第学期 实验1 BMP位图信息隐藏 一、实验目的 学习BMP格式文件,并编程实现对位图文件信息隐藏 二、实验要求 将TXT文件嵌入BMP 文件中 三、问题描述 1、BMP位图文件的格式? 2、有哪几种方法隐藏信息,分别采用什么样的数据结构 3、随机选取如何避免“碰撞”的出现 四、算法思想 1、BMP位图文件格式 0000h~0001h 2字节-------------------------bm的ASC码 0002h~0005h 4字节-------------------------文件大小102718字节 0006h~0009h 4字节-------------------------全为0 000Ah~000Dh 4字节-------------------------偏移量118字节 000Eh~0011h 4字节-------------------------位图信息块大小40字节 0012h~0015h 4字节-------------------------宽450 0016h~0019h 4字节-------------------------高450 001Ah~001Bh 2字节-------------------------恒为01h 00h 001Ch~001Dh 2字节-------------------------颜色所占二进制位数值04h 00h=4 16色位图 001Eh~0021h 4字节-------------------------压缩方式=0无压缩 0022h~0025h 4字节-------------------------图像数据区大小102600字节 0026h~0029h 4字节-------------------------水平每米多少像素39个 002Ah~002Dh 4字节-------------------------垂直每米多少像素39个 002Eh~0031h 4字节-------------------------图像所用颜色数=0 0032h~0035h 4字节-------------------------重要颜色数=0 0036h~0076h 64字节-------------------------颜色表 《管理信息系统》实验报告 图书销售管理系统 系统分析与设计 班级市场二班 学号 姓名彭俊 教师成卫 20013年4月5日 目录 实验二、业务流程调……………………………………3.实验三、数据流程调查…………………………………5.实验四、新系统概念模型的建立……………………….8.实验六、数据库设计............................9. 实验二图书销售管理的系统分析(一)——业务流程调查 一、实验目的:掌握组织结构和管理业务流程调查的方法及其成果的绘制。 二、建议机时:4机时(课内2机时,课外2机时) 三、实验内容 1、熟悉系统分析工具Visio的应用环境; 2、掌握组织结构调查的方法并利用Visio绘制组织结构图; 3、掌握管理业务流程调查的方法并利用Visio绘制业务流程图。 四、实验步骤 1、需求调查 在书店的日常管理中,书籍的进销存管理是书店的一项非常重要的工作。书店管理人员需要及时了解各种书籍的入库情况、销售情况和库存情况,以便更好地分析各类书籍的走势,合理安排书店经营的各个环节,尽可能扩大书店的营业量。因此,建立图书进销存管理系统成为企业信息化建设及现代化管理的必由之路。 2、图书销售管理组织结构及信息化状况调查 经过调查发现:该书店的图书经营部是由采购科、销售科、客户服务中心和库房四个科室组成,采购科主要负责书籍的订购与采购;销售科负责书籍的销售、缺货登记处理及销售统计分析;客户服务中心负责客户资料的建立和维护、大客户关系协调;库房负责书籍的入库、出库和盘点工作。 【根据以上调查文字,再在下面给出该书店的组织结构图】 3、图书销售管理业务流程调查: 采购科查询书籍的库存信息和读者的需求信息,若书籍库存量不能满足用户的需要,则编制书籍采购订货单,并交送给供货商,进行书籍的采购;供货商按订货单要求发货,并将收货单提交给库房检验员;库房检验员对收到的书籍进行检验,如发现书籍不合格,直接将书籍退回给供货商,如果产品合格,则开出入库单,提交给库房主管, 学号:姓名:专业年级班级: 实验室:组别:实验日期: message=fopen('Message.txt','r'); [msg,msg_len]=fread(message,'ubit1') %按位以二进制形式读取文本内容与长度 [m,n]=size(image1) %读取行和列 p=1; %p 为秘密信息的位计数器 [row,col]=randinterval(image1,msg_len,1996); for i=1:msg_len image1(row(i),col(i))=image1(row(i),col(i))-mod(image1(row(i),col(i)),2)+msg( p,1); if p==msg_len break ; end ; p=p+1; end %还原图像 Hide_image(:,:,1)=image1; Hide_image=uint8(Hide_image); imwrite(Hide_image,'Hide_image.tif'); %输出隐藏信息的图像 subplot(121);imshow(image);title('未嵌入信息的图片'); subplot(122);imshow(Hide_image);title('嵌入信息的图片'); else ['the photo is not a rgb style'] fclose('all'); end 实验算法 2:读取 LSB 隐藏的信息 1.读取已经隐藏信息的图像。如果为 RGB 图像,则读取图像的一层(该层为嵌入信 息的那层)。 2.用与 LSB 算法中相同的随机数种子产生相同的一串随机数。随机数串的长度由 LSB 中获得(长度不得大于图像大小)。 用同一个伪随机生成算法,相同的种子,来产生像素点位置,可以确保隐藏时和提取 时位置顺序是一模一样的,在顺序读取这些位置上的数据(利用与运算,与上1,任 综合评分:实验二:图像DCT域信息隐藏实验 【实验目的】: 一、简单复习变换域信息隐藏的基本思想 二、用 MATLAB实现图像DCT相关操作 三、完成基于图像DCT的信息隐藏实验 【实验内容】:(请将你实验完成的项目涂“■”) 实验完成形式: ■用MA TLAB函数实现图像DCT域信息隐藏和提取 ■用MA TLAB命令行方式实现图像DCT域信息隐藏和提取 □其它:(请注明) 实验选择载体: ■256×256灰度图像■256×256RGB图像■任意大小的RGB图像 实验效果和分析: ■分析了健壮性参数α与鲁棒性的关系 ■能随机选择嵌入块(考虑安全性因素) ■嵌入块均匀分布于载体 □信息提取的检错/纠错 ■分析了健壮性参数α与不可见性的关系 □其它:(请注明) 【实验工具及平台】: ■Windows+Matlab■其它:(请注明)WinHex 【实验涉及到的相关算法】: 在一个图像块中调整两个(或多个) DCT系数的相对大小。将描述一个使用数字图像作为载体的系统。在编码处理中,发送者将载体图像分成8×8的像素块,每一块只精确地编码一个秘密信息位。嵌入过程开始时,首先伪随机地选择一个图像块bi,用它对第i个消息比 特进行编码。令Bi=D{bi}为DCT变换后的图像块。 在通信开始前,发送者和接收者必须对嵌入过程中使用的两个DCT系数的位置达成一致,让我们用(u1,v1)和(u2,v2)来表示这两个索引。这两个系数应该相应于余弦变换的中频,确保信息保存在信号的重要部位(从而使嵌入信息不容易因JPEG压缩而完全丢失)。进一步而言,人们普遍认为中频 DCT系数有相似的数量级,我们可以假定嵌入过程不会使载体产生严重降质。因为构造的系统要在抵抗JPEG压缩方面是健壮的。我们就选择在JPEG压缩算法中它们的量化值一样的那些DCT系数。根据表2.1,系数(4,1)和(3,2),或者(1,2)和(3,0)是比较好的。 编码方法:若块Bi (u1,v1) >Bi(u2,v2) 就编码为“1”,否则编码为“0”。 在编码阶段,如果相对大小与要编码的比特不匹配,就相互交换两个系数。由于JPEG 压缩(在量化阶段)能影响系数的相对大小,算法应通过在两个系数中加随机值,以确保对某个x>0,使得|Bi (u1,v1)-Bi(u2,v2) |>x。 DCT隐秘载体编码过程: for i =1,...,l (M) do 选取一隐蔽数据块bi Bi=D{bi} if m=0 then if Bi (u1,v1)>Bi (u2,v2)then 交换Bi (u1,v1)和Bi (u2,v2) end if else if Bi (u1,v1) 管理信息系统实验及答案1 第一章学校教务管理信息系统项目规划 一、开发背景介绍 信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。这对于正在迅速发展的各大高校而言,同样有着重要意义。现如今高校为适应社会的需求以及自身办学的需要,扩建、扩招已在寻常不过。 自然就会有更多的学生信息需要处理。如果只靠人力来完成,必然是一项非常繁琐、复杂的工作,而且还会出现很多意想不到的错误,这不仅会给教学及管理带来了很大的不便,也不益于学校全面快速发展的需要。在高校中,教务管理工作具有举足轻重的地位,教学质量直接取决十教务管理水平。现如今教务管理信息系统的开发与实施可谓日新月异。在数字校园理论逐步应用的过程中,各高校一方面不断投资购建各种硬件、系统软件和网络,另一方面也不断开发实施了各类教学、科研、办公管理等应用系统,形成了一定规模的信息化建设体系。教务管 理系统是一个庞大而复杂的系统,它包括对学生信息的注册、修改,学生选课及课程管理和学生的四六级考试及计算机等级考试的管理;对教师课程的管理以及对选课学生评分的管理;和管理员对教师、各类考试的综合管理等主要的功能。 教务管理系统运行的状况将直接影响到学校里的主要工作,一旦此系统出错,不仅学校的教学进度安排会受到一定程度的影响,而且还会危及到每一个在校学生的切身利益。所以设计一个 功能相对完整、操作简单以及界面友好的教务管理系统变得非常重要。为了提高教务管理的工作效率和服务质量,降低出错率,精简人力、物力的投入,各个高校均建立了自己的教务管理信息系统,为学校的动态管理和分析决策带来了极大的便利。现在的学校的教务管理也逐步从手工转到计 算机自动化信息处理阶段。通过这个系统,用户可以方便的对教师信息以及学生信息和学生成绩资料进行添加、修改和删除操作,还可以对学生资料和成绩进行查询操作。除此之外,对用户的添加和删除操作也很方便。教务管理系统是典型的信息管理系统(MIS),它能够实现整体规划教学资源(学生,教师,教室),评估教学质量,制定教学计划,检查教学进度,给学校的教务人员管理教务工作提供了极大的方便。 二、项目概况:系统的目标(功能、服务范围和质量) 学校教务管理信息系统将生产相关的各个部门通过网络进行连接,实现教学计划及时、教务信息共享、科学管理体系、准确传递教务信息,从而提高管理质量,促进教学流程效率提高,改善系统整体的管理水平,降低消耗成本,并为高 校进行教学计划、教学决策等提供科学的依据。 功能:教学管理人员可以通过该系统添加学院、专业、科目信息、查询修改 信息、查询学生成绩;普通教师录入、修改、查询学生成绩;学生只能查询自己 的成绩。该系统可以实现包括教学管理人员登陆信息、班级 实验五 Patchwork 图像信息隐藏 一,实验目的 1,了解Patchwork信息隐藏特点, 2,掌握基于Patchwork 的图像信息隐藏原理 3,设计并实现一种 Patchwork 的信息隐藏方法 二,实验环境 1, Windows XP 操作系统 2, Matlab 7.1版本软件 3, BMP格式图片文件 三,实验原理 1,Patchwork是指从载体数据中选择一些数据组成两个集合,通过修改这两个集合之间的某种关系来携带水印信息。这两个集合可以是两个系数、两组系数或者是两个特征量。两个集合之间的关系可以是大小关系、能量关系、逻辑关系和奇偶关系等。Patchwork方法嵌入水印时,通过修改集合之间的某种关系来嵌入水印;提取水印时则根据对应的关系来提取嵌入的水印信息。2,在本实验报告中,验证了通过随机方式把像素分组的方法。随机选择N对像素点(ai和bi),然后将ai点的值增加d,将bi点的像素值减少d。 3,同时,设计了自己的算法。先把图像的像素写成一维矩阵,根据矩阵下标4*n形式和4*n-1形式分为两组,将下标为4*n形式所对应的像素增加常量d=2.3,将下标为4*n-1形式所对应的像素减少常量d=2.3。 四,实验内容 1, 验证通过随机方式把像素分组的方法。 (1)嵌入秘密信息 clc; clear all; oi=imread('baboon.bmp');%读入载体图像 ni=rgb2gray(oi); wi=ni; [row col]=size(wi); wi=double(wi); wi=wi(:); n=floor((row*col)/10); length=row*col; rand('state',123);%产生随机数的密钥 a=rand(1,n);%产生N长度的随机数 d=2.3;%定义修改的分量 count=0; k=1; while k<=n if (a(1,k)>=0.5) wi(k*10,1)=wi(k*10,1)+d; wi(k*10-1,1)=wi(k*10-1,1)-d; end k=k+1; end for i=1:row for j=1:col wil(i,j)=wi(row*(j-1)+i,1); end end wil=uint8(wil); imwrite(wil,'watermarked.bmp'); subplot(1,2,1);imshow(ni);%显示原始图像subplot(1,2,2);imshow(wil)%显示新图像 下图为原图与嵌入信息的图像: 实验一《科达电脑外部设备管理信息系统》 一、上机实验目的 1.了解使用Excel软件开发一个小型信息系统的过程。 2.掌握使用Excel软件保存数据、按使用者要求对数据进行处理输出信息的方法。 3.掌握Excel查询、统计、输出、宏、打印等功能,能较好地使用Excel软件开发信息系统为管理服务。 二、上机实验基本要求 1.在规定上机时间内完成信息系统的开发任务,由指导老师检查通过系统。 2.按时提交上机实验报告。 3.指出系统的创新之处(学生要说明系统的创新点及意义)。 三、开发系统资料 1.开发背景 科达电脑公司是一个销售电脑外部设备和组装电脑的小公司,但成长很快。该公司成立于1997年,由于销售量增长很快,公司考虑扩展其业务。 目前该公司电脑外部设备零售价格的计算依赖于7%~20%的成本加价率和10%的税率,即成本价乘以成本加价率为税前价格,税前价格乘以(1+税率)为零售价格,零售价格如果有小数则四舍五入。 2.开发系统资料 下表是该公司一部分外设的数据清单。 3.系统开发基本需求 科达公司希望为该公司外设销售业务设计一个电脑外部设备管理信息系统,要求系统满足以下要求: (1)能输出销售发票(基于上表所列数据),发票上要有公司名称和地址、税务登记号、发票号码、客户名称和地址、以及日期。发票上还应包括商品明细部分,其内容为:商品编号、商品名称、销售价格(含税),该部分至少能容纳5个条目(即该发票至少能填写5个商品),并要给出货款合计数(含税)和税款合计数。 (2)能对电脑外部设备的数据进行添加、删除、修改。 (3)能对电脑外部设备的一些相关数据进行查询。 四、开发任务具体要求 电脑外部设备管理信息系统要分为如下两个子系统。 1.《电脑外部设备数据编辑与查询子系统》 应满足以下要求: (1)有一个完整显示外设清单的数据表,如表1所示。外设清单数据表上应包括公司名称和“电脑外部设备价格表-2005年9月”。 (2)可以在数据表中进行添加、删除、修改数据的操作。 (3)在外设清单数据表中税前价格和零售价格(即最右边的两列)应由系统计算出来,这样可以维护数据的一致性,零售价格还应进行圆整。 (4)所有数据必须格式化,例如增加货币符号和百分号。 (5)未使用的栏目应保持空白,不得出现任何符号如#N/A或#V ALUE等。 (6)可以使外设清单数据表按升序排列。 (7)系统应能输出下列查询报告(使用Excel中的自动筛选功能),在外设清单上添加信息隐藏实验十LSB信息隐藏的卡方分析教程文件
管理信息系统实验报告分析报告
LSB信息隐藏实验报告
管理信息系统实验一
信息隐藏 实验四 二值图像信息隐藏
管理信息系统实验及答案(1)复习进程
管理信息系统实验报告(2)
管理信息系统实验报告1
信息隐藏实验十一LSB信息隐藏的RS分析
管理信息系统实验
信息隐藏实验十LSB信息隐藏的卡方分析
合肥工业大学信息隐藏实验报告 完整代码版.
管理信息系统实验报告
LSB图像信息隐藏实验
实验二图像DCT域信息隐藏实验
管理信息系统实验及答案1.doc
信息隐藏 实验五 Patchwork 图像信息隐藏
管理信息系统实验一