基于LSB的信息隐藏

一、项目背景

随着Internet技术和多媒体信息技术的飞速发展,多媒体、计算机网络、个人移动通信技术等进入寻常百姓家,数字化已深入人心。数字多媒体信息在网上传播与传输越来越方便,通过网络传递各种信息越来越普遍。但与此同时也带来了信息安全的隐患问题。信息隐藏是近年来信息安全和多媒体信号处理领域中提出的一种解决媒体信息安全的新方法。它通过把秘密信息隐藏在可公开的媒体信息里,达到证实该媒体信息的数据完整性或传递秘密信息的目的,从而为数字信息的安全问题提供了一种新的解决方法。

二、软件原理及内容

1、原理

LSB(LeastSignificant
Bits)算法:将秘密信息嵌入到载体图像像素值的最低有效位,也称最不显著位,改变这一位置对载体图像的品质影响最小。

LSB算法基本原理:对空域的LSB做替换,用来替换LSB的序列就是需要加入的水印信息、水印的数字摘要或者由水印生成的伪随机序列。由于水印信息嵌入的位置是LSB,为了满足水印的不可见性,允许嵌入的水印强度不可能太高。然而针对空域的各种处理,如游程编码前的预处理,会对不显著分量进行一定的压缩,所以LSB算法对这些操作很敏感。因此LSB算法最初是用于脆弱性水印的。

2、内容

(1)编写程序,能够将至少20个汉字隐藏到一幅24位的bmp格式的图片中。

(2)用RSA算法将需要隐藏的信息进行加密,然后再隐藏。

(3)能使用密钥将隐藏信息解密提取出来。

三、实现步骤

1、找一幅bmp的24位图片。

2、通过网络学习RSA算法和LSB算法的相关原理和操作。

3、理清程序的运行流程设计好页面。

4、在NetBeans
IDE编写代码实现相关功能。

5、调试程序并进行优化。

四、软件功能及分析

1、工程结构图。
基于LSB的信息隐藏_第1张图片

图1 工程结构

分析说明:

图1中PrivateKey为私钥封装类,Publickey为公钥封装类,RSAGeneratorKey为生成密钥对的类,RSAUtil为含有加密和解密方法的封装类,RsaKeyPair为密钥对封装类,_LSB_BMP为包含信息加密解密等方法的主类。

2、程序运行初始界面。

基于LSB的信息隐藏_第2张图片

图2 初始界面

分析说明:

图2显示的界面由标题栏、菜单栏、图片显示区和文本输入显示区构成。其中菜单栏中有文件、LSB和加密隐藏三个选项,“文件”选项主要用于打开已有的未加密图片和加密图片及保存隐藏信息后的图片,打开和保存的图片均为bmp格式;“LSB”主要用于图片的非加密隐藏和直接显示隐藏信息;“加密隐藏”选项主要用于将所需的隐藏信息进行RSA加密及将加密后的信息通过私钥进行解密。

3、点击菜单栏中“文件”的“打开”选项,可选择未加密信息的图片或者含隐藏信息的图片;若点击“保存”选项,则可以将含隐藏信息的图片进行保存。

基于LSB的信息隐藏_第3张图片

图3 选择图片路径

基于LSB的信息隐藏_第4张图片

图4 打开未隐藏信息的图片
在这里插入图片描述

图5 打开隐藏信息的图片

在这里插入图片描述

图6 保存隐藏信息的图片

分析说明:

图3中显示的界面为选择未隐藏信息的图片或者隐藏了信息的图片,图4为打开未隐藏信息的图片后所出现的界面,且在文本输入显示区中显示了可以嵌入多少字节的信息到图片中;图5为打开含隐藏信息的图片后的界面,可以看出含隐藏信息的图片和原图相比,凭肉眼是看不出区别的,但通过程序检测却能发现其中已经隐藏了一定的信息;图6为将含隐藏的图片进行保存,若保存成功会在文本输入显示区显示“保存成功!”。

4、点击菜单栏中的“加密隐藏”中的“隐藏”及“显示”。

基于LSB的信息隐藏_第5张图片

图7 使用RSA对隐藏信息加密及保存私钥

基于LSB的信息隐藏_第6张图片

图8 使用RSA私钥对隐藏信息解密

分析说明:

图7中表示使用RSA算法将需隐藏的信息加密后,把RSA的私钥通过文本保存的界面;图8显示的是通过选择图7保存的密钥解密后,显示的隐藏的信息。

下载链接:https://download.csdn.net/download/qq_41569005/11293121

你可能感兴趣的:(图像隐藏,LSB,RSA)