LSB算法实现

合集下载

lsb隐写的数学建模

lsb隐写的数学建模

lsb隐写的数学建模(实用版)目录1.隐写术简介2.基于数学建模的隐写技术3.LSB 隐写算法的原理及其应用4.LSB 隐写算法的优缺点5.我国在隐写技术研究方面的进展正文1.隐写术简介隐写术,即隐藏信息的技术,是一种将秘密信息嵌入到正常文本、图像、音频等多媒体载体中的技术。

这种技术可以使得信息的传递更加安全,不易被察觉。

在信息技术高速发展的今天,隐写术在保密通信、数据传输、知识产权保护等方面具有广泛的应用前景。

2.基于数学建模的隐写技术数学建模是一种将现实世界中的问题抽象成数学问题,进而求解的方法。

在隐写技术中,数学建模主要通过对载体的统计特性进行分析,以找到合适的嵌入位置和方式,从而实现秘密信息的隐藏。

基于数学建模的隐写技术具有较强的理论基础,可以保证隐写信息的安全性和可靠性。

3.LSB 隐写算法的原理及其应用LSB(Least Significant Bit,最低有效位)隐写算法是一种典型的基于数学建模的隐写技术。

该算法通过修改图像中每个像素的最低有效位,将秘密信息嵌入到图像中。

由于最低有效位的修改对图像质量影响较小,因此难以被察觉。

LSB 隐写算法广泛应用于图像、音频等多媒体数据的保密传输。

4.LSB 隐写算法的优缺点LSB 隐写算法的优点:(1)隐蔽性强,难以察觉;(2)对载体质量影响较小;(3)可适应不同载体的格式;(4)便于实现和操作。

LSB 隐写算法的缺点:(1)嵌入容量有限;(2)抗干扰能力较弱;(3)秘密信息提取过程相对复杂。

5.我国在隐写技术研究方面的进展我国在隐写技术研究方面取得了显著的成果。

相关研究机构和院校在理论研究、算法设计、应用开发等方面都取得了一系列重要成果。

此外,我国还积极参与国际隐写技术领域的合作和交流,不断推动隐写技术的发展。

总之,LSB 隐写算法作为一种基于数学建模的隐写技术,具有较强的实用性和广泛的应用前景。

lsb信息隐藏

lsb信息隐藏

LSB算法的信息隐藏实验单位:三系一队姓名:马波学号:3222008030LSB信息隐藏实验一、实验目的1.掌握LSB算法原理2.熟悉信息隐藏与提取的流程3.锻炼算法的程序实现能力二、实验原理1.信息隐藏用秘密信息比特替换载体中的最不重要部分,可以达到对信息隐藏的目的。

在数字图像中,每个字节的最低位对图像信息的影响最小,因此将数字图像的最低位用信息比特替换可以实现信息隐藏。

由于载体图像的每个字节只隐藏一个秘密信息比特,所以只有当载体图像的大小是秘密信息大小的8倍以上时才能完整的将秘密信息隐藏。

提取信息位并隐藏的示意图:2.信息提取在隐藏了秘密信息的数字图像中,每个字节的最低位就是秘密信息比特位,只需将这些信息比特提取出来并组合,就可以恢复出原来的秘密信息。

提取信息示意图:三、实验内容A.将秘密信息隐藏在载体的最低位,检验算法的鲁棒性(1)读入秘密信息(此实验中秘密信息为二值图像)(2)把秘密信息的比特位放入载体的最低位(3)给隐藏了秘密信息的图像加入大小为1的噪声加入噪声大小为1时:加入噪声为2时:B.将秘密信息隐藏在载体的最高位,检验算法的鲁棒性(1)读入秘密信息(此实验中秘密信息为二值图像)(2)把秘密信息的比特位隐藏在载体的最高位(3)分别给隐藏了秘密信息的图像加入大小为1和2的噪声C.将秘密信息隐藏在载体的第三位,检验算法的鲁棒性(1)同A中的(1)(2)把秘密信息比特位隐藏在载体的第三位(3)分别给隐藏了秘密信息的图片加入大小为1、2和3的噪声五、实验总结1.当秘密信息隐藏在最低位时,对载体的改变小,载体质量较高。

但鲁棒性较差,有噪声干扰时很容易发生信息丢失从而无法恢复出秘密信息2.当秘密信息隐藏在最高位时,图像的鲁棒性增强,受到较大噪声干扰时仍能恢复出秘密信息,但对图像的改变较大,隐藏的位数越高图像的质量越低。

3.当隐藏的信息位介于最低位和最高位时,选择合适的位置,既可以提高信息隐藏的鲁棒性,又对图像的质量影响不大,所以,进行信息隐藏时可以考虑LSB的改进。

信息隐藏实验(LSB隐写,随机LSB隐写,RS隐写分析)

信息隐藏实验(LSB隐写,随机LSB隐写,RS隐写分析)

信息隐藏实验二LSB隐写分析姓名:周伟康学号:班级:一:实验要求1、针对自己实现的隐写算法(嵌入、提取),计算隐蔽载体的PSNR值,通过PSNR值来评估隐写对图像质量的影响,并与主观感受做对比。

2、实现一种隐写分析方法,对隐蔽载体进行检测(卡方、RS……)二:实验步骤1、编写随机选点函数,完善顺序和随机两种LSB信息嵌入和提取。

%随机间隔选点函数%[row, col] = randinterval(test, 60, 1983);function [row, col] = randinterval(matrix, count, key)[m, n] = size(matrix);interval1 = floor(m * n / count) + 1;interval2 = interval1 - 2;if interval2 == 0error('载体太小,不能将秘密消息隐藏其内!');endrand('seed', key);a = rand(1, count);%initializerow = zeros([1 count]);col = zeros([1 count]);r = 1; c = 1;row(1,1) = r;col(1,1) = c;for i = 2 : countif a(i) >= 0.5c = c + interval1;elsec = c + interval2;endif c > nr = r + 1;if r > merror('载体太小,不能将秘密消息隐藏其内!');endc = mod(c, n);if c==0c = 1;endendrow(1, i) = r;col(1, i) = c;end选取8*8的矩阵测试2、对比原始图像和隐藏信息后图像,计算隐蔽载体的均方差(MSE)进而计算峰值信噪比(PSNR),评估隐写对图像质量的影响。

基于VB的信息隐藏LSB算法的实现

基于VB的信息隐藏LSB算法的实现
信息隐藏
产权 这一 热 门问题 出发 引发 了一个 很重要 的研究课 题—— 信 息隐藏技 术 。本 文首先介 绍 了信 息隐藏技
术 的原理 及 分 类 ,接 着 对 L B信 息 隐 藏算 法 原理 S
及 L B算法 实现进 行介 绍 ,最 后用 V S B实现 了 L B S
算法 。
长 沙通 信 职业 技 术学 院学 报
ቤተ መጻሕፍቲ ባይዱ
第 9卷 第 3期 2 1 年 9月 00
J u n l o a g h ee o o r a f Ch n s a T l c mmu ia in nct s o
ad n Te hn l g Vo ain l c ooy c t a Colg o le e
不可见水印 lI 可见水印
图 1 信 息 隐藏 技术 类 型
[ 收稿 日期] 00 0— 3 2 1— 6 1 [ 作者 简 介] 钱伟 (97) 17- ,男,浙江绍兴人,绍兴文理学 院计算机 中心 实验师 ,研究方 向: 计算机 多媒体技术 。
2 6
第 3期
基于 V B的信 息隐 藏 L B算法 的实 现 S

i t d c s te p i cp ea d ca sf ai n o f r t n h dn e h i u s a d a ay e h S g r h p i cp e Atls h ri l nr u e h r il n ls i c t fi o mai ii g tc n q e n n z st e L B a oi m r i ls o n i o n o l l t n a tte a tce
模 型如 图 2所示 。
平 面上 的数值 ,来 实现 以 图像 为载 体的信 息 隐藏是

lsb替换算法

lsb替换算法

LSB(Least Significant Bit)替换算法是一种常见的隐写术(Steganography)算法,用于在一个数据载体中隐藏秘密信息。

它的基本原理是将要隐藏的秘密信息嵌入到数据载体的最低有效位中,而对载体的外观几乎没有明显影响。

具体来说,LSB替换算法的步骤如下:
1. 选择要隐藏的秘密信息,将其转换为二进制形式。

2. 选择一个载体文件,这通常是一张图片或音频文件等。

3. 将载体文件转换为二进制形式。

4. 将秘密信息的每个二进制位按顺序替换掉载体文件中对应位置上的最低有效位。

如果秘密信息的位数超过了载体文件的可用位数,可以选择扩展载体文件或者舍弃多余的秘密信息。

5. 将修改后的二进制数据重新转换回载体文件的格式。

6. 可以通过查看载体文件的最低有效位来提取出隐藏的秘密信息。

需要注意的是,LSB替换算法属于较为简单的隐写术算法,容易被一些隐写术检测工具和算法所探测到。

此外,对载体文件进行过多的修改可能会导致视听质量的损失,因此在使用LSB替换算法时需要权衡隐蔽性和影响程度。

请注意,隐写术的使用和传播可能受到法律和道德限制,请确保你的行为符合适用的法律法规。

LSB算法解析

LSB算法解析
一、课题背景
What’s information hiding?
信息隐藏技术使一种新型的信息安 全技术,它把一个有意义的信息隐 藏到载体信息中得到含密载体,非 法获得者不知道这个看似普通的载 体中是否隐藏了其它的信息,而且 即使知道也难以提取或去除隐藏的 信息。
信息隐藏的古典应用
公元前440年一个叫Histaieus的奴隶用头发掩盖叛乱信
011000100
LSB提取结果
BMP图像文件的特殊结构
版权保护。数字水印作为信息隐藏技术的一个重要分支,利用数字内嵌的方法 将所有者的版权信息嵌入到多媒体中,并作为鉴定、起诉非法侵权的证据,从而 成为知识产权保护的有效手段。
印刷品的防伪。信息隐藏技术用于印刷品的防伪是近些年来提出的新课题,已 经被许多出版社和相关产品发行机构所采用。该方法在数字图像印刷或打印之前 先嵌入一定的秘密信息,经印刷或打印输出后的纸张可以再次扫描输入,利用特 定的提前和鉴别算法来验证该图像作品的真伪。
信息隐藏技术:
信息隐藏技术与传统密码学不同的是,它利用多媒体 信息普遍存在的冗余性,将秘密信息隐藏在多媒体信 息中而不引起多媒体信息物理外观的显著变化,使得 人们觉察不到它的存在,即使截获者知道秘密信息的 存在,未经授权也难以将其提取出来,从而保证了秘 密信息的机密性和安全性。
传统密码加密技术示意图
11111110 11111101 11111111 11111100 11111110 11111100 11111101 11111110 11111110
② 将二进制数据的最低有效位提取出来,即为秘密信 息序列[ 0 1 1 0 0 0 1 0 0 ]。如图所示。
11111110 11111101 11111111 11111100 11111110 11111100 11111101 11111110 11111110

基于LSB的数字水印算法及MATLAB实现概要

基于LSB的数字水印算法及MATLAB实现概要

文章编号:1002-6886(2008 02-0067-03基于L SB 的数字水印算法及M AT LAB 实现黄仿元(贵州大学职业技术学院, 贵州贵阳550003作者简介:黄仿元(1980— , 男, 助教, 现于贵州大学攻读电子与通信工程专业工程硕士, 主要研究方向:数字图像处理、信号与信息系统。

收稿日期:2008-1-2摘要:数字水印技术是近些年提出的一种信息隐藏技术, 该技术为多媒体信息的版权保护提供了一种新的方法。

本文首先介绍了数字水印技术的原理、特点及分类, 然后讨论了基于LS B 的数字水印算法, 最后利用MAT LAB7. 0对这一算法进行了仿真。

关键词:数字水印信息隐藏LS B MAT LABD i g it a lW a ter mark i n g Ba sed on L SB and I m ple m en t a ti on of M AT LABHUANG FangyuanAbstract:D igitalW ater marking is a kind of advanced technol ogy of infor mati on hiding appeared in recent years . W e p r ovided s ome ne w ways of copyright p r otecti on for the multi m edia infor mati on with this technol ogy . I n this paper, we intr oduced digital water marking technol ogy p rinci p les, characteristics and classificati on firstly, then discussed the p rinci p le of digital water marking based on LS B , and si m ulated the algorith m with MAT LAB7. 0finally .Key words:water mark; i m f or mati on hiding; LS B;MAT LAB0前言随着计算机的普及、网络技术的发展、媒体信息的数字化, 音乐、图像、视频等多媒体信息的传播变得越来越方便, 拷贝、传播、蔽, 同时难以取证, , 人们发明了一种将公司标识、, 以此来标识公司信息或者媒体所有权等信息, 这一技术就是信息隐藏技术中的一个分支———数字水印技术。

完整word版,LSB算法实现

完整word版,LSB算法实现

LSB算法实现实验报告一、实验环境1、计算机一台;2、Windows XP操作系统、MATLAB7.5二、实验内容与原理LSB(Least Significant Bit)算法是将秘密信息嵌入到载体图像像素值的最低有效位,也称最不显著位,改变这一位置对载体图像的品质影响最小。

LSB算法的基本原理:对空域的LSB做替换,用来替换LSB的序列就是需要加入的水印信息、水印的数字摘要或者由水印生成的伪随机序列。

由于水印信息嵌入的位置是LSB,为了满足水印的不可见性,允许嵌入的水印强度不可能太高。

然而针对空域的各种处理,如游程编码前的预处理,会对不显著分量进行一定的压缩,所以LSB算法对这些操作很敏感。

因此LSB算法最初是用于脆弱性水印的。

LSB算法基本步骤:1、将得到的隐藏有秘密信息的十进制像素值转换为二进制数据;2 、用二进制秘密信息中的每一比特信息替换与之相对应的载体数据的最低有效位;3、将得到的含秘密信息的二进制数据转换为十进制像素值,从而获得含秘密信息的图像。

图1. LSB原理示意图三、实验步骤3.1信息嵌入Picture=imread(‘c:\\test.tif’); %读入载体图像Double_Picture=Picture;Double_Picture=double(Double_Picture);%将图像转换为二进制‘c:\\test.txt’_id=fopen(‘c:\\test.txt’,'r'); %读取秘密信息文件[msg,len]=fread(‘c:\\test.txt’_id,'ubit1');[m,n]=size(Double_Picture);p=1; %p 为秘密信息的位计数器for f2=1:nfor f1=1:mDouble_Picture(f1,f2)=Double_Picture(f1,f2)-mod(Double_Picture(f1,f2),2)+msg(p,1);%将秘密信息按位隐藏入连续的像素中if p==lenbreak;endp=p+1;endif p==lenbreak;endendDouble_Picture=uint8(Double_Picture);imwrite(Double_Picture,‘c:\\result.tif’); %生成秘密信息subplot(121);imshow(Picture);title(' 未嵌入信息的图片');subplot(122);imshow(Double_Picture);title(' 嵌入信息的图片');图2. 嵌入信息前后结果图3.2 信息提取Picture=imread(‘c:\\result.tif’); %读入隐秘信息的图像Picture=double(Picture);[m,n]=size(Picture);frr=fopen(‘c:\\result.txt’,'a');len=8; %设定隐秘信息长度p=1;for f2=1:nfor f1=1:mif bitand(Picture(f1,f2),1)==1%顺序提取图像相应像素LSB 的秘密信息fwrite(frr,1,'bit1');result(p,1)=1;elsefwrite(frr,0,'bit1');result(p,1)=0;endif p==len %判断秘密信息是否读完break;endp=p+1;endif p==lenbreak;endendfclose(frr);图 3 提取结果四、结论基于Matlab 实现了图像的LSB 信息隐藏算法,并讨论了两种图像像素选择算法,通过比较可以发现,使用随机选择算法会将秘密信息均匀地嵌入到整个图像中,增强了秘密信息的不可见性和破解的难度,而顺序选择算法则容易受到视觉攻击。

基于图像的LSB隐写算法的实现

基于图像的LSB隐写算法的实现
将 重要 信息 隐藏 于公开 信 息的冗 余部 分 ,通 过 公开信 息 的
传 输来 传递 秘密信 息 ,从而达 到 安全传 递秘 密信息 的 目的。
图 1 隐 写 系 统 的 一 般 模 型
2隐写术的基本原理和分类
隐写技术是利用人类感觉器官的不敏 感 ( 感觉冗余 ) ,以
该隐 写 系统 模型 的 安全性 取决 于被 动攻 击者 丙是 否有 能 力 检 测 出 从公 开 信 道 获 取 的数 据 中是 否 存 在秘 密信 息
甲 ~ 竺 堕 一 I ] z


同时 ,也带 来 了大量 的负面 影 响 ,例 如信 息篡 改 、版权侵
犯等等 。如 何保 证信 息传播 的安 全 ,成为 了近年 来 的热 门
研究方 向 。 隐写 术是信 息隐 藏 (0 o ma i n 1 f r t o Hi i g) d n 的一个
( ho o pi / E c / l n o p t nA e g Ui r t fSa hi o c nead Tc o g , Sa hi o o J Ci S o f Ota l tb d Cm u r Eg e  ̄ , n e i o n a f S e n eh l y hn a z o g , ha c l c - e ra a e r vs y h g r ic no g n
Th I l me t of e mp e n LSB St g n r p y e a og a h Al o ih g r t m b s o I g a ed n ma e
L o , Z A G i -h i × a-si WA G u i IY u H N Dn g u, U S i a , N Y -p g n

本科毕业设计-基于lsb的信息隐藏技术的实现

本科毕业设计-基于lsb的信息隐藏技术的实现

引言信息隐藏将在未来网络中保护信息不受破坏方面起到重要作用,信息隐藏是把机密信息隐藏在大量信息中不让对手发觉的一种方法。

信息隐藏的方法有很多种,基于图象的信息隐藏检测技术是隐写分析技术的基础,对于保障网络信息安全和提高信息隐藏算法的安全性具有重要意义。

最低有效位算法LSB(Least significant bit)是一种简单而通用的信息隐藏方法,大部分的多媒体文件(如图像、音频和视频文件等)都可作为LSB算法中的载体。

本文讨论以图像为载体的LSB隐藏算法。

第一章绪论1.1 信息隐藏技术的来源随着互联网的迅速发展,网上提供服务越来越丰富,人们如今可以通过因特网发布自己的作品、重要信息和进行网络贸易等,但是随之而出现的问题也十分严重:如作品侵权更加容易,篡改也更加方便。

计算机和通信网技术的发展与普及,数字音像制品以及其他电子出版物的传播和交易变得越来越便捷,但随之而来的侵权盗版活动也呈日益猖獗之势。

因此如何既充分利用因特网的便利,又能有效地保护知识产权,已受到人们的高度重视。

信息隐藏技术作为网络安全技术的一个重要新兴课题,内容涉及数据隐藏、保密通信、密码学等相关学科领域,作为隐蔽通信和知识产权保护等的主要手段,正得到广泛的研究与应用。

为了打击犯罪,一方面要通过立法来加强对知识产权的保护,另一方面必须要有先进的技术手段来保障法律的实施。

信息隐藏技术以其特有的优势,引起了人们的好奇和关注。

人们首先想到的就是在数字产品中藏入版权信息和产品序列号,某件数字产品中的版权信息表示版权的所有者,它可以作为侵权诉讼中的证据,而为每件产品编配的唯一产品序列号可以用来识别购买者,从而为追查盗版者提供线索。

此外,保密通信、电子商务以及国家安全等方面的应用需求也推动了信息隐藏研究工作的开展。

中国自古就有这样的谚语,叫做“耳听是虚,眼见为实”,“百闻不如一见”,英语中也有“Seeing is believing”的说法。

这些都表明人们往往过分相信自己的眼睛,而这正是信息隐藏技术得以存在和发展的重要基础,在这一研究领域,大量事实告诉人们:眼见不一定为实!1.2信息隐藏技术的发展1.2.1历史上的隐写术现代信息隐藏技术是由古老的隐写术(Steganography)发展而来的,隐写术一词来源于希腊语,其对应的英文意思是“Covered writing”。

基于LSB的信息提取算法

基于LSB的信息提取算法

v .. . .. 《信息隐藏技术》实验实验四:基于LSB的信息提取算法学生姓名:学号:学院: 计算机学院专业: 信息安全班级:指导教师:2015年12 月16 日目录1 实验目的 (2)2 实验环境及内容 (2)3 实验原理 (2)4 实验步骤 (2)5 实验思考和总结 (2)1实验目的该实验为验证性实验。

目的是通过实验使学生掌握经典隐藏算法,在MATLAB环境下,编写基于图像的LSB信息提取算法程序。

用MATLAB函数实现LSB信息提取,并进行分析。

2实验环境及内容●实验环境安装MATLAB7.0的计算机●实验内容将隐藏在图片中的秘密信息提取出来。

3实验原理LSB(least significant bit)算法是最早提出的一种典型的空间域信息隐藏算法。

它使用特定的密钥通过伪随机序列发生器产生随机信号,然后按一定的规则排列成二维水印信号,并逐一插到原始图像相应像素值的最低几位。

由于水印信号隐藏在最低位,相当于叠加了一个能量微弱的信号,因此在视觉和听觉上很难察觉。

作为大数据量的信息隐藏方法,LSB在隐藏通信中仍占据相当重要的地位。

隐秘算法核心是将我们选取的像素点的最不重要位依次替换成秘密信息,以达到信息隐秘的目的。

嵌入过程包括选择一个图像载体像素点的子集{j1,…,jl(m)},然后在子集上执行替换操作像素cji←→mi,即把cji的LSB与秘密信息mi进行交换(mi可以是1或0)。

一个替换系统也可以修改载体图像像素点的多个比特,例如,在一个载体元素的两个最低比特位隐藏两比特、三比特信息,可以使得信息嵌入量大大增加但同时将破坏载体图像的质量。

在提取过程中,找出被选择载体图像的像素序列,将LSB(最不重要位)排列起来重构秘密信息,算法描述如下:提取过程:for(i=1;i<=秘密消息长度;i++){ i←→ji//序选取mi←LSB(cji)}4实验步骤提取信息源代码x = fopen('wyw.txt', 'r');%(1)将秘密信息读入[msg, length] = fread(x, 'ubit1');%(2)转化为二进制,并计算秘密信息长度a = imread('1.jpg');a = rgb2gray(a);%%将彩色图像转换为灰度图像c = a;[m, n] = size(a);%(3)计算图像容量figure(1);imshow(a);%将原始图像展示出来if(length > m * n)error('the txt error');end%(4)判断秘密信息长度是否大于图像的容量k = 1;for j = 1:nfor i = 1:mc(i, j) = a(i, j) - mod(a(i, j), 2) + msg(k);k = k + 1;if(k == length)breakendendif(k == length)breakendendd = a - c;figure(2);imshow(c);figure(3);imshow(d, []);imwrite(c, '2.jpg');%(6)存储为图像y = fopen('EXA4.txt', 'w'); lenght = 500;k = 1;for j = 1:nfor i = 1:mp = d(i, j);fwrite(y, p, 'ubit1');k = k + 1;if(k == length)break;endendif(k == length)break;endendfclose(y);提取信息结果截图5实验思考和总结通过实验使我们掌握经典信息隐藏算法,在MATLAB环境下,编写基于图像的LSB信息隐藏算法程序。

LSB算法实现BMP图像中的信息隐藏及提取

LSB算法实现BMP图像中的信息隐藏及提取

实验4 LSB算法实现位图图像中的信息隐藏及提取马亮,njnu一、实验目的通过对LSB算法的编程实现,深入理解该算法的设计思想及其应用。

二、实验类型程序设计。

三、实验原理LSB是L.F.Turner和R.G.van Schyndel等人提出的一种典型的空间域信息隐藏算法。

考虑人视觉上的厄不可见性缺陷,信息一般嵌入到图像最不重要的像素位上,如最低几位。

利用LSB算法可以在8色、16色、256色以及24位真彩色图像中隐藏信息。

对于256色图像,在不考虑压缩的情况下,每个字节存放一个像素点,那么一个像素点至少可以隐藏1位信息,一张640*480像素的256色图像至少可隐藏640*480=307200位(38400字节)的信息。

对于真彩色图像,同样可以按照如上的方法计算可以隐藏的信息量。

四、实验环境(1)系统环境:CPU:Inter® Core™2(2)开发环境:IDE:Microsoft Visual Studio 2005Language:Microsoft C#五、实验内容在上述系统环境和开发环境中编程实现LSB算法,包括信息的隐藏和提取。

六、程序说明(1)程序运行界面如下图所示:图1 信息隐藏界面图2 信息提取界面(2)程序功能说明➢自动计算最大隐藏信息量并给出提示➢可以在24位位图中隐藏大小不超过最大隐藏信息量的任意类型文件➢自动备份原始图片➢自动检测伪装图片中是否包含隐藏信息➢正确提取出LSB中的隐藏信息并还原出文件七、实现过程(1)LSBEncrypt类该类用于实现LSB的信息嵌入算法,类中各字段及方法说明如下:字段private string _originalPicPath 原始图片路径private string _hidingInfoPath 隐藏信息路径private FileStream _picStream 原始图片的文件流private FileStream _infoStream 隐藏信息的文件流方法➢private void HideInfoLength();输入:无输出:无功能:将图像的第55至第66字节的LSB替换为隐藏信息文件的长度➢private void HideInfoContent();输入:无输出:无功能:将隐藏信息以每3个字节写入原始图像从第67字节开始的每12字节块的LSB中➢private byte[] ConvertToBinaryArray(long x);输入:long x 要转换的长整型数,这个数的大小不会超过2的24次方输出:byte[] 二进制表示的字节数组功能:将长整型数转换为24位二进制表示的字节数组➢private byte[] ConvertToBinaryArray(byte[] array);输入:byte[] array 长度为3的字节数组输出:byte[] 二进制表示的字节数组功能:将隐藏信息以每3个字节写入原始图像从第67字节开始的每12字节块的LSB中➢public void ExecuteEncrypt();输入:无输出:无功能:执行信息隐藏操作(2)LSBDecrypt类该类用于实现LSB的信息提取算法,类中各字段及方法说明如下:字段private string _camouflagePicPath 伪装图片的路径private string _infoSavePath 还原出的隐藏信息的保存路径private FileStream _camouflageStream 伪装图片的文件流private FileStream _infoSaveStream 还原出的隐藏信息的文件流方法➢private int GetInfoLength();输入:无输出:int 隐藏信息长度功能:从伪装图片的第55至第66字节中提取出隐藏信息的长度➢private byte[] ExtractHidingBits(byte[] arr);输入:byte[] arr 长度为12的字节数组,含有隐藏信息输出:byte[] 从12字节块中提取出的3字节隐藏信息功能:利用位操作提取伪装文件流中每12字节的LSB位➢public bool ExecuteDecrypt();输入:无输出:bool 执行成功返回true,失败返回false功能:执行信息提取操作八、实验小结及思考(1)程序测试✧信息隐藏载体位图图像:图3 载体图像要隐藏的信息:图4 待隐藏的信息执行信息隐藏算法:图 5 隐藏信息成功信息隐藏选择伪装图片和还原出的隐藏信息的保存路径:图 6 信息提取还原出的文本文件test.txt:图7 还原出的文件(2)实验思考在信息隐藏的研究中,主要研究信息隐藏算法与隐蔽通信。

信息隐藏实验(LSB隐写,随机LSB隐写,RS隐写分析)..

信息隐藏实验(LSB隐写,随机LSB隐写,RS隐写分析)..

信息隐藏实验二LSB隐写分析姓名:周伟康学号:班级:一:实验要求1、针对自己实现的隐写算法(嵌入、提取),计算隐蔽载体的PSNR值,通过PSNR值来评估隐写对图像质量的影响,并与主观感受做对比。

2、实现一种隐写分析方法,对隐蔽载体进行检测(卡方、RS……)二:实验步骤1、编写随机选点函数,完善顺序和随机两种LSB信息嵌入和提取。

%随机间隔选点函数%[row, col] = randinterval(test, 60, 1983);function [row, col] = randinterval(matrix, count, key)[m, n] = size(matrix);interval1 = floor(m * n / count) + 1;interval2 = interval1 - 2;if interval2 == 0error('载体太小,不能将秘密消息隐藏其内!');endrand('seed', key);a = rand(1, count);%initializerow = zeros([1 count]);col = zeros([1 count]);r = 1; c = 1;row(1,1) = r;col(1,1) = c;for i = 2 : countif a(i) >= 0.5c = c + interval1;elsec = c + interval2;endif c > nr = r + 1;if r > merror('载体太小,不能将秘密消息隐藏其内!');endc = mod(c, n);if c==0c = 1;endendrow(1, i) = r;col(1, i) = c;end选取8*8的矩阵测试2、对比原始图像和隐藏信息后图像,计算隐蔽载体的均方差(MSE)进而计算峰值信噪比(PSNR),评估隐写对图像质量的影响。

基于LSB算法的数字水印实现

基于LSB算法的数字水印实现
上嵌 入 水 印数 据 , 可达 到 隐藏 信 息 的功 能 。采 即 取 最低 有效 位 的 隐藏 方 法 , 信 息 隐藏 到 目标 图 将
像各 R B字节的最低位 , G 相当于在 目标 图像 上叠 加 了一个能量微 弱的信号 , 而随机颜色的 R B值 G 增 减 变化 在 1—3之 内 , 在视 觉上 很 难 被 察 觉 。 这
主程序模块名称 表 1 程序调用 DB类封装函数一览表 I B类封装 函数功能 读取位图文件
基 于 L B算 法 的数 字 水 印 实 现 S
龙 菲
( 安徽理工学校 电子信 息工程教研 室, 安微 安庆 2 6O ) 4 OO

要 :应用 V C一 实现一种 简单 易行的 L B算法 , S 该算法将水印图像的二值数据嵌入 目标图像 的最 低有效 位, 从
而达到隐藏信息 、 标记图片的作用 。同时文 中还简要分析 了 B P M 文件格式 , 并着重讲 解 了 L B算法 的核心思想 。最后 , S 对应用算法实现的程序进行 了测试 , 测试结果表明该算法具有 良好 的隐蔽性和高保真性 。 关键词 :图像 ; 数字水印 ;S L B算法
显示图像原始大小 : 该模块读取的位 图文件 , 绘制在窗口中, 显示原始大小 的图像。 拉伸图像适应窗 口: 该模块读取位图文件 , 根据窗 口实际大小对图像进行拉伸或压缩 , 绘制成与窗
口大 小相适 应 的 图像 并显 示 。
2 程序 设 计与 实现 2 1 程 序 设计框 架 .
1 2 主 要 函 数 模 块 .
系统 主要 函数 功能 如下 :
打开位图文件 : 该模块首先读取位 图文件 , 将其按照序列载人 内存 , 然后判 断该图是否 已经含有隐

lsb计算公式

lsb计算公式

lsb计算公式
LSB(Least Significant Bit)计算公式是一种计算二进制补码
的方法。

在计算机中,数值以二进制补码的形式存储,而LSB是指二
进制数中的最低位。

要计算一个负数的数值,可以使用以下公式:
-先将负数的绝对值转换为二进制形式;
-然后取二进制形式中的最低位;
-如果最低位为1,则将其取反为0,如果最低位为0,则保持不变;
-接下来,按照二进制补码的规则,将所有的位取反,并在最高位
加1。

例如,要计算-6的二进制补码,首先将6转换为二进制形式:6
的二进制为0110。

然后取最低位0,保持不变。

再将所有位取反,得到反码为1001。

最后,在反码的基础上加1,得到补码为1010,即-6的二进制补码。

除了LSB计算公式,还有其他一些与二进制相关的计算方法,例如计算机中常用的补码运算、移位操作和位运算等。

对于拓展,我们还可以讨论如何使用LSB计算公式进行数据隐藏和提取。

在数据隐藏中,可以通过改变输入数据的最低位来隐藏一些信息。

而在数据提取中,通过读取输入数据的最低位,可以提取出之前隐藏的信息。

这种方法常用于信息安全和隐写术领域。

Matlab编程实现LSB信息的隐藏与提取

Matlab编程实现LSB信息的隐藏与提取

2010.111引言信息隐藏作为一门新兴学科越来越受到人们的重视,而如今成熟的信息隐藏算法基本上都是基于图像的,其中信息隐藏在图像空域中是一种最简单、有效的实现信息隐藏的手段。

Matlab 是由美国MATHWORKS 公司设计的强大的矩阵运算工具,它包含了大量的矩阵运算函数,以其强大的分析处理能力和运算能力而闻名,用以实现图像的处理非常适合。

在此介绍了一种简单的图像空域隐藏算法—LSB (最不重要位)隐秘算法。

主要是将隐秘信息嵌入到图像最不容易发觉的像素位,即最不重要位。

使用此算法的优点是隐藏效果好,不会破坏原图像的效果,隐藏信息多等,从而达到隐藏信息的目的。

2隐秘原理LSB 的嵌入方法是首先将要隐藏的信息以二进制的形式读入,再按照一定的算法选择它们要嵌入的位置。

如果要隐藏的信息的某一位为1,则它要嵌入的载体图像相应位置的像素值mod2的值为1;如果要隐藏的信息的某一位为0,则它要嵌入的载体图像相应位置的像素值mod2的值为0。

LSB 的提取方法是首先将确定隐藏信息嵌入的位置。

如果该位置的像素值mod2的值为1,则此处隐藏的信息为1;如果该位置的像素值mod2的值为0,则此处隐藏的信息为0。

但是选择选择嵌入的位置不同,抗攻击的能力是不同的,下面将介绍两种嵌入算法,并对其进行隐写分析比较。

算法一:顺序选择图像像素LSB 的嵌入算法,即将选取的像素点的最不重要位依次替换成秘密信息。

秘密消息的嵌入:for (i=1;i<=像素序列的个数;i++)Si ←Ci //Ci 为整个图像的像素集合,Si 是我们顺序选取的要隐//藏信息的像素的集合end forfor (i =1;i<=秘密信息长度;i++)S ji ←C ji ←Mi //将秘密信息Mi 存入选取的像素点Sjiend for秘密消息的提取:for (i=1;i<=像素序列的个数;i++)i ←→ji //计算存放第i 个消息位的指针jiMi ←LSB(Cji)//计算Cji 的LSB 位,恢复秘密信息end for算法二:随即选取像素点嵌入算法,即选出的嵌入信息的像素位置是随机的,这样可以增加隐秘信息的不可见性。

实验三 基于LSB的信息隐藏算法

实验三 基于LSB的信息隐藏算法

实验三基于LSB的信息隐藏算法一、实验目的该实验为验证性实验。

目的是通过实验使学生掌握经典信息隐藏算法,在Matlab环境下,编写基于图像的LSB信息隐藏算法程序。

用Matlab函数实现LSB信息隐藏及提取,并进行分析。

二、实验要求1、实验前要做好充分准备,包括:复习实验所涉及的知识点,掌握Matlab 编程语言和调试环境。

2、实验时注意记录实验过程中产生的数据、出现的问题及解决问题的方法。

3、理论联系实际,认真分析实验结果,回答思考题。

4、实验后完成实验报告,并附相关截图。

三、实验环境计算机(安装Visual C++ 6.0和Matlab 6.5以上版本)四、实验原理隐秘算法核心是将我们选取的像素点的最不重要位依次替换成秘密信息,以达到信息隐秘的目的。

嵌入过程包括选择一个图像载体像素点的子集{j1,…,j l(m)},然后在子集上执行替换操作像素c ji←→m i,即把c ji的LSB与秘密信息m i进行交换(m i可以是1或0)。

一个替换系统也可以修改载体图像像素点的多个比特,例如,在一个载体元素的两个最低比特位隐藏两比特、三比特信息,可以使得信息嵌入量大大增加但同时将破坏载体图像的质量。

在提取过程中,找出被选择载体图像的像素序列,将LSB(最不重要位)排列起来重构秘密信息,算法描述如下: 嵌入过程:for(i=1;i<=像素序列个数;i++)s i←c ifor(i=1;i<=秘密消息长度;i++)//将选取的像素点的最不重要位依次替换成秘密信息s ji←c ji←→m i提取过程:for(i=1;i<=秘密消息长度;i++){ i←→j i //序选取m i←LSB(c ji)}五、实验内容与步骤1、随机选取图像载体像素,实现隐秘消息的嵌入与提取(1)隐秘消息的嵌入%文件名:randlsbhide.m%函数功能:本函数将完成随机选择LSB的信息隐秘,载体选用灰度BMP图%输入格式举例:[ste_cover,len_total]=randlsbhide(′glenna.bmp′,′message.txt′,′scover.bmp′,2001)%参数说明:%input是信息隐蔽载体图像%file是秘密消息文件%output是信息隐秘后的生成图像%key是随机间隔函数的密钥function[ste_cover,len_total]=randlsbhide(input,file,output,key)%读入图像矩阵cover=imread('lena.bmp');ste_cover=cover;ste_cover=double(ste_cover);%将文本文件转换为二进制序列f_id=fopen('1.txt','r');[msg,len_total]=fread(f_id,'ubit1');%判断嵌入消息量是否过大[m,n]=size(ste_cover);if len_total>m*nerror('嵌入消息量过大,请更换图像');end%p作为消息嵌入位数计数p=1;%调用随机间隔函数选取像素点[row,col]=randinterval(ste_cover,len_total,2001);%在LSB隐秘消息for i=1:len_totalste_cover(row(i),col(i))=ste_cover(row(i),col(i))-mod(ste_cover(row(i),col(i)),2)+msg (p,1);if p==len_totalbreak;endp=p+1;endste_cover=uint8(ste_cover);imwrite(ste_cover,'lena2.bmp');%显示实验结果subplot(1,2,1);imshow(cover);title('原始图像');subplot(1,2,2);imshow('lena2.bmp');title('隐藏信息的图像');(2)编写函数比较两幅图像区别%文件名:compare.m%函数功能:本函数完成显示隐秘前后两幅图像的区别%输入格式举例:F=compare(′blenna.bmp′,′scover.bmp′) %参数说明:%original是原始载体图像%hided是隐秘后的图像%F是差值矩阵function F=compare(original,hided)%读取原始载体图像矩阵W=imread('lena.bmp');W=double(W)/255;%读取隐秘后图像矩阵E=imread('lena2.bmp');E=double(E)/255;%将两图像矩阵相减,显示效果F=E-W;%注意,MATLAB中矩阵相减只支持double型imshow(mat2gray(F))(3)隐秘消息的提取%文件名:randlsbget.m%函数功能:本函数将完成提取隐秘于LSB上的秘密消息%输入格式举例:result=randlsbget(′scover.jpg′,56,′secret.txt′,2001) %参数说明:%output是信息隐秘后的图像%len_total是秘密消息的长度%goalfile是提取出的秘密消息文件%key是随机间隔函数的密钥%result是提取的消息function result=randlsbget(output,len_total,goalfile,key)ste_cover=imread('lena2.bmp');ste_cover=double(ste_cover);%判断嵌入消息量是否过大[m,n]=size(ste_cover);frr=fopen('2.txt','a');%p作为消息嵌入位数计数器,将消息序列写回文本文件p=1;%调用随机间隔函数选取像素点[row,col]=randinterval(ste_cover,128,2001);for i=1:128if bitand(ste_cover(row(i),col(i)),1)==1fwrite(frr,1,'bit1');result(p,1)=1;elsefwrite(frr,0,'bit1');result(p,1)=0;endif p==128break;endp=p+1;endfclose(frr);2、顺序选取图像载体像素,实现隐秘消息的嵌入与提取(1)隐秘消息的嵌入%文件名:lsbhide.m%函数功能:本函数将完成在LSB上的顺序信息隐秘,载体选用灰度BMP图%输入格式举例:[ste_cover,len_total]=lsbhide(′glenna.bmp′,′message.txt′,′scover.bmp′)%参数说明:%input是信息隐蔽载体图像,为灰度BMP图%file是秘密消息文件%output是信息隐秘后生成图像%ste_cover是信息隐秘后图像矩阵%len_total是秘密消息的长度,即容量function[ste_cover,len_total]=lsbhide(input,file,output,key)%读入图像矩阵cover=imread('lena.bmp');ste_cover=cover;ste_cover=double(ste_cover);%将文本文件转换为二进制序列f_id=fopen('1.txt','r');[msg,len_total]=fread(f_id,'ubit1');%判断嵌入消息量是否过大[m,n]=size(ste_cover);if len_total>m*nerror('嵌入消息量过大,请更换图像');end%p作为消息嵌入位数计数p=1;%调用随机间隔函数选取像素点%[row,col]=interval(ste_cover,len_total,2001);%在LSB隐秘消息for f1=1:mfor f2=1:nste_cover(f1,f2)=ste_cover(f1,f2)-mod(ste_cover(f1,f2),2)+msg(p,1); if p==len_totalbreak;endp=p+1;endif p==len_totalbreak;endp=p+1;endste_cover=uint8(ste_cover);imwrite(ste_cover,'lena2.bmp');%显示实验结果subplot(1,2,1);imshow(cover);title('原始图像');subplot(1,2,2);imshow('lena2.bmp');title('隐藏信息的图像');(2)调用函数compare.m比较两幅图像区别%文件名:compare.m%函数功能:本函数完成显示隐秘前后两幅图像的区别%输入格式举例:F=compare(′blenna.bmp′,′scover.bmp′) %参数说明:%original是原始载体图像%hided是隐秘后的图像%F是差值矩阵function F=compare(original,hided)%读取原始载体图像矩阵W=imread('lena.bmp');W=double(W)/255;%读取隐秘后图像矩阵E=imread('lena2.bmp');E=double(E)/255;%将两图像矩阵相减,显示效果F=E-W;%注意,MATLAB中矩阵相减只支持double型imshow(mat2gray(F))(3)隐秘消息的提取%文件名:lsbget.m%函数功能:本函数将完成提取隐秘于LSB上的秘密消息%输入格式举例:result=lsbget(′scover.bmp′,56,′secret.txt′) %参数说明:%output是信息隐秘后的图像%len_total是秘密消息的长度%goalfile是提取出的秘密消息文件%result是提取的消息function result=lsbget(output,len_total,goalfile,key)ste_cover=imread('lena2.bmp');ste_cover=double(ste_cover);%判断嵌入消息量是否过大[m,n]=size(ste_cover);frr=fopen('2.txt','a');%p作为消息嵌入位数计数器,将消息序列写回文本文件p=1;%调用随机间隔函数选取像素点[row,col]=interval(ste_cover,128,2001);for f1=1:128for f2=1:128if bitand(ste_cover(f1,f2),1)==1fwrite(frr,1,'bit1');result(p,1)=1;elsefwrite(frr,0,'bit1');result(p,1)=0;endif p==128break;endp=p+1;endif p==128break;endp=p+1;endfclose(frr);实验小结:通过实验使我们掌握经典信息隐藏算法,在Matlab环境下,编写基于图像的LSB 信息隐藏算法程序。

信息隐藏LSB算法实验报告

信息隐藏LSB算法实验报告

本科生课程考试答题本考生姓名__________考生学号_______专业班级________指导老师__________考试科目_________考试日期__年__月__日目录一、实验任务和要求 (2)1.1实验任务 (2)1.2实验要求 (2)二、实验算法LSB原理 (2)三、实验环境和采用的工具 (3)四、具体实现步骤 (3)4.1 LSB算法水印嵌入 (3)4.2 LSB算法水印提取 (4)4.3 LSB算法实验测试 (5)五、源码分析 (5)5.1 LSB算法水印嵌入 (5)5.2 LSB算法水提取 (9)5.3 计算PSNR值 (12)六、实验测试 (13)6.1 LSB水印的嵌入 (13)6.2 水印的提取 (14)6.3 对水印进行鲁棒性测试 (14)6.4 对水印进行有效性测试 (14)6.5 对水印计算PSNR值 (14)6.6 对水印容量进行分析 (15)七、结论 (15)一、实验任务和要求1.1实验任务•信息载体:每个人自己的一张外景照片;•水印信息:每个人将学号、姓名按上下两列写在白纸上,然后手机拍摄,转化为黑白图片,作为水印信息;•信息隐藏方法:LSB算法(空域或频域)。

1.2实验要求实验可采用matlab6.5以上版本(C++、Java等),程序分为嵌入与检测两部分,最好有友好的操作方式;程序代码需要注释,编码简洁可靠明了,易检查。

实验测试要求有:•需对信息处理进行鲁棒性测试;•对水印嵌入的有效性进行测试;•计算嵌入前后的PSNR值;•对水印容量进行分析。

二、实验算法LSB原理LSB是L.F.Turner和R.G.van Schyndel等人提出的一种典型的空间域信息隐藏算法。

LSB 最低有效位法(Least Significant Bit;LSB)是运用人类视觉系统无法觉察细微变化之掩蔽效果,将秘密信息隐藏在图像像素的最低位,具有计算速度快且容易秘密信息隐藏在图像像素的最低位,具有计算速度快且容易实现有点。

lsb替换算法

lsb替换算法

lsb替换算法
摘要:
1.LSB 替换算法的概述
2.LSB 替换算法的原理
3.LSB 替换算法的优缺点
4.LSB 替换算法的应用实例
正文:
1.LSB 替换算法的概述
LSB(Least Significant Bit,最低有效位)替换算法是一种常见的数字隐写技术,用于在图像、音频等多媒体文件中隐藏信息。

这种技术通过替换原始文件中最不重要的位(即最低有效位)来实现信息的隐藏,从而在不破坏原始文件外观的情况下实现信息的传递。

2.LSB 替换算法的原理
LSB 替换算法的原理是将秘密信息的每个比特替换到原始文件中数据的最低有效位。

由于最低有效位对原始文件的影响较小,所以这种替换不会对原始文件的质量造成明显的损失。

在接收端,通过相同的算法将隐藏在最低有效位的信息提取出来,从而实现信息的传递。

3.LSB 替换算法的优缺点
LSB 替换算法的优点包括:
(1)隐藏信息的效果较好,不易被察觉;
(2)适用于多种类型的文件,如图像、音频等;
(3)算法简单,实现容易。

缺点包括:
(1)随着信息量的增加,需要的替换次数也增加,可能会影响原始文件的质量;
(2)对抗攻击的能力较弱,容易被恶意攻击者发现并破解。

lsb计算公式(二)

lsb计算公式(二)

lsb计算公式(二)lsb计算公式1. 公式一公式:LSB = V_max / (2^n - 1)其中,LSB为最小可测量量,V_max为电压满量程,n为ADC/DAC 的分辨率。

举例说明:假设一个ADC的分辨率为12位,即n=12,电压满量程为10V,则LSB = 10 / (2^12 - 1) ≈ 。

这意味着ADC可以测量的最小电压单位为。

2. 公式二公式:Value = LSB * Code其中,Value为实际物理量的值,LSB为最小可测量量,Code为ADC转换结果的代码。

举例说明:假设一个12位ADC测量到的转换结果为3456,根据上述公式,物理量的值 = * 3456 = 。

因此,该ADC测量到的物理量值约为。

3. 公式三公式:SNR = ( * n) + 3 + 10 * log10(BW)其中,SNR为信噪比,n为ADC的分辨率,BW为信号带宽。

举例说明:假设一个ADC的分辨率为12位,信号带宽为10 kHz,则SNR = ( * 12) + 3 + 10 * log ≈ dB。

这意味着在给定条件下,该ADC的信噪比为 dB。

4. 公式四公式:ENOB = (SNR - ) /其中,ENOB为有效位数,SNR为信噪比。

举例说明:假设一个ADC的信噪比为80 dB,则ENOB = (80 - ) / ≈ 。

这意味着该ADC的有效位数约为13位。

5. 公式五公式:DNL = (V_i - V_i-1) - LSB其中,DNL为差分非线性,V_i为第i个ADC转换结果对应的物理量,LSB为最小可测量量。

举例说明:假设一个ADC的最小可测量量为,测量到的第i和i-1个转换结果对应的物理量分别为和,则DNL = ( - ) - = 。

这意味着该ADC的差分非线性为。

6. 公式六公式:INL = (V_i - V_ideal) / LSB其中,INL为积分非线性,V_i为第i个ADC转换结果对应的物理量,V_ideal为理想情况下的物理量,LSB为最小可测量量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LSB算法实现实验报告
一、实验环境
1、计算机一台;
2、Windows XP操作系统、MATLAB7.5
二、实验内容与原理
LSB(Least Significant Bit)算法是将秘密信息嵌入到载体图像像素值的最低有效位,也称最不显著位,改变这一位置对载体图像的品质影响最小。

LSB算法的基本原理:对空域的LSB做替换,用来替换LSB的序列就是需要加入的水印信息、水印的数字摘要或者由水印生成的伪随机序列。

由于水印信息嵌入的位置是LSB,为了满足水印的不可见性,允许嵌入的水印强度不可能太高。

然而针对空域的各种处理,如游程编码前的预处理,会对不显著分量进行一定的压缩,所以LSB算法对这些操作很敏感。

因此LSB算法最初是用于脆弱性水印的。

LSB算法基本步骤:
1、将得到的隐藏有秘密信息的十进制像素值转换为二进制数据;
2 、用二进制秘密信息中的每一比特信息替换与之相对应的载体数据的最低有效位;
3、将得到的含秘密信息的二进制数据转换为十进制像素值,从而获得含秘密信息的图像。

图1. LSB原理示意图
三、实验步骤
3.1信息嵌入
Picture=imread(‘c:\\test.tif’); %读入载体图像
Double_Picture=Picture;
Double_Picture=double(Double_Picture);
%将图像转换为二进制
‘c:\\test.txt’_id=fopen(‘c:\\test.txt’,'r'); %读取秘密信息文件
[msg,len]=fread(‘c:\\test.txt’_id,'ubit1');
[m,n]=size(Double_Picture);
p=1; %p 为秘密信息的位计数器for f2=1:n
for f1=1:m
Double_Picture(f1,f2)=Double_Picture(f1,f2)-mod(Double_
Picture(f1,f2),2)+msg(p,1);
%将秘密信息按位隐藏入连续的像素中
if p==len
break;
end
p=p+1;
end
if p==len
break;
end
end
Double_Picture=uint8(Double_Picture);
imwrite(Double_Picture,‘c:\\result.tif’); %生成秘密信息
subplot(121);imshow(Picture);title(' 未嵌入信息的图片');
subplot(122);imshow(Double_Picture);title(' 嵌入信息的图片');
图2. 嵌入信息前后结果图
3.2 信息提取
Picture=imread(‘c:\\result.tif’); %读入隐秘信息的图像
Picture=double(Picture);
[m,n]=size(Picture);
frr=fopen(‘c:\\result.txt’,'a');
len=8; %设定隐秘信息长度
p=1;
for f2=1:n
for f1=1:m
if bitand(Picture(f1,f2),1)==1
%顺序提取图像相应像素LSB 的秘密信息
fwrite(frr,1,'bit1');
result(p,1)=1;
else
fwrite(frr,0,'bit1');
result(p,1)=0;
end
if p==len %判断秘密信息是否读完
break;
end
p=p+1;
end
if p==len
break;
end
end
fclose(frr);
图 3 提取结果
四、结论
基于Matlab 实现了图像的LSB 信息隐藏算法,并讨论了两种图像像素选择算法,通过比较可以发现,使用随机选择算法会将秘密信息均匀地嵌入到整个图像中,增强了秘密信息的不可见性和破解的难度,而顺序选择算法则容易受到视觉攻击。

从以上分析可知图像嵌入像素位置的选择对秘密信息的安全性有着至关重要的作用。

为了实现增强LSB 算法的安全性,可以在信息嵌入前对其进行加密处理。

相关文档
最新文档