一种基于数字图像的安全信息传输方案
2016-05-31谢志强钱严成王帅王亚萍崔杰
谢志强 钱严成 王帅 王亚萍 崔杰
摘 要:针对如何安全有效地保护在传输过程中的信息,提出了对信息的安全传输采取加密和隐藏两大保护措施,该设计通过AES加密算法对带传输信息进行加密,然后以数字图像作为载体,利用LSB算法和DCT变换两种图像嵌入方式将所得密文隐藏在不易被察觉的BMP格式图像中,从而达到信息传输的双重保护之目的。发现LSB算法隐藏后的图片峰值信噪比为PSNR0=73.965 6,DCT算法隐藏后的图片峰值信噪比为PSNR0=55.852 9。结果表明,基于LSB算法和DCT算法的信息隐藏能够更好的达到信息安全传输的效果,是一种值得信赖的信息传输方案。
关键词:AES;数字图像;LSB;DCT变换;信息隐藏
中图分类号:TP393 文献标识码:A 文章编号:2095-1302(2016)05-00-04
0 引 言
计算机科技水平的迅速提高和密码学技术的飞速发展,为信息隐藏领域的研究提供了广阔的发展空间。计算机网络涉及我们生活的方方面面,其中重要信息的安全传输已成为国家,企业甚至我们人与人之间面临的严重问题。国家机密需要安全传输,各国之间信息通信都需要绝对保密,在各国的法律中,泄漏国家机密者会遭到严惩;企业文件需要安全传输,如果企业信息遭到恶意泄漏可能会对企业造成不可估量的损失甚至导致企业破产;人与人之间的信息传递有时也需要安全传输,个人信息的泄漏可能会给我们带来很多不必要的麻烦。因此在我们的生活中,在传输前对重要信息加密已是必不可少的手段。但是传统加密技术对多媒体内容的保护和完整性认证仍具有很大的局限性。如果仅对传输信息进行简单加密,生成的密文在传输过程中很容易引起攻击者的注意,并可能被恶意破解,而且一旦加密信息被成功破解,传输的信息就会完全暴露。
早期的信息安全传输主要在信息源和信息传输途径两大方面下功夫。在信息源上,主要采取一些加密措施,比如用于数据加密的MD5加密算法,广泛应用于用户的登陆密码方面;既可以用于数据加密也可以用于数字签名的RSA加密算法至今未被完全攻破;由IBM公司设计的被美国国家标准局采纳作为非机密数据的正式数据加密标准的DES加密算法是目前比较流行的一种加密算法。在传输途径上,信息隐藏技术具有良好的不可察觉性、鲁棒性和大信息量的特点,信息隐藏技术在信息安全保障领域的诸多方面发挥着重要作用,主要应用于数据保密通信、身份认证、数字作品的版权保护和盗版追踪以及对于数字作品的完整性、真实性的鉴定与内容恢复等方面[1,2]。
信息隐藏技术则是利用人类感官系统的不敏感,将隐秘信息隐藏在特定的载体中,使之不被察觉或者不易被注意,隐藏的载体可以是图像、声音或者文本等数字信号。图片具有良好的不易察觉性和隐蔽性[3,4]。
因此,本方案提出将需要传输信息通过AES加密后利用LSB算法和DCT变换将密文嵌入图片中,隐藏了信息的存在形式,不易引起攻击者的注意,从而避免了被攻击的危险。即使传输文件被攻击者发现,信息被提取出来,恶意攻击者得到的也只是被加密后的密文,若想得到真正的信息,仍需要攻克AES加密算法来提取信息[5]。
1 相关知识
1.1 AES加密算法
在本文中,AES加密算法的密钥长度分为128 b,192 b和256 b三种不同类型。算法相应的进行10轮,12轮和14轮运算。AES加密算法共分为密钥扩展,数据加密和数据解密三大部分。
1.1.1 密钥扩展
AES输入密钥为可选的128 b,192 b或256 b,相应要进行10轮,12轮和14轮加解密运算。不失一般性,我们以128 b,10轮运算为例。密钥是生成算法的输入为4 word的密钥,输出为初始4 word密钥加密以及后10轮加密所需的共44 word的密钥。
1.1.2 数据加密[6]
(1)字节替换:依据S置换表对状态矩阵中的数字进行置换。
(2)行位移:应用枚举法对状态矩阵中的各行数据进行循环移位运算。
(3)列混淆:对状态矩阵实施列混合运算。
(4)密钥加:对状态矩阵做轮密钥加法变换。
通过S盒替换可得到4×6字节矩阵,其中Si,j是第i行第j列的字节,0≤i≤3,0≤j≤5。轮密钥加法变换(Add Round Key)作为加解密的核心算法为AES编程提供了极大方便,该运算的原理实际上是在GF(28)域上实行的多项式间的运算。分别为乘法(*)和异或()运算。加密解密中所用到的常数共6个:0x02、0x03、0x09、0x0b、0x0d和0x0e。加密的核心公式,即列混合运算[7]见式(1):
1.1.3 数据解密
数据解密使用字节替换函数(Inv Shift Rows)、行位移函数(Inv Sub Bytes)、列混淆函数(Inv Mix Columns)以及轮密钥加法函数(Add Round Key)分别实现解密操作,各函数功能和加密的功能类似,在这里就不重复说明,解密的核心算法如公式(2)所示。
1.2 LSB算法
LSB算法又叫做最低有效位算法,旨在修改载体信息的最低有效位以达到信息嵌入的目的。将目标文本信息嵌入到bmp图像中[8,9]并提取出来。
1.2.1 嵌入文本信息
由于每个汉字在计算机内存储时占两个字节,其余字符等都只占一个字节。因此以两个字节(即16位)为一个单元进行文本信息整理。对于输入的文本,开辟(S+2)个单元,即(16×(S+2))位。将第一个和最后一个单元分别作为标记位,从低到高,取‘0001与‘#的对应位做取模运算并依此移位。对于要隐藏的文本信息进行相似的取模及移位处理,所不同的是,此处要用文本信息流来与‘0001进行运算。如此就完成了文本信息的处理。
根据bmp载体文件的特点,前54位是bmp文件头和位图信息头,修改会损坏文件的格式。因此只能从第55个字节开始进行信息的嵌入,嵌入算法与之前的文本信息处理机制基本相同,差异在于要用之前存储的文本的最低位替换掉原来图片的最低位[8]。
如此就将处理过的文本信息嵌入到了载体中。
1.2.2 提取文本信息
根据文本嵌入载体的原理,从第55位开始截取图片流的最后一位并按照从低到高的顺序将嵌入的信息提取出来[10]。采用与前面嵌入运算相同的算法,对图片的低位(即文本信息)进行取模和移位运算,提取信息。
再将提取出来的信息重新进行组合从而读取出嵌入的信息。在信息提取过程中,根据嵌入文件开始部分和结束部分设置的‘#,进行信息首部和尾部的判断,有效避免了读入多余信息或者丢失信息等现象的出现,从而降低了信息还原时的失真率。如此就将嵌入到载体文件中的文本信息提取出来了。
1.3 DCT变换
1.3.1 DCT变换的定义
DCT变换全称离散余弦变换,它的作用是将原始时域信号转换到空间频率域上,并能实现能量的集中。通过DCT变换,位于图像上的重要可视信息转换到一小部分DCT系数上,由此可以实现图片的有损压缩。另外,DCT变换也是JPEG压缩的核心算法。DCT正变换的公式[11,12]见公式(3):
1.3.2 信息的嵌入和提取
本文所嵌入的载体是BMP文件格式的图片,嵌入部分是BMP图片的数据域,也是最原始的像素点。首先要获取原始信息块,一般为8×8的方块,进行DCT变换得到DCT系数表[11]。如果直接对DCT系数表进行逆DCT(IDCT)变换,在不考虑误差的情况下可以完全恢复原始数据。本文通过调整中频系数对F(x1,y1),F(x2,y2)的相对大小来隐藏信息,具体实现方法为:如果要嵌入的比特为1,则使F(x1,y1)>F(x2,y2);如果要嵌入的比特为0,则使F(x2,y2)>F(x1,y1)。
一个DCT表中可选取多个中频系数对进行嵌入,这样能够增加信息隐藏量。然后对调整后的DCT系数进行逆DCT变换得到变换后的数据,再写入载体文件中。选取中频系数进行嵌入有以下两方面的原因:
(1)对于两个中频系数,可以认为它们的值大小处在一个量级,这样修改两个处在同一量级上的中频系数对原始文件破坏不会太大,较不容易引起图片失真。
(2)低频系数拥有的能量较大,人眼对低频系数比较敏感,在低频系数中嵌入,会降低算法的隐蔽性。高频系数是压缩的主要对象,修改高频系数不利于算法的鲁棒性。
同时,本文选取JPEG量化表中量化值相同的中频系数对,并尽量减少图片的失真,提高信息隐藏算法的隐蔽性。
信息的提取过程是嵌入的逆过程,先找到隐藏数据的位置经DCT变换得到DCT系数表[12],对比规定位置中频系数对的相对大小。如果F(x1,y1)>F(x2,y2),获取比特位1;如果F(x2,y2)>F(x1,y1),获取比特位0。
2 方案的实现过程
本流程的方案如图1所示。
图1 方案流程图
2.1 AES加密
以128 b,10轮加密过程为例,第1到9轮的加密过程完全相同,可以通过循环来实现。在具体的程序执行中用字节替换函数(Sub Byte)对状态矩阵中的数字进行置换,然后用行位移函数(Shift Row)对矩阵中的数字进行移位,通过列混合运算公式(Mix Columns)得到新的状态矩阵,最后将该混合矩阵和密钥扩展数组异或[6]得到状态矩阵即完成一轮加密。第十轮加密过程不需要使用列混合运算公式,其它部分和前九轮相同。
2.2 嵌 入
2.2.1 LSB嵌入
首先要进行嵌入目标信息的处理,获取要嵌入信息的长度S新建数组Temp。设置前后两个标记位,进行如图2所示的填充。
如此移位并进行逻辑“与”运算就处理好了信息头部和尾部的标记位。对于要嵌入的目标信息,做与标记位类似的操作,具体如图3所示。
操作结束后就将要嵌入的信息处理完毕,下步将执行信息嵌入图片流的操作。
根据bmp文件的格式特点,我们选择从第55位开始将信息嵌入图片流,执行的操作与上面信息的处理类似,读图片流依次移位,逐位进行遍历,直至所有信息嵌入成功。
2.2.2 DCT嵌入图示
DCT嵌入图示如图4所示。
图4 DCT嵌入图示
2.3 提 取
2.3.1 LSB提取
提取是嵌入的逆向操作,根据上面的嵌入操作进行反向操作,即可将信息提取出来。图5所示为LSB算法提取图。
图5 LSB算法提取
2.3.2 DCT提取
提取是嵌入的逆过程,将带有隐藏信息的载体数据经DCT变换后得到DCT系数表,比较指定中频系数对F(x1,y1),F(x2,y2)的大小,若前者比后者大,得到比特为1,反之,得到的比特为0。
2.3.3 解 密
由于AES是对称加密算法,因此其解密过程和加密过程类似。也需要10轮解密过程,前九轮可以通过循环实现,最后一轮不需要列混合运算公式。
3 方案的可行性分析
本方案采取先加密再隐藏的措施,对待传输信息做了两步安全性处理。AES加密算法的安全性不必多说,在本方案中AES加密的密钥分为128 b,192 b和256 b三种。以最小的128 b密钥来说,对暴力攻击也具有强大的免疫能力,暴力破解的可能性极低。且AES至少10轮以上的加密特点是AES对于差分密码和线性密码等类型的攻击也具有良好的抵御能力。
信息存储阶段以16位作为一个单元,足够进行信息存储,不会出现信息遗漏。嵌入的过程从图片流的第55位开始嵌入,不会损害文件头部信息,因此嵌入信息后文件能够正常打开。读取信息时,通过移位和逻辑与运算,依次提取文件流的最低位,并将它们从低到高进行整合。只要载体图片本身没有被改动,那么它的最低位就不会发生变化,就可以将嵌入信息原封不动地读取出来,不会产生错误。很明显,整个过程无论是嵌入部分还是提取部分都是正确的,整体上也是正确的。
bmp文件的组成特点如下:
(1)bmp文件头(bmp fileheader):提供文件的格式、大小等信息。
(2)位图信息头(bitmap information):提供图像数据的尺寸、位平面数、压缩方式、颜色引等信息。
(3)调色板(color palette):可选,如使用索引来表示图像,调色板就是索引与其对应的颜色的映射表。
(4)位图数据(bitmap data):即图像数据。
bmp图片根据位数的不同,有的文件第54位之后直接存放位图数据,另外一些则存放调色板数据,之后才是位图数据。以上两种不同的文件分别按照BGR,BGRA的顺序,以一个字节为单位,存储图片每个像素各颜色分量的值。我们在各个分量的最低位存储要载入的信息,对以上情况同时适用。改变最低位嵌入信息的方法对于图片质量的影响微乎其微,再加上嵌入的信息属于隐秘信息,从根本上说,信息量不可能太大,因此,此算法实用性很强,基于此算法得到的含有嵌入的目标信息的载体文件的隐秘性极好。bmp图片处理参数见表1所列。
4.2 LSB隐藏
图6所示为通过LSB隐藏前后的效果图,其中原图为未嵌入密文信息图像,右边图片为嵌入密文信息后的图像,两张图片在嵌入密文信息后完全看不出来有任何不同,两张图片的峰值信噪比为PSNR0=73.965 6。
图6 LSB算法隐藏效果
4.3 DCT嵌入
在图7所示的图中,嵌入信息前后两张图片肉眼完全看不出任何不同,信息提取完整。图像的峰值信噪比为PSNR0=55.852 9。
图7 DCT算法嵌入效果
5 结 语
本论文在信息的安全传输上提出对传输信息先加密再隐藏的双重保密措施,信息的传输采用对称加密算法AES算法,可以对文本、音频和图像等不同传输对象进行加密。得到的密文在传输过程中显然很容易被非法攻击者识破,因此我们想到将加密后的密文嵌入到攻击者不易察觉的BMP格式的图像中,具体的嵌入实现算法分为LSB和DCT变换两种,经测试,本项目可以几KB甚至十几KB的信息通过AES加密将密文完整的隐藏在数字图像中,肉眼完全分辨不出隐藏密文前后的图像有任何不同,达到了良好的信息隐藏效果。本文中,AES加密算法的高安全性加上图片信息隐藏的隐蔽性使得信息安全传输达到良好的效果,为维护信息安全另辟蹊径,希望可以得到业界认可。
参考文献
[1]刘芳.图像可逆信息隐藏技术若干问题研究[D].大连:大连理工大学,2013.
[2]特列克别克·米沙.一种新的信息隐藏算法的设计研究[D].成都:电子科技大学,2013.
[3]黄世超.基于灰色系统理论的图像信息隐藏技术研究[D].南京:南京邮电大学,2014.
[4]唐明伟.图像信息隐藏与隐藏分析算法研究[D].成都:电子科技大学,2012.
[5]李名.信息熵视角下的密文图像信息隐藏研究[D].重庆:重庆大学,2014.
[6]张秀娟.基于AES加密算法的实现与应用[J].数字技术与应用,2011(11):132-133.
[7]杨帆. AES算法研究及FPGA实现[D].北京:北京工业大学,2014.
[8]冯雪峰.改进LSB算法及其在BMP图像中的应用[J].信息技术,2006(1):30-32.
[9]张建伟.基于图像的LSB隐藏算法位平面分析及算法改进[J].装备指挥技术学院学报,2003,14(2):84-88.
[10]李丽.基于LSB的图像信息隐藏技术研究[D].北京:北京邮电大学,2011.
[11]张作林.基于DCT变换的信息隐藏技术[J].计算机工程,2005,31(21):127-128.
[12]王永皎,郭力争.基于DCT变换的图像压缩技术研究[J]. 河南城建学院学报,2013,22(1):42-46.