AES加密进行BMP图像信息隐藏的算法实现.docx
《AES加密进行BMP图像信息隐藏的算法实现.docx》由会员分享,可在线阅读,更多相关《AES加密进行BMP图像信息隐藏的算法实现.docx(31页珍藏版)》请在冰豆网上搜索。
AES加密进行BMP图像信息隐藏的算法实现
目录
目录1
摘要2
Abstract3
第一章引言4
1.1信息隐藏技术的提出4
1.2研究方向和应用领域5
1.3发展现状7
1.4信息隐藏技术的特点8
1.5基本算法9
1.6本文主要研究内容10
第二章 信息隐藏技术基础介绍11
2.1信息隐藏的基本框架11
2.2BMP图像格式13
2.3AES加密算法14
第三章采用AES加密进行BMP图像信息隐藏的算法实现18
3.1算法实现18
3.2LSB算法原理21
3.3试验结果验证25
3.4本算法的优缺点26
第四章总结与展望27
参考文献28
摘要
在基于互联网的通信过程中,人们往往最担心的就是通信数据的安全性,在特殊的通信环境,如军事通信、金融通信等等,更是如此。
但是,由于互联网自身的特点,在通信过程中,信息可能会受到各种各样的无法预料的攻击。
这种情况相当危险。
但是,加入采用信息隐藏技术,即将重要信息做为秘密信息嵌入到看起来平常的介质中间如图片等,攻击者无从得知图片中含有秘密信息,因此则大大增强了网络通信的安全性。
本文在传统信息隐藏技术基础上,提出了一种结合了AES加密技术的BMP图像信息隐藏算法。
关键字:
信息隐藏,加密,最低有效位,媒介
Abstract
IntheInternet-basedcommunication,peoplearemostconcernedaboutthecommunicationofdatasecurity,especiallyinspecialcommunicationsenvironment,suchasmilitarycommunicationsandfinancecommunication.However,duetoitsowncharacteristicsoftheInternet,informationwillencountervariousunexpectedattackincommunication.Thissituationisquitedangerous.Usinginformationhiding,thatimportantinformationishiddenintothemediumwhichlooksusual,suchasapicture,itisgreatlyincreasedthesecurityofnetworkcomunication.Onthebasisoftraditionalinformationhiddingtechnology,thisarticleintroducesainformatonhidingalgorithmonBMPpicturewhichcombinesaesencrypthion.
Keywords:
informationhidding,encrypthion,LSB,medium
第一章引言
1.1信息隐藏技术的提出
随着多媒体应用技术的不断发展,以及互联网技术的普及和成熟,数字媒体受到了人们的极大欢迎,其数量也出现了几何级数式的增长。
互联网的出现改变了人们传统的交流和获取信息的方式。
它使得这个过程变得更加迅速、方便、经济。
而多媒体技术的发展更是日新月异,传统的信息媒体都不得不走向数字化的道路,如报纸、书籍、图片、音乐、电影等等。
多媒体信息的多样化使得人们的生活变得越来越丰富多彩。
但这个过程同样涉及到非常严重的问题:
知识产权问题和网络安全问题。
因为在互联网上获得数字媒体的手段具有多样化和隐蔽的特点,并且,对这些媒体的修改、复制、发布的方法日益完善和成熟,这使得数字媒体的知识产权问题十分严重,互联网上的盗版行为十分猖獗,比如说音乐的非法上传和下载。
另外,由于互联网具有高度的开放性、自主性,使得信息传输过程的安全性得不到有力保障,黑客攻击企业、政府以获取重要情报的事件屡见不鲜。
而传统的加密术都是基于密码学的,它的弱点在于它暴露了重要信息的位置,容易吸引攻黑客的注意力,使其得以进行有针对性的攻击。
另一个弱点则是,随着电脑硬件的不断升级,计算机的计算速度不断加快,使得密码学算法的安全性变得越来越脆弱。
信息系统正面临着信息的保密性、完整性和可控性的威胁。
为了应对这两个方面的困难,信息隐藏技术作为一门区别于传统的信息安全技术,引起了人们的极大兴趣。
很多专家学者投入到信息隐藏技术的研究之中,并取得了巨大进展。
不仅有大量的论文在国际会议和学术期刊上发表,甚至有些成熟、有效的算法已经运用到工业生产中了。
信息隐藏,就是在公开的信息中加入秘密信息,以达到隐藏秘密信息的目的。
在多媒体的信息隐藏中,公开信息就是一种多媒体,如声音、视频、图像或者普通文档,它作为一种宿主信号,可以利用人类感官的钝性,秘密加入隐藏信息。
这个过程由于媒介降质极小,而使得人无法利用感官察觉隐藏信息的存在。
这样,不仅隐藏了信息的内容,而且隐藏了信息的存在。
这样即大大提高了信息的安全性。
信息隐藏技术与密码学技术的不同之处在于,信息隐藏技术隐藏了信息的存在性,即第三方难以察觉公开信息中存在着秘密信息,因此不会产生主动攻击的心理。
这种用于秘密信息传输的信息隐藏技术又称为“隐写术”(Steganography)。
而密码学技术是可以让第三方知道存在着秘密信息,它的着重点是在考虑如何提出更加有效地让第三方难以破解的算法。
因此它的缺点就是容易暴露自身,引起第三方攻击。
在知识产权保护方面,信息隐藏技术同样有其用武之地。
作为一种新的多媒体版权保护手段,它是将多媒体的特定的标志,如版权信息等,作为防伪标志,嵌入隐藏到多媒体文件中,以此来保护多媒体的版权。
这种方法同样难以引起攻击者的注意。
这种手段通常被称作“数字水印”(DigitalWatermarking)。
1.2研究方向和应用领域
知识产权的保护
可以说,正是在信息时代数字媒体的版权问题才导致和促进了数字水印的产生和发展。
在数字水印技术诞生之前,数字媒体的版权所有者不得不容忍盗版侵权行为,或者为了保护版权,而采用一些可能对数字媒体质量产生严重破坏的方法加上版权所有标志,而即使这样,这种标志也容易被篡改而失去版权保护作用。
数字水印技术发展之后,这种情况大有改观。
比如,美国的AdobeSystem公司在它的图像处理软件AdobePhotoshop中加入数字水印的模块;五大唱片公司博德曼、百代、索尼、环宇和华纳宣布与IBM联合开发一个在互联网安全、快速、方便地发布数字媒体试听产品的试验系统,有效地保护了音乐、电影作者的知识产权。
图1-1欧盟提出的一个数字作品交易框架
隐秘通信
在军事应用中,隐秘通信占有极其重要的地位,军事战争的双方都把相当的精力放在情报窃听与反窃听上。
军事系统中更加倾向于使用扩频调制等通讯手段来达到干扰敌人隐藏自己的目的,在加密信息的同时,更加注重的是不让敌人检查到自己的信号。
在民间的互联网通信中,由于人们对于匿名通信以及言论自由的渴望,使得隐秘通信有了一个很大的表演舞台。
基于信息隐藏技术的互联网通信还表现在电子选举和电子购物中。
这样的互联网应用广泛采用了信息隐藏技术以保护网络使用者的隐私。
数据的不可抵赖性
在企业间的商业交易中经常会碰到这样的情况,甲方向乙方购买货物时先通过网络银行向乙方账户中汇款,而乙方收到汇款却声称自己没有收到汇款而拒绝向甲方发货,这时数据的不可抵赖性就发挥了它的作用。
数据的不可抵赖性保证了交易的任何一方都不能抵赖自己发出的信息,以及不能否认自己接受到对方的信息,这是网上交易能够正常进行的基础。
信息隐藏技术中的脆弱水印是目前解决这个问题的有效方法之一。
它将各自的特征以水印标记的形式嵌入到发送的信息中,而这种水印是很难或者不能被修改以及去除的。
印刷品防伪
电子商务的兴起,也为信息隐藏技术提供了用武之地。
在电子商务中产生的各种电子票据,其有效性和防伪性有着不言而喻的重要性的。
将在印刷品中嵌入数字水印技术以用于防伪是最近才开始研究的课题。
将防伪水印隐藏在电子票据之中,经过打印之后,水印是仍然存在的,因此再扫描成数字形式,通过软件将水印提取出来,可以验证电子票据的真实性。
这样就可以不给倒卖假票的犯罪分子以可乘之机。
1.3发展现状
信息隐藏虽然是计算机技术尤其是互联网技术发展成熟之后兴起的学科,但它是有着非常悠久的历史渊源的。
提到信息隐藏,人们会想起密码;而密码术的起源可以追溯到四千多年前的古埃及、古罗马、古希腊。
而基于计算机的信息隐藏技术则可以认为是从1996年在英国剑桥召开的国际第一届信息隐藏学术研讨会开始的。
这一会议于1998年在美国的波特兰,1999年在德国的德雷斯顿,2001在美国的匹兹堡,2002年在荷兰,2004在加拿大的多伦多,2005年在西班牙的巴塞罗那分别召开过,发表了一些高水平论文。
一些有影响力的国际会议(IEEE,SPIE等)出版了与信息隐藏相关的专题;一些国际权威期刊,如《IEEE图像处理》、《IEEE会报》等许多国际重要期刊相继出版信息隐藏技术的专刊。
另外,StefanKatzenbeisser和FabienA.P.Petitcolas等人出版了专著《Informationhidingtechniquesforsteganographyanddigitalwatermarking》,是这个领域的权威著作。
不仅理论界在深入地研究信息隐藏技术,而且工业界也在不断地探索。
近几年来,越来越多的高科技公司致力于信息隐藏或者数字水印技术的研究,推出了成熟的视频、音频、图像版权保护数字水印系统。
除了之前提到的AdobeSystem公司的AdobePhotoshop,另外还有SignumTechnologies公司推出的suresign水印系统,BluesPike公司推出的Giovarmi数字水印系统,Cognicity公司推出的AudiokeyMP3水印系统等。
1.4信息隐藏技术的特点
信息隐藏技术是将秘密信息加入到公开信息之中,以达到不被第三方发觉秘密信息的目的。
它要求不被第三方发觉,因此对于公开信息,也就是原始视频、音频、图像等媒介,的改变极小,使人用直接用眼睛、耳朵无法察觉到这种改变,无法意识到秘密信息的存在,从而逃避拦截者的攻击。
由于多媒体的应用非常广泛,信息隐藏技术也有很多分支,但总结起来,有以下几点:
(1)不可感知性:
这是对于信息隐藏技术的一个最基本要求。
秘密信息必须“天衣无缝”地嵌入到原始媒介之中,不仅不影响计算机对这些数据的正常读写,而且不会引起人的感官注意。
假如在嵌入的过程中留下了明显的痕迹,则严重破坏了系统的安全性。
(2)鲁棒性
鲁棒性,也被称作健壮性,表明信息隐藏技术应该能承受一定量的恶意的或者非恶意的攻击或者干扰。
如果承受了较大强度的信号干扰或者信号处理,仍能够将原始媒介中的秘密信息提取出来,则说明该技术鲁棒性较强;反之,媒介信息若稍有改动,秘密信息便不可提取,则说明其鲁棒性太差。
因为在信息传播过程中,信号难免会受到或大或小的干扰,因此保持一定的鲁棒性是非常重要的。
(3)承载量
假如信息隐藏被用于保护数字版权的数字水印等,则由于水印量比之于媒介信息量非常小,对于承载量可以不做要求。
但对于秘密通信来说,在一定的信息媒介中,嵌入的秘密信息量越大,即承载量越大,网络传输的效率越高。
假如承载量太小的话,秘密通信的价值将大打折扣。
但同时,承载量增大往往意味着不可感知性和鲁棒性的降低,因此,在具体应用时,应该权衡这几方面的利弊关系。
(4)安全性
在信息隐藏技术中,同样会涉及到加密术。
在秘密信息嵌入到数字媒体的过程中,只有先将秘密信息加密,再将其嵌入,才能提高信息的安全性。
在版权保护方面,它要求第三方XX不可伪造或者检测水印。
这样,在设计具体算法时,应该考虑到加密算法的安全性问题。
1.5基本算法
(1)空间域算法
①最低有效位算法(LeastSignificantBit,LSB)
其基本思想是,在图像中,改变每个像素点的最低位不会对视觉产生影响。
基于此,可以用秘密信息直接代替数字图像的最低位。
这是一种经典的空间域的信息隐藏方法。
它满足了秘密信息的不可见性,并且算法简单,且计算机处理较快。
②Patchwork方法
这是一种统计算法。
首先随机选取N对像素点,然后通过增加像素对中一个点的亮度值,而相应降低另一个点的亮度值。
这样整个图像的平均亮度保持不变。
③文档结构微调方法
(2)变换域算法
①离散余弦变换(DCT)
早期的DCT算法是Cox等人提出的。
该算法利用了图像编码中的冗余信息,对图像进行从空间数据到空间频率域的变换。
在变换过程中,可以获得图像的某些压缩特性和像素的统计值。
DCT算法对压缩、噪声干扰等攻击具有较强的鲁棒性。
②离散傅立叶变换(DFT)
离散傅立叶变换在信息隐藏和数字处理技术中占有重要地位,通过傅立叶变换,数字信息既可以隐藏在数字媒体的幅度上,也可以嵌入到媒体的相位中。
③小波变换(DWT)
将图像平面进行分割,得到一组空间、频率均不相同的子图像。
这些子图像刚好能够不重叠地组合成原始图像。
对于已经分割的图像,还可以再次分割。
子图像面积越小,则在时域和频域上的局部化程度越高。
如果时域和频域都尽可能地小,获得的信号就越精确。
但时域和频域都是有一定约束的,不可能无限小。
因此需要平衡时域和频域的关系。
1.6本文主要研究内容
图像信息隐藏技术是一门新兴的学科,也是一个非常热门的研究领域。
虽然有许多人研究出了信息隐藏的许多算法,发展了信息隐藏的众多分支。
虽然这些算法有的已经十分成熟,但更多的仍有待改进。
所以,本文是在前人已有的算法上加以改进探索,提出一种结合了信息隐藏技术和加密术相结合的基于BMP图像的加密信息隐藏算法。
主要本文分为五个部分,各章节的内容与安排如下:
第一章引言,介绍了信息隐藏技术的背景、应用领域、常见算法和本文主要研究内容;
第二章信息隐藏技术基础介绍,包括信息隐藏的基本框架、BMP图像格式、AES加密算法等;
第三章详细介绍本文提出的基于BMP图像的加密信息隐藏算法的原理和实现,详细阐述了信息写入图像的过程,给出了算法的试验结果,以及算法的优缺点;
第四章总结和展望。
第二章 信息隐藏技术基础介绍
在基于互联网的通信过程中,人们往往最担心的就是通信数据的安全性,在特殊的通信环境,如军事通信、金融通信等等,更是如此。
但是,由于互联网自身的特点,在通信过程中,信息可能会受到各种各样的无法预料的攻击。
这种情况相当危险。
但是,加入采用信息隐藏技术,即将重要信息做为秘密信息嵌入到看起来平常的介质中间如图片等,攻击者无从得知图片中含有秘密信息,因此则大大增强了网络通信的安全性。
在计算机中,所有信息都是以二进制0或者1的形式存在的,因此,一句话和一张图片在计算机中的表示并无本质区别。
因此可以将一句话的二进制数据流嵌入到公共媒介中,发送者将公共媒介发送出去。
在公共媒介的传输过程中,攻击者无法察觉其中是否含有秘密信息,因此这种方法具有隐蔽性,大大降低了其受攻击的风险。
接收者在收到发送过来的公共媒介之后,由于秘密信息和公共媒介同样为二进制流,因此接收者可以通过算法将其中的秘密信息无损地提取出来,已完成整个通信过程。
2.1信息隐藏的基本框架
一般地,一个信息隐藏系统的模型描述如下。
一个系统主要包括两个部分:
信息嵌入部分和信息提取部分。
首先,获得秘密信息的原文,和一种加密算法的密钥,经过运算后产生了经过加密的密码信息的密文。
其次,通过信息隐藏算法,嵌入到给定的公开信息(比如说一张图片)中。
可以用公式表示为:
encoded_message=F(original_message,key);
embedded_data=G(original_data,encoded_message);
其中,original_message是秘密信息的原文,key是加密算法的密钥,F是加密算法,得到的结果encoded_message是秘密信息的密文;
original_data是公开信息的原始数据,G是信息隐藏算法,得到的结果embedded_data是嵌入秘密信息的公开信息。
信息提取部分则是以上过程的逆过程。
首先,获得了一份公开信息后,通过算法G的逆向算法,得到嵌在其中的秘密信息的密文,然后通过跟F算法相反的解密算法,通过秘密信息的密文和密钥,得到秘密信息的原文,这样就完成那个了信息提取的整个过程。
可以用公式表示为:
encode_message=G’(embedded_message);
original_message=F’(encoded_message,key);
其中,G’是信息提取算法,F’是解密算法。
这两个部分可以用图像表示:
具体过程详细描述如下:
发信人甲需要将秘密信息original_message发送给乙,于是甲选择一个公开信息,比如说一张图片,一段音频等,我们记作original_data,将original_message嵌入到original_data中去。
在嵌入之前,由于考虑到安全性,先将original_message进行加密处理F(original_message,key),得到了加密后的密文encoded_message。
然后,对于encode_message和original_data做运算G(original_data,encoded_message)得到嵌入了密文的隐秘数据embedded_data。
甲将embedded_data发送给乙。
乙在接收到embedded_data之后,先通过G’(embedded_message)运算将密文从embedded_data中提取出来,再通过F’(encoded_message,key)运算将密文解密,得到甲想发送的原始信息。
这里,甲乙二人必须事先约定一个密钥key,才能保证信息传输的正确性。
2.2BMP图像格式
BMP是Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。
一个标准BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。
(1)数据结构
①:
BMP文件头
BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置信息。
偏移量(相对本结构)
00H
02H
06H
08H
0AH
大小(byte)
2
4
2
2
4
数据
位图类型
位图大小
保留(0)
保留(0)
位图数据起始位置
②:
位图信息头
BMP位图信息头数据用于说明位图的尺寸等信息。
偏移量(相对本结构)
00H
04H
0CH
0EH
10H
大小(byte)
4
8
2
2
36
数据
本结构大小
位图宽与高
目标设备的级别
每个像素所需位数
其他
③:
颜色表
颜色表用于说明位图中的颜色,它有若干表项(RGBQUAD类型的结构),每个表项的结构如下:
偏移量(相对本结构)
00H
01H
02H
03H
大小(byte)
1
1
1
1
数据
蓝色亮度
绿色亮度
红色亮度
保留(0)
颜色表中RGBQUAD结构的个数由位图信息头中每个像素所需位数(biBitCount)决定:
当biBitCount=1,4,8时,分别有2,16,256个表项;
当biBitCount=24时,没有颜色表项。
④:
图形数据
图形数据记录的是位图的每个像素的值,记录顺序是在扫描行内从左到右,扫描行之间是从下到上。
位图一个像素值所占的字节数:
当位图为双色时,每个像素所需位数=1,8个像素占一个字节;
当位图为16色时,每个像素所需位数=4,2个像素占一个字节;
当位图为256色时,每个像素所需位数=8,1个像素占一个字节;
当位图为64K色时,每个像素所需位数=24,1个像素占三个字节;
Windows规定一个扫描所占的字节数必须是4的倍数(即以long为单位),不足的以0填充。
(2)存储算法
BMP文件通常是不压缩的,所以它们通常比同一幅图像的压缩图像文件格式大很多,例如,一个800×600的24位几乎占据1.4MB空间。
图像所浏览器读取基于字节的ASCII值计算像素的颜色,然后从调色板中读出相应的值。
2.3AES加密算法
AES的全称是AdvancedEncryptionStandard,即高级加密标准。
由于对称密码的发展,计算机芯片速度不断提高,传统的加密算法(如DES数据加密标准算法)由于密钥长度较小,其安全性已经收到了威胁,已经不适应当今分布式开发网络对数据加密安全性的要求,需要一种新的高级加密标准来替代它。
因此,美国国家标准技术研究所(NIST)于1997年开始征集AES算法,2000年确定Rijndnel为最终算法,2001年被美国商务部批准为新的联邦信息加密标准。
AES作为新一代的数据加密标准具有强安全性、高效率、灵活等优点,被广泛地应用在各个领域。
AES的设计原则是抵抗所有已知的攻击、在各种平台上易于实现、速度快、设计简单。
它是一个分组密码算法,其分组长度和密钥长度相互独立,都可以改变。
分组长度(bits)和密钥长度均可分别取128,192,128。
(1)一些术语和定义:
①:
状态(State)
运算的中间结果称为状态;
②:
State的表示
状态用元素为一个字节的矩阵表示,它的行数为4,列数用Nb表示。
当Nb=4时,分组长为128(bites);
当Nb=6时,分组长为192(bites);
当Nb=8时,分组长为256(bites);
③:
密码密钥(CipherKey)的表示
CipherKey同样用一个4行矩阵来表示,列数用Nk表示。
同样的,当Nk分别取4,6,8时,密码密钥长度分别为128,192,256;
④:
轮数(Round)
加密运算由若干次包含SubBytes、ShiftRows、MixColumns、AddRoundKey的运算序列组成(最后一次运算不包含MixColumns),每一次序列运算叫作一轮,这些序列运算的次数称做轮数,轮数由分组长度(BlockLength)和密钥长度(KeyLength)决定,具体取值如下表:
轮数(Round)
BlockLength=128
BlockLength=192
BlockLength=256
KeyLength=128
10
12
14
KeyLength=192
12
12
14
KeyLength=256
14
14
14
⑤:
分组
明文分组和密钥组织排列:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
相应排列阵列:
0
4
8
12
1
5
9
13
2
6
10
14
3
7
11
15
(2)AES算法
如下图所示:
图2-1AES算法
加密算法详解:
1.SubBytes(字节转换)
这是一个以字节为单位的非线性取代运算,独立地在每个状态字节上进行运算。
它包括两个变换:
①:
在有限域GF(28)上求乘法逆,”00