首页 > 编程知识 正文

四种信息隐藏模型,什么是信息隐藏

时间:2023-05-04 05:46:39 阅读:134537 作者:2817

编目实验环境系统设计BMP文件格式LSB空域信息隐藏算法嵌入算法提取算法LSB空域信息隐藏算法分析优势系统实现HidenMsg.txt信息隐藏: HideMsg.m信息提取: showhigh

实验环境MATLAB系统设计BMP文件格式

位图文件(BMP )文件是Windows采用的标准文件格式,Windows系统上有多种图像处理软件支持。 BMP文件也是信息隐藏中常用的携带秘密信息的载体之一。

BMP图像文件是位图文件。 也就是说,将图像分割为各个网格,每个网格称为像素。 因此,每个图像可以看作是由几个像素点组成的矩阵。 在灰度图像中,像素点的灰度值通常由多个位表示,位数据中的每个位表示0或1的二值平面,称为位平面。 当用1位数据表示像素点的灰度值时,该图像是8位表面。 在其中,最下位面用比特面0表示,最上位面用比特面7表示。 BMP图像文件大致分为两个部分,包括头文件和位图数据,更详细地说,分为四个部分。

头文件中的数据。 包括文件的数据类型、显示设置等。 位图的结构信息。 包含位图的边长、压缩方法和颜色信息。 颜色样本。 很多图像文件没有这个部分。 例如,24位真彩色BMP图像没有调色板部分。 位图数据。 此部分由BMP图像文件的位数决定,真彩色图像使用RGB,而其余图像使用第三部分的颜色索引。 LSB空域信息隐藏算法LSB(leastsignificantbit )算法将隐藏的信息比特按比特顺序嵌入到原始图像像素的最低有效位表面。

嵌入算法LSB算法的嵌入流程如下。

(1)变换原图像中各像素点的灰度值,从十进制变换为二进制;

)2)将秘密信息转换为二进制串,将原图像中的像素点的最低有效位置换为二进制串中的各位信息;

)3)置换过程结束后,将像素点的二进制数据转换为十进制数据,保存为载体图像。

提取算法对应于嵌入算法,LSB算法的提取过程如下。

(1)转换校准图像中各像素点的灰度值,并从十进制转换为二进制;

)2)提取图像像素点中最低有效位的数据,按照嵌入顺序进行组合得到原始秘密序列。

LSB空域信息隐藏算法分析的优点LSB算法的优点如下。

可嵌入信息量多的算法简单,容易实现,能够避免由于载体图像失真小的文件格式的变更导致的秘密信息的损坏。 缺点LSB算法的缺陷也很明显:

鲁棒性差; 不擅长隐藏术。 系统实现HidenMsg.txt存储所需的隐藏秘密信息。

信息隐藏: HideMsg.m LSB算法嵌入过程中的重要步骤是用隐藏的秘密信息替换原始图像中最低的位平面。

首先,将原始图像中像素的最低面设置为0。 )判断像素点的灰度值是否能被2整除,如果不能整除,则反转最低有效位。 )

然后,可以逐位根据秘密信息改变像素的最低有效位,实现秘密信息的嵌入。

%打开图像picture=imread('pic.BMP ); 将%图像转换为双精度类型双精度(double _ picture=双精度); %读取所需的隐藏信息文件file=fopen('hidenmsg.txt ',' r ' ); [HidenMsg,msglen]=fread(file,' ubit1 '; %获取图像分辨率[Length,width]=size(double_picture ); p=1; forj=1: width fori=1: length %隐藏最低面信息Double_picture(i(I,j ) double_picture ) I,j )-bitand ) double _ble end if p==MsgLen break endend%包含隐藏信息的bmp文件double _ picture=uint8(double _ picture ); imwrite(double_picture,' PicWithHidenMsg.bmp ' ); 未嵌入%信息的图像subplot(121; imshow(picture ); title ('未嵌入信息的图像); %显示嵌入信息的图像subplot(122; imshow(double_picture ); title )关闭"嵌入信息图像" %文件fclose(file )的信息提取:从LSB算法的嵌入过程中的重要步骤可以看出,承载图像的最低有效位是秘密信息的比特流

因此,只需变换图像中每个像素点的灰度值,从十进制变换为二进制,提取图像的像素点中的最低位的数据,按照嵌入顺序进行组合就可以得到秘密信息。

%打开隐藏信息图片picture=im read (picwithhhidenmsg.BMP ); 将%图像转换为双精度类型双精度(double _ picture=双精度); %获取图像分辨率[Length,width]=size(double_picture ); 打开%文件file=fopen(showhidenmsg.txt,' wb ' ); 设定%隐藏信息的长度%隐藏字符数*8 bitMsgLen=10*8; p=1; forj=1: width fori=1: length %最下面是隐藏信息fwrite(file,bitand ) double_picture(I,j ),1 )、' ubit1 ' ); if p==MsgLen break end p=p 1; 关闭end if p==MsgLen break endend%文件fclose (文件); 参考文献[1]沉默的枫树等.多媒体信息安全实践教程.科学出版社

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。