本站小编为你精心准备了RSA与LSB算法的信息隐藏参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
《通信技术杂志》2014年第六期
1BMP格式及LSB算法
BMP文件是Windows操作系统中标准的图像文件格式,它将内存或显示器的图像数据直接按位存存储到磁盘文件中,扩展名为BMP,称为BMP位图。BMP图像文件包括4部分:位图文件头、位图信息头、颜色表和位图数据[4]。24位BMP图像文件的结构特点:1)文件头由54个字节的数据段组成,包含图像文件头和图像信息头两部分,文件头表明了该图像文件的类型、大小、图像及打印格式等信息。2)图像数据部分从第55个字节开始,以图像的左下角为起点,每个像素点用连续的3个字节表示,分别代表蓝、绿、红三基色在该像素中的亮度。此外,还需要注的是Windows系统规定每个扫描行所占的字节数必须位4的整数倍,不足4的倍数的则要对其进行扩充。比如有一个W×H大小的位图,其中W为位图的宽度、H为位图的高,每像素占N个比特,则扫描行所占的真实字节数为:DataSizePerLine=(W×N/8+3)/4×4在不压缩情况下位图数据的大小为:biSizeImage=DataSizePerLine×H1.2BMP文件中LSB应用LSB(LeastSignicantBit,最低比特位嵌入技术)是将私密信息嵌入BMP图像文件的像素值的最低的1~3bit,当嵌入的比特数不大于3时对载体图像的品质影响最小,图像质量不会明显下降。在信息还原时只需知道嵌入比特数和具体比特位置便可将信息还原出来。对于BMP位图文件,在不改变图像的质量的情况下,根据亮度公式I=0.299R+0.587G+0.114B,以及人眼视网膜细胞对绿色最敏感,对蓝色最不敏感的理论。对于每个BMP位图像素,如果改变一个字节的最低有效位,其误差率≤1/255。根据亮度公式,分别改变R、G、B各分量的最低2位、1位、3位,人眼仍不能明显感觉到图像的变化。因此,对于一幅24位位图,其每像素可隐藏6bit的信息。
2隐藏信息预处理
2.1信息分割信息分割的主要目的是为了增加信息隐藏技术的不可逆性,将私密信息随机分割,记录下分割顺序后,将分割后的文件名通过MD5加密算法进行加密,私密信息分割后用信息接收方的公钥进行rsa加密,信息只有接收方才能解密,因此大大增加了系统的安全性。信息分割流程如图1所示。
2.2RSA加密
2.2.1RAS加密算法流程1)选两个保密的大素数p和q[5]。2)计算n=pq,m=(p-1)(q-1),其中m是n的欧拉函数值。3)选一整数e,满足1<e<m,且gcd(m,e)=1。4)计算d,满足de≡1modm。5)以{e,n}为公钥,{d,n}为私钥。6)将明文P,加密为密文C,计算方法为:c≡P^emodn。7)将密文C解密为明文P,计算方法为:P≡C^dmodn。
2.2.2私密信息RSA加密算法描述//加密信息隐藏Input载体and隐藏信息;(publicKey==””)//首次加密,则应产生公钥与私钥{writeFile(publicKey,privateKey);//生成公钥与私钥并保存到文本read隐藏信息;convert字节流;RSA(分组字节流);//加密,获得密文Convert十六进制密文;lsb(十六进制密文,载体);//隐藏信息Output掩护图像(24位bmp);}//解密信息提取Input掩护图像andprivatKeyand保存隐藏信息的路径;LSB提取加密后的隐藏信息;//提取信息Convert字节流;RSA(字节流,privateKey);//解密,获得隐藏信息writeFile(隐藏信息);//保存隐藏信息output隐藏信息;//输出隐藏信息
3LSB算法的改进
通常LSB算法是采用直接转换载体图像的最低位方法来隐藏私密信息。比如利用LSB算法置最低k位实现在一个M×N大小的载体图像中隐藏私密信息,则私密信息的提取公式为:其中,m为提取的私密信息值,x''''为按照LSB算法置换后的该像素点的值。根据模的性质,假设AmodB=C,且A≥B,则(A-B)modB=C。基于这一性质,文献[1]对传统的LSB算法进行了改进。设x表示置换前该点的像素值,d为置换前后像素值的变化量,则:比如当x=247时,其二进制代码为11110111,待隐藏的私密信息的二进制代码为001,采用LSB算法置换低三位,那么x''''=241,二进制代码为11110001。此时d=6,k=3,属于第一种条件,将x''''的值重新置为249,二进制代码为11111001,由此可见,采用改进的LSB算法相对于原像素的值仅改变了2个单位,而提取私密信息的结果并不会改变。
4系统实现
4.1系统流程如图3所示,系统设计流程如下:加密过程如下:1)首先读取隐藏信息获取隐藏信息的大小,将隐藏信息进行分割处理,分割数量根据秘密文件的大小以及载体文件的最大隐藏值决定,不论隐藏信息大小如何,其分割数量不得小于5个,另外分割后的文件需要按进行序号标注,序号采用MD5进行加密。2)将分割后的秘密文件分别运用RSA加密算法进行加密。3)根据分割文件数量载入掩护BMP图像文件,将每个隐藏信息块分别隐藏到相应的掩护BMP图像文件中。4)将所有已加密隐藏后的图像文件生成一个统一的压缩包,压缩包内是所有的隐藏图像文件。解密过程正好与之相反。
4.2程序界面程序运行界面如图4所示,首先点击“浏览”按钮选择待加密的私密文件,然后再选择所使用密钥,最后点击加密按钮,程序即按照文中所阐述的原理对私密文件进行加密和隐藏。
5结语
相对于传统的LSB算法,实现了一种改进的算法,使得文中的信息隐藏具有更好的隐藏效果,具体体现在以下几点:改进LSB算法复杂度低,仅对信息进行加或减运算,提高了信息隐藏效率,对于24位BMP图像文件,每个像素用3个字节来表示,其中的6个比特可以用作隐藏信息,而文中改进后LSB算法可以利用其中的8个比特隐藏信息,扩充了可隐藏信息的容量,提高了隐藏效率,而载体图像质量并没有明显改变。通过信息分割、RSA加密预处理,大大提高了在非授权情况下提取信息的难度。
作者:吴少华宋致虎胡勇单位:四川大学电子信息学院