{$cfg_webname}
主页 > 计算机 > 论文 >

基于图像的信息隐藏技术(毕业论文11000字)

来源:56doc.com  资料编号:5D6676 资料等级:★★★★★ %E8%B5%84%E6%96%99%E7%BC%96%E5%8F%B7%EF%BC%9A5D6676
资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用. 帮助
资料介绍

基于图像的信息隐藏技术(毕业论文11000字)
【摘要】
在基于互联网的通信过程中,人们往往最担心的就是通信数据的安全性,在特殊的通信环境,如军事通信、金融通信等等,更是如此。但是,由于互联网自身的特点,在通信过程中,信息可能会受到各种各样的无法预料的攻击。这种情况相当危险。但是,加入采用信息隐藏技术,即将重要信息做为秘密信息嵌入到看起来平常的介质中间如图片等,攻击者无从得知图片中含有秘密信息,因此则大大增强了网络通信的安全性。
图像隐藏的目的是将一些明文或某些机密文件通过一定的算法使其隐藏于可以公之于众的一张图片中,同时要确保不能对原始图像在视觉上造成变化。图像隐藏有多种方法,在这里主要介绍了LSB算法的原理及实现过程。LSB(LeastSignificant Bits)算法:将秘密信息嵌入到载体图像像素值的最低有效位,也称最不显著位,改变这一位置对载体图像的品质影响最小。本文实现了对信息,文件信息隐藏到图像中的LSB算法。


关键字:图像隐藏  信息安全  LSB  最低有效位


Image-based information hiding algorithm research
Abstract
With the development of Internet technology, more and more attention to the privacy of communications. This paper reviews the development and application of image encryption technology, and the application of the subdiscipline image encryption detection, and made to explain the current image encryption algorithm. From three levels on the image encryption detection technology, including attack detection, hidden detection and crack detection. Images hide an important issue as information security, more and more countries in the world.
This paper introduces the LSB algorithm in information security, image encryption. Image hidden purpose is expressly or some confidential documents by a certain algorithm hidden in a picture can be made public, while ensuring that not cause visual changes on the original image. Image hiding a variety of ways, here introduces the principle of the LSB algorithm and implementation process. LSB (LeastSignificant Bits) algorithm: the secret information is embedded into the least significant bit of the pixel values of the carrier image, also known as the least significant bit to change this position to the minimum impact on the quality of vector images. Information, documents, information hidden in the image, while taking advantage of the pseudo-random sequence to improve the LSB algorithm.

Key words :Images hide、Information security、LSB 、least significant bit

 
第一章 引言    2
1.1信息隐藏技术的提出    2
1.2研究方向和应用领域    2
1.3发展现状    4
1.4信息隐藏技术的特点    5
1.5基本算法    6
1.6本文主要研究内容    7
第二章 信息隐藏框架及BMP位图    8
2.1信息隐藏的基本框架    8
2.2BMP图像格式    8
第三章 采用LSB进行BMP图像信息隐藏算法实现    11
3.1.算法实现    11
3.2 LSB算法原理    12
3.3算法实现流程图    15
第四章  LSB隐藏系统    16
4.1系统设计    16
4.2 系统实现    18
4.3 系统测试    21
4.4本算法的优缺点    22
第五章 总结与展望    23
参考文献    24
致    谢    25

 
第一章 引言
1.1信息隐藏技术的提出
     随着多媒体技术的不断发展和扩大,以及互联网技术的普及和成熟,数字媒体已经日益受到了人们的极大欢迎,其数量也出现了指数形式的增长。互联网的形成和发展改变了人们传统的获取信息和交流的方式。它使得这个过程变得更加迅速、方便、经济。而多媒体技术的发展更是日新月异,传统的信息媒体都不得不走向数字化的道路,如报纸、书籍、图片、音乐、电影等等。多媒体信息的多样化使得人们的生活变得越来越丰富多彩。
    但这个过程同样存在着非常严重的隐患:知识产权问题和网络安全问题。因为在互联网上获得数字媒体的手段具有多样化和隐蔽的特点,并且,对这些媒体的修改、复制、发布的方法日益完善和成熟,这使得数字媒体的知识产权问题十分严重,互联网上的盗版行为十分猖獗,比如说音乐的非法上传和下载。另外,由于互联网具有高度的开放性、自主性,使得信息传输过程的安全性得不到有力保障,黑客攻击企业、政府以获取重要情报的事件屡见不鲜。而传统的加密术都是基于密码学的,它的弱点在于它暴露了重要信息的位置,容易吸引攻黑客的注意力,使其得以进行有针对性的攻击。另一个弱点则是,随着电脑硬件的不断升级,计算机的计算速度不断加快,使得密码学算法的安全性变得越来越脆弱。信息系统正面临着信息的保密性、完整性和可控性的威胁。
    为了应对这两个方面的困难,信息隐藏技术作为一门区别于传统的信息安全技术,引起了人们的极大兴趣。很多专家学者投入到信息隐藏技术的研究之中,并取得了巨大进展。不仅有大量的论文在国际会议和学术期刊上发表,甚至有些成熟、有效的算法已经运用到工业生产中了。
1.2研究方向和应用领域
(1)知识产权的保护
可以说,正是在信息时代数字媒体的版权问题才导致和促进了数字水印的产生和发展。在数字水印技术诞生之前,数字媒体的版权所有者不得不容忍盗版侵权行为,或者为了保护版权,而采用一些可能对数字媒体质量产生严重破坏的方法加上版权所有标志,而即使这样,这种标志也容易被篡改而失去版权保护作用。数字水印技术发展之后,这种情况大有改观。比如,美国的Adobe System公司在它的图像处理软件Adobe Photoshop中加入数字水印的模块;五大唱片公司博德曼、百代、索尼、环宇和华纳宣布与IBM联合开发一个在互联网安全、快速、方便地发布数字媒体试听产品的试验系统,有效地保护了音乐、电影作者的知识产权。
     图1.1 一个数字作品交易框架

(2)隐秘通信
在军事应用中,隐秘通信占有极其重要的地位,军事战争的双方都把相当的精力放在情报窃听与反窃听上。军事系统中更加倾向于使用扩频调制等通讯手段来达到干扰敌人隐藏自己的目的,在加密信息的同时,更加注重的是不让敌人检查到自己的信号。
在民间的互联网通信中,由于人们对于匿名通信以及言论自由的渴望,使得隐秘通信有了一个很大的表演舞台。基于信息隐藏技术的互联网通信还表现在电子选举和电子购物中。这样的互联网应用广泛采用了信息隐藏技术以保护网络使用者的隐私。

(3)数据的不可抵赖性
在企业间的商业交易中经常会碰到这样的情况,甲方向乙方购买货物时先通过网络银行向乙方账户中汇款,而乙方收到汇款却声称自己没有收到汇款而拒绝向甲方发货,这时数据的不可抵赖性就发挥了它的作用。数据的不可抵赖性保证了交易的任何一方都不能抵赖自己发出的信息,以及不能否认自己接受到对方的信息,这是网上交易能够正常进行的基础。信息隐藏技术中的脆弱水印是目前解决这个问题的有效方法之一。它将各自的特征以水印标记的形式嵌入到发送的信息中,而这种水印是很难或者不能被修改以及去除的。
(4)印刷品防伪
电子商务的兴起,也为信息隐藏技术提供了用武之地。在电子商务中产生的各种电子票据,其有效性和防伪性有着不言而喻的重要性的。将在印刷品中嵌入数字水印技术以用于防伪是最近才开始研究的课题。将防伪水印隐藏在电子票据之中,经过打印之后,水印是仍然存在的,因此再扫描成数字形式,通过软件将水印提取出来,可以验证电子票据的真实性。这样就可以不给倒卖假票的犯罪分子以可乘之机。
1.3发展现状
信息隐藏虽然是计算机技术尤其是互联网技术发展成熟之后兴起的学科,但它是有着非常悠久的历史渊源的。提到信息隐藏,人们会想起密码;而密码术的起源可以追溯到四千多年前的古埃及、古罗马、古希腊。而基于计算机的信息隐藏技术则可以认为是从1996年在英国剑桥召开的国际第一届信息隐藏学术研讨会开始的。这一会议于1998年在美国的波特兰, 1999年在德国的德雷斯顿,2001在美国的匹兹堡,2002年在荷兰,2004在加拿大的多伦多,2005年在西班牙的巴塞罗那分别召开过,发表了一些高水平论文。一些有影响力的国际会议(IEEE,SPIE等)出版了与信息隐藏相关的专题;一些国际权威期刊,如《IEEE图像处理》、《IEEE会报》等许多国际重要期刊相继出版信息隐藏技术的专刊。另外,Stefan Katzenbeisser和Fabien A. P. Petitcolas等人出版了专著《Information hiding techniques for steganography and digital watermarking》,是这个领域的权威著作。
不仅理论界在深入地研究信息隐藏技术,而且工业界也在不断地探索。近几年来,越来越多的高科技公司致力于信息隐藏或者数字水印技术的研究,推出了成熟的视频、音频、图像版权保护数字水印系统。除了之前提到的Adobe System公司的Adobe Photoshop,另外还有Signum Technologies公司推出的suresign水印系统,BluesPike公司推出的Giovarmi数字水印系统,Cognicity公司推出的Audiokey MP3水印系统等。
1.4信息隐藏技术的特点
信息隐藏技术是将秘密信息加入到公开信息之中,以达到不被第三方发觉秘密信息的目的。它要求不被第三方发觉,因此对于公开信息,也就是原始视频、音频、图像等媒介,的改变极小,使人用直接用眼睛、耳朵无法察觉到这种改变,无法意识到秘密信息的存在,从而逃避拦截者的攻击。由于多媒体的应用非常广泛,信息隐藏技术也有很多分支,但总结起来,有以下几点:
(1)    不可感知性:
这是对于信息隐藏技术的一个最基本要求。秘密信息必须“天衣无缝”地嵌入到原始媒介之中,不仅不影响计算机对这些数据的正常读写,而且不会引起人的感官注意。假如在嵌入的过程中留下了明显的痕迹,则严重破坏了系统的安全性。
(2)    鲁棒性
鲁棒性,也被称作健壮性,表明信息隐藏技术应该能承受一定量的恶意的或者非恶意的攻击或者干扰。如果承受了较大强度的信号干扰或者信号处理,仍能够将原始媒介中的秘密信息提取出来,则说明该技术鲁棒性较强;反之,媒介信息若稍有改动,秘密信息便不可提取,则说明其鲁棒性太差。因为在信息传播过程中,信号难免会受到或大或小的干扰,因此保持一定的鲁棒性是非常重要的。
(3)    承载量
假如信息隐藏被用于保护数字版权的数字水印等,则由于水印量比之于媒介信息量非常小,对于承载量可以不做要求。但对于秘密通信来说,在一定的信息媒介中,嵌入的秘密信息量越大,即承载量越大,网络传输的效率越高。假如承载量太小的话,秘密通信的价值将大打折扣。但同时,承载量增大往往意味着不可感知性和鲁棒性的降低,因此,在具体应用时,应该权衡这几方面的利弊关系。
(4)    安全性
在信息隐藏技术中,同样会涉及到加密术。在秘密信息嵌入到数字媒体的过程中,只有先将秘密信息加密,再将其嵌入,才能提高信息的安全性。在版权保护方面,它要求第三方未经授权不可伪造或者检测水印。这样,在设计具体算法时,应该考虑到加密算法的安全性问题。
1.5基本算法
(1)空间域算法
①最低有效位算法(Least Significant Bit,LSB)
其基本思想是,在图像中,改变每个像素点的最低位不会对视觉产生影响。基于此,可以用秘密信息直接代替数字图像的最低位。这是一种经典的空间域的信息隐藏方法。它满足了秘密信息的不可见性,并且算法简单,且计算机处理较快。
②Patchwork方法
这是一种统计算法。首先随机选取N对像素点,然后通过增加像素对中一个点的亮度值,而相应降低另一个点的亮度值。这样整个图像的平均亮度保持不变。
③文档结构微调方法
(2)变换域算法
①离散余弦变换(DCT)
早期的DCT算法是Cox等人提出的。该算法利用了图像编码中的冗余信息,对图像进行从空间数据到空间频率域的变换。在变换过程中,可以获得图像的某些压缩特性和像素的统计值。DCT算法对压缩、噪声干扰等攻击具有较强的鲁棒性。
②离散傅立叶变换(DFT)
离散傅立叶变换在信息隐藏和数字处理技术中占有重要地位,通过傅立叶变换,数字信息既可以隐藏在数字媒体的幅度上,也可以嵌入到媒体的相位中。
③小波变换(DWT)
将图像平面进行分割,得到一组空间、频率均不相同的子图像。这些子图像刚好能够不重叠地组合成原始图像。对于已经分割的图像,还可以再次分割。子图像面积越小,则在时域和频域上的局部化程度越高。如果时域和频域都尽可能地小,获得的信号就越精确。但时域和频域都是有一定约束的,不可能无限小。因此需要平衡时域和频域的关系。
1.6本文主要研究内容
图像信息隐藏技术是一门新兴的学科,也是一个非常热门的研究领域。虽然有许多人研究出了信息隐藏的许多算法,发展了信息隐藏的众多分支。虽然这些算法有的已经十分成熟,但更多的仍有待改进。所以,本文是在前人已有的算法上加以探索,对LSB算法进行分析,研究算法,并通过.NET平台实现了通过BMP图片对信息和文件进行隐藏。
主要本文分为五个部分,各章节的内容与安排如下:
第一章引言,介绍了信息隐藏技术的背景、应用领域、常见算法和本文主要研究内容;
第二章信息隐藏框架及BMP位图介绍,包括信息隐藏的基本框架、BMP图像格式等;
第三章详细介绍本文提出的基于BMP图像的隐藏算法的原理和实现,详细阐述了信息写入图像的过程。
第四章介绍了LSB算法隐藏系统的设计和开发过程及成果。
第五章总结和展望。
第二章 信息隐藏框架及BMP位图
2.1信息隐藏的基本框架

    一般地,一个信息隐藏系统的模型描述如下。一个系统主要包括两个部分:信息嵌入部分和信息提取部分。
    首先,获得秘密信息的原文。其次,通过信息隐藏算法,嵌入到给定的公开信息(比如说一张图片)中。隐藏算法G,可以用公式表示为:
embedded_data=G(original_data,encoded_message);
    original_data是公开信息的原始数据,encoded_message是带隐藏的信息或文件,G是信息隐藏算法,得到的结果embedded_data是嵌入秘密信息的公开信息。
    信息提取部分则是以上过程的逆过程。首先,获得了一份公开信息后,通过算法G的逆向算法,得到嵌在其中的秘密信息的密文,这样就完成那个了信息提取的整个过程。可以用公式表示为:   
encode_message=G’(embedded_message);
    其中,G’是信息提取算法,F’是解密算法。
    具体过程详细描述如下:发信人甲需要将秘密信息original_message发送给乙,于是甲选择一个公开信息,比如说一张图片,一段音频等,我们记作original_data,将original_message嵌入到original_data中去。得到嵌入了密文的隐秘数据embedded_data。甲将embedded_data发送给乙。乙在接收到embedded_data之后,通过G’(embedded_data)运算将密文从embedded_data中提取出来,得到甲想发送的原始信息。
2.2BMP图像格式
BMP是Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。一个标准BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。现在简要介绍BMP图像各个部分的结构及所占用的字节数。一般BMP图像包括4个部分:
位图文件头    图像描述信息    颜色表    图像数据区

1.文件头信息块
0000-0001:文件标识,为字母ASCII码“BM”。
0002-0005:文件大小。
0006-0009:保留,每字节以“00”填写。
000A-000D:记录图像数据区的起始位置。各字节的信息依次含义为:文件头信息块大小,图像描述信息块的大小,图像颜色表的大小,保留(为01)。
2.图像描述信息块
    000E-0011:图像描述信息块的大小,常为28H。
    0012-0015:图像宽度。
    0016-0019:图像高度。
    001A-001B:图像的plane总数(恒为1)。
    001C-001D:记录像素的位数,很重要的数值,图像的颜色数由该值决定。
    001E-0021:数据压缩方式(数值位0:不压缩;1:8位压缩;2:4位压缩
    0022-0025:图像区数据的大小。
    0026-0029:水平每米有多少像素,在设备无关位图(.DIB)中,每字节以    00H填写。
    002A-002D:垂直每米有多少像素,在设备无关位图(.DIB)中,每字节以    00H填写。
    002E-0031:此图像所用的颜色数,如值为0,表示所有颜色一样重要。

3.颜色表
颜色表用于说明位图中的颜色,它有若干表项(RGBQUAD类型的结构),每个表项的结构如下:

偏移量(相对本结构)    00H    01H    02H    03H
大小(byte)    1    1    1    1
数据    蓝色亮度    绿色亮度    红色亮度    保留(0)
图2.1        颜色表各块偏移量
颜色表中RGBQUAD结构的个数由位图信息头中每个像素所需位数(biBitCount)决定:
当biBitCount=1,4,8时,分别有2,16,256个表项;
当biBitCount=24时,没有颜色表项。

4.图像数据区

    图形数据记录的是位图的每个像素的值,记录顺序是在扫描行内从左到右,扫描行之间是从下到上。位图一个像素值所占的字节数:
当位图为双色时,每个像素所需位数=1,8个像素占一个字节;
当位图为16色时,每个像素所需位数=4,2个像素占一个字节;
当位图为256色时,每个像素所需位数=8,1个像素占一个字节;
当位图为64K色时,每个像素所需位数=24,1个像素占三个字节;
Windows规定一个扫描所占的字节数必须是4的倍数(即以long为单位),不足的以0填充。


第三章 采用LSB进行BMP图像信息隐藏算法实现
下面详细介绍本文所提出的基于BMP图像的LSB信息隐藏算法。众所周知,传统的LSB算法有简单、执行速度快、不可见性好等优点。信息隐藏技术中最简单和最有代表性的就是用信息代替图像中的最低有效位的算法。图像的最低有效位也称为最不显著位,它是指数字图像的像素值用二进制表示时的最低位。在单个LSB编码中,LSB直接被信息编码所取代。由于LSB位平面携带着秘密信息,因此,在嵌入了秘密信息的图像中,只需提取含秘密信息的LSB位平面即可。可以将秘密信息的编码看成二进制数据流,将这个二进制数据流的每一位写入到图像每个像素点的LSB中去,这样,既将信息嵌入到了图像中,又让人难以直接从肉眼上察觉。
3.1.算法实现
1、由于涉及到BMP的图像操作,因此须将BMP图像文件的各个数据块读到内存中。
 
图3.1  读取BMP图像文件流程图

信息头和调色板都不必改动,我们只需将秘密信息的各个比特嵌入到位图数据即可。
2、上传载体文件,并将载体文件读到内存中,方便后续的隐藏。
3、通过位操作,对载体图像的最低有效位,既是位图数据部分的每个字节的最后一位,进行移位操作,将该位记0,然后将秘密信息的每个自己的每一位分别嵌入进去。
3.2 LSB算法原理
LSB的含义是Least Significant Bit,即最不重要位。首先,任何一副图像的每一个像素的每一位对于图像的视觉效果都有一定的贡献。其次,每个像素的最低有效位对于图像的贡献最小,它所引起的变化对于整个图像的效果影响最小。因此最低有效位被称为最不重要位。以上所说的像素是在BMP图像的第四部分,即图像数据区。LSB算法由于是要将秘密信息嵌入进BMP图像中,所以嵌入信息的位置和BMP图像的结构密切相关。根据第二章的介绍,BMP图像的前54字节为自身图像的保留区,所以这些字节不能嵌入信息。
LSB算法是一种典型的空间域数据隐藏算法。通常,它包含如下步骤:
第一步:读入载体图像,决定载体的嵌入位数;
第二步:对载体图像进行处理,将其图像的LSB置为0;
第三步:读入秘密信息;
第四步:将秘密信息的ASCII编码的每一位插入到每一个像素的LSB位上。
下面,从图1-3到图1-7演示了将一个字节的数据用LSB算法插入到一个8位的灰度图像(每个像素用一个字节表示)中的情况。
 
图3.2  某图像数据(红色部分为最低有效位LSB)
 
图3.3  一个字节的信息ASCII码值

 
图3.4  将图像数据LSB清零
 
图3.5  将信息数据的每一位依次写入到LSB中
 
图3.6  嵌入了信息后的图像数据
上述方法执行结束之后,BMP图像的数据区字节的最后一位通过移位操作都发生了变化,BMP图像数据区的每个字节变成了下图:
01100011    01100011    01100100    01101001    00111100    01101010    01101100    01100101

01100010    01100011    01100100    01101000    00111101    01101011    01101100    01100100
上述改变对于BMP图像的视觉效果是可以接受的。
以上这种嵌入思想为将秘密信息嵌入BMP图像的位图数据部分的每个字节的最后一位的方法,但是随着时间的发展,人们对图像隐藏的要求越来越高,在隐藏的时候加入了人类体验。研究发现,对于由连续像素组成的图像(本文主要针对24位的BMP图片),每个像素由R(红色)、G(绿色)、B(蓝色)三个颜色分量组成,根据亮度公式I=0.3R+0.59G+0.11B可以得知:人眼对于图像中的绿色分量最为敏感,对蓝色分量最不敏感。绿色分量每改变一个单位对人眼的刺激效果,与蓝色分量改变5个、红色分量改变2个单位对人眼的刺激效果是等价的。折算为二进制,对红色分量改变低两位、对绿色分量改变最低位或对蓝色分量改变低三位时,不会在视觉上有明显的差异。因此可在描述原始图像每个像素的三个字节中获取2+1+3=6个比特的空间,用于存储文本信息的比特流。按此比率,一幅大小为L的24位BMP图像最大可以得到的文本信息的存储空间为(L-54)×6/(3×8),大约是位图长度的1/4。而在上述介绍的LSB算法实现的过程中,一副大小为L的24位BMP图像的最大可以得到的文本信息的存储空间为(L-54)/8,大约是位图长度的1/8。通过比对,可以发现两者存在一定的区别,在信息隐藏方面。第二种方法对于图像的影响是最小的,同时其可以隐藏的最大信息量大约是第一种方法的2.6倍。
根据第二种的思路,信息的嵌入可以用下列过程所示:
原始图像字节(四个连续像素):
像素1:R7R6R5R4R3R2R1R0 G7G6G5G4G3G2G1G0 B7B6B5B4B3B2B1B0
像素2:R7R6R5R4R3R2R1R0 G7G6G5G4G3G2G1G0 B7B6B5B4B3B2B1B0
像素3:R7R6R5R4R3R2R1R0 G7G6G5G4G3G2G1G0 B7B6B5B4B3B2B1B0
像素4:R7R6R5R4R3R2R1R0 G7G6G5G4G3G2G1G0 B7B6B5B4B3B2B1B0
待嵌入的信息的三个连续字节:
E7E6E5E4E3E2E1E0 F7F6F5F4F3F2F1F0 H7H6H5H4H3H2H1H0
将待嵌入的文本比特流嵌入到原始图像每个像素的R、G、B分量的冗余位,即R分量的低两位,G分量的最低位,B分量的低三位,嵌入后的原始图像字节就变成:
像素1:R7R6R5R4R3R2E7E6 G7G6G5G4G3G2G1E5 B7B6B5B4B3E4E3E2
像素2:R7R6R5R4R3R2E1E0 G7G6G5G4G3G2G1F7 B7B6B5B4B3F6F5F4
像素3:R7R6R5R4R3R2F3F2 G7G6G5G4G3G2G1F1 B7B6B5B4B3F0H7H6
像素4:R7R6R5R4R3R2H5H4 G7G6G5G4G3G2G1H3 B7B6B5B4B3H2H1H0
由以上可以看出,原始图像的4个完整像素(12个字节)恰好能容纳3个完整的文本信息字节,算法的实质就是把三个字节的文本信息比特流按照2、1、3的顺序替换掉原始图像的每个字节的低2、1、3位。因此对于位操作和移位处理等操作,均可以通过预先设定的数组来方便的实现。
3.3算法实现流程图





图3.7 信息隐藏过程流程图
以上流程图为信息在嵌入24位BMP图像的过程中的大致流程图,相对于隐藏,在提取的过程中,基本为信息隐藏的逆过程。但是,在提取的过程中,要加入判断,判断所要提取的图片是否已嵌入信息。本文提供一种思想来进行判断:
通过在信息隐藏的过程中,在隐藏的起始位置嵌入一个特殊符号的ASCII码,比如嵌入一个#号或者&号等,在提取的时候首先判断,起始位置提取出的是否第一个符号是#或者&号,如果不是则说明该图片没有嵌入信息。如果提示是,则说明该图片嵌入了信息。
第四章  LSB隐藏系统
 4.1系统设计
1、开发工具简介:Microsoft visual studio2005采用软件开发生命周期,是一套完整的开发工具集,用于生成 ASP.NET Web 应用程序、XML Web Services、桌面应用程序和移动应用程序。这里我采用visual studio2005中.NET开发环境下的C#语言。C#是Microsoft公司开发的一种面向对象的编程语言,它松散地基于C/C++,并且有很多方面和Java类似。Microsoft是这样描述C#的:“C#是从C和C++派生来的一种简单、现代、面向对象和类型安全的编程语言。C#(读做‘Csharp’)主要是从C/C++编程语言家族移植过来的,C和C++的程序员会马上熟悉它。C#试图结合Visual Basic的快速开发能力和C++的强大灵活的能力。”C# 凭借它的许多创新,在保持 C 样式语言的表示形式和优美的同时,实现了应用程序的快速开发。
C#语言特点:
  a.语法简洁。不允许直接操作内存,去掉了指针操作。
  b.彻底的面向对象设计。C#具有面向对象语言所应有的一切特性—封装、继承和多态。
  c.与web紧密结合。C#支持绝大多数的web标准,如html、xml、soap。
  d.强大的安全机制。可以消除软件开发中的常见错误(如语法错误),.NET提供的垃圾回收器能够帮助开发者有效的管理内存资源。
  e.兼容性。因为C#遵循.NET的公共语言规范(CLS),从而保证能够与其他语言开发的组件兼容。
  f.灵活的版本处理技术。因为C#语言本身内置了版本控制功能,使得开发人员可以更容易的开发和维护。
  g.完善的错误、异常处理机制。C#提供了完善的错误和异常处理机制,使程序在交付应用时能够更加健壮。
2、LSB隐藏系统模块


图4.1 系统主要功能模块
本系统采用自顶向下开发思想,主要分为以下2大模块,每个模块下面又包含两个功能。具体功能描述如下:
信息隐藏模块:其功能是将输入或导入的文件或信息成功的隐藏到指定的图像中。
信息提取模块:其功能是将包含隐藏信息的载体图片中的秘密信息提取出来。
根据对象的不同,也存在着不同的思想。对于单独的一段信息,根据第三章介绍的LSB算法,主要采用每个字节的最低位嵌入秘密信息。而对于文件模块,则主要采用的是LSB算法隐藏的1:4的方法。即每十二个字节隐藏三个字节的内容。分别为红:绿:蓝=2:1:3的原则。
3、系统界面设计
本系统采用自顶向下的开发方法,在界面设计中,首先有一个进入界面,引导选择信息隐藏对象。如果选择加密信息就进入信息隐藏的界面,如果选择以藏文件则进入文件隐藏的界面。无论是信息还是文件,都有隐藏功能和提取功能。本系统在界面设计上,对于信息隐藏过程作了比较,将隐藏前和隐藏后的图片效果进行了比对。同时在信息的提取的过程中,提取出来的信息会自动显示到窗体上。对于文件的隐藏和提取,在窗体上加入三个文本框,分别显示,原始图片字节大小,隐藏信息字节大小,及最大可隐藏的信息量。将图片以更为直接的数字表述出来,能让大家更好的了解LSB算法在执行过程中各个部分的情况。同时对于文件的提取,提取出的文件须更改为原来的后缀名,才能打开。

4.2 系统实现
根据上文所描述的算法原理,实现过程。对算法进行编码,实现了对BMP24位位图进行加密的小程序。简称为LSB隐藏系统。
LSB隐藏系统主界面如下图:
 
图4.2 主界面
根据不同的隐藏对象有不同的选择,上图两个按钮提供了选择。
1、若选择加密信息,则进入加密信息界面:
 
图4.3 信息隐藏界面
选择信息隐藏,进入信息隐藏界面:
 
图4.4 信息隐藏功能界面
操作流程:1、先选择一张位图作为载体图片,点击图中最上面的按钮即可;
2、在右边的文本框中输入要隐藏的信息,例如输入HELLOWORLD等的,
3、输入完成后,点击文字嵌入按钮,就可把信息成功嵌入了。成功后会提示成功嵌入。
选择信息提取,进入如下界面:
 
图4.5 信息提取功能界面
操作流程:点击上图最上方按钮,选择已隐藏信息的图片,点击右下角提取信息按钮,则会将图片中隐藏的信息提出,在右边的文本框中显示。
2、若选择加密文件,则进入以下界面:
 
图4.6 文件隐藏功能界面
操作流程:通过选择载体位图,选择信息文件,然后点击嵌入按钮,即可。本次隐藏过程中,会自动备份图片,生成一个_original.bmp后缀名的文件,以备比较。原始图片.BMP的图片为嵌入了秘密文件的图片,_original.bmp后缀名的文件为未嵌入信息的原始图片。
文件的提取界面如下图所示:
 
图4.7 文件提取功能界面
操作流程:选取嵌入信息的.BMP后缀名的图片,选取提取出的文件存放的位置,点击提取按钮即可。同时,提取出的文件为一个没有任何格式的文件,须更改文件的格式,即可。
以上就是整个LSB隐藏系统的界面设计。
4.3 系统测试
在完成了设计和编码之后,为了使系统更好更稳定的运行,需要对系统进行有针对性的全面测试。集体测试如下:
   w代码测试:编写测试数据进行测试。测试数据除了采用正常数据,检查程序的代码实现是否正确外,还应包括一些异常数据和错误数据,用来测试程序逻辑上的正确性。代码在编写初期,出现许多错误,关于信息隐藏过程中位运算的错误,以及各种字符类型之间转化的错误,还有数组索引类型的错误。在测试的时候,通过一步步的单步调试,最后排除了错误,系统基本能运行并能完成LSB隐藏系统设计的初衷。
w确认测试:运行系统,检查系统功能是否能够准确地被实现。针对本系统是查看信息和文件是否能够成功的被隐藏和提取。
本系统在界面设计上,对于信息隐藏过程作了比较,将隐藏前和隐藏后的图片效果进行了比对。同时在信息的提取的过程中,提取出来的信息会自动显示到窗体上。对于文件的隐藏和提取,

4.4本算法的优缺点
1、算法简单易懂,执行速度快;
2、当图片受到攻击时,如裁剪或者噪声干扰时,接收者可能解读不出其中的信息,换言之,该算法的鲁棒性不够好。
3、在检测图片是否隐藏有秘密信息时,本算法存在一定缺陷。
4、LSB算法的简单易懂,决定了算法隐藏信息的秘密性。如果掌握了算法的隐藏过程,通过逆过程,能够提取出算法所隐藏的秘密信息。即隐蔽性方面存在缺陷。



第五章 总结与展望
经过了这次的毕业设计,关注了LSB算法,关注了BMP图像,关注了信息隐藏领域,使我对信息隐藏有了新的认识
首先,信息隐藏的主要学科分支包括掩蔽信道、匿名技术、隐写术和数字水印技术。信息隐藏在现在的社会应用的领域也非常广泛。但是信息隐藏技术尚未发展到完善的可实用的阶段,仍有不少技术性问题需要解决。
其次,在学习的过程中,对图像有了了解。每个图像有它特定的结构,BMP图像是我毕业设计的重头戏,掌握了BMP图像在计算机中存取的过程,我才能从计算机微观的世界里去实现LSB算法。否则,任何的算法都是空想。
再次,我了解了LSB算法。从一个单词,到掌握这个算法的原理,再到通过建模用计算机语言实现这个算法。虽然LSB算法原理很简单,但是在系统实现过程中,我也遇到了很多技术上的困难。对我来说最难的一点就是怎样把图像数据以及要被隐藏的信息转化成二进制数据流,再对其进行操作。经过不断的尝试努力,难题终于迎刃而解。在这个过程中我学习到了做任何事情都要有一个严谨的态度,做学问是要一丝不苟的,对于出现的问题和偏差都不要轻视,在解决问题的时候要耐心沉着,不能一遇到困难就打退堂鼓,只要坚持下去最后一定能够妥善解决。另外虚心听取别人的意见也是非常重要的,所谓当局者迷,不要固执己见。
虽然毕业设计到此已经基本完成了,但是我认识到在算法方面还有很多的方面要学习。现在研究的基本都是前人所完成的,作为一个学习者对此进行实现。我想,我应该在此基础上继续学习,改进这个算法,使算法更加稳定。

参考文献
[1]王振勇,张晓敏:《信息隐藏技术在电子商务中的应用》,中国论文下载中心 ,2009年1月
[2] 余艳玮:《基于图像的信息隐藏》,北京:清华大学出版社,2005年9月,56-58
[3] 梁立军:《浅谈信息隐藏技术及其应用》,长春市消防支队通信科 ,2005年12月
[4] 朱桂斌: 《数字图像信息隐藏的理论与算法研究》 ,重庆大学; 控制理论与控制工程(专业) 博士论文 2004年度
[5] 乔小燕,孙兴华,杨静宇:《基于视觉冗余性的图像信息隐藏》,《计算机应用》, 2006年1月
[6] 胡兴军:《信息隐藏技术及应用》,中国公共安全(综合版),2008年 第06期
[7] 傅德胜,谢永华:《基于图像的信息隐藏检测技术》,中国信息安全博士网原创,2008年10月
[8] Provos N,Honeman P.Hide and Seek;An Introduction to Steganography[J].IEEE            SECURITY & PRIVACY,2003,5/6;32-44
[9]《信息隐藏技术》,王炳锡,彭天强,国防工业出版社2007年
[10]《数字水印技术及应用》,孙圣和,陆哲明,牛夏牧等著,科学出版社2004年
 

推荐资料